feat(dispatcher): /dispatcher skill — wire aif-control execution loop (Stage 1) - #403
Merged
Conversation
… (Stage 1) Adds .claude/skills/dispatcher/SKILL.md (~195 LOC) wiring 4 existing CLI primitives (dispatch.ts / harvest.ts / questions.ts / answer.ts) into a dispatch→monitor→Q&A→harvest→Phase-1→stage-gate→advance loop. DN-A = dual (CC-native primary + portable fallback via capability-check, not brand-name; @dual-pair: dispatcher-skill). DN-B = Option A behavior: technical forks resolved autonomously via superpowers:brainstorming on CC; strategic forks surfaced to operator via questions.ts. Discrimination discipline baked into prose (ask-question-reminder.sh is operator-internal, not shipped). Prior-art: prior-art-evaluations.md#111 (BUILD — no upstream covers cross-boundary dispatch→monitor→Q&A→harvest→stage-gate loop; SSOT consult + DeepWiki ≥3 + WebSearch ≥3 in rphase §c; T16 verified vs #64/#67/#88). §1.7: forward-check applied — BFR=BUILD via all 5 layers (SSOT consult + DeepWiki≥3 + WebSearch≥3, dispatcher-skill-rphase.md:223), dual not cc-only per dual-implementation-discipline.md:3, zero-paid-LLM per no-paid-llm-in-ci.md:1, T16 problem-class X-vs-Y at SKILL.md:189; backward-check sweep — complementary to pipeline/SKILL.md:313 (no supersession), consumes runtime-bridge primitives + park.ts #109, SSOT #111 appended at prior-art-evaluations.md:181.
artyhoo
added a commit
that referenced
this pull request
Jun 16, 2026
… umbrella closures (28 false-opens cleared) (#561) * fix(pipeline): C3 counts done.md existence as DONE even with 'Final PR: n/a' priority-score.sh completion-detector C3 only tagged DONE when it parsed a numeric '- Final PR: #<num>'. Stale/superseded closures from the 2026-06-05 sweep carry '- Final PR: n/a', so ~10 already-closed umbrellas stayed false-open. done.md existence alone proves closure (ADAPT Cline #77); tag done_pr=n/a so the filter drops them. Regression test: done-md-completion-filter Case 3b (n/a done.md -> status=DONE). * chore(orchestrator): close 18 verified historical umbrellas — done.md backfill (closure-sweep 2026-06-16) Each done.md cites its verified closing PR (branch/title-confirmed, false matches dropped): guard-liveness cluster (#458/#460/#463/#475/#476/#489), dispatcher-skill #403, dispatcher-ux #407, goal-drift-audit #433, narrow-b-benchmark #210, defer-reflex-detection #232, memory-coverage-audit #126, meta-orchestrator-bundle-autonomous #247, mutation-discipline-stage-c-meta-launch #378, aif-handoff-as-runtime-bridge #283, aif-skills-delivery-rphase #396, channel-earliness-audit #181, ai-doc-audit-version-reconcile #423. Clears 18 false-opens; +10 via the C3 fix = 28 total. 51 residue left open (no evidence).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stage 1 —
/dispatcherskill (dispatcher-skill umbrella)Writes
.claude/skills/dispatcher/SKILL.md(197 LOC) — a CC-skill that wires the 4 existing runtime-bridge CLI primitives into the aif-control execution loop: dispatch → monitor → Q&A → harvest → Phase-1 cold-review → stage-gate → advance. Zero new primitives, zero npm deps (kickoff §5 anti-scope). Capability commit adds SSOT #111 (BUILD) in the same commit with aPrior-art:trailer.Binding constraints applied (Phase -1 cold-review):
superpowers:brainstormingautonomously →answer.ts→ report (zero keystroke); strategic/genuine fork →questions.tssurface to operator. Discrimination discipline baked into skill prose (ask-question-reminder.shis operator-internal, not shipped).dual-implementation-discipline.md §4); CC-absent → technical forks degrade to surface-to-operator.@dual-pair: dispatcher-skill.dispatch.tsexit-0 contract described as a property across call-sites. MINOR-2: harvest wrong-branch throw modeled as operator-ATTN (no silent retry).Verification: principle tests 08/09/15 green (31/31); markdownlint clean; diff = 2 files only.
Mode: SDD pair (implementer + spec-reviewer + code-quality-reviewer) → REVISE → amend → orchestrator cold-QA → GO. Stage 2 (behavioral eval) follows separately.
§1.7 Forward-check applied
This Stage-1 change was checked forward against the disciplines it must comply with before shipping. BFR verdict = BUILD, confirmed via all 5 layers (SSOT consult + DeepWiki ≥3 + WebSearch ≥3) — no upstream covers the cross-boundary loop (
docs/meta-factory/dispatcher-skill-rphase.md:223). Dual-channel design per.claude/rules/dual-implementation-discipline.md:3(capability-check, not brand-name; CC-absent degrades). Zero paid-LLM-in-CI per.claude/rules/no-paid-llm-in-ci.md:1(session-bound dispatch; harvest ZERO-LLM; questions read-only; answer REST-only). T16 problem-class X-vs-Y written for all 3 upstream candidates (.claude/skills/dispatcher/SKILL.md:189).§1.7 Backward-check applied
Checked backward for supersession of existing artefacts.
/dispatcheris complementary to/pipeline, not a replacement —/pipelineowns plan + priority + launch-table;/dispatcherexecutes a chosen umbrella's stages (.claude/skills/pipeline/SKILL.md:313). It consumes (does not rebuild) the 4 CLI primitives atpackages/runtime-bridge/src/cli/{dispatch,harvest,questions,answer}.tspluspark.ts(SSOT #109). No existing rule, skill, or principle is overridden; SSOT #111 is appended (docs/meta-factory/prior-art-evaluations.md:181), not a rewrite of any prior row.Follow-ups surfaced (not in this PR — scope discipline)
install.shcopy-block for/dispatcher(consumer-payload wiring) — precedent atinstall.sh:240; deferred to Stage 2.allowed-toolsomitsWrite; §2.4's optional--body-fileprep would need it (minimal-pointer-body fallback works without it).