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
13 commits sit in this repo's top risk tercile, which is 36% of the 36scored. 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 9.0 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 | ab383441docs: import design spec and implementation plan | Peter van Liesdonkclaudeassisted | 4mo ago | +8.2K -0 | 99thElevated | more lines added than baseline |
| 2 | 1eeacf25chore(copier): update to v5.6.3 (#87) | Peter van Liesdonk | 5d ago | +6.0K -3.0K | 90thElevated | more lines added than baseline |
| 3 | 717df0f1chore(copier): update to v3.6.0 (#83) | Peter van Liesdonk | 5d ago | +6.3K -904 | 90thElevated | more lines added than baseline |
| 4 | df3a992bchore(copier): update to v2.11.2 (#77) | Peter van Liesdonk | 5d ago | +5.7K -602 | 90thElevated | more lines added than baseline |
| 5 | fad8131afeat: Paperless-NGX client layer — read and write sub-clients (Phases E–F) (#2) | Peter van Liesdonkclaudeagent | 4mo ago | +2.2K -9 | 90thElevated | more lines added than baseline |
| 6 | e36f13f2chore: initial scaffold from fastmcp-server-template | Peter van Liesdonkclaudeassisted | 4mo ago | +6.1K -0 | 90thElevated | more lines added than baseline |
| 7 | 0593b0bachore(deps): refresh locked dependencies (#91) | Peter van Liesdonk | 5d ago | +1.3K -985 | 78thElevated | more lines added than baseline |
| 8 | 6abb25f0chore(copier): update to v4.1.0 (#85) | Peter van Liesdonk | 5d ago | +3.5K -342 | 78thElevated | more lines added than baseline |
| 9 | a72a2e79feat: MCP tool layer — 52 tools with Lucide icons and read-only gating (Phases G–H) (#3) | Peter van Liesdonkclaudeagent | 4mo ago | +1.6K -36 | 78thElevated | more lines added than baseline |
| 10 | 6d4277a5feat: config, HTTP client, error hierarchy, and Pydantic models (Phases B–D) (#1) | Peter van Liesdonkclaudeagent | 4mo ago | +2.1K -6 | 78thElevated | more lines added than baseline |
| 11 | dfa29ffafeat: MCP resource layer, prompts, and domain re-exports (Phases I–K) (#4) | Peter van Liesdonkclaudeagent | 4mo ago | +469 -87 | 71thElevated | more lines added than baseline |
| 12 | e2a42d83fix: rebuild create_download_link on pvl-core's Transfer API (#75) | Peter van Liesdonk | 6d ago | +501 -229 | 67thElevated | more lines added than baseline |
| 13 | d1bb633aStrip heavy fields from list/search responses and add include_content to get/update (#36) | Peter van Liesdonkclaudeassisted | 4mo ago | +464 -36 | 67thElevated | more lines added than baseline |
| 14 | 15a8df3ffix: land web_url and share_url onto main (#23) | Peter van Liesdonkclaudeassisted | 4mo ago | +326 -9 | 61thTypical | more lines added than baseline |
| 15 | 98a0ddf6feat: integration tests, documentation, and release prep (Phases L–N) (#5) | Peter van Liesdonkclaudeagent | 4mo ago | +312 -2 | 61thTypical | more lines added than baseline |
| 16 | 56035c1dchore(copier): update to v1.2.0 (#15) | Peter van Liesdonkclaudeassisted | 4mo ago | +321 -13 | 57thTypical | more lines added than baseline |
| 17 | 921c17d2revert: rebuild create_download_link on pvl-core's Transfer API (#79) | Peter van Liesdonk | 6d ago | +229 -501 | 53thTypical | more lines added than baseline |
| 18 | bea3f3c6fix(tasks): paginate list_tasks and default to unacknowledged (#16) | Peter van Liesdonkclaudeassisted | 4mo ago | +192 -19 | 53thTypical | more lines added than baseline |
| 19 | eaf0850dfix(models): accept nested user/owner objects from newer Paperless-NGX (#10) | Peter van Liesdonkclaudeagent | 4mo ago | +146 -10 | 49thTypical | more lines added than baseline |
| 20 | 485b1200feat(config): add optional PAPERLESS_MCP_PAPERLESS_PUBLIC_URL (#20) | Peter van Liesdonkclaudeassisted | 4mo ago | +152 -16 | 44thTypical | more lines added than baseline |
| 21 | 1acc04c4feat(documents): strip OCR content from list/search by default (#17) | Peter van Liesdonk | 4mo ago | +154 -8 | 44thTypical | more lines added than baseline |
| 22 | cdcf0f9afix(history): redact OCR content from create-event changes (#29) | Peter van Liesdonk | 4mo ago | +109 -1 | 40thTypical | more lines added than baseline |
| 23 | a66c3cbefix(tools): surface HTTPStatusError and ValidationError in tool wrapper (#19) | Peter van Liesdonk | 4mo ago | +86 -1 | 38thTypical | more lines added than baseline |
| 24 | b95c5174fix(v1.0.1): error wrapping + remove broken bulk_edit_custom_fields (#39) | Peter van Liesdonkclaudeagent | 4mo ago | +116 -106 | 35thTypical | more lines added than baseline |
| 25 | 2b0ed47ffix(tasks): populate next/previous page markers in list_tasks (#28) | Peter van Liesdonk | 4mo ago | +80 -3 | 32thBelow typical | more lines added than baseline |
| 26 | dd31d96bchore: prepare release 1.0.2-rc.0 (#92) | Peter van Liesdonk | 5d ago | +97 -4 | 29thBelow typical | more lines added than baseline |
| 27 | c273a6b6docs(custom-fields): describe extra_data shape per data_type (#18) | Peter van Liesdonk | 4mo ago | +52 -2 | 26thBelow typical | more lines added than baseline |
| 28 | f002583cchore: gitignore local Claude/tooling directories (#73) | Peter van Liesdonk | 6d ago | +18 -2 | 24thBelow typical | more lines added than baseline |
| 29 | 177332c6feat(paginated): drop all_ids from Paginated[T] responses (#27) | Peter van Liesdonk | 4mo ago | +21 -4 | 21thBelow typical | more lines added than baseline |
| 30 | 8754f592chore: prepare release 1.0.2 (#93) | Peter van Liesdonk | 5d ago | +14 -8 | 18thBelow typical | more scattered than baseline |
| 31 | 6c0148b8docs: explain bounded MCPB build backend (#89) | Peter van Liesdonk | 5d ago | +9 -0 | 15thBelow typical | fewer lines added than baseline |
| 32 | 29851a3d1.0.0 | github-actions | 4mo ago | +4 -4 | 8thBelow typical | fewer lines added than baseline |
| 33 | 9f0a10b31.0.0-rc.3 | github-actions | 4mo ago | +4 -4 | 8thBelow typical | fewer lines added than baseline |
| 34 | dfc46b271.0.0-rc.2 | github-actions | 4mo ago | +4 -4 | 8thBelow typical | fewer lines added than baseline |
| 35 | a90a22c51.0.0-rc.1 | github-actions | 4mo ago | +4 -4 | 8thBelow typical | fewer lines added than baseline |
| 36 | 22981b6b1.0.1 | github-actions | 3mo ago | +4 -4 | 1thBelow typical | fewer 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 36 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/paperless-mcp has 36 commits in its history from 2 contributors, the first of them Apr 23, 2026. In the last 90 days 35 files were touched, 65 times in total, most often config.py. Every commit is scored for change risk from its size, spread and the history of the files it touches.