Persist guidelines, conventions, and architectural decisions into the repository's knowledge base. Use when told to remember something for future sessions.
Persist new guidelines, best practices, or architectural decisions into the repository's knowledge base so they are available in future AI sessions.
thing to remember (required): A guideline, convention, or decision to
persist. Natural language input describing what should be remembered./remember always use the --frozen-lockfile flag in CI/remember the auth module was refactored to use middleware in PR #342/remember integration tests must hit a real database, never use mocksDetermine which file should contain this knowledge. Repositories follow a layered structure, preferring tool-agnostic paths when they exist:
| Intent type | Preferred target | Fallback |
|---|---|---|
| Project-wide convention or standard | AGENTS.md | CLAUDE.md |
| Domain-specific best practice (testing, components, API design, etc.) | rules/ or docs/conventions/ | See resolution rules |
| Change to an automated workflow or skill | .agents/skills/ | .claude/skills/ |
| Agent behavior guideline | .agents/agents/ | .claude/agents/ |
| Claude-specific configuration (MCP, hooks, permissions) | CLAUDE.md | — |
Resolution rules:
rules/ or docs/conventions/ existsrules/docs/conventions/ exists, ask the user whether they want to
create a symlink from rules/ to docs/conventions/ so both paths
resolve to the same location. If they confirm, create the symlink before
writing.rules/ and write there.agents/skills/ or .agents/agents/: Use the .claude/ equivalent
if the .agents/ directory does not existAGENTS.md: Use CLAUDE.md if AGENTS.md does not existCLAUDE.md or .claude/ directly when the information is
Claude-specific or no tool-agnostic target existsAGENTS.md, also scan CLAUDE.md and vice versa). If the other layer
contains conflicting or duplicated content, resolve it by replacing that
content in CLAUDE.md with a reference to AGENTS.md (e.g.,
"See AGENTS.md for project conventions.")If a conflict is found:
If no conflicts are found:
When writing the update:
After successfully updating documentation, discover which skills may need
updates by scanning skill files in .agents/skills/*/SKILL.md and
.claude/skills/*/SKILL.md (whichever exist). When reading skill files, resolve
symlinks to access the actual content rather than treating symlinks as empty or
opaque files.
Discovery criteria — a skill is affected if it contains:
If no skills are affected, skip this step.
For each affected skill, determine whether it is local or shared:
A skill is shared if it is a symlink pointing outside the current repo or
was installed by a package manager and has not been modified locally. A skill is
local if it was authored or edited in this repo. Symlinks between
.claude/skills/ and .agents/skills/ within the same repo are internal
bridges and do not affect this determination.
Local skills — edit directly:
Shared skills — report and offer to update:
Report the affected shared skill and the specific inconsistency to the user
Ask: "Shared skill <skill-name> is affected. Add repo-specific additions?"
If the user confirms:
Resolve the original shared skill path (the symlink target or CLI cache location where the shared skill was installed)
Determine which layer to use:
If .agents/skills/ directory exists:
Create or update .agents/skills/<skill-name>/SKILL.md with repo-specific
additions listed before the shared skill reference, so local rules take
priority:
---
name: <skill-name>
description: <same description as the shared skill>
allowed-tools: <same allowed-tools as the shared skill>
---
## Repo-specific additions
- <the new convention or guideline>
## Shared skill
Read and follow the shared skill at `<original-shared-skill-path>`.
Then ensure .claude/skills/<skill-name>/SKILL.md is a symlink to
.agents/skills/<skill-name>/SKILL.md:
If .agents/skills/ directory does not exist:
Create or update .claude/skills/<skill-name>/SKILL.md directly with the
same structure (repo-specific additions before the shared skill reference).
If the user declines, log the inconsistency in the final confirmation but take no action
Report all changes made:
<skill-name>/ subdirectory if needed
but do NOT create .agents/ or .agents/skills/ directories — only use them
if they already exist