Skip to content

spec(t27f): spec_graph_outline -- the outline wording and decisions in t27 (Closes #10200) - #10202

Merged
gHashTag merged 1 commit into
masterfrom
t27f/outline-spec
Oct 18, 2026
Merged

gHashTag merged 1 commit into
masterfrom
t27f/outline-spec

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #10200

t27f_outline (gHashTag/t27-mcp#13) prints a spec's graph as compact text. Its wording and decisions were JavaScript in the MCP host; this moves them into one spec so the host only moves bytes and fills {} marks.

What the spec holds

  • OUTLINE_TEXT (8 templates) and REFUSAL_TEXT (3 templates), with the order of the {} marks documented per template.
  • shows_in_outline(label): only an EXACT fact is printed.
  • span_is_range(a, b): a span prints as a-b only when its ends differ.
  • refusal_index(verdict): the named too-many-nodes and too-many-edges templates, the generic one for any other verdict.
  • tested_by_count / tested_by_of: the tested_by view of the EXACT calls edges from a test, invariant or bench to a fn. It carries its own small copy of that rule until the derive spec (spec(t27f): derive pass adds tested_by, data_flow and UNKNOWN call targets (Closes #10191) #10198) lands; it reads calls edges only, so it does not depend on it.
  • mark_count(template) so a test pins the mark count of every template.

Lab verification (Railway lab, no Mac builds)

  • t27c check: 0 errors.
  • t27c test-report: 8 of 8 pass, 0 vacuous (4, 3, 4, 3, 11, 6, 4, 3 runtime asserts). One test is a negative control (a non-fn node and a test node have no tests).
  • spec_graph_export still 20 of 20 on the same checkout.

Only one .t27 file is added; no non-t27 code.

🤖 Generated with Claude Code

…n t27 (Closes #10200)

The templates for the outline and refusal lines, shows_in_outline,
span_is_range, refusal_index and the exact tested_by view of calls edges,
with eight tests (mark counts of every template, a negative control).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) October 18, 2026 04:13
gHashTag added a commit to gHashTag/t27-mcp that referenced this pull request Oct 18, 2026
… graph.mjs is I/O only

The outline text templates, the refusal choice, the exact-only filter, the span
rule and the tested-by view are t27 (gHashTag/t27#10202, issue #10200), generated
to wasm on the lab. graph.mjs now only moves bytes and fills the spec's {} marks.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
gHashTag added a commit to gHashTag/t27-mcp that referenced this pull request Oct 18, 2026
…#13)

* feat(t27f): t27f_outline and t27f_graph {path} from the T27F exporter

Read a .t27 spec through its exact-only T27F graph instead of the whole file.
Generated spec_graph_export.zig/.mjs on the Railway lab from gHashTag/t27
master 290ff17df; export.zig gains ~80 lines of buffer/getter glue, graph.mjs
is 50 lines of host I/O. Refuses (never truncates) over 192 nodes / 254 edges.

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

* t27f_outline: wording and decisions come from spec_graph_outline.t27, graph.mjs is I/O only

The outline text templates, the refusal choice, the exact-only filter, the span
rule and the tested-by view are t27 (gHashTag/t27#10202, issue #10200), generated
to wasm on the lab. graph.mjs now only moves bytes and fills the spec's {} marks.

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

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-18 04:17:34 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).

@gHashTag
gHashTag merged commit 208132f into master Oct 18, 2026
28 of 30 checks passed
gHashTag added a commit that referenced this pull request Oct 18, 2026
…ind as pass (Closes #10212) (#10214)

#10198, #10202 and #10194 added these three specs without a row in
docs/reports/t27b_expectations.json, so t27b-native-ratchet reads
"UNLISTED 3" on master and on every open PR (run 39096977680 on
#10185): "the reference passes it and the ledger does not name it
(t27b pass)".

Adds the three rows in path order with the verdict the run measured.
No other row moves.

Co-authored-by: Claude Opus 5.5 <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.

spec(t27f): spec_graph_outline -- the outline wording and decisions in t27, not in the MCP host

1 participant