Skip to content
Back to skills

Capture Rule

ASecurity

Capture a reusable, non-obvious project insight into the rules home where it will auto-inject in future sessions. Use when investigation or implementation surfaces knowledge worth persisting (a gotcha, a convention, the "why" behind a decision), or when the user asks to remember a project learning.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 3, 2026
developmentgogit

Works with

  • cli

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add atman-33/workhub --skill capture-rule --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Capture Rule?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Capture Rule
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/atman-33-capture-rule/badge)](https://www.skillsdirectory.com/skills/atman-33-capture-rule)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: capture-rule
description: Capture a reusable, non-obvious project insight into the rules home where it will auto-inject in future sessions. Use when investigation or implementation surfaces knowledge worth persisting (a gotcha, a convention, the "why" behind a decision), or when the user asks to remember a project learning.
argument-hint: The insight to capture, and which repository it applies to.
---

# 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:

The question is **when the insight has to reach a session**, not what it is
about. There are three answers, and they are exhaustive:

| It has to arrive… | Home |
|---|---|
| when a matching **file is touched** — a constraint about particular code | that repo's `.claude/rules/<slug>.md` |
| the same, but the rule cannot live in that repo | harness `.claude/rules-ex/<slug>.md` |
| when the **question** makes it relevant — everything else durable | the vault's `memory/notes/`, as a typed note |

A rule fires on a path and costs nothing until that path is opened; a memory
note is found by searching and costs nothing until someone looks. Anything
that does not need to arrive *while a specific file is open* belongs in memory,
where it is typed, searchable, in git and checked by `memory-doctor`.

If the home is `memory/notes/`, do **not** write a rule file. Write the note
(`cli.mjs new lesson "…"` from the `memory` plugin), or tell the user that is
where it belongs and stop.

Auto-memory is deliberately not on this list. It is per-project, local,
invisible and outside git — `memory/notes/` does the same job better on every
axis, and keeping both would mean choosing between them every time, which is a
routing decision with no rule behind it.

Knowledge about the harness's own machinery is a memory note too, unless it has
to fire on a path — the vault's `.claude/rules/vault-harness-local.md` is the
home for the ones that do. Never write to `vault-harness.md` beside it: that
file is app-managed, so an edit turns into a conflict on the next template
update and ends up in a `.bak` nobody reads.

## Step 3 — Dedup

Search the chosen home for an existing rule or note on the same topic. If one
exists, **update it** instead of creating a second. 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.

```markdown
---
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). Two glob forms:
  **project-name globs (preferred)** — start with the NAME of a project
  registered in `.claude/project-context.json` (`<project-name>/src/**`); the
  rest matches the file's path relative to that project's root, independent of
  machine layout. **Cwd-relative globs** — walk up with `..` from the workspace
  root to reach the repo (`../<repo>/**` for sibling repos, or e.g.
  `../../repos/<repo>/**` from an Obsidian vault under `C:/obsidian/`); use for
  repos not registered in project-context.json. Matching is **strict and
  root-anchored** (no implicit `**/`); use `**` for any depth. `*` also works
  as the project/repo-name segment itself, for an insight that applies to
  *any* repo rather than one specific one.

```markdown
---
paths:
  - <project-name>/plugins/**/*.mjs
---
<the cross-cutting insight>
```

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

```markdown
---
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 an internals notes
file (`harness-internals.md` / `vault-harness.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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.