An agent can learn during a conversation and still repeat the same mistake in the next one. The correction lived in the chat, not in the project.
The remedy is simple: make each useful correction outlive the session. Put
project-specific guidance in the file your coding agent reads when it starts:
AGENTS.md for Codex, CLAUDE.md for Claude Code, or the equivalent file for
your tool. Keep the filename your agent actually supports; the principle is
the same.
You’ve met this file before: it’s the team style guide, agreed once and referenced forever. The teammate reading it is now an agent.
Write down behavior, not wishes
A useful instruction tells the agent what to do at a recognizable moment:
| Too vague | Useful next session |
|---|---|
| Be careful with verification. | Reproduce the bug and show the failure before changing code. |
| Keep changes focused. | Record unrelated findings; do not add them to the current diff. |
| Use the right vault folder. | Recurring topics go in topics/; active/ is only for work with an endpoint. |
The right rule is usually small. It records a real convention, command, stop condition, or check. It does not try to describe an ideal project that does not exist.
The Agent Workflow Failure List came from measured failures in real sessions. Use it as a menu: keep the entries you have actually encountered and ignore the rest.
Put each lesson at the right level
Not every lesson belongs in the project instruction file.
- A project instruction records a fact or rule for this repository: how to run tests, where files belong, what must not change, or when the agent must stop.
- A skill packages a repeatable workflow that should work across projects: reviewing prose, preparing a release, or checking a pull request against a failure list.
- A small tool or hook handles the parts a program can check reliably: validating JSON, finding broken links, or running a linter after an edit.
This creates a useful path: a correction starts as a sentence, becomes a skill when the whole workflow repeats, and becomes code where judgment is no longer needed.
Skills do not need to be copied separately into every agent. The open-source
skills CLI can install one managed skill for the agents you use:
npx skills add chronick/lemon-agent --global \
--agent codex claude-code --skill agent-workflow-failure-list --yes
Use npx skills to discover, add, list, and update skills. Keep authored skill
files in their source repository; let the installer manage the copies your
agents load.
Try it
Do it yourself
- Think of the last correction you gave your agent twice.
- Find the instruction file the agent actually reads for this project.
- Add one plain sentence that would have prevented the second correction.
- Ask the agent to show the diff. Remove anything aspirational or unrelated.
Five useful lines beat a page of generic advice. Add instructions when real work earns them, and prune rules that no longer describe the project.
Try it with your agent
Review this session for corrections, project conventions, and repeated
workflows that should survive the conversation. For each one, recommend one
home: this project's instruction file (AGENTS.md, CLAUDE.md, or the supported
equivalent), a reusable skill, or a deterministic tool or hook. Explain the
choice in one sentence. Draft only the smallest useful change, show me the
diff, and do not document conventions that the project does not yet follow.
Watch out
- A policy dump: long generic instructions become wallpaper. Prefer a few rules tied to decisions this project actually makes.
- Documentation ahead of reality: if the files and the instructions disagree, either change the project first or document the project as it is.
- Chat-only learning: “I will remember” is not persistence. Put the lesson somewhere the next session will read or run it (AF-19).