Skip to content

feat!: multi-tool adapters — Codex CLI, Cursor, ORGN CDE, OpenCode (v0.2.0) - #1

Merged
Pycomet merged 10 commits into
mainfrom
feat/v2-multi-tool-adapters
Jul 23, 2026
Merged

Pycomet merged 10 commits into
mainfrom
feat/v2-multi-tool-adapters

Conversation

@Pycomet

@Pycomet Pycomet commented Jul 22, 2026

Copy link
Copy Markdown
Owner

What: One unified capability map across every supported AI coding tool on the machine — adapter registry with detection, four new adapters, cross-tool diagnostics, and per-tool tuning bars (SPEC_V2 M5–M8).

Why: v1 only answered "what can my Claude Code setup do?" The real question is "what can my whole AI setup do, where does it overlap, and what am I paying for but never using?" — duplicate MCP servers across tools and capability imbalance are invisible in any single-tool view.

How:

  • ToolAdapter v2: detect() per adapter, tool-namespaced ids (claude-code/skill:x), --list-tools / --tool CLI surface, tools + crossTool in --json
  • Codex CLI (full usage): config.toml MCP servers + AGENTS.md + session JSONL mining; the desktop-app variant has no stable public surface and honestly reports "not detected"
  • Cursor (inventory-only): mcp.json (project wins collisions), skills-cursor/*/SKILL.md, rules files; nodes render fixed-size with a "usage unavailable" badge — no faked numbers
  • ORGN CDE + OpenCode (partial usage): shared opencode-family core — string-aware JSONC parser, read-only SQLite session mining (copy-on-read under WAL locks, degrades to inventory-only on schema surprises); schema survey in docs/opencode-db-survey.md
  • Cross-tool diagnostics: duplicate MCP servers by normalized command/URL identity with usage contrast, per-axis capability imbalance, rules-file overlap flags (human review, no content diffing)
  • Dead weight is now tool-aware: usage-less tools excluded (no data → no "never used" claim), token math uses the owning tool's session count
  • Prereq fix from the M1–M3 review: plugin-skill usage credited across prefix mismatches when unambiguous

Breaking: item ids are tool-namespaced (skill:xclaude-code/skill:x); --json gains tools/crossTool; version bumped to 0.2.0. See CHANGELOG.md.

Testing: 96 vitest tests green (fixture trees per adapter incl. a generated SQLite fixture); verified live on a real machine — 4/5 tools detected, 113 items, real cross-tool findings ("playwright MCP installed in Claude Code + Cursor, never fired in any tool with usage data").

Size note: >400 lines by necessity — four adapters built against one interface landed as one reviewable unit; each adapter is an isolated module + fixtures + tests, reviewable per-commit (one commit per plan task).

🤖 Generated with Claude Code

https://claude.ai/code/session_01WjehirYUmeq8GdcYe5U6RJ

@Pycomet
Pycomet merged commit 21faff6 into main Jul 23, 2026
2 checks passed
@Pycomet
Pycomet deleted the feat/v2-multi-tool-adapters branch July 23, 2026 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants