{"id":"33c64580-8c89-4456-bc83-2bfba9633365","shortId":"Mjf2Bq","kind":"skill","title":"speckit-implement","tagline":"Execute the implementation plan by processing and executing all tasks defined in tasks.md","description":"# Spec Kit Implement Skill\n\n## When to Use\n\n- The plan and tasks are complete and you are ready to implement.\n\n## Inputs\n\n- `specs/<feature>/tasks.md` and `plan.md`\n- Optional artifacts: `data-model.md`, `contracts/`, `research.md`, `quickstart.md`\n- User constraints (e.g., scope, testing expectations)\n\nIf tasks are missing or incomplete, ask the user to run speckit-tasks first.\n\n## Workflow\n\n1. Run `.specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks` from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. For single quotes in args like \"I'm Groot\", use escape syntax: e.g 'I'\\''m Groot' (or double-quote if possible: \"I'm Groot\").\n\n2. **Check checklists status** (if FEATURE_DIR/checklists/ exists):\n   - Scan all checklist files in the checklists/ directory\n   - For each checklist, count:\n     - Total items: All lines matching `- [ ]` or `- [X]` or `- [x]`\n     - Completed items: Lines matching `- [X]` or `- [x]`\n     - Incomplete items: Lines matching `- [ ]`\n   - Create a status table:\n\n     ```text\n     | Checklist | Total | Completed | Incomplete | Status |\n     |-----------|-------|-----------|------------|--------|\n     | ux.md     | 12    | 12        | 0          | ✓ PASS |\n     | test.md   | 8     | 5         | 3          | ✗ FAIL |\n     | security.md | 6   | 6         | 0          | ✓ PASS |\n     ```\n\n   - Calculate overall status:\n     - **PASS**: All checklists have 0 incomplete items\n     - **FAIL**: One or more checklists have incomplete items\n\n   - **If any checklist is incomplete**:\n     - Display the table with incomplete item counts\n     - **STOP** and ask: \"Some checklists are incomplete. Do you want to proceed with implementation anyway? (yes/no)\"\n     - Wait for user response before continuing\n     - If user says \"no\" or \"wait\" or \"stop\", halt execution\n     - If user says \"yes\" or \"proceed\" or \"continue\", proceed to step 3\n\n   - **If all checklists are complete**:\n     - Display the table showing all checklists passed\n     - Automatically proceed to step 3\n\n3. Load and analyze the implementation context:\n   - **REQUIRED**: Read tasks.md for the complete task list and execution plan\n   - **REQUIRED**: Read plan.md for tech stack, architecture, and file structure\n   - **IF EXISTS**: Read data-model.md for entities and relationships\n   - **IF EXISTS**: Read contracts/ for API specifications and test requirements\n   - **IF EXISTS**: Read research.md for technical decisions and constraints\n   - **IF EXISTS**: Read quickstart.md for integration scenarios\n\n4. **Project Setup Verification**:\n   - **REQUIRED**: Create/verify ignore files based on actual project setup:\n\n   **Detection & Creation Logic**:\n   - Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):\n\n     ```sh\n     git rev-parse --git-dir 2>/dev/null\n     ```\n\n   - Check if Dockerfile\\* exists or Docker in plan.md → create/verify .dockerignore\n   - Check if .eslintrc\\* exists → create/verify .eslintignore\n   - Check if eslint.config.\\* exists → ensure the config's `ignores` entries cover required patterns\n   - Check if .prettierrc\\* exists → create/verify .prettierignore\n   - Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)\n   - Check if terraform files (\\*.tf) exist → create/verify .terraformignore\n   - Check if .helmignore needed (helm charts present) → create/verify .helmignore\n\n   **If ignore file already exists**: Verify it contains essential patterns, append missing critical patterns only\n   **If ignore file missing**: Create with full pattern set for detected technology\n\n   **Common Patterns by Technology** (from plan.md tech stack):\n   - **Node.js/JavaScript/TypeScript**: `node_modules/`, `dist/`, `build/`, `*.log`, `.env*`\n   - **Python**: `__pycache__/`, `*.pyc`, `.venv/`, `venv/`, `dist/`, `*.egg-info/`\n   - **Java**: `target/`, `*.class`, `*.jar`, `.gradle/`, `build/`\n   - **C#/.NET**: `bin/`, `obj/`, `*.user`, `*.suo`, `packages/`\n   - **Go**: `*.exe`, `*.test`, `vendor/`, `*.out`\n   - **Ruby**: `.bundle/`, `log/`, `tmp/`, `*.gem`, `vendor/bundle/`\n   - **PHP**: `vendor/`, `*.log`, `*.cache`, `*.env`\n   - **Rust**: `target/`, `debug/`, `release/`, `*.rs.bk`, `*.rlib`, `*.prof*`, `.idea/`, `*.log`, `.env*`\n   - **Kotlin**: `build/`, `out/`, `.gradle/`, `.idea/`, `*.class`, `*.jar`, `*.iml`, `*.log`, `.env*`\n   - **C++**: `build/`, `bin/`, `obj/`, `out/`, `*.o`, `*.so`, `*.a`, `*.exe`, `*.dll`, `.idea/`, `*.log`, `.env*`\n   - **C**: `build/`, `bin/`, `obj/`, `out/`, `*.o`, `*.a`, `*.so`, `*.exe`, `Makefile`, `config.log`, `.idea/`, `*.log`, `.env*`\n   - **Swift**: `.build/`, `DerivedData/`, `*.swiftpm/`, `Packages/`\n   - **R**: `.Rproj.user/`, `.Rhistory`, `.RData`, `.Ruserdata`, `*.Rproj`, `packrat/`, `renv/`\n   - **Universal**: `.DS_Store`, `Thumbs.db`, `*.tmp`, `*.swp`, `.vscode/`, `.idea/`\n\n   **Tool-Specific Patterns**:\n   - **Docker**: `node_modules/`, `.git/`, `Dockerfile*`, `.dockerignore`, `*.log*`, `.env*`, `coverage/`\n   - **ESLint**: `node_modules/`, `dist/`, `build/`, `coverage/`, `*.min.js`\n   - **Prettier**: `node_modules/`, `dist/`, `build/`, `coverage/`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`\n   - **Terraform**: `.terraform/`, `*.tfstate*`, `*.tfvars`, `.terraform.lock.hcl`\n   - **Kubernetes/k8s**: `*.secret.yaml`, `secrets/`, `.kube/`, `kubeconfig*`, `*.key`, `*.crt`\n\n5. Parse tasks.md structure and extract:\n   - **Task phases**: Setup, Tests, Core, Integration, Polish\n   - **Task dependencies**: Sequential vs parallel execution rules\n   - **Task details**: ID, description, file paths, parallel markers [P]\n   - **Execution flow**: Order and dependency requirements\n\n6. Execute implementation following the task plan:\n   - **Phase-by-phase execution**: Complete each phase before moving to the next\n   - **Respect dependencies**: Run sequential tasks in order, parallel tasks [P] can run together\n   - **Follow TDD approach**: Execute test tasks before their corresponding implementation tasks\n   - **File-based coordination**: Tasks affecting the same files must run sequentially\n   - **Validation checkpoints**: Verify each phase completion before proceeding\n\n7. Implementation execution rules:\n   - **Setup first**: Initialize project structure, dependencies, configuration\n   - **Tests before code**: If you need to write tests for contracts, entities, and integration scenarios\n   - **Core development**: Implement models, services, CLI commands, endpoints\n   - **Integration work**: Database connections, middleware, logging, external services\n   - **Polish and validation**: Unit tests, performance optimization, documentation\n\n8. Progress tracking and error handling:\n   - Report progress after each completed task\n   - Halt execution if any non-parallel task fails\n   - For parallel tasks [P], continue with successful tasks, report failed ones\n   - Provide clear error messages with context for debugging\n   - Suggest next steps if implementation cannot proceed\n   - **IMPORTANT** For completed tasks, make sure to mark the task off as [X] in the tasks file.\n\n9. Completion validation:\n   - Verify all required tasks are completed\n   - Check that implemented features match the original specification\n   - Validate that tests pass and coverage meets requirements\n   - Confirm the implementation follows the technical plan\n   - Report final status with summary of completed work\n\nNote: This skill assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running speckit-tasks first to regenerate the task list.\n\n## Outputs\n\n- Implementation changes in the codebase\n- Updated `specs/<feature>/tasks.md` with completed tasks checked off\n- Any generated/updated ignore files (e.g., `.gitignore`, `.dockerignore`, `.eslintignore`, `.prettierignore`)","tags":["speckit","implement","agent","skills","dceoy","agent-skills","ai-agents","ai-coding","claude-code","codex-cli","developer-tools","gemini-cli"],"capabilities":["skill","source-dceoy","skill-speckit-implement","topic-agent-skills","topic-ai-agents","topic-ai-coding","topic-claude-code","topic-codex-cli","topic-developer-tools","topic-gemini-cli","topic-github-copilot","topic-spec-kit","topic-specifications","topic-workflow-automation"],"categories":["speckit-agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/dceoy/speckit-agent-skills/speckit-implement","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add dceoy/speckit-agent-skills","source_repo":"https://github.com/dceoy/speckit-agent-skills","install_from":"skills.sh"}},"qualityScore":"0.488","qualityRationale":"deterministic score 0.49 from registry signals: · indexed on github topic:agent-skills · 76 github stars · SKILL.md body (7,876 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-02T06:55:43.449Z","embedding":null,"createdAt":"2026-04-18T22:13:44.183Z","updatedAt":"2026-05-02T06:55:43.449Z","lastSeenAt":"2026-05-02T06:55:43.449Z","tsv":"'/.net':505 '/dev/null':382 '/javascript/typescript**:':482 '/tasks.md':38,925 '0':173,183,192 '1':69 '12':171,172 '2':120,381 '3':178,258,275,276 '4':338 '5':177,636 '6':181,182,671 '7':735 '8':176,785 '9':849 'absolut':94 'actual':348 'affect':720 'alreadi':448 'analyz':279 'anyway':229 'api':317 'append':455 'approach':706 'architectur':300 'arg':99 'artifact':42 'ask':59,217 'assum':892 'automat':271 'avail':87 'base':346,717 'bin':506,549,562 'breakdown':896 'build':486,503,538,548,561,575,612,619 'bundl':517 'c':504,547,560 'cach':525 'calcul':185 'cannot':830 'chang':919 'chart':441 'check':121,354,383,393,399,412,418,428,436,858,929 'checklist':122,130,134,138,165,190,199,205,219,261,269 'checkpoint':728 'class':500,542 'clear':818 'cli':766 'code':748 'codebas':922 'command':358,767 'common':472 'complet':29,149,167,263,288,683,732,795,834,850,857,887,894,927 'config':405 'config.log':570 'configur':745 'confirm':874 'connect':772 'constraint':48,330 'contain':452 'context':282,822 'continu':236,254,810 'contract':44,315,756 'coordin':718 'core':646,761 'correspond':712 'count':139,214 'cover':409 'coverag':607,613,620,871 'creat':160,464 'create/verify':343,369,391,397,416,424,434,443 'creation':352 'critic':457 'crt':635 'data-model.md':43,307 'databas':771 'debug':529,824 'decis':328 'defin':14 'depend':650,669,692,744 'deriveddata':576 'descript':659 'detail':657 'detect':351,470 'determin':361 'develop':762 'dir':85,380 'dir/checklists':126 'directori':135 'display':208,264 'dist':485,494,611,618 'dll':556 'doc':88 'docker':388,599 'dockerfil':385,603 'dockerignor':392,604,937 'document':784 'doubl':113 'double-quot':112 'ds':588 'e.g':49,107,935 'egg':496 'egg-info':495 'endpoint':768 'ensur':403 'entiti':309,757 'entri':408 'env':488,526,536,546,559,573,606 'error':789,819 'escap':105 'eslint':608 'eslint.config':401 'eslintignor':398,938 'eslintrc':395 'essenti':453 'exe':512,555,568 'execut':4,11,246,292,654,665,672,682,707,737,798 'exist':127,305,313,323,332,386,396,402,415,423,433,449,897 'expect':52 'extern':775 'extract':641 'fail':179,195,805,815 'featur':84,125,861 'file':131,302,345,431,447,462,660,716,723,848,934 'file-bas':715 'final':882 'first':67,740,911 'flow':666 'follow':357,674,704,877 'full':466 'gem':520 'generated/updated':932 'git':367,374,379,602 'git-dir':378 'gitignor':370,936 'go':511 'gradl':502,540 'groot':103,110,119 'halt':245,797 'handl':790 'helm':440 'helmignor':438,444 'id':658 'idea':534,541,557,571,594 'ignor':344,407,446,461,933 'iml':544 'implement':3,6,19,35,228,281,673,713,736,763,829,860,876,918 'import':832 'includ':77 'include-task':76 'incomplet':58,156,168,193,201,207,212,221,903 'info':497 'initi':741 'input':36 'integr':336,647,759,769 'item':141,150,157,194,202,213 'jar':501,543 'java':498 'json':72 'key':634 'kit':18 'kotlin':537 'kube':632 'kubeconfig':633 'kubernetes/k8s':629 'like':100 'line':143,151,158 'list':89,290,916 'load':277 'log':487,518,524,535,545,558,572,605,774 'logic':353 'm':102,109,118 'make':836 'makefil':569 'mark':839 'marker':663 'match':144,152,159,862 'meet':872 'messag':820 'middlewar':773 'min.js':614 'miss':56,456,463,905 'model':764 'modul':484,601,610,617 'move':687 'must':92,724 'need':439,751 'next':690,826 'node':483,600,609,616 'node.js':481 'node.js/javascript/typescript**:':480 'non':802 'non-parallel':801 'note':889 'npmignor':425 'npmrc':420 'o':552,565 'obj':507,550,563 'one':196,816 'optim':783 'option':41 'order':667,697 'origin':864 'output':917 'overal':186 'p':664,700,809 'packag':510,578 'package-lock.json':621 'package.json':422 'packrat':585 'parallel':653,662,698,803,807 'pars':83,377,637 'pass':174,184,188,270,869 'path':91,661 'pattern':411,454,458,467,473,598 'perform':782 'phase':643,679,681,685,731 'phase-by-phas':678 'php':522 'plan':7,25,293,677,880 'plan.md':40,296,390,477 'pnpm-lock.yaml':623 'polish':648,777 'possibl':116 'present':442 'prettier':615 'prettierignor':417,939 'prettierrc':414 'proceed':226,252,255,272,734,831 'process':9 'prof':533 'progress':786,792 'project':339,349,742 'provid':817 'publish':427 'pyc':491 'pycach':490 'python':489 'quickstart.md':46,334 'quot':97,114 'r':579 'rdata':582 'read':284,295,306,314,324,333 'readi':33 'regener':913 'relationship':311 'releas':530 'renv':586 'repo':80,368 'report':791,814,881 'repositori':364 'requir':74,283,294,321,342,410,670,854,873 'require-task':73 'research.md':45,325 'respect':691 'respons':234 'rev':376 'rev-pars':375 'rhistori':581 'rlib':532 'root':81 'rproj':584 'rproj.user':580 'rs.bk':531 'rubi':516 'rule':655,738 'run':63,70,693,702,725,907 'ruserdata':583 'rust':527 'say':239,249 'scan':128 'scenario':337,760 'scope':50 'secret':631 'secret.yaml':630 'security.md':180 'sequenti':651,694,726 'servic':765,776 'set':468 'setup':340,350,644,739 'sh':373 'show':267 'singl':96 'skill':20,891 'skill-speckit-implement' 'source-dceoy' 'spec':17,37,924 'specif':318,597,865 'specify/scripts/bash/check-prerequisites.sh':71 'speckit':2,65,909 'speckit-impl':1 'speckit-task':64,908 'stack':299,479 'status':123,162,169,187,883 'step':257,274,827 'stop':215,244 'store':589 'structur':303,639,743 'succeed':359 'success':812 'suggest':825,906 'summari':885 'suo':509 'sure':837 'swift':574 'swiftpm':577 'swp':592 'syntax':106 'tabl':163,210,266 'target':499,528 'task':13,27,54,66,75,78,289,642,649,656,676,695,699,709,714,719,796,804,808,813,835,841,847,855,895,901,910,915,928 'tasks.md':16,285,638,899 'tdd':705 'tech':298,478 'technic':327,879 'technolog':471,475 'terraform':430,624,625 'terraform.lock.hcl':628 'terraformignor':435 'test':51,320,513,645,708,746,754,781,868 'test.md':175 'text':164 'tf':432 'tfstate':626 'tfvar':627 'thumbs.db':590 'tmp':519,591 'togeth':703 'tool':596 'tool-specif':595 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-claude-code' 'topic-codex-cli' 'topic-developer-tools' 'topic-gemini-cli' 'topic-github-copilot' 'topic-spec-kit' 'topic-specifications' 'topic-workflow-automation' 'total':140,166 'track':787 'unit':780 'univers':587 'updat':923 'use':23,104 'user':47,61,233,238,248,508 'ux.md':170 'valid':727,779,851,866 'vendor':514,523 'vendor/bundle':521 'venv':492,493 'verif':341 'verifi':450,729,852 'vs':652 'vscode':593 'wait':231,242 'want':224 'work':770,888 'workflow':68 'write':753 'x':146,148,153,155,844 'yarn.lock':622 'yes':250 'yes/no':230","prices":[{"id":"27d589c4-7c9d-4e42-9ff1-ca050ea86de5","listingId":"33c64580-8c89-4456-bc83-2bfba9633365","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"dceoy","category":"speckit-agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:13:44.183Z"}],"sources":[{"listingId":"33c64580-8c89-4456-bc83-2bfba9633365","source":"github","sourceId":"dceoy/speckit-agent-skills/speckit-implement","sourceUrl":"https://github.com/dceoy/speckit-agent-skills/tree/main/skills/speckit-implement","isPrimary":false,"firstSeenAt":"2026-04-18T22:13:44.183Z","lastSeenAt":"2026-05-02T06:55:43.449Z"}],"details":{"listingId":"33c64580-8c89-4456-bc83-2bfba9633365","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"dceoy","slug":"speckit-implement","github":{"repo":"dceoy/speckit-agent-skills","stars":76,"topics":["agent-skills","ai-agents","ai-coding","claude-code","codex-cli","developer-tools","gemini-cli","github-copilot","spec-kit","specifications","workflow-automation"],"license":"agpl-3.0","html_url":"https://github.com/dceoy/speckit-agent-skills","pushed_at":"2026-03-14T17:14:42Z","description":"Agent skills for Spec Kit","skill_md_sha":"ff3a2adf64db5982d32a41db3a79a828cda6157c","skill_md_path":"skills/speckit-implement/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/dceoy/speckit-agent-skills/tree/main/skills/speckit-implement"},"layout":"multi","source":"github","category":"speckit-agent-skills","frontmatter":{"name":"speckit-implement","description":"Execute the implementation plan by processing and executing all tasks defined in tasks.md"},"skills_sh_url":"https://skills.sh/dceoy/speckit-agent-skills/speckit-implement"},"updatedAt":"2026-05-02T06:55:43.449Z"}}