From 5218acd0c2ce6a424cc4eeb1e6d60a617cb69a08 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 5 Aug 2026 21:43:04 +0000 Subject: [PATCH 1/2] =?UTF-8?q?prompt:=20route=20hygiene-detail-flag=20(#2?= =?UTF-8?q?03)=20=E2=86=92=20start=5Flibrary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- active.md | 13 +++++++++++++ active/add_a_detail_flag_to_the_hygiene.md | 14 ++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 active/add_a_detail_flag_to_the_hygiene.md diff --git a/active.md b/active.md index 3b4dcb22..8baa3ba6 100644 --- a/active.md +++ b/active.md @@ -1,5 +1,18 @@ # Active Tasks +## hygiene-detail-flag +- issue: https://github.com/PyAutoLabs/PyAutoBrain/issues/203 +- status: library-dev — starting. Cloud session (`web-github`): no worktree, no `gh` CLI; issue filed via the GitHub MCP surface, work done in the canonical /home/user/PyAutoBrain checkout on the harness-mandated branch `claude/hygiene-detail-flag-n1fgdq`. +- what: the hygiene `config` prescan (`agents/conductors/hygiene/_hygiene_config.py`) emits only `count|summary`; `main()` takes only `--root`. Add `--detail` printing each drifted key path grouped by the config file it is missing from, and the same for the `orphan_files` signal. Default single-line output stays byte-identical so the conductor's summary table is unchanged. +- why it matters: the hygiene skill routes config findings onward for repair, but the mode hands over nothing routable — recovering the key paths today means importing the module and re-running `diff()` by hand. +- baseline (live checkouts, root /home/user): `19|19 library config keys absent downstream (review/mirror): autofit_workspace:3 autogalaxy_workspace:15 autolens_workspace:1`; orphan_files 0. `--detail` must resolve those 19 to autofit_workspace general.yaml (output.search_internal, test.check_likelihood_function) + logging.yaml (total_files_open); autogalaxy_workspace general.yaml (test.exception_override) + 14 notation.yaml labels; autolens_workspace general.yaml (output.fit_dill). +- api-constraint: `diff()` and `orphan_files()` keep their `(total, ["repo:N", ...])` returns — `tests/test_hygiene_conductor.py` asserts all three directly. The detail cores go underneath them, one traversal, so count and listing cannot disagree. +- prompt: active/add_a_detail_flag_to_the_hygiene.md +- worktree: (none — cloud session, canonical checkout) +- repos: + - PyAutoBrain +- prompt-provenance: the draft was filed on `claude/hygiene-agent-run-n9qtd5` (PyAutoMind, commit 89f5404, which filed four hygiene-run findings at once) and is not yet on main. Only this one prompt file was checked out onto the working branch — the other three belong to their own tasks. + ## covariance-interpolator-rng-seed - issue: https://github.com/PyAutoLabs/PyAutoFit/issues/1450 - status: library-dev — fix COMMITTED AND PUSHED to `claude/covariance-interpolator-rng-seed-8zexp3` (PyAutoFit 68a8b391). NO PR opened (not requested). Cloud session, no worktree and no `gh` CLI; issue filed via the GitHub MCP surface. diff --git a/active/add_a_detail_flag_to_the_hygiene.md b/active/add_a_detail_flag_to_the_hygiene.md new file mode 100644 index 00000000..baeae2fd --- /dev/null +++ b/active/add_a_detail_flag_to_the_hygiene.md @@ -0,0 +1,14 @@ +# Add a --detail flag to the hygiene config scan so + +Type: feature +Target: PyAutoBrain +Repos: +- PyAutoBrain +Difficulty: small +Autonomy: safe +Priority: normal +Status: formalised + +Add a --detail flag to the hygiene config scan so its findings are routable. The config scan in PyAutoBrain agents/conductors/hygiene/_hygiene_config.py emits only a 'count|summary' line naming how many library config keys are absent downstream and a per-target tally. Its main() accepts only --root and prints that one line, so there is no way to see which key paths actually drifted. The hygiene skill tells the operator to route config findings onward for repair, but the mode hands over nothing routable: recovering the key paths currently means importing the module and re-running its diff() internals by hand. Add a --detail flag that prints each drifted key path grouped by the config file it is missing from, keeping the existing single-line output as the default so the conductor's summary table is unchanged. Extend the same treatment to the orphan_files signal the module already computes. + + From e227c2e5d9c3a65372039b6e30d45119fef7ecd5 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 5 Aug 2026 21:47:48 +0000 Subject: [PATCH 2/2] prompt: hygiene-detail-flag committed + pushed (PyAutoBrain#203) Records the shipped state for the config --detail task: PyAutoBrain c05c9e4 on claude/hygiene-detail-flag-n1fgdq, 236 tests passing, the 19 drifted keys reproduced exactly, and the deliberate scope call on the hygiene.sh single-mode branch. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01XvQ4YHkNynTmS4ovHAgbWB --- active.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/active.md b/active.md index 8baa3ba6..76f21ca1 100644 --- a/active.md +++ b/active.md @@ -2,7 +2,11 @@ ## hygiene-detail-flag - issue: https://github.com/PyAutoLabs/PyAutoBrain/issues/203 -- status: library-dev — starting. Cloud session (`web-github`): no worktree, no `gh` CLI; issue filed via the GitHub MCP surface, work done in the canonical /home/user/PyAutoBrain checkout on the harness-mandated branch `claude/hygiene-detail-flag-n1fgdq`. +- status: library-dev — COMMITTED AND PUSHED to `claude/hygiene-detail-flag-n1fgdq` (PyAutoBrain c05c9e4). NO PR opened (not requested). Cloud session (`web-github`): no worktree, no `gh` CLI; issue filed via the GitHub MCP surface, work done in the canonical /home/user/PyAutoBrain checkout on the harness-mandated branch. +- verification: full PyAutoBrain suite 236 passed (`tests/`), hygiene conductor file 53 passed. `--detail` reproduces the expected 19 keys exactly (see baseline below); default line byte-identical; `hygiene config --json` row and the default summary table unchanged. +- shape: `diff_detail()` / `orphan_detail()` return the items; `diff()` / `orphan_files()` became the count view over the same single traversal via `_summarise()`, so a tally cannot disagree with its own listing. `render_detail()` groups keys under the workspace file missing them and orphans under their repo. `--detail` drops the machine `count|` prefix (it is the human/routing view); default output keeps it. +- scope-note: also wired the `hygiene config` single-mode human branch in `hygiene.sh` to render the detail block, mirroring the existing `refs`/`optdeps`/`extras` branches — without it the flag is only reachable by calling the helper directly, which is the same "not routable" complaint one level up. `prescan_config()` untouched. +- observed-not-fixed: `_hygiene_config.py::_suppressed()` is dead code — it predates this change (`orphan_files` always inlined `r.split("/")[0] in owners`). Left alone deliberately to keep this PR scoped; worth a separate tidy. - what: the hygiene `config` prescan (`agents/conductors/hygiene/_hygiene_config.py`) emits only `count|summary`; `main()` takes only `--root`. Add `--detail` printing each drifted key path grouped by the config file it is missing from, and the same for the `orphan_files` signal. Default single-line output stays byte-identical so the conductor's summary table is unchanged. - why it matters: the hygiene skill routes config findings onward for repair, but the mode hands over nothing routable — recovering the key paths today means importing the module and re-running `diff()` by hand. - baseline (live checkouts, root /home/user): `19|19 library config keys absent downstream (review/mirror): autofit_workspace:3 autogalaxy_workspace:15 autolens_workspace:1`; orphan_files 0. `--detail` must resolve those 19 to autofit_workspace general.yaml (output.search_internal, test.check_likelihood_function) + logging.yaml (total_files_open); autogalaxy_workspace general.yaml (test.exception_override) + 14 notation.yaml labels; autolens_workspace general.yaml (output.fit_dill).