Skip to content

Combined integration: #77-#80 + #82 through a seven-round tri-lens gate - #84

Merged
F-e-u-e-r merged 18 commits into
mainfrom
combined-77-78-79-80-82
Jul 26, 2026
Merged

Combined integration: #77-#80 + #82 through a seven-round tri-lens gate#84
F-e-u-e-r merged 18 commits into
mainfrom
combined-77-78-79-80-82

Conversation

@F-e-u-e-r

Copy link
Copy Markdown
Owner

What

Combined integration of the five open upstream doctrine PRs, merged ascending
(#77#78#79#80#82) with their head commits preserved, then hardened
through a seven-round tri-lens cross-model gate. +232 lines across four skill
files, additions only.

Gate

  • Rounds 1-2: grok-4.5 (high) + gpt-5.6-luna (ultra). Rounds 3-7 (pre-commit):
    • gpt-5.6-sol (max) as third lens per the standing cadence.
  • 20 unique must-fixes reproduced and folded (r1:8, r2:4, r3:3, r4:2, r5:1,
    r6:2), each fold regression-checked by all lenses in later rounds; 12 nits
    adopted; 9 rejected with recorded counter-evidence; 1 integrator rejection
    overturned by a second lens. Terminal round 7: TRIPLE PROCEED, zero folds.
  • Notable folds: the applicability arm no longer reuses §4's
    irreproducible-false-positive bucket for synthetic-reproducible findings and
    a branch-introduced latent path stays must-fix; pre-existing moves where a
    defect gets fixed, never whether; fact anchors carry authority + date so an
    unattributed literal cannot masquerade as an external anchor; the
    bare-executor probe scores both armed arms against the rule's intended
    outcome (a working preventive rule can no longer be dropped as "harmful");
    the derived-file rule forks cleanly across machine-compiled vs
    hand-maintained pairs, trial-regenerates before declaring drift, and blocks
    hand-edits when only the generator is unavailable.
  • Integrator pre-gate fix: skill-authoring §3+§7: four maintenance-pass rules from one staleness incident #82's sync-contract cross-reference corrected to §3
    (the file's own §5 cites "§3's sync contract naming"); confirmed by all
    lenses.
  • Full cumulative disposition ledger travelled with every round's packet;
    per-round folds are individual commits on this branch.

Covenant

All nine added rules ship unprobed with in-body markers and Provenance
narratives (private evidence cited as shape; no code taken); their probes join
the private round-5 queue. .github/checks.py green after every fold.

Merging this branch (merge commit) closes #77, #78, #79, #80, #82 as merged by
reachability.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8

firaen22 and others added 18 commits July 24, 2026 23:48
… applicability is a runtime-state question

Two adjudication gaps for reviews of behavior-preserving refactor branches,
class-distilled from a mining pass over the owner's own sessions (no code
taken). §3 already reproduces findings before acting and tracks a
pre-existing-tracked disposition, but does not say how you ESTABLISH
pre-existing: on a refactor branch a reproduced defect can be one the branch
faithfully carried over from master, so reproduce on the merge-base before
counting it a regression the branch owns. And a finding can be non-applicable
against runtime/deployment state (empty store, never-deployed writer) even
when the source reads as a bug — adjudicate against the running system, not
source alone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fan-out finders scanning for dedup targets, dead code, or duplication
over-claim in the scope-inflating direction — substring counts, false
'byte-identical', dissolving dedups, 'dead' code with live registrations.
§3 already covers the empty-input synthesizer (confabulates from nothing) and
the settled-tree re-read; this is the distinct third case: the survey ran,
returned non-empty, and every finding was a confidently-wrong lead. Re-verify
each in source before speccing, and re-check whenever a finding reverses
scope, because the plan built on the survey is now stale. Class-distilled
from a mining pass over the owner's own sessions (no code taken).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…t just the shape

New rule 6 under 'What makes a gate real'. When code embeds domain constants
(holiday dates, rates, valid-state sets), a structure-only suite passes
whether the values are right or a later edit corrupted one. The values were
cross-checked once — but in the conversation, which evaporates at session end.
Anchor the load-bearing values as assertions from the authority you already
consulted, so a future silent constant change fails. This is item 2's
change-detector carve-out used correctly (the value IS the contract).
Class-distilled from a mining pass over the owner's own sessions (no code
taken): a 'tests check shape, not date-truth' cross-model finding on hardcoded
holiday dates.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s a claim to verify live before the doc ships

