docs(research): cross-worktree gitignored coord-doc sync — verdict ADAPT - #77
Merged
Merged
Conversation
…APT (symlink-to-canonical) R-phase deliverable for the gitignored-coordination-doc drift problem (.claude/orchestrator-prompts/** per-worktree copies diverge on edit). Search-coverage executed: SSOT consult (no match; near-neighbours #27/#28/#44 rejected on problem-class), DeepWiki x3 (git/git, superpowers, git-worktree.nvim), WebSearch x3, internal sweep. 8 candidates enumerated across copy/symlink/hardlink/ relocate/un-gitignore semantics; per-candidate verdict via build-first-reuse-default §2 typology. Recommendation: ADAPT symlink-to-canonical (b)+(e) — proven by worktree-env-sync + worktree.linkFiles proposal; copy-at-creation tools (git-worktreeinclude/ git-worktree-runner) REFERENCE'd only (T-coord-A: name-match, wrong problem class — they copy, we need live sync). <=30 LOC harness-agnostic helper sketch. Zero LLM, no daemon, no CI surface. §1.7 forward+backward checks applied; T15 self-application surfaced the recursion that this R-phase's own kickoff was gitignored-absent from its fresh worktree. Prior-art: skipped — research-patch only, no new capability shipped (deliverable is one tracked markdown analysis file under docs/meta-factory/research-patches/).
artyhoo
added a commit
that referenced
this pull request
May 25, 2026
…ith @dual-pair annotation (#230) * research(plan-memory-rphase): ADOPT Direction B — shadow cache file with @dual-pair annotation R-phase verdict for meta-orchestrator-plan-memory-rphase umbrella. Answers Q1–Q8 with command/file:line/DeepWiki evidence. Runs §3 prior-art extension on 4 deferred items (AIF /aif-evolve, state.md measurement, Tier-1 sweep, 6-item Superpowers negative-claim coverage). Commits to ADOPT Direction B: shadow cache file (.claude/orchestrator-prompts/_plan-cache.md), committed markdown, deterministic auto-update on every /meta-orchestrator invocation via existing !shell injection, @dual-pair annotation for drift check. Direction A (extend wave-sequencing-plan.md §0 in-place) blocked by HIGH blast radius (Q1: 1,125-char rows, 6–8 non-unique fragments) and concurrent-session race risk (Q3: 19 commits in 90 days). All 5 falsifiers checked; none fire (Q4: ~90s avg > 5s threshold; §6.2: 85+ UNTRACKED > ≤5; §6.3: 63 kickoffs > ≤4). SSOT row #77 appended: Cline Memory Bank committed-markdown sub-pattern, ADAPT (~85% match on storage format; REJECT on-demand update trigger). T15: Track row admission declared for I-phase shipping PR. Prior-art: prior-art-evaluations.md#77 (Cline Memory Bank committed-markdown sub-pattern, ADAPT — Direction B shadow cache file adopts committed-markdown storage, rejects on-demand update trigger in favour of deterministic auto-update on every invocation) * fix(plan-memory-rphase): add missing scope annotation to research patch Principle 10 requires <!-- scope:<slug> --> on first line of every research patch. The patch 2026-05-25-plan-memory-rphase.md was missing this annotation; pre-push hook caught the violation. Prior-art: skipped — single-line annotation fix, no new capability
This was referenced May 25, 2026
artyhoo
added a commit
that referenced
this pull request
May 28, 2026
… consolidation + F.6 self-contained rationale Two of three MINOR findings from PR #261 Phase -1 cold-review applied (the third — SSOT #20 line-citation gap — was a false-positive; #20 already cites :L88 at patch:79 identical to peer rows). MINOR #1 (#ai-traps-section-fragmented) — added new §4.5 "AI-traps applied (canonical + domain-specific)" consolidating the T-trap enumeration that was previously fragmented inline at §4 §1.7 line 333. Each T-number now names the specific action in this R-phase that honours it (T1 sampling floor=5 → §1.4 enumerated all 84 SSOT rows; T3 → file:line + verbatim excerpts at lines 140-143/87/93-95/101-105/109-113; etc.). T-N1/T-N2/T-N3/T-N4 listed with their honouring action too. The prior inline mention at §4 §1.7 line 333 now points forward to §4.5. MINOR #3 (#f6-supplementary-rationale-relies-on-matrix-jump) — added "Supplementary, not subsumed by F.3 (self-contained statement)" paragraph at end of F.6 section. Now self-contained explanation: F.3-without-F.6 = Bug #3 fixed by side-effect but latent landmines remain; F.6-without-F.3 = Bugs #2/#4 unfixed → REJECT; combined F.3+F.6 = defence in depth on Bug #3. Reader no longer needs to jump to coverage matrix at lines 297-307 to understand why F.6 is additive not replacement. MINOR #2 dropped — reviewer misread: #20 citation has explicit ":L88" line ref identical to peer rows (#9/#43/#68/#77). Verified at patch:79. Prior-art: skipped — markdown polish on a research-patch; no new capability; per CLAUDE.md "Refactors, doc edits, test additions for existing capabilities ... NOT capability commits."
8 tasks
artyhoo
added a commit
that referenced
this pull request
May 29, 2026
… done.md convention (#274) Prior-art: REUSE dup-detect.sh jaccard logic (sub-shell call, extends #272 L1 branch-matcher; helpers/dup-detect.sh:62 untouched — Stage-4-owned per §6 Option B); ADAPT Cline Memory Bank committed-markdown pattern (prior-art-evaluations.md:145 SSOT #77, ~85% match on storage sub-pattern) for done.md convention; backed by #273 §4 binding verdict + §1.5c empirical 13% branch-match finding
artyhoo
added a commit
that referenced
this pull request
May 29, 2026
…itted-marker convention (#278) Two-part atomic commit: 1. .gitignore exception for done.md — the «Umbrella closure convention» introduced in #274 (CLAUDE.md) specifies path .claude/orchestrator-prompts/<umbrella>/done.md and claims «ADAPT Cline Memory Bank committed-markdown sub-pattern (SSOT #77)», but .gitignore:7 ignores .claude/orchestrator-prompts/* — done.md cannot land without an exception. Adds 3-line nested-unignore: re-include subdirs, ignore their contents, exception for done.md. Verified via `git check-ignore`: done.md → exit 0 matched by negation rule; kickoff.md → still ignored. 2. done.md for meta-orch-no-arg-overview — recursive self-application of the closure convention on the umbrella that introduced it. Summary cites all 7 PRs of the umbrella (#264 probe / #266 P4 / #270 wave-plan §0 / #272 L1 / #273 R-phase verdicts / #274 L2+L3 + convention / #277 V1-V4 UX). Phase -1 self-criticism: this BLOCKER was not caught in my Phase -1 review of #274 (orchestrator session 2026-05-29). Future Phase -1 reviewer dimension needed: «cross-reference new-file paths against .gitignore». Prior-art: skipped — closure marker + .gitignore exception per existing convention; no new capability
artyhoo
added a commit
that referenced
this pull request
Jun 14, 2026
…DAPT option 1 (#518) R-phase deliverable. Kickoffs are gitignored + live in a per-machine coordination store → invisible cross-machine. Verified gap by running helpers: host 140 kickoff=exists vs fresh `git archive` checkout 0 (all 68 visible dirs are committed- done.md only). Root cause = lifecycle misclassification: kickoff was never git-tracked (0 commits all-branches) and grouped with node_modules/logs since the first .gitignore. Verdict ADAPT → option 1 (commit kickoff.md, joins done.md tracked-exception), maintainer-authorized 2026-06-14. Concerns resolved: install.sh ships no orchestrator-prompts (no consumer leak); public repo already carries 153 research- patches + 26 retros of the same category. I-phase sketch D1-D6 incl. back-catalog secret-scan + fail-loud pre-push enforcement. Externally validated: Cline Memory Bank (SSOT #77) + claude-task-master commit durable task state to git. Prior-art: skipped — research-patch only, no new capability; ADAPT verdict reuses done.md tracked-exception + Cline SSOT #77 + Task Master patterns, zero code/dep added.
4 tasks
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).
7 tasks
8 tasks
artyhoo
added a commit
that referenced
this pull request
Aug 1, 2026
## Summary Closure bookkeeping for the token-economy research track: `done.md` for both stage dirs, per the umbrella-closure convention ([operational-conventions.md §1](../blob/staging/docs/meta-factory/operational-conventions.md)). The session that merges the last stage owes these files, because `priority-score.sh`'s completion-detection **Layer C3** checks `done.md` existence per candidate and is the deterministic fallback covering the bucket branch-prefix and jaccard matching cannot reach — without them both dirs keep scoring as live work. All three artefacts of the track are already on `staging`: stage A (#1203), stage B (#1204), distillate (#1205). ## Changes - `.claude/orchestrator-prompts/token-economy-research-s-a/done.md` — cites #1203. - `.claude/orchestrator-prompts/token-economy-research-s-b/done.md` — cites #1204. Both follow the binding schema verbatim (title / `Final PR:` / `Closed:` / `Summary:`) and point forward to the distillate that consumed them, so a future priority scan lands on the artefact the operator actually reads rather than on two raw stage patches. ## Prior-art consult - [x] The single commit carries `Prior-art: skipped — closure bookkeeping under an existing convention, no new capability` (no dependency, no module, no code). - [x] No new capability area — the convention and its consumer (`priority-score.sh` Layer C3) already ship; this PR only supplies the two data files they expect. - [x] No existing SSOT entry matched; no `Last reviewed` touch due. (The convention itself is an ADAPT of Cline Memory Bank's committed-markdown sub-pattern, SSOT #77, registered when the convention landed — not re-opened here.) - [x] context7 n/a — no library surface. ## Test plan - [x] `bash scripts/run-local-ci-sweep.sh` → PASS (diff-scoped). - [x] Pre-commit orchestrator-prompts validation ran on both staged files (soft-warn channel, no findings). - [x] Schema conformance checked by eye against `operational-conventions.md §1` — four fields, exact field names, one-line summaries. - [x] Manual smoke: `git diff --name-only origin/staging...HEAD` returns exactly the two new paths; nothing else touched. ## Provenance n/a — non-stage PR. This is closure bookkeeping written by the session that merged the last stage, not a dispatched stage with a kickoff and a deliverable contract. The three stages this closes out each carried their own Provenance and fidelity verdict in #1203 / #1204 / #1205. ## Review findings n/a — non-stage PR. Two data files, ten lines total, against a schema stated verbatim in the convention. No cold seat was dispatched and none is owed: there is no design content to audit and no measurement to re-verify. The PR numbers and closure dates were read from the merged PRs, not from recall. ## Fidelity verdict FIDELITY: skipped — closure bookkeeping under an existing convention with a verbatim four-field schema; there is no kickoff, no deliverable contract, and no design content for a WHAT-conformance seat to audit against, so a verdict block would be decoration rather than evidence. ## Parked questions n/a — non-stage PR. ## §1.7 Self-discipline check (REQUIRED if PR touches discipline-bearing files) ### §1.7 Skipped: mechanical closure bookkeeping — this PR introduces and extends no discipline rule, touches no `.claude/rules/**`, no `packages/core/principles/**`, no `CLAUDE.md`, no `prior-art-evaluations.md` and no shipped template; it adds two `done.md` data files in the exact schema an existing convention already defines, which is that convention operating normally rather than any change to it.
Merged
6 tasks
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.
Summary
Research-patch for the recurring gitignored coordination-doc drift problem:
.claude/orchestrator-prompts/**is gitignored by design, so each git worktree holds an independent copy ofpost-1a-coordination/kickoff.mdand other coordination docs. SSOT edit in one worktree is invisible to the others (incident 2026-05-17 after PR #71 cleanup: 3 worktrees retained stale Item 0).Item 2.5 per session-ordering §3.6. Standalone (verified not in companion-integration-analysis Item 3 scope). Research only — no implementation.
Verdict
ADAPT — symlink-to-canonical (not BUILD). ≥3 production candidates exist (git's own guidance, worktree-env-sync,
worktree.linkFilesproposal) so the §7 BUILD-default stop-rule did not fire. Copy-at-creation tools (highest name-match) only REFERENCE'd — T-coord-A trap: they copy → diverge; we need live sync.Maintainer-decision items (ATTN — none block the verdict)
~/.claude-coordination/<project>/(default) vs$GIT_COMMON_DIR/_shared/subdir.claude/orchestrator-prompts/README.mdis tracked → must NOT symlink the whole dir; carve it outNotes
4307ac7(main was locked by another worktree at push time); clean single-file add — no merge conflict against current main.§1.7 Forward-check applied
Recommendation checked against existing disciplines (full detail in patch §6, each with file:line):
.claude/rules/build-first-reuse-default.md§2 lines 21-30, §3 lines 48-58)..git/index/HEAD/tracked files (.claude/rules/parallel-subwave-isolation.md§1 lines 21-37)..claude/rules/no-paid-llm-in-ci.md§1, §5)..claude/rules/dual-implementation-discipline.md§3, §6).§1.7 Backward-check applied
Complete sweep of in-scope artefacts (full detail in patch §7, file:line each):
git worktree list) — complete population, all require migration; none exempt..claude/orchestrator-prompts/README.md(git ls-filesreturns exactly this path) — explicitly carved out (patch §5 wrinkle)..claude/hooks/swept — none perform sync, no conflict, no regression surface (.gitignore:2defines the scope boundary).