Repository navigation
Open
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)kind/testTest coverage, test infrastructure, or test-only fixesTest coverage, test infrastructure, or test-only fixesnowOrg Project gate: active priority — orchestrator adds to the boardOrg Project gate: active priority — orchestrator adds to the boardpriority/highImportant and time-sensitiveImportant and time-sensitivequeue/parkedQueue task is parked (waiting on CI, time, or an event)Queue task is parked (waiting on CI, time, or an event)source/queue-workerFiled or worked by the queue/worker pilotFiled or worked by the queue/worker pilotstatus/parkedDeliberately paused with a recorded resume conditionDeliberately paused with a recorded resume conditiontask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle stateQueue worker lifecycle state
Description
Gap found by the #1078 Phase 11 claimed-done audit (slice 5, coverage gaps)
F11.10 (large-module split, #808) has no regression-catching automation for its exit criterion.
Exit criterion (.opencode/plans/phase-11-foundations.md): "No file over 2,500 lines of production code; full suite passes unchanged; diff shows moves only."
Verified on current main 95cd41f0 (2026-10-27, #1078 audit slice 5):
- The criterion holds today: scanning all
.rsfiles underpkgs/+apps/(production lines = lines before the first#[cfg(test)]), the largest production source file ispkgs/id/src/cli.rsat 2,200 prod lines, thenweb/routes.rsat 2,141 — nosrc/file is over 2,500. - But nothing enforces it:
git grepfor2500/2,500acrosspkgs/idand.githubfinds no check (only crash-corpus data rows); the fast-lane check list (.github/scripts/id-pr-checks.txt, 26 checks) contains no file-size check; no test, lint, or flake check counts lines. The audit's verification was a one-off manual scan (slices 2 and 5 of id: validation — delivered Phase 11 items (claimed-done audit) #1078) — the next 2,500-line file would land silently and F11.10 would regress exactly the way F11.4 did (id(ci): F11.4 regression — fast-lane median PR feedback is 19m09s over the last ten runs (exit: under 15m) #1401). - (For the record: the largest
.rsfile overall is the integration testpkgs/id/tests/cli_integration.rsat 4,312 lines — test code, outside the criterion's "production code" wording; splitting it is optional and not what this issue requires.)
Acceptance criteria
- An automated check runs in the fast lane (a flake check added to
.github/scripts/id-pr-checks.txt, or an equivalent test) that fails when any production.rsfile underpkgs/id/src(and any other tree the F11.10 criterion is read to cover) exceeds 2,500 production lines, naming the offending file. - The check passes on current main and is demonstrated to fail on a synthetic over-limit file (or an equivalent unit test of the checker).
- The check is named in the F11.10 row of the Phase 11 records so the next audit finds enforcement, not just a manual scan.
Metadata
Metadata
Assignees
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)kind/testTest coverage, test infrastructure, or test-only fixesTest coverage, test infrastructure, or test-only fixesnowOrg Project gate: active priority — orchestrator adds to the boardOrg Project gate: active priority — orchestrator adds to the boardpriority/highImportant and time-sensitiveImportant and time-sensitivequeue/parkedQueue task is parked (waiting on CI, time, or an event)Queue task is parked (waiting on CI, time, or an event)source/queue-workerFiled or worked by the queue/worker pilotFiled or worked by the queue/worker pilotstatus/parkedDeliberately paused with a recorded resume conditionDeliberately paused with a recorded resume conditiontask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle stateQueue worker lifecycle state
Activity
developing-today commentedon Oct 27, 2026
CODE-521
dezren39 commentedon Nov 2, 2026
🤖 Agent note · state: picked up
dezren39 commentedon Nov 2, 2026
🤖 Agent note · state: done
triagedTriage verdict — #1438: CONFIRMED (gap real, and the predicted regression has already happened); routed, no close
Verified fresh this run against origin/main (
0e26fa4b3), full-tree scan of all 620.rsfiles underpkgs/+apps/(audit method: production lines = lines before the first in-file#[cfg(test)]):.github/scripts/id-pr-checks.txt(26 checks) contains no file-size check; repo-wide grep finds no line-count test or lint (only per-function clippytoo-many-lines-threshold = 100, which is unrelated).check-id-pr-checks.shguards the check list — a new check must be listed there to run.pkgs/id/src/web/markdown.rs— 10,045 lines, first#[cfg(test)]at line 5285 → 5,285 production lines — was added by merge PR fix(design-code): repoint :18745 legs to antigravity-direct :18751 (#1413, unblocks opencode#1409) #4626 (merged 2026-11-02, absent from the first parent) and landed silently: exactly the failure mode this issue predicted. Additionallycli.rsgrew 2,200 → 2,490 andweb/routes.rs2,141 → 2,408 prod lines since the 2026-10-27 audit — both approaching the limit.pkgs/id/src/encryption/tests.rsscans at 2,850 pre-first-marker lines, but it carries no in-file#[cfg(test)]because it is module-gated test code —#[cfg(test)] mod tests;inencryption/mod.rs:41— so it is outside the criterion's "production code" wording, same as the audit's treatment ofcli_integration.rs. The follow-up check must encode this exclusion by path/convention.)Routing: enqueued follow-up small_fix task 6599 — split
markdown.rsmoves-only back under 2,500 prod lines per file, add the fast-lane check (flake check +id-pr-checks.txtlisting), demo fail-on-synthetic / pass-on-tree, name it in the F11.10 Phase 11 records. Issue stays open until 6599 lands.133 remaining items
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
opencode; this lane does not work it directly. Fresh check: issue id: F11.10 large-module split has no automated enforcement — add a production file-size check to the fast lane #1438 OPEN, no hard-stop labels. Prior progress: branchqueue/6599-1438-prod-lines-check; resume is a moves-only re-port against current main.queue/6599-1438-prod-lines-checkdezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off