Skip to content

Commit 92ddd5a

Browse files
committed
refactor(mcp): retire the loopover_/gittensory_ legacy tool-name aliases
Issue #4775 renamed the local stdio MCP CLI's 37 tools from gittensory_-prefixed to loopover_-prefixed names, keeping the old names registered as deprecated aliases (registerToolWithLegacyAlias) during a transition window. Remove that mechanism: each tool now registers once, under its canonical loopover_ name only. Deletes legacyAliasName() and ALL_STDIO_TOOL_DESCRIPTORS (the 37-primary + 37-alias merged descriptor list), collapsing stdioToolDescription() and the `tools` CLI subcommand back to the original 37-entry STDIO_TOOL_DESCRIPTORS. Deliberately unchanged: AGENT_PROFILES.recommendedTools/recommendedPrompts still reference several gittensory_-prefixed names. Most of those belong to the separate, never-renamed remote/hosted MCP server (src/mcp/server.ts), not these local CLI tools. A handful do collide with locally-renamed tools (gittensory_agent_plan_next_work and 7 others) -- left exactly as-is pending a maintainer call on whether those specific references were meant to track the local rename, since test/unit/mcp-cli-basics.test.ts pins this exact spelling today. Part of #4777
1 parent 941c300 commit 92ddd5a

13 files changed

Lines changed: 119 additions & 178 deletions

.claude/skills/contributing-to-loopover/SKILL.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,7 @@ Use that generator instead of hand-writing config (**Codex uses TOML, Claude/Cur
106106
pasted JSON block will not work in Codex). You'll use these tools in Phases 1 and 6 (inputs in
107107
`reference.md`): `loopover_check_before_start`, `loopover_validate_linked_issue`,
108108
`loopover_check_slop_risk`, `loopover_lint_pr_text`, `gittensory_predict_gate` — all metadata-only
109-
(no source upload, no secrets). The first four are the new `loopover_`-prefixed primary names (#4775);
110-
their old `gittensory_`-prefixed names still work, unchanged, as deprecated aliases for one full
111-
minor-version deprecation cycle.
109+
(no source upload, no secrets).
112110

113111
---
114112

.claude/skills/contributing-to-loopover/reference.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ Implications for you:
110110
a coverage miss closes the PR. This is why Phases 3–5 are non-negotiable.
111111
- **A merge conflict closes the PR** — keep your branch current with `main`.
112112
- **Linking the wrong issue closes the PR** — only link an open, unassigned, eligible issue (verify
113-
with `loopover_validate_linked_issue`, aliased for one deprecation cycle as `gittensory_validate_linked_issue`).
113+
with `loopover_validate_linked_issue`).
114114
- Owner / automation-bot PRs are exempt from auto-close, and crucial guarded-path PRs are held — but
115115
**assume you are a contributor** and that adverse = close.
116116

