Conversation
Track D §5 D3 + D4. Onboards the new tier-3 repo m-dev-tools-mcp into the org catalog and adds an agent_integration intent so "point my MCP-capable agent at the m-dev-tools catalog" routes to tool:m-dev-tools-mcp. Source-of-truth lives in m-dev-tools-mcp's dist/repo.meta.json (its phase4-D PR #5 renamed exposes.tools → exposes.mcp_tools and added exposes.release_wheel pointing at the v0.1.0 release asset). The new TIER_3 entry here is the org-side pickup: build-catalog.py fetches that repo.meta.json and translates each exposes.<kind> into <kind>_url, so the generated entry naturally carries: * repo_meta_url — the TIER_3 URL itself * mcp_tools_url — points at dist/mcp-tools.json (the 3-tool manifest) * release_wheel_url — absolute URL of v0.1.0 wheel asset * consumes / consumed_by — m-dev-tools-mcp consumes m-cli + m-stdlib + m-standard; inverse edges land on those entries No hand-edits to tools.json — `make catalog` byte-idempotent (regen-twice diff is empty). Preserves the "facts in repos, routing in meta-repo" architectural inversion. * profile/build/build-catalog.py: TIER_3 gains the m-dev-tools-mcp URL; comment bumped "nine onboarded repos" → "ten". * profile/task_index.json: new infra.agent_integration intent with doc URL pointing at the MCP server's examples/claude-code/README.md. Schema accepts the addition without bump (additive change, per schema-changelog discipline). * profile/llms.txt: new "Agent integration" section pointing at the m-dev-tools-mcp AGENTS.md. 26 → 30 lines (under the 40-line cap per parent plan §4.6). * profile/tools.json: regenerated. New tools.m-dev-tools-mcp entry with the URL-pointer fields; consumed_by inverse edges added to tools.m-cli / tools.m-stdlib / tools.m-standard. Verified locally: * make catalog → byte-identical on regen * make validate-catalog → OK * make phase0-smoke → PASS (no new tier-1 entries) * make recipes-check → 4/4 clean * make handshake → 8/8 steps green The v0.1.0 GitHub Release (https://github.com/m-dev-tools/m-dev-tools-mcp/releases/tag/v0.1.0) was cut from m-dev-tools-mcp main at 1ae96c4 before this PR; the wheel asset is the one release_wheel_url points at.
3 tasks
rafael5
added a commit
that referenced
this pull request
May 11, 2026
Captures Phase 4 exit per phase4-plan.md §6 + §11. Mirrors phase3-evidence.md shape: one section per gate, "What this proves" roll-up, then each §11 done-criterion cited green. Verified locally (gate outputs in the evidence doc): * pytest profile/build/ — 51/51 green * make catalog — byte-idempotent regen * make validate-catalog — schema-strict OK * make handshake — 8/8 steps * make recipes-check — 4/4 clean * uvx --from git+...@v0.1.0 m-dev-tools-mcp --tool route_intent --query "parse JSON in M" → ["module:m-stdlib#STDJSON"] (the parent-plan exit criterion, end-to-end from a fresh clone) All nine §11 done-criteria cited green: 1. m-dev-tools-mcp repo public AGPL-3.0 + full Phase-0 contract (PR #1) 2. server.py exposes 3 TDD-covered tools (PR #2 — 30 dedicated cases) 3. v0.1.0 GitHub Release with 23-KB pure-Python wheel attached (Track D2) 4. tools.json carries the entry with repo_meta_url + mcp_tools_url + release_wheel_url (.github PR #27) 5. task_index.json has infra.agent_integration → tool:m-dev-tools-mcp (.github PR #27) 6. examples/claude-code/ has .mcp.json + README + smoke.sh + session.md template (PR #3) 7. This evidence file (PR — current) 8. uvx canonical round-trip green (run captured above) 9. CI green on every Phase 4 PR Phase 5 (continuous enforcement) unblocked. PyPI publishing remains deliberately deferred. Two out-of-scope follow-ups noted in the evidence doc: * validate-repo-meta.py UTF-8-decode bug on binary release-wheel exposes URLs (use --no-resolve until fixed) * 3 Phase-3-era orphan schema fixtures gitignored but still on disk; auto-classifier blocks rm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Track D §5 D3 + D4. Onboards the new tier-3 repo
m-dev-tools-mcpinto the org catalog and adds anagent_integrationintent so "point my MCP-capable agent at the m-dev-tools catalog" routes totool:m-dev-tools-mcp.Architecture: facts in repos, routing in meta-repo
Source-of-truth lives in
m-dev-tools-mcp/dist/repo.meta.json. Its phase4-D PR #5 renamedexposes.tools→exposes.mcp_toolsand addedexposes.release_wheelpointing at the v0.1.0 release asset. The new TIER_3 entry here is the org-side pickup:build-catalog.pyfetches thatrepo.meta.jsonand translates eachexposes.<kind>into a<kind>_url, so the generatedtools.m-dev-tools-mcpentry naturally carries:repo_meta_urlmcp_tools_urlexposes.mcp_tools→https://raw.githubusercontent.com/m-dev-tools/m-dev-tools-mcp/main/dist/mcp-tools.jsonrelease_wheel_urlexposes.release_wheel→https://github.com/m-dev-tools/m-dev-tools-mcp/releases/download/v0.1.0/m_dev_tools_mcp-0.1.0-py3-none-any.whlconsumes/consumed_bym-dev-tools-mcpconsumesm-cli+m-stdlib+m-standard; inverse edges land on those entriesNo hand-edits to
tools.json—make catalogis byte-idempotent (regen-twice diff is empty). Preserves the "facts in repos, routing in meta-repo" architectural inversion.Changes
profile/build/build-catalog.py— TIER_3 gains the m-dev-tools-mcp URL; the inline comment bumps "nine onboarded repos" → "ten".profile/task_index.json— newinfra.agent_integrationintent (primary: tool:m-dev-tools-mcp,docpoints at the MCP server'sexamples/claude-code/README.md). Additive change; no schema bump needed per schema-changelog discipline.profile/llms.txt— new "Agent integration" section linking the m-dev-tools-mcp AGENTS.md. 26 → 30 lines (under the 40-line cap per parent plan §4.6).profile/tools.json— regenerated. Newtools.m-dev-tools-mcpentry with the URL-pointer fields;consumed_byinverse edges added tom-cli/m-stdlib/m-standard.Verified locally
make catalog— byte-identical on regenmake validate-catalog— OKmake phase0-smoke— PASS (no new tier-1 entries; the tier-3 m-dev-tools-mcp isn't iterated here)make recipes-check— 4/4 cleanmake handshake— 8/8 steps greenRelease reference
The v0.1.0 GitHub Release (https://github.com/m-dev-tools/m-dev-tools-mcp/releases/tag/v0.1.0) was cut from m-dev-tools-mcp
mainat1ae96c4before this PR; the wheel asset is the onerelease_wheel_urlpoints at.Test plan
catalog/validate-catalog/phase0-smoke/recipes-check/handshake)tools.m-dev-tools-mcpentry materialized withrepo_meta_url+mcp_tools_url+release_wheel_urlconsumed_byinverse edges show up on m-cli / m-stdlib / m-standardOut-of-scope follow-up
validate-repo-meta.pychokes onexposes.*URLs pointing at binary release assets (UTF-8 decode on the wheel bytes). Worth a small follow-up PR here to skip decoding for non-text extensions.build-catalog.pycorrectly passes the URL through, so this PR isn't blocked by it.