The real producer: self-extend cycles land in the gate store - #380
Merged
Conversation
…ate store
The last build item of the working version. When a self-extend cycle runs inside
an ashlar project (ashlar.policy.yaml at the repo root), its outcome is recorded
as an ExtensionProposal through the admission gate — the same store `ashlar gates`
reads. The overnight loop is now real end to end: the runner works, the gate
holds, a person seats the stone in the morning.
Design points:
- No-op outside ashlar projects: five host registrations untouched; the runner
behaves exactly as before anywhere without a policy file.
- The proposal claims ONLY what the cycle evidences — today the sandbox course,
from the policy engine's own denial count. A policy requiring gates the cycle
did not run REJECTS with "did not run": the runtime may not claim courses it
did not run, and the operator's policy decides whether the evidence suffices.
- An unreadable policy is a loud GATE ERROR in the run summary, never a skipped
gate. Sealed mode records the rejected attempt: it refuses, it does not forget.
- SelfExtendRunResult grows an additive GateOutcome field (default null) so
every existing construction site keeps compiling.
- Honest scope, in the class doc: v0 records AFTER the cycle's mediated writes —
a ledger plus the human queue. Moving admission BEFORE the write lands
(propose -> hold -> apply) is the M1 enforcement ordering, SPEC-004.
8 bridge tests. Verified: kernel build 0/0, Tests.BackgroundAgents 506/506 both
TFMs, cert gate 178.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
The working version's last build item. A self-extend cycle inside an ashlar project records its outcome through the admission gate — the same store
ashlar gatesreads. The overnight loop is real end to end: runner works, gate holds, a person seats the stone in the morning.8 bridge tests · Tests.BackgroundAgents 506/506 both TFMs · cert gate 178 · kernel build 0/0
🤖 Generated with Claude Code