Every commit scored for change-risk against this repo's own history, so 'elevated' means elevated here rather than on some global curve.
Needs review
122 commits sit in this repo's top risk tercile, which is 34% of the 364scored. The cut is drawn against this codebase's own history rather than a global curve, so a quiet repo still fills its top band, and here it starts at 7.5 out of 10. What pushes a commit up is size and spread together: a large change confined to one area scores below a smaller one scattered across a dozen files.
Commit categories over time, read off the subject line. Fixes carry the accent because that is the series this chart exists to show.
Began feature-led, now leaning chore.
Ranked by change-risk, highest first. Priority is a tercile of this repo's own distribution, so a quiet repo still fills its top band.
| # | Commit | Author | When | Lines | Review priority | Top driver |
|---|---|---|---|---|---|---|
| 1 | 31698a42docs: add scholar-mcp implementation plan | Peter van Liesdonk | 4mo ago | +3.8K -0 | 100thElevated | more lines added than baseline |
| 2 | a05803aefeat(workflow): wire claude-code agent into copier-update.yml (#109) | Peter van Liesdonkclaudeassisted | 3mo ago | +4.1K -11 | 99thElevated | more lines added than baseline |
| 3 | 8a3f5b6dchore: scaffold FastMCP server template | Peter van Liesdonkclaudeassisted | 5mo ago | +5.2K -0 | 99thElevated | more lines added than baseline |
| 4 | df05682efeat: make agent automation human-controlled (#498) | Peter van Liesdonk | 5d ago | +3.6K -1.6K | 98thElevated | more lines added than baseline |
| 5 | 11df8c82feat(config): generate the server.json env-var arrays (json-splice) (#276) | Peter van Liesdonkclaudeassisted | 4w ago | +2.2K -106 | 98thElevated | more lines added than baseline |
| 6 | 352c0c96feat(config)!: generate the config surface, retire the drift test (#264) | Peter van Liesdonkclaudeassisted | 1mo ago | +4.4K -592 | 98thElevated | more lines added than baseline |
| 7 | 8645d6b1feat(wizard): spec-owned domain via meta + dockerVolume/dockerPath (closes #169) (#170) | Peter van Liesdonkclaudeassisted | 2mo ago | +2.0K -152 | 98thElevated | more lines added than baseline |
| 8 | e534aec3docs: add kroki-mcp implementation plan | Peter van Liesdonkclaudeassisted | 5mo ago | +1.4K -0 | 98thElevated | more lines added than baseline |
| 9 | d99b02cdrefactor(upgrading): split UPGRADING.md into an index plus per-minor files (#546) | Peter van Liesdonkclaudeassisted | 11h ago | +1.9K -1.3K | 97thElevated | more lines added than baseline |
| 10 | 1ad450c8feat(readme): expand README.md.jinja into structured template with DOMAIN sentinels (#65) | Peter van Liesdonkclaudeassisted | 4mo ago | +1.2K -18 | 97thElevated | more lines added than baseline |
| 11 | ed9012d3fix(docs): render shared docs with consumer env_prefix (#31) (#41) | Peter van Liesdonkclaudeassisted | 4mo ago | +1.3K -40 | 97thElevated | more lines added than baseline |
| 12 | 66594ffcfeat(agents): agent-neutral AGENTS.md, portable skills, and automatic downstream migration (#504) | Peter van Liesdonkclaudeassisted | 4d ago | +2.4K -574 | 96thElevated | more lines added than baseline |
| 13 | 5912d17edocs: add cumulative template upgrade guide (#427) | Peter van Liesdonkclaudeassisted | 1w ago | +759 -94 | 96thElevated | more lines added than baseline |
| 14 | a01331e9feat(release): add interlocked knope release-PR core (Phase 1) (#408) | Peter van Liesdonkclaudeassisted | 1w ago | +1.2K -20 | 96thElevated | more lines added than baseline |
| 15 | 80a858ccAdd issue/PR templates + contributing guide for downstream (dogfooded here) (#315) | Peter van Liesdonkclaudeassisted | 2w ago | +1.4K -12 | 96thElevated | more lines added than baseline |
| 16 | 1e41d735feat(config): generate the OIDC env-var tables, dropping the ephemeral claim (#274) | Peter van Liesdonkclaudeassisted | 4w ago | +1.3K -27 | 96thElevated | more lines added than baseline |
| 17 | 3af724c3feat(scaffold): real SPA SDK vendoring pipeline (closes #216, #218, #219) (#220) | Peter van Liesdonkclaudeassisted | 2mo ago | +1.7K -84 | 96thElevated | more lines added than baseline |
| 18 | a074041dfeat(scaffold): diff-scoped structural-health gate (Spec 1) (#211) | Peter van Liesdonkclaudeassisted | 2mo ago | +1.5K -6 | 96thElevated | more lines added than baseline |
| 19 | 70cf3119feat(file-exchange): scaffold register_file_exchange_upload + DOMAIN-FILE-EXCHANGE sentinel (#121) | Peter van Liesdonk | 3mo ago | +1.4K -5 | 96thElevated | more lines added than baseline |
| 20 | 4e90c812feat: template v1.1.5 — CLAUDE.md Shared Infrastructure + Dockerfile sentinels + bump_manifests hardening (#27) | Peter van Liesdonkclaudeassisted | 4mo ago | +1.7K -2 | 96thElevated | more lines added than baseline |
| 21 | 3190c81dci(template): run Vale over the render, and enforce the lockstep it claimed (#271) | Peter van Liesdonkclaudeassisted | 4w ago | +864 -72 | 94thElevated | more lines added than baseline |
| 22 | 232985befeat(deps): switch fleet dependency automation from Dependabot to Renovate (#250) | Peter van Liesdonkclaudeassisted | 1mo ago | +1.2K -26 | 94thElevated | more lines added than baseline |
| 23 | ca72d1a4fix: harden Claude review workflows (inline comments, write perms, REVIEW.md scoping, CI-gated review) (#243) | Peter van Liesdonkclaudeassisted | 1mo ago | +891 -50 | 94thElevated | more lines added than baseline |
| 24 | 36fdc23afeat(scaffold): CI-enforced config-wizard env-surface coverage (#207) | Peter van Liesdonkclaudeassisted | 2mo ago | +1.0K -9 | 94thElevated | more lines added than baseline |
| 25 | 9b92f1e3feat(scaffold): document and enable clean detach from the template (closes #182) (#183) | Peter van Liesdonkclaudeassisted | 2mo ago | +889 -0 | 94thElevated | more lines added than baseline |
| 26 | 68509d23fix(aggregator): three follow-ups from #109 review (#110) (#114) | Peter van Liesdonkclaudeassisted | 3mo ago | +535 -89 | 94thElevated | more lines added than baseline |
| 27 | 76201110feat(config): generated configuration reference, curated README tables (#544) | Peter van Liesdonkclaudeassisted | 14h ago | +1.0K -108 | 92thElevated | more lines added than baseline |
| 28 | dd174a7efeat: deterministic copier-update workflow surfacing UPGRADING.md (#459) | Peter van Liesdonkclaudeassisted | 1w ago | +604 -2.6K | 92thElevated | more lines added than baseline |
| 29 | 5f2e106dfeat(config): generate the README env-var tables + fix domain required-ness (#275) | Peter van Liesdonkclaudeassisted | 4w ago | +1.1K -57 | 92thElevated | more lines added than baseline |
| 30 | 9ab77f63feat(docs): extend sentinel-protection to remaining docs/ files (#106) (#112) | Peter van Liesdonk | 3mo ago | +781 -17 | 92thElevated | more lines added than baseline |
| 31 | f375c69ffeat(template): sentinel-protect shared deployment + auth docs (#108) | Peter van Liesdonkclaudeassisted | 3mo ago | +717 -8 | 92thElevated | more lines added than baseline |
| 32 | b3294b6cfeat(template): adopt register_file_exchange in server skeleton (#73) | Peter van Liesdonk | 4mo ago | +1.1K -11 | 92thElevated | more lines added than baseline |
| 33 | 6678fc1ffeat(template): Linux packaging (nfpm + systemd + install scripts) | Peter van Liesdonkclaudeassisted | 4mo ago | +441 -0 | 92thElevated | more lines added than baseline |
| 34 | 388e8084feat: publish rcs to PyPI, and pack the Claude Code plugin as a zip asset (#467) | Peter van Liesdonkclaudeassisted | 1w ago | +694 -31 | 90thElevated | more lines added than baseline |
| 35 | 591e09bffix(release): draft-hold until notes land, watermark-verified already-current, publish skips release merges (#422) | Peter van Liesdonkclaudeassisted | 1w ago | +821 -111 | 90thElevated | more lines added than baseline |
| 36 | 801a3f72feat(release)!: swap PSR for the knope release-PR flow (Phase 2) (#409) | Peter van Liesdonkclaudeassisted | 1w ago | +954 -1.6K | 90thElevated | more lines added than baseline |
| 37 | 3c338db2feat(release-notes): agent-written release-notes workflow (per-minor pages, PR-gated) (#365) | Peter van Liesdonkclaudeassisted | 2w ago | +727 -22 | 90thElevated | more lines added than baseline |
| 38 | c1e6cc2bfeat(release)!: release from short-lived stabilisation branches; branch-derived rc identity (#360) | Peter van Liesdonkclaudeassisted | 2w ago | +686 -127 | 90thElevated | more lines added than baseline |
| 39 | 70846924Scaffold coverage + README post-setup (closes #50, #51) (#54) | Peter van Liesdonkclaudeassisted | 4mo ago | +896 -8 | 90thElevated | more lines added than baseline |
| 40 | 35d4d9f3feat(template): release.yml (PSR + PyPI + Docker + Linux + Claude Plugin PR) | Peter van Liesdonkclaudeassisted | 4mo ago | +400 -0 | 90thElevated | more lines added than baseline |
| 41 | b384eed8docs: add scholar-mcp design spec | Peter van Liesdonk | 4mo ago | +409 -0 | 90thElevated | more lines added than baseline |
| 42 | b5e96ef0feat(gen-config): generate the mcpb user_config install screen from the config surface (#337) | Peter van Liesdonkclaudeassisted | 2w ago | +549 -30 | 88thElevated | more lines added than baseline |
| 43 | 0e01b609fix(renovate): exact-pin the unresolvable @v46 + implement the four decided adoption-findings fixes (#300) | Peter van Liesdonkclaudeassisted | 3w ago | +588 -26 | 88thElevated | more lines added than baseline |
| 44 | 1fd46573fix(docs): clear every Vale error from the rendered docs (#269) | Peter van Liesdonkclaudeassisted | 4w ago | +480 -23 | 88thElevated | more lines added than baseline |
| 45 | 9af4d49afeat(scaffold): co-locate authentication + authorization (closes #178) (#179) | Peter van Liesdonkclaudeassisted | 2mo ago | +612 -29 | 88thElevated | more lines added than baseline |
| 46 | ae7eaeaafeat(release): release notes become part of the release PR — every tag carries its own page (#420) | Peter van Liesdonkclaudeassisted | 1w ago | +459 -275 | 87thElevated | more lines added than baseline |
| 47 | 538c5b18ci: guard that a pristine render already satisfies the shipped pre-commit hooks (#252) | Peter van Liesdonk | 1mo ago | +441 -4 | 87thElevated | more lines added than baseline |
| 48 | 66c0e854feat(template): port in-browser configuration generator (#166) | Peter van Liesdonk | 2mo ago | +541 -0 | 87thElevated | more lines added than baseline |
| 49 | 94cf086bfeat(template): ci.yml workflow (jinja-ized from MV's current) | Peter van Liesdonkclaudeassisted | 4mo ago | +267 -0 | 87thElevated | more lines added than baseline |
| 50 | 9da95640feat(scaffold): copier update writes a diff of every seeded-once file the template changed (#520) | Peter van Liesdonkclaudeassisted | 4d ago | +537 -23 | 86thElevated | more lines added than baseline |
Two views of the same model: where the cuts fall, and what commit shape lands you above them.
Every scored commit, binned on the raw 0 to 10 score rather than the percentile. Percentile ranks are uniform by construction, so that axis has no shape to draw. The dashed lines are the tercile cuts behind each row's priority pill.
The 200 most recent commits, on their own recency sample rather than the feed above: that defaults to risk-sorted, so reusing it would plot only the top tercile and call it the spread. Big and scattered is what the model penalises. Click a dot to open it.
pvliesdonk/fastmcp-server-template has 381 commits in its history from 4 contributors, the first of them Mar 18, 2026. In the last 90 days 39 files were touched, 109 times in total, most often test_gen_config_surface.py. Every commit is scored for change risk from its size, spread and the history of the files it touches.