chore(mcp): add outputSchema to every tool that lacks it - #637
Conversation
|
Note Gittensory Gate skippedPR closed before full evaluation. No late first comment was created.
💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers. |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
gittensory · advisory review Reviewed 2 changed file(s) — two independent AI reviewers. Suggested action: ✅ Safe to merge — both reviewers found no blocking issues. Reviewer A · Suggestions
Worth double-checking
Reviewer B · Suggestions
Worth double-checking
|
JSONbored
left a comment
There was a problem hiding this comment.
Nice — and good that buildSlopRiskReport wraps the existing buildSlopAssessment (single source of truth). Two things before merge:
- The churn signal is dead via the CLI (high).
bin/gittensory-mcp.jssendschangedFilesas bare path strings (additions/deletions dropped) and doesn't forwardchangedLineCount, sotrivial_whitespace_churncan never fire through the published npm tool —slopRiskis capped at 30 (missing-tests only). Forward per-file{path, additions, deletions}or a top-levelchangedLineCount(likepreflight_local_diffdoes), and add a bin-level test that would catch it. - Rebase — DIRTY: a trivial import-block conflict in
test/unit/slop.test.ts+ reconcile theFORBIDDEN_PUBLIC_TERMSregex drift to main's.
Privacy/contract/schemas are otherwise merge-quality.
039da2e to
8293516
Compare
df52a99 to
ce9280f
Compare
ce9280f to
f855412
Compare
f855412 to
2673b99
Compare
2673b99 to
4988cb2
Compare
|
Heads up — this PR was repurposed. The original |
4988cb2 to
e42f637
Compare
Adds a structured outputSchema to the 18 MCP tools (preflight / score / local- branch / agent) that had none, so MCP clients can machine-validate their results. Same lenient style as the existing *OutputSchema declarations — documented top- level keys, all optional, complex values as z.unknown(). No behavior change: the handlers already return matching structuredContent via toolResult. Adds an mcp-output-schemas assertion that EVERY registered tool exposes an outputSchema. Fixes JSONbored#550 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
e42f637 to
4cdbaff
Compare
Fixes #550. (This PR was repurposed from the now-superseded
check_slop_riskwork — #531 was implemented upstream in #716 — onto a fresh, unbuilt hardening issue.)Pure non-visual hardening: 18 of the MCP tools (preflight / score / local-branch / agent) had no
outputSchema, so clients couldn't machine-validate their results. This adds one to each.What this adds
outputSchemafor every previously-unschematized tool insrc/mcp/server.ts, mirroring the existing*OutputSchemastyle — documented top-level keys, all optional, complex values asz.unknown().toolResultalready emitsstructuredContentfor every tool; this only declares the schema that describes it.mcp-output-schemastest asserting that every registered tool (now 36/36) exposes a machine-validatableoutputSchema, so the gap can't regress.Notes
npm run test:cigreen; 97%+ branch & function coverage.🤖 Generated with Claude Code