Skip to content

docs(dispatch-worktree-automation): I-phase Sub-wave C — recursive acceptance (step count 7→2 verified) - #284

Merged
artyhoo merged 1 commit into
stagingfrom
worktree-iphase-acceptance
May 29, 2026
Merged

docs(dispatch-worktree-automation): I-phase Sub-wave C — recursive acceptance (step count 7→2 verified)#284
artyhoo merged 1 commit into
stagingfrom
worktree-iphase-acceptance

Conversation

@artyhoo

@artyhoo artyhoo commented May 29, 2026

Copy link
Copy Markdown
Owner

What

I-phase Sub-wave C of dispatch-worktree-automation — the recursive acceptance test for the substrate landed by PR #279 (WorktreeCreate hook, merge 5278675, MERGED) + PR #282 (skill prose → claude -w, merge 9f8dc84, MERGED). Both verified ancestors of live origin/staging (3fe1336).

Ships: docs/meta-factory/research-patches/2026-05-29-dispatch-worktree-iphase-acceptance.md (acceptance report) + a 1-line CLAUDE.md ## See also pointer (pointer, not duplication — dual-implementation-discipline §7).

Empirical step-count measurement (kickoff §4 criterion 2, target ≤2)

Dispatch Command Outcome (command-verified) Steps
Baseline (pre-#279/#282) git worktree add+cd+2×ln -s+git checkout -b+open tab+paste manual 7
Primary — THIS session claude -w iphase-acceptance + paste prompt worktree + branch worktree-iphase-acceptance + both node_modules symlinks @18:32 2
Secondary — parked umbrella claude -w aif-handoff-sw-A-resume (headless) worktree + symlinks @18:42, PROBE-OK, cleaned up after verify 1

Verdict: criterion 2 MET (7→2, →1 headless). This session itself was spawned by claude -w iphase-acceptance, so the primary data point is the live environment, not a reconstructed trace (T15).

STOP §10 — NOT triggered

Step count ≤2 ✓ · hook fired (symlinks present, both runs) ✓ · claude -w behaved as coded ✓. No revert of #279/#282.

MINOR finding (§3.2) — surfaced, not patched here

claude -w branches from origin/HEAD, which is bb3ecec (stale) while origin/staging is 3fe1336 — both test worktrees were born behind live staging. Root cause: hook base-ref loop prefers origin/HEAD (worktree-setup.sh:73), and that symbolic ref isn't refreshed by plain git fetch. Step-count win is unaffected (one git rebase fixes content). Hardening worktree-setup.sh base-ref resolution is a dedicated follow-up — out of Sub-wave C scope (C = acceptance + docs only).

§1.7 Forward-check applied

  • no-paid-llm-in-ci: pipeline = shell flag + deterministic bash hook; the -p probe is a single subscription-bundled call (pre-2026-06-15), not CI cost. ✓
  • build-first-reuse-default §1: ADOPT (claude -w) + ADAPT (tfriedel/claude-worktree-hooks), SSOT feat(skill-drift): multi-channel drift detection from D-AuditC-5 #65; this report measures, builds nothing. ✓
  • doc-authority-hierarchy §2-§3: patch carries <!-- scope:... --> (principle 10, test green) + Authoritative-for header. ✓
  • phase-research-coverage §1.7: every verdict command/file:line-backed; the negative claim (stale origin/HEAD) is git rev-parse-verified. ✓

§1.7 Backward-check applied

Reproduction

gh pr view 279 --json state --jq .state   # MERGED
gh pr view 282 --json state --jq .state   # MERGED
ls -la .claude/worktrees/iphase-acceptance/node_modules   # symlink → primary node_modules
npx vitest run packages/core/principles/10-research-patch-annotation.test.ts   # 5 passed

🟢 Простыми словами

Было: чтобы запустить изолированную параллельную сессию — ~7 ручных команд. Стало: одна команда claude -w <имя>, хук сам делает папку и симлинки. Проверено на этой самой сессии (2 шага) и на свежем имени для запаркованной задачи (1 шаг, потом убрал). Цель «≤2 шага» достигнута. Нюанс-не-блокер: ветка создаётся от устаревшего origin/HEAD — записал как отдельную доработку хука.

…ceptance test (step count 7→2 verified)

Acceptance report for the dispatch-worktree-automation I-phase (PR #279 hook +
PR #282 skill prose). Measures kickoff §4 criterion 2 (step count ≤2) on two
real, independent `claude -w` dispatches:

- Primary: THIS session was spawned via `claude -w iphase-acceptance` (2 steps:
  cmd + paste), symlinks live @18:32 — self-applying measurement (T15).
- Secondary: `claude -w aif-handoff-sw-A-resume` for the parked aif-handoff SW-A
  umbrella (1 step, headless), symlinks @18:42, worktree cleaned up after verify.

Verdict: criterion 2 MET (7→2, →1 headless). STOP §10 not triggered (≤2 steps,
hook fired, flag behaved as coded). MINOR finding (§3.2): `claude -w` branches
from a stale `origin/HEAD`, not the live `origin/staging` tip — base-ref-hygiene
follow-up surfaced for worktree-setup.sh; not patched here (C = acceptance only).

CLAUDE.md §See also gains a 1-line pointer to the new dispatch convention
(pointer, not duplication — dual-implementation-discipline §7).

Prior-art: skipped — acceptance report + CLAUDE.md See-also pointer, doc-only, no new capability shipped (measures PR #279/#282 substrate).
@artyhoo
artyhoo enabled auto-merge (squash) May 29, 2026 15:48
@artyhoo
artyhoo merged commit 55e9522 into staging May 29, 2026
24 of 25 checks passed
artyhoo added a commit that referenced this pull request May 29, 2026
…285)

Retrospective for the dispatch-worktree-automation umbrella (R #271 +
I-phase A #279 / B #282 / C #284). Verdict GO, umbrella DONE.

Authored inside a worktree the umbrella's own WorktreeCreate hook created
(claude -w retro-dispatch-worktree-auto) — recursive self-application
satisfied by environment, not assertion. 4th live dispatch of the
shipped substrate; reproduced the §3.2 base-ref MINOR a 3rd time
(origin/HEAD=bb3ecec, 138 commits behind staging).

Findings carried forward: F1 worktree-setup.sh base-ref hardening
(open follow-up, surfaced not silently patched); F2 VS-Code-tab dispatch
channel DECISION-NEEDED; F3 no discipline-level principle test (deferred
per kickoff §12).

Prior-art: skipped — docs-only retro, no new capability or dependency added.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant