Depth 556 -> 104, tracked files 2295 -> ~1980. What remains is the guard repoint (blocked on a permission I cannot grant myself), the two subsystems behind it, and wiring the gates once the structural violations are exempted by name. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PJrqKERAo5QUeEHWS5Asgp
4.9 KiB
testsAndMisc restructure — where it stands
Plan: ~/.claude/plans/after-refactor-of-testsandmisc-modular-wigderson.md
Live-state checklist: docs/restructure-live-state.md
(regenerate with ./meta/scripts/report_live_state.sh)
Done
Archived to github.com/kuhyx/testsAndMisc-archive, full history:
bucket_catch, poker-stakes, billsplit (+ python_pkg/billsplit_coverage,
its CI workflow, the app_icons registry entry, and the paired
.binary-allowlist / .gitignore icon rules — .binary-allowlist now has no
patterns at all).
Extracted to public repos, full history, each with CI it did not have here:
reverse-survivors, kcd2-dice-solver (~/kcd2-dice-solver), focus-owner,
mtk-root, system-maintenance (~/system-maintenance), android-guardian
(~/android-guardian), phone-focus-mode (with python_pkg/focus_policy).
Flattened. linux_configuration/scripts/ and single_use/ are gone;
categories sit directly under linux_configuration/. i3-configuration moved
out of periodic_background into i3/ + i3blocks/, and
misc/testsAndMisc-bash/ lost its redundant nesting.
Length cap widened to catch extensionless scripts, and boot-repair split
756 → 218 with four libs.
Depth violations 556 → 104; tracked files 2295 → ~1980. Every commit
green; nothing used --no-verify.
Remaining
-
The guard repoint (deferred at your request). Two guard-lib instances name plugin scripts by absolute path inside the repo. Plugins are ALREADY installed at
/usr/local/share/guard-lib-plugins/; the sequence is verified in vmbox. The classifier blocks me from running it:sudo guardctl file-guard uninstall resolved --keep-canonical sudo guardctl file-guard install resolved --target /etc/systemd/resolved.conf \ --plugin /usr/local/share/guard-lib-plugins/resolved-plugin.sh \ --also-watch /etc/systemd/resolved.conf.d sudo guardctl file-guard uninstall nsswitch --keep-canonical sudo guardctl file-guard install nsswitch --target /etc/nsswitch.conf \ --plugin /usr/local/share/guard-lib-plugins/nsswitch-plugin.sh sudo guardctl file-guard enforce resolved && sudo guardctl file-guard enforce nsswitch -
hostsextraction — blocked on (1). Its installer was already proven in vmbox to run from an extracted layout with no monorepo path. -
digital_wellbeinglast — pacman wrapper,chattr +i,heavy_job_lock.sh(moved in with it), and the 12 orchestrator paths incheck_and_enable_services.sh/setup_periodic_system.sh, which now point at the NEW locations and will need updating again when it moves. It also ownslinux_configuration/tests/test_shutdown_timer_monitor.sh. -
Wire the gates.
check_directory_depth.shexists and is a dry run only. Before wiring, exempt the ~57 structural violations by name —C/atop_agg/(a C project),python_pkg/artgate/{routes,styles}/,misc/tools/,dwm/{bin,patches}/,*/systemd/,*/hooks/— the same waylib/andtests/are exempt. Then addcheck_repo_size.shcounting source files only. -
Prune
docs/superpowers/evidence|contracts(673 files, the real growth driver) and decide.hippo/'s fate. -
Optional: deduplicate the two Nextcloud implementations in
features/(~2,780 lines for one capability).
Traps already paid for
- Run it, don't read it. Repointing kcd2 hit three failures in a row (pnpm
ignoring the
package.jsonfield, no-TTYnode_modulespurge, a Docker mount on the deleted path).dice.kuhy.duckdns.orgnow serves from the new repo. /usr/local/binholds copies naming repo paths — invisible to a repo grep.report_live_state.shscans there now.- Removing a file can break a suite that stays (
mtk_harness.sh), and a removal can silently shrink CI (shell-tests.ymluses TWO hand-maintained lists plus a glob — check all three). - Never let a test fall back to
/usr/local/bin: the installed copy can be stale, and the test then compares against a binary it never generated. - pre-commit's patch restore can revert an edit made before the commit. The
app_iconsandAGENTS.mdchanges each had to be applied twice. - Path rewrites need resolving, not reviewing. Relative
sourcedepths differ per file (../../vs../../../),REPO_ROOTwalks a fixed number of levels,$VAR/scripts/...prefixes hide from a naive regex, and# shellcheck source=directives break independently of the code. - Sourcing top-level code is not a split. boot-repair's report block has
exitcalls; moving it broke 30 of 42 tests.
Unrelated: syncyomi-guard is red
Failing since 00:00 on 2026-08-23, ~17h before this work started. It is working
as designed: the library collapsed from 2185 manga / 68902 chapters to 8 / 895.
See the syncyomi-restore-silent-partial memory; do NOT checkpoint the WAL
before recovering. Newest snapshot in ~/syncyomi/snapshots/ is 2026-08-15.