MUX Spec Orchestrator - pi adaptation (pimux runtime)
Use this skill to execute explicit spec stages through pimux while preserving mux-ospec semantics.
Binding activation
If the user explicitly invokes mux-ospec / ac-workflow-mux-ospec, or embeds this skill text as the runtime for the task, treat this document as a binding runtime contract, not as optional guidance, commentary, or a planning reference.
Absolute compliance rule
For explicit mux-ospec requests in pi, the current session is a pimux-only cross-stage orchestrator.
- FIRST after spawn: do not poll pimux or use Bash sleep/wait loops; wait for delivered child bridge activity.
- The authoritative
pimuxextension applies a fail-closed parent control-plane lock for explicitmux-ospecexecution. - Before the first child exists, the parent must not call
Read,Bash,Edit,Write,NotebookEdit,Grep,Glob,web_search,subagent, or any other non-pimuxtool for substantive repo work. - Do not execute substantive stage work directly in the parent.
- Do not read, grep, or inspect repo files in the parent to figure out implementation details.
- The first real move is to spawn the authoritative stage-owning
pimuxchild. - The first observable parent tool call must be
pimux spawn. - If the parent does substantive inspection before spawn, stop, acknowledge protocol violation, discard parent-side conclusions, and restart from
pimux spawn.
Parent tool surface
While this skill is active, the parent is runtime-locked to pimux, AskUserQuestion, and say only:
- before first child:
pimux spawnonly AskUserQuestionis allowed only when the user has not provided an explicit spec path or inline prompt, or when a later required user gate is reached- after spawn: notify-first, not poll-first; wait for delivered child bridge activity instead of inspecting live state
- do not poll pimux or use Bash sleep/wait loops; if you are about to inspect routine progress, stop and wait for delivered child activity instead
- happy path after spawn forbids
status,capture,tree,list, andopen; those are recovery-only tools for explicit live inspection, suspected stall/protocol violation/failure, or the inactivity watchdog - after a child progress report arrives, use at most one
send_messagewhen the child needs input; then wait for closeout or another child report sayis allowed only for short user-attention prompts
Locked stage model
- no-spec invocation starts at Stage
000 CREATE - then execute explicit named stages by modifier (below)
- exactly one direct stage-owning
pimuxchild at a time - explicit spec paths pass through unchanged; if the canonical target is missing, the authoritative
pimuxruntime creates it before spawn - when the user provides an inline prompt without a spec path, the authoritative
pimuxruntime auto-derives and creates the next current-branch spec path by following recent current-branch spec-path patterns and the spec-skill convention.specs/specs/<YYYY>/<MM>/<branch>/<NNN>-<title>.md - use
AskUserQuestiononly when the user provided neither a spec path nor an inline prompt - invalid spec path must route to
BLOCK
Workflow by modifier (authoritative)
GATHER is the mux-ospec name for RESEARCH.
full:CREATE (optional) -> GATHER -> CONSOLIDATE -> SUCCESS_CRITERIA -> CONFIRM_SC -> PLAN -> IMPLEMENT -> REVIEW -> FIX -> TEST -> DOCUMENT -> SENTINELlean:CREATE (optional) -> CONFIRM_SC -> PLAN -> IMPLEMENT -> REVIEW -> FIX -> TEST -> DOCUMENT -> SELF_VALIDATIONleanest:CREATE (optional) -> CONFIRM_SC -> PLAN -> IMPLEMENT -> REVIEW -> FIX -> TEST -> SELF_VALIDATION
Gate and pacing rules
SUCCESS_CRITERIAcontent is required beforeCONFIRM_SCCONFIRM_SCis a mandatory user gate beforePLAN- only
PASSadvances throughREVIEW,TEST,SENTINEL, andSELF_VALIDATION WARN/FAILroute toFIX; retry exhaustion escalates to user- child bridge notifications are delivered automatically; default pacing is notify-first
- do not poll pimux or use Bash sleep/wait loops; if you are about to inspect routine progress, stop and wait for delivered child activity instead
- after spawn, do not call
status,capture,tree,list, oropenon the happy path - terminal settlement re-arms exactly one final
pimux statusverification before advancing - optional watchdog is inactivity-only and concise
- default blocked/stuck behavior escalates to user unless explicit override exists
Stage commit contract (mandatory)
Every authoritative stage child MUST commit all changed repos.
Signal/report metadata must include:
repo_scope:spec-only|root-only|root+specroot_commit: short hash orN/Aspec_commit: short hash orN/A
When both repos changed, commit root first, then commit spec through the resolver.
Child stage contract
Each authoritative stage-owning pimux child must:
- read
../../assets/agents/spec/stage references needed for that stage - read
../../assets/mux/protocol/foundation.mdand../../assets/mux/protocol/subagent.md - read
../../extensions/pimux/docs/patterns.md - execute only assigned stage scope
- preserve evidence-gated reporting with repo-scoped commit metadata
- use
pimux report_parentexactly once for terminal settlement - for same-session parent input needed before continuing, use
report_parent(progress, requiresResponse=true);questionis terminal waiting-on-parent settlement - exit promptly after terminal report
Local helpers under the stage child are data-plane only and must not call pimux / report_parent.
Completion
A stage is complete only after terminal report + child exit.
Cross-stage parent advances only after verifying settlement via pimux status.