Commit graph

5 commits

Author SHA1 Message Date
Claude
e6a3038335
docs(assessment,governance): record the adopted docket and the standing philosophy
Shay adopted twelve rulings, struck two, and ratified the ADR-0252 §5 NO-GO.
For several hours afterwards the packet still said PENDING fourteen times,
while PR-3 and PR-3b had already executed against R-7. That is precisely the
failure this arc is about — a record contradicting reality at a load-bearing
point — committed inside the arc whose subject is that failure, and it was
caught by a question rather than by any instrument. Fixing it is the first
item here; the rest of the commit exists so the same gap cannot reopen by
context loss.

50-rulings.md
  All fourteen statuses replaced. Twelve carry RULED <choice> with the date
  and the deciding authority; R-10 (discharged before the arc) and R-14
  (dissolved by N-9) are struck. An adoption block at the head records the
  choices, the strikes, the §5 ratification, and the corrected execution
  order, plus which rulings have already executed.

50-execution-plan.md
  New §2.1 — the adopted docket. The twelve choices, and the execution order
  as a ranked table stating why each item sits where it does. The packet
  ordered by register number, which interleaves cheap record repairs with
  expensive capability work and puts the two zero-risk ADR amendments last;
  the corrected order is by what each item unblocks, cheapest first in tier.

  Three things that lived only in conversation are now written down:
  - the claims register is HELD, deliberately, with its entry criterion —
    G-22 showed CLAIMS.md can publish a superseded digest for two days, and
    an index over untrustworthy indexed things is the H-9 pattern;
  - gate width is promoted from a parenthetical to PR-4b, sized, with
    `teaching` recommended alone and the reason being evidence (G-22) rather
    than taste — a parenthetical is how fifteen suites became unreachable
    without anyone choosing it;
  - Track A's ratification creates an obligation the verdict document cannot
    discharge: ADR-0252 §6 retires the surface organs "until the
    structure-mapper proves out," names no replacement for the NO-GO branch,
    and is an instruction rather than a research note. A live instruction
    that can never fire is a dead instrument.

  Two places where I was about to state a ruling more strongly than it was
  made, corrected rather than smoothed over:
  - R-11 B is "measure, then re-ask." It authorizes no gate. It owes a
    measurement AND a second ruling, and a ruled-but-inert item looks exactly
    like a settled one at a glance.
  - R-8 C was recommended "with a floor from A applied to the entailed
    capability only" and N was never named. PR-14 must carry a proposed N with
    its consequence, or land entailed as explicitly unlicensable-pending-N.
    Shipping without a floor would license entailment on nine cases through an
    omission — the exact outcome C exists to prevent.

  Also: §0 corrected from seven corrections to nine (N-8, N-9 were added
  during execution and the heading never moved); definition-of-done item 5
  struck, because N-9 killed both its halves — smoke.yml parity is not a goal
  under AGENTS.md:280, and "no test file hides in full" is unreachable at 747
  files without ceremony that changes nothing about what executes.

30-gap-register.md
  G-7's open half is 15, not 19: PR-3b took it there by deletion, which costs
  no gate time. Points at PR-4b.

AGENTS.md
  Nine standing philosophies under the reasoning protocol, per CLAUDE.md's
  rule that governance and memory live here. They are the generalization of
  what this arc actually cost: less is more; master the small details and the
  large ones do not form; a mechanism whose failure state is indistinguishable
  from its success state is not a guarantee; a record that contradicts nothing
  beats one that impresses; consecutive unclear problems mean the frame is
  wrong, not the fix; be quick to investigate yourself, and record the error
  next to the fix rather than overwriting it; volume of work is not a licence
  for lower diligence; fix what you find or name why not; let the tree settle,
  then run the gate once.

Documentation only — no runtime behavior, no test, no pin changes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wcw2pnMBwyvmNyQg4uPEt4
2026-07-28 05:57:11 +00:00
Claude
68e68589a2
feat(tests): curated-suite membership ratchet — and PR-4's parity pin withdrawn (PR-4, G-7, N-9)
N-9 is the finding, and it PREVENTS work rather than re-scoping it.

WHAT THE PLAN GOT WRONG. N-3 concluded the 23-vs-13 smoke delta was unintended
drift, on two in-repo comments asserting parity, and called that "the strongest
evidence available that the drift was never intended". H-12 repeated it; R-14
built three options on it recommending "raise CI, +46s measured"; PR-4
specified a bidirectional parity pin as deliverable one.

A third artifact answers all of it, and none of them read it.
tests/test_cli_test_suites.py::test_cli_smoke_suite_covers_ci_smoke_gate has
pinned smoke.yml SUBSET-OF TEST_SUITES["smoke"] since before this assessment —
which is why every measurement finds CI-only == 0; a pin, not luck — beneath a
comment headed "DELIBERATELY ONE-DIRECTIONAL — do not 'complete' this by also
asserting local_paths <= ci_paths". Its history is 50fa287d (2026-07-25):
"revert(tests): drop the local-to-CI smoke parity assertion — CI is not a
gate." An earlier agent read the same comment, drew the same inference, made
the assertion symmetric, and reverted it hours later: "That was wrong, and
AGENTS.md says so in a line I had already read."

AGENTS.md:280 — GitHub is "a mirror only; its Actions are billing-locked and
produce dead signals — never chase them." §277 — the workflows are "secondary
observability only." So the local suite is the SOURCE and is deliberately
broader; the delta is the design.

  - PR-4 pin 1: WITHDRAWN. It exists, in the direction that protects something.
  - R-14: premise corrected in the packet. Option A spends 46s on a workflow
    that does not gate; option B would delete real protection for a fiction;
    option C's live half is a two-line comment fix, done here.
  - N-3's exposure claim was too GENEROUS to CI: for a push that skipped the
    local gate there is no automatic check at all. Larger than stated, and not
    closable by editing smoke.yml.

WHAT LANDED. Measured: 749 of 877 test files are in no curated suite. The
plan's mechanism ("assign every orphan, or 749 exclusion reasons") is hollow at
that scale — glob topic-suites ("adr": tests/test_adr_*.py absorbs 172) satisfy
the assertion while changing nothing about what executes, which is precisely the
Third-Door objection the plan levels at G-7's own first formulation. All four
demonstrated incidents (#113, #136, negation-survives-articulation,
speculative-subject-lifecycle) were caused by a NEWLY LANDED orphan; none by a
legacy one.

So: a ratchet. tests/test_suite_membership.py + tests/full_only_baseline.txt.
New orphans fail. The baseline is enforced in BOTH directions — a promoted or
deleted file must leave it, so the list can only shrink — and its count is
pinned so bulk movement is a reviewed decision, in the discipline
test_volume_honesty.py uses.

Also: the gate-guarding pin now runs on the gate. test_cli_test_suites.py lived
in `fast`; the pre-push gate runs smoke + deductive. The pin guarding the gate
did not run on the gate.

Three sabotages, each OBSERVED RED: a new unregistered test file, a stale
baseline entry, the parity pin demoted out of smoke.

Note on the delta: now 12 (local 27, CI 15) because this session added three
pins locally. Under the corrected reading that is the design, not widening
drift — the invariant is CI-only == 0, and that is pinned. The registers now
say so; "ten files" was a measurement, never a target.

Process note: `git checkout --` during sabotage cleanup destroyed uncommitted
edits to core/cli_test.py, which were redone. Backups, not checkout, on files
with unstaged work.

Registers: G-7 CLOSED, H-12 amended, R-14 dissolved in the packet, PR-4
re-specified, N-9 added to plan §0.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wcw2pnMBwyvmNyQg4uPEt4
2026-07-28 04:03:51 +00:00
Claude
e025de7ad4
docs(assessment): fold in the external-assessment triage — H-13, H-14, H-8e; six proposals cleared
Two external first-principles assessments of CORE were verified against code
line-by-line at 8f0ccfe3. What survived is entered; what failed is recorded in
the audit's negative space with the refuting file named, per the register's own
discipline.

Entered:

  H-13 — the speculative-marker cache over-evicts shared tokens: promoting one
  proposal to COHERENT pops tokens regardless of owner (pipeline.py:736-739,
  :1045-1055), so a sibling proposal's still-SPECULATIVE material is served
  without its marker. Honesty regression, served direction. Remedy: refcounted
  cache, failing test first. (The source assessment described this seam with
  the direction inverted — under-eviction; the code over-evicts. The check
  that caught the inversion is what confirmed the bug.)

  H-14 — _run_turn is 759 lines (pipeline.py:189-947) under a thin-wrapper
  docstring, with finalize_turn_trace_hash x2 / finalize_turn_surface x1
  back-stamps as the measured symptom. H-4's sibling: refactor ADR, PR-10's
  byte-identical-trace bar, and the learn stage named stateful.

  H-8e — inductive_closure.py's docstring claims a path-based cycle skip the
  code does not perform (:106 vs :189-193) — and the code is the right side:
  the monotone fixed point needs no path check, and adding one would refuse
  sound derivations. path records only (a,b,c) for longer chains (:198), so
  trace provenance is incomplete. Docstring fix is mechanical; extending path
  changes operator_invocation bytes -> trace_hash, held to the trace-change bar.

  PR-9 widened — the logos-authority bare except (pipeline.py:555) and the
  three OOV-probe swallows (:605-657) join the count-the-swallow scope; same
  remedy shape (record repr(e), keep the backstop), explicitly not the
  narrow-catch alternative.

  R-4 packet addition — first collapse candidate: composed_surface +
  transitive_surface + transitive_max_depth -> chain_depth:int, justified by
  ADR-0083's own docstring ladder; ruled in-lineage, not ad-hoc.

  R-12a note — lived_life.json staleness recorded as a question; the proposed
  PID-attestation fix rejected (refuses every reboot resume; PID reuse).

Cleared, with the refuting file named: EpistemicState compression
(vault/store.py, policy.py's ADR-0206 partition), the EpistemicState x
NormativeClearance product type (erases refusal evidence — H-3 rebuilt as a
type), PID attestation, path-based cycle skipping, the depth-enrichment cache
(pack_resolver.py:19 already lru_caches the cost), and the unified reasoning
engine as-refactor (trace_hash change + capability widening + discards the
ROBDD engine one merge after ADR-0265 ratified denial).

Register ranges updated to G-1..G-21 / H-1..H-14. Docs only; no runtime
behavior, no flag, no test changed.

[Verification]: uv run pytest tests/test_adr_index.py
tests/test_adr_status_governance.py tests/test_adr_0252_s5_blindness.py -q —
327 passed at this tree.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wcw2pnMBwyvmNyQg4uPEt4
2026-07-28 03:17:54 +00:00
Shay
c3f1ddb643 docs(assessment): the pre-push hook makes the same parity claim (R-14, N-3)
scripts/hooks/pre-push — the automation of the AGENTS.md local-first protocol
— opens by describing its own step 1 as "the smoke suite — exact CI-gate
parity". It runs 23 files; the CI gate runs 13. That is the second in-repo
assertion of a parity that does not hold, the first being core/cli_test.py's
audio block, and it is the strongest evidence available that the drift was
never intended rather than a deliberate narrowing.
2026-07-27 17:37:58 -07:00
Shay
372bdf987d docs(assessment): Wave 0 — the execution plan and the ruling packet (R-1…R-14)
Phase 6 of the holistic assessment: what follows from it, and what it needs
ruled before anything else can be sequenced.

`50-execution-plan.md` — five waves (scrub/rule → delete → simplify/enforce →
accelerate evidence loops → automate last) plus five frontier tracks, covering
every G-1…G-20 and H-1…H-12 entry, with four hard dependency gates and nine
risks stated before they are incurred.

`50-rulings.md` — R-1…R-14. One decision per section: the evidence verified at
ed06dd64, the options enumerated, a recommendation with its reasoning, and the
exact diff that follows from each choice, so ruling costs one word. Nothing in
it recommends reversing a ratified decision; R-12 amends two ADRs' records
without touching either decision.

§0 of the plan carries SEVEN corrections to the assessment, all found by
reading code, workflows and ADR supersession banners — none by re-reading
documents. Four change planned work:

- N-3 (new) the local smoke suite (23 files) and smoke.yml (13) have diverged
  by 10 files. Severity is LOWER than this plan's first draft stated: AGENTS.md
  makes the in-worktree run the merge gate and CI secondary observability, and
  the local gate is the superset — so nothing is unguarded. What is real is one
  in-code comment claiming an equality that does not hold, and the push that
  skipped the local gate, for which CI is the only automatic check.
- N-4 the L10 soak HAS been run — 5000 beats, reboot at 2500, all four gates
  pass (contract.md, landed aed273b1). G-5's "never produced an artifact" is
  wrong. The debt is the ceremony: no committed report, no pinned
  deterministic_digest (the contract's own unmet closing instruction), no
  cadence. Prose with no pinned digest is testimony, not evidence.
- N-5 G-10's blocker does not exist. ADR-0264 §4.1 carries a self-supersession
  banner: R5 removed the 16-premise cap on 2026-07-26, and four bands would
  earn SERVE the moment a ledger is sealed. PR-13 is WITHDRAWN and the whole
  throughput frontier reduces to one ruling (R-8).
- N-7 the flag count is 28 of 32 RuntimeConfig booleans, not seventeen.

Plus N-1 (the orphan scan artifact: TEST_SUITES["full"] is a directory),
N-2 (the L10 pins run twice a day, post-merge and nightly), and N-6 (H-8 has a
fourth instance inside the code — two flag docstrings assert a production
profile the production profile does not have, which moves R-3 decisively
toward "incomplete flag set").

Docs only. No runtime behavior, no flag, no test changed.
2026-07-27 17:18:43 -07:00