prompt: consolidate #189 into main — one phase-1 record, follow-ups filed - #194
Merged
Conversation
…llow-ups filed Two sessions independently wrote a completion record for the prior-support Clipper. #189 was opened first, by the session that actually shipped PyAutoFit#1477; #190 (mine) landed later because I never listed open PRs before starting. This consolidates them so main holds one record, not two. complete/2026/08/prior-support-clipper.md is now the union. The detailed body comes from #189 and is materially richer than what I wrote: the bound-kind design decision (why one relative margin is wrong in two silent ways), eight traps measured against a running install, the verification log (bit-identity 10/10, core promise 8/8, guards verified by inversion), and the process lesson -- a first commit shipped an undefined `optimize` in LBFGS._fit and the full 1790-test suite passed against it, because nothing in the suite executes an LBFGS fit. My "what shipped after" section is appended, since #189 predates #1478/#1479/#1480 and so records follow-ups 1 and 2 as open when they are now fixed. #189's phase-2 harness traps salvaged into the campaign prompt -- the .completed short-circuit, fit() rebuilding search.paths so instance-level patches are discarded, search_internal being deleted on success, seeding both random AND numpy, and a box containing the optimum never exercising the clipper. Also that arm 3 does not exist yet (phase 1 ships the mask, no reset) and two phase-1 measurements to carry in as priors. Follow-ups 3 and 4 filed as prompts rather than left in a record: loggaussian_prior_declares_own_support.md and clipper_in_search_identifier.md. The second is Autonomy: human-required -- both answers orphan or collide someone's stored results, and it is best decided BEFORE phase 3 so the re-baseline and any re-keying are not entangled. One correction absorbed from #189: test_nautilus single_core_builds_no_pool PASSES in CI and fails only in local venvs (both 3.12 and 3.13, two independent sessions). "Not caused by this work" is right; "pre-existing on clean main" -- the looser phrasing used in #1479 and #1480's bodies -- is wrong. Recorded. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FzF2XmKQaqZRWZfZMxvTNR
This was referenced Aug 16, 2026
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 sessions independently wrote a completion record for the prior-support
Clipper. #189 was opened first, by the session that actually shipped PyAutoFit#1477; #190 (mine) landed later because I never listed open PRs before starting. This consolidates them somainholds one record, not two.Closes #189 in favour of this — nothing from it is dropped.
The record is now the union, and #189's half is the better half
complete/2026/08/prior-support-clipper.mdkeeps its slug (six things already reference it) but takes #189's body, which is materially richer than what I wrote:margin * (upper - lower)is wrong in two separate silent ways, and the three-case table (two-sided finite / unbounded / half-open exclusive) that replaced it.NaN— which would have made the feature actively harmful on exactly the models it targets, with a symptom indistinguishable from the bug being fixed, while every bit-identity test still passed.optimizeinLBFGS._fit, and the full 1790-test suite passed against it, because nothing in the library suite ever executes an LBFGS fit. A green suite is not coverage.My "What shipped after this record was first written" section is appended, since #189 predates #1478/#1479/#1480 and therefore lists follow-ups 1 and 2 as open when they are now fixed.
Phase-2 harness traps salvaged into the campaign prompt
These cost the phase-1 session real time and were about to cost the GPU session the same:
.completedmarker short-circuitsfit()— three successive versions of a resume test "passed" while testing nothing.fit()rebuildssearch.paths, so instance-level monkeypatches are silently discarded. Patch at class level.search_internalis deleted on successful completion; capture it as it is written.randomandnumpybefore every fit, or bit-identity comparisons report spurious mismatches.Plus: arm 3 does not exist yet (phase 1 ships the mask, no momentum reset), and two phase-1 measurements to carry in as priors.
Follow-ups 3 and 4 filed as prompts
loggaussian_prior_declares_own_support.md—LogGaussianPriorreports(-inf, inf)for a support of(0, inf). The clipper special-cases it; the prior should declare it. Flagged as needing care: the nested samplers map through the prior in unit-cube coordinates.clipper_in_search_identifier.md—Autonomy: human-required, deliberately. Leaving it out collides result-affecting runs; putting it in orphans every stored multi-start and BFGS output directory. Four options laid out, none pre-selected, and it is best decided before phase 3 so the re-baseline and any re-keying are not entangled.One correction absorbed
test_nautilus.py::test__single_core_builds_no_poolpasses in CI and fails only in local venvs — on 3.12 and 3.13, from two independent sessions. "Not caused by this work" is right; "pre-existing on cleanmain", the looser phrasing I used in #1479 and #1480's bodies, is wrong. Recorded in the consolidated file rather than by editing merged PRs.Bookkeeping
lifecycle.py checkOK,index --applyrun,dashboard.mdregenerated (138 → 140 drafts).🤖 Generated with Claude Code
https://claude.ai/code/session_01FzF2XmKQaqZRWZfZMxvTNR
Generated by Claude Code