Skip to content

modeling-discipline: reconcile scaffold exception with universal 🟡 plan-binding - #3260

Merged
briansrls merged 1 commit into
mainfrom
session/still-hawk-102-scaffold-exception-reconcile
May 18, 2026
Merged

briansrls merged 1 commit into
mainfrom
session/still-hawk-102-scaffold-exception-reconcile

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Summary

Forward-fix to merged #3244. A codex BLOCKING review (sha 15242efd + inline at :257) found a real doc-level rule conflict: #3244 made the 🟡 plan-binding universal (every 🟡 binds a named missing primitive + owning substrate PR/task + dissolve-on-arrival follow-up), but Practice 4's scaffold exception was left as-is — it let the DECISIONS.md classification ledger defer wholesale and treated feature:<sunset-milestone> itself as the gate.

Two consequences the review flagged:

  • A milestone-only gate (feature:<sunset-milestone>) names no concrete missing primitive — it leaves the dissolution path non-checkable.
  • A wholly-deferred ledger has nowhere to record the 🟡's plan-binding, so a scaffold 🟡 can't satisfy the universal merge requirement.

The fix

  • The scaffold exception now defers only the verbose patterns-tried analysis — it does not waive the 🟡's bound dissolution plan (named primitive/consumer + owning substrate PR/task + dissolve-on-arrival follow-up). The plan-binding is the minimum that makes a 🟡 valid and is recorded in DECISIONS.md even for a scaffold.
  • The gate names the concrete missing primitive (// 🟡 feature:<missing-primitive> — DECISIONS.md <entry>); a bare <sunset-milestone> is not a valid gate — the milestone records when the scaffold is revisited, not what it waits on.

Audit (operator-requested — "see if we missed anything else")

Audited the keystone end-to-end for other un-reconciled interactions from the recent amendment pile (#3241/#3242/#3244/#3258). Findings:

Changes

  • docs/modeling-discipline.md: scaffold exception rewrite (Practice 4) + Calibration always-BLOCKING cross-reference. +21 / -6, single file.

Test plan

  • Docs-only; no code, no tests.

🤖 Generated with Claude Code

…🟡 plan-binding

BLOCKING codex review (#3244, sha 15242ef + inline :257): #3244 made 🟡
plan-binding universal (every 🟡 binds a named primitive + owning
substrate PR + dissolve-on-arrival follow-up), but Practice 4's scaffold
exception still let the DECISIONS.md ledger defer wholesale and treated
`feature:<sunset-milestone>` itself as the gate. A milestone-only gate
leaves the dissolution path non-checkable, and a wholly-deferred ledger
has nowhere to record the plan-binding.

Fix: the scaffold exception now defers only the verbose
patterns-tried analysis — NOT the 🟡's bound dissolution plan, which is
the minimum that makes a 🟡 valid and is recorded even for a scaffold.
The gate names the concrete missing primitive; a bare sunset-milestone
is not a valid gate (the milestone records when revisited, not what is
awaited).

Audit also surfaced a minor gap: the Calibration section's general
NON-BLOCKING tier did not cross-reference that dissolution findings are
an always-BLOCKING class — added that line so a dissolution finding
cannot be read as a NON-BLOCKING cleanup.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls
briansrls merged commit 425f7ee into main May 18, 2026
7 checks passed
@briansrls briansrls mentioned this pull request May 18, 2026
6 tasks
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