A skill/runbook that tells a weaker model a capability exists ('the engine
auto-searches every category', 'this flag does X') is executed verbatim by
the reader least able to notice it is wrong — shipping it unverified ships a
false instruction. When the behavior is new or just-patched, prove it against
a real gate, THEN finalize the doc; a scarce/expiring live session argues for
verifying FIRST, not for shipping on the theory it probably works. Positive
twin of §3's capability-negative rule. Class-distilled from a mining pass over
the owner's own sessions (no code taken).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… incident

§3: staleness concentrates in world-fact rules (scope the audit there);
an invalidation clause must bind to a surface the work already touches.
§7: probe a candidate rule against the bare executor before folding it in;
a derived file contradicting reality may be mirroring a wrong source.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…; applicability is runtime-state

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…eads, not facts

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
… asserts the facts

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…to verify live before the doc ships

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8

# Conflicts:
#	skills/skill-authoring/SKILL.md
…m one staleness incident

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8

# Conflicts:
#	skills/skill-authoring/SKILL.md
The sync-contract bullet ("When two files must agree, write the sync
contract down... must name which file wins on disagreement") sits in
§3 Provenance and decay; §5 already cites it as "§3's sync contract
naming". §4 is Memory architecture and carries no sync contract.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
- cross-model-review §3: the applicability arm no longer files a
  synthetic-reproducible finding under §4's irreproducible-false-positive
  bucket (that bucket is for findings that do not reproduce at all);
  runtime non-applicability is now rejected-with-reason with counter-
  evidence or owner-accepted deferral, and a latent path the branch
  itself introduces stays must-fix. Ownership stays a merge-base
  question; applicability is severity, not ownership.
- cross-model-review §3: 'gone on master' -> 'gone on the merge-base'
  (consistent with the arm's own re-run target on a long-lived branch).
- cross-model-review §3: in-body unprobed marker + covenant line added
  (house convention; siblings carry it).
- delegation-and-review §3: Provenance claimed an in-body unprobed
  marker the bullet lacked — marker added.
- ground-truth-gates rule 8: a legitimately-changing fact now routes to
  rule 4's test-edit-is-a-contract-edit, not the regenerate-and-diff
  rule (that rule is for committed generated artifacts).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
Three of luna's eight were independent rediscoveries of grok's r1
findings, already folded. The five unique:

- cross-model-review §3: pre-existing-tracked no longer reads as
  auto-non-blocking — pre-existing moves WHERE a reproduced
  correctness/safety defect gets fixed, never WHETHER; deferral stays
  the owner's call per this section's triage.
- ground-truth-gates rule 8: each anchor assertion now carries its
  authority and consultation date beside the value — an unattributed
  literal is indistinguishable from item 3's copied-back expected
  value.
- skill-authoring §3: 'does not go stale at all' -> 'goes stale rarely
  and slowly', low-yield 'not as exempt' (the absolute claim
  contradicted the bullet's own escape clause and overclaimed from an
  n=1 sweep; overturns this integrator's r1 rejection of the same
  point raised as a grok nit).
- skill-authoring §7 bare-executor probe: a bare pass counts only when
  the run demonstrably met the rule's trigger (not-armed discipline),
  and one pass screens for a large effect only — close calls re-run
  before demoting.
- skill-authoring §7 derived-file rule: 'Fix both' -> fix the source,
  bring the derivative along through its regeneration/write-back path
  (hand-editing a machine-compiled artifact is what ground-truth-gates
  forbids).
- delegation-and-review §3 (nit adopted): confirming a survey claim
  now includes tracing the references its verdict depends on —
  matching the bullet's own dead-code-with-live-registry example.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…CEED)

Luna's four (all confirmed; two were residues of my own r1 folds):
- cross-model-review §3: 'present on both' -> the SAME failure on both
  (same trigger, same outcome, comparable blast radius); any widening
  the branch adds is the branch's own regression, not carried over.
- skill-authoring §7 derived-file: the no-mechanical-path pair (a
  hand-maintained rules file over a spec) now has an explicit arm —
  corrected by hand against the fixed source; machine-compiled
  artifacts stay never-hand-edited.
- same rule: 'identical wrong text' -> 'same wrong content — the
  identical text, or the source-side value it is generated from'
  (a compile-transformed pair no longer misreads as true drift).
- same rule: §3's sync contract re-described accurately — it keeps
  coupled files agreeing and names which wins on disagreement; it is
  not scoped to files that currently disagree.

Adopted nits: grok r2 #1 (residual 'master' x2 -> base), #2 (item-3
tautology label now 'code agrees with its own output'), #4 (explicit
true-drift else-arm, folded into the rewrite above), #5 (Provenance
'codebase-lightening'); luna nit (authority naming gains
source/version/URL parenthetical).
Rejected: grok r2 #3 (standard English ellipsis; reviewer itself rates
it polish), #6 (skill-name cross-refs are pack idiom, used by existing
text in the same files); luna survey nit (existing text already
prescribes the re-check: 'the tier ranking built on the survey is now
stale').

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
(grok r3 PROCEED; luna r3 FIX 1 = the master residue.)

- skill-authoring §3: 'a fact about the outside world ... goes stale on
  a timescale of days' was still categorical — symmetric residue of the
  L6 fold, and it contradicted GTG rule 8's always-fixed facts in the
  same diff. Now 'a MUTABLE fact ... CAN go stale within days'.
- skill-authoring §7 derived-file: a clean source no longer jumps to
  'true drift' — trial-regenerate and diff (correct output = derivative
  fell behind; wrong again = the generation path is defective and gets
  fixed first). Also supersedes grok r3 nit-3's wording concern.
- cross-model-review Provenance: 'pre-existing master behaviors' ->
  'pre-existing base-branch behaviors' (all three lenses converged on
  this line; rule body already used merge-base/base).
- skill-authoring §7 bare-executor probe (luna nit): the two arms are
  independent fresh invocations, no shared state or history.
- ground-truth-gates rule 8 (sol nit): 'the specific load-bearing
  values' -> 'every load-bearing value' (closes the single-sentinel
  reading).
