You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of #4737 (parent epic — unlocks phase, supply side). Depends on the
deterministic aggregate sub-score sub-issue (sibling sub-issue in this epic) for the reusable scoring
logic; conceptually mirrors the existing gittensory_check_slop_risk MCP tool
(.claude/skills/contributing-to-gittensory/reference.md §5), but does not depend on it functionally.
Why this is worth building
gittensory_check_slop_risk is the existing demand-side-adjacent, pre-submit tool: it tells a
contributor "here's your risk profile before you open the PR." There is no supply-side pre-submit signal
for value — nothing today nudges a miner toward higher-value issues before they start work, which is
the direct MCP-surface mirror of this epic's core thesis (help maintainers see value AND help
contributors aim at it, per the product's stated two-sided anti-slop wedge).
The technical wrinkle (read before implementing)
gittensory_check_slop_risk works pre-submission because slop-risk is purely deterministic/local
(changed files, additions/deletions, description, tests — no live PR needed). This epic's deterministic
tier (complexity-delta, duplication-delta) is also locally computable pre-submission (a contributor's
local working tree has real before/after file content directly, no reconstructOldContent reverse-patch
trick even needed — that trick exists specifically because REES, running against a live GitHub PR, only
gets diff hunks). The LLM tier (sibling sub-issue) is not naturally available here — it's designed to
piggyback on the live AI-review call against an already-opened PR. Scope this tool to the deterministic
tier only; do not attempt to also run the LLM judgment pre-submission (that would require a new LLM call
this tool's MCP-metadata-only, no-source-upload privacy boundary makes awkward — flag as a genuine v2 if
still wanted, don't build it into this issue).
Deliverables
A new MCP tool (e.g. gittensory_check_improvement_potential), same metadata-only shape as its
siblings: input roughly {changedFiles[{path,additions,deletions}], description, tests, testFiles}
(matching gittensory_check_slop_risk's existing input contract where possible, for a consistent
contributor experience) plus whatever the deterministic complexity/duplication analyzers need that a
local working tree can supply directly (no reconstructOldContent needed locally — see above).
Output: the same banded/ordinal shape as the deterministic aggregate (sibling sub-issue), not a
fabricated percentage, consistent with the epic's design constraint 1.
Docs: add to .claude/skills/contributing-to-gittensory/reference.md §5's numbered tool list, in the
same style as the existing six tools.
Requirements
Metadata-only, no source upload — same privacy boundary every other MCP tool in this repo already
respects; do not send full file contents to any gittensory-operated service if it can be avoided
(deterministic complexity/duplication computation can run client-side in the MCP tool itself, mirroring
how gittensory_check_slop_risk never uploads source).
Reuse the actual scoring logic from the deterministic aggregate sub-issue (src/signals/improvement.ts
or wherever it lands) rather than re-deriving a second copy of the same math in the MCP package — this
is exactly the kind of duplication this year's architecture-audit epic (Epic: review-stack architecture audit — eliminate duplication, hardcoding, config sprawl, and dead code #4622) spent itself eliminating;
don't reintroduce the pattern in new code.
Gate this tool's availability the same way other write/analysis MCP tools are gated today (check the
existing auth'd-extras pattern in reference.md §5 for precedent) — implementer's call whether this needs
auth or can stay open like check_slop_risk, but document the choice.
Acceptance criteria
New MCP tool ships with the same input/output rigor and docs quality as gittensory_check_slop_risk.
Deterministic scoring logic is shared with (not duplicated from) the main-app aggregate sub-score.
No source upload; metadata-only, verified by reading what the tool actually transmits.
reference.md §5 updated with the new tool in-sequence.
LLM-tier judgment explicitly NOT attempted in this issue (see wrinkle above) — noted as an
explicit non-goal in the shipped PR description, not silently absent.
Context
Part of #4737 (parent epic — unlocks phase, supply side). Depends on the
deterministic aggregate sub-score sub-issue (sibling sub-issue in this epic) for the reusable scoring
logic; conceptually mirrors the existing
gittensory_check_slop_riskMCP tool(
.claude/skills/contributing-to-gittensory/reference.md§5), but does not depend on it functionally.Why this is worth building
gittensory_check_slop_riskis the existing demand-side-adjacent, pre-submit tool: it tells acontributor "here's your risk profile before you open the PR." There is no supply-side pre-submit signal
for value — nothing today nudges a miner toward higher-value issues before they start work, which is
the direct MCP-surface mirror of this epic's core thesis (help maintainers see value AND help
contributors aim at it, per the product's stated two-sided anti-slop wedge).
The technical wrinkle (read before implementing)
gittensory_check_slop_riskworks pre-submission because slop-risk is purely deterministic/local(changed files, additions/deletions, description, tests — no live PR needed). This epic's deterministic
tier (complexity-delta, duplication-delta) is also locally computable pre-submission (a contributor's
local working tree has real before/after file content directly, no
reconstructOldContentreverse-patchtrick even needed — that trick exists specifically because REES, running against a live GitHub PR, only
gets diff hunks). The LLM tier (sibling sub-issue) is not naturally available here — it's designed to
piggyback on the live AI-review call against an already-opened PR. Scope this tool to the deterministic
tier only; do not attempt to also run the LLM judgment pre-submission (that would require a new LLM call
this tool's MCP-metadata-only, no-source-upload privacy boundary makes awkward — flag as a genuine v2 if
still wanted, don't build it into this issue).
Deliverables
gittensory_check_improvement_potential), same metadata-only shape as itssiblings: input roughly
{changedFiles[{path,additions,deletions}], description, tests, testFiles}(matching
gittensory_check_slop_risk's existing input contract where possible, for a consistentcontributor experience) plus whatever the deterministic complexity/duplication analyzers need that a
local working tree can supply directly (no
reconstructOldContentneeded locally — see above).fabricated percentage, consistent with the epic's design constraint 1.
.claude/skills/contributing-to-gittensory/reference.md§5's numbered tool list, in thesame style as the existing six tools.
Requirements
respects; do not send full file contents to any gittensory-operated service if it can be avoided
(deterministic complexity/duplication computation can run client-side in the MCP tool itself, mirroring
how
gittensory_check_slop_risknever uploads source).src/signals/improvement.tsor wherever it lands) rather than re-deriving a second copy of the same math in the MCP package — this
is exactly the kind of duplication this year's architecture-audit epic (Epic: review-stack architecture audit — eliminate duplication, hardcoding, config sprawl, and dead code #4622) spent itself eliminating;
don't reintroduce the pattern in new code.
existing auth'd-extras pattern in reference.md §5 for precedent) — implementer's call whether this needs
auth or can stay open like
check_slop_risk, but document the choice.Acceptance criteria
gittensory_check_slop_risk.reference.md§5 updated with the new tool in-sequence.explicit non-goal in the shipped PR description, not silently absent.