{"id":"c50e1064-4966-4e09-a1ec-4f5264bc8612","shortId":"VgYTXn","kind":"skill","title":"source-driven","tagline":"Implement features using official docs for exact dependency versions instead of training data. Use when user asks to \"check the docs\", \"use official docs\", \"source-driven\", or when implementing with unfamiliar APIs/libraries. Don't use for well-known stdlib APIs or project-intern","description":"# Source-Driven Development\n\nNever rely on training data for API usage. Read the actual source of truth.\n\n## Pre-loaded context\n\n- Dependencies: !`cat package.json | grep -E '\"dependencies\"|\"devDependencies\"' -A 50 | head -60`\n\n## Workflow\n\n### 1. Identify Dependencies\n\n- Read `package.json` (or equivalent manifest) for exact versions\n- Note the **exact version** of each library involved in the task\n\n### 2. Fetch Official Docs\n\nFor each dependency involved:\n\n1. Find the correct docs URL for that **specific version** (not \"latest\")\n2. Fetch the relevant API page using WebFetch\n3. Extract: function signatures, required params, return types, breaking changes\n\nIf docs are unavailable or ambiguous, read the library source in `node_modules/`.\n\n### 3. Implement from Docs\n\n- Use only APIs confirmed in fetched docs\n- Match function signatures exactly (param order, types, defaults)\n- If a doc page confirms the API: proceed\n- If you cannot verify an API: mark it `// UNVERIFIED: could not confirm in docs for v{version}`\n\n### 4. Cite Sources\n\nAdd a brief comment on non-obvious API usage:\n\n```ts\n// Ref: https://docs.example.com/v3/api#method\n```\n\nOnly cite when the usage is surprising or version-specific. Don't over-comment obvious calls.\n\n## Anti-Rationalization\n\n| Excuse | Rebuttal |\n|---|---|\n| \"I know this API from training data\" | Training data may be outdated or wrong. Check the version. |\n| \"The docs are too slow to fetch\" | One fetch now prevents hours debugging a hallucinated API later. |\n| \"It's a minor utility, no need to check\" | Minor utilities have breaking changes between versions too. |\n| \"I'll verify later\" | Unverified code compounds. Verify now or mark UNVERIFIED. |\n\n## Rules\n\n- NEVER guess API signatures — fetch or read source\n- NEVER assume \"latest\" docs match the installed version\n- Always mark unverified claims with `// UNVERIFIED`\n- Prefer `node_modules/` source over training knowledge when docs unavailable\n- Don't cite every line — only non-obvious or version-sensitive usage\n\n## Error Handling\n\n- Docs URL returns 404 → try GitHub repo README, then `node_modules/` source\n- Version not found in docs → use closest version docs + mark `// UNVERIFIED: docs for v{closest}, installed v{actual}`\n- WebFetch blocked/unavailable → read `node_modules/{pkg}/README.md` or type definitions","tags":["source","driven","agent","skills","helderberto","agent-skills","ai-tools","antigravity","claude-code","cursor","developer-tools","gemini-cli"],"capabilities":["skill","source-helderberto","skill-source-driven","topic-agent-skills","topic-ai-tools","topic-antigravity","topic-claude-code","topic-cursor","topic-developer-tools","topic-gemini-cli","topic-markdown","topic-plugin","topic-sdlc","topic-skills","topic-tracer-bullet"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/helderberto/agent-skills/source-driven","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add helderberto/agent-skills","source_repo":"https://github.com/helderberto/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (2,326 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:09:14.905Z","embedding":null,"createdAt":"2026-05-18T13:14:55.188Z","updatedAt":"2026-05-18T19:09:14.905Z","lastSeenAt":"2026-05-18T19:09:14.905Z","tsv":"'-60':82 '/readme.md':390 '/v3/api#method':218 '1':84,114 '2':106,126 '3':134,157 '4':201 '404':357 '50':80 'actual':64,383 'add':204 'alway':322 'ambigu':149 'anti':238 'anti-ration':237 'api':45,60,130,163,182,189,212,245,274,308 'apis/libraries':36 'ask':20 'assum':315 'blocked/unavailable':385 'break':142,288 'brief':206 'call':236 'cannot':186 'cat':73 'chang':143,289 'check':22,256,284 'cite':202,220,340 'claim':325 'closest':372,380 'code':298 'comment':207,234 'compound':299 'confirm':164,180,195 'context':71 'correct':117 'could':193 'data':16,58,248,250 'debug':271 'default':175 'definit':393 'depend':11,72,77,86,112 'devdepend':78 'develop':53 'doc':8,24,27,109,118,145,160,167,178,197,260,317,336,354,370,374,377 'docs.example.com':217 'docs.example.com/v3/api#method':216 'driven':3,30,52 'e':76 'equival':90 'error':352 'everi':341 'exact':10,93,97,171 'excus':240 'extract':135 'featur':5 'fetch':107,127,166,265,267,310 'find':115 'found':368 'function':136,169 'github':359 'grep':75 'guess':307 'hallucin':273 'handl':353 'head':81 'hour':270 'identifi':85 'implement':4,33,158 'instal':320,381 'instead':13 'intern':49 'involv':102,113 'know':243 'knowledg':334 'known':43 'later':275,296 'latest':125,316 'librari':101,152 'line':342 'll':294 'load':70 'manifest':91 'mark':190,303,323,375 'match':168,318 'may':251 'minor':279,285 'modul':156,330,364,388 'need':282 'never':54,306,314 'node':155,329,363,387 'non':210,345 'non-obvi':209,344 'note':95 'obvious':211,235,346 'offici':7,26,108 'one':266 'order':173 'outdat':253 'over-com':232 'package.json':74,88 'page':131,179 'param':139,172 'pkg':389 'pre':69 'pre-load':68 'prefer':328 'prevent':269 'proceed':183 'project':48 'project-intern':47 'ration':239 'read':62,87,150,312,386 'readm':361 'rebutt':241 'ref':215 'relev':129 'reli':55 'repo':360 'requir':138 'return':140,356 'rule':305 'sensit':350 'signatur':137,170,309 'skill' 'skill-source-driven' 'slow':263 'sourc':2,29,51,65,153,203,313,331,365 'source-driven':1,28,50 'source-helderberto' 'specif':122,229 'stdlib':44 'surpris':225 'task':105 'topic-agent-skills' 'topic-ai-tools' 'topic-antigravity' 'topic-claude-code' 'topic-cursor' 'topic-developer-tools' 'topic-gemini-cli' 'topic-markdown' 'topic-plugin' 'topic-sdlc' 'topic-skills' 'topic-tracer-bullet' 'train':15,57,247,249,333 'tri':358 'truth':67 'ts':214 'type':141,174,392 'unavail':147,337 'unfamiliar':35 'unverifi':192,297,304,324,327,376 'url':119,355 'usag':61,213,223,351 'use':6,17,25,39,132,161,371 'user':19 'util':280,286 'v':199,379,382 'verifi':187,295,300 'version':12,94,98,123,200,228,258,291,321,349,366,373 'version-sensit':348 'version-specif':227 'webfetch':133,384 'well':42 'well-known':41 'workflow':83 'wrong':255","prices":[{"id":"3cd2dabb-79a7-456b-bb61-4052fb451312","listingId":"c50e1064-4966-4e09-a1ec-4f5264bc8612","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"helderberto","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:14:55.188Z"}],"sources":[{"listingId":"c50e1064-4966-4e09-a1ec-4f5264bc8612","source":"github","sourceId":"helderberto/agent-skills/source-driven","sourceUrl":"https://github.com/helderberto/agent-skills/tree/main/skills/source-driven","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:55.188Z","lastSeenAt":"2026-05-18T19:09:14.905Z"}],"details":{"listingId":"c50e1064-4966-4e09-a1ec-4f5264bc8612","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"helderberto","slug":"source-driven","github":{"repo":"helderberto/agent-skills","stars":8,"topics":["agent-skills","ai","ai-tools","antigravity","claude-code","cursor","developer-tools","gemini-cli","markdown","plugin","sdlc","skills","tracer-bullet"],"license":"mit","html_url":"https://github.com/helderberto/agent-skills","pushed_at":"2026-05-14T11:37:47Z","description":"My personal SDLC toolbelt for AI coding agents — PRD to ship.","skill_md_sha":"e92c806d961d9156274ef311ad8998a3f795ef30","skill_md_path":"skills/source-driven/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/helderberto/agent-skills/tree/main/skills/source-driven"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"source-driven","description":"Implement features using official docs for exact dependency versions instead of training data. Use when user asks to \"check the docs\", \"use official docs\", \"source-driven\", or when implementing with unfamiliar APIs/libraries. Don't use for well-known stdlib APIs or project-internal code."},"skills_sh_url":"https://skills.sh/helderberto/agent-skills/source-driven"},"updatedAt":"2026-05-18T19:09:14.905Z"}}