Skip to content

fix(mcp): correct loopover_check_issue_slop description and drop the dead issue-slop rubric#8959

Merged
loopover-orb[bot] merged 1 commit into
JSONbored:mainfrom
bitfathers94:fix/issue-8907
Jul 26, 2026
Merged

fix(mcp): correct loopover_check_issue_slop description and drop the dead issue-slop rubric#8959
loopover-orb[bot] merged 1 commit into
JSONbored:mainfrom
bitfathers94:fix/issue-8907

Conversation

@bitfathers94

Copy link
Copy Markdown
Contributor

fix(mcp): correct loopover_check_issue_slop description and drop the dead issue-slop rubric

The registered loopover_check_issue_slop stdio tool description still promised
"slopRisk (0-100), band, findings, and the rubric", but the /v1/lint/issue-slop
route strips its response to {band, findings} by design (#6990) — the claim was
never updated. Match the description to the actual response shape.

ISSUE_SLOP_RUBRIC_MARKDOWN in src/signals/issue-slop.ts had zero consumers (not
even a test); unlike the PR-side SLOP_RUBRIC_MARKDOWN it was never wired into an
in-process self-check, so delete it rather than leave a dead constant behind.

Add an in-process regression test that reads the registered description and
asserts it describes {band, findings} without the stale slopRisk/rubric claims.

Closes #8907

Validation

Verified locally on this branch before opening:

  • npm run typecheck
  • npx turbo run build:tsc build:verify
  • npm run test:coverage — patch coverage 100.0% of changed lines

…dead issue-slop rubric

The registered loopover_check_issue_slop stdio tool description still promised
"slopRisk (0-100), band, findings, and the rubric", but the /v1/lint/issue-slop
route strips its response to {band, findings} by design (JSONbored#6990) — the claim was
never updated. Match the description to the actual response shape.

ISSUE_SLOP_RUBRIC_MARKDOWN in src/signals/issue-slop.ts had zero consumers (not
even a test); unlike the PR-side SLOP_RUBRIC_MARKDOWN it was never wired into an
in-process self-check, so delete it rather than leave a dead constant behind.

Add an in-process regression test that reads the registered description and
asserts it describes {band, findings} without the stale slopRisk/rubric claims.

Closes JSONbored#8907
@bitfathers94
bitfathers94 requested a review from JSONbored as a code owner July 26, 2026 14:21
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@codecov

codecov Bot commented Jul 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.33%. Comparing base (6aaea39) to head (872e873).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8959      +/-   ##
==========================================
- Coverage   90.56%   83.33%   -7.23%     
==========================================
  Files          96       98       +2     
  Lines       22490    24782    +2292     
  Branches     3884     4760     +876     
==========================================
+ Hits        20367    20653     +286     
- Misses       1945     3941    +1996     
- Partials      178      188      +10     
Flag Coverage Δ
backend 12.47% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
packages/loopover-mcp/bin/loopover-mcp.ts 10.84% <ø> (ø)
src/signals/issue-slop.ts 100.00% <ø> (ø)

@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 26, 2026
@loopover-orb

loopover-orb Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Tip

✅ LoopOver review result - approve/merge recommended

Review updated: 2026-07-26 14:36:14 UTC

3 files · 1 AI reviewer · no blockers · readiness 95/100 · CI green · clean

✅ Suggested Action - Approve/Merge

  • safe to merge

Review summary
This PR fixes a stale tool description string in loopover-mcp.ts (dropping the incorrect 'slopRisk (0-100)' and 'the rubric' claims to match the actual {band, findings} response shape) and deletes the dead, zero-consumer ISSUE_SLOP_RUBRIC_MARKDOWN constant from issue-slop.ts. It adds a new regression test that connects to the in-process server via InMemoryTransport and asserts the registered description contains 'band and findings' but not 'slopRisk' or 'the rubric'. The change is small, correct, well-scoped to the description drift called out in the PR body, and directly closes #8907.

Nits — 5 non-blocking
  • The 'generic_secret_assignment' flag on test/unit/mcp-check-issue-slop-description.test.ts:26 is a false positive — that line sets `process.env.LOOPOVER_API_TOKEN = "in-process-token"`, a hardcoded placeholder test fixture value, not a real secret.
  • The external size-smell flag on packages/loopover-mcp/bin/loopover-mcp.ts is pre-existing file size, not something this 1-line diff introduces.
  • Consider also asserting the description doesn't regress to mention 'slopRisk' in camelCase variants or similar near-misses, though the current exact-string checks are sufficient for this fix.
  • The comment in issue-slop.ts:23 area referencing the deleted rubric export could be double-checked for any stale references elsewhere, though none are visible in this diff.
  • Possible secret-shaped assignment in the diff (generic_secret_assignment) — Verify the value is not a real credential.

Decision drivers

  • ✅ Code review — No blockers (1 reviewer)
  • ✅ Gate result — Passing (No configured blocker found.)
Context & advisory signals — never blocks the verdict
Signal Result Evidence
Linked issue ✅ Linked #8907
Related work ✅ No active overlap found No same-issue or scoped active PR overlap found.
Change scope ✅ 20/20 Low review scope from cached public metadata (1 linked issue).
Validation posture ✅ 25/25 PR body includes validation/test evidence.
Contributor workload ✅ 10/10 Author activity: 45 registered-repo PR(s), 37 merged, 0 issue(s).
Contributor context ✅ Confirmed Gittensor contributor bitfathers94; Gittensor profile; 45 PR(s), 0 issue(s).
Improvement ✅ Minor risk: clean · value: minor · LLM: minor
Linked issue satisfaction

Addressed
The PR updates the loopover_check_issue_slop tool description to match the actual {band, findings} response shape, deletes the dead ISSUE_SLOP_RUBRIC_MARKDOWN constant (choosing the deletion option rather than wiring it into a self-check tool), and adds a regression test asserting the description content.

Review context
  • Author: bitfathers94
  • Role context: outside_contributor
  • Public audience mode: oss maintainer
  • Lane context: Repository is configured for direct PR review.
  • Public profile languages: TypeScript
  • Official Gittensor activity: 45 PR(s), 0 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Start here: Triage stale or unlinked PRs.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.
🧪 Chat with LoopOver

Ask LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.

  • @loopover ask &lt;question&gt; answers contribution-quality Q&A with source citations and freshness.
  • @loopover chat &lt;question&gt; answers in natural prose from cached decision-pack facts via local inference (maintainer/collaborator; read-only).
  • A plain-language @loopover mention with a real question is routed to the closest matching read-only command automatically — no exact syntax required.

Full command reference: https://loopover.ai/docs/loopover-commands

🧪 Experimental — new and may change.

🟩 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 LoopOver, a quiet PR intelligence layer for OSS maintainers.

  • Re-run LoopOver review

@loopover-orb loopover-orb Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LoopOver approves — the gate is satisfied and CI is green.

@loopover-orb
loopover-orb Bot merged commit fcecf0c into JSONbored:main Jul 26, 2026
8 checks passed
@github-actions github-actions Bot mentioned this pull request Jul 26, 2026
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(mcp): loopover_check_issue_slop's tool description promises "the rubric" but the route never returns it

1 participant