tool-protocol
Find, build, or adapt automation tools following the Tool Protocol decision tree
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Find, build, or adapt automation tools following the Tool Protocol decision tree
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | tool-protocol |
| description | Find, build, or adapt automation tools following the Tool Protocol decision tree |
| compatibility | >=1.4 |
Skill metadata: version "1.0"; license MIT; tags [tools, automation, scripting, toolbox]; compatibility ">=1.4"; recommended tools [codebase, editFiles, runCommands, fetch].
When a task requires automation, a scripted command sequence, or a repeatable utility, follow this decision tree before writing anything ad-hoc.
Need a tool for task X
โ
โโ 1. FIND โ check .copilot/tools/INDEX.md
โ โโ Exact match โ USE IT directly
โ โโ Close match โ ADAPT (fork, rename, note source in comment at top of file)
โ โโ No match โ โ
โ
โโ 1.5 BUILT-IN โ check VS Code's native tool capabilities
โ โโ `list_code_usages` โ find all references, implementations, callers of a symbol
โ โโ `get_errors` โ get compile/lint errors for a file or the entire workspace
โ โโ `fetch_webpage` โ fetch web pages, docs, APIs (use for documentation lookups)
โ โโ `semantic_search` โ natural language search across the codebase
โ โโ `grep_search` โ fast text/regex search in workspace files
โ โโ Sufficient โ USE built-in tool
โ โโ Not sufficient โ โ
โ
โโ 2. SEARCH online (try in order)
โ a. MCP server registry github.com/modelcontextprotocol/servers
โ b. GitHub search github.com/search?type=repositories&q=<task>
โ c. Awesome lists awesome-cli-apps ยท awesome-shell ยท awesome-python ยท awesome-rust ยท awesome-go
โ d. Stack registry npmjs.com / pypi.org / crates.io / pkg.go.dev
โ e. Official CLI docs git ยท docker ยท gh ยท jq ยท ripgrep ยท sed ยท awk (built-ins first)
โ โโ Found something usable โ evaluate fit, adapt as needed, note source
โ โโ Nothing applicable โ โ
โ
โโ 2.5 COMPOSE โ can this be assembled from 2+ existing toolbox tools via pipe or import?
โ โโ Yes โ compose; document the pipeline; save to toolbox if reusable
โ โโ No โ โ
โ
โโ 3. BUILD โ write the tool from scratch
- Follow ยง4 coding conventions and ยง3 LOC baselines
- Single-purpose: one tool, one job; compose via pipes or imports
- Accept arguments instead of hardcoding project-specific paths
- Required inline header at the top of every built or saved tool:
# purpose: <what this tool does โ one precise sentence>
# when: <when to invoke it | when NOT to invoke it>
# inputs: <argument list with types and valid values>
# outputs: <what it returns โ type and structure>
# risk: safe | destructive
# source: <url or "original" if built from scratch>
โ
โโ 4. EVALUATE reusability
โโ โฅ 2 distinct tasks in this project would benefit โ SAVE to toolbox
โ a. Place file in .copilot/tools/<kebab-name>.<ext>
โ b. Add a row to .copilot/tools/INDEX.md (see format below)
โโ Single-use / too project-specific โ use inline only; do not save
.copilot/tools/ is created on first tool save (no setup step required). Contents:
Files: INDEX.md (catalogue) ยท *.sh ยท *.py ยท *.js/*.ts ยท *.mcp.json
INDEX.md row format:
| Tool | Lang | What it does | When to use | Output | Risk |
|---|---|---|---|---|---|
count-exports.sh | bash | Count exported symbols per file | API surface audits | symbol counts to stdout | safe |
summarise-metrics.py | python | Parse metrics baselines and print trends | Kaizen review sessions | trend table to stdout | safe |
Naming โ Tool names must be a verb-noun kebab phrase describing the action (count-exports, sync-schema), not a noun or generic label (exports, utils).
Risk tier:
safe โ read-only or fully idempotent; invoke without confirmationdestructive โ deletes files, overwrites data, or writes to remote systems; must pause and confirm with the user before execution, regardless of session autonomy levelOther rules:
[DEPRECATED] in INDEX.md; counts as W1 (Overproduction)grep, head, jq) over raw dumps; return the minimum token payload the callsite requires.Subagents inherit this protocol fully. A subagent may build or adapt a tool independently. To save a tool to the toolbox, the subagent must first flag the proposal to the parent agent, which confirms before any write to .copilot/tools/.
Create an Architectural Decision Record (ADR) to document a significant design or technology choice
Audit VS Code extensions against the current project stack and recommend keep/add/remove actions
Diagnose and fix a failing CI pipeline or GitHub Actions workflow
Triage a GitHub issue by classifying severity, labelling waste category, proposing next action, and drafting a structured response
Create a new MCP server โ clarify purpose, choose transport, scaffold, implement, test, and register
Configure and manage Model Context Protocol servers for external tool access