agent-notes
Skill2 starsChanged 27 days agoMITView on GitHub
Use when deciding whether to write an Agent Note (a durable design decision or proposal record), when adding, moving, consolidating, auditing, pruning, archiving, or reviewing Agent Notes under .agents/notes/, and for the supersession check every new note requires.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- CherryHQ/cherry-studiotheir own version, first seen Oct 25, 2026
- 1lck/Lithe-IDEAtheir own version, first seen Oct 8, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- CherryHQ/cherry-studio★ 53ksame name
- 1lck/Lithe-IDEA★ 2.6ksame name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- agent-experienceSkill
- code-reviewSkill
- docs-standardSkill
- error-handlingSkill
- find-simplificationsSkill
- lifecycle-reviewSkill
- perf-evidenceSkill
- pre-push-checksSkill
- prose-standardSkill
- record-browser-gifSkill
- responsive-uiSkill
- stacked-prsSkill
- test-reliabilitySkill
- trim-cot-leakageSkill
- ui-ux-reviewSkill
- upgrade-guideSkill
- vibe-harness-bootstrapSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 13 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
If an active note already owns the decision, update it instead of creating a duplicate.
- Very specific: line 21
Use the exact header and the lifecycle's section skeleton from the README.
- Distinctive: line 22
Write implemented notes in the present tense as shipped reality: no plans, acceptance checklists, or "should".
- Very specific: line 27
Before drafting, search the active tree (proposed/, implemented/, rejected/) for notes covering the same decision, mechanism, or rejected …
- Distinctive: line 30
Partial supersession: keep both active, cross-link them, and update every fact that remains current.
- Distinctive: line 32
Obsolete rejection: delete it when it no longer prevents a plausible mistake.
- Distinctive: line 34
Do not defer a known match to a later audit.
- Distinctive: line 38
When auditing or pruning, establish whether each rationale still owns or constrains anything from current code, configuration, module docs, …
- Distinctive: line 43
Proposed, never archive: keep a live proposal active.
- Distinctive: line 45
Rejected, delete: delete the note, with any translated counterpart, when the rejected idea is obsolete, superseded, no longer plausible, or …
- Distinctive: line 47
Do not archive toward a quota.
- Distinctive: line 51
Delete a note about a collapsed sidebar control's styling however long it is, and a note that records a completed function relocation with …
- Distinctive: line 53
Keep a rejected note recording why two packages must not be merged while merging them remains tempting.
- Distinctive: line 59
Search active prose for inbound links.
- Distinctive: line 61
After archival, never edit, move, translate, reformat, or delete the note.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Agent Notes
Agent Notes keep the decision corpus small and authoritative: each note records rationale that code and documentation cannot carry, and nothing else. The rules for layout, classes, and the in-file format live in .agents/notes/README.md; this skill owns the workflow. Judge every note semantically; word count and age are discovery aids, never criteria. This is guidance, not a checklist.
Decide whether a note is needed
Write or update a note only for lasting decision rationale: why one design won, what it gave up, which alternatives lost and why, and what verification pins it. Do not write one for mechanical or local edits, including local UI presentation changes, or for facts that belong in code, API docs, READMEs, or a cookbook.
- A proposal for substantial future work goes to
proposed/<class>/; a decision made in the current change goes toimplemented/<class>/. - If an active note already owns the decision, update it instead of creating a duplicate.
- A reversal of a decision is a new note that cross-links the old one; never edit a note into a different decision.
Write the note
- Choose the class from the table in
.agents/notes/README.mdand name the fileyyyy-mm-dd-topic-title.md, using the date the topic was first proposed. - Use the exact header and the lifecycle's section skeleton from the README.
## Alternatives consideredis mandatory: record each genuine alternative and why it lost; never invent alternatives. - Write implemented notes in the present tense as shipped reality: no plans, acceptance checklists, or "should". Keep the verification that pins the behavior and any named coverage gaps.
- Link other notes and documents with relative Markdown links. Follow prose-standard and trim-cot-leakage: no review choreography, session citations, or change narration outside the note's own change-story sections.
Check supersession for every new note
Before drafting, search the active tree (proposed/, implemented/, rejected/) for notes covering the same decision, mechanism, or rejected alternative. Classify each match while writing the new note:
- Full supersession of an implemented note: consolidate under the consolidation rules in
.agents/notes/README.md(the new owner preserves every unique rationale, alternative, consequence, verification, and coverage gap, then the old note is deleted and inbound links are repaired; a feature-addition note folds into a removal note only when the feature is completely absent) or archive it in the same change. - Partial supersession: keep both active, cross-link them, and update every fact that remains current.
- Obsolete proposal: move it to
rejected/with an honest one-line reason. - Obsolete rejection: delete it when it no longer prevents a plausible mistake.
Do not defer a known match to a later audit.
Classify existing notes by future value
When auditing or pruning, establish whether each rationale still owns or constrains anything from current code, configuration, module docs, generated catalogs, newer Agent Notes, and inbound links. Then apply these outcomes per lifecycle:
- Implemented, delete: notes that only describe small UI adjustments or purely mechanical changes. Repair or remove inbound links. Local bug fixes, performance changes, new capabilities, and substantive behavior or ownership decisions do not qualify merely because their implementation was small. Apply this test before keep or archive.
- Implemented, keep active: rationale, alternatives, negative guarantees, durable or wire semantics, ownership boundaries, security rules, or reintroduction conditions likely to guide a future change. Classify the decision, not the mechanics of its implementation: a mechanical rename or type extraction can still record a lasting naming, compatibility, or ownership rule.
- Implemented, archive: a substantive historical decision that is complete and unlikely to guide future work, but whose rationale still warrants preservation.
- Proposed, never archive: keep a live proposal active; if it is no longer worth pursuing, reject it with an honest reason.
- Rejected, keep only as a guardrail: retain a rejection only while the losing proposal remains a tempting, meaningful mistake and the note explains why it loses.
- Rejected, delete: delete the note, with any translated counterpart, when the rejected idea is obsolete, superseded, no longer plausible, or unlikely to prevent re-litigation. Repair or delete inbound links.
Do not archive toward a quota. Inspect every note in scope, classify analogous groups under one principle, and record genuinely borderline decisions for the report.
Calibration:
- Delete a note about a collapsed sidebar control's styling however long it is, and a note that records a completed function relocation with unchanged behavior.
- Keep active a note establishing that sessions are event-sourced, or naming the single owner of a storage directory, however short it is; a borderline process note while it still guides tuning; and a note that states the condition for reintroducing a removed capability until that condition is met.
- Keep a rejected note recording why two packages must not be merged while merging them remains tempting; delete a rejected note whose premise is obsolete or whose question a later decision settled.
Archive an implemented note
- Move the complete note, with any translated counterpart, from
implemented/<class>/toarchived/<class>/. - Make no body edits. Insert only
Archived: YYYY-MM-DDimmediately belowStatus: implementedin each language file, with the same date. Do not translate, reformat, update facts, or fix title punctuation or layout first; existing formatting is preserved, not a prerequisite for archival. - Search active prose for inbound links. Redirect them to current authority, retarget them to the archived path only when the historical snapshot is intentionally cited, or delete them. Never verify or repair links out of the archived note.
After archival, never edit, move, translate, reformat, or delete the note. Archived notes remain valid link targets but are not authority for current behavior.
Validate and report
Run the profile's commands.docs-check and git diff --check, and confirm that every changed relative link in active prose resolves; select any further evidence through pre-push-checks. Link checking should skip outbound links from .agents/notes/archived/. If commands.docs-check reports a broken link inside an archived note, report it instead of editing the note, and never claim archived outbound links are valid. Report notes created or updated, notes kept active, deleted, archived, or rejected, and every borderline case with the chosen outcome.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

