Outcome-first development pipeline: wired-module budget + fleet contract - #1055
Draft
zkWizard wants to merge 2 commits into
Draft
Outcome-first development pipeline: wired-module budget + fleet contract#1055zkWizard wants to merge 2 commits into
zkWizard wants to merge 2 commits into
Conversation
Ratchets the count of staged (unreachable) src/lib modules so new logic must earn a call site instead of adding to the invisible shelf. Refactors walk-wired.mjs to export the reachability walk, adds check-wired-budget.mjs with a committed ceiling in fleet/wired-budget.json, and wires it into npm run verify and a CI job. Signed-off-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Quinn The Wizard <zkWizard@users.noreply.github.com>
Redefines 'done' as shipping a user-visible change, wiring a staged module, or advancing a flagship roadmap item; names the anti-patterns (new staged modules, caveat-only clauses, micro-polish churn). Adds outcome-owning lanes (Integrator, Experience, Flagship, Layers, capped Platform & Quality) and per-cycle pipeline metrics judged by outcomes, not PR volume. Signed-off-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Quinn The Wizard <zkWizard@users.noreply.github.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.
What does this PR do?
Starts turning the expansion fleet into an agile, outcome-first pipeline. The diagnosis was that velocity is high but aimed at the margins: ~half of
src/lib(120 of 276 modules) is unit-tested but unreachable — code no user ever sees — and recent history is dominated by caveat clauses and micro-polish rather than user-facing progress. This PR adds a mechanical gate against that pattern and rewrites the fleet's rules so "done" means shipping something a user notices.1. Wired-module budget — the "wire it, don't shelve it" gate
scripts/walk-wired.mjsrefactored to exportcomputeReachability()(its report CLI is unchanged) so the gate measures the bundle exactly the way the existing oracle does — via vite sourcemaps, which see dynamic imports and tree-shaking.scripts/check-wired-budget.mjsfails when the count of staged (unreachable)src/libmodules grows past a committed ceiling infleet/wired-budget.json(currently120). Adding a staged module turns the build red; wiring one in lowers the count and you ratchet the ceiling down in the same PR. Same "raise it only deliberately" philosophy ascheck-bundle-size.mjs.npm run verifyand a new required CI job (Wired-module budget).2. Outcome-first fleet contract
docs/fleet-expansion-program.mdnow defines done as one of: ships a user-visible change, wires a staged module, or advances a flagship roadmap item — with explicit anti-patterns (new staged modules, caveat-only*Censoring/*Clausehelpers, micro-polish-as-a-whole-cycle) and quality-over-quota (no minimum PR count).3. Outcome-owning lanes (the "who owns new work" answer)
fleet/expansion-queue.json(schema v2) gains apipelinepolicy block (definition of done, anti-patterns, staged-module budget pointer, per-cycle metrics) and five outcome lanes, each seeded with a concrete first task:The six Earth-science specialists become advisory input to these lanes rather than independent PR factories. Metrics are judged by outcomes (
userVisibleChanges,modulesWired,stagedModuleCounttrend,flagshipStepsLanded), not PR volume.Type of change
Checklist
npm run lint && npm run typecheck && npm run test && npm run buildlocally and they passgit commit -s)Testing / evidence
The gate was exercised in both directions:
Also verified:
npm run check:wiredpasses, refactoredwalk-wired.mjsCLI still reports and--list stagedstill works,npm run lintclean, andnpm run format:checkclean across the repo. No application code changed, so no UI walkthrough applies.Notes for reviewers
This is deliberately the mechanism (a gate) plus the rules (the contract), not the feature work itself. The seeded lane tasks (probe-caveat budget, #170, a new layer, first staged-module wiring) are the natural first PRs the new pipeline should produce, and each will be a real user-visible change that the budget/metrics reward.