claude: add roadmap discipline (v1 target + parking lot, anti-creep)
New "## Roadmap discipline" section in the global CLAUDE.md: every project carries a ROADMAP.md (v1 target = 3-7 capabilities + parking lot; the feature-gate defaults to parking lot regardless of who proposed the feature; creep-check at checkpoints). The feature-axis analog of value-of-information (probes) + patch-default (SemVer). Per-project file defined as a skeleton in corviduo-project-template.
This commit is contained in:
@@ -582,6 +582,51 @@ from this point forward reflects the discipline; past versions
|
||||
record what happened under the previous rule. The pre/post boundary
|
||||
is the amendment-effective commit, not the rule itself.
|
||||
|
||||
## Roadmap discipline — v1 target + parking lot (anti-creep)
|
||||
|
||||
Projects sprawl at v0 when features land with **no v1 target to gate
|
||||
them against** — every good idea, lacking a home, becomes v0 scope by
|
||||
default, and the project never converges. This is the feature-axis
|
||||
analog of two disciplines already in force: **value-of-information**
|
||||
for probes (don't-measure-what-won't-change-behavior) and
|
||||
**patch-default** for version bumps. Same posture —
|
||||
*asymmetric default toward not-doing* — applied to features.
|
||||
|
||||
**Every project carries a `ROADMAP.md`** (a screenful, not a PRD):
|
||||
|
||||
1. **v1 target** — the small, explicit "what must be true to cut
|
||||
1.0": **3–7 capabilities**. A big v1 is itself the creep; keep it
|
||||
tight. This is the done-definition AND the anchor every feature is
|
||||
gated against.
|
||||
|
||||
2. **Parking lot (post-v1 / vNext / spinout)** — every deferred idea,
|
||||
named, with a home. Creep lands *here* instead of silently
|
||||
becoming v0 scope. A "feature" that's really its own project is a
|
||||
**spinout**, not v1 scope.
|
||||
|
||||
3. **The gate (the anti-creep mechanism):** a proposed feature → *on
|
||||
the v1 path? → in; else → parking lot.* **Default = parking lot.**
|
||||
When both "v1" and "park" are defensible, park it — the same
|
||||
tie-break-to-the-cheaper-tier asymmetry as the SemVer patch-default.
|
||||
Applies regardless of who proposed the feature (operator included);
|
||||
the gate is about v1-path-fit, not provenance.
|
||||
|
||||
4. **Creep-check at checkpoints:** when surfacing progress, ask "is
|
||||
what we're building on the v1 path?" Off-path-but-worth-keeping →
|
||||
parking lot, surfaced to the operator, never silently into v0.
|
||||
|
||||
The per-project `ROADMAP.md` file shape + location is defined in
|
||||
`corviduo-project-template` as a copied-in **skeleton** (like
|
||||
`persistent-memory.md` — new projects copy it, then the content
|
||||
diverges per project), NOT a byte-identical canonical. The skeleton
|
||||
carries the shape; the discipline itself lives in this rule (loaded
|
||||
every session), so no byte-sync of content is needed. This mirrors
|
||||
the SemVer global-rule + per-project-version-file split: the version
|
||||
*field* is conventional, its *value* diverges per project — nobody
|
||||
canonical-syncs version values, and likewise nobody syncs roadmap
|
||||
content. v1.0 is cut when the ROADMAP's v1 target is met — tying
|
||||
directly into the SemVer "v1.0 = discipline-tightening event."
|
||||
|
||||
## Issue → AFK dispatch hygiene (Sleipnir)
|
||||
|
||||
Before marking any issue `ready-for-agent` (the label that gates AFK
|
||||
|
||||
Reference in New Issue
Block a user