docs(wave-plan): schedule channel-earliness audit (Track 2.3, parallel-safe) - #179
Merged
Merged
Conversation
…l-safe)
Adds Track 2.3 — the retroactive channel-earliness sweep that
rule-enforcement-channel-selection.md §6 explicitly deferred
("forward-going, not retroactive"). $0 read-only research, own
research-patch, no shared-file writes → parallel-safe. Timed BEFORE
any future check-building wave (incl. N8 A-phase) so it sets the
channel default that prevents new checks landing later than their
data permits. Kickoff authored at
.claude/orchestrator-prompts/channel-earliness-audit/kickoff.md (gitignored).
Prior-art: skipped — doc-only scheduling edit, no new capability or dependency.
This was referenced May 23, 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
Jun 27, 2026
…T + description-quality defer (#774) * docs(readme): drop unimplemented "full sweep nightly" mutation claim (R2) The README promised "incremental on PR diff, full sweep nightly" for Stryker mutation testing. No shipped CI template implements a nightly full-sweep job (verified: git ls-files | grep templates | xargs grep -lE 'schedule:|cron' → empty). Path B chosen: remove the overclaim, keep the accurate incremental-on-PR promise. Closes R2 PARTIAL from research-application-audit 2026-06-27. Also closes the U8 honest-readme overclaim for this finding (do not duplicate in U8). Prior-art: skipped — doc edit, no new capability Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(ssot): record SkillRouter REFERENCE verdict in prior-art register (R4a) SkillRouter (arxiv 2603.22455) was evaluated in research-patches/2026-05-25- planner-completeness-prior-art.md (L5 §1) with Verdict REFERENCE, but never reached the SSOT register. This violates the «process cited → SSOT reached» invariant. Append SSOT entry #179: Verdict REFERENCE (neural retrieve-and-rerank for 80K+ registry — T16 problem-class mismatch vs our ~15-skill lookup); Trigger «CC skill registry grows to 50+ skills → revisit ADAPT». Closes R4a gap. Prior-art: skipped — SSOT append, no new capability Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(rules): defer SKILL.md description-quality discipline as Class C (R4b) SkillRouter evidence (SSOT #179: «hiding skill body → 31–44pp routing accuracy drop») establishes that description quality is load-bearing, but no discipline existed. Codify as Class C rule (.claude/rules/skill-description-quality.md): deferred because no misrouting incidents are recorded; semantic quality can't be gated mechanically without #discipline-theatre; promotion criterion is ≥3 documented misrouting incidents in 6 months → Class A at lowest-free slot (30). Register in packages/core/principles/09-doc-authority-hierarchy.ts REQUIRED_ HEADER_DOCS; update shape sentinel to 82 to reflect the addition. Closes R4b gap. Prior-art: skipped — Class C rule + principle-09 registration, no new capability Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> §1.7: forward-check — no-paid-llm-in-ci (skill-description-quality.md:1 defers to Class C, zero CI cost) + doc-authority-hierarchy (packages/core/principles/09-doc-authority-hierarchy.ts:20 registers the new rule); backward-check — swept the SKILL.md description surface, added SkillRouter REFERENCE to docs/meta-factory/prior-art-evaluations.md:1, removed the README.md:1 nightly overclaim, no existing rule superseded. * docs(agents): register skill-description-quality.md in the AGENTS.md rule index Principle 21 rules-autoload probe greps each .claude/rules/*.md basename in AGENTS.md; the new R4b rule was absent (DEGRADED: missing 1/17). Add its index row so non-CC harnesses (which do not auto-load .claude/rules/) read it. Prior-art: skipped — rule-index sync after new rule, no new capability --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
artyhoo
added a commit
that referenced
this pull request
Jun 28, 2026
…s (§13.5 I-2 Layer 1) (#793) Layer-1 DETECTION ONLY: produce a {dir->stack} map for a multi-stack monorepo so the secondary stack is never silently dropped — the #780 nuance at the detection layer (timeliner: apps/api -> ts-server + apps/mobile -> react-native). Layer-2 emission (on-disk marker / per-workspace applies-to / ESLint files:) is OUT OF SCOPE here. setup.d/lib.sh: - Parameterize _detect_stack_from_pkg to accept an optional target dir (default $PROJECT_ROOT). No-arg form is unchanged — the I-1 install stack-pick and 15-companions-stack.sh both call it no-arg (back-compat, proven by the new test). - Add two node-free helpers (no yq/pnpm/turbo dep; install runs before consumer deps): * _workspace_pkg_dirs [root] — enumerate workspace package dirs (children WITH a package.json) under the 5-dir convention (apps packages services libs modules — the SAME set as the arch:check resolver at setup.d/70-deps.sh:37, so the two never drift). * _detect_stacks_per_workspace [root] — walk each x _detect_stack_from_pkg -> echo `dir<TAB>stack` per workspace. A per-workspace `unknown` is a re-checkable marker, KEPT in the map (never dropped, never exit 1 — the §13.5 fork-2 default). tests/install-sh/workspace-stack-detect.test.sh (new, CI-wired): fixture monorepo (apps/api->ts-server, apps/mobile->react-native, packages/config->unknown, apps/docs without package.json) proves BOTH stacks land in the map (T-MSM-A); paired-negatives prove root-only detect drops the secondary stack, no-package.json dirs aren't enumerated, `unknown` is kept not silently concretized, a flat repo yields an empty map, and the _detect_stack_from_pkg arg vs $PROJECT_ROOT parameterization. tests/install-sh/layer-units.test.sh: register the 2 new helpers in the SSOT_FUNS copy-paste guard (T15 — new lib helpers get the same layer-isolation protection). .github/workflows/audit-self.yml: wire the new test into CI (deterministic bash, no LLM). SSOT: appended #180 (Nx per-project inference, REFERENCE) + #181 (pnpm/Turborepo workspace discovery, REFERENCE). Research draft IDs #111-#113 were stale — the live SSOT highest is #179 (verified), so the real next IDs are #180/#181. #111 (ESLint files:) is deferred to the Layer-2 commit. Prior-art: prior-art-evaluations.md#180 (Nx per-project stack inference, REFERENCE — thin per-dir walk REUSES our node-free _detect_stack_from_pkg; Nx runtime ADOPT rejected per build-first-reuse-default.md §2). Prior-art: prior-art-evaluations.md#181 (pnpm/Turborepo workspace discovery, REFERENCE — node-free reader of the 5-dir convention; no install-time pnpm/turbo dependency).
artyhoo
added a commit
that referenced
this pull request
Jul 31, 2026
…mbrella + S-A kickoffs (#1189) * docs(handoff): /arch v2 + context-pipeline session handoff — decisions, in-flight aif tasks, continuation protocol Prior-art: skipped — session handoff document only, no new capability; decisions it records cite their own SSOT rows (#231, #207, #179, #64). * docs(spec): /arch v2 + context-pipeline system design — layer model, pipeline arc, ADR-1..8 Step 5 of the 2026-07-31 handoff §4 protocol. Fable design authored on the Opus research distillate (spot-checked, freshness-barred) and the Opus cold critique (GO-WITH-PATCHES). All three critique blockers absorbed by re-derivation: #231 over-read retracted (ADR-5), 5/5-K1 incident count corrected to 2/5 and the primary/background split dropped (ADR-6), the calibration falsifier given an oracle via shadow-A/B + pre-declared threshold (ADR-5). M1-M7 absorbed as design constraints (population table, bounded drill-down + distillate K-pass, K6 candidate/adjudicate split, gate-channel re-route to pre-push/CI, operationalized bet falsifier, L1/L2 boundary re-drawn, option spaces spanned). Prior-art: skipped — design spec only, no new capability shipped * docs(arch-v2): umbrella kickoff S-A..S-F + S-A stage-scoped dispatch input Execution plan for the /arch v2 + context-pipeline track, derived from the 2026-07-31 design spec (ADR-1..8) by the Opus plan-writing seat. Umbrella kickoff: stage table S-A..S-F with per-stage scope, dependencies, tier classification (justified against CLAUDE.md's fixed criteria), acceptance and implemented ADRs; dispatch protocol (4-arm in-flight probe, Phase -1 cold review, bridge-profile marker rule with the fidelity-verdict precondition quoted verbatim and re-verified at dispatch); calibration-ledger bootstrap (ADR-5/6/8) with the ADR-8 token instrument named; cross-umbrella dependency on token-audit S1 (S-E only, two gates: merged AND content-read). The bottom seat + shadow-A/B station is marked active from S-B merge onward — S-A predates the contract implementation and is covered only by Phase -1 plus its own acceptance commands. Stated, not papered over. Plan-writer objections (§4, per «who must write the plan cannot rubber-stamp the design»): O-1 three wrapper drifts, not two, and one mis-described — upstream ships brainstorming/spec-document-reviewer-prompt.md in 5.1.0/6.1.1/ 6.2.0, night-mode:15's SDD roster does not match upstream, night-mode:29 cites stale upstream line numbers; O-2 the skill-exists-by-name smoke catches none of them and skips silently off-host; O-3 ADR-8's token metric had no named instrument (aif task tokenTotal/costUsd, verified live); O-4 the ledger principle test is vacuous before 5 rows; O-5 S-D's tier is a function of S-C's verdict; O-6 the spec's marker condition drops CLAUDE.md's «produced by /arch». S-A kickoff is stage-scoped and self-contained (handoff decision 11): W1-W6 with concrete file targets and a verification command each, host-verify contract, descopes, §1.7 obligation in enumeration format, T-enumeration plus three domain traps. Prior-art: skipped — kickoff/plan docs only, no new capability * docs(arch-v2): preserve track evidence artifacts — distillate, corrected idea, cold critique The design spec cites these three as its evidence chain (distillate → corrected idea → GO-WITH-PATCHES critique); they lived only in the session scratchpad under /private/tmp, which does not survive a reboot. Committed verbatim as session artifacts of the 2026-07-31 protocol run. Prior-art: skipped — evidence-record docs only, no new capability * docs(spec): point evidence-chain citations at the committed artifact files Prior-art: skipped — link fix in a design doc, no new capability * docs(spec): absorb token-audit S1 acceptance — fresh N2 numbers, ADR-3 falsifier fired S1 (task c781e8a9, accepted 2026-07-31) measured the repo-owned always-on set at 29-39% of the observed ~100k session-start total, firing ADR-3's pre-registered falsifier: the budget gate's asserted quantity is re-scoped to the repo-owned share (explicitly labelled), the harness remainder routes to settings-recommendations, and the InstructionsLoaded verification task doubles as the measurement-extension probe. N2 updated to the fresher script-reproducible per-environment numbers (140,216 B host vs 118,374 B container), replacing the older channel-level A7 pair. Prior-art: skipped — design-doc correction on fresh measurement, no new capability --------- 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.
What
Two deliverables for the channel-earliness audit R-phase:
.claude/orchestrator-prompts/channel-earliness-audit/kickoff.md(gitignored, lives in the main checkout; not in this diff by design). A full Mode-A Opus R-phase prompt that sweeps every existing check against the «earliest reachable channel» invariant.wave-sequencing-plan.md+ a clause in §0 «What actually remains».Why
The time-axis invariant («every rule fails at the EARLIEST reachable channel») has only ever been applied forward-going — each new check placed at some channel as it was built. rule-enforcement-channel-selection.md §6 explicitly deferred the retroactive sweep. This audit is that sweep.
Triggering incident (2026-05-22): building N8 C4/C5, the agent defaulted them to pre-push and only moved C4 to edit-time after the maintainer asked «can't we catch earlier?» — i.e. it inherited a channel assignment instead of re-deriving the floor. Systemic; this audit is the countermeasure.
The load-bearing principle the kickoff applies per check
The channel floor is set by WHERE THE DATA LIVES — single file → edit-time (move earlier / add companion); commit message → pre-push (floor); cross-file invariant → pre-push/CI (keep); diff range → pre-push or per-file edit-time. Goal is usually ADD an edit-time companion (dual-channel), not move-and-delete —
doc-authority(principle 09 + check-doc-authority.sh) is the model.Timing
Marked parallel-safe (own research-patch file, $0 read-only, no shared-file writes) and timed BEFORE any future check-building wave (incl. N8 A-phase C1–C5) — it sets the channel default so new checks don't land later than their data permits.
Notes / verified findings baked into the kickoff
check-kickoff-traps.shandinject-matching-rule.shexist in.claude/hooks/but are NOT wired insettings.json→ the first-pass «already edit-time» claim is false for them. The kickoff turns this into domain-trap T-CE-A (verify wiring, don't pattern-match on file type — T16).<!-- scope:channel-earliness-audit -->(principle 10) + §1.7 section.Scope
Doc-only scheduling edit + a gitignored kickoff. No checks moved here — each move ships as its own follow-up PR after the audit verdicts land. No capability, no dependency →
Prior-art: skipped.DECISION-NEEDED (surfaced, not decided — reviewer-discipline §2)
None blocking. The audit itself will surface per-candidate decisions (e.g. wiring the two dormant hooks —
settings.jsonis agent-self-protected, maintainer-landed).