fak maturity scorecard — lifecycle, not just completeness
maturity_debt (ladder-skips): 0; maturity index 79/100 (C) over 112 declared capabilities (35 carry the benchmarked badge).
maturity: 112 capabilities, index 79/100 (C); no ladder-skips (every capability is at most as mature as its evidence); 1 proposed · 0 prototyped · 17 tested · 58 dogfooded · 36 default
A v1 prototype can be legitimately complete and still not be tested, dogfooded, benchmarked, or the default. This scorecard makes that lifecycle visible: it places every declared capability (one per internal/<leaf> lane in dos.toml [lanes.trees]) on a closed ladder, and for each one names the next step that would mature it. Every rung is gated by evidence the author did not write — code on disk, a *_test.go, an edge in the running binary’s transitive import graph (fak itself runs it), a documented verb — so the only way up the ladder is to change the real tree.
Immaturity is not a defect. A capability honestly at prototyped is a complete v1 that simply has not been matured yet — expected, and never counted against anyone. The one defect this refuses is a ladder-skip: a capability that looks more mature than its evidence — concretely, one fak relies on (dogfooded, a default surface, or benchmarked) yet leaves untested. That is the maturity sibling of the product scorecard’s verdict-overclaim and the readiness ladder’s READINESS_OVERCLAIM (#582 / grammar G1).
The lifecycle ladder
| # | Rung | Reached when (evidence the author did not write) |
|---|---|---|
| 0 | proposed |
a declared capability with no code on disk yet |
| 1 | prototyped |
a non-test .go file exists in the leaf — a complete v1 |
| 2 | tested |
the leaf carries a *_test.go (the QA rung) |
| 3 | dogfooded |
the leaf is on the running binary’s transitive import graph — fak itself runs it |
| 4 | default |
the capability is a documented fak verb (docs/cli-reference.md) — the default surface |
| · | benchmarked (badge) |
a func Benchmark* in the leaf or a BENCHMARK-AUTHORITY.md row — the natural step after default |
Distribution
| Rung | Capabilities |
|---|---|
proposed |
1 |
prototyped |
0 |
tested |
17 |
dogfooded |
58 |
default |
36 |
benchmarked (badge) |
35 |
Next work — the agentic-culture backlog
Each gap is a concrete, checkable next work item. fak maturity next is the queue an agent (or the issue-dispatch loop) pulls from to advance the fleet one rung at a time. Ladder-skips first (they are the real debt), then the least-mature capabilities (the most leverage).
| From → gap | Next work item | Witness | |
|---|---|---|---|
proposed → prototyped |
prototype private bridge: land a v1 in private bridge package | a non-test .go file exists under private bridge package | |
tested → dogfooded |
dogfood advmodel: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/advmodel imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood architest: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/architest imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood boundarylint: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/boundarylint imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood capindexgw: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/capindexgw imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood cohort: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/cohort imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood ctxresidency: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/ctxresidency imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood fakrpc: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/fakrpc imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood leakcheck: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/leakcheck imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood opttarget: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/opttarget imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood pathlint: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/pathlint imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood residency: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/residency imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood sharedtask: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/sharedtask imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood spec: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/spec imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood tracesink: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/tracesink imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood urllint: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/urllint imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood vcachewarm: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/vcachewarm imported by cmd/, internal/registrations, or internal/kernel | |
tested → dogfooded |
dogfood windowgate: wire it onto the running binary’s path so fak itself runs it | github.com/anthony-chaudhary/fak/internal/windowgate imported by cmd/, internal/registrations, or internal/kernel | |
dogfooded → default |
default a2achan: promote it to a documented default surface (a fak verb) | a2achan documented in docs/cli-reference.md | |
dogfooded → default |
default agenttopo: promote it to a documented default surface (a fak verb) | agenttopo documented in docs/cli-reference.md | |
dogfooded → default |
default ailuminate: promote it to a documented default surface (a fak verb) | ailuminate documented in docs/cli-reference.md | |
dogfooded → default |
default answershape: promote it to a documented default surface (a fak verb) | answershape documented in docs/cli-reference.md | |
dogfooded → default |
default appversion: promote it to a documented default surface (a fak verb) | appversion documented in docs/cli-reference.md | |
dogfooded → default |
default blob: promote it to a documented default surface (a fak verb) | blob documented in docs/cli-reference.md | |
dogfooded → default |
default blobfs: promote it to a documented default surface (a fak verb) | blobfs documented in docs/cli-reference.md | |
dogfooded → default |
default blobhttp: promote it to a documented default surface (a fak verb) | blobhttp documented in docs/cli-reference.md | |
dogfooded → default |
default cachemeta: promote it to a documented default surface (a fak verb) | cachemeta documented in docs/cli-reference.md | |
dogfooded → default |
default capindex: promote it to a documented default surface (a fak verb) | capindex documented in docs/cli-reference.md | |
dogfooded → default |
default comm: promote it to a documented default surface (a fak verb) | comm documented in docs/cli-reference.md | |
dogfooded → default |
default contextq: promote it to a documented default surface (a fak verb) | contextq documented in docs/cli-reference.md | |
… and 59 more (run fak maturity next) |
Run it
go run ./cmd/fak maturity # the lifecycle scorecard
go run ./cmd/fak maturity next # the next-work backlog (ladder-skips first)
go run ./cmd/fak maturity route # plan deduped public GitHub issues for the top public rows
go run ./cmd/fak maturity route --live # create/update public-routeable issues so dispatch can drain them
go run ./cmd/fak maturity --markdown # regenerate this doc
go run ./cmd/fak maturity --json # machine payload (control-pane / dispatch loop)
go test ./internal/maturity/... # prove the ladder + skip detection + next-work fold
maturity route keeps private-boundary lanes visible in maturity next, but reports them as skipped instead of filing public issues.
Next: advance the fleet one rung: fak maturity next lists 89 next work item(s); the least-mature capability is the most leverage