Skip to content

fix: setup-claude config filename/key, remove stale tools, bundle sch…#25

Closed
le-dawg wants to merge 2 commits into
kschlt:mainfrom
solution8-com:fix/setup-claude-and-schema-packaging
Closed

fix: setup-claude config filename/key, remove stale tools, bundle sch…#25
le-dawg wants to merge 2 commits into
kschlt:mainfrom
solution8-com:fix/setup-claude-and-schema-packaging

Conversation

@le-dawg

@le-dawg le-dawg commented May 19, 2026

Copy link
Copy Markdown
Contributor

…ema in package

  • setup-claude now writes .mcp.json (not .claude-mcp-config.json)
  • top-level key changed from 'servers' to 'mcpServers' (Claude Code standard)
  • removed hardcoded stale tools array and description field from generated config
  • moved schemas/adr.schema.json into adr_kit/schemas/ for pip distribution
  • fixed validate.py _get_default_schema_path() to use package-relative path
  • added [tool.setuptools.package-data] to pyproject.toml
  • updated tests/unit/test_adr_schema.py path after schema move
  • added tests/integration/test_setup_commands.py (4 tests, all passing)

Fixes: #23

Note: this PR does NOT fix #24 (adr_approve parallel MCP calls auto-rejected by
Claude Code permission prompts). That is a client-side concurrency issue, untouched
here — the only contact with it is removing "adr_approve" from the stale hardcoded
tools array. The original "Fixes #24" claim was corrected so merging this does not
silently auto-close a live bug.

…ema in package

- setup-claude now writes .mcp.json (not .claude-mcp-config.json)
- top-level key changed from 'servers' to 'mcpServers' (Claude Code standard)
- removed hardcoded stale tools array and description field from generated config
- moved schemas/adr.schema.json into adr_kit/schemas/ for pip distribution
- fixed validate.py _get_default_schema_path() to use package-relative path
- added [tool.setuptools.package-data] to pyproject.toml
- updated tests/unit/test_adr_schema.py path after schema move
- added tests/integration/test_setup_commands.py (4 tests, all passing)

Fixes: kschlt#23, kschlt#24
@le-dawg le-dawg closed this May 19, 2026
@le-dawg le-dawg reopened this May 19, 2026
Fixed 1 file(s) based on 1 unresolved review comment.

Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
@kschlt

kschlt commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Thanks for this, and for the four issues alongside it — the diagnosis was correct on both counts, and I verified both bugs are still live on main:

  • the published wheel genuinely ships without adr.schema.json, so ADRValidator raises Schema file not found for every pip-installed user
  • setup-claude writes a config Claude Code ignores, with a tools array that had rotted to the point of advertising six tools the server no longer exposes

Your .mcp.json merge logic was a nice catch too — the previous code would have clobbered any other MCP servers a user had configured.

I've landed your fix as #30, with your commit credited via Co-authored-by. I rehomed it onto a branch here rather than merging this one, for two reasons — neither of them your fault:

  1. this branch predates a mypy fix that went in today (fix(semantic): pass convert_to_numpy explicitly so encode() types as ndarray #29), so it carried three now-resolved type errors
  2. the three integration tests had rotted since May: they call runner.isolated_filesystem(...), but typer's CliRunner no longer subclasses click's (0.26.8's MRO is ['CliRunner', 'object']), so the method is gone. They passed when you wrote them — typer>=0.9.0 is unpinned and drifted underneath. I rewrote them onto monkeypatch.chdir so they don't depend on either library's testing API, and added two tests covering your merge logic, which was the one untested part.

That dependency drift is a real problem on our side and I've filed it separately. Closing this in favour of #30 — the production code there is yours, unchanged.

Issues #24, #26 and #27 are untouched by #30 and remain open; they're going to the top of the queue next.

@kschlt kschlt closed this Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants