research(meta-orchestrator-ux): F.1 — prior-art on multi-stage dispatch UX - #203
Merged
Conversation
…ch UX Surveyed 10 upstream candidates (GitHub Actions, Concourse, Argo Workflows, Dagger, just, LangGraph, Cline new_task, Superpowers dispatching-parallel-agents, gh workflow run, slash-command+NL-payload pattern) for the /meta-orchestrator output UX problem: paste-this-block format, dependency graph rendering, action queue table, closed-loop re-invocation. BUILD verdict confirmed; 3 specific ADAPT patterns found: Argo ASCII tree (dependency visualization), slash+NL-payload (drop slash-tag format — zero upstream precedent), Cline handoff context structure (1-liner block template). §A.5 feeds F.3 directly. Prior-art: skipped — research-patch only, no new capability
artyhoo
enabled auto-merge (squash)
May 24, 2026 15:52
8 tasks
artyhoo
added a commit
that referenced
this pull request
May 24, 2026
…205) Closes Sub-wave F.3 from `.claude/orchestrator-prompts/meta-orchestrator-followup-audit/kickoff.md §1` per the binding scope in `docs/meta-factory/research-patches/2026-05-24-meta-orchestrator-refactor-f3-scope.md §1.5` (12 items, all addressed in this commit). ### G §1.5 items closed - **Item 1 (M1)** — §5 dispatch table row «R-phase, single» routed to Mode A inline (was Queue mode); aligns with `queue-mode.md §1 Triggers` («single kickoff → Mode A»). - **Item 2 (D3-MAJOR)** — §0 `disable-model-invocation: true` misattribution fixed: the flag suppresses CC's default auto-load into subagent contexts, NOT a recursive-invocation guard (subagent depth is hard-capped at 2 by CC's harness per `code.claude.com/docs/en/sub-agents.md`). - **Item 3 (M2)** — `references/plain-language-tail.md:8` «injects» wording replaced with «enforces presence via Stop hook `decision:block` mechanism». Mirror synced. - **Item 4 (m1)** — §5 added missing «R-phase, multiple sequential → Queue mode» row. - **Item 5 (m2)** — §6 stage-gate `created:>=2026-05-23` hardcoded date filter removed; `head:<branch> base:staging` is specific enough; T-MOB-B notes the corner-case discipline. - **Item 6 (m3)** — blank line added before `## See also` (Markdown convention + principle 09 header format). - **Item 7 (F3-S1)** — §5 antipatterns added: `#worker-dispatch-via-subagent` + `#commit-on-behalf-of-worker`, each with falsifier. - **Item 8 (F3-S2)** — §10 «Inline session report» expanded to specify the 3-layer structure (`## Dependency graph` ASCII tree + `## Action queue` 5-column table + `### Stage N` 1-liner blocks). SKILL.md stays under the 500-line gate by pointing the full grammar at `references/output-format.md` (kickoff §4 #10 split option). - **Item 9 (F3-S3)** — NEW `references/output-format.md` (299 lines) with grammar + 4 worked examples (Mode A single / Mode SDD / Mode B × N parallel worktrees / Mode Queue) + ASCII templates + 1-liner anti-patterns. Mirror synced (consumer-relative paths in §A see-also block). - **Item 10 (Gap-1)** — `launch-table-generator.sh detect_subwaves()` keyword filter added (`R-phase|execution|wiring|Mode [AB]|Direct Edit|SDD|Queue mode|I-phase|implementer|reviewer|sub-wave`) to avoid §1/§2 hook+dispatch tables being matched as sub-waves. Mirror synced + smoke-tested on this kickoff (8/8 sub-waves correctly detected). - **Item 11 (§1 Step 2 REPORT reconciliation)** — added clause: when maintainer-passed REPORT contradicts `gh pr list`, emit reconciliation note and trust mechanical state (REPORT is supplementary, not load-bearing; per 3-layer responsibility model + memory `feedback_no_human_verification_ai_self_verifies`). - **Item 12 (mirror sync)** — every edit propagated to consumer mirror (`skills/meta-orchestrator/`); helpers/launch-table-generator.sh byte-identical; SKILL.md mirror gains a condensed §10 carrying the same 6 required substrings; output-format.md mirror is identical content with consumer-relative §A links (markdown links replaced by plain text for project-internal refs so `check-skill-drift.sh` stays green). ### Principle 18 — new (`packages/core/principles/18-meta-orchestrator-output-format.test.ts`) Mechanical structural check: for each of the 4 surfaces (authoring SKILL.md §10, mirror SKILL.md §10, authoring output-format.md, mirror output-format.md), asserts the 6 required substrings are present (`## Dependency graph`, `↓`, `## Action queue`, `Paste в новый CC tab`, `Можно параллельно с`, `### Stage`). Includes companion paired-negative tests proving the check fails on synthetic broken §10 content (per principle 02 discipline). Slot 18 verified free (slots 01-17 occupied). ### Acceptance criteria - ✅ SKILL.md §10 expanded with 3-layer output spec (compact pointer + substring spec); SKILL.md stays under 500-line gate (499 lines). - ✅ `references/output-format.md` shipped with grammar + 4 worked examples (Mode A / SDD / Mode B × N / Queue). - ✅ Consumer mirror synced; `check-skill-drift.sh` green; principle 14 green. - ✅ Principle 12 still green (kickoff §5 AI-traps citations unaffected). - ✅ Principle 18 green (new). - ✅ Own cold-QA pre-handoff (T19): G §1.5 12 items + kickoff §4 #10 + §1.7 forward/backward verified. §1.7: forward+backward-check applied. Forward — principle 18 = REFERENCE from principle 12 precedent at packages/core/principles/12-ai-laziness-traps.test.ts:24; Argo `├── / └──` ADAPT vocabulary cited from F.1 prior-art PR #203 at docs/meta-factory/research-patches/2026-05-24-meta-orchestrator-ux-research.md:30; deterministic TypeScript substring grep with no paid LLM (no-paid-llm-in-ci.md §1); references/output-format.md carries Authoritative-for header per doc-authority-hierarchy.md §2 at .claude/skills/meta-orchestrator/references/output-format.md:3; SKILL ↔ references spec-of pointer at .claude/skills/meta-orchestrator/SKILL.md:421 per dual-implementation-discipline.md §5. Backward — principle 18 scope = SKILL.md §10 of meta-orchestrator skill only (covers both authoring + mirror copies via SURFACES array at packages/core/principles/18-meta-orchestrator-output-format.test.ts:54-77); does NOT introduce retroactive sweep across other skills; paired-negative tests at packages/core/principles/18-meta-orchestrator-output-format.test.ts:152-185 prove the check is non-tautological per principle 02. ### See also - Parent kickoff: `.claude/orchestrator-prompts/meta-orchestrator-followup-audit/kickoff.md §1` Sub-wave F.3 - G research-patch §1.5: `docs/meta-factory/research-patches/2026-05-24-meta-orchestrator-refactor-f3-scope.md` - F.1 prior-art: `docs/meta-factory/research-patches/2026-05-24-meta-orchestrator-ux-research.md` Prior-art: prior-art-evaluations.md#64 (subagent-driven-development KEEP-NARROW + REFERENCE — F.3 introduces no new capability beyond extending the existing meta-orchestrator skill per the G binding scope; no new SSOT row needed).
This was referenced May 25, 2026
artyhoo
added a commit
that referenced
this pull request
May 25, 2026
… detection) (#220) Run `bash .claude/skills/meta-orchestrator/helpers/plan-currency-check.sh` (L2 Stage 3 detection shipped in #217) → 88 UNTRACKED-N entries surfaced between the 2026-05-22 reconciliation and origin/staging tip (#217). Map each to an existing §0 / Track row by adding the PR number to its evidence cell, or to a new §0 row for two umbrellas that landed in full since the prior snapshot. Re-run helper → 0 UNTRACKED remaining. Key changes: - Snapshot date 2026-05-22 → 2026-05-25 (header + §0). - N8 row: A-phase 🔲 → 🟡 — C1 SSOT-existence (#170), C2 kickoff T-enumeration floor (#174), C3 principle 13 §1.7 substance (#178), C4 delivery-channel marker (#177), activation #180. C5 + cost-levers remain gated on §5.3 utilisation trigger. - Track M.1 / M.4 → DONE: M.1 codified T20 via #212 (with NB note — recommendation-laziness took the T20 slot, mutation-equivalence T-bump 20→21 still pending); M.4 6 paired-negative bash-hook tests shipped #195/#196/#197/#198/#199/#200. - Two new §0 rows: Meta-orchestrator skill (Track P) — BUILD #186 + audit rounds #192/#193/#194/#201/#202 + UX refactor #203/#204/#205 + planner-completeness #213/#214/#217 + §1.7 PR-body mandate #216; Recommendation-laziness discipline — R-phase #206/#207, benchmark #210, I-phase Sub-waves A/C/D #211/#212/#215. - N7 row: + dogfood research-patch #135 / §4 demotion #166 / live-trial verified #171. N4b row: + design #136 / record #118. - Infra paragraph: PR refs for I.1 follow-ups (#121/#123/#124/#125/ #128/#130/#131/#143/#145/#146/#147/#148/#149/#172/#187), I.2 (#139/#142/#154/#175), I.3 DN-4 (#126/#132/#133/#138/#140/#152/ #159/#161/#162/#167). - Track 2.3 (channel-earliness audit) → DONE 2026-05-23 (#181); removed from "What actually remains". - Footer subsection: standalone work (#191 satellite-arch / #189 guard-liveness / #173 storm-readiness / #176 §10 port / #182 cleanup), Wave 10 follow-ups (#110/#112/#113), plan-revision history (#108/ #109/#153/#155/#157/#160/#164/#165/#168/#179/#185). Verification: - `bash .claude/skills/meta-orchestrator/helpers/plan-currency-check.sh | grep -c '^UNTRACKED'` → 0 (down from 88). - `npx markdownlint-cli docs/meta-factory/wave-sequencing-plan.md` → no violations. - `npx vitest run packages/core/skills/plan-currency-check.test.ts` → 14/14 passed. Prior-art: skipped — chore, doc reconciliation only, no new capability or rule introduced.
artyhoo
added a commit
that referenced
this pull request
Sep 1, 2026
…1550) * docs(s3-c5): D1 derivable-prose population inventory + entry re-verification 19 rows / 5 classes; enumeration strictly BEFORE migration (T5/T10). Findings: presets row trigger fired (MIGRATE-now), INSTALL-FOR-AI rosters derivable from setup.d manifest (MIGRATE-now x2), README count claims live- drifted (20 hooks vs measured 21; 8 agents vs shipped 10 -> PROPOSE-to-owner), aif-version population drifted 4 -> 6 files (P-2 park stands). T7 counter- prompt run cold, non-empty; T15 self-application section present. * feat(docs-gen): INSTALL-FOR-AI install-roster → getff:begin generated section + drift gate S3 D2 (beta-ai-docs-agnosticism), inventory row B1: the «This installs» roster (INSTALL-FOR-AI.md:76-96) becomes a getff:begin generated section rendered from the installer manifests (setup.d/20-agents.sh skip-list + factory-gated pair, setup.d/10-skills.sh cp-literals, setup.d/lib.sh GETFF_SKILLS_* constants). Drift gate: scripts/render-install-roster.mjs --check (write/check modes, render-rule-index.mjs pattern), wired into audit-self.yml manifest-render-check. Caveat prose (KEEP-AIF notes, --profile core) preserved outside the fence (T17). Inventory B2 verdict revised MIGRATE-now → STAYS-PROSE with owner+trigger (§7 addendum: tree sits inside a ```text block + annotation-bearing judgment). Prior-art: prior-art-evaluations.md#208 (deterministic digest renderer — same render-rule-index/fence.ts pattern extended to a second source class; fence.ts reused verbatim, zero new fence logic). * feat(docs-gen): AI-USAGE-GUIDE §6a Launch presets → getff:begin rendered from shipped preset data S3 D2+D5(i) (beta-ai-docs-agnosticism), inventory row A3: the §6 honesty-table row «Launch presets … not shipped … this guide gains a §Presets rendered from the shipped preset data» had its own trigger fire (beta-delivery-ux S2 merged, presets on disk) — the row leaves the not-shipped table and the promised section lands as a generated one. Renderer scripts/render-presets.mjs parses .claude/skills/pipeline/references/presets/*.json (same source list-presets.sh reads; line shape mirrors its output), writes the `pipeline-presets` fence via the shared fence.ts machinery. Drift gate --check wired into audit-self.yml. Baselines: 11 install fingerprints regenerated (SNAPSHOT_MODE=capture); audited diff = only .ai-factory/AI-USAGE-GUIDE.md + .ai-factory/refresh-baseline.json hashes; SNAPSHOT_MODE=compare 15/15 pass. Prior-art: prior-art-evaluations.md#208 + #203/#204 (same render/--check + marker-region drift-gate family — fence.ts reused verbatim, zero new fence logic). * feat(agents): claims-conformance-auditor — cold docs-claims vs shipped-reality auditor S3 D4 (beta-ai-docs-agnosticism, spec C5 r3 + §8): the named cold auditor the assembly gate runs over docs-site claims (compliance-verifier class agents/*.md; attention-is-not-a-mechanism §1 — checklist is merge authority, agent is the detection layer). Cold-by-construction dispatch, claim taxonomy, per-claim VERIFIED/GAP/UNVERIFIABLE with T3 evidence, GO/REVISE/STOP output grammar, promotion trigger = spec §6 falsifier (repeated claim drift → deterministic check). tools: line = harness-universal only (principle 21 green: 14/14). Acceptance dry-run over README.md executed cold (56 claims: 47 VERIFIED / 6 GAP / 3 UNVERIFIABLE) — output pasted in the stage PR body; GAP rows are maintainer-owned README drift → routed to the D3 proposal, never direct-edited here. Prior-art: prior-art-evaluations.md#228 (fidelity-auditor class — session-bound cold agent under no-paid-llm-in-ci; shape precedents compliance-verifier + backward-sweep-auditor reused, protocol novel to the claims-taxonomy slice). * S3 D3: owner-gated proposals (P1 zcode rollup renderer, P2 living-docs, P3 README) + install-roster regen P1 ships scripts/render-zcode-parity-rollup.mjs — PROPOSAL renderer for the zcode-parity-doctrine §2 derivable rollup (hook population / plugin twins / classification counts; per-row rationale stays prose per the D7 falsifier). --check refuses (exit 2) until the maintainer lands the target fence, so a premature CI wiring fails loud, never silently green. Verified: --emit parses 21/21 census rows (escaped-pipe-aware + §2-scoped), rollup matches the hand count at doctrine:65; plugin twins 15 of 21. P2 (living-docs-auditor /aif-verify contradiction) and P3 (README claim drift from the cold-auditor dry-run: agent count, ESLint major, husky/depcruise wiring steps, probeR4 pass-vs-warn, Wave B status, hook count) are evidence tables awaiting maintainer sign-off — zero direct edits to owner-gated paths. INSTALL-FOR-AI.md roster regenerated after claims-conformance-auditor.md landed (10 → 11 shipped agents) — the drift gate caught the same-PR change, which is the live discrimination proof for this stage's D2. * fix(s3-c5): cold-QA/fidelity round-1 findings — fail-loud roster guard + P3 ESLint retraction Cold-audit rework (T19/T21 + fidelity Round 1, 2026-09-01): - render-install-roster.mjs: zero-match skip-list now throws (fail-loud) instead of silently rendering ALL agents as shipped if setup.d/20-agents.sh is restructured. - owner-proposals patch: P3 ESLint row RETRACTED — README:30 "ESLint 10 flat config" is correct (packages/core/package.json:94 "eslint": "^10.4.0"; root package.json has no eslint key; the dry-run's quoted probe was unreproducible). 6 GAP rows -> 5 actionable. - same patch: "three S3 gates" -> two (render-rule-index/render-rules predate S3). Fidelity Round-1 MAJOR (kickoff host-verify runner lines) is NOT discharged here: the kickoff edit is harness-classifier-blocked for this session (sensitive file) — stays as park P-KICKOFF for operator egress. * fix(s3-c5): rework round-1 — sweep rows, prettier, baselines, P1 scope reconciliation - wire install-roster-check + presets-check into run-local-ci-sweep.sh gate_table (coverage test PASS=9 FAIL=0; closes the two unwired CI commands) - prettier-canonical output: format auditor + AI-USAGE-GUIDE; render-presets now emits prettier-canonical fence bodies (blank lines around the bullet list) so --check stays green after format:check - re-capture 11 install baselines on the final tree (new claims-conformance-auditor ship line + prettierignore + guide hash); diff audited — only expected line-classes; byte-identical compare 15/15 - P1 scope reconciliation (fidelity MAJOR): owner-proposals §P1 now states the narrow scope explicitly — §2 rollup counts convert; §2 Status col judgment-bearing (D7 falsifier, :61/:62 quoted); §3 table PARKED under §6 with Option A/B; inventory row A2 + §8 addendum made verbatim-consistent with P1 - P2 P-GH park resolved: S1's replacement wording carried verbatim from PR #1311 body (parked question 3), provenance recorded; still proposal-only (zero owner edits) Prior-art: skipped — rework round 1: gate-table wiring + formatting + baseline regen + proposal scope reconciliation; no new capability * docs(kickoff-s3): host-verify runner lines for the two S3 drift gates (W-1, coordinator host-side — container Edit on kickoffs is classifier-blocked) * docs(s3-c5): owner-proposals patch — principle 10 scope slug + principle 13 §1.7 self-application section (pre-push meta-tests) * docs(s3-c5): owner-proposals §1.7 — correct the P1 renderer reuse claim (no fence.ts import until the fence lands; round-3 fidelity note) --------- Co-authored-by: Test <test@example.com>
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.
Что сделано
Sub-wave F.1 от kickoff
.claude/orchestrator-prompts/meta-orchestrator-followup-audit/kickoff.md§1 — UX research (R-phase, read-only): prior-art sweep на multi-stage orchestrator/CI dispatch UX поbuild-first-reuse-default.md §3методологии (≥3 phrasings WebSearch + DeepWiki).Output: новый файл
docs/meta-factory/research-patches/2026-05-24-meta-orchestrator-ux-research.md— 350 строк, 10 candidates исследованы, T16 problem-class evidence inline per candidate, 6-item search-coverage применён к negative-existence claim, Q1-Q5 отвечены, 4 конкретных рекомендации для F.3 + falsifiers + decision log.Headline verdict
BUILD verdict (prior R-phase) stands — no ADOPT-verbatim upstream match. Но F.1 нашла 3 конкретных UX sub-pattern'а для ADAPT в F.3:
/Mode-A /Roles-worker /Skills-fooимеет ZERO upstream precedent в 10 surveyed tools (GHA, Cline, ChatOps, Discord, Copilot Chat, etc. — все используют/<command> <natural-language>). Глобальный~/.claude/skills/orchestrator/SKILL.mdпарсит natural language после slash, не structured flags. Это объясняет maintainer's «не удобный формат» — category mismatch (CLI flag syntax inside a chat field).├─ / └─) (per §A.5 (ii), Q2 evidence): единственный CLI-renderable формат для prospective dependency graph в plaintext markdown. GHA/Concourse используют web UI; Mermaid не рендерится в CC chat.new_taskhandoff structure (per §A.5 (iii), Q3 evidence): 5-column table из kickoff draft (# / Paste / Когда / Ждёшь / Можно параллельно с) структурно валидна; «Можно параллельно с» — genuine BUILD (нет upstream precedent для static parallel-plan column).gh pr list> human REPORT). Concrete gap: SKILL.md §1 Step 2 не имеет explicit «stale-REPORT reconciliation» line — recommended addition в F.3.Полный 6-item search-coverage checklist в §A.3 подтверждает negative-existence claim чистым (confidence: high на Q1/Q2/Q4, medium на Q3/Q5).
Как проверить
wc -l+grep -c "^##"на файлеjust/ LangGraph / Cline new_task / Superpowers parallel /gh workflow run/ Jason Liu chat-UX — verified:grep -c "^### Candidate" research-patch= 10grep "^##.*A.6"npm --prefix packages/core run test 2>&1 | grep "12-ai-laziness"(worker side)3a7c08d research(meta-orchestrator-ux): F.1 — prior-art on multi-stage dispatch UX— verified:git log -1 --formatSKILL.md/ principles / hooks; только новый файл вresearch-patches/— verified:git diff HEAD~1 --stat(1 file, +350)Что НЕ сделано (scope guard)
wip: pre-F1-PR — parallel-subwave + book + wave-sequencing edits, не вошли в эту PR.Сценарий continue
F.1 verdict готов к консумации:
§1.7 Skipped: research-patch in
docs/meta-factory/research-patches/— not a discipline-bearing artefact path (.claude/rules//packages/core/principles// EXECUTION-PLAN / prior-art-evaluations.md / CLAUDE.md / templates). Patch itself applies §1.7 substance: forward-check (BFR compliance via §A.3 verdict + 6-item) + backward-check (§A.6 falsifiers per recommendation) + self-reflection (§A.8 decision log on T15 self-application — verified that research moved Q1/Q2/Q4 substantively, не relay of kickoff draft).