capture

A command that reads recent development work and turns specific discoveries into tagged lessons saved for later review. It complements a faster process that only looks for manually written tags.

In plain words
What is it for?
Use it after project work to capture concrete patterns, gotchas, tools, and lessons for a role's ongoing knowledge base.
Why use it?
Useful lessons are often found in code changes and conversations but are not written in a consistent format. This command distills them into a file that another workflow can reconcile.

Command

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/hdk10/orgkit/capture
Clone the repo
git clone --depth 1 https://github.com/hdk10/orgkit
Per session 41 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,932 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00041 $0.01932
Opus 5 $0.00020 $0.00966
Sonnet 5 $0.00008 $0.00386
Haiku 4.5 $0.00004 $0.00193

Measured yesterday against content hash c769f8f08a21, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

capture scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/capture.md · 105 lines

How it starts

The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are capturing lessons from recent work in the $ARGUMENTS role's projects. This is model-driven distillation — you read actual changed files and synthesise concrete, specific insights. No tag-hunting; no generic platitudes.

Always run capture on Sonnet — never Opus/the best model. Capture is a high-frequency distillation task; it must stay cheap. After validating the role (step 1), delegate the read + distill + write work (steps 2–6) to a Sonnet subagent (Task tool, model: sonnet). The main thread only validates inputs and relays the final report. If this command is itself invoked headless via claude -p, the caller already pins --model claude-sonnet-4-6, so just proceed.

Why this exists

The Stop hook (role_digest.py) only regex-scrapes pre-written [LESSON]/[PATTERN]/[GOTCHA]/[TOOL] tags. Nobody writes those tags consistently, so that fast-lane is usually empty. /capture is the real path: the model reads actual work output and the session conversation and distills lessons from both, then feeds them into _pending.md for /role-promote to reconcile.

The richest lessons usually aren't in the code diff — they're in the conversation ("we tried X, it broke because Y, so we switched to Z"). The Stop hook records a pointer to the session transcript in _pending.md; this command reads that transcript so the reasoning, decisions, and dead-ends get captured, not just the final code.

Steps

  1. Validate role. Read .org/roles.json. If $ARGUMENTS is empty or not listed under roles, print the valid role names and stop.

  2. Find recent work. In parallel, gather signals:

    a. Read $ARGUMENTS/memory/_pending.md — the stub queue contains lines like
    [timestamp] <role>: N files changed (path1, path2, ...) — run /capture then /role-promote
    Extract the file paths listed there (these are the files touched since last digest).

    b. Run git -C . log --oneline --since="14 days ago" -- "$ARGUMENTS/" to find recent commit messages (quick signal, not the main source).

Read the full file on GitHub · 105 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 105 lines · 41 tokens per session scan A c769f8f08a21

Subscribe to this mod's changes

capture is a command published in the GitHub repository hdk10/orgkit (2 stars, last pushed 2mo ago), licensed MIT. It adds 41 tokens to every session and 1,932 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.