Parent roadmap: #525
Parent phase: #526
Background
Miners want to know, before opening a PR, whether their work will read as slop under Gittensor's rules. We can give them that without ever uploading source: score metadata, and hand the rubric to their own local harness.
Goal
Add a new MCP tool gittensory_check_slop_risk plus fold slop into the existing local preflight path.
Current Behavior
grep check_slop_risk is empty. Preflight tools exist but do not surface a slop verdict.
Desired Behavior
- New tool registered in
src/mcp/server.ts next to gittensory_preflight_local_diff, reusing the existing localBranchAnalysisShape input (no new client plumbing).
- Returns
slopRisk + per-signal { reason, howToFix } + SLOP_RUBRIC_MARKDOWN so the miner's own harness self-audits the actual code.
- Fold
buildSlopAssessment findings into buildLocalBranchAnalysis so preflight, explain_local_blockers, and prepare_pr_packet surface slop risk for free.
Implementation Requirements
Public/Private Output Boundaries
- No reward/score/wallet/hotkey/trust language. Source contents must never be transmitted (fail closed).
Acceptance Criteria
- A slop-y local diff returns elevated/high risk with specific, actionable reasons + the rubric.
- A clean diff returns
clean/low. Output is public-safe.
Testing Requirements
npm run test:ci, 97%+ coverage. Unit tests over representative diffs; assert no source content leaves the process; forbidden-term assertions on output.
Parent roadmap: #525
Parent phase: #526
Background
Miners want to know, before opening a PR, whether their work will read as slop under Gittensor's rules. We can give them that without ever uploading source: score metadata, and hand the rubric to their own local harness.
Goal
Add a new MCP tool
gittensory_check_slop_riskplus fold slop into the existing local preflight path.Current Behavior
grep check_slop_riskis empty. Preflight tools exist but do not surface a slop verdict.Desired Behavior
src/mcp/server.tsnext togittensory_preflight_local_diff, reusing the existinglocalBranchAnalysisShapeinput (no new client plumbing).slopRisk+ per-signal{ reason, howToFix }+SLOP_RUBRIC_MARKDOWNso the miner's own harness self-audits the actual code.buildSlopAssessmentfindings intobuildLocalBranchAnalysissopreflight,explain_local_blockers, andprepare_pr_packetsurface slop risk for free.Implementation Requirements
howToFixstrings authored to pass the public-safe filter so they can appear in the drafted PR body.Public/Private Output Boundaries
Acceptance Criteria
clean/low. Output is public-safe.Testing Requirements
npm run test:ci, 97%+ coverage. Unit tests over representative diffs; assert no source content leaves the process; forbidden-term assertions on output.