Combined #85-#89: probe results + trigger repair, bare-probe environment/tier/leakage/reasoning clauses, adoption + citation + staging rules, blanket-go scope, grader token collision - #90
Merged
Conversation
… probe results
The four rules folded 2026-07-25 shipped `unprobed` per the covenant. This is
that probe, run against the merged text (n=1/arm, one weaker-tier executor —
screens for a large effect only).
- §7 derived-file rule: failed BOTH arms. Given a wrong value in a file with no
provenance cue, each arm edited it in place. The written trigger named the
classification ("a derived file") that the rule exists to force, so it fired
only when provenance was already known. Trigger restated as the observable
state; body unchanged. Repaired form ships unprobed.
- §3 bound-invalidation, §7 bare-executor-probe: discriminated. Markers updated.
- §3 world-fact staleness: did NOT discriminate — a bare arm produced the
scoping unaided. Flagged in its marker for a demotion judgment, not demoted
at n=1.
- §2: derive a cross-reference's section number from the file, never from
recall. One such reference reached main and cost fix commit 8f8413f.
Provenance amended with the results, including two discarded runs (round-1
scenarios leaked the taught distinction; one bare arm was contaminated by the
author's own session memory reaching the subagent).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…s' reasoning, not just verdicts Two clauses folded into the existing bare-probe bullet, distilled from a downstream consumer's first four fold probes of this repo's merged rules: - The bare arm runs in the executor's REAL baseline (standing global rules, always-loaded caches), so a bare-pass verdict means redundant in that environment only — record the baseline next to the verdict and never export non-discrimination to a different baseline. - Read each arm's stated reasoning before writing the fold: a failing bare arm supplies the exact excuse the rule must refute (carry it in near-verbatim); a passing ruled arm that over-fires by refusing the surrounding task is a wording warning, not a win. Provenance paragraph appended; both clauses ship unprobed per the covenant. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ng; re-resolve citations on install; stage by pathspec over dirty state Three clauses from one downstream consumer's adoption pass over this repo. skill-authoring §3, on the merged-integration bullet: that bullet tracks the campaign continuing UPSTREAM. The mirror case is an author's own adoption — a merge closes the contribution while the author's always-loaded files still lack the rule, and nothing feels missing because the author has been applying it from working context. Binds the adoption debt to the same ledger row that logs the merge, since a debt parked in a plan or summary is the invalidation-clause failure this file already warns about. skill-authoring §3, new rule before the packaging trio: a distributable skill's section-number and named-anchor citations address ITS library. Installed elsewhere they still read as valid and resolve to the wrong content. Re-resolve each against the destination by grep, classify retargeted / unchanged / absent-here, and record retargets in the port note — unrecorded, the next diff-against-upstream reads them as drift and a re-sync restores the broken numbers. operational-rigor §2, on the baseline bullet: the mutation-side half of a baseline the rule already required. With pre-existing changes present that you did not author, stage by explicit pathspec; git add -A publishes edits you have never read under your message. All three ship unprobed per the covenant; Provenance entries added. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Third clause on the same bare-probe bullet, and it must ship with the first one: clause 1 says the bare arm KEEPS its environment (standing global rules, always-loaded caches); this says strip episodic recall of the finding under test. Stated apart, each reads as contradicting the other — the boundary is the rule. The test is what the arm would have without you: what every invocation in that environment ships with is baseline; an auto-memory store, a session summary, or notes from the run being probed are leakage. That store survives a fresh invocation, so the existing no-shared-state requirement does not catch it — the arm loads the conclusion, restates it, and scores as an unaided reproduction. Countermeasures: recall-dodging framing, an explicit disregard instruction, and a citation check on the output before the run counts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…pending Extends the "Approval is not a verdict" bullet with the scope-direction case. The surrounding rules stop an approval from reaching forward to work the user never saw; this stops it from being silently trimmed backward to the agent's most recent message. If part of the pending queue is deliberately excluded, name the excluded items before starting, not when asked where they went. Ships unprobed per the covenant.
… corpus cannot produce Adds one fake-pass shape to the item-3 list. Unlike the empty-scan shapes already there, this grader runs correctly over a non-empty input and still passes every arm: it scans prose for a word the graded corpus itself contains, so it scores the corpus rather than the behavior. Its damage runs opposite to a vacuous green. A vacuous green hides a failure; this manufactures agreement, so an A/B whose arms all pass reads as "no effect" and retires a rule that actually worked. Fix is two-part: key on a structural marker the subject must create, and sanity-check the grader against a known-bad arm before trusting a clean sweep. Ships unprobed per the covenant.
A fold probe run at the probing session's own strong tier returned bare 3/3 on a citation-re-resolve rule (redundant with model capability); a same-day replication of the same fixture at a weak tier returned bare 0/3. Extends the environment-relative-baseline clause: tier is another axis the verdict does not automatically generalize across, and only a bare-pass (non-discrimination) result is poisoned by running above the file's audience — a strong-arm ruled FAIL or bare FAIL still stands.
# Conflicts: # skills/skill-authoring/SKILL.md
# Conflicts: # skills/skill-authoring/SKILL.md
# Conflicts: # skills/operational-rigor/SKILL.md
Per the house covenant's explicitly-labeled norm (precedent: #62-65 gate), add in-body unprobed markers to the clause additions that carried only Provenance-level labels: skill-authoring SS2 derive-cross-references, SS3 adoption-debt + citation-resolution, SS7 consolidated marker for the four 2026-07-27/28 bare-probe clauses; operational-rigor SS2 stage-by-pathspec + blanket-go. Rewrap three over-80 added lines from #85's marker rewrites. Provenance-section blank-line normalization (house style: continuous prose) applied during the #86 merge resolution. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…-ultra - ground-truth-gates: shape count Four->Five after the fifth insertion; 'empty-scan shapes above' narrowed to 'the zero-input scanner above' - skill-authoring SS7: baseline clause reworded (the probe goes non-discriminating; the baseline does not 'fail' it); tier clause's strong-arm FAILs scoped as evidence, not verdict-table outcomes (a bare FAIL alone never 'earns the line'); SS3 citation rule: retargeted classified by resolved local address, not number; byte-identical X-example scoped to differently-numbered libraries; re-appliable -> re-applicable - skill-authoring Provenance: SS2 derive-cross-references clause given its own evidence chain (8f8413f + contributor-reported draft catch), decoupled from the four-rule probe run, explicit unprobed status - operational-rigor SS2: staging clause covers foreign hunks inside a touched file (staged-diff review; git show HEAD not --stat alone); blanket-go states its boundary with per-invocation/confirmation rules Rejected with counter-evidence: arrow-glyph prohibition (36 uses on main across the two files), 82-char line claim (78 chars; house measure is characters, not bytes). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
grok: adoption-debt promoted to its own SS3 bullet with a bold trigger (was nested past the campaign bullet's Done-when, unreachable for a pure contributor — the trigger-reachability defect class this same PR set repairs); r1's foreign-hunk fold de-circularized (staged-diff read is unconditional on a dirty tree, with a commit-only-if-solely-yours gate and unstage/checkpoint remediation — 'when it does' named the state the check exists to discover). luna: -A exception now requires changes both yours AND belonging to this commit; absent-here citations never dropped silently (port note records delete-or-gap either way); bare-SSN citations get a pin-upstream-meaning step before destination grep; contamination check scoped to details the scenario did not supply + explicit honesty bound (quoted recall only — surprising bare-pass from a memory-bearing arm stays suspect); world-fact marker now names the deferred demotion judgment. Partially rejected: L1's contradiction claim (SS7's own n=1 re-run line; verdict table governs candidate folds, not retrospective demotion of shipped doctrine); L5's memory-cleared-executor prescription (conflicts with the environment-relative baseline clause in the same bullet). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…s joins)
grok: leakage list now names finding CONTENT as the contaminant, the
store as its vector (was contradicting the keep-the-baseline rule);
retarget-recording step also records absent-here outcomes; 'may still
earn its line'; never-list adds git commit -a/--all.
luna: bare-check ('a bare check argues redundancy at most; only the
pair settles it'); Provenance four-rule contrast disambiguated (the
repaired fourth failed both arms, outside the contrast); foreign hunks
now unstaged and LEFT IN TREE (stash/commit is its own act needing its
own authorization); audience tier scoped (multi-tier: weakest it must
protect); contributor-reported labels folded onto the four unlabeled
downstream-consumer Provenance entries (twin sweep: grep 'downstream
consumer' — #86 x2, #88, #89).
sol: grader marker must be created AND filled; blanket-go examples now
genuinely queue-wide ('proceed all') + bare-'proceed' ambiguity boundary;
leakage controls applied to BOTH arms (candidate rule the only
difference); compose-cure scoped to rules whose intended outcome is not
refusal, proceed on a pass; mis-targeted vs dangling distinction fixed
in the SS2 clause, the citation rule, and Provenance.
Rejected with counter-evidence: sol's mandatory port-or-rewrite closure
for absent-here (partial adoption is a legitimate steady state; the
over-fire lesson folded this same round applies to the reviewer's cure
too) and luna's declared-tier registry (the one-way inference already
handles above-tier data; registry is machinery beyond the PR).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
grok: absent-here keep-gap must be a non-resolving marker, never a live SSN resolving locally to unintended content (sol r3's kernel, rescoped without mandatory porting); auto-memory anaphora fixed (the survival rationale attaches to that vector, not the whole carrier list); re-sync hazard names deletes as well as retargets; grader-shape damage line no longer claims the opposite-of-vacuous uniqueness (manufactures agreement OVER REAL INPUT). luna: stage-everything forms enumerated generically (-A/--all/-u/ --update/., commit -a/--all); Provenance probe accounting fixed (three of the probes produced the clauses: one env + two reasoning). Rejected with counter-evidence: malformed-marker negative-control escalation — the shape entry's next sentence already binds item 2's known-broken-run discipline over this grader class, and create-and-fill covers the empty-content arm; deeper grader validation is items 1-2 territory. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…indings)
- operational-rigor SS2: -A licence made exclusive ('Only on a tree
whose every change is yours and belongs in this commit is -A fine —
any other state stages by pathspec'), closing the self-authored-but-
unrelated gap that fell between the two named cases
- skill-authoring: world-fact probe marker + Provenance now record the
PAIR ('both arms produced the scoping, the bare one unaided') — the
non-discrimination verdict requires both arms per SS7's own table, and
the ruled-arm result exists in the probe record
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
sol: staged-diff gate keys on commit intent, not authorship alone
(solely the changes this commit intends — yours AND belonging here);
unstage only what YOU staged — a baseline-staged foreign hunk is the
user's index arrangement, stop and surface it (git commit takes the
whole index, so pre-staged foreign content would otherwise ship);
pre-push verify reads every outgoing commit's patch (git log -p @{u}..
— git show HEAD covers only the tip); stranger-test replaced with the
executor-invocation test (the tested executor's standing rules ARE
baseline even though a stranger would lack them — the stranger frame
recreated the forbidden blank-model counterfactual).
luna: killed-candidate Provenance no longer claims a verdict-table cell
from a bare arm alone (either matching cell keeps it out of the
always-loaded file); the pre-existing 8-of-3 measurement is qualified
as an earlier probe form (rules file absent outright, predating the
baseline clauses) so 'probed this way' no longer anachronistically
claims current-procedure conformance.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
- staged-diff gate triggers on commit INTENT (foreign hunks or your own
from another task; 'on any tree whose changes exceed this commit's
intent'); dropped the authorship apposition
- pre-push verify measured against the real push destination (@{push}/
@{u} where set, else the fork base) with merge diffs shown
(--diff-merges=first-parent) — @{u} is not the push destination on
triangular workflows and git log -p omits merge diffs by default
- derived-file trigger covers manual sources ('or serves as a source it
is maintained from'; 'derived — compiled mechanically or maintained
by hand') — the body's hand-maintained branches were unreachable
through a generator-only question
- adoption-debt row closes only on port done or reasoned decline;
probe-then-port keeps it open (was closable on a nonterminal decision)
- #85 probe Provenance entry labeled contributor-run and
contributor-reported (fifth unlabeled entry, missed by the r3 twin
sweep which grepped 'downstream consumer' only)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…ED x3)
luna: contamination check no longer false-discards a ruled arm for
citing the candidate rule's own content (details supplied neither by
the scenario nor, in the ruled arm, by the candidate rule).
sol: push-destination chain corrected (@{push} where it resolves; @{u}
only if provably the same destination; explicit refspec or new branch
resolves it yourself); SS2 cross-reference derivation requires current
search output showing the enclosing heading (a bare body line does not
establish its section); port-note pairs carry heading/anchor and
re-resolve on every re-sync (numeric pairs go stale on renumber);
Provenance 'false anywhere' scoped to 'not exportable to any
environment without that baseline'.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
Pre-push range names both endpoints: <dest>..<source>, where <source> is the ref the push actually sends (HEAD only when it is the refspec's source) — an explicit refspec like topic:release would otherwise be audited against the checked-out branch instead of the pushed commits. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…CEED x5) luna: the ancestor guard now binds to the BASELINED tip (run before your first commit moves HEAD, or against the recorded starting tip) — the SS2 staging insertion had pushed it after commit instructions in reading order, where a post-commit HEAD is no longer an ancestor and the stale-branch guard silently passes. sol: push-destination freshness (refresh from the remote first — a tracking ref names the address, not its freshness); absent-here sentence-rewrite bounded against absorbing the missing sibling's semantics (the adjacent no-paraphrase rule holds). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
grok r11 PROCEED (7th consecutive, r5-r11); luna r11 PROCEED (3rd of last 4 rounds, zero nits). sol r11's two finds folded sol-unverified per the SS4 bounded-loop precedent: git add -- <path> (a pathological filename cannot parse as an option); the pre-push recipe scoped to what a fast-forward push ADDS (a non-fast-forward push deletes remote history — a destructive action under this section's own gates). Gate record: 11 rounds, 3 lenses (grok-4.5 high + gpt-5.6-luna ultra every round; gpt-5.6-sol max r3+), ~62 folds, 7 rejections with counter-evidence. Terminal state: grok+luna dual PROCEED with sol residual disclosed as last-mile command-hardening, folded unverified. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
This was referenced Jul 29, 2026
This was referenced Jul 29, 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.
Combined integration of contributor PRs #85, #86, #87, #88, #89 (ascending
merges, so each original PR closes as merged by reachability), plus
integration-fix and gate-fold commits.
What lands
2026-07-25 rules (bound-invalidation and bare-executor-probe
discriminated; world-fact staleness did not — flagged for a demotion
judgment, not demoted at n=1); the derived-file rule's trigger repaired
(fires on the observable state — wrong content, correction imminent —
instead of the classification the rule exists to force); a §2 clause:
derive a cross-reference's address from the target file, never recall
(incident repo-verifiable at
8f8413f).environment-relative (keeps the executor's real baseline; verdicts don't
export); tier inheritance (probe at the audience tier; one-way inference);
baseline-vs-leakage (episodic recall of the finding under test is
contamination; symmetric controls); harvest the arms' reasoning, not just
verdicts.
is not adopting it (adoption debt bound to the ledger row that logs the
merge — promoted to its own bullet during the gate); re-resolve every
citation against the destination on install (classify
retargeted/unchanged/absent-here; port note records all outcomes); stage
by explicit pathspec on a dirty baseline.
as pending, with its one-way boundary and per-invocation/confirmation
rules explicitly untouched.
grader whose match token the corpus can produce manufactures agreement
over real input; key on a marker the subject must create and fill, and
sanity-check against a known-bad arm.
All new rules/clauses ship
unprobedper the covenant (in-body markers +Provenance entries; probe debt joins the private round-5 queue).
Review gate
11 rounds, three lenses (grok-4.5 high + gpt-5.6-luna ultra every round;
gpt-5.6-sol max from r3). Fold trajectory 10→8→12→6→2→6→5→5→1→3→2:
~62 must-fix/nit folds applied, 7 findings rejected with in-repo
counter-evidence. Terminal state: grok PROCEED r5–r11 (seven consecutive),
luna PROCEED r7/r9/r11, sol reduced to last-mile command-hardening whose
final two folds land sol-unverified per the §4 bounded-loop precedent.
Highlights the gate caught: a trigger-reachability defect in the
adoption-debt clause's original nesting; an internal contradiction between
the stranger-test and the environment-relative baseline definition; the
staged-diff gate's circular trigger; git semantics corrections
(
@{push}vs@{u}, merge diffs, range endpoints, tracking-reffreshness); five Provenance entries lacking contributor-reported labels;
and an ordering defect where the ancestor guard landed after commit
instructions.
Integration notes
stacking entries in PR order; two internal blank lines normalized to the
section's continuous-prose style.
unprobedmarkers onclause additions that carried only Provenance-level labels; line rewraps
to the 80-character norm.
python3 .github/checks.pygreen at every fold commit; added lines all≤80 characters; house glyphs only.
🤖 Generated with Claude Code
https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8