Leiph-only toggle on LEIPH tasks. Hidden client-side for persona=ivy. Server rejects on tasks/ivy/*. Tag alone does nothing — it's the gate.
leiph-008chain_runs[]
1 · PWA → VOICE
Trigger
state move = fire
Send to VOICE
batch email
PERSONA: LEIPH + SOURCE: mission-control PWA envelope. Contains STATE-CHANGE: yes (upcoming → in-progress) on a chain-tagged task. That line is the actual trigger.
PWA-source attestauto-dispatch
2 · VOICE
Spawn hook
branch + issue
Create branch
claude/<slug>-<hash>
VOICE cuts a feature branch off main for this chain run.
off main
→
Open GitHub issue
[SKILL-CHAIN] leiph-NNN
Body = task payload formatted as (?) intent input. Closing line: @claude.
mcp__github
→
claude-code-action@beta
@claude mention
Existing voice-dispatch path. NOT a new dispatcher — this IS the spawn primitive. Session boots on the branch with seeded intent.
re-use · verify
3 · Claude Code session
Run
skill chain
canonical:(?)→(X)→(*)→(!)→GO→Claude Code
4 · Merge
Ship
auto · on merge
PR merged to main
rollout = PR-only
Rollout convention: no direct pushes. Reviewer merges on GitHub.
CLAUDE.md rule
→
[*_SHIP:*] handle
task_ref + commit: <sha>
Ship-Integrity Rule: commit SHA required. Used by chain-auditor PRIOR VERDICT RECKONING across ALL skill ships — not just chain-tagged tasks.
load-bearing
5 · leiph-009
Close-loop
ledger flip
brain-tail watcher
[*_SHIP:*] w/ task_ref
Tails Brain for ship handles carrying task_ref. Only genuinely new surface in the whole pipeline.
leiph-009
→
flip chain_runs[n]
status: running → shipped
Append-only ledger on the task. Dedup + history. This is the "chain" in blockchain.
chain_runs[]
→
VOICE nudge
in-progress → completed?
Leiph confirms manually. TATIANNA then writes [TASK][LEIPH][DONE]. Acknowledged ≠ shipped.
manual ack
Brain
central append-only store · handles this flow reads, writes, and watches
Spawn primitive re-use. Lane 2 depends on voice-dispatch + claude-code-action@beta working end-to-end for this code path. Verify before treating leiph-008 as real work.
chain_runs[] vs CHAIN_TEST telemetry. Different purposes (dispatch ledger vs skill-chain quality) but conceptually adjacent. Name the split before either grows.
[*_SHIP:*] is NOT redundant. Auto on merge; TATIANNA's [TASK][LEIPH][DONE] fires on manual confirm. Design intentionally keeps auto ≠ acknowledged. Ship-handle is also load-bearing outside the chain path.
Narrow redundancy: if Leiph always rubber-stamps the VOICE nudge immediately, the lane-5 split becomes ceremonial for chain-tagged tasks specifically. Everywhere else, keep both.
Close-loop is the only new surface. Everything in lanes 0–4 is tagging + routing on existing seams. leiph-008 is thinner than the name suggests; leiph-009 carries the real delta.