mind: record samplers-surface-autolens-tiers shipped; file the ranker bug - #175
Merged
Merged
Conversation
… bug Two pieces of bookkeeping the merge itself did not do. 1. Lifecycle. The samplers lane-tiers task shipped (PyAutoBrain#216 as 31b810e, PyAutoMind#174 as 485d116) but its prompt was still sitting in draft/, so the ledger read "not started" for finished work. Records it to complete/2026/08/samplers-surface-autolens-tiers.md and removes the draft. Written with `lifecycle.py record --apply`, which also refreshed complete/index.md. The prompt was folded in by hand rather than by `--prompt`: that flag resolves only against active/, and this task went draft -> shipped without ever being issued, so there was no active/ file to find. `lifecycle.py check` and `index --check` both OK. The record keeps the findings that cost real time: that a mature-tier cell's identity comes from its run_search() declaration and NOT its path (six cluster/ leaves declare dataset_class="group"), that PyAutoBrain/tests/ sits inside the tenant firewall so a new test must avoid naming repos, and the two scope exclusions, so neither gets re-litigated. 2. The ranker bug found while planning that task, now filed as draft/bug/pyautobrain/feature_ranker_ignores_header_keys.md. The Intake Agent classified it feature/ at medium confidence; re-homed to bug/ because REFERENCE.md already states the contract it breaks — Intake persists Difficulty: "so the value shown up front is the one the Feature Agent later acts on", and _feature.py only ever prints its own re-derived score. It reads no header key at all, which is how a prompt declaring Status: blocked, Priority: low AND an explicit Blocked-by: came back as the recommended next pick. Sizing kept from the intake pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WSCA1h6cSKMNwFmWEsxuCL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two pieces of bookkeeping that merging #174 / PyAutoBrain#216 did not do by itself.
1. Lifecycle — the shipped task had no record
The samplers lane-tiers task shipped (PyAutoBrain#216 as
31b810e, PyAutoMind#174 as485d1161) while its prompt was still sitting indraft/, so the ledger read not started for finished work.Records it to
complete/2026/08/samplers-surface-autolens-tiers.mdand removes the draft. Written withlifecycle.py record --apply, which also refreshedcomplete/index.md(962 records).One wrinkle worth noting for the next person: the prompt was folded into the record by hand, not via
--prompt. That flag resolves only againstactive/(lifecycle.py:726), and this task wentdraft/→ shipped without ever being issued, so there was noactive/file to find. The record is byte-equivalent to what--promptwould have produced.lifecycle.py check→ OK.lifecycle.py index --check→ OK.The record deliberately keeps the findings that cost real time, so they don't get rediscovered:
run_search()declaration and not its path — sixcluster/leaves declaredataset_class="group";PyAutoBrain/tests/sits inside the tenant firewall, so a new test file must avoid naming repos (this one takes tier labels from module constants);_MULTI_START_*_BY_CELL, the autolens benchmark table) and why.2. The ranker bug, now filed
draft/bug/pyautobrain/feature_ranker_ignores_header_keys.md— found while planning the samplers task, when the Feature Agent's top pick had to be rejected by hand against the registry.The Intake Agent classified it
feature/at medium confidence. I re-homed it tobug/, becauseREFERENCE.mdalready states the contract it breaks:It doesn't.
agents/conductors/feature/_feature.pymentionsDifficultyonce, at line 258, where it prints its own re-derived score. It reads no header key at all — which is howdraft/feature/autonomy/10_scheduled_runs.md, declaringStatus: blocked,Priority: lowand an explicitBlocked-by:gate whose body says do not start, came back as the recommended next pick.Sizing (
small/supervised/normal) kept from the intake pass.🤖 Generated with Claude Code
https://claude.ai/code/session_01WSCA1h6cSKMNwFmWEsxuCL
Generated by Claude Code