Files
holocron/plugins/bin
Defame1297 4011d149bc fix(bin): put five skills' boundaries where the router can read them
grill-me, grill-with-docs, improve-codebase-architecture, tdd and triage each had
their routing boundary written into README.md, which nothing loads at runtime,
while the gate still reported all five descriptions as boundary-less. The
boundaries move into the descriptions; write-docs' clause, which said 'those have
dedicated skills' without naming one, now names them.

research had moved its body out and then read both references unconditionally --
the anti-goal ADR-0020 names, where the word count moves and the per-run context
does not. Both loads are genuinely conditional now, with the topic list and the
four literal sources.md field names inlined, since the provenance validator
matches those literally.

Also restores the promote-the-prototype anti-pattern to prototype's ui.md, which
the gate does not measure, so deleting it bought nothing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EJJrm5YmacbwMdzZpXcoti
2026-08-31 19:47:00 +00:00
..

bin

A place for things to be binned

Install

Claude Code:

claude plugin marketplace add <owner>/<repo>
claude plugin install bin@<marketplace-name>

GitHub Copilot CLI:

copilot plugin marketplace add <owner>/<repo>
copilot plugin install bin

Local (development):

# Claude Code
claude --plugin-dir ./plugins/bin

# GitHub Copilot CLI
copilot plugin install ./plugins/bin

Contents

Component Path Description
Skills .apm/skills/ → skills/ Slash commands available after install
MCP servers .mcp.json The obsidian server (npx @bitbonsai/mcpvault@0.15.0 docs/), hand-authored at the plugin root

.apm/ is the authoring source; skills/ is the generated mirror plugin hosts scan (ADR-0017). This plugin ships no agents. It is the only plugin here with a non-empty .mcp.json, which is why its compiled manifests are the only ones carrying an mcpServers block.

The two compiled manifests get that block by different routes. .claude-plugin/plugin.json gets it from apm itself: build_plugin_manifest's Claude branch calls collect_mcp_servers, which reads .mcp.json, sanitizes it, and inlines the resulting server objects. .github/plugin/plugin.json gets nothing from apm — the Copilot branch drops the field — so scripts/sync-plugin-content.sh's reinject_mcp_servers() puts it back, as the string ".mcp.json" rather than the resolved objects. Copilot's manifest schema types the field as "string or object — MCP server config path or inline definitions", and a path reference cannot carry a credential into a committed manifest. See ADR-0017's mcpServers amendment.

Author

Defame1297