Tool

capture_concept

Concepts are source controlled — the repository's permanent memory. When something costs hours to learn, capture it before moving on. Later sessions get it handed to them automatically when they touch the files it applies to, and it is fact-checked against its own evidence so it cannot quietly go stale.

capture_concept name="UpsertKeysUniqueByConstruction" category="rule" invariant="A parser's emitted upsert keys must be unique by construction." relevance="file:///src/L1/formats/**" isUniversal=false verification="file:///src/L1/formats/Json/JsonParser.cs#symbol=Emit" ttlDays=90

Written to .repoql/concepts/rule/UpsertKeysUniqueByConstruction.md and committed with the code. From then on, anyone — human or agent — who opens a file under src/L1/formats/ is handed it.

Run it yourself

rql concepts capture --name UpsertKeysUniqueByConstruction

Or say it to your agent

“capture what we just learned about upsert keys as a rule for this repo”

Parameters

ParameterWhat it does
namerequiredA short CamelCase name. It is the identifier.
categoryrequiredwisdom, rule, or knowledge.
invariantrequiredThe idea, in one short sentence. If you need “and”, it is two concepts.
relevancerequiredURI globs. The concept surfaces when someone touches a matching file.
isUniversalrequiredWhether it also loads into the always-on index every agent carries. Earn it: only if the concept can be violated outside its relevance globs.
why · example · depthoptionalMechanism and stakes, a case that makes it click, and the distinctions and trade-offs behind it.
verification · ttlDaysoptionalGlobs or URLs that fact-check the claim, and how long that evidence stays trusted.

The three categories

CategoryWhat belongs there
wisdomTimeless ideas. Verification optional — do not tie them too tightly to the task that revealed them.
ruleInvariants and guardrails future work should follow. Verification encouraged.
knowledgeContext that improves decisions — architecture facts, file maps. Verification required, so it stays true.

What does not belong here

Anything specific to one person's workflow or one session's context — that is per-agent memory, not the repository's. And it is not a bug tracker: a first-party defect you can fix belongs in a fix. Third-party and platform constraints you cannot fix are exactly what it is for.

A worked example →

This page names what exists. The depth behind every name — the bounds, the failure modes, how they compose — ships inside the binary at help:///, and answers to explore and read exactly like your code does. Install it, and your agent has the manual.