Skip to content

tech-debt-backlog §7.17: gloss tools/call as MCP jargon in README - #141

Closed
jascal wants to merge 1 commit into
mainfrom
tech-debt-backlog-7-17-mcp-jargon-gloss
Closed

tech-debt-backlog §7.17: gloss tools/call as MCP jargon in README#141
jascal wants to merge 1 commit into
mainfrom
tech-debt-backlog-7-17-mcp-jargon-gloss

Conversation

@jascal

@jascal jascal commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Summary

Closes §7.17 of the tech-debt-backlog OpenSpec change.

  • The ### Trust Boundary subsection in README.md previously opened with "There is no auth check on tools/call — any client that can connect…", which assumes the reader already knows tools/call is the JSON-RPC method name the MCP spec defines for tool invocation.
  • Took the prescribed wording from the §7.17 task body verbatim: the sentence now reads "There is no auth check on the JSON-RPC tools/call method (the MCP-standard tool-invocation entry point) — any client that can connect to the stdio pipe can invoke any tool, including the two that spend on an LLM provider (generate_machine, refine_machine)."
  • One-sentence prose change; the rest of the subsection (LLM-spending tools, stdio-as-local-trust paragraph) is unchanged.
  • Marks §7.17 [x] in openspec/changes/tech-debt-backlog/tasks.md with the resolution note. The companion §7.16 forward-link stays open: it depends on an MCP-error-handling section that does not yet exist in README.md, so landing the anchor is wider than §7.17 scope.

Test plan

  • pytest -q — 1282 passed, 8 skipped (full suite green)
  • grep -n 'tools/call\|Trust Boundary' tests/ confirms no test pins the README prose, so the print-only change is safe

🤖 Generated with Claude Code

The `### Trust Boundary` subsection's opening sentence in README.md
referred to `tools/call` without explaining what it is; a reader new
to the MCP protocol would not know it is the JSON-RPC method the MCP
spec defines for tool invocation. Took the wording prescribed in §7.17
verbatim: the sentence now reads "There is no auth check on the
JSON-RPC `tools/call` method (the MCP-standard tool-invocation entry
point) — any client …".

No test pins the README prose, so the print-only change is safe; full
suite green (1282 passed, 8 skipped).

The companion §7.16 forward-link stays open: it depends on an
MCP-error-handling section that does not yet exist in README.md, so
landing the anchor is wider than §7.17 scope.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

@jascal jascal left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review — Claude Sonnet 4.6

Thanks for closing out §7.17. This is a tightly-scoped, print-only documentation change: one sentence reworded in the ### Trust Boundary subsection of README.md, plus the matching [x] status flip and resolution note in openspec/changes/tech-debt-backlog/tasks.md. I checked out the branch, ran lint + the full test suite, and independently verified the factual and traceability claims. This is a clean, low-risk change — ready to merge.

What I verified

  • Tests: green. .venv/bin/pytest -q1282 passed, 8 skipped in ~22s, matching your test plan exactly.
  • Lint: no new errors. .venv/bin/ruff check . reports 18 pre-existing errors (E402 and E741), all in test files (test_compiler.py, test_examples.py, test_noise_model_section.py, test_qpc_convergence.py, test_verifier.py). None are in README.md/tasks.md (not Python anyway), so nothing is introduced here. Not a blocker.
  • The gloss is factually accurate. tools/call is indeed the JSON-RPC method name the MCP spec defines for tool invocation, so "(the MCP-standard tool-invocation entry point)" is a correct gloss, not an approximation. A reader new to MCP now learns what the method name is before being told it has no auth check.
  • "Verbatim" claim holds. The prescribed fix shape in the §7.17 task body reads There is no auth check on the JSON-RPC ``tools/call`` method (the MCP-standard tool-invocation entry point) — any client …, and the README now reads exactly that (README.md:868-869). Faithful to the backlog item.
  • "No test pins the prose" claim holds. grep -rn tools/call\|Trust Boundary tests/ confirms Trust Boundary appears nowhere in tests, and the tools/call hits in tests/test_mcp_server.py are all exercising the actual JSON-RPC error paths — not asserting on the README text. So the print-only change genuinely cannot break a test.

What looks good

  • Scope discipline. The surrounding paragraph (LLM-spending tools, stdio-as-local-trust) is untouched, and you explicitly left the §7.16 forward-link open because its target anchor does not yet exist — resisting the temptation to scope-creep into an adjacent task. That is the right call and well-documented.
  • The resolution note records the wording taken, the safety rationale, and the §7.16 dependency, which keeps the backlog auditable for the next person.

Minor observation (non-blocking, no change required)

  • The resolution note characterizes the grep hits as "the sanitizer-related code paths it covers." That parenthetical is slightly imprecise — the tools/call matches in test_mcp_server.py are error-path / integration tests for the JSON-RPC method (e.g. the handle_request error path), not strictly sanitizer tests. The substantive claim it supports (no test pins the README prose) is correct; only the description of what those unrelated test lines are is a touch off. Purely a note-accuracy nit in the tasks file, not an issue with the README change itself.

Verdict

Correct, factually accurate, faithful to the prescribed wording, lint-clean on the touched files, and fully covered by the green suite. Zero behavioral or security surface (print-only prose). Merge when ready.

This review was posted automatically by Claude Sonnet 4.6.

@jascal

jascal commented Jun 18, 2026

Copy link
Copy Markdown
Owner Author

Closing as superseded. §7.17 was already resolved by #135 (55dacaa, "§§7.16, 7.17: gloss tools/call + forward-link sanitization"), which landed on main before this branch could merge.

main's README ### Trust Boundary section already contains the proposed gloss byte-for-byte identical ("…auth check on the JSON-RPC tools/call method (the MCP-standard tool-invocation entry point)…"), and §7.17 is already marked [x] in tasks.md with a resolution note. This branch carries no net-new content on top of main (it predates and lacks the later "Exception messages are scrubbed" bullet), so there is nothing to merge.

@jascal jascal closed this Jun 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