Skip to content

docs: close S-E round-4 fidelity watch-list W-5 (park-record contract) + W-10 (P2b withdrawal in the umbrella kickoff) - #1256

Merged
artyhoo merged 2 commits into
stagingfrom
claude/infallible-sammet-9334bf
Aug 7, 2026
Merged

docs: close S-E round-4 fidelity watch-list W-5 (park-record contract) + W-10 (P2b withdrawal in the umbrella kickoff)#1256
artyhoo merged 2 commits into
stagingfrom
claude/infallible-sammet-9334bf

Conversation

@artyhoo

@artyhoo artyhoo commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Summary

Closes the two loose ends left by the round-4 fidelity audit of PR #1237 (merged as 1cb8fc8641). Two atomic commits, both on planning-session-owned surfaces.

W-5 — KICKOFF-AMBIGUOUS, decided and encoded. A stage kickoff pairs a ## §2 Permitted files allowlist with the §3a/§4c park-don't-guess contract, but no §2 revision enumerated an artefact where a fired PARK — or the propagation of its correction — could be recorded, so the S-E session edited both its own kickoff and the design spec, outside the allowlist. Verified across all 6 unique kickoff revisions: none lists .claude/orchestrator-prompts/* or docs/superpowers/specs/*.

The decision is REUSE of channels that already ship, not new machinery:

What Where it is recorded Already exists at
The fired PARK itself park payload — manualReviewRequired / blocked_external + blockedReason stating «Option A → consequence X / Option B → consequence Y» packages/core/../cli/questions.ts:85-93 (detection)
The git-durable record the stage PR body's ## Parked questions section .github/pull_request_template.md:53; acceptance-package section per spec D4 (docs/superpowers/specs/2026-07-23-acceptance-contour-design.md:67); routed by .claude/skills/dispatcher/SKILL.md:280
The PARK's correction propagated into a spec / ADR / kickoff a separate owner commit on that artefact, never the stage PR spec → precedent PR #1252; kickoff → .claude/rules/kickoff-staging-placement.md:28

So ## §2 Permitted files needs no new entry — it needs to say that recording a PARK is not a file write. Encoded in /pipeline §5 (.claude/skills/pipeline/SKILL.md:315), which already owns the kickoff-side park precondition, together with the canonical §2 clause for kickoff authors to copy and a new anti-pattern #park-record-outside-the-allowlist with its falsifier.

