
Source Driven Development
Force every framework-specific implementation to cite current official docs so copied patterns stay correct across the stack.
Overview
Source-Driven Development is a journey-wide agent skill that grounds framework implementation in cited official documentation—usable whenever a solo builder needs to verify patterns before committing code.
Install
npx skills add https://github.com/addyosmani/agent-skills --skill source-driven-developmentWhat is this skill?
- Requires official documentation backing for framework-specific decisions
- Explicit when-not-to-use list (typos, pure logic, user wants speed only)
- Covers boilerplate, auth, routing, data fetching, and state management patterns
- Surfaces citations so users can audit recommendations
- Counters stale training-data defaults and deprecated APIs
Adoption & trust: 3.3k installs on skills.sh; 49.1k GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+200% hot-view momentum).
What problem does it solve?
You rely on the model’s memory for framework APIs and ship patterns that are deprecated, incomplete, or wrong for your version.
Who is it for?
Builders shipping production UI or full-stack features where the framework’s recommended approach must match the installed version.
Skip if: Pure renaming or logic fixes with no framework API surface, or sessions where the user explicitly prioritizes speed over doc verification.
When should I use this skill?
Use when building with any framework or library where correctness matters, when the user wants source-cited code, or before writing framework-specific code from memory.
What do I get? / Deliverables
Implementation choices come with authoritative doc citations so you can trust and audit framework-specific code before review and deploy.
- Framework-specific code blocks with linked or named official sources
- Verified boilerplate or feature implementation aligned to current docs
Recommended Skills
Journey fit
Useful at every journey phase - explore requirements and options before committing to a direction.
Where it fits
Add a forms and server-actions flow only after confirming the current framework doc page.
Wire official SDK auth examples before copying middleware into an API service.
Re-check suspicious framework patterns in a PR against vendor docs instead of lint alone.
Spike a prototype feature using cited minimal examples to avoid throwaway wrong APIs.
Upgrade a major framework version using doc-backed migration steps.
How it compares
Use instead of ad-hoc chat implementations pulled from stale training defaults; it is a process skill, not a single-library code generator.
Common Questions / FAQ
Who is source-driven-development for?
Solo developers and small teams using coding agents who want framework work traceable to official docs, especially for starter templates and cross-project patterns.
When should I use source-driven-development?
During Build for new features and integrations; during Ship review when validating framework usage; during Operate iterate when upgrading frameworks; and anytime you would otherwise code from memory.
Is source-driven-development safe to install?
It is procedural guidance; review the Security Audits panel on this page and restrict network use to fetching public documentation you trust.
SKILL.md
READMESKILL.md - Source Driven Development
# Source-Driven Development ## Overview Every framework-specific code decision must be backed by official documentation. Don't implement from memory — verify, cite, and let the user see your sources. Training data goes stale, APIs get deprecated, best practices evolve. This skill ensures the user gets code they can trust because every pattern traces back to an authoritative source they can check. ## When to Use - The user wants code that follows current best practices for a given framework - Building boilerplate, starter code, or patterns that will be copied across a project - The user explicitly asks for documented, verified, or "correct" implementation - Implementing features where the framework's recommended approach matters (forms, routing, data fetching, state management, auth) - Reviewing or improving code that uses framework-specific patterns - Any time you are about to write framework-specific code from memory **When NOT to use:** - Correctness does not depend on a specific version (renaming variables, fixing typos, moving files) - Pure logic that works the same across all versions (loops, conditionals, data structures) - The user explicitly wants speed over verification ("just do it quickly") ## The Process ``` DETECT ──→ FETCH ──→ IMPLEMENT ──→ CITE │ │ │ │ ▼ ▼ ▼ ▼ What Get the Follow the Show your stack? relevant documented sources docs patterns ``` ### Step 1: Detect Stack and Versions Read the project's dependency file to identify exact versions: ``` package.json → Node/React/Vue/Angular/Svelte composer.json → PHP/Symfony/Laravel requirements.txt / pyproject.toml → Python/Django/Flask go.mod → Go Cargo.toml → Rust Gemfile → Ruby/Rails ``` State what you found explicitly: ``` STACK DETECTED: - React 19.1.0 (from package.json) - Vite 6.2.0 - Tailwind CSS 4.0.3 → Fetching official docs for the relevant patterns. ``` If versions are missing or ambiguous, **ask the user**. Don't guess — the version determines which patterns are correct. ### Step 2: Fetch Official Documentation Fetch the specific documentation page for the feature you're implementing. Not the homepage, not the full docs — the relevant page. **Source hierarchy (in order of authority):** | Priority | Source | Example | |----------|--------|---------| | 1 | Official documentation | react.dev, docs.djangoproject.com, symfony.com/doc | | 2 | Official blog / changelog | react.dev/blog, nextjs.org/blog | | 3 | Web standards references | MDN, web.dev, html.spec.whatwg.org | | 4 | Browser/runtime compatibility | caniuse.com, node.green | **Not authoritative — never cite as primary sources:** - Stack Overflow answers - Blog posts or tutorials (even popular ones) - AI-generated documentation or summaries - Your own training data (that is the whole point — verify it) **Be precise with what you fetch:** ``` BAD: Fetch the React homepage GOOD: Fetch react.dev/reference/react/useActionState BAD: Search "django authentication best practices" GOOD: Fetch docs.djangoproject.com/en/6.0/topics/auth/ ``` After fetching, extract the key patterns and note any deprecation warnings or migration guidance. When official sources conflict with each other (e.g. a migration guide contradicts the API reference), surface the discrepancy to the user and verify which pattern actually works against the detected version. ### Step 3: Implement Following Documented Patterns Write code that matches what the documentation shows: - Use the API signatures from the docs, not from memory - If the docs show a new way to do something, use the new way - If the docs deprecate