- ground-truth-gates rule 8 (grok nit-4): 'the set of valid states' ->
  'a jurisdiction's valid state codes' (removes the state-machine
  ambiguity; the example is now unambiguously external-authority).

Rejected: grok r3 nit-2 (bullet density — polish, thrash risk).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…ome matrix

(luna r4 PROCEED; grok r4 FIX 1 and sol r4 FIX 2 overlapped on the
first item — third independent convergence on the derived-file rule.)

- skill-authoring §7 derived-file: the clean-source arm now forks on
  mechanism — with a mechanical path, trial-regenerate and diff, and a
  correct output is LANDED (fix step, not just diagnosis); with no
  mechanical path, a clean source + wrong derivative is manual drift,
  hand-corrected against the clean source and recorded as such. Closes
  the LL2 one-property flip that S2's rewrite reopened.
- skill-authoring §7 bare-executor probe (sol): the decision now reads
  the PAIR, both arms armed — both produce the behavior =
  non-discriminating; only the ruled arm = earns its line; neither =
  ineffective as written (rewrite or drop, never folded on truth
  alone); a ruled arm that loses behavior the bare arm had = harmful,
  dropped, not filed as reference.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…l 2x2 cell

(grok r5 PROCEED + 3 nits; sol r5 PROCEED clean; luna r5 FIX 1 = grok
nit-3, another nit/must-fix convergence on the same line.)

- skill-authoring §7 derived-file: the closing Distinct-from sentence
  no longer reads as a scope limiter for the whole rule — it names the
  trap SUBCASE (pair agrees, both wrong) and points at the drift
  branches above for the disagreeing pair.
- skill-authoring §7 bare-executor probe (grok nit-1 adopted): fourth
  cell reworded to the parallel form 'only the bare arm produces it ->
  harmful' — a literal reader can no longer read 'stopping bare
  misbehavior' as loss.

Rejected: grok r5 nit-2 (double-fault source+generator single-pass
completeness — the rule re-enters cleanly once the source is fixed;
reviewer itself rates it residual-completeness, not wrong instruction).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
…tor-unavailable carve-out

(grok r6 PROCEED + 2 polish nits; sol r6 PROCEED clean; luna r6 FIX 2
+ 1 adopted nit.)

- skill-authoring §7 bare-executor probe: arms are now scored against
  the rule's INTENDED outcome — for a preventive rule that is the
  abstention, so a bare arm committing the prohibited act FAILS its
  arm. Closes the literal reading under which a working preventive
  rule (bare commits, ruled abstains) landed in the 'only the bare arm
  produces it -> harmful' cell and was dropped.
- skill-authoring §7 derived-file: the manual-drift branch is scoped
  to pairs hand-maintained BY DESIGN; a machine-compiled artifact
  whose generator is merely unavailable is explicitly not that case —
  restoring the generation path is the fix, artifact stays
  un-hand-edited (blocked, not manually drifted).
- skill-authoring §3 (luna nit): 'files carrying dated facts' ->
  'world-fact files' (undated mutable facts are in scope).

Grok r6 nits: #1 land-wording asymmetry on the wrong-source arm —
no action (same intent, reviewer rates polish; the arm's bring-along
is already an action); #2 CMR density — settled (r3).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMbbZQ8ZMMsNRGyV2nvJR8
@F-e-u-e-r
F-e-u-e-r merged commit a6ff7d0 into main Jul 26, 2026
3 checks passed
@F-e-u-e-r
F-e-u-e-r deleted the combined-77-78-79-80-82 branch July 26, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants