Skip to content

sworn v0.2: attacked twelve ways, four rules paid, the coverage number withdrawn — and the plan it serves - #59

Open
fathomlab wants to merge 3 commits into
mainfrom
feat/sworn-v02-next-level
Open

sworn v0.2: attacked twelve ways, four rules paid, the coverage number withdrawn — and the plan it serves#59
fathomlab wants to merge 3 commits into
mainfrom
feat/sworn-v02-next-level

Conversation

@fathomlab

Copy link
Copy Markdown
Contributor

sworn v0.2: the format is attacked twelve ways, pays four rules, and withdraws the number it printed beside every verdict — plus the plan it serves

Three commits, in the lab's order: spec frozen, then code, then the documents sworn to the code.

What ships

The adversarial pass the standing rule requires (papers/sworn/ATTACKS_sworn_v01_battery_2026_09_02.md, sworn, 22 spans; pinned by tests/test_sworn_attacks.py). Twelve attacks against styxx.sworn as committed at 320b303. Four repaired, six not repaired and stated beside the verdict, two unchanged from v0.1.

SPEC_sworn_output_v02_2026_09_02.md, frozen before code; styxx/sworn.py v0.2:

  • R1 rN#/pointer, rN#Ln-Lm
  • R2 a tag inside an HTML comment is MALFORMED hidden_commitment
  • R3 a quote needle under 16 bytes over a whole receipt is MALFORMED short_needle (pointer leaves, line anchors, absent exempt — the attack is the haystack)
  • R4 the cap counts 300 code points
  • R5 attestation source kind; no signature checked, and certifies says so
  • R6 manifest sworn/manifest/0.2 declares a rung — L1 (local hook, weak) or L2 (runner after the turn); L3 reserved; 0.1 still loads at undeclared
  • R7 provenance on every span, rungs on every receipt
  • R8 the coverage estimate is withdrawn. Its denominator (styxx.claimdetect, STRUCT-1) is a diff-claim detector for agent PR prose that never reads a measured rate as a claim. coverage_census_v01.py (git plumbing at 320b303): it printed 0.6667–1.0 beside all twelve committed sworn documents while counting 20 of 932 narrative sentences. Replaced by narrative_sentences and sentence_share, a floor that cannot flatter (0.0156–0.2185 on the same twelve), and STRUCT-1's count labelled with its idiom.
  • R9 receipt /v1 digests its core without coverage; verify_receipt is schema-aware and /v0 still checks. All twelve committed receipts re-issued by reissue_receipts_v1.py, which refuses if any span verdict moves; none did.
  • every JSON the CLI writes is LF on every platform (a Windows text-mode write would have CRLF'd a byte-pinned sidecar)

papers/PLAN_the_next_level_2026_09_02.md (sworn, 20 spans): the move a six-lens design panel and nine adversarial reviews left standing, with a claim ledger — what may be said now, only with the qualifier, never.

papers/sworn/DESIGN_sworn_measurement_v2_2026_09_02.md: eight repairs to the v0.1 measurement design — two seat families on this box (no API credits needed), per-family two-sided decoys, Q1 in three cells, a receipt-seeing panel, a seeded-canary arm so FAILED precision has a denominator, the HELD-but-false cell, arms in order of receipt availability. Waits on one signature on the bars.

papers/closed-model-frontier/EXPLORATORY_handedness_by_kind_2026_09_02.md (sworn, 20 spans): the token-kind split of the v3 rows that a same-day objection cited as "kind-adjusted 0.117" with no receipt. The receipt says 0.1695, integer-stratum odds ratio 3.11, one repository supplying 184 of 334 rows. Exploratory; never a result.

RESULT_sworn_v02_ships_2026_09_02.md (sworn, 14 spans, rung L1 printed).

What it does not say

That the format has been measured (owed, redesigned, waiting on a signature). That any rung above L1 exists in the tree. That the attacker was independent (the builder ran the battery). That anyone can pip install this (styxx.sworn is unreleased).

Verification

  • tests/test_sworn.py, test_sworn_attacks.py, test_sworn_dogfood.py, test_sworn_eol.py: 504 passed
  • tests/test_index.py, tests/test_ledger.py: passed with the new documents in the tree
  • full suite on this box: 3703 passed at main; the feature-branch run is in the PR checks
  • ruff check clean on every touched file

Operator-gated, named

The signature on the DESIGN v2 bars. A release carrying styxx.sworn. Any .github/ workflow for the sworn action (leg 3 of the plan; not in this PR).

🤖 Generated with Claude Code

darkflobi and others added 3 commits September 2, 2026 13:34
…withdraws the number it printed beside every verdict

Spec frozen first (papers/sworn/SPEC_sworn_output_v02_2026_09_02.md), then styxx/sworn.py.

The attack pass the standing rule requires (no instrument is announced before an adversarial
pass) ran against the module as committed at 320b303. Four repairs: a tag hidden in an HTML
comment is MALFORMED hidden_commitment (R2); a quote needle under 16 bytes over a whole receipt
is MALFORMED short_needle, pointer leaves, line anchors and absent exempt (R3); the cap counts
code points (R4); rN#/pointer and rN#Ln-Lm are legal (R1). The manifest moves to 0.2 and
declares a trust rung, L1 or L2, L3 reserved (R5, R6); every span prints its provenance and the
receipt counts rungs (R7). Attacks NOT repaired are listed in the spec by name and pinned as
tests that assert the boundary is printed.

The coverage ESTIMATE is withdrawn (R8). Its denominator was styxx.claimdetect, a diff-claim
detector for agent pull-request prose that never reads a measured rate as a claim; the census at
320b303 (coverage_census_v01_result.json) shows it printed 0.6667-1.0 beside all twelve committed
sworn documents while counting 20 of 932 narrative sentences. Two counts that cannot flatter
replace it: narrative_sentences and sentence_share, a floor.

The verdict receipt moves to /v1 with coverage outside the digest (R9). All twelve committed v0
receipts are re-issued under v1 in this commit by reissue_receipts_v1.py, which refuses if any
span verdict moves; none did. The v0 receipts remain in history and still check on their core.

Also: handedness_v3_by_kind.py, the EXPLORATORY token-kind stratification of the committed v3
rows that a same-day objection cited without a receipt (kind-adjusted gap 0.1695 on these rows,
not the 0.117 that circulated; contaminated prior, never a result).

tests: 503 passed across test_sworn, test_sworn_attacks, test_sworn_dogfood, test_sworn_eol.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…loratory receipt is byte-pinned

A byte-pinned format whose own CLI CRLF-translated its sidecars on Windows would hash the same
document differently per platform. _write_json_lf now carries every sidecar, receipt and
manifest write; a test pins it. .gitattributes gains the EXPLORATORY handedness-by-kind
document and its receipt, so tests/test_sworn_eol.py can never find them unpinned.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…y receipt — five documents, four of them sworn at 5d994db

PLAN_the_next_level_2026_09_02.md (sworn, 20 spans): the move a six-lens panel and nine
adversarial reviews left standing — the format hardened, the measurement repaired and waiting on
one signature, engineering under narrow labels in a fixed order, the provenance law as the
science move, and a claim ledger of what may be said now, only with the qualifier, and never.

ATTACKS_sworn_v01_battery_2026_09_02.md (sworn, 22 spans): twelve attacks against v0.1, four
repaired, six named as unrepaired with the boundary printed, two unchanged; the coverage census
sworn to its receipt.

RESULT_sworn_v02_ships_2026_09_02.md (sworn, 14 spans, rung L1 printed): what shipped, sworn to
the harness manifest and the verifier's blob hash, using rN#/leaf for the first time.

DESIGN_sworn_measurement_v2_2026_09_02.md (UNSWORN by construction — it makes no numeric
claim): eight repairs to the v0.1 design, two seat families on this machine, three-cell Q1, a
receipt-seeing panel, a canary arm, the HELD-but-false cell, arms in order of receipt
availability. A DESIGN until the operator signs the bars.

EXPLORATORY_handedness_by_kind_2026_09_02.md (sworn, 20 spans): the token-kind split of the v3
rows; kind-adjusted gap 0.1695, not the 0.117 that circulated without a receipt; never a result.

CHANGELOG, INDEX row, .gitattributes pins.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.

1 participant