Prompt file imported from revoluxe-ai/adv-bot (
.cursor/commands/opsx-commit-all.md). Fill in{{arguments}}before use. Copyright stays with the author.
TARGET OVERRIDE — HIGHEST PRIORITY
Contract: OPSX-WB-COMMIT-ALL-01
Runtime class: ACTIVE
Precedence: This override wins for target paths, capabilities, safety stops, and authority.
Target authority paths
- Changes:
openspec/changes/** - Policies:
openspec/policies/** - Decisions:
openspec/decisions/** - Schemas/templates:
openspec/schemas/** - Activation/provenance:
.opsx/registry/** - Frozen upstream:
.opsx/upstream/a71601dba3b9/ - Adapter:
.opsx/adapters/poetry-python/README.md - Quality gates:
.opsx/project/quality-gates.md
Hard target bans
- Do not install dependencies / modify
package.json, Poetry lock, orpyproject.tomlunless a child command explicitly owns that write. - Do not access production / Kubernetes / secrets.
- Do not push, open PR, rebase, force, or deploy.
- Do not activate game/Vue/
vue-npm/npm run buildassumptions from the donor body. - Missing undeclared capabilities => UNAVAILABLE or FAIL_CLOSED, never PASS-by-absence.
- Mandatory declared executable checks belong to child matrices (
/opsx-commitPoetry/pytest/pyright gates;/opsx-meta-commitprocess checks). This orchestrator does not invent gates and does not runnpm run build.
Projectization gate
Read .opsx/projectization.yaml before any write-bearing child dispatch.
If status != COMPLETE or normal_commands_enabled is false:
STATUS: FAIL_CLOSED
REASON: OPSX_PROJECTIZATION_REQUIRED
NEXT_COMMAND: /opsx-projectize
Write boundary (orchestrator)
Parent never stages, commits, or amends. Git writes belong exclusively to:
/opsx-commit(product / OpenSpec / non-process)/opsx-meta-commit(process surfaces)
Parent may only: parse tokens, launch Task subagents, forward args, serialize child-GO, and print a SUMMARY.
description: "Orchestrate /opsx-commit + /opsx-meta-commit: parallel plan Tasks (inherit), then serial child-GO; one SUMMARY." argument-hint: "[ALL] [FAST_CHECK|FULL_CHECK] [INCLUDE_FULL_DIRTY_TREE] GO [optional context]"
/opsx-commit-all
Dual-lane commit orchestrator for the WB Sky / Poetry target.
Purpose: one Owner slash runs both commit authorities without merging their ownership, without parallel git writers, and with a single human-facing report.
Named dependencies (exact paths — may Read):
.cursor/commands/opsx-execution-preflight.md.cursor/commands/opsx-commit.md.cursor/commands/opsx-meta-commit.md
Follow exclusive-active-command: this turn’s PRIMARY is /opsx-commit-all.
Child command bodies are executed only inside Task subagents (each child is
PRIMARY of its own Task turn). Do not merge child Steps into the parent turn.
Default behavior
By default (no lane filter tokens), run both lanes:
LANE_PRODUCT→/opsx-commitLANE_PROCESS→/opsx-meta-commit
Optional future filters are out of scope for v0.1 unless Owner later designs them.
Critical naming note
Command name opsx-commit-all does not imply child mode ALL.
Child ALL / FAST_CHECK / FULL_CHECK / INCLUDE_FULL_DIRTY_TREE apply
only when those exact tokens appear in this command’s {{arguments}}.
Tokens
Parse case-sensitive tokens from {{arguments}}:
| Token | Effect |
|---|---|
GO |
Authorizes serial child-GO after plans (parent still does not git-write) |
ALL |
Forwarded to both children (product lane still needs static-check FULL receipt when that child requires it) |
FAST_CHECK / FULL_CHECK |
Forwarded as child check mode |
INCLUDE_FULL_DIRTY_TREE |
Forwarded as child scope token |
All other non-orchestrator tokens that belong to the child argument contracts
are forwarded identically to both lanes (same string), except GO handling
below. Owner MODEL=<slug> override is deferred (see
.cursor/pipeline/shared/MODEL_DISPATCH.md).
GO handling (mandatory)
PARENT_HAS_GO: yes | no
PLAN_ARGS: {{arguments}} with exact token GO removed
EXEC_ARGS: PLAN_ARGS + exact token GO
- Plan Tasks always receive
PLAN_ARGS(neverGO). - Execute Tasks receive
EXEC_ARGSonly whenPARENT_HAS_GO=yes. - If
GOis absent: plan both lanes, print SUMMARY, stop (no execute Tasks).
Child model (inherit only)
Authority: .cursor/pipeline/shared/MODEL_DISPATCH.md
RESOLVED_CHILD_MODEL: inherit
Every plan and execute Task MUST pass model: inherit (explicit — never omit,
never auto, never mini/premium slug fallback).
Owner MODEL=<slug> override — deferred until Owner enables registry-backed
slug routing via a separate fix-defects packet.
subagent_type: generalPurpose (children must Read contracts + run git).
Phase machine
0) Preflight
- Projectization gate (above).
- Confirm child command files exist.
- Do not run unbounded dirty-tree inventories in the parent; children own their preflight under execution-preflight budgets.
1) Parallel PLAN fan-out (mandatory)
Launch two Task subagents in the same parent turn (parallel):
TASK_A:
PRIMARY: /opsx-commit
ARGS: PLAN_ARGS
MODEL: inherit (mandatory explicit)
PROMPT_MUST:
- Read and follow .cursor/commands/opsx-commit.md as PRIMARY
- Treat ARGS as {{arguments}} (no GO)
- Plan only: no stage/commit/amend
- Return the child’s normal no-GO plan report verbatim at the end
TASK_B:
PRIMARY: /opsx-meta-commit
ARGS: PLAN_ARGS
MODEL: same as TASK_A
PROMPT_MUST: analogous for .cursor/commands/opsx-meta-commit.md
Do not wait for Owner between the two plan launches.
2) Serial EXECUTE (only if PARENT_HAS_GO)
Child remains the git writer. Parent never applies the plan itself.
As each plan Task completes successfully with an actionable in-scope plan
(not pure OUT_OF_SCOPE_REDIRECT / empty / hard BLOCKED that forbids GO):
- If an execute Task is already running → wait for it to finish (serialize).
- Launch exactly one execute Task for that ready lane with
EXEC_ARGS. - Prompt MUST:
- Read/follow the same child command file as PRIMARY
- Treat
EXEC_ARGSas{{arguments}}(includesGO) - Prefer executing the plan just produced for this lane (attach plan text)
- Still obey all child gates (receipt, protected branch, matrices, scope)
- When that execute finishes, start the next ready lane’s execute (if any).
Owner-visible wait identity (mandatory — CA-WAIT-OPAQUE): before launching an execute Task, and again whenever the parent is blocked waiting for a running execute Task to finish, emit exactly one progress block (plain text, not silent):
LANE_WAIT: parent=/opsx-commit-all waiting_for=<LANE_PROCESS|/opsx-meta-commit | LANE_PRODUCT|/opsx-commit>
OWNER_AWAITED: no
NEXT_LANE_AFTER: <LANE_PRODUCT|/opsx-commit | LANE_PROCESS|/opsx-meta-commit | none>
Do not imply Owner/gate wait during serial execute serialization. Owner is
not awaited between plan fan-out and serial child-GO (plans already authorized
by parent GO).
As-ready order: first successfully planned actionable lane executes first;
the second waits. If both plans are ready before either execute starts,
prefer order: LANE_PROCESS then LANE_PRODUCT (stable default).
If a lane’s plan is non-actionable (clean / out-of-scope only / blocked):
LANE_EXECUTE: SKIPPED
LANE_SKIP_REASON: <from child plan>
Do not invent commits for skipped lanes.
3) Fan-in SUMMARY (mandatory)
Always print a parent SUMMARY after plan phase (and after execute phase when
GO was present), even when a lane skipped or failed.
Authority rules
AUTHORITY:
- /opsx-commit owns product grouping, staging, checks, commits
- /opsx-meta-commit owns process grouping, staging, checks, commits
- /opsx-commit-all owns orchestration + SUMMARY only
FORBIDDEN_FOR_PARENT:
- git add / git commit / git commit --amend
- re-grouping files across lanes
- overriding child BLOCKED / FAIL / receipt gates
- launching /opsx-static-check (product child may only recommend it)
- treating command name as child ALL
- inventing npm / vue-npm gates on this Poetry target
Failure behavior
| Situation | Parent status | Action |
|---|---|---|
| Plan Task errors / times out | BLOCKED or PARTIAL |
Do not execute that lane; continue other lane plan/execute rules |
| Execute Task fails child gate | PARTIAL / BLOCKED |
Surface child report; do not retry silently more than once |
index.lock / git lock on execute |
one serial re-dispatch of that lane only | Then stop that lane if still failing |
| Both lanes skipped | COMPLETE_NOOP |
SUMMARY explains clean/out-of-scope |
Parent args missing required child receipt under forwarded ALL |
child blocks product lane | Parent surfaces; may still run process lane |
Execute child COMMITTED but parent interrupted / Task delivery lost before SUMMARY or next-lane launch |
PARTIAL |
Recover child status from transcript and/or git log; print SUMMARY with known lane results; do not re-dispatch a lane whose planned groups are already committed; resume only remaining actionable lane |
Never mark parent COMPLETE if any execute was attempted and failed without a
successful child commit report for that attempted lane — use PARTIAL or
BLOCKED.
Recovery
- Re-run
/opsx-commit-allwith same tokens, or - Run the failed child alone (
/opsx-commitor/opsx-meta-commit).
Interrupt after child COMMITTED (mandatory — CA-INTERRUPT-RECOVERY):
- If a child execute report is recoverable (Task transcript
STATUS: COMMITTED, orgit logshows the planned group SHAs / process or product tree clean for that lane’s planned files) → treat that lane asEXECUTE=COMMITTED/ SKIPPED on re-dispatch — never re-commit the same planned groups. - Parent MUST still attempt a fan-in SUMMARY with whatever lane results are
known (
COMMITTED/PARTIAL/ interrupted / not started). NEXT_ACTIONmust name the remaining actionable lane only, e.g./opsx-commit ALL GO(process already done) or/opsx-meta-commit ALL GO(product already done), or/opsx-commit-all ALL GOwith the completed lane marked SKIPPED in the parent prompt context.- Do not invent a full dual-lane re-run that would duplicate already-landed commits.
Final report (parent)
STATUS: PLAN_READY | COMPLETE | COMPLETE_NOOP | PARTIAL | BLOCKED | FAIL_CLOSED
MODE: PLAN_ONLY | PLAN_THEN_SERIAL_GO
PARENT_HAS_GO: yes | no
FORWARDED_PLAN_ARGS: ...
FORWARDED_EXEC_ARGS: ... | n/a
CHILD_MODEL: inherit
CHILD_MODEL_FALLBACK: none
WHAT_HAPPENED:
WHY:
CURRENT_STATE:
LANES:
- LANE_PROCESS: PLAN=... EXECUTE=... | SKIPPED | n/a
- LANE_PRODUCT: PLAN=... EXECUTE=... | SKIPPED | n/a
CHILD_REPORTS:
### LANE_PROCESS
<verbatim or condensed child final report>
### LANE_PRODUCT
<verbatim or condensed child final report>
OWNER_DECISION_REQUIRED: yes | no
NEXT_ACTION:
DO_NOT_DO_YET: push; parent git-write; assume ALL from command name
ORIENTATION_HINT:
LANE: META | PRODUCT
NEXT_META: /opsx-meta
NEXT_ACTION:
NEXT_ACTION rules
PLAN_ONLYsuccess →NEXT_ACTION: /opsx-commit-all GO(same other tokens)COMPLETE→ usuallynone(or child-surfaced follow-ups if any remain dirty)- Product blocked on static-check receipt → recommend
/opsx-static-check FULLthen re-run withALL GOifALLwas requested - Process-only leftovers after product success →
/opsx-meta-commit(should be rare if both lanes ran)
When to use
- Mixed dirty tree (product + process) after a work session
- Owner wants one slash + one SUMMARY instead of two manual commit commands
When not to use
- Debugging a single lane’s commit contract
- Redesigning commit ownership (→
/opsx-meta-design-command/ fix-defects) - Expecting parent to commit “from plans” without children (forbidden)
Absolute prohibitions
- Parent git writes
- Parallel execute Tasks (plans may be parallel; GO executes are serial)
- Explicit non-inherit Task model (
auto, mini, premium slug) - Committing process files via product child or product via process child
- Push / PR / rebase / force from this command
- Seeding or requiring
vue-npm/npm run buildon this target
TARGET ADAPTATION NOTES
- active_name:
/opsx-commit-all - children:
/opsx-commit,/opsx-meta-commit - pattern: parallel plan + serial child-GO (option B; not parent-writer)
- child_model:
inheritexplicit (.cursor/pipeline/shared/MODEL_DISPATCH.md) - target: WB Sky / Poetry (
opsx-lite+poetry-python) - donor: game/go-to-prod occurrence
ac2a8c0791763d3f@5ddca9a94f6d87176c64f888511996009f59bedc - companions (external): registry activation,
/opsx-metarouter, pipeline GRAPH →/opsx-meta-fix-command-defectsif desired; not required for MVP runtimelocal_modification_note: "Imported 2026-08-08 via /opsx-meta-import-command KEEP=opsx-commit-all; GAME→WB remap; vue-npm dropped; poetry-python; children /opsx-commit + /opsx-meta-commit" description: "Orchestrate /opsx-commit + /opsx-meta-commit: parallel plan Tasks (mini→auto), then serial child-GO; one SUMMARY." argument-hint: "[ALL] [FAST_CHECK|FULL_CHECK] [INCLUDE_FULL_DIRTY_TREE] [MODEL=|MODEL=auto] GO [optional context]" |MODEL=<slug>| Force child Task model (auto= host Auto / omit model) | |MODEL=auto| Explicit Auto fallback (same as FALLBACK_CHILD_MODEL) | StripMODEL=*from forwarded child args (orchestrator-only token). All other non-MODEL=*tokens that belong to the child argument contracts are forwarded identically to both lanes (same string), exceptGOhandling below. PLAN_ARGS: {{arguments}} with exact token GO removed and MODEL=* stripped
Child model (mini default, auto fallback)
DEFAULT_CHILD_MODEL: gpt-5.4-mini-high FALLBACK_CHILD_MODEL: auto Resolution order:
- If
MODEL=<slug>present (includingMODEL=auto) → use that asRESOLVED_CHILD_MODEL. - Else try Task
model=DEFAULT_CHILD_MODEL(gpt-5.4-mini-high). - If mini is not in the live Task allowlist, or the Task launch fails
with a model-unavailable / invalid-model error → one retry with
FALLBACK_CHILD_MODEL: auto:- omit the Task
modelparameter, or pass host-equivalent Auto /inheritif the live API requires an explicit token; - report
CHILD_MODEL_FALLBACK: autoin SUMMARY.
- omit the Task
- Do not silently upgrade to an explicit premium / high-tier slug.
- Owner
MODEL=<invalid>that is neither allowlisted norauto→FAIL_CLOSED/BLOCKED_INVALID_MODEL(no invent).
Child Task clocks (mandatory — hang prevention)
Empty clocks on any child Task launch are a contract violation. Unbounded sync wait is forbidden (mirror supervisor §12.0 ordinary-writer / heavy-writer classes).
PLAN Task defaults (each of TASK_A / TASK_B)
TIMEOUT_SECONDS=1800 HEARTBEAT_INTERVAL_SECONDS=120 NO_PROGRESS_TIMEOUT_SECONDS=600 STOP_ACK_TIMEOUT_SECONDS=60
EXECUTE Task defaults (each serial GO child)
TIMEOUT_SECONDS=3600
HEARTBEAT_INTERVAL_SECONDS=180
NO_PROGRESS_TIMEOUT_SECONDS=900
STOP_ACK_TIMEOUT_SECONDS=120
Only stricter (smaller) values are allowed without Owner timebox.
Map into Task launch metadata / prompt footer as TIMEOUT /
HEARTBEAT_INTERVAL / NO_PROGRESS_TIMEOUT / STOP_ACK_TIMEOUT.
Task wait discipline (HARD — false-hang prevention)
Platform Task completion arrives as a Task completion notification, not via shell tools. Parent MUST NOT invent a busy-wait that never wakes. FORBIDDEN_WHILE_WAITING_ON_TASK_CHILDREN:
- AwaitShell (does not receive Task completion notifications)
- Shell sleep / sleep loops
- polling subagent transcript files as a wait strategy
- any in-turn busy-wait after background Task launch
AWAIT_SHELL_TIMEOUT_IS_NOT_CHILD_HANG=YES
SILENCE_PLUS_SHELL_SLEEP_IS_NOT_HANG_PROOF=YES
Background mode (
run_in_background=true):
- Launch child Task(s) with clocks filled.
- Print
OWNER_VISIBLE_DISPATCHincluding that progress resumes only on platform Task completion notification. - End the parent turn immediately — no further tool calls that wait.
- On completion notification: resume that lane immediately; do not re-PLAN
blindly; do not treat prior silence as hang.
Sync mode (
run_in_background=false): allowed with clocks filled; result returns in-turn. Prefer sync for serial EXECUTE whenPARENT_HAS_GO=yesso the parent can chain without notification dependency. Parallel PLAN fan-out may still use background; after both plan notifications land, start EXECUTE per §2 (prefer sync).
OWNER_VISIBLE_DISPATCH (before every child launch)
In the same parent turn, before launching a PLAN fan-out or an EXECUTE Task, print: OWNER_VISIBLE_DISPATCH: COMMAND: /opsx-commit | /opsx-meta-commit LANE: LANE_PRODUCT | LANE_PROCESS PHASE: PLAN | EXECUTE EXPECTED_WALL_CLOCK_SECONDS: # from clocks above NO_PROGRESS_TIMEOUT_SECONDS: INTERRUPT_POLICY: interrupt=true on timeout/hang when platform allows WAIT_MODE: background_end_turn | sync_in_turn SILENCE_NOTE: silence until NO_PROGRESS is not proof of hang; after NO_PROGRESS parent must TIMEOUT/PAUSED that lane; AwaitShell/shell-sleep is FORBIDDEN and is not hang proof; background mode resumes only on Task completion notification
Platform abort / interrupt / empty envelope
If a child Task ends as aborted | interrupted | tool_error | empty /
missing envelope without an accepted plan or commit report:
LANE_STATUS: PAUSED | PARTIAL
DISPOSITION: EXECUTION_OUTCOME_UNKNOWN
ADVANCE: FORBIDDEN for that lane
BLIND_REPLAY: FORBIDDEN
Parent SUMMARY must include a pasteable resume of the same primary
(/opsx-commit-all with same tokens, or the failed child alone) with
ATTEMPT+1 only when idempotent; else Owner reconcile. Do not treat the
lane as planned/committed.
Print OWNER_VISIBLE_DISPATCH for both plan lanes (may be one combined
block). Then launch two Task subagents in the same parent turn
(parallel) with PLAN clocks filled:
MODEL: RESOLVED_CHILD_MODEL (mini → auto fallback rules)
TIMEOUT / HEARTBEAT / NO_PROGRESS / STOP_ACK: PLAN defaults
- Obey opsx-execution-preflight TIME_BUDGET; on timeout return
blocked_preflight_timeout — do not hang
TIMEOUT / HEARTBEAT / NO_PROGRESS / STOP_ACK: PLAN defaults
(including preflight budgets / blocked_preflight_timeout)
- If an execute Task is already running → serialize: do not launch a second execute; resume only when the running execute’s Task completion notification (or sync return) arrives. Never AwaitShell / sleep-poll.
- Print
OWNER_VISIBLE_DISPATCHfor that lane’s EXECUTE (WAIT_MODE=sync_in_turnpreferred). - Launch exactly one execute Task for that ready lane with
EXEC_ARGSand EXECUTE clocks filled. Preferrun_in_background=false(sync) so the result returns in-turn. If background: end turn immediately; continue on Task completion notification only. - Prompt MUST:
- Obey opsx-execution-preflight TIME_BUDGET; return
blocked_preflight_timeoutrather than hang
- Obey opsx-execution-preflight TIME_BUDGET; return
- When that execute finishes, start the next ready lane’s execute (if any).
the second waits (notification- or sync-serialized — never shell-wait).
If both plans are ready before either execute starts, prefer order:
LANE_PROCESSthenLANE_PRODUCT(stable default).GOwas present), even when a lane skipped or failed. Include anyEXECUTION_OUTCOME_UNKNOWN/ pasteable resume lines for interrupted lanes. | Plan Task errors / times out (clocks exceeded) |BLOCKEDorPARTIAL| Do not execute that lane; continue other lane plan/execute rules | | Plan/Executeaborted/interrupted/ empty envelope |PARTIAL/PAUSED|EXECUTION_OUTCOME_UNKNOWN; no ADVANCE that lane; pasteable resume |
- Re-run
/opsx-commit-allwith same tokens (afterEXECUTION_OUTCOME_UNKNOWN, only with explicit Owner resume / ATTEMPT+1 — no blind replay), or - On confirmed hang: interrupt child when platform allows; wait at most
STOP_ACK_TIMEOUTvia platform interrupt ack — not AwaitShell / shell sleep; then TIMEOUT/PAUSED that lane per clocks above. CHILD_MODEL: gpt-5.4-mini-high | auto | CHILD_MODEL_FALLBACK: none | auto - Silent premium model upgrade (auto fallback only; never invent premium slugs)
- child_model:
gpt-5.4-mini-highdefault; fallbackauto(omit/inherit)
