The wrap was complete and committed; the steward then ran /doctor, which found and fixed real breakage. Recorded as an addendum to the same session file rather than a new one — it is the same session, past midnight. Fixed: 8 sub-agent name collisions across 21 files (15 renamed; 0 remain, 48 unique names — confirmed by the harness, which surfaced 15 previously invisible agents immediately). 4 invalid SKILL.md frontmatters, latent rather than live since the harness parses leniently. plane MCP disabled (0 calls in 41 real sessions). permissions.defaultMode set to auto. chamber-library/CLAUDE.md trimmed 54,129 -> 22,530 chars, under the warning threshold, all 42 tool names and all 9 sections preserved. TWO LOOSE ENDS recorded in ADDENDUM 1 and flagged in MEMORY.md, because either would strand the next session: 1. chamber-library/CLAUDE.md is UNCOMMITTED — a 31,861-char deletion, steward-approved at the doctor gate, left for the steward because the doctor protocol forbids the executor committing CLAUDE.md edits. git diff --stat reports 11 lines and badly understates it; the cut sections were single 16k/20k-char lines. 2. ~/.claude/agents is NOT GIT-TRACKED — 51 hand-edited files, 0 tracked, not a symlink into dotfiles. The renames therefore have no version history, and the only backup went to a session-scoped scratchpad that dies on clear. The full rename mapping is written into ADDENDUM 1 and is the only undo that survives. The wider gap is noticed and NOT filed, per the proposed moratorium: a governed surface with no version control, in a system whose premise is that the record must be checkable. Found by accident. Also logged: a thirteenth instrument error. I reported dotfiles as having unpushed commits to "origin" by conflating two repos' status lines — dotfiles has gitea and github and no origin; the origin line was studium-engine's. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017vKkg2EJF1rGwdFdBogwqx
6.1 KiB
name, description
| name | description |
|---|---|
| tooling-scan | Survey the dev-tooling landscape for tools that could help US build CapableMind better — agent runtimes, memory substrates, inference infra, skill/diagnostic tooling. The build-lens sibling of /landscape-scan (which scans competitors). Generative but anti-shiny: a tool earns adoption only if it addresses a named bottleneck at acceptable switching cost with governance-grain fit. Surfaces candidates and bounded trials; never adopts unilaterally. Records to the tooling register. |
Tooling Scan
Survey dev tooling that could help us build CapableMind — and keep the tooling register current. Sibling of /landscape-scan (which scans comparable/competing projects). The lenses are opposite: landscape asks "is someone building what we build?"; tooling asks "what helps us build it?"
Principle
Research is important, but it must push us to make something better — not defeat us. (steward)
Generative, but anti-shiny. The honest prior: our bottlenecks are usually not tool-shaped — they're hard engineering bugs, collaborator bandwidth, and the deliberately governed pace the work demands. A shinier tool is often a displacement activity — the question we reach for because the real work is slow. So the bar is high: a tool earns a look only if it maps to a named bottleneck, and earns adoption only if the gain clears the switching cost and the tool runs with our governance grain, not against it.
§0 — Resolve the workstream lens
This skill is workstream-parametrized — one method, many lenses ("simple exterior, complex underneath"). Default workstream: capablemind.
If invoked as /tooling-scan <workstream> (e.g. studium-engine), FIRST read ~/_Dev/CapableMind-AI/docs/thinking/David/research/lens-<workstream>.md and use its values — the bet, the named bottlenecks (the step-2 gate), the governance-grain test, the register path, and workstream-specific sources — in place of the CapableMind specifics named below (the capablemind lens, also in lens-capablemind.md). If no card exists for the named workstream, say so and stop — never scan against a guessed lens.
The rubric (per candidate)
Assess in order — stop early if it fails an upstream test:
- What it is + maturity. Verify from source/docs, not marketing. Mark
[SPECULATIVE]. - Which named bottleneck does it address? Map to our actual list — e.g.: hard-bug diagnosis · MemPalace reliability · inference reliability/cost (the teacher/slot tier) · procedural-knowledge capture · parallelism/throughput · spec↔code workflow. If it maps to none → PASS. "More capable" is not a bottleneck.
- Switching/integration cost vs marginal gain over the current stack (Claude Code + MemPalace + our skills + the governance loop). Be concrete about what we'd give up.
- Governance-grain fit. Does it run with our model or against it? Test against: the loop is load-bearing (does it push autonomy past propose?), data sovereignty (does our content leave the machine?), contamination (does it pressure toward pleasing outputs?). Hermes-as-runtime ran against (autonomous self-write); OpenRouter was configurable-compatible (default-no-log + ZDR + BYOK).
- Verdict:
ADOPT-candidate·HARVEST(borrow the idea into our existing tools, don't switch — as we did turning Hermes's self-improvement into the governed skill-harvest step) ·TRY(bounded experiment) ·PASS·WATCH. - Incumbent-bias flag. For runtime/substrate-class candidates (things that would replace Claude Code or MemPalace), the assessing agent is the incumbent — say so, discount the "don't switch" reflex, and prefer a bounded empirical trial by the steward over the agent's assertion.
Procedure
- Open the tooling register —
~/_Dev/CapableMind-AI/docs/thinking/David/research/tooling-register.md(create on first run; seed with the stack in play). Read current entries + last-scanned. Append in place. - Re-check the stack in play for movement (incumbents + already-surfaced tools: Claude Code, MemPalace, OpenRouter, Hermes-as-runtime). Has anything changed that shifts a prior verdict? (Movement matters as much as novelty — cf. Hermes's self-improvement loop appearing between April and May.)
- Scan for new candidates mapped to a named bottleneck. Sources: GitHub (trending dev-tools, MCP servers, agent harnesses), HN, the landscape register's watch list, release notes of tools we already use.
- Run each through the rubric. Be ruthless at step 2 (named bottleneck) — most finds PASS there, and that's the point, not a failure of the scan.
- Record + recommend. Append verdicts to the register; spin a dated deep-dive only for an
ADOPT-candidate/TRY. Surface a digest: the few that matter, each with bottleneck-addressed + verdict, and any bounded trial worth the steward running.
Output
A tight digest:
- Movement in incumbents/known tools (or "none").
- New candidates that cleared step 2 (named bottleneck), each one line: tool — bottleneck — verdict.
- Recommended bounded trials (for runtime/substrate-class, steward-run, with the incumbent-bias caveat).
- Register updated: what changed.
Constraints
- Anti-shiny. If a scan only produces "X is more capable," it found nothing — re-aim at the named-bottleneck test. A clean "nothing worth adopting" is the common, valid result.
- Verify from source. No claims from marketing or memory; read docs/code, cite, mark speculation.
- Surface, don't adopt. Adoption is the steward's call — and for anything touching the product (inference infra, substrate) or the runtime, it's steward + Seb + jurist. The scan informs; it never switches tools.
- Name the incumbent bias. The assessing agent benefits from the status quo; say so on runtime/substrate calls and lean on bounded trials over assertion.
- Proportion. A couple-of-days pulse. Don't let tool-shopping become the work instead of the building.
- Pool with Seb. Shared register; he scans too (the OpenRouter and Hermes finds were his).