{"id":"59fc05a1-6ca6-4676-9699-25ff78d0c6a7","shortId":"JbRqY9","kind":"skill","title":"build","tagline":"Implement one phase of a plan. Reads plan, finds next incomplete phase, implements it, runs feedback loops, marks checkboxes, offers commit. One phase per invocation. Use when the user wants to implement, code, build, or work on the next phase of a plan.","description":"# Build Phase\n\nImplement the next incomplete phase of a plan — one phase per invocation.\n\n**Context window**: recommend `/clear` before starting to maximize token budget.\n\n**Interactive prompts**: present options as a numbered list and wait for the user's choice.\n\n## Input\n\nThe argument (if provided) is: $ARGUMENTS\n\nUse argument as `<slug>`. If empty, list plans as numbered options and wait for the user's choice.\n\nAccepts slug or `@file` reference:\n\n```\n/hb:build dark-mode-support\n/hb:build @.specs/plans/dark-mode-support.md\n```\n\nIf argument starts with `@`, treat it as a file path — read that file directly as the plan.\n\n## Workflow\n\n### 1. Load the plan\n\nRead `.specs/plans/<slug>.md`. If missing, list plans as numbered options and wait for the user's choice.\n\n### 2. Find the next incomplete phase\n\nScan the plan for `## Phase N` headings. For each phase, count `- [ ]` and `- [x]` checkboxes.\n\nThe **next incomplete phase** is the first phase that has at least one unchecked `- [ ]` item.\n\nIf all phases are complete (zero unchecked items across all phases):\n\n> All phases complete. Run `/hb:check <slug>` to verify.\n\nStop here.\n\n### 3. Present the phase\n\nShow the phase title and its unchecked items:\n\n```\nPhase N — <title> (M remaining)\n- [ ] First unchecked item\n- [ ] Second unchecked item\n```\n\n### 4. Offer a feature branch\n\nIf on the default branch (main/master), ask:\n\n> Create branch `feat/<slug>`?\n>\n> 1. Yes, create branch (Recommended)\n> 2. No, stay on current branch\n\nIf accepted, create and switch to the branch.\n\nIf already on a feature branch, skip this step.\n\n### 5. Implement the phase\n\nWork through each unchecked item in order. For each item:\n\n1. Read the plan's architectural decisions and the current item's context\n2. Explore relevant code to understand existing patterns and conventions\n3. Implement the change — follow the project's conventions (CLAUDE.md, linter config, test setup)\n4. Write tests alongside implementation (follow the project's existing test patterns)\n\n**Do not** impose coding rules, style, or conventions. Follow what the project already uses.\n\n**Do not** implement items from other phases. Stay within the current phase boundary.\n\n### 6. Run feedback loops\n\nAfter implementing the phase, detect and run available project scripts. Check `package.json` for these scripts (run only what exists):\n\n| Script pattern                     | Purpose       |\n| ---------------------------------- | ------------- |\n| `typecheck`, `tsc`, `type-check`   | Type checking |\n| `test`, `vitest`, `jest`           | Tests         |\n| `lint`, `eslint`                   | Linting       |\n| `format:check`, `prettier --check` | Formatting    |\n\nRun each detected script. If any fails:\n\n1. Read the error output\n2. Fix the issue\n3. Re-run the failing script\n4. Repeat until all pass (max 3 attempts per script)\n\nIf a script still fails after 3 attempts, treat it as a **blocker** — pause and ask the user for help:\n\n> **Blocker**: `<script>` fails after 3 attempts.\n> Last error: `<error summary>`\n>\n> How to proceed?\n>\n> 1. I'll fix it — pause and wait\n> 2. Skip this check and continue\n> 3. Abort this phase\n\nWait for the user's response before continuing.\n\n### 7. Mark checkboxes\n\nAfter all feedback loops pass, for each completed item change `- [ ]` → `- [x]` in `.specs/plans/<slug>.md`.\n\n### 8. Offer commit\n\nPresent the changes and ask:\n\n> Phase N complete — all checks pass. Commit?\n>\n> 1. Yes, commit\n> 2. No, I'll review first\n\nIf the user chooses to commit:\n\n1. Stage the implementation files (not `.specs/` artifacts unless the project dogfoods TracerKit)\n2. Create a commit with a message following the project's commit conventions\n3. Confirm: \"Committed. Run `/hb:build <slug>` for Phase N+1, or `/hb:check <slug>` to verify.\"\n\nIf the user chooses to review:\n\n> Ready for review. Run `/hb:build <slug>` again when ready to continue.\n\n### 9. Blockers during implementation\n\nIf implementation requires something the agent cannot provide (API key, external service, manual setup, design decision):\n\n> **Blocker**: <description of what's needed>\n>\n> How to proceed?\n>\n> 1. I've resolved it — continue\n> 2. Skip this item for now\n> 3. Abort this phase\n\nWait for the user's response. Never guess or work around a blocker silently.\n\n## Rules\n\n- **One phase per invocation** — never auto-advance to the next phase\n- **Never modify PRD content** — the PRD is read-only\n- **Never modify plan content** beyond marking checkboxes `[x]`\n- **Never skip a phase** — phases must be completed in order\n- **Never impose conventions** — follow the project's existing setup\n- **HITL at every decision point** — commits, blockers, and branch creation require user approval\n- **Feedback loops are mandatory** — always run available checks before marking items complete\n- **Do not push to remote** — only commit locally","tags":["build","agent","skills","helderberto","agent-skills","ai-tools","antigravity","claude-code","cursor","developer-tools","gemini-cli","markdown"],"capabilities":["skill","source-helderberto","skill-build","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/build","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 (4,846 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:11.805Z","embedding":null,"createdAt":"2026-05-18T13:14:51.614Z","updatedAt":"2026-05-18T19:09:11.805Z","lastSeenAt":"2026-05-18T19:09:11.805Z","tsv":"'/clear':62 '/hb':113,119,211 '1':140,254,296,424 '2':161,259,309,429 '3':217,319,433,446,456 '4':239,333,440 '5':282 '6':372 'accept':108,266 'across':204 'alongsid':336 'alreadi':274,357 'architectur':301 'argument':86,90,92,123 'ask':250,465 'attempt':447,457 'avail':383 'blocker':462,470 'boundari':371 'branch':243,248,252,257,264,272,278 'budget':68 'build':1,35,45,114,120 'chang':322 'check':212,386,402,404,413,415 'checkbox':20,180 'choic':83,107,160 'claude.md':328 'code':34,312,348 'commit':22 'complet':200,209 'config':330 'context':59,308 'convent':318,327,352 'count':177 'creat':251,256,267 'current':263,305,369 'dark':116 'dark-mode-support':115 'decis':302 'default':247 'detect':380,419 'direct':135 'empti':95 'error':427 'eslint':410 'exist':315,342,394 'explor':310 'fail':423,438,454 'feat':253 'featur':242,277 'feedback':17,374 'file':111,130,134 'find':10,162 'first':187,233 'fix':430 'follow':323,338,353 'format':412,416 'head':173 'help':469 'implement':2,14,33,47,283,320,337,361,377 'impos':347 'incomplet':12,50,165,183 'input':84 'interact':69 'invoc':26,58 'issu':432 'item':195,203,228,235,238,290,295,306,362 'jest':407 'least':192 'lint':409,411 'linter':329 'list':76,96,149 'load':141 'loop':18,375 'm':231 'main/master':249 'mark':19 'max':445 'maxim':66 'md':146 'miss':148 'mode':117 'n':172,230 'next':11,40,49,164,182 'number':75,99,152 'offer':21,240 'one':3,23,55,193 'option':72,100,153 'order':292 'output':428 'package.json':387 'pass':444 'path':131 'pattern':316,344,396 'paus':463 'per':25,57,448 'phase':4,13,24,41,46,51,56,166,171,176,184,188,198,206,208,220,223,229,285,365,370,379 'plan':7,9,44,54,97,138,143,150,169,299 'present':71,218 'prettier':414 'project':325,340,356,384 'prompt':70 'provid':88 'purpos':397 're':435 're-run':434 'read':8,132,144,297,425 'recommend':61,258 'refer':112 'relev':311 'remain':232 'repeat':441 'rule':349 'run':16,210,373,382,391,417,436 'scan':167 'script':385,390,395,420,439,449,452 'second':236 'setup':332 'show':221 'skill' 'skill-build' 'skip':279 'slug':109 'source-helderberto' 'specs/plans':145 'specs/plans/dark-mode-support.md':121 'start':64,124 'stay':261,366 'step':281 'still':453 'stop':215 'style':350 'support':118 'switch':269 'test':331,335,343,405,408 'titl':224 'token':67 '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' 'treat':126,458 'tsc':399 'type':401,403 'type-check':400 'typecheck':398 'uncheck':194,202,227,234,237,289 'understand':314 'use':27,91,358 'user':30,81,105,158,467 'verifi':214 'vitest':406 'wait':78,102,155 'want':31 'window':60 'within':367 'work':37,286 'workflow':139 'write':334 'x':179 'yes':255 'zero':201","prices":[{"id":"36441d16-3d89-4404-8039-6b308e75763f","listingId":"59fc05a1-6ca6-4676-9699-25ff78d0c6a7","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:51.614Z"}],"sources":[{"listingId":"59fc05a1-6ca6-4676-9699-25ff78d0c6a7","source":"github","sourceId":"helderberto/agent-skills/build","sourceUrl":"https://github.com/helderberto/agent-skills/tree/main/skills/build","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:51.614Z","lastSeenAt":"2026-05-18T19:09:11.805Z"}],"details":{"listingId":"59fc05a1-6ca6-4676-9699-25ff78d0c6a7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"helderberto","slug":"build","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":"420bdf82b8eee850cd7bd69b27b699abd98bc61c","skill_md_path":"skills/build/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/helderberto/agent-skills/tree/main/skills/build"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"build","description":"Implement one phase of a plan. Reads plan, finds next incomplete phase, implements it, runs feedback loops, marks checkboxes, offers commit. One phase per invocation. Use when the user wants to implement, code, build, or work on the next phase of a plan."},"skills_sh_url":"https://skills.sh/helderberto/agent-skills/build"},"updatedAt":"2026-05-18T19:09:11.805Z"}}