Skip to content

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

Closed

Description

@gHashTag

The T27F outline is the compact text Claude Code reads instead of a whole .t27 file (gHashTag/t27-mcp tool t27f_outline, gHashTag/t27-mcp#13). Its wording and its three decisions (what is printed, how a line span prints, which refusal text a verdict takes) were written as JavaScript in the MCP server's graph.mjs. The project rule is that logic is written in t27, so this issue moves all of it into one spec and leaves the host with byte input and output only. Epic: gHashTag/trinity#1648; exporter: #10162; cap: #10180; derived layer (separate): #10198; epic #10066.

Boundary

  • specs/t27f/spec_graph_outline.t27

User Scenarios

  • Given a graph read from tutorial 08 (14 nodes, 9 edges) when a host asks for the tests of each fn then tested_by_of answers the one test that calls it (fn 4 by test 12, fn 8 by test 10, fn 9 by test 11).
  • Given a graph over the cap when a host asks which refusal text to use then refusal_index answers the named too-many-nodes or too-many-edges template, and any other verdict gets the generic one.
  • Given a fact labelled derived, suggested or unknown when the host asks whether to print it in the node and edge lists then shows_in_outline answers false; only an exact fact is printed.

Requirements

  • FR-001: The spec MUST hold every outline and refusal line as a template constant with {} marks, and a test MUST pin the number of marks of each template.
  • FR-002: shows_in_outline, span_is_range, refusal_index, tested_by_count and tested_by_of MUST be pure functions of their arguments, each with a test.
  • FR-003: tested_by_of MUST read EXACT calls edges only and MUST answer NO_INDEX for a node that is not a fn.
  • FR-004: At least one test MUST be a negative control that a wrong answer would fail.

Success Criteria

  • t27c test-report specs/t27f/spec_graph_outline.t27 reports 0 failing and 0 vacuous tests.
  • t27c check reports 0 errors.
  • The pull request touches 0 files outside the Boundary section and adds 0 lines of non-t27 code.

Activity

  1. added a commit that references this issue on Oct 18, 2026
    208132f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions