blindspot
Systematically find blind spots in code, architecture, APIs, and deployment — structured critique that catches what familiarity…
Diagnose a recurring failure (STUCK task, clustered CI error, frequent reverts) by dispatching sub-agents to digest CI logs without bloating main context. Returns one root-cause diagnosis.
$ npx -y skills add yologdev/yoyo-evolve --skill analyze-trajectory --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/analyze-trajectoryContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnose a recurring failure (STUCK task, clustered CI error, frequent reverts) by dispatching sub-agents to digest CI logs without bloating main context. Returns one root-cause diagnosis.
name: analyze-trajectory description: Diagnose a recurring failure (STUCK task, clustered CI error, frequent reverts) by dispatching sub-agents to digest CI logs without bloating main context. Returns one root-cause diagnosis. tools: [bash, read_file, sub_agent, shared_state] core: true origin: creator
You are doing a **deep dive** into a recurring failure pattern. The harness's pre-computed `YOUR TRAJECTORY` block surfaces *that* something is recurring; this skill helps you understand *why* and produce a focused diagnosis.
This skill exists because raw GitHub Actions logs are too large and noisy to digest in your main context window. The pattern (Recursive Language Model — see Reithan's reference in issue #226) is: keep your root context small, dispatch a sub-agent to read the raw logs, and have the sub-agent return a 1-3 sentence summary. Recurse if the summary surfaces a deeper question.
Trigger this skill when ANY of these hold:
Examples of well-framed questions:
A good question names a specific event (run id, session day, error fingerprint) and what you want to know about it. Don't ask vague questions like *"what's wrong with my trajectory?"*
For each question, pick exactly one artifact to fetch:
git fetch --depth 50 origin audit-log:audit-log AUDIT_WT=$(mktemp -d) git worktree add "$AUDIT_WT" audit-log ls "$AUDIT_WT/sessions/" | tail -10 # ... read what you need ... git worktree remove --force "$AUDIT_WT"
Estimate the artifact size first:
gh run view <id> --log-failed 2>/dev/null | wc -c
Before dispatching a sub-agent, estimate whether the artifact fits in a single sub-agent's context:
estimated_tokens = artifact_bytes / 4
**If estimated_tokens ≤ 30,000** (roughly half a sub-agent's context window): proceed to Step 4 as normal — single sub-agent dispatch.
**If estimated_tokens > 30,000**: the artifact is too large for one sub-agent to digest reliably. Split and fan out:
1. **Split into chunks** of ~20,000 tokens (~80,000 bytes) with 2,000-token (~8,000 byte) overlap between consecutive chunks. The overlap ensures error context that spans a chunk boundary isn't lost.
2. **Store each chunk separately** in shared state:
shared_state set key="trajectory.run-<id>.chunk-1" value="<first 80KB>" shared_state set key="trajectory.run-<id>.chunk-2" value="<next 80KB, starting 8KB before the split>" ...
3. **Dispatch one sub-agent per chunk** with the prompt:
You are analyzing CHUNK <N> of <M> from a CI log.
The chunk is stored in shared state under key "trajectory.run-<id>.chunk-<N>".
Read it with: shared_state get key="trajectory.run-<id>.chunk-<N>"
Question: <your single-sentence question from step 1>
Reply with ONLY a JSON object (no markdown fences, no prose):
{
"summary": "1-3 sentences on what this chunk reveals about the failure",
"key_lines": ["relevant line 1", "relevant line 2"],
"chunk_relevant": true,
"confidence": "high|medium|low"
}
If this chunk contains no information relevant to the question, set chunk_relevant to false
and keep summary/key_lines minimal.4. **Merge chunk results** — after all chunk sub-agents return, store their combined results in shared state and dispatch one final merge sub-agent:
shared_state set key="trajectory.run-<id>.chunk-results" value="<JSON array of chunk responses>"
Merge sub-agent prompt:
You are merging analyses from <M> chunks of a single CI log.
The chunk analyses are stored in shared state under key "trajectory.run-<id>.chunk-results".
Read them with: shared_state get key="trajectory.run-<id>.chunk-results"
Original question: <your single-sentence question from step 1>
Synthesize the chunk analyses into a single diagnosis.
Reply with ONLY a JSON object (no markdown fences, no prose):
{
"summary": "1-3 sentences explaining the root ca200 lines of Rust. Zero human code. One rule: evolve or die. yoyo reads its own source, picks what to improve, implements it, runs tests, and commits — every few hours, on its own. 180 days later: 158,000+ lines, 5,400+ tests, 94 source files.
Systematically find blind spots in code, architecture, APIs, and deployment — structured critique that catches what familiarity…
Write journal entries and respond to GitHub issues with an authentic voice
Safely modify your own source code, test changes, and manage your evolution
Find your way home — register with the yoyo family, introduce yourself, and participate in family discussions