Analyze Trajectory
yologdev/yoyo-evolve
Diagnoses a recurring failure such as a stuck task, repeated CI error or frequent reverts by sending sub-agents through the logs and returning one root-cause diagnosis.
Diagnoses which of three failure modes a stalled AI-assisted build is in, then chooses a targeted fix, a hard reset or a rethink instead of more prompting.
$ npx skills add jsmastery-pro/jsm-agent-skill --skill recover -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill recover --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/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/recover .claude/skills/recover && 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 "recover" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/recover into .claude/skills/recover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recover", 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/jsmastery-pro/jsm-agent-skill/tree/main/skills/recoverType 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 jsmastery-pro/jsm-agent-skill --skill recover -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill recover --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/recover .agents/skills/recover && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "recover" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/recover into .agents/skills/recover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recover", 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 jsmastery-pro/jsm-agent-skill --skill recover -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill recover --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/recover .cursor/skills/recover && 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 "recover" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/recover into .cursor/skills/recover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recover", 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/jsmastery-pro/jsm-agent-skill.git --path skills/recover--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 jsmastery-pro/jsm-agent-skill --skill recover -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill recover --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/recover .gemini/skills/recover && 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 "recover" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/recover into .gemini/skills/recover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recover", 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 jsmastery-pro/jsm-agent-skill recoverInstalls 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 jsmastery-pro/jsm-agent-skill --skill recover -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/recover .github/skills/recover && 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 "recover" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/recover into .github/skills/recover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recover", 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 jsmastery-pro/jsm-agent-skill --skill recover -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill recover --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/recover .opencode/skills/recover && 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 "recover" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/recover into .opencode/skills/recover/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recover", 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.
recoverDiagnoses which of three failure modes a stalled AI-assisted build is in, then chooses a targeted fix, a hard reset or a rethink instead of more prompting.
The skill argues that endlessly prompting for fixes pollutes the session and makes the code worse, so it separates diagnosis from treatment. In the first step you describe what you expected, what happened instead and how many fix attempts you have made, since the attempt count shows whether this is a fresh problem or a session that has already gone wrong.
It then sorts the problem into one of three modes. A specific thing is broken: isolated, clear error, an early attempt, so a targeted fix. The session has gone wrong: fixes patch fixes and the context is full of failed attempts, so a hard reset rebuilds the feature in a clean context. The foundation is wrong: the code runs but misunderstands a core requirement, library API or architectural pattern, so the approach itself needs rethinking.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fd85d6a. 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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Build Failure Recovery loads about 1.8k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 805 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); files beside SKILL.md are not scanned.
The full file from jsmastery-pro/jsm-agent-skill at commit fd85d6a, republished under its MIT licence (© jsmastery-pro). 805 words, ~1,819 tokens.
.claude/skills/recover/SKILL.md (or your agent's skills folder).Not every problem is a bug. Not every bug needs debugging.
When something goes wrong with AI-assisted development, the instinct is to keep prompting — describe the problem, ask for a fix, get another broken version, describe that problem, ask for another fix. The session gets longer. The context gets polluted. The code gets worse.
The problem is not the code. The problem is not knowing what type of failure you are dealing with.
This skill diagnoses the failure first. Then it prescribes the right response. Those are two separate steps and they cannot be swapped.
The developer describes the problem. The skill listens before doing anything else.
Ask:
Describe what is wrong. Be specific:
- What did you expect to happen?
- What happened instead?
- How many times have you tried to fix it already?Read the answer carefully. The number of fix attempts is important — it tells you whether this is a fresh problem or a session that has already gone wrong.
Based on the description, determine which of three failure modes this is.
Signs:
What it means: This is a normal bug. It has a root cause that can be found and fixed precisely.
Response: Targeted fix — go to Step 3A.
Signs:
What it means: The session is polluted. More prompting will not help — it will compound the damage. The feature needs to be rebuilt in a clean context, not patched further.
Response: Hard reset — go to Step 3B.
Signs:
What it means: This is not a debugging problem. The approach needs to be reconsidered before any code is written. More implementation in the wrong direction makes things harder to untangle.
Response: Rethink — go to Step 3C.
Tell the developer which failure mode this is before proceeding:
This looks like Failure Mode [1/2/3] — [name].
[One sentence explaining why you identified it this way.]
Here is how we handle this:For Failure Mode 1.
Ask the developer to share:
Read the relevant code. Do not read the entire codebase — only what is directly relevant to the problem.
Identify the root cause before suggesting any fix. A root cause is the actual reason the problem exists — not a symptom of it.
State the root cause clearly:
Root cause: [specific explanation of why this is happening]
This is different from the symptom because: [explanation]Describe the fix that addresses the root cause. Not a workaround. Not a patch on top of broken code.
Fix: [what needs to change and why]
This will resolve the root cause because: [explanation]Wait for the developer to confirm before making any changes.
If the suggested fix does not resolve the problem — stop. Do not suggest another fix immediately.
Re-examine the root cause diagnosis. If the fix did not work, the root cause was probably wrong. Diagnose again from the beginning before trying again.
If two root cause diagnoses have both been wrong — this may actually be Failure Mode 2 or 3. Re-evaluate.
For Failure Mode 2.
This session has gone too far in the wrong direction
to recover by patching. The right move is a clean start.
This is not a failure — it is the correct response
to a polluted context. A fresh session with clear intent
will be faster than continuing here.Before the session ends, extract anything valuable from the current state:
Write this as a brief reset note:
## Reset Note — [Feature Name]
### What we were building
[Original feature description]
### What went wrong
[Honest summary of how the session went off track]
### What to avoid next time
[Specific approaches or patterns that did not work]
### Starting point for next session
[Where to begin fresh — what to keep, what to discard]Next steps:
1. Save this reset note somewhere accessible
2. End this session completely
3. Start a fresh session
4. Begin with /remember restore if memory exists
5. Approach [feature name] again with the reset note as context
Do not continue in this session.For Failure Mode 3.
The foundation being wrong means something was assumed that should not have been. Find it.
The core issue is not a bug — it is a wrong assumption:
Assumed: [what was assumed]
Reality: [what is actually true]
This means the current implementation cannot be fixed
by patching. The approach needs to change.Based on the correct understanding, describe what the approach should have been:
Correct approach: [description]
Key difference from current approach: [explanation]
What needs to be discarded: [what cannot be salvaged]
What can be kept: [what is still valid]A rethink needs the developer to understand and agree before any code changes. Present the analysis and wait for confirmation.
Does this diagnosis match your understanding?
If yes — we can start fresh with the correct approach.
If no — tell me what I am getting wrong.Only after the developer confirms does any rebuilding begin.
The worst thing you can do when something is broken is keep doing the same thing faster.
Diagnose first. Respond correctly. Different failures need different responses — and knowing which failure you are dealing with is more than half the solution.
© jsmastery-pro, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/recover of jsmastery-pro/jsm-agent-skill.
Open the folder on GitHubat commit fd85d6a
Build Failure Recovery 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 |
|---|---|---|---|---|---|---|
| Build Failure Recovery this skilljsmastery-pro/jsm-agent-skill | 218 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Analyze Trajectoryyologdev/yoyo-evolve | 1.9k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Orca Run Replayiflytek/skillhub | 5.2k | 4 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| LoopX Self Repairloopx-project/loopx | 6.2k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Verification Before Completionforyourhealth111-pixel/Vibe-Skills | 3.6k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Diagnosing Superpowers Sessionsobra/superpowers | 297k | 3 repos | ~1.7k | Automated safety check: Pass | MIT |
yologdev/yoyo-evolve
Diagnoses a recurring failure such as a stuck task, repeated CI error or frequent reverts by sending sub-agents through the logs and returning one root-cause diagnosis.
iflytek/skillhub
Answers questions about a past agent run from its recording, using causal graphs and replay, instead of reconstructing events from memory.
loopx-project/loopx
Diagnoses surprising LoopX behavior, such as stale recommendations or tiny progress, assigns it to the responsible layer and repairs it at the lowest durable level.
foryourhealth111-pixel/Vibe-Skills
Completion-evidence route used before claiming work is complete, fixed, passing, committed, or PR-ready.
obra/superpowers
Investigates a session where Superpowers went wrong, reads the transcripts on disk and produces an evidence-cited report, optionally prepared as a bug report for the maintainers.
bgauryy/octocode
Researches code with evidence: traces callers, imports and cross-repo links, diagnoses failures and reports findings with exact file and line references and a confidence label.
jsmastery-pro/jsm-agent-skill
Runs a short design conversation before coding: aligns on terms, works through the decisions that matter and ends with a plan you confirm.
jsmastery-pro/jsm-agent-skill
Run after building a UI component to record its background, border, radius and text classes in ui-registry.md so later components match what came before.
jsmastery-pro/jsm-agent-skill
Saves the essential state of a coding session to memory.md at the end, restores it at the start of the next one, and keeps secrets out of the saved notes.
jsmastery-pro/jsm-agent-skill
Compares a finished feature with its plan, the project's architecture and design rules, and production-readiness checks, then reports issues without fixing them.
Categories
Diagnoses which of three failure modes a stalled AI-assisted build is in, then chooses a targeted fix, a hard reset or a rethink instead of more prompting. The skill argues that endlessly prompting for fixes pollutes the session and makes the code worse, so it separates diagnosis from treatment. In the first step you describe what you expected, what happened instead and how many fix attempts you have made, since the attempt count shows whether this is a fresh problem or a session that has already gone wrong.
Build Failure Recovery fits situations like: A bug fix has failed more than once and the code is getting messier; deciding between patching, restarting a session or rethinking the approach; code runs but the behavior is fundamentally wrong.
Run `npx skills add jsmastery-pro/jsm-agent-skill --skill recover -a claude-code`. Or copy the skill folder (skills/recover in jsmastery-pro/jsm-agent-skill) into .claude/skills/recover in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jsmastery-pro/jsm-agent-skill --skill recover -a codex`. Or copy the skill folder (skills/recover in jsmastery-pro/jsm-agent-skill) into .agents/skills/recover 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 jsmastery-pro/jsm-agent-skill --skill recover -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/recover, .gemini/skills/recover, .github/skills/recover and .opencode/skills/recover in your project.
SKILL.md names no scripts, command-line tools or credentials: Build Failure Recovery is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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. Review the folder before installing.
Build Failure Recovery is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k 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 Build Failure Recovery: Analyze Trajectory (yologdev/yoyo-evolve, 1.9k stars), Orca Run Replay (iflytek/skillhub, 5.2k stars), LoopX Self Repair (loopx-project/loopx, 6.2k stars) and Verification Before Completion (foryourhealth111-pixel/Vibe-Skills, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jsmastery-pro (a GitHub organization) maintains it in jsmastery-pro/jsm-agent-skill, which has 218 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on July 9, 2026.
Source: jsmastery-pro/jsm-agent-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.