Skip to content

spec(t27mcp): seal_verdict -- the seal receipt of t27_spec (#10066) - #10239

Merged
gHashTag merged 1 commit into
masterfrom
claude/seal-verdict-spec
Oct 18, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/seal-verdict-spec

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Adds specs/t27mcp/seal_verdict.t27 (module T27mcpSealVerdict), the verdict logic behind the new seal receipt of t27_spec in gHashTag/t27-mcp. Refs #10066.

The rules are not restated here. specs/verified/seal_check.t27 (seal_check_alg, fail closed) decides what a seal's parts mean, and specs/verified/reuse.t27 owns the PART_* codes. This spec maps the checker's answer onto the words an agent reads (verified, stale, unsealed, vacuous, failing, forced, unknown) and adds three things the checker does not have:

"Fresh" means the spec bytes are the sealed bytes. The server cannot regenerate the four backends, so those parts are passed as PART_SAME; t27c seal --verify stays the full check.

Checked on the Railway lab (t27c 0.5.2, zig 0.16.0): 9 of 9 tests pass, 0 vacuous. Six mutations (stale as fresh, foreign seal accepted, forced as pass, failing as pass, vacuous as verified, unknown digest as fresh) each fail 1-2 tests. dupe_scan --like is clean. The only compiler warning is "11 parameters" on seal_verdict.

The wasm built from this file is in the companion gHashTag/t27-mcp PR.

🤖 Generated with Claude Code

t27_spec hands out a spec; this hands out the receipt for it. The verdict
(verified, stale, unsealed, vacuous, failing, forced, unknown) is decided by
specs/verified/seal_check.t27 (seal_check_alg, fail closed) with PART_* codes
from specs/verified/reuse.t27; this spec only maps the answer onto words and
adds three things the checker lacks: a seal whose recorded spec_path is another
path is no seal of this spec (case twins, #8540), the byte-for-byte comparison
of two sha256 strings, and the vacuous verdict.

9 tests, 0 vacuous; six mutations each fail 1-2 tests. Compiled to wasm for
gHashTag/t27-mcp on the lab.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-18 05:16:17 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 48
PRs with All Checks Green 2
READY 0
FAILING 48
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 48 + 0 + 0 = 48, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=0f8c66b9ed0e != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

This was referenced Oct 18, 2026
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