Skip to main content

research-patterns

Reference conventions for how yellow-research derives slugs, formats reports, and saves output under docs/research/. Use when authoring or modifying yellow-research commands or agents that write research output.

Ir a la instalación

Datos de origen

Repositorio
KingInYellows/yellow-plugins
Última actividad en el origen
6 de septiembre de 2026 a las 22:45
Idioma detectado de SKILL.md
inglés
Estrellas
0
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
research-patterns
user-invocable
false
description
Reference conventions for how yellow-research derives slugs, formats reports, and saves output under docs/research/. Use when authoring or modifying yellow-research commands or agents that write research output.
# Research Patterns ## What It Does Reference conventions for how yellow-research derives slugs, formats reports, and saves output under `docs/research/`. ## When to Use Use when authoring or modifying yellow-research commands or agents that write research output. ## Usage Reference the sections below as preloaded context — this skill documents conventions; it is not an executable workflow. ## Slug Naming Convert the research topic to a slug for the output filename: - Characters: `[a-z0-9-]` only — lowercase, hyphens, no spaces or special chars - Max length: 40 characters - Examples: - "React Server Components 2026" → `react-server-components-2026` - "How does EXA neural search work?" → `exa-neural-search` - "Competitor analysis: Notion vs Linear" → `notion-vs-linear-competitor` - Collision handling: if `docs/research/<slug>.md` exists, append `-2`, `-3` ## Output Location All deep research saves to: `docs/research/<slug>.md` Create the directory if it doesn't exist: ```bash mkdir -p docs/research ``` ## Output Format ```markdown # <Topic Title> **Date:** YYYY-MM-DD **Sources:** Perplexity, EXA, Tavily (list which were used) ## Summary [2-3 sentence executive summary] ## Key Findings ### <Subtopic 1> [Findings with source citations] ### <Subtopic 2> [Findings with source citations] ## Sources - [Source Title](URL) — brief note on what was found here ``` ## Source Selection Guide | Query Type | Primary Source | Secondary | | ------------------------------ | -------------------------------- | ---------------------------- | | Library / framework docs | Context7 (user-level MCP) | EXA `get_code_context_exa` | | Code examples, GitHub patterns | EXA `get_code_context_exa` | GitHub grep | | Keyword-tight general web | Ceramic `ceramic_search` | EXA `web_search_exa` | | Recent news, current events | Perplexity `perplexity_search` | Tavily `tavily_search` | | Competitive / company research | EXA `company_research_exa` | Perplexity | | Deep technical report | Perplexity `perplexity_research` | Tavily `tavily_research` | | AST / structural code patterns | ast-grep `find_code` | ast-grep `find_code_by_rule` | | Long-horizon async report | Parallel `createDeepResearch` | EXA `deep_researcher_start` | | Specific URL content | EXA `crawling_exa` | Tavily `tavily_extract` | **Ceramic note:** Ceramic is a **lexical** search engine (English only, 1–50-word keyword queries). Before sending a topic to `ceramic_search`, rewrite it into a concise keyword-form query — drop "how do I", "what is", filler words; keep proper nouns, technical terms, version numbers. See `https://docs.ceramic.ai/api/search/best-practices.md`. The Ceramic MCP at `https://mcp.ceramic.ai/mcp` authenticates via OAuth 2.1 (browser flow on first use) — same UX as Parallel Task, no API key in plugin.json. ## When to Compound Findings After `/research:deep`, run `/compound` if the findings include: - A novel architectural pattern worth sharing with the team - A critical gotcha or anti-pattern discovered - An institutional decision that will recur (e.g., "we use X instead of Y because...") - A bug root cause that took significant investigation Routine informational research does not need to be compounded. ## Graceful Degradation If an MCP server is unavailable (key not set, connection error, rate limit): - Log a brief note: "Skipping [source] — unavailable" - Continue with remaining sources - Never fail completely if at least 1 source is available - If all sources fail, surface the error clearly ## API Key Setup As of v2.0.0, EXA / Tavily / Perplexity API keys are stored in `userConfig` (system keychain). `plugin.json` reads `${user_config.<key>}`; shell env vars are no longer wired into the MCP processes. Perplexity hard-fails at startup without a valid userConfig value (tools disappear entirely); EXA and Tavily start but tool calls error at invocation. To configure (one-time, no restart needed): ```text /plugin disable yellow-research /plugin enable yellow-research ``` Claude Code prompts for each key. Answer the ones you want; dismiss the rest. Stored in OS keychain (or `~/.claude/.credentials.json` at 0600 on minimal Linux). Get keys from: - EXA: https://exa.ai/ - Tavily: https://tavily.com/ - Perplexity: https://www.perplexity.ai/settings/api The **Parallel Task** and **Ceramic** servers use OAuth (no API key needed). Claude Code handles authentication automatically — you'll be prompted to authorize on first use of each. `CERAMIC_API_KEY` is the one remaining shell-env var. It is optional and powers only the `/research:setup` REST live-probe (the Ceramic MCP uses OAuth). Get a REST key at https://platform.ceramic.ai/keys if you want that probe to run. ```sh # Optional, REST live-probe only export CERAMIC_API_KEY="your-key-here" ``` Power users who want a fully shell-env-driven setup can wrap each MCP in a per-MCP launcher script (see `plugins/yellow-morph/bin/start-morph.sh`). The plugin no longer reads `*_API_KEY` from shell env directly. ## MCP Tool Name Verification After installing yellow-research, always verify actual tool names before writing agent code or troubleshooting: ```text ToolSearch keyword: "exa" Tool name: mcp__plugin_yellow-research_exa__... ToolSearch keyword: "tavily" Tool name: mcp__plugin_yellow-research_tavily__... ToolSearch keyword: "perplexity" Tool name: mcp__plugin_yellow-research_perplexity__... ToolSearch keyword: "parallel" Tool name: mcp__plugin_yellow-research_parallel__... ToolSearch keyword: "ceramic_search" Tool name: mcp__plugin_yellow-research_ceramic__ceramic_search ToolSearch keyword: "ast-grep__find_code" Tool name: mcp__plugin_yellow-research_ast-grep__find_code ToolSearch keyword: "ast-grep__find_code_by_rule" Tool name: mcp__plugin_yellow-research_ast-grep__find_code_by_rule ToolSearch keyword: "ast-grep__dump_syntax_tree" Tool name: mcp__plugin_yellow-research_ast-grep__dump_syntax_tree ToolSearch keyword: "ast-grep__test_match_code_rule" Tool name: mcp__plugin_yellow-research_ast-grep__test_match_code_rule ``` Naming convention: `mcp__plugin_yellow-research_<server>__<tool>`. Or run `/mcp` in Claude Code to see all registered tools. **Never trust LLM-generated tool names** — they may be fictitious. Empirical verification is required. If names differ from what's in agents/commands, update the `allowed-tools` lists and any MCP tool references in agent bodies.
Ver en GitHub