feat(mcp): add gittensory_check_test_evidence tool (deterministic coverage-gap self-check) - #4244
Conversation
…erage-gap self-check) Surface the engine's changed-path->test-evidence classifier (classifyTestCoverage, src/signals/test-evidence.ts) as a metadata-only MCP tool so an agent can ask whether its changed files carry enough test evidence before opening a PR — paths in, coverage band (strong/adequate/weak/absent) + guidance out, no source uploaded. Mirrors the existing gittensory_check_slop_risk source-free self-checks. Closes JSONbored#2235
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4244 +/- ##
=======================================
Coverage 93.78% 93.78%
=======================================
Files 394 394
Lines 36619 36637 +18
Branches 13402 13406 +4
=======================================
+ Hits 34342 34360 +18
Misses 1622 1622
Partials 655 655
🚀 New features to boost your workflow:
|
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ Gittensory review result - approve/merge recommendedReview updated: 2026-07-08 18:35:25 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 5 non-blocking
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 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.
|
What
The engine already has a deterministic changed-path→test-evidence classifier (
classifyTestCoverageinsrc/signals/test-evidence.ts, which the slop detector uses to flag missing coverage), but there's no MCP tool an agent can call to ask "do my changed files carry enough test evidence?" before opening a PR. This surfaces the classifier as a metadata-only toolgittensory_check_test_evidence(paths in → coverage band + guidance out), mirroring the existinggittensory_check_slop_risksource-free self-checks.Deliverables
inputSchema(changedPaths+ optionaltestFiles) insrc/mcp/server.ts.classifyTestCoverageand returns the coverage-gap classification (strong/adequate/weak/absent) + actionable guidance strings — no source content required.outputSchemafor the classification result.absent), code+tests (strong), both threshold branches (adequate,weak), and docs-only (not-applicable) — covering every classifier band and guidance branch.Closes #2235