Reflect on Session Learnings
cursor/plugins
Starts three parallel reviewer subagents over the current conversation transcript, then turns their findings into concrete edits to existing skills.
Turns a saved agent trajectory into a reusable skill with a SKILL.md and supporting scripts, so later sessions can call the workflow instead of rediscovering it.
$ npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgentToolkit/altk-evolve synthesize-skill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/AgentToolkit/altk-evolve.git skills-src && mkdir -p .claude/skills && cp -r skills-src/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill .claude/skills/synthesize-skill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "synthesize-skill" agent skill from https://github.com/AgentToolkit/altk-evolve/tree/main/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill into .claude/skills/synthesize-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-skill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/AgentToolkit/altk-evolve/tree/main/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgentToolkit/altk-evolve synthesize-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgentToolkit/altk-evolve.git skills-src && mkdir -p .agents/skills && cp -r skills-src/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill .agents/skills/synthesize-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "synthesize-skill" agent skill from https://github.com/AgentToolkit/altk-evolve/tree/main/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill into .agents/skills/synthesize-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-skill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgentToolkit/altk-evolve synthesize-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgentToolkit/altk-evolve.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill .cursor/skills/synthesize-skill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "synthesize-skill" agent skill from https://github.com/AgentToolkit/altk-evolve/tree/main/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill into .cursor/skills/synthesize-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-skill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/AgentToolkit/altk-evolve.git --path platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgentToolkit/altk-evolve synthesize-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgentToolkit/altk-evolve.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill .gemini/skills/synthesize-skill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "synthesize-skill" agent skill from https://github.com/AgentToolkit/altk-evolve/tree/main/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill into .gemini/skills/synthesize-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-skill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install AgentToolkit/altk-evolve synthesize-skillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgentToolkit/altk-evolve.git skills-src && mkdir -p .github/skills && cp -r skills-src/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill .github/skills/synthesize-skill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "synthesize-skill" agent skill from https://github.com/AgentToolkit/altk-evolve/tree/main/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill into .github/skills/synthesize-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-skill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgentToolkit/altk-evolve synthesize-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgentToolkit/altk-evolve.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill .opencode/skills/synthesize-skill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "synthesize-skill" agent skill from https://github.com/AgentToolkit/altk-evolve/tree/main/platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill into .opencode/skills/synthesize-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesize-skill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
synthesize-skillTurns a saved agent trajectory into a reusable skill with a SKILL.md and supporting scripts, so later sessions can call the workflow instead of rediscovering it.
The skill reads a saved trajectory and writes a skill that captures the successful path the session found, placing it under .evolve/skills/ in a folder named for the skill. It is the executable counterpart to the learn skill: learn writes Markdown advice the next agent must interpret, while this one produces something the next agent can simply invoke. Suitable trajectories show a trial-and-error workflow that worked, a script rebuilt over several attempts, or an environment workaround.
It skips cases where the winning path was one trivial command, where the workflow embeds secrets or one-off inputs, or where a skill with the same trigger already exists. It runs in a forked context and cannot see the parent conversation, so it takes the trajectory path from its arguments or the invoking message, falling back to the newest transcript in .evolve/trajectories/. With none found, it produces nothing rather than inventing one. A scripts/synthesize.py file is bundled.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9e5bb56. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Trajectory Skill Synthesizer loads about 2.2k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 1,176 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from AgentToolkit/altk-evolve at commit 9e5bb56, republished under its Apache-2.0 licence (© AgentToolkit). 1,176 words, ~2,244 tokens.
.claude/skills/synthesize-skill/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This skill reads a saved trajectory and produces a reusable agent skill — a SKILL.md plus any supporting scripts — that captures the successful workflow the session discovered. The output goes to .evolve/skills/<skill-name>/ (canonical, evolve-managed). Future sessions on the same project can then invoke the skill directly instead of re-deriving the workflow.
This is the executable counterpart to the learn skill's free-text guidelines: learn writes Markdown the next agent has to read and decide what to do; synthesize-skill writes a skill the next agent can simply call.
Use this skill when a trajectory captured:
Skip this skill — and let learn cover the case with a guideline alone — when:
.evolve/skills/ (use learn's guideline path to refine the existing skill instead of creating a duplicate).This skill runs in a forked context. You cannot see the parent conversation directly — read the trajectory the parent passed in via args or via the Run evolve-lite:synthesize-skill on <path> instruction.
The trajectory path is either:
args to the skill invocation, orThe saved trajectory path is: <path> — take everything after the colon, strip surrounding whitespace and quotes.If neither is present, scan .evolve/trajectories/ for the most recently modified claude-transcript_<session-id>.jsonl and use that. If .evolve/trajectories/ does not exist or is empty, output zero artifacts and exit — do not invent a trajectory.
Read the trajectory with the Read tool — do NOT shell out. The transcript is JSONL: one JSON object per line. Filter for "type": "assistant" and "type": "human" records and reconstruct the flow from message.content.
Walk the trajectory and locate the final, working tool sequence — the one that actually produced the answer. Distinguish it from the trial-and-error leading up to it.
Capture:
Triggers section so the future agent knows when to reach for this skill instead of the failing approaches.If no clearly successful workflow is in the trajectory (the session ended without reaching an answer, or the answer came from a single trivial call), output zero artifacts and exit.
The skill name must be:
extract-exif-metadata, parse-cloudwatch-logs, restart-stuck-deploy).evolve/skills/The skill description (one line, in the SKILL.md frontmatter) should describe the task the skill solves, not the trajectory it came from. Bad: "Solves the focal-length question from session abc123." Good: "Extract EXIF metadata (focal length, GPS, lens, timestamps) from JPEG/HEIC images using Pillow when system EXIF tools are unavailable."
The trigger (in the SKILL.md body, under ## When To Use) should describe the broad task context, not the narrow original request — same rule as the learn skill's guidelines.
Before continuing, list .evolve/skills/ (use the Glob tool, not find / ls) and confirm your chosen name does not collide with an existing skill.
Author a SKILL.md with this exact frontmatter shape — the validator in Step 5 will reject it otherwise:
---
name: <kebab-case-name>
description: <one-line task description>
---
# <Title Case Name>
## Overview
<1–2 sentences: what the skill does and when to use it>
## When To Use
- <trigger 1>
- <trigger 2>
## Workflow
<step-by-step instructions for the agent>Notes:
context: fork is omitted for synthesized skills. They run in the parent context so they can write files into the workspace and report back.scripts/ file (Step 4) and reference it from the SKILL.md.If the successful workflow used a non-trivial script (more than a one-liner), write it as a sibling file under scripts/ of your draft skill directory. Use the already-validated code from the trajectory — do not invent variations. Strip incidental one-off inputs (literal file names, IDs, hard-coded outputs) and replace with arguments or stdin where appropriate.
Common shape:
.evolve/skills/<name>/
├── SKILL.md
└── scripts/
└── <action>.py # callable as `python3 scripts/<action>.py <args>`If the workflow was a sequence of shell commands rather than a script, encode it as an executable shell script (scripts/<action>.sh) so future agents can invoke it as a single unit instead of replaying each command.
If no non-trivial script is needed (the workflow is a sequence of standard tool calls), skip this step — the SKILL.md alone is the skill.
Place your draft files (SKILL.md and any scripts) under a temporary directory inside the workspace, e.g. /tmp/synthesized-<name>/, then call:
python3 "$(git rev-parse --show-toplevel 2>/dev/null || pwd)/plugins/evolve-lite/skills/evolve-lite/synthesize-skill/scripts/synthesize.py" finalize --src /tmp/synthesized-<name>/ --name <kebab-case-name> --trajectory <saved_trajectory_path>The script will:
name and description required; name must match --name)..evolve/skills/ (overwriting requires --force)..evolve/skills/<name>/ (canonical).synthesize_skill event to .evolve/audit.log recording the new skill, the source trajectory, and the timestamp.If the validator rejects the draft, fix the SKILL.md and retry — do not edit files under .evolve/skills/ directly.
After the script returns, list the destination directories with the Glob tool to confirm the files landed. Output a short summary:
--trajectory flag so the audit log records provenance; future maintainers can trace the skill back to the session that produced it.learn skill's guideline path instead.© AgentToolkit, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill of AgentToolkit/altk-evolve.
Open the folder on GitHubat commit 9e5bb56
Trajectory Skill Synthesizer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Trajectory Skill Synthesizer this skillAgentToolkit/altk-evolve | 122 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Reflect on Session Learningscursor/plugins | 10k | 5 repos | ~1.2k | Automated safety check: Pass | None | |
| Aiception Skill ExtractionNateBJones-Projects/OB1 | 4.7k | — | ~2k | Automated safety check: Notes | Custom licence | |
| Session Skill Mininggetcrew44/crew44 | 356 | — | ~5.3k | Automated safety check: Pass | MIT | |
| Skill CreatorAzure/azqr | 794 | 89 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase | 10k | 10 repos | ~3.5k | Automated safety check: Pass | MIT |
cursor/plugins
Starts three parallel reviewer subagents over the current conversation transcript, then turns their findings into concrete edits to existing skills.
NateBJones-Projects/OB1
Pulls reusable knowledge out of work sessions and turns it into new skills, checking existing notes and skills first to avoid duplicates.
getcrew44/crew44
Reviews past Codex or Claude Code sessions from a time range you choose and proposes skills to codify and memories to pin, as a summary plus structured JSON.
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
diet103/claude-code-infrastructure-showcase
A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.
alchaincyf/darwin-skill
Scores SKILL.md files on a nine-dimension rubric, then improves them in a keep-or-revert loop with independent judge agents, test prompts, git history and human checkpoints.
AgentToolkit/altk-evolve
Contrasts successful and failed agent runs of the same task and derives guidelines backed by evidence from transcripts, tool calls and outcome judgments.
AgentToolkit/altk-evolve
Copies a memory the agent just saved into the shared evolve store with a retrieval trigger, so it can be shared across a team and audited like other entities.
AgentToolkit/altk-evolve
Has the agent read a project wiki's AGENTS.md and pull the guidelines that fit the task it is about to start, instead of loading the wiki at session start.
AgentToolkit/altk-evolve
Reads a normalized Claude Code trajectory JSON and turns its errors and solutions into reusable guideline pages in wiki-twobatch/guidelines.
AgentToolkit/altk-evolve
Ingest one or more agent trajectories (raw bob/claude traces or normalized JSON) into an agent-wiki end-to-end — convert, summarize, extract guidelines, synthesize skills, optionally compare…
AgentToolkit/altk-evolve
Read a normalized Claude Code trajectory JSON and write an episodic summary page to wiki-twobatch/summaries/.
Categories
Turns a saved agent trajectory into a reusable skill with a SKILL.md and supporting scripts, so later sessions can call the workflow instead of rediscovering it. evolve/skills/ in a folder named for the skill. It is the executable counterpart to the learn skill: learn writes Markdown advice the next agent must interpret, while this one produces something the next agent can simply invoke.
Trajectory Skill Synthesizer fits situations like: promoting a hard-won workflow from a past session into a callable skill; capturing a script the agent had to rebuild over several attempts; saving an environment-specific workaround for later sessions in the same project.
Run `npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a claude-code`. Or copy the skill folder (platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill in AgentToolkit/altk-evolve) into .claude/skills/synthesize-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a codex`. Or copy the skill folder (platform-integrations/codex/plugins/evolve-lite/skills/evolve-lite/synthesize-skill in AgentToolkit/altk-evolve) into .agents/skills/synthesize-skill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgentToolkit/altk-evolve --skill synthesize-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/synthesize-skill, .gemini/skills/synthesize-skill, .github/skills/synthesize-skill and .opencode/skills/synthesize-skill in your project.
Going by SKILL.md and its folder, Trajectory Skill Synthesizer needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and git). Our summary lists: A saved trajectory file, such as those kept in `.evolve/trajectories/`; Python to run the bundled synthesize.py script.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Trajectory Skill Synthesizer is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Trajectory Skill Synthesizer: Reflect on Session Learnings (cursor/plugins, 10k stars), Aiception Skill Extraction (NateBJones-Projects/OB1, 4.7k stars), Session Skill Mining (getcrew44/crew44, 356 stars) and Skill Creator (Azure/azqr, 794 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgentToolkit (a GitHub organization) maintains it in AgentToolkit/altk-evolve, which has 122 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 7, 2026.
Source: AgentToolkit/altk-evolve on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.