apply-turbo-handoffs
Audit the turbo skill lessons that /self-improve writes into this repo's .turbo/handoff/ from other projects, apply the ones the…
Extract lessons from the current session, or sweep the project's past sessions when asked, and route them to the appropriate knowledge layer (project AGENTS.md, auto memory, existing skills, or new skills). Use when the user asks to \"self-improve\", \"distill this session\",
Claude Code
$ npx -y skills add tobihagemann/turbo --skill self-improve --agent claude-code
Codex
$ npx skills add tobihagemann/turbo --skill self-improve -a codex -y
Cursor
$ npx skills add tobihagemann/turbo --skill self-improve -a cursor -y
Gemini CLI
$ npx skills add tobihagemann/turbo --skill self-improve -a gemini-cli -y
GitHub Copilot
$ npx skills add tobihagemann/turbo --skill self-improve -a github-copilot -y
OpenCode
$ npx skills add tobihagemann/turbo --skill self-improve -a opencode -y
Windsurf
$ npx skills add tobihagemann/turbo --skill self-improve -a windsurf -y
name: self-improve description: "Extract lessons from this session or past sessions and route them to instructions, memory, or skills. Use when the user asks to \"self-improve\", \"extract lessons\", or \"what did we learn\"."
Review the current conversation, or the project's past sessions when asked, to extract durable lessons and route each one to the right knowledge layer.
Available destinations:
Discover the project CLAUDE.md/AGENTS.md files (the root file and any nested ones in subdirectories) and read them, then read MEMORY.md. When those files point at a knowledge base the repo maintains, read its index too; it is a documentation source for Step 3 rather than a routing destination. List all skill directories with the `description` frontmatter of each SKILL.md, but leave the bodies unread until Step 2.
Read the top-level `checkout` key from `~/.turbo/config.json` when the file exists. When it names a directory holding `claude/skills/`, that directory is the user's Turbo clone or fork. Treat any other value as unset, and say so in the Step 5 routing plan.
When `${CLAUDE_SKILL_DIR}/../../.claude-plugin/plugin.json` exists and names the plugin `turbo`, the Turbo plugin's skills folder is `${CLAUDE_SKILL_DIR}/..`. Otherwise this skill runs from an override or a leftover copy, no folder is known to be Turbo's, and only a `turbo:` invocation marks a turbo skill. Classify every skill this session touched by where it was loaded from, never by its name alone:
**Exception:** If the current project IS the turbo repo (i.e., the working directory contains this skill collection), route turbo skill lessons through the **Existing user/project skill** destination in Step 4 — edits go directly to `claude/skills/<name>/` in the project, with no handoff and no contribution flow.
**Verification rule (mandatory before routing in Step 4):** For every candidate skill that is about to be routed as turbo and ran in this session, find the load that ran it in this session's record: a `turbo:` Skill tool invocation, the base directory a load reported, or a `SKILL.md` read. Confirm that the load came from the Turbo plugin's skills folder. For a candidate that did not run, confirm that `<Turbo plugin's skills folder>/<name>/SKILL.md` exists and that no skill of that name exists in `~/.claude/skills/` or the project. Do not rely on a name match, remembered listings from earlier in the session, or filename hits in grep output: a personal or project skill of the same name is an override, not the turbo skill. Classify a candidate that fails this rule again by the bullets above. The rule applies under the exception above too.
**Skip** when the conversation is visible in full from the user's own first message.
When it starts from a summary of earlier work instead, recover the compacted turns from the on-disk transcript. Spawn a single subagent (`model: "opus"`, no `name`). Wait for it to report before continuing; do not relaunch it if it has not yet reported. The subagent's prompt must include:
1. The absolute path of the project root 2. A distinctive phrase from the visible conversation, for confirming which transcript belongs to this session 3. An instruction to read `${CLAUDE_SKILL_DIR}/references/transcript-miner.md` for transcript location, extraction, and output format
Treat the returned items as raw evidence for the scan below.
**Run** when asked to distill sessions beyond the current one: read [references/past-session-sweep.md](references/past-session-sweep.md) and follow it. **Skip** otherwise.
Before scanning for lessons, identify which skills were loaded during this session:
Scan the full conversation with th
Reusable workflows for planning, building, reviewing, and shipping with Claude Code and Codex.
Audit the turbo skill lessons that /self-improve writes into this repo's .turbo/handoff/ from other projects, apply the ones the…
Apply findings by making the suggested code changes. Applies accepted verdicts, escalates ambiguous findings to the user, and…
Assess project-wide structural technical debt: complexity hotspots, deprecated API usage, duplication clusters, architecture rot,…
Shared changelog conventions and formatting rules referenced by /create-changelog and /update-changelog. Not typically invoked…
Enforce existence, reuse, mirror, and symmetry principles to keep new code minimal and consistent with surrounding code. Use when…
Run autonomous task execution using the codex CLI. Use when the user asks to \"codex exec\", \"run codex exec\", \"execute a task…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.