@@ -149,30 +149,28 @@ gittensory-mcp init-client --print codex # → ~/.codex/config.toml ([mcp_se
149149
gittensory-mcp init-client --print claude # or --print cursor (→ mcpServers JSON)
150150
```
151151

152-
All tools are metadata-only (no source upload). Each local-package tool below is now primarily named
153-
`loopover_*` (#4775) — the old `gittensory_*` name still works, unchanged, as a deprecated alias for
154-
one full minor-version deprecation cycle. Run in this order:
152+
All tools are metadata-only (no source upload). Run in this order:
155153

156-
1. `loopover_check_before_start` (was `gittensory_check_before_start`) — `{owner, repo, issueNumber,
154+
1. `loopover_check_before_start` — `{owner, repo, issueNumber,
157155
plannedChange{title, paths}}` → go/raise/avoid (claimed? duplicate cluster? already solved?).
158-
2. `loopover_validate_linked_issue` (was `gittensory_validate_linked_issue`) — `{owner, repo,
156+
2. `loopover_validate_linked_issue` — `{owner, repo,
159157
issueNumber, plannedChange}` → is the issue open, valid, single-owner, solvable by this PR.
160-
3. `loopover_check_slop_risk` (was `gittensory_check_slop_risk`) — `{changedFiles[{path,additions,deletions}], description, tests,
158+
3. `loopover_check_slop_risk` — `{changedFiles[{path,additions,deletions}], description, tests,
161159
testFiles}` → band + findings.
162160
4. `gittensory_check_improvement_potential` — `{changedFiles?[{path,additions,deletions}], tests?,
163161
testFiles?, patchCoverageDeltaPercent?, complexityDeltas?[{file,line,name,before,after,delta}],
164162
duplicationDeltas?[{file,line,duplicateOfLine,lines}]}` → improvementScore + band
165163
(insufficient-signal/none/minor/moderate/significant) + findings. The positive-axis mirror of
166164
`loopover_check_slop_risk` — deterministic tier only (no LLM judgment); complexityDeltas/
167165
duplicationDeltas are optional precomputed deltas the calling agent supplies, never raw source.
168-
5. `loopover_lint_pr_text` (was `gittensory_lint_pr_text`) `{commitMessages[], prBody, linkedIssue}` → verdict
166+
5. `loopover_lint_pr_text``{commitMessages[], prBody, linkedIssue}` → verdict
169167
strong/adequate/weak + specific fixes.
170-
6. `loopover_validate_config` (was `gittensory_validate_config`) `{content, source?}` → normalized manifest fields,
168+
6. `loopover_validate_config``{content, source?}` → normalized manifest fields,
171169
warnings, and ok/warn/error status.
172170
7. `gittensory_predict_gate``{login, owner, repo, title, body, labels, linkedIssues}` → predicted
173171
conclusion + blockers + warnings + readiness score.
174172

175-
(Auth'd extras: `loopover_preflight_pr` / `…_local_diff` (was `gittensory_preflight_pr` / `…_local_diff`)
173+
(Auth'd extras: `loopover_preflight_pr` / `…_local_diff`
176174
for lane fit + collision + queue health; `gittensory_get_pr_ai_review_findings` — `{login, owner, repo,
177175
pullNumber}` → structured post-submission AI-review inline findings (category/path/severity) for your
178176
own PR.)

packages/gittensory-mcp/README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ The report has an `overallStatus` (`pass`/`warn`/`fail`) and a `sections` array
142142
degrades to `fail` with a public-safe `slopRiskError`/`prTextLintError` reason instead of aborting the
143143
whole report — the other sections still return.
144144

145-
The same composed check is exposed to MCP clients as `loopover_review_pr_before_push` (aliased for one deprecation cycle as `gittensory_review_pr_before_push`).
145+
The same composed check is exposed to MCP clients as `loopover_review_pr_before_push`.
146146

147147
## Auth
148148

@@ -188,8 +188,6 @@ The same capabilities are exposed to MCP clients as:
188188
- `loopover_agent_explain_next_action`
189189
- `loopover_agent_prepare_pr_packet`
190190

191-
(Each is aliased for one deprecation cycle under its old `gittensory_agent_*` name.)
192-
193191
### Client config
194192

195193
`init-client --print <host>` prints the stdio MCP config for a host: `codex` (TOML), `claude`, `cursor`, and `mcp` (the shared `mcpServers` JSON shape), and `vscode` (VS Code's native `servers` map with `"type": "stdio"`, for `.vscode/mcp.json`). It prints config only; it never edits client files.
@@ -273,7 +271,7 @@ gittensory-mcp changelog
273271

274272
## Offline decision-pack fallback
275273

276-
Successful `decision-pack` and MCP `loopover_get_decision_pack` calls (aliased for one deprecation cycle as `gittensory_get_decision_pack`) store a bounded last-good local cache entry keyed by API version and login. If the API or network is temporarily unavailable, the wrapper can return that last-good guidance as `source: "local_cache"` with `stale: true`, `cachedAt`, and rerun guidance. Auth and permission failures do not use stale fallback data.
274+
Successful `decision-pack` and MCP `loopover_get_decision_pack` calls store a bounded last-good local cache entry keyed by API version and login. If the API or network is temporarily unavailable, the wrapper can return that last-good guidance as `source: "local_cache"` with `stale: true`, `cachedAt`, and rerun guidance. Auth and permission failures do not use stale fallback data.
277275

278276
The cache excludes source contents and local paths, is bounded, and can be removed with:
279277

0 commit comments

Comments
 (0)