From 52048a41c11fa84faef3a4c0d417c7b89246e376 Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Sat, 22 Aug 2026 15:59:17 +0200 Subject: [PATCH] Mark refactor_claude_todo as done MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All 46 files are under the cap and the gate is in place. The survey figures in the body are the 2026-08-14 snapshot — they were already stale when this started (39 listed, 46 actual) — so the note says to re-run the gate rather than trust them, and keeps the rest as the record of what was asked for. Also picks up a pre-existing markdown-formatter change to the file that was sitting unstaged in the working tree. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01CFSGeWxHPY5rHUGrPqhcmG --- refactor_claude_todo.md | 46 +++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/refactor_claude_todo.md b/refactor_claude_todo.md index dc16423..4b9e60e 100644 --- a/refactor_claude_todo.md +++ b/refactor_claude_todo.md @@ -1,5 +1,14 @@ # Refactor TODO — enforce the 250-line file cap +> **DONE 2026-08-22.** All 46 violations are split and the gate is live: +> `bash scripts/check_file_length.sh --all` exits 0, a local pre-commit hook +> blocks an over-cap commit (verified in both directions), and +> `.github/workflows/file-length.yml` runs the same check on push. +> +> The survey figures below are the 2026-08-14 snapshot and are now historical — +> re-run the gate rather than trusting them. Kept as the record of what the +> task asked for and how it was scoped. + > **This file is a ready-to-use prompt.** Paste it to Claude, or open this repo > and say "do refactor_claude_todo". It is self-contained: everything needed to > execute is below. Generated 2026-08-14 from a measured survey of every repo. @@ -13,7 +22,7 @@ enforced by a gate that fails the commit, not by a note anyone can ignore. Why: a file that cannot be read in one piece forces re-reads and partial edits, which is the single largest avoidable cost in an LLM-assisted workflow. Aim by churn, not size alone — refactoring pays where code is read and changed often -(Fowler, *refactoring economic benefit*). +(Fowler, _refactoring economic benefit_). ## Scope in this repo @@ -21,6 +30,7 @@ churn, not size alone — refactoring pays where code is read and changed often - **14,348 lines** sit in violation; longest file is **525 lines**. Exempt (do NOT split these): + - generated files — `*.g.dart`, `*.freezed.dart`, `*.gr.dart`, `**/l10n/generated/**`, anything with a `GENERATED` header - markup — `.html`, `.css`, `.scss` @@ -32,23 +42,23 @@ Exempt (do NOT split these): ROI = lines x commits in the last year. Work top-down; a long file nobody edits has near-zero payoff and should not be first. -| lines | commits/yr | kind | file | -|------:|-----------:|:-----|:-----| -| 515 | 6 | code | `gatelock/gatelock/_window.py` | -| 477 | 3 | code | `gatelock/gatelock/tests/test_recovery.py` | -| 259 | 5 | code | `crdt_sync_dart/lib/src/sync.dart` | -| 406 | 3 | code | `crdt-sync/crdt_sync/_firebase_auth.py` | -| 393 | 3 | code | `crdt-sync/crdt_sync/tests/test_firebase_auth.py` | -| 363 | 3 | code | `crdt-sync/crdt_sync/_sync.py` | -| 525 | 2 | code | `crdt_sync_dart/test/firebase_auth_rest_test.dart` | -| 483 | 2 | code | `gatelock/gatelock/_scrollable.py` | -| 321 | 3 | code | `gatelock/gatelock/_recovery.py` | -| 457 | 2 | code | `sync_settings_ui/test/sync_settings_screen_test.dart` | -| 452 | 2 | code | `crdt_sync_dart/test/mirror_store_test.dart` | -| 451 | 2 | code | `crdt_sync_dart/test/sync_revisions_test.dart` | -| 439 | 2 | code | `aur-publish/publish.sh` | -| 291 | 3 | code | `crdt_sync_dart/test/github_client_test.dart` | -| 418 | 2 | code | `gatelock/gatelock/tests/test_outputs.py` | +| lines | commits/yr | kind | file | +| ----: | ---------: | :--- | :----------------------------------------------------- | +| 515 | 6 | code | `gatelock/gatelock/_window.py` | +| 477 | 3 | code | `gatelock/gatelock/tests/test_recovery.py` | +| 259 | 5 | code | `crdt_sync_dart/lib/src/sync.dart` | +| 406 | 3 | code | `crdt-sync/crdt_sync/_firebase_auth.py` | +| 393 | 3 | code | `crdt-sync/crdt_sync/tests/test_firebase_auth.py` | +| 363 | 3 | code | `crdt-sync/crdt_sync/_sync.py` | +| 525 | 2 | code | `crdt_sync_dart/test/firebase_auth_rest_test.dart` | +| 483 | 2 | code | `gatelock/gatelock/_scrollable.py` | +| 321 | 3 | code | `gatelock/gatelock/_recovery.py` | +| 457 | 2 | code | `sync_settings_ui/test/sync_settings_screen_test.dart` | +| 452 | 2 | code | `crdt_sync_dart/test/mirror_store_test.dart` | +| 451 | 2 | code | `crdt_sync_dart/test/sync_revisions_test.dart` | +| 439 | 2 | code | `aur-publish/publish.sh` | +| 291 | 3 | code | `crdt_sync_dart/test/github_client_test.dart` | +| 418 | 2 | code | `gatelock/gatelock/tests/test_outputs.py` | _(24 further files over 250 lines not listed — re-run the survey for the full set.)_