Adds Context7 resolution before websearch for library/framework/API topics, reducing reliance on web crawling for well-indexed libraries. Falls back to websearch for unresolved libraries, concept topics, or when the user provides starting URLs. Subagents are explicitly prohibited from calling Context7 to prevent tool inheritance from producing duplicate or conflicting summaries. Includes trigger and output evals for the Context7 path (resolves, fallback, skipped for non-library topics), stale description and constraint fixes, and a concrete "sufficient content" threshold. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
Reference file format
Every topic file follows this structure.
Frontmatter
---
topic: <topic-slug> # matches the filename without .md (e.g. "api-reference")
source_keys: # kebab-case slugs of sources that contributed; must match sources.md entries
- <slug>
- <slug>
---
Body
Plain prose organized into markdown sections (##, ###). Extract the content most relevant to skill authoring or implementation — not a verbatim copy of the source. Focus on:
- Decisions that affect how to call the API or tool
- Options, flags, or parameters with non-obvious behavior
- Constraints, rate limits, or gotchas
- Canonical patterns the skill should follow
No inline URLs in the body — all source traceability lives in sources.md via source_keys.
sources.md format
# Sources
## <slug>
- **URL:** <full URL>
- **Description:** <one-line summary of what this source covers>
- **Contributing files:** <comma-separated list of topic files this source contributed to>
- **Status:** `extracted` | `no content extracted`
Use one ## section per source. Slugs are kebab-case derived from the domain or page title (e.g. stripe-api-docs, openai-python-sdk-readme). For Context7 sources, use the slug context7-<library-slug> (e.g. context7-vercel-next-js) and set URL to context7:<library-id> (e.g. context7:/vercel/next.js).