samplers: scan the autolens findings-lane tiers - #216
Merged
Conversation
The faculty's AGENTS.md documents a three-tier findings maturation lane, then
admits its own scan cannot see it ("Surface gap, filed"). So a conductor was
told the lane exists but handed a digest that could not say where any
search x likelihood combination sat in it.
SamplerSurface gains two present-if-checked-out surfaces, matching the three
existing ones:
- experiment (autolens_workspace_developer/searches_minimal) — the runnable
probes, reusing _py_stems, plus the *_findings.md docs as `name — first
heading`. The heading carries the campaign verdict, which is why a
conductor consults the tier at all; a heading-less doc degrades to its name.
- mature (autolens_profiling) — the sampler/dataset_class/model_type cell
matrix.
A mature cell is read from its leaf's `run_search(...)` declaration via ast,
NOT from its path. The two genuinely disagree on the live tree: all six
scripts/cluster/searches/*/mge.py leaves declare dataset_class="group" while
their siblings declare "cluster", and group is legitimate (each passes an
explicit default_instrument, so the absent _DEFAULT_INSTRUMENTS["group"] key
never fires). Path parsing would mislabel six cells and collide them with
real ones. A leaf with no parsable declaration falls back to the path shape
rather than vanishing.
Read-only and inventory-only, per the prompt: `gaps` stays keyed on the
autofit promotion tiers, so no new judgment logic enters the faculty.
_MULTI_START_*_BY_CELL is deliberately not surfaced — it holds per-cell
tuning knobs, not cell identity, and covers only 4 of the 34 cells.
Verified against the real trees: 37 probes, 8 findings, 34 cells, gaps
unchanged. New hermetic tests cover the tiers and pin the
declaration-beats-path rule so a future refactor cannot regress it; they take
tier labels from module constants so the file names no repository and stays
clear of the tenant firewall.
The firewall allowlist entries for these two files grow correspondingly in
PyAutoMind (scripts/repos_sync.py).
Prompt: draft/feature/pyautobrain/samplers_surface_autolens_tiers.md
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.
Closes the gap the samplers faculty already admitted in its own
AGENTS.md:A conductor was told the findings maturation lane exists and then handed a digest that could not say where any search × likelihood combination sat in it.
Prompt:
PyAutoMind:draft/feature/pyautobrain/samplers_surface_autolens_tiers.mdWhat changed
Two read-only, present-if-checked-out surfaces, matching the three that already exist:
autolens_workspace_developer/searches_minimal) — the runnable probes, reusing_py_stems, plus the*_findings.mddocs asname — first heading. The heading carries the campaign verdict, which is the reason a conductor consults the tier at all; a heading-less doc degrades to its bare name.autolens_profiling) — the (sampler × dataset_class × model_type) cell matrix.Resolution follows the existing convention (
PYAUTO_LENS_DEVELOPER,PYAUTO_PROFILING); absent checkouts stay reported, never fatal.The load-bearing detail: declaration, not path
A mature cell's identity is parsed from its leaf's
run_search(...)call viaast, not fromscripts/<dataset>/searches/<sampler>/<model_type>.py. The two genuinely disagree on the live tree: all sixscripts/cluster/searches/*/mge.pyleaves declaredataset_class="group"while their siblings declare"cluster".groupis legitimate, not a bug — each of those leaves passes an explicitdefault_instrument="hst", so the absent_DEFAULT_INSTRUMENTS["group"]key never fires. Path parsing would mislabel six cells and collide them with real ones. A leaf with no parsable declaration falls back to the path shape rather than vanishing.Scope held
Inventory only, per the prompt —
gapsstays keyed on the autofit promotion tiers, so no new judgment logic enters the faculty. Two deliberate exclusions:_MULTI_START_*_BY_CELLis not surfaced. The prompt names it as a way in, but it holds per-cell tuning knobs, not cell identity, and covers only 4 of the 34 cells.searches_minimal/output/does carry acomparison.txtthatbenchmarks()would read verbatim, butd["benchmarks"]is single-valued and re-keying it is a schema break for no asked-for value. Worth a follow-up prompt.Verification
Against the real trees: 37 probes, 8 findings, 34 cells,
gapsunchanged, exit 4 (not a traceback) with no checkouts.New
tests/test_samplers_surface.pyis hermetic — temp fixtures, no dependence on which siblings are cloned — and pins the declaration-beats-path rule with a fixture leaf whose declared class disagrees with its directory, so a future refactor cannot quietly regress to path parsing. It takes tier labels from module constants so the file names no repository and stays clear of the tenant firewall.Two pre-existing failures in
tests/test_skill_install.pyare unrelated (confirmed on a stashed clean tree — they assert on installer output that differs in a cloud environment).Companion
The tenant-firewall allowlist entries for these two files grow correspondingly in PyAutoLabs/PyAutoMind#174 — a new instance fact in an allowlisted file is drift, verified by running the check before the edit and seeing it flag exactly these two files.
🤖 Generated with Claude Code
https://claude.ai/code/session_01WSCA1h6cSKMNwFmWEsxuCL