Update plan and dossier progress tracking with task status. Adds domain context to change tracking. Companion debrief when called with --companion-run-id on the last task of a phase.
User input:
$ARGUMENTS
Expected flags: --plan "" --task "<task ID, e.g., T001>" --status "completed|in_progress|blocked" --changes "file1.md,file2.sh" (files changed) --domain "" (optional — inferred from task table if not provided) Optional: --phase "" (Full Mode) --subtask "" (if updating subtask) --inline (Simple Mode — update inline task table in plan) --companion-run-id "" (optional — if provided, signals that a code-review-companion ran in parallel during the phase; triggers Step 9 companion debrief on the last task) --companion-slug "" (optional, default: "code-review-companion" — only used in conjunction with --companion-run-id)Steps
-
Resolve paths:
- PLAN, PLAN_DIR from --plan
- If --inline: update task table within PLAN itself
- If --phase: locate dossier at PLAN_DIR/tasks/${PHASE_SLUG}/tasks.md
- If --subtask: locate subtask dossier
-
Parse --changes as a list of changed file paths.
-
Determine domain:
- If --domain provided, use it
- Otherwise, read task table and extract Domain column for the task
- If no domain found, use "unknown"
-
Update task status:
- In task table (dossier or inline): update Status column
completed→[x]in_progress→[~]blocked→[!]
- Update Architecture Map nodes if present
- In task table (dossier or inline): update Status column
-
Update progress tracking in PLAN:
- Locate progress section
- Update phase/task status
-
Record changes with domain context:
- Log which domain(s) were affected and what changed
- Note any new components added to domain composition
- Note any contract changes
- Flag if
docs/domains/domain-map.mdneeds updating (new contracts, new edges, new domains) - If contract changes recorded → flag "domain.md § Concepts update needed for "
- If new domain created → flag "domain.md § Concepts creation needed for "
-
(Retired) Plan-level flight plan update — this duty left SDD entirely. The standalone flight-plan skill (
plan-5b) was removed, so there is no<slug>.fltplan.mdto maintain. Progress lives in the task table and the execution log (Steps 4–5); the journey-level view (the-flow.md) is owned and regenerated by/the-flowitself, never by this skill. (Step number kept so callers' "Step 8" / "Step 9" references stay stable.) -
(Retired) Orchestrator retrospective — this duty left SDD entirely. Retros, friction capture, and harvest belong to the harness family, reached only through the
/eng-harness-flowrouter (plan-6 and plan-6-companion fire its phase-end / plan-complete seams). This skill writes no retro artifacts and prompts no retrospective questions. (Step number kept so callers' "Step 9" references stay stable.) -
Companion debrief (phase-end conditional — fires ONLY when ALL of:
--status completed, last-task-in-phase, AND--companion-run-idwas provided):If
--companion-run-idwas NOT provided → skip this entire step. This is the "no companion ran" branch — no debrief needed, no farewell to read.If
--companion-run-idWAS provided (signals a companion ran in parallel during the phase, e.g. from/plan-6-v2-implement-phase-companion):a) Drain ping (give the companion a final-sweep opportunity):
COMPANION_SLUG="${companion_slug:-code-review-companion}" FINAL_SHA=$(git rev-parse --short HEAD) minih outside inbox send "$COMPANION_SLUG" --run "$RUN_ID" \ --type task \ --subject "review-request: final $FINAL_SHA — DONE" \ --body "Final commit for <Phase Title>. Please scan the entire phase commit range for: end-to-end correctness, anything you noticed across multiple commits, missing tests, unhandled edge cases. control:stop incoming after your reply."Wait 30-60 seconds for the companion to respond. Read inbox for any final findings. Address HIGH/CRITICAL inline if possible (this may produce one more commit + ping cycle BEFORE the stop).
b) Send control:stop:
minih outside inbox send "$COMPANION_SLUG" --run "$RUN_ID" \ --type control \ --subject "stop — phase done" \ --body "stop — phase complete. Please write your farewell envelope and exit."c) Read the farewell envelope via the dogfood path (NOT by
cat-ing output/report.json directly):# Preferred: aggregate retros across runs (in case minih harvested already) minih retros --slug "$COMPANION_SLUG" 2>/dev/null # Or: validate the latest run's output LAST_RUN_DIR=$(minih last-run "$COMPANION_SLUG" 2>/dev/null | jq -r '.data.runDir') minih validate "$COMPANION_SLUG" --file "$LAST_RUN_DIR/output/report.json" 2>/dev/nullThe farewell contains:
findings[],summary,retrospective.magicWand,retrospective.coordination,retrospective.difficulties[].d) Reconcile findings: walk every finding from the farewell + any
finding-typed messages received during the phase. For each:- ADDRESSED INLINE — fixed during the phase. Note the fix sha.
- DEFERRED WITH REASONING — out-of-scope; document the deferral in execution.log.md and (if appropriate) a follow-up dossier.
- DISAGREE — companion was wrong. Briefly justify and move on. Never ignore a finding silently. The disposition appears in the execution log + the user-facing final summary.
e) Surface the companion's magicWand as follow-up candidate: if the magicWand is non-trivial, print a stderr note recommending the caller file a fix dossier via
/plan-5-v2-phase-tasks-and-brief --fix "<companion magicWand>". Do NOT auto-create dossiers; surface only. -
Report what was updated:
- Files touched (task table, plan progress)
- Whether companion debrief fired (yes — runId / no — flag absent)
- Any follow-up candidates surfaced
This command is the **single source of truth** for progress updates AND the companion debrief. Always delegate both to this command rather than manually editing task tables or hand-running drain/stop sequences.
**Why the companion debrief lives here**: 6a already owns the "last task in phase" branch (the phase-complete summary in the execution log + task table). Adding the conditional companion debrief (Step 9) means `/plan-6-v2-implement-phase-companion` gets full phase-end ceremony coverage for free with zero duplication.
**Call signature symmetry**:
- Non-companion plan-6: `/plan-6a-v2-update-progress --task <T> --status completed --plan <P>` — Step 9 skipped (no flag).
- Companion plan-6: `/plan-6a-v2-update-progress --task <T> --status completed --plan <P> --companion-run-id <RUN>` — Step 9 fires.
---
> Harness note: this skill writes no retro artifacts and fires no harness seams — progress tracking and (optionally) the minih companion debrief only. Harness reflection routes through `/eng-harness-flow` at plan-6 / plan-6-companion's seams. `docs/harness/agents/**` is frozen read-only history (mined by plan-1a's Prior Learnings Scout); nothing writes there anymore.