[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71KCQBSV5DDJTQJS95VFSFV":3,"skill-same:01M71KCQBSV5DDJTQJS95VFSFV":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":74},"01M71KCQBSV5DDJTQJS95VFSFV","implement",null,"Use when a spec has tasks.md and should enter autonomous task execution.","mugsun\u002Fcurdx-flow","mugsun","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F100790155?v=4","01M6KJSAN2W4WRPDFBKTJTDDQ2","Mugsun","01M71K65VJXA4C1KPJAHZ6ZVHC",4,"MIT","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fimplement\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"write","spec","recovery","task","edit agent","use","execution","true","manual","edit","max","read","goal","tasks","Bash","when","autonomous","mode","quick","2026-11-10 10:12:30",false,"---\nname: implement\ndescription: Use when a spec has tasks.md and should enter autonomous task execution.\nargument-hint: \"[--max-task-iterations 5] [--max-global-iterations 30] [--goal-turns 30] [--manual] [--quick] [--recovery-mode]\"\nallowed-tools: \"Read Write Edit Agent Bash Skill\"\ndisallowed-tools: AskUserQuestion\ndisable-model-invocation: true\n---\n\n\n# Start Execution\n\nYou are starting the task execution loop.\n\n## Coordinator Checklist\n\nComplete these coordination steps in order; do not create user-facing implementation tasks from this checklist:\n\n1. **Validate prerequisites** -- check spec and tasks.md exist\n2. **Parse arguments** -- extract flags and options\n3. **Initialize state** -- write .curdx-state.json\n4. **Start goal-driven execution** -- compile native \u002Fgoal condition and delegate tasks via coordinator pattern\n5. **Handle completion** -- cleanup and output ALL_TASKS_COMPLETE\n\n## Step 1: Determine Active Spec and Validate\n\n**Resolve**:\n1. Run `curdx-flow snapshot --spec \"$ARGUMENTS\"` when `$ARGUMENTS` begins with a spec name; otherwise run `curdx-flow snapshot`.\n2. If `snapshot.active` is false, error: \"No active spec. Run \u002Fcurdx-flow:new \u003Cname> first.\"\n3. Set `$SPEC_PATH` to `snapshot.spec.fsPath`.\n\n**Validate**:\n1. Check the resolved spec directory exists\n2. Check `snapshot.artifacts.tasks.exists`. If false: error \"Tasks not found. Run \u002Fcurdx-flow:tasks first.\"\n3. Set `$SPEC_PATH` to the resolved spec directory path. All references use this variable.\n\n## Step 2: Parse Arguments\n\nFrom `$ARGUMENTS`:\n- **--max-task-iterations**: Max retries per task (default: 5). Cap on per-task retry loop; when hit, the current task is marked failed and the retry loop breaks (US-2 \u002F AC-2.2). Override example: `--max-task-iterations 10`.\n- **--max-global-iterations**: Max total loop iterations (default: 30 per FR-D1; tightened from legacy 100 to bound cost runaway blast radius). Safety limit to prevent infinite execution loops; when hit, the coordinator halts entirely (US-1 \u002F AC-1.1). Override example: `--max-global-iterations 100` to opt back into legacy cap. Mirrors `--max-task-iterations` parse pattern: flag value propagates into `state.maxGlobalIterations` at init.\n- **--goal-turns**: Max native `\u002Fgoal` turns before reporting an incomplete blocker (default: same as `--max-global-iterations`).\n- **--manual**: Do not ask the user to set native `\u002Fgoal`; run one coordinator turn and leave a resumable status. Use only when `\u002Fgoal` is unavailable because hooks are disabled or managed policy disallows it.\n- **--quick**: Non-interactive mode. Skip all confirmation prompts (branch selection, worktree creation, review approval). Branch handling per `references\u002Fbranch-management.md` § Quick Mode: on the default branch auto-create a feature branch in place without prompting; on a non-default branch stay put. Quick mode also short-circuits review approval prompts in earlier phases (research, requirements, design, tasks) and trusts `autoPolicy.reviewCadence` to gate verification. Use for CI, scripted runs, or experienced users who want minimum interruption.\n- **--recovery-mode**: Enable iterative failure recovery (default: false). When enabled, failed tasks trigger automatic fix task generation instead of stopping. Only affects execution failures; verification failures (Layer-3 review) follow `references\u002Fverification-layers.md` rules regardless of this flag.\n\nRead existing `.curdx-state.json::autoPolicy` before applying defaults:\n- If no explicit `--max-task-iterations`, use `autoPolicy.maxTaskIterations` when present, else 5.\n- If no explicit `--max-global-iterations`, use `autoPolicy.maxGlobalIterations` when present, else 30.\n- If no explicit `--goal-turns`, use the parsed max-global value.\n- Ignore legacy continuation policy keys from older state files; native `\u002Fgoal` is the default execution driver.\n\n## Step 3: Initialize Execution State\n\nCount tasks using the runtime CLI:\n\n```bash\nTASKS_JSON=$(curdx-flow tasks count \"$SPEC_PATH\u002Ftasks.md\")\nTOTAL=$(printf '%s' \"$TASKS_JSON\" | node -e 'let s=\"\";process.stdin.on(\"data\",c=>s+=c);process.stdin.on(\"end\",()=>process.stdout.write(String(JSON.parse(s).total)))')\nCOMPLETED=$(printf '%s' \"$TASKS_JSON\" | node -e 'let s=\"\";process.stdin.on(\"data\",c=>s+=c);process.stdin.on(\"end\",()=>process.stdout.write(String(JSON.parse(s).completed)))')\nFIRST_INCOMPLETE=$((COMPLETED))\n```\n\n**CRITICAL: Merge into existing state -- do NOT overwrite the file.**\n\nRead the existing `.curdx-state.json` first, then **merge** the execution fields into it.\nThis preserves fields set by earlier phases (e.g., `source`, `name`, `basePath`, `commitSpec`, `relatedSpecs`).\n\nUpdate `.curdx-state.json` by merging these fields into the existing object:\n```json\n{\n  \"phase\": \"execution\",\n  \"taskIndex\": \"\u003Cfirst incomplete>\",\n  \"totalTasks\": \"\u003Ccount>\",\n  \"taskIteration\": 1,\n  \"maxTaskIterations\": \"\u003Cparsed from --max-task-iterations or default 5>\",\n  \"recoveryMode\": \"\u003Ctrue if --recovery-mode flag present, false otherwise>\",\n  \"maxFixTasksPerOriginal\": 3,\n  \"maxFixTaskDepth\": 3,\n  \"globalIteration\": 1,\n  \"maxGlobalIterations\": \"\u003Cparsed from --max-global-iterations or default 30 (FR-D1; legacy 100 preserved on existing state files per FR-C1)>\",\n  \"fixTaskMap\": {},\n  \"modificationMap\": {},\n  \"maxModificationsPerTask\": 3,\n  \"maxModificationDepth\": 2,\n  \"awaitingApproval\": false,\n  \"executionDriver\": \"\u003C'manual' when --manual is present, otherwise 'goal'>\",\n  \"nativeTaskMap\": {},\n  \"nativeSyncEnabled\": true,\n  \"nativeSyncFailureCount\": 0\n}\n```\n\nUse the merge-state lib to preserve existing fields (atomic deep-merge, cross-platform):\n```bash\nPATCH=$(FIRST_INCOMPLETE=\"$FIRST_INCOMPLETE\" TOTAL=\"$TOTAL\" MAX_TASK_ITER=\"$MAX_TASK_ITER\" RECOVERY_MODE=\"$RECOVERY_MODE\" MAX_GLOBAL_ITER=\"$MAX_GLOBAL_ITER\" MANUAL_MODE=\"$MANUAL_MODE\" node -e '\nconst bool = (name) => \u002F^(1|true|yes)$\u002Fi.test(process.env[name] || \"\");\nconst num = (name, fallback) => {\n  const raw = process.env[name];\n  if (raw === undefined || raw === \"\") return fallback;\n  const value = Number(raw);\n  return Number.isFinite(value) ? value : fallback;\n};\nconsole.log(JSON.stringify({\n  phase: \"execution\",\n  taskIndex: num(\"FIRST_INCOMPLETE\", 0),\n  totalTasks: num(\"TOTAL\", 0),\n  taskIteration: 1,\n  maxTaskIterations: num(\"MAX_TASK_ITER\", 5),\n  recoveryMode: bool(\"RECOVERY_MODE\"),\n  maxFixTasksPerOriginal: 3,\n  maxFixTaskDepth: 3,\n  globalIteration: 1,\n  maxGlobalIterations: num(\"MAX_GLOBAL_ITER\", 30),\n  fixTaskMap: {},\n  modificationMap: {},\n  maxModificationsPerTask: 3,\n  maxModificationDepth: 2,\n  awaitingApproval: false,\n  executionDriver: bool(\"MANUAL_MODE\") ? \"manual\" : \"goal\",\n  nativeTaskMap: {},\n  nativeSyncEnabled: true,\n  nativeSyncFailureCount: 0\n}));\n')\ncurdx-flow state merge \"$SPEC_PATH\u002F.curdx-state.json\" \"$PATCH\"\n```\n\nWhere `$FIRST_INCOMPLETE` and `$TOTAL` come from the task count command, and `$MAX_TASK_ITER`, `$RECOVERY_MODE`, `$MAX_GLOBAL_ITER`, and `$MANUAL_MODE` come from parsed arguments (Step 2). The merge-state lib handles atomic write internally — no tmp+mv needed.\n\n**Preserved fields** (set by earlier phases, must NOT be removed):\n- `source`, `name`, `basePath`, `commitSpec`, `relatedSpecs`\n\n**State v2 policy**: New execution state uses `version: 2`. If a legacy state blocks execution, reinitialize with `\u002Fcurdx-flow:start --fresh` or rerun this skill after replacing the state file; do not silently migrate malformed state.\n\n## Step 4: Start Goal-Driven Execution\n\nAfter writing the state file, compile the native Claude Code `\u002Fgoal` bridge:\n\n```bash\ncurdx-flow goal --cwd \"$PWD\" --spec \"$SPEC_PATH\" --max-turns \"$GOAL_TURNS\"\n```\n\nTreat the JSON as the execution driver contract:\n- `slashCommand` is the exact native `\u002Fgoal` condition to run for unattended multi-turn execution.\n- `readiness` says whether native `\u002Fgoal` is actually available in this Claude Code environment. Only recommend native `\u002Fgoal` when `recommendedDriver` is `native-goal`.\n- `conditionLength` must be within the Claude Code limit; if it is `compressed`, keep the warning visible so the user knows the condition was shortened.\n- `condition` is transcript-verifiable. Claude must surface every proof needed by the goal evaluator; the evaluator will not run commands or read files by itself.\n- `evidenceProtocol` lists the proof that must appear before `ALL_TASKS_COMPLETE`.\n- `warnings` explains fallback cases such as `disableAllHooks`, managed `allowManagedHooksOnly`, update-needed Claude Code versions, or condition compression.\n\nDefault path:\n1. If `recommendedDriver` is `native-goal`, show the `slashCommand` prominently before the coordinator prompt.\n2. Tell the user that native `\u002Fgoal` drives follow-up turns. Do not claim unattended continuation unless that slash command is active and readiness is available.\n3. Continue with the first coordinator turn using the prompt below.\n\nManual fallback:\n- If `--manual` is present or `recommendedDriver` is `manual-resume`, run only the current coordinator turn.\n- Leave `.curdx-state.json` resumable and print the next action instead of relying on any Stop-hook continuation.\n- The Stop hook is now a deterministic safety\u002Fcompletion gate only; it must not be treated as the execution loop driver.\n\nBefore dispatching the first task, run:\n\n```bash\ncurdx-flow last-mile --cwd \"$PWD\" --spec \"$SPEC_PATH\" --record\n```\n\nTreat the JSON as the execution autopilot contract:\n- `phase` tells whether the coordinator is planning, implementing, verifying, recovering, or releasing.\n- `problemTypes` tells what is currently risky: missing context, UI quality, browser evidence, repeated failure, release risk, verification gap, scope drift, or missing dependency.\n- `capabilityPlan` tells when to use dependency wheels. Use `claude-mem`, `pua`, `ui-ux-pro-max`, or Chrome DevTools MCP only when their `availabilityState` is available\u002Fexpected; if missing, follow `fallbackWhenMissing` and do not reimplement the wheel inside curdx-flow.\n- `evidenceRequired` and `blockingGates` are completion gates. Do not output `ALL_TASKS_COMPLETE` while they are unsatisfied.\n- `coordinatorInstruction` is the next action for this loop iteration.\n\n### Coordinator Prompt\n\nOutput this prompt directly to start execution:\n\n```text\nYou are the execution COORDINATOR for spec: $spec\n```\n\nThen Read and follow these references in order. They contain the complete coordinator logic:\n\n1. **Core delegation pattern**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fcoordinator-pattern.md` and follow it.\n   This covers: role definition, integrity rules, reading state, checking completion, parsing tasks, parallel group detection, task delegation (sequential, parallel, [VERIFY] tasks), modification request handling, verification layers, state updates, progress merge, completion signal, and PR lifecycle loop.\n\n2. **Last-mile autopilot**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Flast-mile-autopilot.md` and follow it.\n   This covers automatic phase detection, capability routing, dependency plugin use, evidence gates, and recovery escalation.\n\n3. **Failure handling**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Ffailure-recovery.md` and follow it.\n   This covers: parsing failure output, fix task generation, fix task limits and depth checks, iterative recovery orchestrator, fix task insertion into tasks.md, fixTaskMap state tracking, and progress logging for fix chains.\n\n4. **Verification after each task**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fverification-layers.md` and follow it.\n   This covers: 3 layers (contradiction detection, TASK_COMPLETE signal, periodic artifact review via spec-reviewer). All must pass before advancing.\n\n5. **Phase-specific behavior**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fphase-rules.md` and follow it.\n   This covers: POC-first workflow (Phase 1-4), phase distribution, quality checkpoints, and phase-specific constraints.\n\n6. **Commit conventions**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fcommit-discipline.md` and follow it.\n   This covers: one commit per task, commit message format, spec file staging, and when to commit.\n\nBefore dispatching any task, read `.curdx-state.json::autoPolicy` and obey:\n- `executionDriver`: `goal` means native `\u002Fgoal` owns follow-up turns; `manual` means return a resumable status after the current turn.\n- `subagentPolicy`: no implementation subagent for `none`; on-demand delegation for `on-demand`; one focused subagent per vertical slice for `per-slice`.\n- `reviewCadence`: artifact review only at the cadence selected by policy.\n- `verificationLevel`: targeted\u002Fstandard\u002Fstrict verification depth.\n\n### Pre-Dispatch Cap Check (MANDATORY — runs every iteration, before any Agent(...) call)\n\nCRITICAL: At the top of every iteration loop body, immediately after reading `.curdx-state.json` and BEFORE any `Agent(...)` delegation call, the coordinator MUST evaluate the cost-runaway caps. This is the coordinator-side enforcement of `maxGlobalIterations` \u002F `maxTaskIterations` (spec-cost-runaway-guards FR-E1 \u002F US-1 \u002F US-2 \u002F AC-1.1 \u002F AC-2.2). The stop-watcher hook is the last-mile safety net; this pre-check is the first-line defense and avoids burning a dispatch round-trip when the cap is already breached.\n\n**Step A: Read caps from state**\n\nAfter reading `.curdx-state.json`, extract:\n- `globalIter = state.globalIteration` (default `1` if missing)\n- `maxGlobal = state.maxGlobalIterations` (default `30` per FR-D1; legacy state files may store `100` — preserve as-is)\n- `taskIter = state.taskIteration` (default `1` if missing)\n- `maxTask = state.maxTaskIterations` (default `5`)\n\n**Step B: Global cap pre-check (halts loop entirely)**\n\nIf `globalIteration >= maxGlobalIterations`:\n1. Do NOT delegate. Do NOT call `Agent(...)`. Do NOT advance `taskIndex`.\n2. Output the D4 cost-runaway STOP message verbatim (mirrors `buildCostRunawayBlock` in `src\u002Fhooks\u002Fstop-watcher.ts` so user sees identical wording from either surface):\n\n   ```text\n   Cost runaway guard tripped: globalIteration={globalIter} >= maxGlobalIterations={maxGlobal}.\n   Loop blocked. Either:\n   - Investigate why your loop ran {globalIter} iterations (check .progress.md)\n   - Override with: \u002Fcurdx-flow:implement --max-global-iterations \u003Chigher-cap>\n   - Reset by editing {state-file-path}: set globalIteration to a lower value\n\n   Spec: {specName}  Phase: implement\n   ```\n\n3. Halt the coordinator loop. Do NOT output `ALL_TASKS_COMPLETE` (tasks remain incomplete). Do NOT output `TASK_COMPLETE`.\n\n**Step C: Task-level cap pre-check (fails current task, breaks retry loop)**\n\nElse if `taskIteration >= maxTaskIterations`:\n1. Do NOT delegate the current task again. Mark the current task as failed in `.progress.md` (append a Learnings entry: `Task ${taskIndex} hit taskIteration cap (${taskIter} >= ${maxTask}) — marked failed, retry loop broken`).\n2. Output the task-level D4 message variant verbatim:\n\n   ```text\n   Cost runaway guard tripped: taskIteration={taskIter} >= maxTaskIterations={maxTask}.\n   Loop blocked. Either:\n   - Investigate why your loop ran {taskIter} iterations (check .progress.md)\n   - Override with: \u002Fcurdx-flow:implement --max-task-iterations \u003Chigher-cap>\n   - Reset by editing {state-file-path}: set taskIteration to a lower value\n\n   Spec: {specName}  Phase: implement\n   ```\n\n3. Break the per-task retry loop. Do not advance `taskIndex` automatically — surface the failure so the user can decide whether to override the cap, fix the underlying problem, or accept the partial completion. Do NOT output `ALL_TASKS_COMPLETE`.\n\n**Step D: Caps OK → proceed to standard delegation**\n\nOnly when both `globalIteration \u003C maxGlobalIterations` AND `taskIteration \u003C maxTaskIterations`, fall through to the standard task-delegation flow defined in `coordinator-pattern.md` (Parse Current Task → Parallel Group Detection → Task Delegation).\n\n> **Defense-in-depth note**: The stop-watcher hook re-evaluates the same condition via `buildCostRunawayBlock(state)` and emits the identical message string. If this coordinator pre-check is somehow skipped (e.g., manual override of state mid-iteration), the hook still blocks. Both surfaces use the same template so the user never sees split error wording.\n\n### Key Coordinator Behaviors (quick reference — see coordinator-pattern.md for authoritative details)\n\n- **You are a COORDINATOR, not an implementer.** Delegate via Agent tool. Never implement yourself.\n- **Fully autonomous.** Never ask questions or wait for user input.\n- **State-driven loop.** Read .curdx-state.json each iteration to determine current task.\n- **Completion check.** If taskIndex >= totalTasks, verify all [x] marks, mark state completed for audit, output ALL_TASKS_COMPLETE.\n- **Agent delegation.** Extract full task block from tasks.md, delegate to spec-executor (or qa-engineer for [VERIFY] tasks).\n- **After TASK_COMPLETE.** Run all 3 verification layers, then update state (advance taskIndex, reset taskIteration).\n- **On failure.** Parse failure output, increment taskIteration. If recovery-mode: generate fix task. If max retries exceeded: error and stop.\n- **Modification requests.** If TASK_MODIFICATION_REQUEST in output, process SPLIT_TASK \u002F ADD_PREREQUISITE \u002F ADD_FOLLOWUP per coordinator-pattern.md.\n\n### Error States (never output ALL_TASKS_COMPLETE)\n\n- Missing\u002Fcorrupt state file: error and suggest re-running \u002Fcurdx-flow:implement\n- Missing tasks.md: error and suggest running \u002Fcurdx-flow:tasks\n- Missing spec directory: error and suggest running \u002Fcurdx-flow:new\n- Max retries exceeded: error with failure details, suggest manual fix then resume\n- Max fix task depth\u002Fcount exceeded (recovery mode): error with fix history\n\n## Step 5: Completion\n\nWhen all tasks complete (taskIndex >= totalTasks):\n1. Verify all tasks marked [x] in tasks.md\n2. Record final execution verification before marking completion. Use the final completed task's exact `**Verify**` command from `tasks.md`:\n   ```bash\n   curdx-flow verify run --phase execution --command \"$VERIFY_CMD\" --spec \"$SPEC_PATH\"\n   ```\n   This command actually executes the verification and writes `.curdx-state.json::verificationBlocks.execution` with the command, exit code, timestamp, and source mtime. If it exits non-zero, do not continue to completion; fix the issue and rerun verification.\n3. Mark state as completed (preserve audit fields):\n   ```bash\n   COMPLETED_AT=$(node -e \"process.stdout.write(new Date().toISOString())\")\n   curdx-flow state merge \"$SPEC_PATH\u002F.curdx-state.json\" \"{\\\"completed\\\":true,\\\"completedAt\\\":\\\"$COMPLETED_AT\\\",\\\"awaitingApproval\\\":false}\"\n   ```\n4. Keep .progress.md (preserve learnings and history)\n5. Cleanup orphaned temp progress files: `find \"$SPEC_PATH\" -name \".progress-task-*.md\" -mmin +60 -delete 2>\u002Fdev\u002Fnull || true`\n6. Update spec index: `node \"${CLAUDE_PLUGIN_ROOT}\u002Fhooks\u002Fscripts\u002Fupdate-spec-index.mjs\" --quiet`\n7. Commit remaining spec changes:\n   ```bash\n   git add \"$SPEC_PATH\u002Ftasks.md\" \"$SPEC_PATH\u002F.progress.md\" \"$SPEC_PATH\u002F.curdx-state.json\" .\u002Fspecs\u002F.index\u002F\n   git diff --cached --quiet || git commit -m \"chore(spec): final progress update for $spec\"\n   ```\n8. Check for PR link: `gh pr view --json url -q .url 2>\u002Fdev\u002Fnull`\n9. Output: ALL_TASKS_COMPLETE (and PR link if exists)\n\n## Output on Start\n\n```text\nStarting execution for '$spec'\n\nTasks: $completed\u002F$total completed\nStarting from task $taskIndex\n\nThe execution loop will:\n- Execute one task at a time\n- Continue until all tasks complete or max iterations reached\n\nBeginning execution...\n```\n","# Start Execution\n\nYou are starting the task execution loop.\n\n## Coordinator Checklist\n\nComplete these coordination steps in order; do not create user-facing implementation tasks from this checklist:\n\n1. **Validate prerequisites** -- check spec and tasks.md exist\n2. **Parse arguments** -- extract flags and options\n3. **Initialize state** -- write .curdx-state.json\n4. **Start goal-driven execution** -- compile native \u002Fgoal condition and delegate tasks via coordinator pattern\n5. **Handle completion** -- cleanup and output ALL_TASKS_COMPLETE\n\n## Step 1: Determine Active Spec and Validate\n\n**Resolve**:\n1. Run `curdx-flow snapshot --spec \"$ARGUMENTS\"` when `$ARGUMENTS` begins with a spec name; otherwise run `curdx-flow snapshot`.\n2. If `snapshot.active` is false, error: \"No active spec. Run \u002Fcurdx-flow:new \u003Cname> first.\"\n3. Set `$SPEC_PATH` to `snapshot.spec.fsPath`.\n\n**Validate**:\n1. Check the resolved spec directory exists\n2. Check `snapshot.artifacts.tasks.exists`. If false: error \"Tasks not found. Run \u002Fcurdx-flow:tasks first.\"\n3. Set `$SPEC_PATH` to the resolved spec directory path. All references use this variable.\n\n## Step 2: Parse Arguments\n\nFrom `$ARGUMENTS`:\n- **--max-task-iterations**: Max retries per task (default: 5). Cap on per-task retry loop; when hit, the current task is marked failed and the retry loop breaks (US-2 \u002F AC-2.2). Override example: `--max-task-iterations 10`.\n- **--max-global-iterations**: Max total loop iterations (default: 30 per FR-D1; tightened from legacy 100 to bound cost runaway blast radius). Safety limit to prevent infinite execution loops; when hit, the coordinator halts entirely (US-1 \u002F AC-1.1). Override example: `--max-global-iterations 100` to opt back into legacy cap. Mirrors `--max-task-iterations` parse pattern: flag value propagates into `state.maxGlobalIterations` at init.\n- **--goal-turns**: Max native `\u002Fgoal` turns before reporting an incomplete blocker (default: same as `--max-global-iterations`).\n- **--manual**: Do not ask the user to set native `\u002Fgoal`; run one coordinator turn and leave a resumable status. Use only when `\u002Fgoal` is unavailable because hooks are disabled or managed policy disallows it.\n- **--quick**: Non-interactive mode. Skip all confirmation prompts (branch selection, worktree creation, review approval). Branch handling per `references\u002Fbranch-management.md` § Quick Mode: on the default branch auto-create a feature branch in place without prompting; on a non-default branch stay put. Quick mode also short-circuits review approval prompts in earlier phases (research, requirements, design, tasks) and trusts `autoPolicy.reviewCadence` to gate verification. Use for CI, scripted runs, or experienced users who want minimum interruption.\n- **--recovery-mode**: Enable iterative failure recovery (default: false). When enabled, failed tasks trigger automatic fix task generation instead of stopping. Only affects execution failures; verification failures (Layer-3 review) follow `references\u002Fverification-layers.md` rules regardless of this flag.\n\nRead existing `.curdx-state.json::autoPolicy` before applying defaults:\n- If no explicit `--max-task-iterations`, use `autoPolicy.maxTaskIterations` when present, else 5.\n- If no explicit `--max-global-iterations`, use `autoPolicy.maxGlobalIterations` when present, else 30.\n- If no explicit `--goal-turns`, use the parsed max-global value.\n- Ignore legacy continuation policy keys from older state files; native `\u002Fgoal` is the default execution driver.\n\n## Step 3: Initialize Execution State\n\nCount tasks using the runtime CLI:\n\n```bash\nTASKS_JSON=$(curdx-flow tasks count \"$SPEC_PATH\u002Ftasks.md\")\nTOTAL=$(printf '%s' \"$TASKS_JSON\" | node -e 'let s=\"\";process.stdin.on(\"data\",c=>s+=c);process.stdin.on(\"end\",()=>process.stdout.write(String(JSON.parse(s).total)))')\nCOMPLETED=$(printf '%s' \"$TASKS_JSON\" | node -e 'let s=\"\";process.stdin.on(\"data\",c=>s+=c);process.stdin.on(\"end\",()=>process.stdout.write(String(JSON.parse(s).completed)))')\nFIRST_INCOMPLETE=$((COMPLETED))\n```\n\n**CRITICAL: Merge into existing state -- do NOT overwrite the file.**\n\nRead the existing `.curdx-state.json` first, then **merge** the execution fields into it.\nThis preserves fields set by earlier phases (e.g., `source`, `name`, `basePath`, `commitSpec`, `relatedSpecs`).\n\nUpdate `.curdx-state.json` by merging these fields into the existing object:\n```json\n{\n  \"phase\": \"execution\",\n  \"taskIndex\": \"\u003Cfirst incomplete>\",\n  \"totalTasks\": \"\u003Ccount>\",\n  \"taskIteration\": 1,\n  \"maxTaskIterations\": \"\u003Cparsed from --max-task-iterations or default 5>\",\n  \"recoveryMode\": \"\u003Ctrue if --recovery-mode flag present, false otherwise>\",\n  \"maxFixTasksPerOriginal\": 3,\n  \"maxFixTaskDepth\": 3,\n  \"globalIteration\": 1,\n  \"maxGlobalIterations\": \"\u003Cparsed from --max-global-iterations or default 30 (FR-D1; legacy 100 preserved on existing state files per FR-C1)>\",\n  \"fixTaskMap\": {},\n  \"modificationMap\": {},\n  \"maxModificationsPerTask\": 3,\n  \"maxModificationDepth\": 2,\n  \"awaitingApproval\": false,\n  \"executionDriver\": \"\u003C'manual' when --manual is present, otherwise 'goal'>\",\n  \"nativeTaskMap\": {},\n  \"nativeSyncEnabled\": true,\n  \"nativeSyncFailureCount\": 0\n}\n```\n\nUse the merge-state lib to preserve existing fields (atomic deep-merge, cross-platform):\n```bash\nPATCH=$(FIRST_INCOMPLETE=\"$FIRST_INCOMPLETE\" TOTAL=\"$TOTAL\" MAX_TASK_ITER=\"$MAX_TASK_ITER\" RECOVERY_MODE=\"$RECOVERY_MODE\" MAX_GLOBAL_ITER=\"$MAX_GLOBAL_ITER\" MANUAL_MODE=\"$MANUAL_MODE\" node -e '\nconst bool = (name) => \u002F^(1|true|yes)$\u002Fi.test(process.env[name] || \"\");\nconst num = (name, fallback) => {\n  const raw = process.env[name];\n  if (raw === undefined || raw === \"\") return fallback;\n  const value = Number(raw);\n  return Number.isFinite(value) ? value : fallback;\n};\nconsole.log(JSON.stringify({\n  phase: \"execution\",\n  taskIndex: num(\"FIRST_INCOMPLETE\", 0),\n  totalTasks: num(\"TOTAL\", 0),\n  taskIteration: 1,\n  maxTaskIterations: num(\"MAX_TASK_ITER\", 5),\n  recoveryMode: bool(\"RECOVERY_MODE\"),\n  maxFixTasksPerOriginal: 3,\n  maxFixTaskDepth: 3,\n  globalIteration: 1,\n  maxGlobalIterations: num(\"MAX_GLOBAL_ITER\", 30),\n  fixTaskMap: {},\n  modificationMap: {},\n  maxModificationsPerTask: 3,\n  maxModificationDepth: 2,\n  awaitingApproval: false,\n  executionDriver: bool(\"MANUAL_MODE\") ? \"manual\" : \"goal\",\n  nativeTaskMap: {},\n  nativeSyncEnabled: true,\n  nativeSyncFailureCount: 0\n}));\n')\ncurdx-flow state merge \"$SPEC_PATH\u002F.curdx-state.json\" \"$PATCH\"\n```\n\nWhere `$FIRST_INCOMPLETE` and `$TOTAL` come from the task count command, and `$MAX_TASK_ITER`, `$RECOVERY_MODE`, `$MAX_GLOBAL_ITER`, and `$MANUAL_MODE` come from parsed arguments (Step 2). The merge-state lib handles atomic write internally — no tmp+mv needed.\n\n**Preserved fields** (set by earlier phases, must NOT be removed):\n- `source`, `name`, `basePath`, `commitSpec`, `relatedSpecs`\n\n**State v2 policy**: New execution state uses `version: 2`. If a legacy state blocks execution, reinitialize with `\u002Fcurdx-flow:start --fresh` or rerun this skill after replacing the state file; do not silently migrate malformed state.\n\n## Step 4: Start Goal-Driven Execution\n\nAfter writing the state file, compile the native Claude Code `\u002Fgoal` bridge:\n\n```bash\ncurdx-flow goal --cwd \"$PWD\" --spec \"$SPEC_PATH\" --max-turns \"$GOAL_TURNS\"\n```\n\nTreat the JSON as the execution driver contract:\n- `slashCommand` is the exact native `\u002Fgoal` condition to run for unattended multi-turn execution.\n- `readiness` says whether native `\u002Fgoal` is actually available in this Claude Code environment. Only recommend native `\u002Fgoal` when `recommendedDriver` is `native-goal`.\n- `conditionLength` must be within the Claude Code limit; if it is `compressed`, keep the warning visible so the user knows the condition was shortened.\n- `condition` is transcript-verifiable. Claude must surface every proof needed by the goal evaluator; the evaluator will not run commands or read files by itself.\n- `evidenceProtocol` lists the proof that must appear before `ALL_TASKS_COMPLETE`.\n- `warnings` explains fallback cases such as `disableAllHooks`, managed `allowManagedHooksOnly`, update-needed Claude Code versions, or condition compression.\n\nDefault path:\n1. If `recommendedDriver` is `native-goal`, show the `slashCommand` prominently before the coordinator prompt.\n2. Tell the user that native `\u002Fgoal` drives follow-up turns. Do not claim unattended continuation unless that slash command is active and readiness is available.\n3. Continue with the first coordinator turn using the prompt below.\n\nManual fallback:\n- If `--manual` is present or `recommendedDriver` is `manual-resume`, run only the current coordinator turn.\n- Leave `.curdx-state.json` resumable and print the next action instead of relying on any Stop-hook continuation.\n- The Stop hook is now a deterministic safety\u002Fcompletion gate only; it must not be treated as the execution loop driver.\n\nBefore dispatching the first task, run:\n\n```bash\ncurdx-flow last-mile --cwd \"$PWD\" --spec \"$SPEC_PATH\" --record\n```\n\nTreat the JSON as the execution autopilot contract:\n- `phase` tells whether the coordinator is planning, implementing, verifying, recovering, or releasing.\n- `problemTypes` tells what is currently risky: missing context, UI quality, browser evidence, repeated failure, release risk, verification gap, scope drift, or missing dependency.\n- `capabilityPlan` tells when to use dependency wheels. Use `claude-mem`, `pua`, `ui-ux-pro-max`, or Chrome DevTools MCP only when their `availabilityState` is available\u002Fexpected; if missing, follow `fallbackWhenMissing` and do not reimplement the wheel inside curdx-flow.\n- `evidenceRequired` and `blockingGates` are completion gates. Do not output `ALL_TASKS_COMPLETE` while they are unsatisfied.\n- `coordinatorInstruction` is the next action for this loop iteration.\n\n### Coordinator Prompt\n\nOutput this prompt directly to start execution:\n\n```text\nYou are the execution COORDINATOR for spec: $spec\n```\n\nThen Read and follow these references in order. They contain the complete coordinator logic:\n\n1. **Core delegation pattern**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fcoordinator-pattern.md` and follow it.\n   This covers: role definition, integrity rules, reading state, checking completion, parsing tasks, parallel group detection, task delegation (sequential, parallel, [VERIFY] tasks), modification request handling, verification layers, state updates, progress merge, completion signal, and PR lifecycle loop.\n\n2. **Last-mile autopilot**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Flast-mile-autopilot.md` and follow it.\n   This covers automatic phase detection, capability routing, dependency plugin use, evidence gates, and recovery escalation.\n\n3. **Failure handling**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Ffailure-recovery.md` and follow it.\n   This covers: parsing failure output, fix task generation, fix task limits and depth checks, iterative recovery orchestrator, fix task insertion into tasks.md, fixTaskMap state tracking, and progress logging for fix chains.\n\n4. **Verification after each task**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fverification-layers.md` and follow it.\n   This covers: 3 layers (contradiction detection, TASK_COMPLETE signal, periodic artifact review via spec-reviewer). All must pass before advancing.\n\n5. **Phase-specific behavior**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fphase-rules.md` and follow it.\n   This covers: POC-first workflow (Phase 1-4), phase distribution, quality checkpoints, and phase-specific constraints.\n\n6. **Commit conventions**: Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fcommit-discipline.md` and follow it.\n   This covers: one commit per task, commit message format, spec file staging, and when to commit.\n\nBefore dispatching any task, read `.curdx-state.json::autoPolicy` and obey:\n- `executionDriver`: `goal` means native `\u002Fgoal` owns follow-up turns; `manual` means return a resumable status after the current turn.\n- `subagentPolicy`: no implementation subagent for `none`; on-demand delegation for `on-demand`; one focused subagent per vertical slice for `per-slice`.\n- `reviewCadence`: artifact review only at the cadence selected by policy.\n- `verificationLevel`: targeted\u002Fstandard\u002Fstrict verification depth.\n\n### Pre-Dispatch Cap Check (MANDATORY — runs every iteration, before any Agent(...) call)\n\nCRITICAL: At the top of every iteration loop body, immediately after reading `.curdx-state.json` and BEFORE any `Agent(...)` delegation call, the coordinator MUST evaluate the cost-runaway caps. This is the coordinator-side enforcement of `maxGlobalIterations` \u002F `maxTaskIterations` (spec-cost-runaway-guards FR-E1 \u002F US-1 \u002F US-2 \u002F AC-1.1 \u002F AC-2.2). The stop-watcher hook is the last-mile safety net; this pre-check is the first-line defense and avoids burning a dispatch round-trip when the cap is already breached.\n\n**Step A: Read caps from state**\n\nAfter reading `.curdx-state.json`, extract:\n- `globalIter = state.globalIteration` (default `1` if missing)\n- `maxGlobal = state.maxGlobalIterations` (default `30` per FR-D1; legacy state files may store `100` — preserve as-is)\n- `taskIter = state.taskIteration` (default `1` if missing)\n- `maxTask = state.maxTaskIterations` (default `5`)\n\n**Step B: Global cap pre-check (halts loop entirely)**\n\nIf `globalIteration >= maxGlobalIterations`:\n1. Do NOT delegate. Do NOT call `Agent(...)`. Do NOT advance `taskIndex`.\n2. Output the D4 cost-runaway STOP message verbatim (mirrors `buildCostRunawayBlock` in `src\u002Fhooks\u002Fstop-watcher.ts` so user sees identical wording from either surface):\n\n   ```text\n   Cost runaway guard tripped: globalIteration={globalIter} >= maxGlobalIterations={maxGlobal}.\n   Loop blocked. Either:\n   - Investigate why your loop ran {globalIter} iterations (check .progress.md)\n   - Override with: \u002Fcurdx-flow:implement --max-global-iterations \u003Chigher-cap>\n   - Reset by editing {state-file-path}: set globalIteration to a lower value\n\n   Spec: {specName}  Phase: implement\n   ```\n\n3. Halt the coordinator loop. Do NOT output `ALL_TASKS_COMPLETE` (tasks remain incomplete). Do NOT output `TASK_COMPLETE`.\n\n**Step C: Task-level cap pre-check (fails current task, breaks retry loop)**\n\nElse if `taskIteration >= maxTaskIterations`:\n1. Do NOT delegate the current task again. Mark the current task as failed in `.progress.md` (append a Learnings entry: `Task ${taskIndex} hit taskIteration cap (${taskIter} >= ${maxTask}) — marked failed, retry loop broken`).\n2. Output the task-level D4 message variant verbatim:\n\n   ```text\n   Cost runaway guard tripped: taskIteration={taskIter} >= maxTaskIterations={maxTask}.\n   Loop blocked. Either:\n   - Investigate why your loop ran {taskIter} iterations (check .progress.md)\n   - Override with: \u002Fcurdx-flow:implement --max-task-iterations \u003Chigher-cap>\n   - Reset by editing {state-file-path}: set taskIteration to a lower value\n\n   Spec: {specName}  Phase: implement\n   ```\n\n3. Break the per-task retry loop. Do not advance `taskIndex` automatically — surface the failure so the user can decide whether to override the cap, fix the underlying problem, or accept the partial completion. Do NOT output `ALL_TASKS_COMPLETE`.\n\n**Step D: Caps OK → proceed to standard delegation**\n\nOnly when both `globalIteration \u003C maxGlobalIterations` AND `taskIteration \u003C maxTaskIterations`, fall through to the standard task-delegation flow defined in `coordinator-pattern.md` (Parse Current Task → Parallel Group Detection → Task Delegation).\n\n> **Defense-in-depth note**: The stop-watcher hook re-evaluates the same condition via `buildCostRunawayBlock(state)` and emits the identical message string. If this coordinator pre-check is somehow skipped (e.g., manual override of state mid-iteration), the hook still blocks. Both surfaces use the same template so the user never sees split error wording.\n\n### Key Coordinator Behaviors (quick reference — see coordinator-pattern.md for authoritative details)\n\n- **You are a COORDINATOR, not an implementer.** Delegate via Agent tool. Never implement yourself.\n- **Fully autonomous.** Never ask questions or wait for user input.\n- **State-driven loop.** Read .curdx-state.json each iteration to determine current task.\n- **Completion check.** If taskIndex >= totalTasks, verify all [x] marks, mark state completed for audit, output ALL_TASKS_COMPLETE.\n- **Agent delegation.** Extract full task block from tasks.md, delegate to spec-executor (or qa-engineer for [VERIFY] tasks).\n- **After TASK_COMPLETE.** Run all 3 verification layers, then update state (advance taskIndex, reset taskIteration).\n- **On failure.** Parse failure output, increment taskIteration. If recovery-mode: generate fix task. If max retries exceeded: error and stop.\n- **Modification requests.** If TASK_MODIFICATION_REQUEST in output, process SPLIT_TASK \u002F ADD_PREREQUISITE \u002F ADD_FOLLOWUP per coordinator-pattern.md.\n\n### Error States (never output ALL_TASKS_COMPLETE)\n\n- Missing\u002Fcorrupt state file: error and suggest re-running \u002Fcurdx-flow:implement\n- Missing tasks.md: error and suggest running \u002Fcurdx-flow:tasks\n- Missing spec directory: error and suggest running \u002Fcurdx-flow:new\n- Max retries exceeded: error with failure details, suggest manual fix then resume\n- Max fix task depth\u002Fcount exceeded (recovery mode): error with fix history\n\n## Step 5: Completion\n\nWhen all tasks complete (taskIndex >= totalTasks):\n1. Verify all tasks marked [x] in tasks.md\n2. Record final execution verification before marking completion. Use the final completed task's exact `**Verify**` command from `tasks.md`:\n   ```bash\n   curdx-flow verify run --phase execution --command \"$VERIFY_CMD\" --spec \"$SPEC_PATH\"\n   ```\n   This command actually executes the verification and writes `.curdx-state.json::verificationBlocks.execution` with the command, exit code, timestamp, and source mtime. If it exits non-zero, do not continue to completion; fix the issue and rerun verification.\n3. Mark state as completed (preserve audit fields):\n   ```bash\n   COMPLETED_AT=$(node -e \"process.stdout.write(new Date().toISOString())\")\n   curdx-flow state merge \"$SPEC_PATH\u002F.curdx-state.json\" \"{\\\"completed\\\":true,\\\"completedAt\\\":\\\"$COMPLETED_AT\\\",\\\"awaitingApproval\\\":false}\"\n   ```\n4. Keep .progress.md (preserve learnings and history)\n5. Cleanup orphaned temp progress files: `find \"$SPEC_PATH\" -name \".progress-task-*.md\" -mmin +60 -delete 2>\u002Fdev\u002Fnull || true`\n6. Update spec index: `node \"${CLAUDE_PLUGIN_ROOT}\u002Fhooks\u002Fscripts\u002Fupdate-spec-index.mjs\" --quiet`\n7. Commit remaining spec changes:\n   ```bash\n   git add \"$SPEC_PATH\u002Ftasks.md\" \"$SPEC_PATH\u002F.progress.md\" \"$SPEC_PATH\u002F.curdx-state.json\" .\u002Fspecs\u002F.index\u002F\n   git diff --cached --quiet || git commit -m \"chore(spec): final progress update for $spec\"\n   ```\n8. Check for PR link: `gh pr view --json url -q .url 2>\u002Fdev\u002Fnull`\n9. Output: ALL_TASKS_COMPLETE (and PR link if exists)\n\n## Output on Start\n\n```text\nStarting execution for '$spec'\n\nTasks: $completed\u002F$total completed\nStarting from task $taskIndex\n\nThe execution loop will:\n- Execute one task at a time\n- Continue until all tasks complete or max iterations reached\n\nBeginning execution...\n```\n",{"name":5,"description":7,"allowed-tools":48,"argument-hint":49,"disallowed-tools":50,"disable-model-invocation":51},"Read Write Edit Agent Bash Skill","[--max-task-iterations 5] [--max-global-iterations 30] [--goal-turns 30] [--manual] [--quick] [--recovery-mode]","AskUserQuestion",true,"main","7357746802ae7a84cafa93b9dbffd138817b0290","plugins\u002Fcurdx-flow\u002Fskills\u002Fimplement",0,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow","https:\u002F\u002Fcurdx.org","https:\u002F\u002Fgithub.com\u002Fmugsun","📮 bydongxin@gmail.com","🧑‍💻 AI Builder & Software Engineer\r\n🚀 Turning ideas into software.          \r\n\r\n","2026-08-19 15:19:29",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":51},[64,67,70],{"tool":65,"command":66},"npx","npx skills add mugsun\u002Fcurdx-flow --skill implement",{"tool":68,"command":69},"bunx","bunx skills add mugsun\u002Fcurdx-flow --skill implement",{"tool":71,"command":72},"pnpm","pnpm dlx skills add mugsun\u002Fcurdx-flow --skill implement","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fimplement\u002FSKILL.md",[],[76,85,102,114,125,136],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":83,"publishedAt":43},"01M71KDR5EJP6G4VWFCHNJ35PT","help","Fixture help skill","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fruntime-readiness\u002Fclaude-code-plugin-like\u002Fskills\u002Fhelp\u002FSKILL.md",[82],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[78,84],"fixture",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":43},"01M71KDNAVB000W3MZB1W7CMD8","verification-before-completion","Use when checking fixes, phase exits, completion evidence, or mock-heavy tests before claiming success.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[92,93,94,95,39,37,96,97,98,99,29,100,101],"verification","verification before completion","only","false","phase","evidence","fixes","tests","mock","state",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":109,"publishedAt":43},"01M71KDKFE975GFYRDC21H1NEE","triage","Use when a large feature should be decomposed into dependency-aware specs.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Ftriage\u002FSKILL.md",[108],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[104,36,31,110,24,35,111,112,38,39,29,113],"feature","dependency","name","EPIC",{"skillNo":115,"name":37,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":43},"01M71KDH7XFQJPKYZ0H9JDNSA5","Use when a spec has design.md and needs implementation tasks.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Ftasks\u002FSKILL.md",[119],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[37,121,25,112,27,29,122,123,124,39,38,35,24,33,31],"implementation","standard","design","auto",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":132,"publishedAt":43},"01M71KDEV9G51MCXDQWPJH7QST","switch","Use when changing the active spec by name or path.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fswitch\u002FSKILL.md",[131],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[127,38,133,31,29,39,134,112,35,25,24,135],"by name","active","path",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":143,"publishedAt":43},"01M71KDDJFRV09YZ08B3WJ39SC","status","Use when inspecting curdx-flow specs, active state, progress, or index status.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fstatus\u002FSKILL.md",[142],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[138,31,29,39,38,101,144,134,145,35,146,147],"progress","update","flow","index"]