Review: Rename pal-e-docs-mcp to pal-e-mcp + update imports

review-441-2026-03-26 Review

review ready

Verdict: READY

Re-review after refinements. All three issues from the 2026-03-26 initial review have been addressed.

Template Completeness

  • [x] Type -- Feature
  • [x] Lineage -- references repo rename initiative + SDK dependency
  • [x] Repo -- correctly identifies source and target
  • [x] User Story -- present and clear
  • [x] Context -- good explanation of naming convention motivation, correctly notes MCP key stays pal-e-docs. Now includes CRITICAL callout for ~/.mcp.json atomic update.
  • [x] File Targets -- present with "modify," "don't touch," and "does not exist" lists
  • [x] Acceptance Criteria -- 6 criteria, all testable
  • [x] Test Expectations -- includes run command
  • [x] Constraints -- 4 constraints documented including atomic ~/.mcp.json requirement
  • [x] Checklist -- present, includes ~/.mcp.json
  • [x] Related -- references SDK rename dependency and deferred phase
All required sections present. Template is complete.

Traceability

  • [x] story:superuser-maintain label -- board item has it
  • [x] arch:mcp label -- board item has it
  • [x] type:feature label -- board item has it
  • [x] Forgejo issue -- forgejo_admin/pal-e-docs-mcp#50, open
Traceability triangle is complete.

File Targets

  • [x] pyproject.toml -- verified: exists. Ticket now correctly lists ALL 5 fields: package name (line 6), script entry point (line 18), wheel path (line 28), uv source (line 42), SDK dependency (line 14). Previously only mentioned SDK dep.
  • [x] ~/.mcp.json -- verified: exists at /home/ldraney/.mcp.json. Contains hardcoded directory path (line 32: /home/ldraney/pal-e-docs-mcp) and module name (line 35: pal_e_docs_mcp). Ticket now lists this as CRITICAL with atomic update requirement. Previously missing entirely.
  • [x] src/pal_e_docs_mcp/ directory rename -- verified: directory exists with __init__.py, __main__.py, server.py, tools/
  • [x] from pal_e_docs_sdk import statements -- verified: 1 occurrence in src/pal_e_docs_mcp/server.py:9
  • [x] src/pal_e_docs_mcp/__main__.py -- verified: imports from pal_e_docs_mcp.server import main (covered by package dir rename)
  • [x] .woodpecker.yml -- verified: exists, uses generic python:3.12-slim image. No repo name references. No changes needed.
  • [x] tests/ -- verified: conftest.py has 5 pal_e_docs_mcp imports, test_param_alignment.py has 6 pal_e_docs_mcp imports. All need updating.
  • [x] CLAUDE.md -- confirmed does not exist. Ticket now explicitly documents this under "Files that do NOT exist" with instruction not to create. Previously was incorrectly listed as a modification target.

Nits (not blocking)

  • README.md -- references pal-e-docs-mcp (line 1) and pal_e_docs_mcp (line 12). Not listed in file targets. Any rename agent would catch this, but could be explicit.
  • uv.lock -- contains name = "pal-e-docs-mcp" (line 302). Will regenerate automatically from pyproject.toml changes. Standard practice.

Repo Placement

Issue is filed on forgejo_admin/pal-e-docs-mcp which is the correct repo being renamed. Downstream changes (claude-custom hooks, MEMORY.md) are correctly deferred to board item #444.

Dependencies

  • BLOCKER: Board item #440 (forgejo_admin/pal-e-docs-sdk#38) -- "Rename pal-e-docs-sdk to pal-e-sdk + update package" is in backlog. The issue correctly states "SDK rename must complete first." This ticket cannot move to next_up until #440 completes (import paths depend on it).
  • Board item #444 ("Update claude-custom + docs for repo renames") -- downstream coordination for hooks and MEMORY.md. Must happen after this rename.
  • Board item #439 ("Rename pal-e-docs repo to pal-e-api") -- sibling rename, no direct dependency.
Dependencies are correctly documented in the issue body.

Acceptance Criteria

  • [x] "Forgejo repo accessible at forgejo_admin/pal-e-mcp" -- testable via API
  • [x] "MCP server starts and all 36+ tools are available" -- testable
  • [x] "Tool prefix remains mcp__pal-e-docs__*" -- testable, correctly documents the invariant
  • [x] "SDK imports use new pal_e_sdk package name" -- testable via grep
  • [x] "~/.mcp.json points to new path and module" -- now present (was missing in initial review)
  • [x] "CI pipeline works on renamed repo" -- testable via Woodpecker
All criteria are testable and complete.

Blast Radius

  • ~/.mcp.json -- now explicitly handled in this ticket as CRITICAL. Atomic update with directory rename. Good.
  • claude-custom hooks -- block-dottie-code-writes.sh (line 31) and cleanup-worktrees.sh (line 19) reference pal-e-docs-mcp path. Correctly deferred to board item #444.
  • MEMORY.md -- ~/pal-e-docs-mcp repo location reference. Correctly deferred to #444.
  • Woodpecker CI -- repo webhook URL will need re-configuration after Forgejo rename. Not explicitly called out but standard Forgejo rename behavior.
  • MCP process cache -- issue correctly notes session restart is needed.

Previous Review Resolution

  • CLAUDE.md removed from file targets -- FIXED. Now listed under "Files that do NOT exist" with explicit "do not create" instruction.
  • ~/.mcp.json added as CRITICAL target -- FIXED. Added to File Targets with atomic update requirement, added to Context, added to Acceptance Criteria, added to Constraints, added to Checklist.
  • pyproject.toml scope expanded -- FIXED. Now lists all 5 fields: package name, script entry point, wheel path, uv source, SDK dependency name.

Recommendation

No action needed. All three issues from the initial review are resolved. Two minor nits (README.md and uv.lock not in file targets) are standard rename artifacts that any agent would handle. Ticket is ready for execution once dependency #440 (SDK rename) completes.