review-past-performance is an Agent Skill for running a rolling 24-hour retrospective over recent agent work. It helps an agent identify repeated mistakes, inefficient tool use, permission friction, missed ideas, and workflow bottlenecks, then produce actionable review artifacts that can be approved and implemented later.
The skill is designed for daily use, usually near the start of the workday. It is intentionally approval-first: review mode may create reports and proposed artifacts, but it must not apply changes to memories, repositories, automations, permissions, scripts, or hooks unless the user explicitly approves implementation.
Copy the review-past-performance/ folder into an Agent Skills-compatible skills directory for your tool.
For OpenAI/Codex-style setups, install the skill into the user skills directory configured by your environment.
For Claude Code, install the skill as either a personal skill:
~/.claude/skills/review-past-performance/
or a project skill:
.claude/skills/review-past-performance/
This repository intentionally does not include a .claude/skills/ copy of the skill, because review-past-performance/ is already the package source. Copy or symlink that folder into Claude Code's skills directory instead.
After installation, the skill can run without extra tooling. For larger histories, see Optional Indexer Example for a small adapter pattern your agent can customize to pre-build a compact session index.
Choose where reviews should go:
Use review-past-performance for this project. Put reports in reports/ and artifacts in artifacts/.
Run a review:
Launch review-past-performance now.
Run a date-specific review:
Launch a review of May 18th.
Launch a review of Tuesday.
For month/day prompts, the agent should normally use the current year unless context points elsewhere. For weekday prompts, the agent should normally use the most recent matching weekday, but it may ask if the intended date is ambiguous.
Implement one artifact:
Implement artifact RPP-YYYY-MM-DD-NNN.
Implement a whole day:
Implement all artifacts from May 18th.
Implement the latest pending artifacts:
Implement the latest artifacts.
Implement some artifacts and reject another:
Implement artifacts 001 and 002 from May 18th, and reject 003.
The skill runs as a two-phase loop.
In review mode, the agent inspects a rolling 24-hour window, gathers evidence from the available sessions, repositories, logs, and memory sources, then writes two outputs in the configured review workspace:
reports/YYYY-MM-DD-review.md
artifacts/YYYY-MM-DD-artifacts.md
The reports/ folder holds readable review summaries. A report explains the patterns: what slowed work down, what worked well, what should change, and which ideas are worth preserving.
The artifacts/ folder holds implementation queues. An artifact file turns review findings into implementable changes. Each artifact has an ID, type, priority, status, evidence, proposed change, target scope, persistence layer, implementation prompt, and verification step.
In implementation mode, the agent consumes approved artifacts and promotes them into the right durable surface. Depending on the artifact, that could mean updating a memory note, a repository instruction file, a skill reference, a helper script, an automation, a permission recommendation, or a local project backlog.
Artifacts move through a small status lifecycle:
proposed: created by a review and waiting for a decision.approved: explicitly approved for implementation later.implemented: applied to the right durable surface and verified.rejected: deliberately not worth doing.deferred: postponed because it needs more context, safer timing, or another decision.
Batch requests such as Implement all artifacts from May 18th should process proposed or approved artifacts, skip already implemented/rejected/deferred artifacts unless you explicitly include them, and update statuses as work lands.
Implement the latest artifacts means the agent should find the newest artifact bundle with pending proposed or approved items, state which file it selected, and avoid re-running completed work.
Review mode is deliberately read-mostly. It may create the review report and artifact file, but it should not apply those artifacts until you ask for implementation. Scheduled reviews should ignore their own review-only activity when deciding whether there was meaningful activity in the window.
- Recurring mistakes and avoidable rework.
- Inefficient tool use, broad searches, repeated failed commands, or missed parallelism.
- Permission friction and approval patterns.
- Repository-specific setup lessons, commands, hazards, and conventions.
- Cross-repository habits that should become durable guidance.
- Human-agent interaction bottlenecks.
- Project ideas and workflow inventions that should not be lost.
review-past-performance-skill/
.gitignore
CLAUDE.md
README.md
LICENSE
review-past-performance/
SKILL.md
agents/openai.yaml
references/review-artifacts.md
references/indexer-adapter.md
scripts/index_interactions_example.py
scripts/fixtures/sample-interactions.jsonl
examples/
sample-review-report.md
sample-review-artifacts.md
The example report and artifact bundle are synthetic. They are included to show the expected shape of outputs without exposing real conversation logs, repositories, paths, hosts, or memory content.
Schedule the skill at a time when your local environment and logs are available. A common pattern is once per day near the start of the workday, after your machine and agent environment are likely to be running.
For manual runs, or scheduled environments that reliably activate installed skills, this short prompt is usually enough:
Launch review-past-performance now.
For unattended scheduled runs, prefer a prompt that explicitly tells the agent to load the installed skill and reference files before writing outputs:
Use the installed review-past-performance skill. Before writing outputs, read and follow its SKILL.md and references/review-artifacts.md. Use the skill's Output Format for the report and the Artifact Schema exactly for artifacts, including persistence layer, sync targets, implementation prompt, and verification fields. Review agent interactions from the last 24 hours ending now. Ignore this review run and prior review-only activity from this workflow when deciding whether activity exists. Abort if there was no non-review activity in that window. If activity exists, write only reports/YYYY-MM-DD-review.md and artifacts/YYYY-MM-DD-artifacts.md in the configured review workspace. Do not apply artifacts or modify any files other than the report/artifact outputs unless explicitly asked.
You can also ask your agent to create the schedule for you:
Schedule review-past-performance to run every weekday at 9am using this prompt: "Use the installed review-past-performance skill. Before writing outputs, read and follow its SKILL.md and references/review-artifacts.md. Use the skill's Output Format for the report and the Artifact Schema exactly for artifacts, including persistence layer, sync targets, implementation prompt, and verification fields. Review agent interactions from the last 24 hours ending now. Ignore this review run and prior review-only activity from this workflow when deciding whether activity exists. Abort if there was no non-review activity in that window. If activity exists, write only reports/YYYY-MM-DD-review.md and artifacts/YYYY-MM-DD-artifacts.md in the configured review workspace. Do not apply artifacts or modify any files other than the report/artifact outputs unless explicitly asked."
Local scheduled runs require the machine, tool, and relevant logs to be available. Cloud or remote jobs may not be able to inspect local conversation logs or private workspaces unless those sources are explicitly available there.
Large interaction histories are easier to review when an agent can build a compact session index first. The package includes scripts/index_interactions_example.py as a synthetic, agent-agnostic adapter scaffold. Basic skill use does not require Python or any indexer.
The script is not a Codex, Claude Code, or vendor-specific parser. It reads synthetic JSONL fixture data and demonstrates the recommended --since, --until, --source-root, and --format text|json interface. Adapt the reader to the log or export format available in your own agent environment.
You can ask your agent to prepare a local indexer with a prompt like:
Use review-past-performance's optional indexer guidance to create a read-only local interaction indexer for my agent environment. Start from scripts/index_interactions_example.py as a reference, inspect how this environment exposes conversation/session exports, and adapt the reader only if a stable local source exists. Keep it optional, portable, and free of hardcoded private paths. It should accept --since, --until, --source-root, and --format text|json, then emit a compact session index for review-past-performance to use before deeper review.
Once an indexer exists, you can include it in review prompts:
Launch review-past-performance now. If the optional local indexer is available, use it first to build a compact session index for the review window, then inspect only the relevant sessions in detail.
agents/openai.yaml is optional metadata for OpenAI/Codex-style skill UIs. It is not required for Claude Code or other Agent Skills-compatible tools unless those tools explicitly support it.
The core SKILL.md follows the Agent Skills convention: a skill folder containing SKILL.md with name and description frontmatter.
CLAUDE.md is Claude Code project guidance for contributors working in this repository. It is not part of the skill package and does not replace installing review-past-performance/ under Claude Code's skills directory.
This skill was inspired by Eivind Kjosbakken's article, How I Continually Improve My Claude Code, which describes a practical loop for reviewing recent coding-agent work and feeding the lessons back into future sessions.
Thanks to Eivind for sharing the idea publicly. You can find him on LinkedIn and X / Twitter.
MIT. See LICENSE.