cc-os/plugins/os-adr/skills/find/SKILL.md

1.9 KiB

description
Retrieve the architecture decision records relevant to files, components, or a topic being worked on — callable at any point mid-task, not just at session start. Use unprompted before changing behavior that may already be decided (a locked choice, a convention, a rejected alternative). Invoked by `/os-adr:find`.

Find the ADRs relevant to what is being worked on. Retrieval is deterministic-first: run the CLI, then apply judgment ONLY to the candidates it returns — never read/rank the full ADR corpus yourself.

1. Run the deterministic CLI

ruby ${CLAUDE_PLUGIN_ROOT}/bin/adr-find --root <project-root> \
  --paths <comma-separated file/dir paths being edited> \
  --components <comma-separated component names>   # optional

The CLI layers: frontmatter path/component matching → Accepted-only status filter → one-hop Graphify graph expansion of the query paths (automatic when graphify-out/graph.json exists; silently skipped otherwise). Add --all-statuses only when history matters (e.g. "why was X superseded?").

2. Judge the candidate set

Read the returned candidate files (they are few) and decide which actually bear on the task. matched_on tells you why each surfaced (path, graph, component). Prefer direct path matches; treat graph matches as "nearby decisions worth a look".

3. Act on what you find

  • If the in-progress change conflicts with an Accepted ADR: stop, surface the specific ADR (ID + title + the constraint), and either adjust the approach or propose superseding it via /os-adr:create with supersedes.
  • If a candidate merely informs the work, cite it and continue.
  • If the CLI returns nothing, say so — do not fall back to sweeping docs/adr/ unless the user asks; an empty result usually means no decision governs those paths (or affected-paths frontmatter is missing on older ADRs — worth mentioning once).