Skip to content

docs(safety): SR-41 for async cross-encoding transcoding; de-stale LS-F-27 (#272)#287

Merged
avrabe merged 1 commit into
mainfrom
docs/sr41-async-transcoding-traceability
Jun 15, 2026
Merged

docs(safety): SR-41 for async cross-encoding transcoding; de-stale LS-F-27 (#272)#287
avrabe merged 1 commit into
mainfrom
docs/sr41-async-transcoding-traceability

Conversation

@avrabe

@avrabe avrabe commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

What

Closes the #272 campaign's traceability gap (doc-only — no code).

The async cross-encoding string transcoding capability (PRs #273#285, 44 async_cross_encoding tests) shipped without a requirement covering it: SR-17 links only the sync adapter_safety tests, and LS-F-27's text still said async transcoding was "a larger tracked capability (#272); until it lands, fail loud" — but #272 is done.

Changes

Verification

  • YAML parses; all 10 SR-41-linked test fns exist; rivet 0 broken cross-refs.
  • LS-N gate 57/0/0 (LS-F-27 8 pass — text edit didn't change the ID→test mapping).
  • rivet error count +2 = SR-41 joining the pre-existing every-SR-lacks-design-decision/feature backlog (systemic, not new-class, not the required gate).

Non-Tier-5 (safety YAML only) → no Mythos delta-pass.

🤖 Generated with Claude Code

…-F-27 (#272)

Closes the #272 campaign's traceability gap. The async cross-encoding string
transcoding capability (PRs #273#285, 44 async_cross_encoding tests) shipped
without a requirement: SR-17 ("correct string transcoding", verified) links only
the SYNC adapter_safety tests, and LS-F-27's text still said async transcoding was
"a larger tracked capability (#272); until it lands, fail loud" — but #272 is done.

- Adds SR-41 "Async cross-encoding string transcoding" (verified): all 6 directions
  × {param, result} × {flat, one-level-nested}, both async variants; nested list<u8>
  deep-copied verbatim; #281 closed. derives-from SR-17, mitigates LS-F-27,
  tracked-by #272. Honest verification posture recorded: transcode loops
  runtime-verified under wasmtime; the async-lift integration via the real-adapter
  *_within_budget tests (full e2e kiln-gated); each increment adversarially
  Mythos-passed (4 silent-corruption bugs caught before merge).
- SR-41 traceability entry links a representative set of the async_cross_encoding
  + integration local-bounds + LS-F-27 gate tests (all verified to exist; rivet
  0 broken cross-refs).
- De-stales LS-F-27: the guard is now the RESIDUAL fallback for the only remaining
  unsupported shape (deeper list nesting, list<list<string>>, #286), with the
  allow-set narrowed in lockstep to ≡ the emitter's transcode-set.

Doc-only (no code). YAML valid; LS-N gate 57/0/0 (LS-F-27 8 pass); rivet 0 broken
cross-refs (the +2 errors are the pre-existing every-SR-lacks-design-decision/feature
backlog, not new-class).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@avrabe avrabe enabled auto-merge (squash) June 15, 2026 04:11
@github-actions

Copy link
Copy Markdown

LS-N verification gate

57/57 approved LS entries verified

count
Passed (≥1 test, all green) 57
Failed (≥1 test failure) 0
Missing (no ls_*_NN_* test found) 0

Approved loss-scenarios.yaml entries are expected to have a
regression test named ls_<letter>_<num>_* (e.g. LS-A-11
ls_a_11_*). The gate runs each prefix via cargo test --lib --no-fail-fast and aggregates pass/fail/missing.

Failed LS entries

(none)

Missing regression tests

(none)

Updated automatically by tools/post_verification_comment.py.
Source of truth: safety/stpa/loss-scenarios.yaml.

@avrabe avrabe merged commit 362d694 into main Jun 15, 2026
8 checks passed
@avrabe avrabe deleted the docs/sr41-async-transcoding-traceability branch June 15, 2026 04:15
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