[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71KCYZA60AA12SB2C9526CG":3,"skill-same:01M71KCYZA60AA12SB2C9526CG":70},{"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":26,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":69},"01M71KCYZA60AA12SB2C9526CG","new",null,"Use when creating a new curdx-flow spec from a name and goal.","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\u002Fnew\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,27,28,29,30,31,32,33,34,35,36,37,38],"true","use","when","Bash","research","goal","name","spec","write","flow","flow spec","path","2026-11-10 10:12:30",false,"---\nname: new\ndescription: Use when creating a new curdx-flow spec from a name and goal.\nargument-hint: \"\u003Cspec-name> [goal description] [--skip-research] [--specs-dir \u003Cpath>]\"\nallowed-tools: \"Bash Write Agent AskUserQuestion\"\ndisable-model-invocation: true\n---\n\n\n# Create New Spec\n\nYou are creating a new specification and starting the research phase.\n\n## Parse Arguments\n\nFrom `$ARGUMENTS`, extract:\n- **name**: The spec name (required, must be kebab-case, first argument)\n- **goal**: Everything after the name except flags (optional)\n- **--skip-research**: If present, skip research and start with requirements\n- **--specs-dir \u003Cpath>**: Create spec in specified directory (must be in configured specs_dirs array)\n\nExamples:\n- `\u002Fcurdx-flow:new user-auth` -> name=\"user-auth\", goal=none\n- `\u002Fcurdx-flow:new user-auth Add OAuth2 login` -> name=\"user-auth\", goal=\"Add OAuth2 login\"\n- `\u002Fcurdx-flow:new user-auth --skip-research` -> name=\"user-auth\", goal=none, skip research\n- `\u002Fcurdx-flow:new api-auth --specs-dir .\u002Fpackages\u002Fapi\u002Fspecs` -> create in specified dir\n\n## Multi-Directory Resolution\n\nThis command uses the plugin runtime for multi-directory support:\n\n```text\ncurdx-flow specs dirs             # Returns defaultDir and all configured spec directories\ncurdx-flow specs find \u003Cname>      # Find spec by name across configured roots\ncurdx-flow specs list             # List specs as {name,path} objects\ncurdx-flow specs resolve [input]  # Resolve current spec, name, or path\n```\n\n## --specs-dir Validation\n\nWhen `--specs-dir` is provided:\n1. Run `curdx-flow specs dirs` to get configured directories\n2. Check if provided path matches one of the configured directories\n3. If NOT in configured list: Error \"Invalid --specs-dir: '$path' is not in configured specs_dirs\"\n4. If valid: Use this path as the spec root instead of default\n\n```text\n--specs-dir Validation Logic:\n\n1. Extract --specs-dir value from $ARGUMENTS\n2. Get configured dirs: `curdx-flow specs dirs`\n3. Normalize paths (remove trailing slashes)\n4. Check: specsDir in dirs?\n   - YES: Use specsDir for spec creation\n   - NO: Error \"Invalid --specs-dir: '$specsDir' is not in configured specs_dirs. Configured: $dirs\"\n```\n\n## Spec Directory Resolution\n\n```text\nSpec Directory Logic:\n\n1. Check if --specs-dir in $ARGUMENTS\n   - YES: Validate against configured specs_dirs, use if valid\n   - NO: Use `defaultDir` from `curdx-flow specs dirs` (defaults to .\u002Fspecs)\n\n2. Determine spec base path:\n   specsDir = validated --specs-dir OR runtime defaultDir\n   basePath = \"$specsDir\u002F$name\"\n\n3. For .current-spec:\n   - If specsDir == \".\u002Fspecs\" (default): Write bare name\n   - If specsDir != \".\u002Fspecs\" (non-default): Write full path \"$specsDir\u002F$name\"\n```\n\n## Capture Goal\n\n\u003Cmandatory>\nThe goal MUST be captured before proceeding:\n\n1. If goal text was provided in arguments, use it\n2. If NO goal text provided, use AskUserQuestion to ask:\n   \"What is the goal for this spec? Describe what you want to build or achieve.\"\n3. Store the goal verbatim in .progress.md under \"Original Goal\"\n\u003C\u002Fmandatory>\n\n## Validation\n\n1. Verify spec name is provided\n2. Verify spec name is kebab-case (lowercase, hyphens only)\n3. If --specs-dir provided, validate against configured specs_dirs\n4. Determine target directory: specsDir = (validated --specs-dir) OR runtime defaultDir\n5. Check if `$specsDir\u002F$name\u002F` already exists. If so, ask user if they want to resume or overwrite\n\n## Initialize\n\n1. Determine spec directory and base path:\n   ```text\n   specsDir = (validated --specs-dir) OR runtime defaultDir\n   basePath = \"$specsDir\u002F$name\"\n   defaultDir = runtime defaultDir\n   ```\n\n2. Create directory structure:\n   ```bash\n   mkdir -p \"$basePath\"\n   ```\n\n3. Update active spec tracker based on root directory:\n   ```bash\n   # Write to .current-spec in default specs dir\n   if [ \"$specsDir\" = \"$defaultDir\" ]; then\n       echo \"$name\" > \"$defaultDir\u002F.current-spec\"     # Bare name for default root\n   else\n       echo \"$basePath\" > \"$defaultDir\u002F.current-spec\" # Full path for non-default root\n   fi\n   ```\n\n   For default-root specs, never write `specs\u002F$name` to `.current-spec`; write the bare name only.\n\n4. Ensure gitignore entries exist for spec state files:\n   ```bash\n   # Add .current-spec and .progress.md to .gitignore if not already present\n   if [ -f .gitignore ]; then\n     grep -q \"specs\u002F.current-spec\" .gitignore || echo \"specs\u002F.current-spec\" >> .gitignore\n     grep -q \"\\*\\*\u002F\\.progress\\.md\" .gitignore || echo \"**\u002F.progress.md\" >> .gitignore\n   else\n     echo \"specs\u002F.current-spec\" > .gitignore\n     echo \"**\u002F.progress.md\" >> .gitignore\n   fi\n   ```\n\n5. Create `.curdx-state.json` in the spec directory (note: basePath uses resolved path):\n   First compute deterministic AutoPolicy:\n   ```bash\n   ROUTE_JSON=$(curdx-flow route --name \"$name\" --goal \"$goal\" --flags \"$ARGUMENTS\")\n   POLICY_JSON=$(printf '%s' \"$ROUTE_JSON\" | node -e 'let s=\"\";process.stdin.on(\"data\",c=>s+=c);process.stdin.on(\"end\",()=>process.stdout.write(JSON.stringify(JSON.parse(s).policy)))')\n   ```\n   If `POLICY_JSON.executionMode == \"epic-triage\"` or `POLICY_JSON.shouldSplitSpec == true`, stop and route to `\u002Fcurdx-flow:triage` with the same goal.\n\n   ```json\n   {\n     \"version\": 2,\n     \"source\": \"spec\",\n     \"name\": \"$name\",\n     \"basePath\": \"$basePath\",\n     \"identity\": { \"name\": \"$name\", \"basePath\": \"$basePath\", \"goal\": \"$goal\" },\n     \"phase\": \"research\",\n     \"taskIndex\": 0,\n     \"totalTasks\": 0,\n     \"taskIteration\": 1,\n     \"maxTaskIterations\": \"\u003CPOLICY_JSON.maxTaskIterations>\",\n     \"globalIteration\": 1,\n     \"maxGlobalIterations\": \"\u003CPOLICY_JSON.maxGlobalIterations>\",\n     \"executionDriver\": \"goal\",\n     \"autoPolicy\": \"\u003CPOLICY_JSON object>\",\n     \"route\": \"\u003CROUTE_JSON compact object>\",\n     \"granularity\": \"\u003CPOLICY_JSON.taskGranularity>\"\n   }\n   ```\n\n   If `--skip-research`, set `\"phase\": \"requirements\"` instead.\n   If AutoPolicy cannot be computed, fall back to `\"maxGlobalIterations\": 30`.\n\n6. Create initial `.progress.md` with the captured goal:\n   ```markdown\n   ---\n   spec: $name\n   basePath: $basePath\n   phase: research\n   task: 0\u002F0\n   updated: \u003Ccurrent timestamp>\n   ---\n\n   # Progress: $name\n\n   ## Original Goal\n\n   $goal\n\n   ## Completed Tasks\n\n   _No tasks completed yet_\n\n   ## Current Task\n\n   Starting research phase\n\n   ## Learnings\n\n   _Discoveries and insights will be captured here_\n\n   ## Blockers\n\n   - None currently\n\n   ## Next\n\n   Complete research, then proceed to requirements\n   ```\n\n## Execute Research Phase\n\nIf NOT `--skip-research`:\n\n\u003Cmandatory>\nUse the Agent tool with `agent_type: research-analyst` to run the research phase.\n\u003C\u002Fmandatory>\n\nInvoke research-analyst agent with:\n- The user's goal\u002Ffeature description from the conversation\n- The spec name and basePath (resolved from --specs-dir or default)\n- Instructions to output `$basePath\u002Fresearch.md`\n\nThe agent will:\n1. Search web for best practices and prior art\n2. Explore codebase for existing patterns\n3. Assess feasibility\n4. Create research.md with findings and recommendations\n\nAfter research completes:\n\n\u003Cmandatory>\n**STOP HERE. DO NOT PROCEED TO REQUIREMENTS.**\n\n(This does not apply in `--quick` mode, which auto-generates all artifacts without stopping.)\n\nAfter displaying the output, you MUST:\n1. End your response immediately\n2. Wait for the user to review research.md\n3. Only proceed to requirements when user explicitly runs `\u002Fcurdx-flow:requirements`\n\nDO NOT automatically invoke the product-manager or run the requirements phase.\nThe user needs time to review research findings before proceeding.\n\u003C\u002Fmandatory>\n\n## Execute Requirements Phase (if --skip-research)\n\nIf `--skip-research` was specified:\n\n\u003Cmandatory>\nUse the Agent tool with `agent_type: product-manager` to run the requirements phase.\n\u003C\u002Fmandatory>\n\nInvoke product-manager agent with:\n- The user's goal\u002Ffeature description\n- The spec name and basePath (resolved from --specs-dir or default)\n- Instructions to output `$basePath\u002Frequirements.md`\n\n## Output\n\nAfter completion, inform the user:\n\n```\nSpec '$name' created at $basePath\u002F\n\nCurrent phase: research (or requirements if skipped)\n\nNext steps:\n- Review the generated research.md (or requirements.md)\n- Run \u002Fcurdx-flow:requirements to proceed (or \u002Fcurdx-flow:design if skipped research)\n```\n\n**With --specs-dir:**\n```\nSpec '$name' created at $basePath\u002F (--specs-dir: $specsDir)\n\nCurrent phase: research (or requirements if skipped)\n\nNext steps:\n- Review the generated research.md (or requirements.md)\n- Run \u002Fcurdx-flow:requirements to proceed (or \u002Fcurdx-flow:design if skipped research)\n```\n\n\u003Cmandatory>\n**STOP AFTER DISPLAYING OUTPUT.**\n\n(This does not apply in `--quick` mode, which auto-generates all artifacts without stopping.)\n\nDo NOT proceed to the next phase automatically.\nWait for explicit user command to continue.\n\u003C\u002Fmandatory>\n","# Create New Spec\n\nYou are creating a new specification and starting the research phase.\n\n## Parse Arguments\n\nFrom `$ARGUMENTS`, extract:\n- **name**: The spec name (required, must be kebab-case, first argument)\n- **goal**: Everything after the name except flags (optional)\n- **--skip-research**: If present, skip research and start with requirements\n- **--specs-dir \u003Cpath>**: Create spec in specified directory (must be in configured specs_dirs array)\n\nExamples:\n- `\u002Fcurdx-flow:new user-auth` -> name=\"user-auth\", goal=none\n- `\u002Fcurdx-flow:new user-auth Add OAuth2 login` -> name=\"user-auth\", goal=\"Add OAuth2 login\"\n- `\u002Fcurdx-flow:new user-auth --skip-research` -> name=\"user-auth\", goal=none, skip research\n- `\u002Fcurdx-flow:new api-auth --specs-dir .\u002Fpackages\u002Fapi\u002Fspecs` -> create in specified dir\n\n## Multi-Directory Resolution\n\nThis command uses the plugin runtime for multi-directory support:\n\n```text\ncurdx-flow specs dirs             # Returns defaultDir and all configured spec directories\ncurdx-flow specs find \u003Cname>      # Find spec by name across configured roots\ncurdx-flow specs list             # List specs as {name,path} objects\ncurdx-flow specs resolve [input]  # Resolve current spec, name, or path\n```\n\n## --specs-dir Validation\n\nWhen `--specs-dir` is provided:\n1. Run `curdx-flow specs dirs` to get configured directories\n2. Check if provided path matches one of the configured directories\n3. If NOT in configured list: Error \"Invalid --specs-dir: '$path' is not in configured specs_dirs\"\n4. If valid: Use this path as the spec root instead of default\n\n```text\n--specs-dir Validation Logic:\n\n1. Extract --specs-dir value from $ARGUMENTS\n2. Get configured dirs: `curdx-flow specs dirs`\n3. Normalize paths (remove trailing slashes)\n4. Check: specsDir in dirs?\n   - YES: Use specsDir for spec creation\n   - NO: Error \"Invalid --specs-dir: '$specsDir' is not in configured specs_dirs. Configured: $dirs\"\n```\n\n## Spec Directory Resolution\n\n```text\nSpec Directory Logic:\n\n1. Check if --specs-dir in $ARGUMENTS\n   - YES: Validate against configured specs_dirs, use if valid\n   - NO: Use `defaultDir` from `curdx-flow specs dirs` (defaults to .\u002Fspecs)\n\n2. Determine spec base path:\n   specsDir = validated --specs-dir OR runtime defaultDir\n   basePath = \"$specsDir\u002F$name\"\n\n3. For .current-spec:\n   - If specsDir == \".\u002Fspecs\" (default): Write bare name\n   - If specsDir != \".\u002Fspecs\" (non-default): Write full path \"$specsDir\u002F$name\"\n```\n\n## Capture Goal\n\n\u003Cmandatory>\nThe goal MUST be captured before proceeding:\n\n1. If goal text was provided in arguments, use it\n2. If NO goal text provided, use AskUserQuestion to ask:\n   \"What is the goal for this spec? Describe what you want to build or achieve.\"\n3. Store the goal verbatim in .progress.md under \"Original Goal\"\n\u003C\u002Fmandatory>\n\n## Validation\n\n1. Verify spec name is provided\n2. Verify spec name is kebab-case (lowercase, hyphens only)\n3. If --specs-dir provided, validate against configured specs_dirs\n4. Determine target directory: specsDir = (validated --specs-dir) OR runtime defaultDir\n5. Check if `$specsDir\u002F$name\u002F` already exists. If so, ask user if they want to resume or overwrite\n\n## Initialize\n\n1. Determine spec directory and base path:\n   ```text\n   specsDir = (validated --specs-dir) OR runtime defaultDir\n   basePath = \"$specsDir\u002F$name\"\n   defaultDir = runtime defaultDir\n   ```\n\n2. Create directory structure:\n   ```bash\n   mkdir -p \"$basePath\"\n   ```\n\n3. Update active spec tracker based on root directory:\n   ```bash\n   # Write to .current-spec in default specs dir\n   if [ \"$specsDir\" = \"$defaultDir\" ]; then\n       echo \"$name\" > \"$defaultDir\u002F.current-spec\"     # Bare name for default root\n   else\n       echo \"$basePath\" > \"$defaultDir\u002F.current-spec\" # Full path for non-default root\n   fi\n   ```\n\n   For default-root specs, never write `specs\u002F$name` to `.current-spec`; write the bare name only.\n\n4. Ensure gitignore entries exist for spec state files:\n   ```bash\n   # Add .current-spec and .progress.md to .gitignore if not already present\n   if [ -f .gitignore ]; then\n     grep -q \"specs\u002F.current-spec\" .gitignore || echo \"specs\u002F.current-spec\" >> .gitignore\n     grep -q \"\\*\\*\u002F\\.progress\\.md\" .gitignore || echo \"**\u002F.progress.md\" >> .gitignore\n   else\n     echo \"specs\u002F.current-spec\" > .gitignore\n     echo \"**\u002F.progress.md\" >> .gitignore\n   fi\n   ```\n\n5. Create `.curdx-state.json` in the spec directory (note: basePath uses resolved path):\n   First compute deterministic AutoPolicy:\n   ```bash\n   ROUTE_JSON=$(curdx-flow route --name \"$name\" --goal \"$goal\" --flags \"$ARGUMENTS\")\n   POLICY_JSON=$(printf '%s' \"$ROUTE_JSON\" | node -e 'let s=\"\";process.stdin.on(\"data\",c=>s+=c);process.stdin.on(\"end\",()=>process.stdout.write(JSON.stringify(JSON.parse(s).policy)))')\n   ```\n   If `POLICY_JSON.executionMode == \"epic-triage\"` or `POLICY_JSON.shouldSplitSpec == true`, stop and route to `\u002Fcurdx-flow:triage` with the same goal.\n\n   ```json\n   {\n     \"version\": 2,\n     \"source\": \"spec\",\n     \"name\": \"$name\",\n     \"basePath\": \"$basePath\",\n     \"identity\": { \"name\": \"$name\", \"basePath\": \"$basePath\", \"goal\": \"$goal\" },\n     \"phase\": \"research\",\n     \"taskIndex\": 0,\n     \"totalTasks\": 0,\n     \"taskIteration\": 1,\n     \"maxTaskIterations\": \"\u003CPOLICY_JSON.maxTaskIterations>\",\n     \"globalIteration\": 1,\n     \"maxGlobalIterations\": \"\u003CPOLICY_JSON.maxGlobalIterations>\",\n     \"executionDriver\": \"goal\",\n     \"autoPolicy\": \"\u003CPOLICY_JSON object>\",\n     \"route\": \"\u003CROUTE_JSON compact object>\",\n     \"granularity\": \"\u003CPOLICY_JSON.taskGranularity>\"\n   }\n   ```\n\n   If `--skip-research`, set `\"phase\": \"requirements\"` instead.\n   If AutoPolicy cannot be computed, fall back to `\"maxGlobalIterations\": 30`.\n\n6. Create initial `.progress.md` with the captured goal:\n   ```markdown\n   ---\n   spec: $name\n   basePath: $basePath\n   phase: research\n   task: 0\u002F0\n   updated: \u003Ccurrent timestamp>\n   ---\n\n   # Progress: $name\n\n   ## Original Goal\n\n   $goal\n\n   ## Completed Tasks\n\n   _No tasks completed yet_\n\n   ## Current Task\n\n   Starting research phase\n\n   ## Learnings\n\n   _Discoveries and insights will be captured here_\n\n   ## Blockers\n\n   - None currently\n\n   ## Next\n\n   Complete research, then proceed to requirements\n   ```\n\n## Execute Research Phase\n\nIf NOT `--skip-research`:\n\n\u003Cmandatory>\nUse the Agent tool with `agent_type: research-analyst` to run the research phase.\n\u003C\u002Fmandatory>\n\nInvoke research-analyst agent with:\n- The user's goal\u002Ffeature description from the conversation\n- The spec name and basePath (resolved from --specs-dir or default)\n- Instructions to output `$basePath\u002Fresearch.md`\n\nThe agent will:\n1. Search web for best practices and prior art\n2. Explore codebase for existing patterns\n3. Assess feasibility\n4. Create research.md with findings and recommendations\n\nAfter research completes:\n\n\u003Cmandatory>\n**STOP HERE. DO NOT PROCEED TO REQUIREMENTS.**\n\n(This does not apply in `--quick` mode, which auto-generates all artifacts without stopping.)\n\nAfter displaying the output, you MUST:\n1. End your response immediately\n2. Wait for the user to review research.md\n3. Only proceed to requirements when user explicitly runs `\u002Fcurdx-flow:requirements`\n\nDO NOT automatically invoke the product-manager or run the requirements phase.\nThe user needs time to review research findings before proceeding.\n\u003C\u002Fmandatory>\n\n## Execute Requirements Phase (if --skip-research)\n\nIf `--skip-research` was specified:\n\n\u003Cmandatory>\nUse the Agent tool with `agent_type: product-manager` to run the requirements phase.\n\u003C\u002Fmandatory>\n\nInvoke product-manager agent with:\n- The user's goal\u002Ffeature description\n- The spec name and basePath (resolved from --specs-dir or default)\n- Instructions to output `$basePath\u002Frequirements.md`\n\n## Output\n\nAfter completion, inform the user:\n\n```\nSpec '$name' created at $basePath\u002F\n\nCurrent phase: research (or requirements if skipped)\n\nNext steps:\n- Review the generated research.md (or requirements.md)\n- Run \u002Fcurdx-flow:requirements to proceed (or \u002Fcurdx-flow:design if skipped research)\n```\n\n**With --specs-dir:**\n```\nSpec '$name' created at $basePath\u002F (--specs-dir: $specsDir)\n\nCurrent phase: research (or requirements if skipped)\n\nNext steps:\n- Review the generated research.md (or requirements.md)\n- Run \u002Fcurdx-flow:requirements to proceed (or \u002Fcurdx-flow:design if skipped research)\n```\n\n\u003Cmandatory>\n**STOP AFTER DISPLAYING OUTPUT.**\n\n(This does not apply in `--quick` mode, which auto-generates all artifacts without stopping.)\n\nDo NOT proceed to the next phase automatically.\nWait for explicit user command to continue.\n\u003C\u002Fmandatory>\n",{"name":5,"description":7,"allowed-tools":44,"argument-hint":45,"disable-model-invocation":46},"Bash Write Agent AskUserQuestion","\u003Cspec-name> [goal description] [--skip-research] [--specs-dir \u003Cpath>]",true,"main","7357746802ae7a84cafa93b9dbffd138817b0290","plugins\u002Fcurdx-flow\u002Fskills\u002Fnew",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":58,"prompt":68,"zipAvailable":46},[59,62,65],{"tool":60,"command":61},"npx","npx skills add mugsun\u002Fcurdx-flow --skill new",{"tool":63,"command":64},"bunx","bunx skills add mugsun\u002Fcurdx-flow --skill new",{"tool":66,"command":67},"pnpm","pnpm dlx skills add mugsun\u002Fcurdx-flow --skill new","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fnew\u002FSKILL.md",[],[71,80,98,110,123,133],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":78,"publishedAt":39},"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",[77],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[73,79],"fixture",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":39},"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",[],[87,88,89,90,29,91,92,93,94,95,28,96,97],"verification","verification before completion","only","false","tasks","phase","evidence","fixes","tests","mock","state",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":105,"publishedAt":39},"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",[104],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[100,32,27,106,35,107,108,33,30,29,28,109],"feature","read","dependency","EPIC",{"skillNo":111,"name":91,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":39},"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",[115],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[91,117,34,33,118,28,119,120,121,29,30,107,35,122,27],"implementation","task","standard","design","auto","edit",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":130,"publishedAt":39},"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",[129],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[125,30,131,27,28,29,132,33,107,34,35,38],"by name","active",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":140,"publishedAt":39},"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",[139],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[135,27,28,29,30,97,141,132,142,107,36,143],"progress","update","index"]