{"id":"d6457db1-e6da-43ad-ae01-9ac04845a481","shortId":"L8yEVy","kind":"skill","title":"recipe-fullstack-implement","tagline":"Orchestrate full-cycle implementation across backend and frontend layers","description":"**Context**: Full-cycle fullstack implementation management (Requirements Analysis → Design (backend + frontend) → Planning → Implementation → Quality Assurance)\n\n## Orchestrator Definition\n\n**Core Identity**: \"I am an orchestrator.\" (see subagents-orchestration-guide skill)\n\n## Required Reference\n\n**MANDATORY**: Read `references/monorepo-flow.md` from subagents-orchestration-guide skill BEFORE proceeding. Follow the Fullstack Flow defined there instead of the standard single-layer flow.\n\n## Execution Protocol\n\n1. **Delegate all work through Agent tool** — invoke sub-agents, pass deliverable paths between them, and report results (permitted tools: see subagents-orchestration-guide \"Orchestrator's Permitted Tools\")\n2. **Follow monorepo-flow.md** for the design phase (multiple Design Docs, design-sync, vertical slicing)\n3. **Follow subagents-orchestration-guide skill** for all other orchestration rules (stop points, structured responses, escalation)\n4. **Enter autonomous mode** only after \"batch approval for entire implementation phase\"\n\n**CRITICAL**: Execute all steps, sub-agents, and stopping points defined in both the monorepo-flow.md reference and subagents-orchestration-guide skill.\n\n## Execution Decision Flow\n\n### 1. Current Situation Assessment\nInstruction Content: $ARGUMENTS\n\nAssess the current situation:\n\n| Situation Pattern | Decision Criteria | Next Action |\n|------------------|------------------|-------------|\n| New Requirements | No existing work, new feature/fix request | Start with requirement-analyzer |\n| Flow Continuation | Existing docs/tasks present, continuation directive | Identify next step in monorepo-flow.md |\n| Quality Errors | Error detection, test failures, build errors | Execute quality-fixer (layer-appropriate) |\n| Ambiguous | Intent unclear, multiple interpretations possible | Confirm with user |\n\n### 2. Progress Verification for Continuation\n\nWhen continuing existing flow, verify:\n- Latest artifacts (PRD/ADR/Design Docs/Work Plan/Tasks)\n- Current phase position (Requirements/Design/Planning/Implementation/QA)\n- Identify next step in monorepo-flow.md\n\n### 3. Design through Planning Phase\n\n**Follow monorepo-flow.md** for the complete design-through-planning flow (Steps 1-16 for Large scale, Steps 1-14 for Medium scale). The flow table in that reference defines every step, agent invocation, parallelization rule, and stop point.\n\nKey points to enforce as the orchestrator runs the flow:\n- Create separate Design Docs per layer (see monorepo-flow.md \"Layer Context in Design Doc Creation\")\n- Frontend Design Doc references the approved UI Spec (pass UI Spec path to technical-designer-frontend) and reuses the ui-analyzer output produced earlier in the flow\n- Execute document-reviewer once per Design Doc (separate invocations)\n- Run design-sync for cross-layer consistency verification\n- Pass all Design Docs to work-planner (subagent_type: \"dev-workflows:work-planner\") with vertical slicing instruction\n\n### 4. Register All Flow Steps Using TaskCreate (MANDATORY)\n\n**After scale determination, register all steps of the monorepo-flow.md using TaskCreate**:\n- First task: \"Map preloaded skills to applicable concrete rules\"\n- Register each step as individual task\n- Set currently executing step to `in_progress` using TaskUpdate\n- **Complete task registration before invoking subagents**\n\n## After requirement-analyzer [Stop]\n\nWhen user responds to questions:\n- If response matches any `scopeDependencies.question` → Check `impact` for scale change\n- If scale changes → Re-execute requirement-analyzer with updated context\n- If `confidence: \"confirmed\"` or no scale change → Proceed to next step\n\n## Subagents Orchestration Guide Compliance Execution\n\n**Pre-execution Checklist (MANDATORY)**:\n- [ ] Read monorepo-flow.md reference\n- [ ] Confirmed relevant flow steps\n- [ ] Identified current progress position\n- [ ] Clarified next step\n- [ ] Recognized stopping points\n- [ ] codebase-analyzer included before each Design Doc creation\n- [ ] code-verifier included before document-reviewer for each Design Doc\n- [ ] **Environment check**: Can I execute per-task commit cycle?\n  - If commit capability unavailable → Escalate before autonomous mode\n  - Other environments (tests, quality tools) → Subagents will escalate\n\n**Required Flow Compliance**:\n- Run quality-fixer (layer-appropriate) before every commit\n- Obtain user approval before Edit/Write/MultiEdit outside autonomous mode\n\n### Implementation Readiness Check (between work-planner approval and task-decomposer)\n\nAfter work-planner completes and the user grants batch approval, before invoking task-decomposer, read the work plan header and find the line `Implementation Readiness: <status>`. Apply this rule:\n\n| Status | Action |\n|--------|--------|\n| `ready` | Proceed to task-decomposer |\n| `escalated` | Read the work plan's Readiness Report section, surface remaining gaps to the user via AskUserQuestion: \"Implementation Readiness is `escalated` with the following remaining gaps: [list]. Continue execution? (y/n)\". On `y` proceed; on `n` stop |\n| `pending` | Present via AskUserQuestion: \"Implementation Readiness is `pending`. Run `/recipe-prepare-implementation [plan-path]` first to verify the work plan is implementable, then resume. Continue without preflight? (y/n)\". On `y` proceed; on `n` stop |\n| absent (line missing) | Treat as `pending` — older work plans created before the readiness marker existed should be preflighted explicitly |\n\n## Scope Boundary for Subagents\n\nAppend the following block to every subagent prompt invoked from this recipe:\n\n```\nScope boundary for subagents:\nOperate within the task scope and referenced files in the prompt.\nUse loaded skills to execute that scope.\nEscalate when the required fix or investigation falls outside that scope.\n```\n\n## Mandatory Orchestrator Responsibilities\n\n### Task Execution Quality Cycle (Filename-Pattern-Based)\n\n**Agent routing by task filename** (see monorepo-flow.md reference):\n```\n*-backend-task-*   → dev-workflows:task-executor + dev-workflows:quality-fixer\n*-frontend-task-*  → dev-workflows-frontend:task-executor-frontend + dev-workflows-frontend:quality-fixer-frontend\n```\n\n**Rules**:\n1. Execute ONE task completely before starting next (each task goes through the full 4-step cycle via Agent tool, using the correct executor per filename pattern)\n2. Check executor status before quality-fixer (escalation check)\n3. Quality-fixer MUST run after each executor before proceeding to commit. **Always pass** the current task file path as `task_file`\n4. Check quality-fixer response:\n   - `stub_detected` → Return to executor with `incompleteImplementations[]` details\n   - `blocked` → Escalate to user\n   - `approved` → Proceed to commit\n\n### Post-Implementation Verification (After All Tasks Complete)\n\nAfter all task cycles finish, run verification agents **in parallel** before the completion report:\n\n1. **Invoke both in parallel** using Agent tool:\n   - code-verifier (subagent_type: \"dev-workflows:code-verifier\") → invoke **once per Design Doc** (`doc_type: design-doc`, single `document_path`, `code_paths`: implementation file list from `git diff --name-only main...HEAD`)\n   - security-reviewer (subagent_type: \"dev-workflows:security-reviewer\") → Design Doc path(s), implementation file list\n\n2. **Consolidate results** — check pass/fail for each:\n   - code-verifier: **pass** when `status` is `consistent` or `mostly_consistent`. **fail** when `needs_review` or `inconsistent`. Collect `discrepancies` with status `drift`, `conflict`, or `gap`\n   - security-reviewer: **pass** when `status` is `approved` or `approved_with_notes`. **fail** when `needs_revision`. **blocked** → Escalate to user\n   - Present unified verification report to user\n\n3. **Fix cycle** (when any verifier failed):\n   - Consolidate all actionable findings into a single task file\n   - Execute layer-appropriate task-executor with consolidated fixes → quality-fixer\n   - Re-run only the failed verifiers (by the criteria in step 2)\n   - Repeat until all pass or `blocked` → Escalate to user\n\n4. **All passed** → Proceed to Final Cleanup\n\n### Final Cleanup\n\nBefore the completion report, delete the implementation task files this recipe consumed. Their work is committed; `docs/plans/` is ephemeral working state and is not retained between recipe runs:\n\n- Delete every file matching `docs/plans/tasks/{plan-name}-backend-task-*.md` and `docs/plans/tasks/{plan-name}-frontend-task-*.md` (the `{plan-name}` derived from the work plan path used in this run)\n- Delete every file matching `docs/plans/tasks/{plan-name}-phase*-completion.md` (the per-phase completion files generated by task-decomposer)\n- Delete the corresponding `docs/plans/tasks/_overview-{plan-name}.md` if present\n- Preserve the work plan itself (`docs/plans/{plan-name}.md`) — the user decides whether to delete it after final review\n\nIf task files cannot be deleted (filesystem error), report the failure but do not block the completion report.\n\n### Test Information Communication\nAfter acceptance-test-generator execution, when invoking work-planner (subagent_type: \"dev-workflows:work-planner\"), communicate:\n- Generated integration test file path (from `generatedFiles.integration`)\n- Generated fixture-e2e test file path or null (from `generatedFiles.fixtureE2e`)\n- Generated service-integration-e2e test file path or null (from `generatedFiles.serviceE2e`)\n- Per-lane E2E absence reason (from `e2eAbsenceReason.fixtureE2e` and `e2eAbsenceReason.serviceE2e`, when each lane is null)\n- Explicit note: integration tests are created simultaneously with implementation, fixture-e2e tests are created alongside the UI feature phase, service-integration-e2e tests are executed only in the final phase\n\n## Execution Method\n\nAll work is executed through sub-agents.\nSub-agent selection follows monorepo-flow.md reference and subagents-orchestration-guide skill.","tags":["recipe","fullstack","implement","claude","code","workflows","shinpr","agent-skills","agentic-ai","ai-agents","automation","claude-code"],"capabilities":["skill","source-shinpr","skill-recipe-fullstack-implement","topic-agent-skills","topic-agentic-ai","topic-ai-agents","topic-automation","topic-claude-code","topic-claude-code-plugin","topic-code-quality","topic-developer-tools","topic-development-workflow","topic-llm-orchestration","topic-productivity","topic-prompt-engineering"],"categories":["claude-code-workflows"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/shinpr/claude-code-workflows/recipe-fullstack-implement","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add shinpr/claude-code-workflows","source_repo":"https://github.com/shinpr/claude-code-workflows","install_from":"skills.sh"}},"qualityScore":"0.629","qualityRationale":"deterministic score 0.63 from registry signals: · indexed on github topic:agent-skills · 358 github stars · SKILL.md body (9,923 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-18T18:54:31.377Z","embedding":null,"createdAt":"2026-04-18T22:03:12.788Z","updatedAt":"2026-05-18T18:54:31.377Z","lastSeenAt":"2026-05-18T18:54:31.377Z","tsv":"'-14':286 '-16':280 '/recipe-prepare-implementation':681 '1':74,173,279,285,827,931 '2':104,239,854,994,1093 '3':119,263,864,1052 '4':136,399,841,887,1103 'absenc':1301 'absent':705 'accept':1249 'acceptance-test-gener':1248 'across':10 'action':189,629,1061 'agent':79,84,154,299,784,845,924,937,1353,1356 'alongsid':1327 'alway':877 'ambigu':230 'analysi':23 'analyz':202,352,451,476,520 'append':728 'appli':625 'applic':424 'appropri':229,574,1071 'approv':143,335,580,593,608,905,1033,1035 'argument':179 'artifact':250 'askuserquest':652,675 'assess':176,180 'assur':30 'autonom':138,555,584 'backend':11,25,793,1149 'backend-task':792,1148 'base':783 'batch':142,607 'block':731,901,1042,1099,1240 'boundari':725,741 'build':221 'cannot':1229 'capabl':551 'chang':467,470,486 'check':463,540,588,855,863,888,997 'checklist':499 'clarifi':512 'cleanup':1109,1111 'code':528,940,948,963,1002 'code-verifi':527,939,947,1001 'codebas':519 'codebase-analyz':518 'collect':1018 'commit':547,550,577,876,908,1127 'communic':1246,1266 'complet':272,442,602,831,916,929,1114,1189,1242 'completion.md':1184 'complianc':494,567 'concret':425 'confid':481 'confirm':236,482,504 'conflict':1023 'consist':377,1008,1011 'consolid':995,1059,1076 'consum':1123 'content':178 'context':15,325,479 'continu':204,208,243,245,663,695 'core':33 'correct':849 'correspond':1198 'creat':316,714,1317,1326 'creation':329,526 'criteria':187,1090 'critic':148 'cross':375 'cross-lay':374 'current':174,182,254,434,509,880 'cycl':8,18,548,779,843,920,1054 'decid':1218 'decis':171,186 'decompos':597,613,635,1195 'defin':62,158,296 'definit':32 'deleg':75 'delet':1116,1140,1175,1196,1221,1231 'deliver':86 'deriv':1165 'design':24,109,112,115,264,274,318,327,331,345,365,371,381,524,537,953,958,987 'design-doc':957 'design-sync':114,370 'design-through-plan':273 'detail':900 'detect':218,894 'determin':409 'dev':390,796,802,811,819,945,982,1261 'dev-workflow':389,795,801,944,981,1260 'dev-workflows-frontend':810,818 'diff':970 'direct':209 'discrep':1019 'doc':113,319,328,332,366,382,525,538,954,955,959,988 'docs/plans':1128,1211 'docs/plans/tasks':1144,1153,1179 'docs/plans/tasks/_overview-':1199 'docs/tasks':206 'docs/work':252 'document':361,533,961 'document-review':360,532 'drift':1022 'e2e':1277,1289,1300,1323,1335 'e2eabsencereason.fixturee2e':1304 'e2eabsencereason.servicee2e':1306 'earlier':355 'edit/write/multiedit':582 'enforc':309 'enter':137 'entir':145 'environ':539,558 'ephemer':1130 'error':216,217,222,1233 'escal':135,553,564,636,656,762,862,902,1043,1100 'everi':297,576,733,1141,1176 'execut':72,149,170,223,359,435,473,495,498,543,664,759,777,828,1068,1252,1338,1344,1349 'executor':800,816,850,856,872,897,1074 'exist':193,205,246,719 'explicit':723,1312 'fail':1012,1038,1058,1086 'failur':220,1236 'fall':769 'featur':1330 'feature/fix':196 'file':751,882,886,966,992,1067,1120,1142,1177,1190,1228,1270,1279,1291 'filenam':781,788,852 'filename-pattern-bas':780 'filesystem':1232 'final':1108,1110,1224,1342 'find':620,1062 'finish':921 'first':418,685 'fix':766,1053,1077 'fixer':226,571,806,824,861,867,891,1080 'fixtur':1276,1322 'fixture-e2e':1275,1321 'flow':61,71,172,203,247,277,291,315,358,402,506,566 'follow':58,105,120,268,659,730,1358 'frontend':13,26,330,346,808,813,817,821,825,1158 'frontend-task':807,1157 'full':7,17,840 'full-cycl':6,16 'fullstack':3,19,60 'gap':647,661,1025 'generat':1191,1251,1267,1274,1285 'generatedfiles.fixturee2e':1284 'generatedfiles.integration':1273 'generatedfiles.servicee2e':1296 'git':969 'goe':837 'grant':606 'guid':43,54,99,124,168,493,1365 'head':975 'header':618 'ident':34 'identifi':210,258,508 'impact':464 'implement':4,9,20,28,146,586,623,653,676,692,911,965,991,1118,1320 'includ':521,530 'incompleteimplement':899 'inconsist':1017 'individu':431 'inform':1245 'instead':64 'instruct':177,398 'integr':1268,1288,1314,1334 'intent':231 'interpret':234 'investig':768 'invoc':300,368 'invok':81,446,610,736,932,950,1254 'key':306 'lane':1299,1309 'larg':282 'latest':249 'layer':14,70,228,321,324,376,573,1070 'layer-appropri':227,572,1069 'line':622,706 'list':662,967,993 'load':756 'main':974 'manag':21 'mandatori':47,406,500,773 'map':420 'marker':718 'match':460,1143,1178 'md':1151,1160,1203,1215 'medium':288 'method':1345 'miss':707 'mode':139,556,585 'monorepo-flow.md':106,162,214,262,269,323,415,502,790,1359 'most':1010 'multipl':111,233 'must':868 'n':670,703 'name':972,1147,1156,1164,1182,1202,1214 'name-on':971 'need':1014,1040 'new':190,195 'next':188,211,259,489,513,834 'note':1037,1313 'null':1282,1294,1311 'obtain':578 'older':711 'one':829 'oper':744 'orchestr':5,31,38,42,53,98,100,123,129,167,312,492,774,1364 'output':353 'outsid':583,770 'parallel':301,926,935 'pass':85,338,379,878,1004,1029,1097,1105 'pass/fail':998 'path':87,341,684,883,962,964,989,1170,1271,1280,1292 'pattern':185,782,853 'pend':672,679,710 'per':320,364,545,851,952,1187,1298 'per-lan':1297 'per-phas':1186 'per-task':544 'permit':93,102 'phase':110,147,255,267,1183,1188,1331,1343 'plan':27,266,276,617,640,683,690,713,1146,1155,1163,1169,1181,1201,1209,1213 'plan-nam':1145,1154,1162,1180,1200,1212 'plan-path':682 'plan/tasks':253 'planner':386,394,592,601,1257,1265 'point':132,157,305,307,517 'posit':256,511 'possibl':235 'post':910 'post-implement':909 'prd/adr/design':251 'pre':497 'pre-execut':496 'preflight':697,722 'preload':421 'present':207,673,1046,1205 'preserv':1206 'proceed':57,487,631,668,701,874,906,1106 'produc':354 'progress':240,439,510 'prompt':735,754 'protocol':73 'qualiti':29,215,225,560,570,778,805,823,860,866,890,1079 'quality-fix':224,569,804,859,865,889,1078 'quality-fixer-frontend':822 'question':457 're':472,1082 're-execut':471 're-run':1081 'read':48,501,614,637 'readi':587,624,630,642,654,677,717 'reason':1302 'recip':2,739,1122,1138 'recipe-fullstack-impl':1 'recogn':515 'refer':46,163,295,333,503,791,1360 'referenc':750 'references/monorepo-flow.md':49 'regist':400,410,427 'registr':444 'relev':505 'remain':646,660 'repeat':1094 'report':91,643,930,1049,1115,1234,1243 'request':197 'requir':22,45,191,201,450,475,565,765 'requirement-analyz':200,449,474 'requirements/design/planning/implementation/qa':257 'respond':455 'respons':134,459,775,892 'result':92,996 'resum':694 'retain':1136 'return':895 'reus':348 'review':362,534,978,986,1015,1028,1225 'revis':1041 'rout':785 'rule':130,302,426,627,826 'run':313,369,568,680,869,922,1083,1139,1174 'scale':283,289,408,466,469,485 'scope':724,740,748,761,772 'scopedependencies.question':462 'section':644 'secur':977,985,1027 'security-review':976,984,1026 'see':39,95,322,789 'select':1357 'separ':317,367 'servic':1287,1333 'service-integration-e2e':1286,1332 'set':433 'simultan':1318 'singl':69,960,1065 'single-lay':68 'situat':175,183,184 'skill':44,55,125,169,422,757,1366 'skill-recipe-fullstack-implement' 'slice':118,397 'source-shinpr' 'spec':337,340 'standard':67 'start':198,833 'state':1132 'status':628,857,1006,1021,1031 'step':151,212,260,278,284,298,403,412,429,436,490,507,514,842,1092 'stop':131,156,304,452,516,671,704 'structur':133 'stub':893 'sub':83,153,1352,1355 'sub-ag':82,152,1351,1354 'subag':41,52,97,122,166,387,447,491,562,727,734,743,942,979,1258,1363 'subagents-orchestration-guid':40,51,96,121,165,1362 'surfac':645 'sync':116,372 'tabl':292 'task':419,432,443,546,596,612,634,747,776,787,794,799,809,815,830,836,881,885,915,919,1066,1073,1119,1150,1159,1194,1227 'task-decompos':595,611,633,1193 'task-executor':798,1072 'task-executor-frontend':814 'taskcreat':405,417 'taskupd':441 'technic':344 'technical-designer-frontend':343 'test':219,559,1244,1250,1269,1278,1290,1315,1324,1336 'tool':80,94,103,561,846,938 'topic-agent-skills' 'topic-agentic-ai' 'topic-ai-agents' 'topic-automation' 'topic-claude-code' 'topic-claude-code-plugin' 'topic-code-quality' 'topic-developer-tools' 'topic-development-workflow' 'topic-llm-orchestration' 'topic-productivity' 'topic-prompt-engineering' 'treat':708 'type':388,943,956,980,1259 'ui':336,339,351,1329 'ui-analyz':350 'unavail':552 'unclear':232 'unifi':1047 'updat':478 'use':404,416,440,755,847,936,1171 'user':238,454,579,605,650,904,1045,1051,1102,1217 'verif':241,378,912,923,1048 'verifi':248,529,687,941,949,1003,1057,1087 'vertic':117,396 'via':651,674,844 'whether':1219 'within':745 'without':696 'work':77,194,385,393,591,600,616,639,689,712,1125,1131,1168,1208,1256,1264,1347 'work-plann':384,392,590,599,1255,1263 'workflow':391,797,803,812,820,946,983,1262 'y':667,700 'y/n':665,698","prices":[{"id":"3d9242d4-e38c-4c26-a817-fe8cb2fc66bb","listingId":"d6457db1-e6da-43ad-ae01-9ac04845a481","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"shinpr","category":"claude-code-workflows","install_from":"skills.sh"},"createdAt":"2026-04-18T22:03:12.788Z"}],"sources":[{"listingId":"d6457db1-e6da-43ad-ae01-9ac04845a481","source":"github","sourceId":"shinpr/claude-code-workflows/recipe-fullstack-implement","sourceUrl":"https://github.com/shinpr/claude-code-workflows/tree/main/skills/recipe-fullstack-implement","isPrimary":false,"firstSeenAt":"2026-04-18T22:03:12.788Z","lastSeenAt":"2026-05-18T18:54:31.377Z"}],"details":{"listingId":"d6457db1-e6da-43ad-ae01-9ac04845a481","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"shinpr","slug":"recipe-fullstack-implement","github":{"repo":"shinpr/claude-code-workflows","stars":358,"topics":["agent-skills","agentic-ai","ai-agents","automation","claude-code","claude-code-plugin","code-quality","developer-tools","development-workflow","llm-orchestration","productivity","prompt-engineering","skills"],"license":"mit","html_url":"https://github.com/shinpr/claude-code-workflows","pushed_at":"2026-05-16T07:20:38Z","description":"Production-ready development workflows for Claude Code, powered by specialized AI agents.","skill_md_sha":"755d2b229cdf50a69a8f2d33aa2578bf01e1addc","skill_md_path":"skills/recipe-fullstack-implement/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/shinpr/claude-code-workflows/tree/main/skills/recipe-fullstack-implement"},"layout":"multi","source":"github","category":"claude-code-workflows","frontmatter":{"name":"recipe-fullstack-implement","description":"Orchestrate full-cycle implementation across backend and frontend layers"},"skills_sh_url":"https://skills.sh/shinpr/claude-code-workflows/recipe-fullstack-implement"},"updatedAt":"2026-05-18T18:54:31.377Z"}}