Ultracode
hashgraph-online/awesome-codex-plugins
Ultracode-style dynamic workflows for Codex. An agent skill from hashgraph-online/awesome-codex-plugins.
Multi-source research synthesis — aggregate and compare 3+ sources or any source 5KB using sub-agent dispatch and SharedState
$ npx skills add yologdev/yoyo-evolve --skill synthesis -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yologdev/yoyo-evolve synthesis --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/yologdev/yoyo-evolve.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/synthesis .claude/skills/synthesis && 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 "synthesis" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/synthesis into .claude/skills/synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesis", 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/yologdev/yoyo-evolve/tree/main/skills/synthesisType 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 yologdev/yoyo-evolve --skill synthesis -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yologdev/yoyo-evolve synthesis --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/synthesis .agents/skills/synthesis && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "synthesis" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/synthesis into .agents/skills/synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesis", 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 yologdev/yoyo-evolve --skill synthesis -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yologdev/yoyo-evolve synthesis --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/synthesis .cursor/skills/synthesis && 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 "synthesis" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/synthesis into .cursor/skills/synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesis", 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/yologdev/yoyo-evolve.git --path skills/synthesis--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 yologdev/yoyo-evolve --skill synthesis -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yologdev/yoyo-evolve synthesis --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/synthesis .gemini/skills/synthesis && 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 "synthesis" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/synthesis into .gemini/skills/synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesis", 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 yologdev/yoyo-evolve synthesisInstalls 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 yologdev/yoyo-evolve --skill synthesis -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/synthesis .github/skills/synthesis && 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 "synthesis" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/synthesis into .github/skills/synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesis", 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 yologdev/yoyo-evolve --skill synthesis -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yologdev/yoyo-evolve synthesis --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/synthesis .opencode/skills/synthesis && 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 "synthesis" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/synthesis into .opencode/skills/synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "synthesis", 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.
synthesisMulti-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. 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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 637e940. 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.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
raw.githubusercontent.comdocs.rslite.duckduckgo.comFrom 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.
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.
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 yologdev/yoyo-evolve at commit 637e940, republished under its MIT licence (© yologdev). 1,320 words, ~3,100 tokens.
.claude/skills/synthesis/SKILL.md (or your agent's skills folder).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.
Trigger this skill when ANY of these hold:
research skill's single-source procedure — direct curl and read. Sub-agent overhead exceeds the savings.explore-codebase instead — it's optimized for structural code comprehension, not prose synthesis.Examples of well-framed questions:
A good question names a specific topic and what you want to learn. Don't ask vague questions like "tell me about Rust".
Fetch each source via bash. Typical patterns:
# 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 -60Aim for 3-7 sources. More than 7 rarely adds insight — diminishing returns set in fast.
Estimate total content size:
echo "$SOURCE_1" | wc -c
# repeat for each sourceStore 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).
If any single source exceeds 30KB (~120,000 bytes):
\n\n). Don't split mid-sentence.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>"key_claims and key_quotes from all chunks of the same source, deduplicate, and store the merged result as the source's summary.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.
Parse each sub-agent's response as JSON:
synthesis.<topic>.summary-<N>.{"key_claims": ["<first 300 chars of response>"], "key_quotes": [], "relevance": "low", "confidence": 0.2, "source_type": "other", "deeper_question": null}.curl | head -100. Produce a low-confidence summary manually from what you can see.If a sub-agent returns a non-null deeper_question AND confidence < 0.5:
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.
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>
}The synthesis sub-agent's answer field is your composed response. Use it to:
memory/learnings.jsonl if the finding is novel and would change future behaviorStore the final synthesis in shared state under synthesis.<topic>.result so it can be referenced later in the session without re-running.
| Scenario | Use |
|---|---|
| 1 source, < 5KB | research — direct curl + read |
| 1 source, ≥ 5KB | synthesis — store in shared state, sub-agent extract |
| 2 sources, both < 5KB | research — direct curl + read both |
| 2 sources, any ≥ 5KB | synthesis — sub-agent dispatch |
| 3+ sources, any size | synthesis — 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.
synthesis.<topic>.result. Read it with shared_state get instead of re-dispatching sub-agents.A synthesis is "good enough" when ALL of:
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.
research skill's job (search → evaluate → pick). This skill takes sources as input and produces synthesis as output.© yologdev, 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/synthesis of yologdev/yoyo-evolve.
Open the folder on GitHubat commit 637e940
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Synthesis this skillyologdev/yoyo-evolve | 1.9k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Ultracodehashgraph-online/awesome-codex-plugins | 1.2k | — | ~398 | Automated safety check: Pass | Apache-2.0 | |
| Web ResearchJuncai22/spring-ai-agent-learning | 123 | 3 repos | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Deep Research312362115/claude | 107 | — | ~6.6k | Automated safety check: Pass | MIT | |
| ULW Deep Researchcode-yeongyu/oh-my-openagent | 70k | — | ~14k | Automated safety check: Pass | Custom licence | |
| Deep ResearchXiaomiMiMo/MiMo-Code | 14k | — | ~1.2k | Automated safety check: Pass | MIT |
hashgraph-online/awesome-codex-plugins
Ultracode-style dynamic workflows for Codex. An agent skill from hashgraph-online/awesome-codex-plugins.
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
312362115/claude
深度调研技能:对任意命题进行系统性调研并输出专业研究报告. An agent skill from 312362115/claude.
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.
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.
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.
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.
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.
yologdev/yoyo-evolve
Sets a warm, plain-spoken voice for an agent's journal entries and GitHub issue replies, with rules on openings, jargon, honesty and endings.
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.
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.
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.
Categories
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.
Synthesis fits situations like: tasks that involve Subagents; tasks that involve Deep research.
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.
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.
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.
Going by SKILL.md and its folder, Synthesis needs the command-line tools its instructions call (curl).
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.
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.
Synthesis is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
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.
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.
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.