Files
Claude-Code-Workflow/ccw/docs-site/build/zh/assets/js/3f1fe4a1.3b4b8b58.js
catlog22 5cfeb59124 feat: add configuration backup, sync, and version checker services
- Implemented ConfigBackupService for backing up local configuration files.
- Added ConfigSyncService to download configuration files from GitHub with remote-first conflict resolution.
- Created VersionChecker to check application version against the latest GitHub release with caching.
- Introduced security validation utilities for input validation to prevent common vulnerabilities.
- Developed utility functions to start and stop Docusaurus documentation server.
2026-02-05 17:32:31 +08:00

1 line
33 KiB
JavaScript

"use strict";(globalThis.webpackChunkccw_docs=globalThis.webpackChunkccw_docs||[]).push([[512],{1133(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>t,default:()=>j,frontMatter:()=>d,metadata:()=>l,toc:()=>x});const l=JSON.parse('{"id":"workflows/level-3-standard","title":"\u5c42\u7ea7 3: \u6807\u51c6\u5de5\u4f5c\u6d41","description":"\u6807\u51c6\u89c4\u5212\u5de5\u4f5c\u6d41 - \u5b8c\u6574\u89c4\u5212\u548c TDD \u5f00\u53d1","source":"@site/i18n/zh/docusaurus-plugin-content-docs/current/workflows/level-3-standard.mdx","sourceDirName":"workflows","slug":"/workflows/level-3-standard","permalink":"/docs/zh/workflows/level-3-standard","draft":false,"unlisted":false,"editUrl":"https://github.com/ccw/docs/tree/main/docs/workflows/level-3-standard.mdx","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"\u5c42\u7ea7 3: \u6807\u51c6\u5de5\u4f5c\u6d41","description":"\u6807\u51c6\u89c4\u5212\u5de5\u4f5c\u6d41 - \u5b8c\u6574\u89c4\u5212\u548c TDD \u5f00\u53d1","sidebar_position":4},"sidebar":"docs","previous":{"title":"Level 2: Rapid","permalink":"/docs/zh/workflows/level-2-rapid"},"next":{"title":"Level 4: Brainstorm","permalink":"/docs/zh/workflows/level-4-brainstorm"}}');var r=s(2540),c=s(1184),i=s(1540);const d={title:"\u5c42\u7ea7 3: \u6807\u51c6\u5de5\u4f5c\u6d41",description:"\u6807\u51c6\u89c4\u5212\u5de5\u4f5c\u6d41 - \u5b8c\u6574\u89c4\u5212\u548c TDD \u5f00\u53d1",sidebar_position:4},t="\u5c42\u7ea7 3: \u6807\u51c6\u5de5\u4f5c\u6d41",o={},x=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:2},{value:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41",id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41",level:2},{value:"\u5171\u540c\u7279\u6027",id:"\u5171\u540c\u7279\u6027",level:3},{value:"\u5de5\u4f5c\u6d41 1: plan -&gt; verify -&gt; execute",id:"\u5de5\u4f5c\u6d41-1-plan---verify---execute",level:2},{value:"\u547d\u4ee4",id:"\u547d\u4ee4",level:3},{value:"\u6d41\u7a0b\u56fe",id:"\u6d41\u7a0b\u56fe",level:3},{value:"\u6d41\u7a0b\u9636\u6bb5",id:"\u6d41\u7a0b\u9636\u6bb5",level:3},{value:"\u4ea7\u7269",id:"\u4ea7\u7269",level:3},{value:"\u9002\u7528\u573a\u666f",id:"\u9002\u7528\u573a\u666f",level:3},{value:"\u5de5\u4f5c\u6d41 2: tdd-plan -&gt; execute -&gt; tdd-verify",id:"\u5de5\u4f5c\u6d41-2-tdd-plan---execute---tdd-verify",level:2},{value:"\u547d\u4ee4",id:"\u547d\u4ee4-1",level:3},{value:"\u6d41\u7a0b\u56fe",id:"\u6d41\u7a0b\u56fe-1",level:3},{value:"\u6d41\u7a0b\u9636\u6bb5",id:"\u6d41\u7a0b\u9636\u6bb5-1",level:3},{value:"TDD \u4efb\u52a1\u7ed3\u6784",id:"tdd-\u4efb\u52a1\u7ed3\u6784",level:3},{value:"\u94c1\u5f8b",id:"\u94c1\u5f8b",level:3},{value:"\u9002\u7528\u573a\u666f",id:"\u9002\u7528\u573a\u666f-1",level:3},{value:"\u5de5\u4f5c\u6d41 3: test-fix-gen -&gt; test-cycle-execute",id:"\u5de5\u4f5c\u6d41-3-test-fix-gen---test-cycle-execute",level:2},{value:"\u547d\u4ee4",id:"\u547d\u4ee4-2",level:3},{value:"\u6d41\u7a0b\u56fe",id:"\u6d41\u7a0b\u56fe-2",level:3},{value:"\u6d41\u7a0b\u9636\u6bb5",id:"\u6d41\u7a0b\u9636\u6bb5-2",level:3},{value:"\u53cc\u6a21\u5f0f\u652f\u6301",id:"\u53cc\u6a21\u5f0f\u652f\u6301",level:3},{value:"\u4ea7\u7269",id:"\u4ea7\u7269-1",level:3},{value:"\u9002\u7528\u573a\u666f",id:"\u9002\u7528\u573a\u666f-2",level:3},{value:"\u5c42\u7ea7 3 \u5bf9\u6bd4\u8868",id:"\u5c42\u7ea7-3-\u5bf9\u6bd4\u8868",level:2},{value:"\u6267\u884c: execute",id:"\u6267\u884c-execute",level:2},{value:"\u5173\u952e\u7279\u6027",id:"\u5173\u952e\u7279\u6027",level:3},{value:"\u76f8\u5173\u5de5\u4f5c\u6d41",id:"\u76f8\u5173\u5de5\u4f5c\u6d41",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,c.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"\u5c42\u7ea7-3-\u6807\u51c6\u5de5\u4f5c\u6d41",children:"\u5c42\u7ea7 3: \u6807\u51c6\u5de5\u4f5c\u6d41"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"}),": \u4e2d-\u9ad8 | ",(0,r.jsx)(n.strong,{children:"\u4ea7\u7269"}),": \u6301\u4e45\u5316\u4f1a\u8bdd\u6587\u4ef6 | ",(0,r.jsx)(n.strong,{children:"\u72b6\u6001"}),": \u5b8c\u5168\u4f1a\u8bdd\u7ba1\u7406"]}),"\n",(0,r.jsx)(n.p,{children:"\u5c42\u7ea7 3 \u5de5\u4f5c\u6d41\u63d0\u4f9b\u5b8c\u6574\u89c4\u5212\u5e76\u652f\u6301\u6301\u4e45\u5316\u4f1a\u8bdd\u7ba1\u7406\u3002\u4e13\u4e3a\u9700\u8981\u53ef\u8ffd\u6eaf\u6027\u3001\u9a8c\u8bc1\u548c\u7ed3\u6784\u5316\u6267\u884c\u7684\u591a\u6a21\u5757\u53d8\u66f4\u800c\u8bbe\u8ba1\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u6982\u8ff0",children:"\u6982\u8ff0"}),"\n",(0,r.jsx)(i.A,{chart:"\n flowchart TD\n Start([\u7528\u6237\u8f93\u5165]) --\x3e Select{\u9009\u62e9\u5de5\u4f5c\u6d41}\n\n Select --\x3e|\u6807\u51c6<br/>\u5f00\u53d1| Plan[plan]\n Select --\x3e|\u6d4b\u8bd5\u9a71\u52a8| TDD[tdd-plan]\n Select --\x3e|\u6d4b\u8bd5\u4fee\u590d| TestFix[test-fix-gen]\n\n Plan --\x3e Verify[plan-verify<br/>\u53ef\u9009]\n TDD --\x3e Verify\n Verify --\x3e Execute[execute]\n\n TestFix --\x3e TestCycle[test-cycle-execute]\n\n Execute --\x3e Review{\u9700\u8981\u5ba1\u67e5?}\n TestCycle --\x3e Review\n\n Review --\x3e|\u662f| RevCycle[review-session-cycle]\n Review --\x3e|\u5426| TestQ{\u6709\u6d4b\u8bd5?}\n RevCycle --\x3e RevFix[review-cycle-fix]\n RevFix --\x3e TestQ\n\n TestQ --\x3e|\u662f| TFG[test-fix-gen]\n TestQ --\x3e|\u5426| Complete([session:complete])\n\n TFG --\x3e TCE[test-cycle-execute]\n TCE --\x3e Complete\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef workflow fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef execute fill:#c5e1a5,stroke:#388e3c\n\n class Start,Complete startend,Select,Review,TestQ decision,Plan,TDD,TestFix workflow,Verify,Execute,TestCycle,RevCycle,RevFix,TFG,TCE execute\n"}),"\n",(0,r.jsx)(n.h2,{id:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41",children:"\u5305\u542b\u7684\u5de5\u4f5c\u6d41"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u5de5\u4f5c\u6d41"}),(0,r.jsx)(n.th,{children:"\u7528\u9014"}),(0,r.jsx)(n.th,{children:"\u9636\u6bb5\u6570"}),(0,r.jsx)(n.th,{children:"\u4ea7\u7269\u4f4d\u7f6e"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"plan"})}),(0,r.jsx)(n.td,{children:"\u590d\u6742\u529f\u80fd\u5f00\u53d1"}),(0,r.jsx)(n.td,{children:"5 \u9636\u6bb5"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:".workflow/active/{session}/"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"tdd-plan"})}),(0,r.jsx)(n.td,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),(0,r.jsx)(n.td,{children:"6 \u9636\u6bb5"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:".workflow/active/{session}/"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"test-fix-gen"})}),(0,r.jsx)(n.td,{children:"\u6d4b\u8bd5\u4fee\u590d\u751f\u6210"}),(0,r.jsx)(n.td,{children:"5 \u9636\u6bb5"}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:".workflow/active/WFS-test-{session}/"})})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"\u5171\u540c\u7279\u6027",children:"\u5171\u540c\u7279\u6027"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u5c5e\u6027"}),(0,r.jsx)(n.th,{children:"\u503c"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u590d\u6742\u5ea6"})}),(0,r.jsx)(n.td,{children:"\u4e2d-\u9ad8"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u4ea7\u7269"})}),(0,r.jsxs)(n.td,{children:["\u6301\u4e45\u5316\u6587\u4ef6 (",(0,r.jsx)(n.code,{children:".workflow/active/{session}/"}),")"]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u72b6\u6001"})}),(0,r.jsx)(n.td,{children:"\u5b8c\u5168\u4f1a\u8bdd\u7ba1\u7406"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u9a8c\u8bc1"})}),(0,r.jsx)(n.td,{children:"\u5185\u7f6e\u9a8c\u8bc1\u6b65\u9aa4"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u6267\u884c"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"/workflow:execute"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u9002\u7528\u573a\u666f"})}),(0,r.jsx)(n.td,{children:"\u591a\u6a21\u5757\u3001\u53ef\u8ffd\u6eaf\u4efb\u52a1"})]})]})]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"\u5de5\u4f5c\u6d41-1-plan---verify---execute",children:"\u5de5\u4f5c\u6d41 1: plan -> verify -> execute"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"5 \u9636\u6bb5\u5b8c\u6574\u89c4\u5212\u5de5\u4f5c\u6d41"})}),"\n",(0,r.jsx)(n.h3,{id:"\u547d\u4ee4",children:"\u547d\u4ee4"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'/workflow:plan "\u5b9e\u73b0 OAuth2 \u8ba4\u8bc1\u7cfb\u7edf"\n/workflow:plan-verify # \u9a8c\u8bc1\u8ba1\u5212\uff08\u63a8\u8350\uff09\n/workflow:execute\n/workflow:review # (\u53ef\u9009) \u4ee3\u7801\u5ba1\u67e5\n'})}),"\n",(0,r.jsx)(n.h3,{id:"\u6d41\u7a0b\u56fe",children:"\u6d41\u7a0b\u56fe"}),"\n",(0,r.jsx)(i.A,{chart:"\n flowchart TD\n A([\u5f00\u59cb]) --\x3e B[\u9636\u6bb5 1: \u4f1a\u8bdd\u53d1\u73b0]\n B --\x3e C[/workflow:session:start<br/>--auto/]\n C --\x3e D[\u8fd4\u56de: sessionId]\n\n D --\x3e E[\u9636\u6bb5 2: \u4e0a\u4e0b\u6587\u6536\u96c6]\n E --\x3e F[/workflow:tools:context-gather/]\n F --\x3e G[\u8fd4\u56de: context-package.json<br/>+ conflict_risk]\n\n G --\x3e H{conflict_risk<br/>>= medium?}\n H --\x3e|\u662f| I[\u9636\u6bb5 3: \u51b2\u7a81\u89e3\u51b3]\n H --\x3e|\u5426| J[\u9636\u6bb5 4: \u4efb\u52a1\u751f\u6210]\n I --\x3e K[/workflow:tools:conflict<br/>-resolution/]\n K --\x3e J\n\n J --\x3e L[/workflow:tools:task-generate<br/>-agent/]\n L --\x3e M[\u8fd4\u56de: IMPL_PLAN.md<br/>+ IMPL-*.json<br/>+ TODO_LIST.md]\n\n M --\x3e N[\u8fd4\u56de\u6458\u8981<br/>+ \u4e0b\u4e00\u6b65]\n N --\x3e O([\u89c4\u5212\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef action fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef tool fill:#ffecb3,stroke:#ffa000\n\n class A,O startend,H decision,B,E,G,J,M,N action,C,F,K,L tool\n"}),"\n",(0,r.jsx)(n.h3,{id:"\u6d41\u7a0b\u9636\u6bb5",children:"\u6d41\u7a0b\u9636\u6bb5"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 1: \u4f1a\u8bdd\u53d1\u73b0"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'/workflow:session:start --auto "\u5b9e\u73b0 OAuth2 \u8ba4\u8bc1\u7cfb\u7edf"\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u521b\u5efa\u6216\u53d1\u73b0\u5de5\u4f5c\u6d41\u4f1a\u8bdd"}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd4\u56de: ",(0,r.jsx)(n.code,{children:"sessionId"})]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 2: \u4e0a\u4e0b\u6587\u6536\u96c6"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:tools:context-gather\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u5206\u6790\u4ee3\u7801\u5e93\u7ed3\u6784"}),"\n",(0,r.jsx)(n.li,{children:"\u8bc6\u522b\u6280\u672f\u6808\u548c\u6a21\u5f0f"}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd4\u56de: ",(0,r.jsx)(n.code,{children:"context-package.json"})," + ",(0,r.jsx)(n.code,{children:"conflict_risk"})]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 3: \u51b2\u7a81\u89e3\u51b3"}),"\uff08\u6761\u4ef6\u89e6\u53d1\uff09"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# \u4ec5\u5f53 conflict_risk >= medium \u65f6\n/workflow:tools:conflict-resolution\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u68c0\u6d4b\u6f5c\u5728\u51b2\u7a81"}),"\n",(0,r.jsx)(n.li,{children:"\u89e3\u51b3\u4f9d\u8d56\u95ee\u9898"}),"\n",(0,r.jsx)(n.li,{children:"\u786e\u4fdd\u6e05\u6670\u7684\u6267\u884c\u8def\u5f84"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 4: \u4efb\u52a1\u751f\u6210"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:tools:task-generate-agent\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u751f\u6210\u7ed3\u6784\u5316\u4efb\u52a1"}),"\n",(0,r.jsx)(n.li,{children:"\u521b\u5efa\u4f9d\u8d56\u56fe"}),"\n",(0,r.jsxs)(n.li,{children:["\u8fd4\u56de: ",(0,r.jsx)(n.code,{children:"IMPL_PLAN.md"})," + ",(0,r.jsx)(n.code,{children:"IMPL-*.json"})," + ",(0,r.jsx)(n.code,{children:"TODO_LIST.md"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u4ea7\u7269",children:"\u4ea7\u7269"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f4d\u7f6e"}),": ",(0,r.jsx)(n.code,{children:".workflow/active/{WFS-session}/"})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:".workflow/active/WFS-oauth2-auth-2025-02-03/\n\u251c\u2500\u2500 workflow-session.json # \u4f1a\u8bdd\u5143\u6570\u636e\n\u251c\u2500\u2500 IMPL_PLAN.md # \u5b9e\u73b0\u8ba1\u5212\n\u251c\u2500\u2500 TODO_LIST.md # \u8fdb\u5ea6\u8ddf\u8e2a\n\u251c\u2500\u2500 .task/\n\u2502 \u251c\u2500\u2500 IMPL-001.json # \u4e3b\u4efb\u52a1\n\u2502 \u251c\u2500\u2500 IMPL-002.json\n\u2502 \u2514\u2500\u2500 ...\n\u2514\u2500\u2500 .process/\n \u251c\u2500\u2500 context-package.json # \u9879\u76ee\u4e0a\u4e0b\u6587\n \u251c\u2500\u2500 conflict-resolution.json # \u51b2\u7a81\u5206\u6790\n \u2514\u2500\u2500 planning-notes.md\n"})}),"\n",(0,r.jsx)(n.h3,{id:"\u9002\u7528\u573a\u666f",children:"\u9002\u7528\u573a\u666f"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u591a\u6a21\u5757\u53d8\u66f4"}),"\n",(0,r.jsx)(n.li,{children:"\u4ee3\u7801\u91cd\u6784"}),"\n",(0,r.jsx)(n.li,{children:"\u9700\u8981\u4f9d\u8d56\u5206\u6790"}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"\u5de5\u4f5c\u6d41-2-tdd-plan---execute---tdd-verify",children:"\u5de5\u4f5c\u6d41 2: tdd-plan -> execute -> tdd-verify"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"6 \u9636\u6bb5\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1\u5de5\u4f5c\u6d41"})}),"\n",(0,r.jsx)(n.h3,{id:"\u547d\u4ee4-1",children:"\u547d\u4ee4"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'/workflow:tdd-plan "\u4f7f\u7528 TDD \u5b9e\u73b0\u7528\u6237\u6ce8\u518c"\n/workflow:execute # \u9075\u5faa Red-Green-Refactor\n/workflow:tdd-verify # \u9a8c\u8bc1 TDD \u5408\u89c4\u6027\n'})}),"\n",(0,r.jsx)(n.h3,{id:"\u6d41\u7a0b\u56fe-1",children:"\u6d41\u7a0b\u56fe"}),"\n",(0,r.jsx)(i.A,{chart:"\n flowchart TD\n A([\u5f00\u59cb]) --\x3e B[\u9636\u6bb5 1: \u4f1a\u8bdd\u53d1\u73b0]\n B --\x3e C[/workflow:session:start<br/>--type tdd --auto/]\n C --\x3e D[\u89e3\u6790: sessionId]\n\n D --\x3e E[\u9636\u6bb5 2: \u4e0a\u4e0b\u6587\u6536\u96c6]\n E --\x3e F[/workflow:tools:context-gather/]\n F --\x3e G[\u8fd4\u56de: context-package.json]\n\n G --\x3e H[\u9636\u6bb5 3: \u6d4b\u8bd5\u8986\u76d6\u7387\u5206\u6790]\n H --\x3e I[/workflow:tools:test-context<br/>-gather/]\n I --\x3e J[\u68c0\u6d4b\u6d4b\u8bd5\u6846\u67b6<br/>\u5206\u6790\u8986\u76d6\u7387]\n\n J --\x3e K{conflict_risk<br/>>= medium?}\n K --\x3e|\u662f| L[\u9636\u6bb5 4: \u51b2\u7a81\u89e3\u51b3]\n K --\x3e|\u5426| M[\u9636\u6bb5 5: TDD \u4efb\u52a1\u751f\u6210]\n L --\x3e N[/workflow:tools:conflict<br/>-resolution/]\n N --\x3e M\n\n M --\x3e O[/workflow:tools:task-generate<br/>-tdd/]\n O --\x3e P[\u751f\u6210\u5305\u542b Red-Green-<br/>Refactor \u5faa\u73af\u7684 IMPL \u4efb\u52a1]\n\n P --\x3e Q[\u9636\u6bb5 6: TDD \u7ed3\u6784\u9a8c\u8bc1]\n Q --\x3e R[\u9a8c\u8bc1 TDD \u5408\u89c4\u6027]\n\n R --\x3e S([TDD \u89c4\u5212\u5b8c\u6210])\n\n T[\u6267\u884c] --\x3e U[/workflow:execute/]\n U --\x3e V[\u9075\u5faa\u6bcf\u4e2a\u4efb\u52a1\u4e2d\u7684<br/>Red-Green-Refactor \u5faa\u73af]\n\n V --\x3e W[\u9a8c\u8bc1]\n W --\x3e X[/workflow:tdd-verify/]\n X --\x3e Y([\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef action fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef tool fill:#ffecb3,stroke:#ffa000\n\n class A,S,Y startend,K decision,B,E,G,H,J,M,P,Q,R,T,U,V,X action,C,F,I,N,O,W tool\n"}),"\n",(0,r.jsx)(n.h3,{id:"\u6d41\u7a0b\u9636\u6bb5-1",children:"\u6d41\u7a0b\u9636\u6bb5"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 1: \u4f1a\u8bdd\u53d1\u73b0"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'/workflow:session:start --type tdd --auto "TDD: \u7528\u6237\u6ce8\u518c"\n'})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"TDD \u7ed3\u6784\u5316\u683c\u5f0f"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"TDD: [\u529f\u80fd\u540d\u79f0]\nGOAL: [\u76ee\u6807]\nSCOPE: [\u5305\u542b/\u6392\u9664\u7684\u8303\u56f4]\nCONTEXT: [\u80cc\u666f]\nTEST_FOCUS: [\u6d4b\u8bd5\u573a\u666f]\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 2: \u4e0a\u4e0b\u6587\u6536\u96c6"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:tools:context-gather\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 3: \u6d4b\u8bd5\u8986\u76d6\u7387\u5206\u6790"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:tools:test-context-gather\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u68c0\u6d4b\u6d4b\u8bd5\u6846\u67b6"}),"\n",(0,r.jsx)(n.li,{children:"\u5206\u6790\u73b0\u6709\u6d4b\u8bd5\u8986\u76d6\u7387"}),"\n",(0,r.jsx)(n.li,{children:"\u8bc6\u522b\u8986\u76d6\u7387\u7f3a\u53e3"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 4: \u51b2\u7a81\u89e3\u51b3"}),"\uff08\u6761\u4ef6\u89e6\u53d1\uff09"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# \u4ec5\u5f53 conflict_risk >= medium \u65f6\n/workflow:tools:conflict-resolution\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 5: TDD \u4efb\u52a1\u751f\u6210"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:tools:task-generate-tdd\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u751f\u6210\u5305\u542b\u5185\u7f6e Red-Green-Refactor \u5faa\u73af\u7684 IMPL \u4efb\u52a1"}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"meta.tdd_workflow: true"})}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"flow_control.implementation_approach"})," \u5305\u542b 3 \u4e2a\u6b65\u9aa4\uff08red/green/refactor\uff09"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 6: TDD \u7ed3\u6784\u9a8c\u8bc1"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u9a8c\u8bc1 TDD \u7ed3\u6784\u5408\u89c4\u6027"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"tdd-\u4efb\u52a1\u7ed3\u6784",children:"TDD \u4efb\u52a1\u7ed3\u6784"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",children:'{\n "id": "IMPL-001",\n "title": "\u5b9e\u73b0\u7528\u6237\u6ce8\u518c",\n "meta": {\n "tdd_workflow": true\n },\n "flow_control": {\n "implementation_approach": [\n {\n "step": 1,\n "title": "Red: \u7f16\u5199\u5931\u8d25\u7684\u6d4b\u8bd5",\n "description": "\u7f16\u5199\u4e00\u4e2a\u5931\u8d25\u7684\u6d4b\u8bd5"\n },\n {\n "step": 2,\n "title": "Green: \u4f7f\u6d4b\u8bd5\u901a\u8fc7",\n "description": "\u5b9e\u73b0\u6700\u5c0f\u4ee3\u7801\u4f7f\u6d4b\u8bd5\u901a\u8fc7",\n "test_fix_cycle": {\n "max_iterations": 3,\n "pass_threshold": 0.95\n }\n },\n {\n "step": 3,\n "title": "Refactor: \u6539\u8fdb\u4ee3\u7801",\n "description": "\u5728\u4fdd\u6301\u6d4b\u8bd5\u901a\u8fc7\u7684\u540c\u65f6\u91cd\u6784"\n }\n ]\n }\n}\n'})}),"\n",(0,r.jsx)(n.h3,{id:"\u94c1\u5f8b",children:"\u94c1\u5f8b"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"\u6ca1\u6709\u5931\u8d25\u7684\u6d4b\u8bd5\uff0c\u5c31\u6ca1\u6709\u751f\u4ea7\u4ee3\u7801\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u6267\u884c\u65b9\u6cd5"}),":"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u9636\u6bb5 5: ",(0,r.jsx)(n.code,{children:"implementation_approach"})," \u5305\u542b\u6d4b\u8bd5\u4f18\u5148\u6b65\u9aa4\uff08Red -> Green -> Refactor\uff09"]}),"\n",(0,r.jsx)(n.li,{children:"Green \u9636\u6bb5: \u5305\u542b test-fix-cycle \u914d\u7f6e\uff08\u6700\u591a 3 \u6b21\u8fed\u4ee3\uff09"}),"\n",(0,r.jsx)(n.li,{children:"\u81ea\u52a8\u56de\u6eda: \u8fbe\u5230\u6700\u5927\u8fed\u4ee3\u6b21\u6570\u4e14\u6d4b\u8bd5\u672a\u901a\u8fc7\u65f6\u89e6\u53d1"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u987a\u5e8f\u4e3a\u4f55\u91cd\u8981"}),":"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u540e\u5199\u7684\u6d4b\u8bd5\u4f1a\u7acb\u5373\u901a\u8fc7 -> \u8bc1\u660e\u4e0d\u4e86\u4ec0\u4e48"}),"\n",(0,r.jsx)(n.li,{children:"\u6d4b\u8bd5\u4f18\u5148\u5f3a\u5236\u5728\u5b9e\u73b0\u524d\u53d1\u73b0\u8fb9\u754c\u60c5\u51b5"}),"\n",(0,r.jsx)(n.li,{children:"\u540e\u5199\u6d4b\u8bd5\u9a8c\u8bc1\u7684\u662f\u5df2\u6784\u5efa\u7684\u5185\u5bb9\uff0c\u800c\u975e\u6240\u9700\u5185\u5bb9"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u9002\u7528\u573a\u666f-1",children:"\u9002\u7528\u573a\u666f"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),"\n",(0,r.jsx)(n.li,{children:"\u9ad8\u8d28\u91cf\u529f\u80fd\u9700\u6c42"}),"\n",(0,r.jsx)(n.li,{children:"\u5173\u952e\u7cfb\u7edf\u7ec4\u4ef6"}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"\u5de5\u4f5c\u6d41-3-test-fix-gen---test-cycle-execute",children:"\u5de5\u4f5c\u6d41 3: test-fix-gen -> test-cycle-execute"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"5 \u9636\u6bb5\u6d4b\u8bd5\u4fee\u590d\u751f\u6210\u5de5\u4f5c\u6d41"})}),"\n",(0,r.jsx)(n.h3,{id:"\u547d\u4ee4-2",children:"\u547d\u4ee4"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:'# \u4f1a\u8bdd\u6a21\u5f0f\n/workflow:test-fix-gen WFS-user-auth-v2\n/workflow:test-cycle-execute\n\n# \u63d0\u793a\u8bcd\u6a21\u5f0f\n/workflow:test-fix-gen "\u6d4b\u8bd5\u8ba4\u8bc1 API"\n/workflow:test-cycle-execute\n'})}),"\n",(0,r.jsx)(n.h3,{id:"\u6d41\u7a0b\u56fe-2",children:"\u6d41\u7a0b\u56fe"}),"\n",(0,r.jsx)(i.A,{chart:"\n flowchart TD\n A([\u5f00\u59cb]) --\x3e B{\u8f93\u5165\u6a21\u5f0f?}\n\n B --\x3e|\u4f1a\u8bdd<br/>\u6a21\u5f0f| C[\u9636\u6bb5 1: \u4f7f\u7528\u6e90<br/>\u4f1a\u8bdd]\n B --\x3e|\u63d0\u793a\u8bcd<br/>\u6a21\u5f0f| D[\u9636\u6bb5 1: \u521b\u5efa<br/>\u6d4b\u8bd5\u4f1a\u8bdd]\n\n C --\x3e E[/workflow:session:start<br/>--type test --resume/]\n D --\x3e F[/workflow:session:start<br/>--type test --new/]\n\n E --\x3e G[\u9636\u6bb5 2: \u6536\u96c6\u6d4b\u8bd5\u4e0a\u4e0b\u6587]\n F --\x3e H[\u9636\u6bb5 2: \u6536\u96c6\u6d4b\u8bd5\u4e0a\u4e0b\u6587]\n\n G --\x3e I[/workflow:tools:test-context<br/>-gather/]\n H --\x3e I\n\n I --\x3e J[\u9636\u6bb5 3: \u6d4b\u8bd5\u751f\u6210\u5206\u6790]\n J --\x3e K[/workflow:tools:test-concept<br/>-enhanced/]\n K --\x3e L[\u591a\u5c42\u6d4b\u8bd5\u9700\u6c42<br/>L0: \u9759\u6001, L1: \u5355\u5143<br/>L2: \u96c6\u6210, L3: E2E]\n\n L --\x3e M[\u9636\u6bb5 4: \u751f\u6210\u6d4b\u8bd5\u4efb\u52a1]\n M --\x3e N[/workflow:tools:test-task-generate/]\n N --\x3e O[IMPL-001: \u751f\u6210<br/>+ IMPL-001.5: \u8d28\u91cf\u95e8<br/>+ IMPL-002: \u6267\u884c\u4fee\u590d]\n\n O --\x3e P[\u9636\u6bb5 5: \u8fd4\u56de\u6458\u8981]\n P --\x3e Q[-> test-cycle-execute]\n\n Q --\x3e R([\u6d4b\u8bd5\u4fee\u590d\u5b8c\u6210])\n\n classDef startend fill:#c8e6c9,stroke:#388e3c\n classDef action fill:#e3f2fd,stroke:#1976d2\n classDef decision fill:#fff9c4,stroke:#f57c00\n classDef tool fill:#ffecb3,stroke:#ffa000\n\n class A,R startend,B decision,C,D,E,F,G,H,J,M,P,Q action,I,K,N tool\n"}),"\n",(0,r.jsx)(n.h3,{id:"\u6d41\u7a0b\u9636\u6bb5-2",children:"\u6d41\u7a0b\u9636\u6bb5"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 1: \u521b\u5efa/\u4f7f\u7528\u6d4b\u8bd5\u4f1a\u8bdd"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f1a\u8bdd\u6a21\u5f0f"}),"\uff08\u4f7f\u7528\u73b0\u6709\u4f1a\u8bdd\uff09:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:session:start --type test --resume WFS-user-auth-v2\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u63d0\u793a\u8bcd\u6a21\u5f0f"}),"\uff08\u521b\u5efa\u65b0\u4f1a\u8bdd\uff09:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:session:start --type test --new\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 2: \u6536\u96c6\u6d4b\u8bd5\u4e0a\u4e0b\u6587"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:tools:test-context-gather\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 3: \u6d4b\u8bd5\u751f\u6210\u5206\u6790"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:tools:test-concept-enhanced\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u591a\u5c42\u6d4b\u8bd5\u9700\u6c42:","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"L0: \u9759\u6001"})," - \u7c7b\u578b\u68c0\u67e5\u3001\u4ee3\u7801\u68c0\u67e5"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"L1: \u5355\u5143"})," - \u51fd\u6570\u7ea7\u6d4b\u8bd5"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"L2: \u96c6\u6210"})," - \u7ec4\u4ef6\u4ea4\u4e92\u6d4b\u8bd5"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"L3: E2E"})," - \u5b8c\u6574\u7cfb\u7edf\u6d4b\u8bd5"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 4: \u751f\u6210\u6d4b\u8bd5\u4efb\u52a1"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:tools:test-task-generate\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"IMPL-001.json"}),": \u6d4b\u8bd5\u7406\u89e3\u4e0e\u751f\u6210"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"IMPL-001.5-review.json"}),": \u8d28\u91cf\u95e8"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"IMPL-002.json"}),": \u6d4b\u8bd5\u6267\u884c\u4e0e\u4fee\u590d\u5faa\u73af"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5 5: \u8fd4\u56de\u6458\u8981"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["-> ",(0,r.jsx)(n.code,{children:"/workflow:test-cycle-execute"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u53cc\u6a21\u5f0f\u652f\u6301",children:"\u53cc\u6a21\u5f0f\u652f\u6301"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u6a21\u5f0f"}),(0,r.jsx)(n.th,{children:"\u8f93\u5165\u6a21\u5f0f"}),(0,r.jsx)(n.th,{children:"\u4e0a\u4e0b\u6587\u6765\u6e90"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u4f1a\u8bdd\u6a21\u5f0f"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"WFS-xxx"})}),(0,r.jsx)(n.td,{children:"\u6e90\u4f1a\u8bdd\u6458\u8981"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u63d0\u793a\u8bcd\u6a21\u5f0f"})}),(0,r.jsx)(n.td,{children:"\u6587\u672c/\u6587\u4ef6\u8def\u5f84"}),(0,r.jsx)(n.td,{children:"\u76f4\u63a5\u4ee3\u7801\u5e93\u5206\u6790"})]})]})]}),"\n",(0,r.jsx)(n.h3,{id:"\u4ea7\u7269-1",children:"\u4ea7\u7269"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u4f4d\u7f6e"}),": ",(0,r.jsx)(n.code,{children:".workflow/active/WFS-test-{session}/"})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:".workflow/active/WFS-test-user-auth-2025-02-03/\n\u251c\u2500\u2500 workflow-session.json\n\u251c\u2500\u2500 .task/\n\u2502 \u251c\u2500\u2500 IMPL-001.json # \u6d4b\u8bd5\u7406\u89e3\u4e0e\u751f\u6210\n\u2502 \u251c\u2500\u2500 IMPL-001.5-review.json # \u8d28\u91cf\u95e8\n\u2502 \u2514\u2500\u2500 IMPL-002.json # \u6d4b\u8bd5\u6267\u884c\u4e0e\u4fee\u590d\u5faa\u73af\n\u2514\u2500\u2500 .process/\n \u251c\u2500\u2500 TEST_ANALYSIS_RESULTS.md\n \u2514\u2500\u2500 test-context-package.json\n"})}),"\n",(0,r.jsx)(n.h3,{id:"\u9002\u7528\u573a\u666f-2",children:"\u9002\u7528\u573a\u666f"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"\u6d4b\u8bd5\u5931\u8d25\u4fee\u590d"}),"\n",(0,r.jsx)(n.li,{children:"\u8986\u76d6\u7387\u63d0\u5347"}),"\n",(0,r.jsx)(n.li,{children:"\u6d4b\u8bd5\u5957\u4ef6\u751f\u6210"}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"\u5c42\u7ea7-3-\u5bf9\u6bd4\u8868",children:"\u5c42\u7ea7 3 \u5bf9\u6bd4\u8868"}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"\u65b9\u9762"}),(0,r.jsx)(n.th,{children:"plan"}),(0,r.jsx)(n.th,{children:"tdd-plan"}),(0,r.jsx)(n.th,{children:"test-fix-gen"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u7528\u9014"})}),(0,r.jsx)(n.td,{children:"\u590d\u6742\u529f\u80fd"}),(0,r.jsx)(n.td,{children:"\u6d4b\u8bd5\u9a71\u52a8\u5f00\u53d1"}),(0,r.jsx)(n.td,{children:"\u6d4b\u8bd5\u4fee\u590d"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u9636\u6bb5"})}),(0,r.jsx)(n.td,{children:"5"}),(0,r.jsx)(n.td,{children:"6"}),(0,r.jsx)(n.td,{children:"5"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"TDD"})}),(0,r.jsx)(n.td,{children:"\u5426"}),(0,r.jsx)(n.td,{children:"\u662f (Red-Green-Refactor)"}),(0,r.jsx)(n.td,{children:"\u53ef\u9009"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u4ea7\u7269"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:".workflow/active/"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:".workflow/active/"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:".workflow/active/WFS-test-*/"})})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u9a8c\u8bc1"})}),(0,r.jsx)(n.td,{children:"plan-verify"}),(0,r.jsx)(n.td,{children:"tdd-verify"}),(0,r.jsx)(n.td,{children:"\u5185\u7f6e\u8d28\u91cf\u95e8"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.strong,{children:"\u6700\u9002\u5408"})}),(0,r.jsx)(n.td,{children:"\u591a\u6a21\u5757\u53d8\u66f4"}),(0,r.jsx)(n.td,{children:"\u9ad8\u8d28\u91cf\u529f\u80fd"}),(0,r.jsx)(n.td,{children:"\u6d4b\u8bd5\u6539\u8fdb"})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"\u6267\u884c-execute",children:"\u6267\u884c: execute"}),"\n",(0,r.jsxs)(n.p,{children:["\u6240\u6709\u5c42\u7ea7 3 \u5de5\u4f5c\u6d41\u901a\u8fc7 ",(0,r.jsx)(n.code,{children:"execute"})," \u6267\u884c:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"/workflow:execute --session WFS-{session-id}\n"})}),"\n",(0,r.jsx)(n.h3,{id:"\u5173\u952e\u7279\u6027",children:"\u5173\u952e\u7279\u6027"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u4f9d\u8d56\u5206\u6790"})," - \u81ea\u52a8\u4efb\u52a1\u4f9d\u8d56\u89e3\u6790"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u5e76\u884c\u6267\u884c"})," - \u72ec\u7acb\u4efb\u52a1\u5e76\u884c\u8fd0\u884c"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u8fdb\u5ea6\u8ddf\u8e2a"})," - \u57fa\u4e8e\u4f1a\u8bdd\u7684 TODO \u66f4\u65b0"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"\u6458\u8981"})," - \u4e3a\u4f9d\u8d56\u4efb\u52a1\u751f\u6210\u4efb\u52a1\u5b8c\u6210\u6458\u8981"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u76f8\u5173\u5de5\u4f5c\u6d41",children:"\u76f8\u5173\u5de5\u4f5c\u6d41"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-2-rapid",children:"\u5c42\u7ea7 2: \u5feb\u901f"})," - \u66f4\u7b80\u5355\u7684\u5de5\u4f5c\u6d41"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-4-brainstorm",children:"\u5c42\u7ea7 4: \u5934\u8111\u98ce\u66b4"})," - \u591a\u89d2\u8272\u63a2\u7d22"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/zh/workflows/level-5-intelligent",children:"\u5c42\u7ea7 5: \u667a\u80fd"})," - \u81ea\u52a8\u5316\u7f16\u6392"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.a,{href:"/docs/zh/workflows/faq",children:"\u5e38\u89c1\u95ee\u9898"})," - \u5e38\u89c1\u95ee\u9898\u89e3\u7b54"]}),"\n"]})]})}function j(e={}){const{wrapper:n}={...(0,c.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1184(e,n,s){s.d(n,{R:()=>i,x:()=>d});var l=s(3696);const r={},c=l.createContext(r);function i(e){const n=l.useContext(c);return l.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),l.createElement(c.Provider,{value:n},e.children)}}}]);