Skip to content

t27mcp: examples.t27 copies find and has from check_hints.t27 (duplicate-bodies) #10166

Closed
gHashTag/t27-mcp
#12

Description

@gHashTag

Problem

specs/t27mcp/check_hints.t27 and specs/t27mcp/examples.t27 carry two copies of the same string helpers, find and has. The duplicate-bodies gate (tools/dupe_scan.py) rejects this on #10157: "a body written under find is now copied [2] time(s) and was in no ledger", and the same for has.

Fix

examples.t27 takes find and has from check_hints.t27 with use t27mcp::check_hints; and keeps no copy. The t27 MCP server (gHashTag/t27-mcp) gets its wasm/examples.wasm and wasm/examples_table.mjs regenerated from the new spec.

Done when

  • python3 tools/dupe_scan.py reports no new duplicate body.
  • t27c test-report specs/t27mcp/examples.t27: 8 of 8 pass, 0 vacuous; the negative control (a row widened past 40 lines) still fails.
  • The regenerated wasm answers the same as the old one for topic_code and pick.
  • gHashTag/t27-mcp npm run smoke passes.

Part of the epic #10066.

Boundary

  • specs/t27mcp/examples.t27
  • gHashTag/t27-mcp wasm/examples.wasm
  • gHashTag/t27-mcp wasm/examples_table.mjs
  • gHashTag/t27-mcp wasm/BUILD

User Scenarios

  • Given a PR that adds specs/t27mcp/examples.t27, when the duplicate-bodies gate runs, then it finds no new copy of find or has.
  • Given the question "clocked counter with sync reset", when the MCP server calls topic_code, then it gets the same topic as before the change.

Requirements

  • FR-001: examples.t27 MUST NOT define find, has or NO_POS; it MUST import them with use t27mcp::check_hints;.
  • FR-002: The regenerated examples.wasm MUST return the same topic_code and pick values as the one it replaces.
  • FR-003: wasm/BUILD MUST carry the new sha256 of the spec, the table and the wasm.

Activity

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