cairn: add phase=vapor to critic/librarian formulas, fix critic-loop self-repour#43
Merged
Conversation
…-aa0y) Failing tests expressing the exit contract: both formulas must carry a top-level phase="vapor" field, and mol-cairn-critic's loop step must self-repour via "bd mol wisp --root-only" + restamp gc.routed_to instead of the old orphan-spraying "bd mol pour".
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.
What this changes
Adds a
phase = "vapor"field to cairn's two self-authored formulas(
mol-cairn-critic,mol-cairn-librarian), and fixes the critic loop'sself-repour step: it now re-invokes itself via
bd mol wisp mol-cairn-critic --root-only --jsoninstead of the oldbd mol pour mol-cairn-critic, capturing the new wisp's ID and restampinggc.routed_to=cairn/dogfoodon it.Why built this way
bd mol wisp --root-onlyproduces an ephemeral, childless bead for therepour instead of a full molecule tree, so each critic-loop cycle no longer
leaves behind an orphanable chain of child beads. Same self-repour behavior,
smaller blast radius per cycle.
Review notes
formulas/formulas_test.go— no config surface, no endpoints, no behaviorchange outside these two formulas' own execution.
Test plan
go build ./...,gofmt -l .,go vet ./...,golangci-lint run ./...(0 issues),go test ./... -race -count=1—all pass on the deployed commit
TestCriticFormulaHasVaporPhase,TestLibrarianFormulaHasVaporPhase,TestCriticLoopStepSelfRepoursRootOnlyAndRestampsRoutingrelease-gates/cairn-critic-librarian-vapor-phase-gate.md