SuperAPI AI Directory

capture-rule

Agents & models

View repository

Updated 10-15 19:58

About this skill

Capture Rule

Route durable knowledge to the home where it will auto-inject when next relevant.

Step 1 — Qualify the insight

Capture only knowledge that is reusable and non-obvious from code, git history, or existing instruction files: gotchas, build/tooling quirks, design invariants, conventions, the "why" behind a decision.

Skip (and tell the user why) if it is: a one-off fact for this task only, already documented in the repo, or plainly derivable by reading the code. If it does not qualify, stop here.

Establish the target repository the insight is about. If unclear, infer from the files touched this session and confirm with the user.

Step 2 — Route to a home

Pick exactly one:

Insight is about… Home
A specific repo's own code/tooling that repo's .claude/rules/<slug>.md
Target-repo files, but the rule must live in the harness workspace harness .claude/rules-ex/<slug>.md
The harness's own machinery harness .claude/rules/<slug>.md (often grow harness-internals.md)
Personal/cross-project preference, feedback, or machine-local fact auto-memory (MEMORY.md + memory/)

If the home is auto-memory, do not write a rule — tell the user it belongs in memory and stop.

Step 3 — Dedup

Search the chosen directory for an existing rule on the same topic. If one exists, update it instead of creating a new file. One topic = one file.

Step 4 — Write the rule

Use a kebab-case slug. The body below the frontmatter is exactly what gets injected — keep it focused and imperative.

.claude/rules (native, lives in the repo it governs):

  • paths: is optional. Omit it to inject on every file touched in that repo; add repo-relative globs to scope it. Matching is permissive (an implicit leading **/ is tried), so src/** also matches nested paths.
---
paths:
  - "src/**/*.ts"
---
<the insight, imperative and focused>

.claude/rules-ex (extended rules, lives in the harness workspace):

  • paths: is required (a rule without it is skipped). Globs are workspace-relative — use .. to reach sibling repos. Matching is strict and root-anchored (no implicit **/); use ** for any depth. * also works as the repo-name segment itself, for an insight that applies to any sibling repo rather than one specific one.
---
paths:
  - ../<repo>/plugins/**/*.mjs
---
<the cross-cutting insight>

Cross-repo example (applies to every sibling repo, not just one):

---
paths:
  - ../*/.github/workflows/**
---
<an insight that applies to any repo's GitHub Actions workflows>

If the harness has .claude/rules/rules-ex-authoring.md or harness-internals.md, consult them for the full extended-rules mechanics before writing there.

Step 5 — Wrap up

Report the file path written or updated. Suggest committing it (Conventional Commits: docs: or chore:). No plugin version bump is involved — rules and memory are content, not plugin code.