Agent skill

Synthesis

by yologdev in yologdev/yoyo-evolve

Multi-source research synthesis — aggregate and compare 3+ sources or any source 5KB using sub-agent dispatch and SharedState

MITAuto-check passedAgent Workflows

Install Synthesis

skills CLI
$ npx skills add yologdev/yoyo-evolve --skill synthesis -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install yologdev/yoyo-evolve synthesis --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/synthesis .claude/skills/synthesis && rm -rf skills-src

Use ~/.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/

Facts

Skill name
synthesis
GitHub stars
1.9k
Token cost
~3.1k tokens
SKILL.md length
1,320 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Multi-source research synthesis — aggregate and compare 3+ sources or any source 5KB using sub-agent dispatch and SharedState

  • Works in 7 steps: Frame the research question (single… → Gather sources → Decide: direct synthesis or sub-agent… → …
  • Tasks that involve Subagents
  • SKILL.md covers When to use, When NOT to use, Procedure and Relationship to the research…, plus 3 more sections
  • Calls curl; reaches raw.githubusercontent.com and docs.rs

What it does

Synthesis is an agent skill from yologdev/yoyo-evolve. Multi-source research synthesis — aggregate and compare 3+ sources or any source 5KB using sub-agent dispatch and SharedState

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Subagents and Deep research. The repository describes itself as: A coding agent that evolves its own source, in public — 200 lines of Rust on day one, every commit since agent-written and tests-gated. The licence is MIT.

When your agent uses it

  • Tasks that involve Subagents
  • Tasks that involve Deep research

Example prompts

  • “/synthesis”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Frame the research question (single sentence)
  2. Gather sources
  3. Decide: direct synthesis or sub-agent dispatch?
  4. Store sources in shared state
  5. Dispatch per-source sub-agents
  6. Store summaries and dispatch synthesis sub-agent
  7. Use the synthesis

What it can do on your machine

Read from SKILL.md and the folder at commit 637e940. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • raw.githubusercontent.com
    • docs.rs
    • lite.duckduckgo.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Synthesis loads about 3.1k tokens when it runs. Until then it costs about 34 tokens; SKILL.md has 1,320 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~34
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from yologdev/yoyo-evolve at commit 637e940, republished under its MIT licence (© yologdev). 1,320 words, ~3,100 tokens.

Download SKILL.mdSave it as .claude/skills/synthesis/SKILL.md (or your agent's skills folder).
name
synthesis
description
Multi-source research synthesis — aggregate and compare 3+ sources or any source >5KB using sub-agent dispatch and SharedState
version
1.0
origin
yoyo
core
false
status
active
score
0.66
uses
2
wins
2
last_used
2026-05-01T06:18:55Z
last_evolved
2026-08-22
tools
bash, read_file, write_file, search, sub_agent, shared_state

Synthesis

You are performing multi-source research synthesis — aggregating, comparing, and composing insights from multiple sources (papers, blog posts, docs, discussions, code) into a coherent answer. The goal is a single composed response that draws on all sources, not a list of summaries.

This skill exists because loading 3+ full web pages or documents into your main context window is wasteful and noisy. The pattern (Recursive Language Model — see the RLM substrate section in CLAUDE.md) is: fetch each source, store it in shared state, dispatch a sub-agent per source to extract key claims, then dispatch a final synthesis sub-agent to compose the answer.

This skill complements the existing research skill. Research handles single small sources (fetch → read → answer). Synthesis handles the cases where multiple sources or large sources make direct reading impractical.

When to use

Trigger this skill when ANY of these hold:

  • 3 or more sources on a single topic need to be compared or aggregated
  • Any single source exceeds 5KB (roughly 150 lines / 1,250 tokens) — too large to read efficiently in main context
  • A question requires cross-referencing claims from different authors or documents
  • A community issue links to multiple external references that need to be digested together

When NOT to use

  • 1-2 sources, all under 5KB. Use the research skill's single-source procedure — direct curl and read. Sub-agent overhead exceeds the savings.
  • The sources are code files, not prose. Use explore-codebase instead — it's optimized for structural code comprehension, not prose synthesis.
  • You already know the answer. Don't synthesize to confirm what you already understand. That's burning sub-agent budget for validation theater.
  • You're inside a sub-agent at depth 3. Stop. Return what you have. Do not dispatch further.

Procedure

1. Frame the research question (single sentence)

Examples of well-framed questions:

  • "What are the tradeoffs between streaming JSON parsing libraries in Rust (serde_json, simd-json, sonic-rs)?"
  • "How do different coding agents (Aider, Continue, Cursor) handle context window management?"
  • "What does the academic literature say about recursive LLM agent architectures?"

A good question names a specific topic and what you want to learn. Don't ask vague questions like "tell me about Rust".

2. Gather sources

Fetch each source via bash. Typical patterns:

bash
# Web page
curl -sL "https://example.com/article" | sed 's/<[^>]*>//g' | head -500

# GitHub README
curl -sL "https://raw.githubusercontent.com/org/repo/main/README.md"

# Documentation page
curl -sL "https://docs.rs/crate/latest/crate/" | sed 's/<[^>]*>//g' | head -500

# Search results (to find sources)
curl -s "https://lite.duckduckgo.com/lite?q=your+query" | sed 's/<[^>]*>//g' | head -60

Aim for 3-7 sources. More than 7 rarely adds insight — diminishing returns set in fast.

3. Decide: direct synthesis or sub-agent dispatch?

Estimate total content size:

bash
echo "$SOURCE_1" | wc -c
# repeat for each source
  • Total < 5KB across all sources: Synthesize directly in your main context. Skip sub-agents — the overhead isn't worth it.
  • Total ≥ 5KB: Proceed with sub-agent dispatch (Step 4).
4. Store sources in shared state

Store each source under a namespaced key:

shared_state set key="synthesis.<topic>.source-1" value="<source 1 content>"
shared_state set key="synthesis.<topic>.source-2" value="<source 2 content>"
shared_state set key="synthesis.<topic>.source-3" value="<source 3 content>"

Namespace convention: synthesis.<topic>.source-<N> where <topic> is a short kebab-case slug (e.g., synthesis.rust-json-parsers.source-1).

4a. Chunking for large sources (>30KB)

If any single source exceeds 30KB (~120,000 bytes):

  1. Split into chunks of ~25KB at paragraph boundaries (double newline \n\n). Don't split mid-sentence.
  2. Store each chunk separately:
    shared_state set key="synthesis.<topic>.source-<N>.chunk-1" value="<first ~25KB>"
    shared_state set key="synthesis.<topic>.source-<N>.chunk-2" value="<next ~25KB>"
  3. Dispatch one sub-agent per chunk (same prompt as Step 5, but referencing the chunk key instead of the source key).
  4. Merge chunk summaries before the final synthesis: combine key_claims and key_quotes from all chunks of the same source, deduplicate, and store the merged result as the source's summary.
5. Dispatch per-source sub-agents

For each source, dispatch a sub-agent with a focused extraction question. One source per sub-agent — sources are the natural unit of synthesis.

sub_agent: You are extracting key claims from a research source.

The source is stored in shared state under key "synthesis.<topic>.source-<N>".
Read it with: shared_state get key="synthesis.<topic>.source-<N>"

Research question: <your single-sentence question from step 1>

Extract the source's relevant claims and evidence. Reply with ONLY a JSON object (no markdown fences, no prose):
{
  "key_claims": ["claim 1", "claim 2", ...],
  "key_quotes": ["exact quote or close paraphrase with attribution", ...],
  "relevance": "high|medium|low",
  "confidence": 0.0-1.0,
  "source_type": "paper|blog|docs|discussion|code|other",
  "deeper_question": "a follow-up question if something is unclear, or null"
}

Skills do not chain. Sub-agents don't load this skill or any other; include the full question and shared-state key reference directly in the sub-agent's prompt.

5a. Handle sub-agent responses

Parse each sub-agent's response as JSON:

  1. Valid JSON with all fields: Store the summary in shared state under synthesis.<topic>.summary-<N>.
  2. Malformed JSON but readable text: Extract what you can. Construct a partial summary: {"key_claims": ["<first 300 chars of response>"], "key_quotes": [], "relevance": "low", "confidence": 0.2, "source_type": "other", "deeper_question": null}.
  3. Empty or errored: Fall back to direct read of the source via curl | head -100. Produce a low-confidence summary manually from what you can see.
5b. Recurse on deeper questions

If a sub-agent returns a non-null deeper_question AND confidence < 0.5:

  1. Dispatch another sub-agent with the narrower question, referencing the same shared-state key.
  2. Merge the answer into the existing summary (append new claims, update confidence).

Hard cap: recursion depth = 3. That's: initial dispatch → 1st recursion → 2nd recursion. After depth 3, accept whatever you have. If you find yourself wanting depth 4, your original question was probably too vague — go back to Step 1 and narrow it.

6. Store summaries and dispatch synthesis sub-agent

After all per-source summaries are collected, store them together:

shared_state set key="synthesis.<topic>.summaries" value="<JSON array of all summaries>"

Then dispatch a synthesis sub-agent to compose the final answer:

sub_agent: You are synthesizing research from multiple sources into a composed answer.

The per-source summaries are stored in shared state under key "synthesis.<topic>.summaries".
Read them with: shared_state get key="synthesis.<topic>.summaries"

Research question: <your single-sentence question from step 1>

Compose a synthesis that:
1. Identifies areas of AGREEMENT across sources
2. Identifies areas of DISAGREEMENT or tension
3. Notes any gaps — important aspects of the question that no source addressed
4. Weighs claims by source confidence and relevance

Reply with ONLY a JSON object (no markdown fences, no prose):
{
  "answer": "3-5 paragraph composed answer to the research question",
  "consensus": ["claims that multiple sources agree on"],
  "disagreements": ["claims where sources conflict, with attribution"],
  "gaps": ["aspects of the question not covered by any source"],
  "confidence": 0.0-1.0,
  "source_count": <number of sources that contributed>
}
Show full SKILL.md (563 more words)Show less
7. Use the synthesis

The synthesis sub-agent's answer field is your composed response. Use it to:

  • Answer the user's original question
  • Inform a technical decision in an evolve session
  • Write a journal entry or issue comment with cited sources
  • Add to memory/learnings.jsonl if the finding is novel and would change future behavior

Store the final synthesis in shared state under synthesis.<topic>.result so it can be referenced later in the session without re-running.

Relationship to the research skill

ScenarioUse
1 source, < 5KBresearch — direct curl + read
1 source, ≥ 5KBsynthesis — store in shared state, sub-agent extract
2 sources, both < 5KBresearch — direct curl + read both
2 sources, any ≥ 5KBsynthesis — sub-agent dispatch
3+ sources, any sizesynthesis — always

The research skill finds and fetches sources. This skill processes and composes them. They're complementary: research is the scout, synthesis is the analyst.

Pitfalls

  • Don't ask sub-agents to make decisions. They extract claims and evidence; you (or the synthesis sub-agent) compose the answer. Per-source sub-agents that try to answer the whole question tend to hallucinate beyond their single source.
  • Don't dump multiple sources to one sub-agent. One source per dispatch keeps the extraction focused and the JSON output reliable. Cross-source reasoning belongs in the synthesis step (Step 6).
  • Don't forget the recursion cap. 3 is the hard limit. If you find yourself wanting depth 4, your research question was too broad — narrow it.
  • Don't synthesize without a question. "Research topic X" is not a question. "What are the tradeoffs of X vs Y for use case Z?" is. The question shapes what each sub-agent extracts.
  • Don't over-fetch. 3-7 sources is the sweet spot. More than 7 sources means you're probably not filtering enough — use search to find the 5 best sources, not all sources.
  • Don't re-synthesize within the same session. If you've already synthesized a topic, the result is in shared state under synthesis.<topic>.result. Read it with shared_state get instead of re-dispatching sub-agents.
  • Skills do not chain. Sub-agents can't load skills. Every sub-agent prompt must be self-contained — include the question and the shared-state key reference directly.

Verification

A synthesis is "good enough" when ALL of:

  • The answer addresses the specific research question (not a generic overview of the topic)
  • Multiple sources contributed claims to the answer (not just one source restated)
  • Areas of agreement and disagreement are explicitly identified
  • The answer cites specific claims to specific sources (even if informally — "the docs.rs page says X while the blog post argues Y")
  • The total work used ≤ N+2 sub-agent dispatches where N is the number of sources (N per-source + 1 synthesis + 1 possible recursion)
  • The work stayed within the depth-3 recursion cap

If the synthesis fails any of these, either add another source to fill the gap, or accept the partial result and note the open question.

What this skill deliberately does NOT do

  • Does not find sources. Source discovery is the research skill's job (search → evaluate → pick). This skill takes sources as input and produces synthesis as output.
  • Does not modify code. Synthesis produces understanding, not changes. If the synthesis informs a code change, that's a separate task.
  • Does not write to the audit-log branch. Synthesis results live in shared state for the current session only.
  • Does not replace human judgment. The synthesis is a starting point for decisions, not a verdict. Cross-reference with your own experience and the project's context before acting on synthesis results.

© yologdev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/synthesis of yologdev/yoyo-evolve.

Open the folder on GitHubat commit 637e940

Compare with similar skills

Synthesis 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.

Synthesis compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Synthesis this skillyologdev/yoyo-evolve1.9k—~3.1kAutomated safety check: PassMIT
Ultracodehashgraph-online/awesome-codex-plugins1.2k—~398Automated safety check: PassApache-2.0
Web ResearchJuncai22/spring-ai-agent-learning1233 repos~1.1kAutomated safety check: PassApache-2.0
Deep Research312362115/claude107—~6.6kAutomated safety check: PassMIT
ULW Deep Researchcode-yeongyu/oh-my-openagent70k—~14kAutomated safety check: PassCustom licence
Deep ResearchXiaomiMiMo/MiMo-Code14k—~1.2kAutomated safety check: PassMIT

Similar skills

  • Ultracode

    hashgraph-online/awesome-codex-plugins

    Ultracode-style dynamic workflows for Codex. An agent skill from hashgraph-online/awesome-codex-plugins.

    1.2k GitHub stars~398 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Web Research

    Juncai22/spring-ai-agent-learning

    A skill your agent uses for requests related to web research; it provides a structured approach to conducting comprehensive web research

    123 GitHub starsUsed in 3 repos~1.1k tokens
    Research & ScienceAuto-check passed
  • Deep Research

    312362115/claude

    深度调研技能:对任意命题进行系统性调研并输出专业研究报告. An agent skill from 312362115/claude.

    107 GitHub stars~6.6k tokensUpdated 4 mo ago
    Research & ScienceAuto-check passed
  • ULW Deep Research

    code-yeongyu/oh-my-openagent

    Runs an exhaustive, team-based research session that stands up cooperating agents, debates findings and delivers a report where every claim has a citation or proof.

    70k GitHub stars~14k tokensUpdated today
    Research & ScienceAuto-check passed
  • Deep Research

    XiaomiMiMo/MiMo-Code

    Runs a multi-source investigation with parallel sub-agents and built-in web tools, then writes one cited report. Meant for open-ended topics, not quick lookups.

    14k GitHub stars~1.2k tokensUpdated 4 days ago
    Research & ScienceAuto-check passed
  • Advanced Swarm Orchestration

    ruvnet/agentic-flow

    Patterns for running multi-agent swarms on research, development and testing work, with four topologies and a four-phase research swarm built on claude-flow MCP tools.

    816 GitHub starsUsed in 5 repos~5.9k tokens
    Agent WorkflowsAuto-check passed

More from yologdev/yoyo-evolve

All 15 skills in this repo
  • 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.

    1.9k GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Blindspot Code Critique

    yologdev/yoyo-evolve

    Runs a structured critique of code, architecture or APIs to surface what familiarity hides, such as panics, security holes and design debt.

    1.9k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Sets a warm, plain-spoken voice for an agent's journal entries and GitHub issue replies, with rules on openings, jargon, honesty and endings.

    1.9k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Codebase Explorer

    yologdev/yoyo-evolve

    Builds a structural map of a large or unfamiliar codebase by dispatching sub-agents to summarize regions, keeping the main context small.

    1.9k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Crates.io Release Check

    yologdev/yoyo-evolve

    Decides when a Rust crate is due for a release and gates publishing to crates.io, using a short git-based cadence check run at the start of a session.

    1.9k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Agent Self-Evolution Rules

    yologdev/yoyo-evolve

    Sets ground rules for a coding agent that edits its own Rust source: read the code and journal first, write tests first, commit small changes and check compilation after each file.

    1.9k GitHub stars~1.9k tokensUpdated today
    Auto-check: warnings

Questions about Synthesis

What does Synthesis do?

Multi-source research synthesis — aggregate and compare 3+ sources or any source 5KB using sub-agent dispatch and SharedState. Synthesis is an agent skill from yologdev/yoyo-evolve.

When should I use Synthesis?

Synthesis fits situations like: tasks that involve Subagents; tasks that involve Deep research.

How do I install Synthesis in Claude Code?

Run `npx skills add yologdev/yoyo-evolve --skill synthesis -a claude-code`. Or copy the skill folder (skills/synthesis in yologdev/yoyo-evolve) into .claude/skills/synthesis in your project. Claude Code loads it when a task matches its description.

How do I install Synthesis in Codex?

Run `npx skills add yologdev/yoyo-evolve --skill synthesis -a codex`. Or copy the skill folder (skills/synthesis in yologdev/yoyo-evolve) into .agents/skills/synthesis in your project. Codex loads it when a task matches its description.

Can I use Synthesis in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yologdev/yoyo-evolve --skill synthesis -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/synthesis, .gemini/skills/synthesis, .github/skills/synthesis and .opencode/skills/synthesis in your project.

What does Synthesis need to run?

Going by SKILL.md and its folder, Synthesis needs the command-line tools its instructions call (curl).

Does Synthesis access the network?

SKILL.md names 3 domains. In commands or code: raw.githubusercontent.com, docs.rs and lite.duckduckgo.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Synthesis safe to install?

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.

What licence does Synthesis use?

Synthesis is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Synthesis use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Synthesis?

Skills that share tags, products or a category with Synthesis: Ultracode (hashgraph-online/awesome-codex-plugins, 1.2k stars), Web Research (Juncai22/spring-ai-agent-learning, 123 stars), Deep Research (312362115/claude, 107 stars) and ULW Deep Research (code-yeongyu/oh-my-openagent, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Synthesis?

yologdev (a GitHub user) maintains it in yologdev/yoyo-evolve, which has 1,888 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.

Source: yologdev/yoyo-evolve on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.