minimalism: one lens at build, review and deferral, replacing #29/#30/#31 #95
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
external-review
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
security
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence-archived#95
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Supersedes #29 (review minimalism lens), #30 (executor YAGNI posture) and #31 (in-code shortcut marker harvested to a debt ledger). Those three are one idea observed at three points in the lifecycle, and filing them separately made the spine look like it had three unaddressed proposals rather than one unmade decision.
The one idea
Over-building is not a bug. It is code that works and should not exist, which is precisely why an adversarial correctness review cannot catch it - nothing it checks is wrong. Cadence names this failure mode nowhere today. The three points where it can be attacked, cheapest first:
cad-executorships the lean version and flags the fuller option in one line of the deviation record, instead of building it speculatively. Cheapest, because nothing is created that later has to be found and deleted./cad-capturealready owns. Without it, "later" rots into "never" with no pointer from the code back to the deferral.Why one requirement rather than three issues
Each part is guidance or a lens, not a subsystem, and each is nearly worthless alone: a delete-list nobody acts on, a YAGNI default with no pass that catches what slips through it, a marker convention with no harvest. Together they are a single stated posture with one place to argue about it.
The 2026 harness dossier audited Cadence at v2.4.0, ranked it #1 of 35, and listed "strengthen minimalism/debt capture proposals" as improvement priority #4 - reading exactly these three open issues and scoring them as outstanding.
Scope note
Not v2.6.0. That cycle is the reconciliation cycle (queue triage, live friction, parser defects, doc sweep) and its byte budgets are already tight - every prose surface the live-friction phase touches sits at exactly its budget today. Parts 1 and 2 ADD resident prose, which is the same objection that deferred CTX-02 out of v2.5.0. This lands as one requirement in a later cycle, planned as a whole.
Prior art
ponytail (https://github.com/DietrichGebert/ponytail):
ponytail-reviewandponytail-auditare the delete-list pass, one line per finding tagged delete / stdlib / native / yagni / shrink, ranked biggest-cut-first, ending innet: -N lines possible, applying nothing. Its ladder - does this need to exist, reuse what is here, stdlib, native, installed dep, one line, then build - is the build-time posture. Worth lifting the lens, not the code.Split 2026-08-08. Part 3 - the in-code shortcut marker and its harvest - is pulled forward into
v2.6.0phase 3 (Field friction) as requirementDBT-01. Parts 1 and 2, the executor's YAGNI posture and the review delete-list, stay deferred here underMIN-01with their existing reasoning unchanged.The split is not arbitrary. The objection that defers parts 1 and 2 is that they add resident prose on the dispatch path, in a cycle whose surfaces already sit at exactly their byte budgets. That objection does not reach part 3: a comment convention plus a harvest seam adds nothing to what any agent carries per dispatch. This is a foothold, not the posture change.
Two measurements taken before writing the requirement, both of which constrain it:
The tree already carries 19 conventional markers - 14
TODO, 2NOTE, 1 eachXXX,HACK,FIXME- and nothing lints any of them. A harvest keyed onTODOwould return 19 false positives on its first run, so the convention needs its own token and the phase criterion says so explicitly..planning/CAPTURE.md's tracked state varies by project: gitignored in this repo and inburnrate, tracked inhindsightandassistant. That asymmetry needed a stated answer rather than an assumption, and the requirement takes the coherent one - the marker in tracked code is the durable record, the queue is a regenerable view of it, and the harvest is therefore idempotent. A queue lost to a clone is rebuilt by re-running the harvest. That is also why the harvest is a seam carrying itsCONTRACTSrow rather than a documented grep: only a seam can be idempotent and carry the regression test that proves it finds a planted marker and does not invent one.This issue stays open for parts 1 and 2.