feat(framework): fw-4.14.3 — spec-refresh discipline for multi-Charter execution (#150 Cubeta A)#152
Merged
Conversation
…r execution (#150 Asks 1, 2, 4) Closes Cubeta A of #150 — surfaced by Sentinel after running a single specs/002-commshub/plan.md through seven consecutive Charters (CHARTER-07..17, ~1 month). The bridge doc covered Charter declaration but said nothing about spec maintenance during multi-Charter execution — and naively re-running /speckit-plan regenerates assertions about already-shipped user stories that the actual code does not implement. This patch documents the canonical discipline; Cubeta B (the straymark spec-drift CLI mechanizing Gate (a) + cross-Charter lessons-learned per #146 Proposal D) is deferred to a dedicated post-announcement Charter, tracked separately. Framework changes (fw-4.14.3): - dist/.straymark/00-governance/SPECKIT-CHARTER-BRIDGE.md (EN + ES + zh-CN): new section "Spec maintenance during multi-Charter execution" with subsections covering when to refresh (4 heuristics), how to refresh (scope-limited prompt), three mechanical gates (code validation, hunk-by-hunk review, two-PR split), the explicit prohibition on re-running /speckit-tasks, Constitution Check re-evaluation cadence, and the spec-drift CLI roadmap signal. - Anti-pattern entry against re-running /speckit-tasks added, with pointer to the safe path. - docs/contributors/WHAT-IS-A-CHARTER.md §4 Mode A: cross-link to the new bridge-doc section inserted at the natural decision point ("what happens when a single spec drives many Charters?"). No CLI changes (cli-3.13.1 remains the matching CLI version), no schemas or templates moved. Sentinel can read the new section before filling CHARTER-18. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.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.
Summary
Closes Cubeta A of #150. Surfaced by Sentinel after running a single
specs/002-commshub/plan.mdthrough seven consecutive Charters (CHARTER-07..17, ~1 month). The bridge doc covered Charter declaration but said nothing about spec maintenance during multi-Charter execution.The empirical case: 12 unreflected learnings (infrastructure patterns refined during execution, code gaps the plan didn't anticipate, Charter/audit patterns crystallized over the cycle) accumulated to the point that the next Charter (CHARTER-18, US5) carries ~50% probability of inheriting a critical/high audit finding from stale-premise inheritance. But naively re-running
/speckit-planis worse — regeneration asserts things about already-shipped user stories that the actual code does not implement.This PR ships the canonical discipline as governance documentation. Cubeta B (the
straymark spec-driftCLI that mechanizes Gate (a), plus the cross-Charterlessons-learnedindex from #146 Proposal D) is deferred to a dedicated post-announcement Charter — tracking issue to be filed in the next commit onmain.What's in scope
dist/.straymark/00-governance/SPECKIT-CHARTER-BRIDGE.md(EN + i18n/es + i18n/zh-CN)New section "Spec maintenance during multi-Charter execution" with:
R<N>(new)count >6 / target US touches refined infra. Explicit guidance to skip when none hold.tasks.mdregeneration./speckit-tasks— regenerating destroys[X]completion marks and*CHARTER-NN:* <sha>*annotations. Manual edit for the target phase only.straymark spec-drift— explicitly names the deferred CLI so adopters know the mechanization is coming.Plus a new anti-pattern entry pointing at the safe path.
docs/contributors/WHAT-IS-A-CHARTER.md§4 Mode A: cross-link inserted right after the SpecKit-driven flow diagram, surfacing "what happens when a single spec drives many Charters?" with a pointer to the new bridge-doc section. Contributors landing on the conceptual doc find the operational discipline at the natural decision point.
Versioning
dist/dist-manifest.yml→4.14.3.QUICK-REFERENCE.md,AGENT-RULES.md,DOCUMENTATION-POLICY.md,C4-DIAGRAM-GUIDE.md,FOLLOW-UPS-BACKLOG-PATTERN.md,SPECKIT-CHARTER-BRIDGE.md) bumped tov4.14.3across EN + ES + zh-CN.README.md+ i18n +CLI-REFERENCE.md+ i18n updated.CHANGELOG.mdentry explaining the Cubeta A/B split and the rationale.What's NOT in scope
cli-3.13.1remains the matching CLI version. Nocli/files touched, noCargo.tomlbump.straymark spec-driftimplementation. Cubeta B; deferred to post-announcement Charter.charter-template.md. The pattern applies across Charters; the per-Charter template is unchanged.Why a patch release (not just a docs PR)
SPECKIT-CHARTER-BRIDGE.mdis shipped to every adopter viastraymark init. Without bumping the framework,straymark update-frameworkwould not bring the new section to existing installations. Sentinel reads the section before filling CHARTER-18 — time-sensitive.Test plan
cat dist/dist-manifest.ymlshowsversion: \"4.14.3\"grep \"Spec maintenance during multi-Charter\" dist/.straymark/00-governance/SPECKIT-CHARTER-BRIDGE.mdfinds the new sectioni18n/es/andi18n/zh-CN/overlays — paridadgrep \"v4.14.3\" dist/.straymark/00-governance/QUICK-REFERENCE.mdshows the new footergrep \"fw-4.14.2[^+]\"returns 0 results across docs (no stale footers)straymark-fw-4.14.3.zipcleanly (post-tag)Follow-up — Cubeta B tracking
A separate tracking issue will be filed on
mainpost-merge consolidating:straymark spec-driftCLI command)lessons-learned.mdindex)Both are mechanics living above the Charter as a unit — the missing "cross-Charter knowledge layer". A post-announcement Charter will design them cohesively. Linking that issue here once filed.
🤖 Generated with Claude Code