{"id":"313939de-0c7f-4fe2-9f6e-e15478c8f48c","shortId":"LQQR7u","kind":"skill","title":"spec-finish","tagline":"Post-implementation completion workflow. Use after spec-implement completes to validate, review, create stacked commits, and prepare for PR. Triggers when implementation is done, when the user says \"finish\", \"done\", \"complete\", or after implementation tasks are finished.","description":"# Spec Finish\n\nPost-implementation workflow: validate → review → stack commits → prepare PR.\n\n## Prerequisites\n\nBefore starting, verify:\n1. All implementation tasks complete\n2. Working directory is clean (committed or staged)\n3. Tests pass\n\nIf not complete → go back to spec-implement.\n\n---\n\n## Step 1: Validate\n\nRun validation checks.\n\n### Test Suite\n```bash\nnpm test\n# or\npytest\n# or\ncargo test\n```\n\n### Type Check\n```bash\nnpm run typecheck\n# or\npython -m mypy\n# or\ncargo check\n```\n\n### Lint\n```bash\nnpm run lint\n# or\nruff check .\n# or\ncargo clippy\n```\n\n### Build\n```bash\nnpm run build\n# or\ngo build ./...\n```\n\n**If any fail:** Return to spec-implement to fix.\n\n**If all pass:** Proceed.\n\n---\n\n## Step 2: Review\n\nUse the Skill tool to invoke code-review skill for comprehensive code review.\n\n### What to Review\n- All changed files since feature branch\n- Test coverage\n- Documentation updates\n- No debug code left\n\n### If code-review finds issues\n- Fix or note for follow-up\n- Re-validate\n\n---\n\n## Step 3: Stack Commits\n\nUse the Skill tool to invoke code-stacked-commit skill.\n\n### Workflow\n1. Review current stack: `gt stack`\n2. Ensure commits are organized logically\n3. Restack if needed: `gt branch restack`\n4. Ensure each commit is clean and functional\n\n### Commit Guidelines\n- Each commit should pass tests\n- Use conventional commit format\n- Meaningful commit messages\n\n---\n\n## Step 4: Update Documentation\n\nOptional - use code-docs skill if needed.\n\n### Check for Updates\n- README changes needed?\n- API documentation updated?\n- Changelog updated?\n\n### If documentation needed\n- Load code-docs\n- Update relevant docs\n- Commit with docs\n\n---\n\n## Step 5: Prepare for PR\n\n### Verify\n- All tests passing\n- All reviews complete\n- Documentation updated\n- Commits stacked properly\n\n### Summary for Human\n\n```\n## Completion Summary\n\n**Feature:** [name]\n**Tests:** [passed/failed]\n**Type Check:** [passed/failed]\n**Lint:** [passed/failed]\n**Commits:** [N commits in stack]\n**Ready for PR:** [yes/no]\n```\n\n### Handoff\n\n> \"Implementation complete. [N] commits stacked. Ready for [submit/open PR].\"\n\n---\n\n## Integration\n\nThis skill orchestrates other skills:\n\n- Invokes code-review for quality check\n- Invokes code-stacked-commit for commit management\n- Invokes code-docs if documentation needs updates\n\n---\n\n## When NOT to Use\n\n- If implementation still in progress → use spec-implement\n- If tests failing → go back to spec-implement\n- If review found blocking issues → go back to spec-implement","tags":["spec","finish","atelier","martinffx","agent-skills","agentic-coding","anthropic","claude-code","claude-skills","code-review","codex","codex-skill"],"capabilities":["skill","source-martinffx","skill-spec-finish","topic-agent-skills","topic-agentic-coding","topic-anthropic","topic-claude-code","topic-claude-skills","topic-code-review","topic-codex","topic-codex-skill","topic-opencode","topic-prompt-engineering","topic-sdd","topic-spec-driven-development"],"categories":["atelier"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/martinffx/atelier/spec-finish","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add martinffx/atelier","source_repo":"https://github.com/martinffx/atelier","install_from":"skills.sh"}},"qualityScore":"0.461","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 23 github stars · SKILL.md body (2,490 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:05:24.245Z","embedding":null,"createdAt":"2026-05-10T07:03:12.703Z","updatedAt":"2026-05-18T19:05:24.245Z","lastSeenAt":"2026-05-18T19:05:24.245Z","tsv":"'1':59,85,212 '2':64,147,218 '3':72,197,224 '4':231,254 '5':290 'api':271 'back':79,385,396 'bash':92,102,114,125 'block':393 'branch':171,229 'build':124,128,131 'cargo':98,111,122 'chang':167,269 'changelog':274 'check':89,101,112,120,265,316,351 'clean':68,236 'clippi':123 'code':156,161,178,182,207,260,281,347,354,362 'code-doc':259,280,361 'code-review':155,181,346 'code-stacked-commit':206,353 'commit':20,52,69,199,209,220,234,239,242,248,251,286,303,320,322,333,356,358 'complet':7,14,36,63,77,300,309,331 'comprehens':160 'convent':247 'coverag':173 'creat':18 'current':214 'debug':177 'directori':66 'doc':261,282,285,288,363 'document':174,256,272,277,301,365 'done':29,35 'ensur':219,232 'fail':134,383 'featur':170,311 'file':168 'find':184 'finish':3,34,42,44 'fix':141,186 'follow':191 'follow-up':190 'format':249 'found':392 'function':238 'go':78,130,384,395 'gt':216,228 'guidelin':240 'handoff':329 'human':308 'implement':6,13,27,39,47,61,83,139,330,373,380,389,400 'integr':339 'invok':154,205,345,352,360 'issu':185,394 'left':179 'lint':113,117,318 'load':279 'logic':223 'm':108 'manag':359 'meaning':250 'messag':252 'mypi':109 'n':321,332 'name':312 'need':227,264,270,278,366 'note':188 'npm':93,103,115,126 'option':257 'orchestr':342 'organ':222 'pass':74,144,244,297 'passed/failed':314,317,319 'post':5,46 'post-implement':4,45 'pr':24,54,293,327,338 'prepar':22,53,291 'prerequisit':55 'proceed':145 'progress':376 'proper':305 'pytest':96 'python':107 'qualiti':350 're':194 're-valid':193 'readi':325,335 'readm':268 'relev':284 'restack':225,230 'return':135 'review':17,50,148,157,162,165,183,213,299,348,391 'ruff':119 'run':87,104,116,127 'say':33 'sinc':169 'skill':151,158,202,210,262,341,344 'skill-spec-finish' 'source-martinffx' 'spec':2,12,43,82,138,379,388,399 'spec-finish':1 'spec-impl':11,81,137,378,387,398 'stack':19,51,198,208,215,217,304,324,334,355 'stage':71 'start':57 'step':84,146,196,253,289 'still':374 'submit/open':337 'suit':91 'summari':306,310 'task':40,62 'test':73,90,94,99,172,245,296,313,382 'tool':152,203 'topic-agent-skills' 'topic-agentic-coding' 'topic-anthropic' 'topic-claude-code' 'topic-claude-skills' 'topic-code-review' 'topic-codex' 'topic-codex-skill' 'topic-opencode' 'topic-prompt-engineering' 'topic-sdd' 'topic-spec-driven-development' 'trigger':25 'type':100,315 'typecheck':105 'updat':175,255,267,273,275,283,302,367 'use':9,149,200,246,258,371,377 'user':32 'valid':16,49,86,88,195 'verifi':58,294 'work':65 'workflow':8,48,211 'yes/no':328","prices":[{"id":"e2e801e1-bc15-41a9-b1ea-2602defe058d","listingId":"313939de-0c7f-4fe2-9f6e-e15478c8f48c","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"martinffx","category":"atelier","install_from":"skills.sh"},"createdAt":"2026-05-10T07:03:12.703Z"}],"sources":[{"listingId":"313939de-0c7f-4fe2-9f6e-e15478c8f48c","source":"github","sourceId":"martinffx/atelier/spec-finish","sourceUrl":"https://github.com/martinffx/atelier/tree/main/skills/spec-finish","isPrimary":false,"firstSeenAt":"2026-05-10T07:03:12.703Z","lastSeenAt":"2026-05-18T19:05:24.245Z"}],"details":{"listingId":"313939de-0c7f-4fe2-9f6e-e15478c8f48c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"martinffx","slug":"spec-finish","github":{"repo":"martinffx/atelier","stars":23,"topics":["agent-skills","agentic-coding","anthropic","claude-code","claude-skills","code-review","codex","codex-skill","opencode","prompt-engineering","sdd","spec-driven-development"],"license":"mit","html_url":"https://github.com/martinffx/atelier","pushed_at":"2026-05-18T06:56:45Z","description":"An atelier for Opencode, Claude Code, and other coding agents: spec-driven workflows, deep thinking, and code quality.","skill_md_sha":"b7080bceba81a47264740b8153475694e8dc0e05","skill_md_path":"skills/spec-finish/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/martinffx/atelier/tree/main/skills/spec-finish"},"layout":"multi","source":"github","category":"atelier","frontmatter":{"name":"spec-finish","description":"Post-implementation completion workflow. Use after spec-implement completes to validate, review, create stacked commits, and prepare for PR. Triggers when implementation is done, when the user says \"finish\", \"done\", \"complete\", or after implementation tasks are finished."},"skills_sh_url":"https://skills.sh/martinffx/atelier/spec-finish"},"updatedAt":"2026-05-18T19:05:24.245Z"}}