# Investibook Skill Catalog

This file is a read-only routing index for Investibook diagnosis agents. It is copied to `.opencode/investibook/SKILL_CATALOG.md`.

Do not copy this file into `.opencode/skills/` or `.opencode/.all-skills/`. It is not a skill and must not participate in OpenCode skill discovery.

## Loading Rules

- `investigator` reads this catalog and workspace files. It dispatches collection to `evidence-agent` and every full diagnosis synthesis to `diagnosis-analyst` when Task is available.
- `evidence-agent` defaults to `core` plus the minimal `data-access` skills needed by the standard collector path.
- `diagnosis-analyst` defaults to `tidb-knowledge-base`, `diagnosis-overview`, the classification index/table, and selected family subskills plus their required specialists. The root `tidb-clinic-diagnosis` manual is not a default required read.
- Diagnosis Task calls must include a non-empty required skill list in the task prompt. If the native Task tool does not expose a `load_skills` argument, encode the list in the prompt as `Required skills to load`. For `diagnosis-analyst`, this is an execution contract rather than an optional allowance.
- If a skill is enabled in `.opencode/skills/`, load it through the OpenCode `skill` tool. If it is cataloged but not enabled, read its `SKILL.md` from `.opencode/.all-skills/<path>/SKILL.md`.
- After a route is selected, the investigator reads only its matching classification family subskill to build the analyst handoff. The required list must name that family subskill and every cataloged specialist mandated by its explicit `Specialist Loading Contract`; if the family has no such contract, name the family only and leave later specialist gating to the analyst.
- Classification family subskills own specialist routing. Load a cataloged specialist only when the selected family subskill requires it; do not infer specialist loads directly from symptom keywords.
- `diagnosis-analyst` must not load `data-access` skills unless a future protocol explicitly allows it.
- General methods in `builtin/tidb-clinic-diagnosis/references/general-diagnosis-fallback.md` are analyst-only, on demand for an uncovered reasoning question. Missing evidence or an unavailable required specialist is not a fallback trigger; record the gap explicitly. Reading any skill does not expand the agent's tool permissions or replace its output contract.

## Catalog

| group | skill | path |
| --- | --- | --- |
| core | `time-conversion` | `builtin/time-conversion` |
| core | `tidb-knowledge-base` | `builtin/tidb-knowledge-base` |
| core | `diagnosis-overview` | `builtin/diagnosis-overview` |
| data-access | `clinic-cli` | `builtin/clinic-cli` |
| data-access | `alertstore-cli` | `builtin/alertstore-cli` |
| data-access | `jira` | `builtin/jira` |
| data-access | `devops` | `builtin/devops` |
| data-access | `o11y-data` | `nutshell-skills/platform/o11y-data` |
| data-access | `o11y-metrics-api` | `nutshell-skills/platform/o11y-metrics-api` |
| data-access | `github-issue-search` | `builtin/github-issue-search` |
| diagnosis | `tidb-clinic-diagnosis` | `builtin/tidb-clinic-diagnosis` |
| diagnosis | `tidb-fast-diagnosis` | `builtin/tidb-fast-diagnosis` |
| diagnosis | `tidb-query-tuning-autox` | `tidb-query-tuning-autox` |
| diagnosis | `transaction-oncall-handbook` | `nutshell-skills/diagnosis/transaction-oncall-handbook` |
| diagnosis | `ticdc-health-inspection` | `nutshell-skills/diagnosis/ticdc-health-inspection` |
| diagnosis | `tikv-cdc` | `nutshell-skills/diagnosis/tikv-cdc` |