Honest note on the encoding target. There is no stage-kickoff template file in this repo — Permitted files appears in zero files outside .claude/orchestrator-prompts/ (grep -rln "Permitted files" | grep -v orchestrator-prompts → empty), and .claude/skills/pipeline/templates/ holds only meta-kickoff.template.md + state.md.template. The §2/§3a shape propagates by copy between kickoffs. Minting a template now would fork a second source for ~20 already-authored kickoffs (#sync-by-copy-paste), so the skill that already states the kickoff contract is the encoding target.

W-10 — umbrella bookkeeping. .claude/orchestrator-prompts/arch-v2-context-pipeline/kickoff.md:260 still listed the withdrawn P2b deliverable ("local-shadow pre-push check"). Annotated with the same strikethrough + dated-WITHDRAWN + do-not-rebuild shape the sibling spec-owner commit #1252 used, and carrying forward the unclaimed inverse hazard (a local file adding excludes to hide always-on rules). Per spec §3 row P4 this is a planning-session-owned surface closed by an umbrella bookkeeping commit, not by S-E.

Provenance

n/a — not a stage PR. No kickoff governs this change and nothing was factory-dispatched; it is a planning-session change on two planning-session-owned surfaces. Base origin/staging 3df8fb07d1; inputs are the PR #1237 round-4 fidelity watch-list items W-5 and W-10.

Review findings

Own cold-QA pass over the branch diff (T19), no sub-agent dispatched (none requested). Verification run on this host:

  • npx vitest run packages/core/principles → 37 files, 352 passed | 1 skipped.
  • make self-audit → green; link-check 96 OK / 0 errors; always-on 48671 B within ceiling 54000 B.
  • bash scripts/run-local-ci-sweep.sh → 3 gates passed (md-ci-only, format-check, byte-identical).
  • In-flight probe before authoring: gh pr list --state open → no PR touches either file; aif queue → no in-flight task on this umbrella.

Fidelity verdict

FIDELITY: skipped — not a stage PR: no kickoff governs this change, so no Basis artefact exists for agents/fidelity-auditor.md to audit the diff against

Parked questions

none — no fork fired while authoring. (Dogfood note: this PR is itself the conformant shape the W-5 decision prescribes — the umbrella-kickoff correction rides a separate owner commit rather than a stage PR.)

§1.7 Self-discipline check (REQUIRED if PR touches discipline-bearing files)

§1.7 Forward-check applied

  • .claude/rules/build-first-reuse-default.md:1 — verdict REUSE, not BUILD: both record channels already ship (.github/pull_request_template.md:53, .claude/skills/dispatcher/SKILL.md:280). No new artefact, no dependency, no module → not a capability commit per CLAUDE.md «What is a capability commit?»; both commits carry the Prior-art: skipped — … hatch with ≥20-char rationale.
  • .claude/rules/rule-enforcement-channel-selection.md:31 — detectability axis: «did the author state the park-record clause in §2» is judgment at authoring time, so the delivery is prose in the skill that authors kickoffs, not a gate (#gate-where-judgment-needed). The mechanically-checkable half is captured as the anti-pattern's falsifier for review time.
  • .claude/rules/attention-is-not-a-mechanism.md:26 — honest scope: this closes the ambiguity (§2 said nothing), not the detection (nothing blocks a stage session that edits outside its allowlist). Stated as a falsifier rather than claimed as a gate.
  • .claude/rules/no-paid-llm-in-ci.md — zero CI mechanism added, zero API-billed calls.
  • .claude/rules/doc-authority-hierarchy.md:21.claude/skills/pipeline/SKILL.md:21 already declares «§0 invocation through §11 failures»; the new §5 prose falls inside it, so no header amendment. Kickoffs stay tracked-but-header-exempt per that rule's §2.
  • .claude/rules/language-discipline.md:9 — both edits are repo artefacts, authored in English.
  • .claude/rules/kickoff-staging-placement.md:28 — the umbrella-kickoff edit rides its own staging PR before any further dispatch, which is the rule's binding sequence.

§1.7 Backward-check applied

Class of this change = statements of the stage-kickoff §2/park contract, and statements of the withdrawn P2b deliverable. Enumerated by grep -rn "Parked questions" and grep -rn "P2b\|local-shadow" over the tracked tree (worktrees excluded):

  • .claude/skills/dispatcher/SKILL.md:280SWEPT-CLEAN. Already names the ## Parked questions PR channel; the new clause points at it rather than re-describing it, so no #two-prompts-drift.
  • .github/pull_request_template.md:53SWEPT-CLEAN. The section stub already exists; no edit needed, which is what makes this REUSE rather than BUILD.
  • .claude/skills/arch/SKILL.md:101SWEPT-CLEAN. The factory-bound row already routes umbrellas to /pipeline; adding a duplicate clause there would be #sync-by-copy-paste.
  • .claude/rules/kickoff-staging-placement.md:32SWEPT-CLEAN. Same paths: scope, orthogonal concern (merge timing, not §2 content); cited as the kickoff-correction route, not amended.
  • docs/superpowers/specs/2026-08-06-pipeline-token-economy-design.mdSWEPT-CLEAN, no edit. All four P2b statement sites were struck through by the sibling owner commit spec(token-economy): P2b withdrawal recorded at every statement site (owner commit per S-E fidelity r4 W-9) #1252; re-touching them here would duplicate that commit.
  • .claude/orchestrator-prompts/arch-v2-context-pipeline-s-e/kickoff.md:55,60,122,124GAP-FOUND, deliberately NOT actioned. It still carries P2b as a live deliverable and the overturned replace-per-key overlay model. S-E has merged (PR arch-v2 S-E: L1 budget gate + config-assertion asserts + InstructionsLoaded verification (fidelity GO — round 4) #1237), and .claude/orchestrator-prompts/README.md declares prompts append-only audit-trail artefacts («do not edit after the umbrella PR is open»). Retro-editing a closed dispatch input would rewrite the record the fidelity audit was run against. Surfaced, not silently swept.
  • Un-dispatched sibling stage kickoffs (S-D′, S-F, S-I) — forward-going, not retrofitted. The clause applies to the next kickoff authored; retrofitting live dispatch inputs is a separate, operator-invited change (CLAUDE.md PR strategy).

Self-application (T15). The decision is dogfooded by this PR: the umbrella-kickoff correction is a separate owner commit rather than a stage-PR rider, and ## Parked questions above is filled for real. The W-5 clause was derived by reading the shipped channels (questions.ts, the PR template, dispatcher/SKILL.md, spec D4) rather than from recall — source-before-shape.md:1 reuse surface.

Test added 2 commits August 7, 2026 12:55
…te (W-5)

Closes the arch-v2 S-E round-4 fidelity watch-list item W-5: a stage kickoff
pairs a `## §2 Permitted files` allowlist with the §4c park-don't-guess
contract, but no §2 revision enumerated an artefact where a fired PARK — or
the propagation of its correction — could be recorded, so the S-E session
edited both its own kickoff and the design spec, outside the allowlist.
Verified across all 6 unique kickoff revisions: none lists
`.claude/orchestrator-prompts/*` or `docs/superpowers/specs/*`.

Resolution is REUSE, not new machinery. A fired PARK is recorded in the park
payload (`manualReviewRequired` / `blocked_external` + `blockedReason`,
`questions.ts:85-93`) and in the stage PR body's `## Parked questions` —
already an acceptance-package section under spec D4, already stubbed at
`.github/pull_request_template.md:53`, already routed by
`.claude/skills/dispatcher/SKILL.md:280`. Propagating a PARK's *correction*
into a spec, an ADR, or any kickoff is a separate owner commit on that
artefact (precedent PR #1252 for specs; `kickoff-staging-placement.md §1`
for kickoffs), never part of the stage PR. So §2 needs no new entry — it
needs to say so.

Encoded in `/pipeline` §5, which already owns the kickoff-side park
precondition ("kickoff MUST carry §4c park-don't-guess",
`.claude/skills/pipeline/SKILL.md:313`), with the canonical §2 clause for
kickoff authors to copy and a new anti-pattern
`#park-record-outside-the-allowlist` carrying its falsifier. There is no
stage-kickoff template file in the repo (`Permitted files` appears in zero
files outside `.claude/orchestrator-prompts/`), so the skill that states the
kickoff contract is the encoding target; minting a template would fork a
second source for ~20 already-authored kickoffs (`#sync-by-copy-paste`).

Prior-art: skipped — doc-only convention statement inside an existing skill; reuses the PR-body and park-payload channels that already ship, no new capability
…E charter (W-10)

Closes the arch-v2 S-E round-4 fidelity watch-list item W-10. The S-E charter
row still listed "local-shadow pre-push check" as a live deliverable
(kickoff:260) after P2b was withdrawn on 2026-08-07: the shipped client MERGES
array settings (`project ∪ local`), so the superset assert is
green-by-construction — `#hope-as-gate`. Evidence:
`docs/meta-factory/research-patches/2026-08-06-claudemd-overlay-semantics-verdict.md`
§3-§4; the spec's own four statement sites were struck through in the
sibling owner commit #1252.

Per spec §3 row P4 the umbrella kickoff is a planning-session-owned surface,
closed by an umbrella bookkeeping commit rather than by the S-E stage PR
(whose §2 permitted-files set names neither the kickoff nor the spec) — the
same conformant shape #1252 used for the spec. Annotation mirrors that
commit's style: strikethrough + dated WITHDRAWN + the do-not-rebuild pointer,
and carries forward the unclaimed inverse hazard (a local file ADDING excludes
to hide always-on rules), which no stage currently owns.

Prior-art: skipped — doc-only umbrella-kickoff bookkeeping recording an already-made withdrawal; no new capability
@artyhoo
artyhoo merged commit ea5f746 into staging Aug 7, 2026
43 of 44 checks passed
@artyhoo
artyhoo deleted the claude/infallible-sammet-9334bf branch August 7, 2026 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant