{"id":"b977fe97-631d-4596-b423-8b2cffe3e001","entityType":"agent","slug":"clawhub-kokxi-qa-state-transition","name":"qa-state-transition","canonicalUrl":"https://www.xpersona.co/agent/clawhub-kokxi-qa-state-transition","canonicalPath":"/agent/clawhub-kokxi-qa-state-transition","generatedAt":"2026-10-11T11:24:28.195Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T08:53:50.122Z","emptyReason":null},"description":"系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。 触发场景：状态测试、状态转换、状态机、状态流转、状态变更、状态覆盖、业务对象有多状态流转时。 Use when the user asks about: state machine testing — legal, illegal, boundary, and concurrent state transitions, and data consistency across them. Skill: qa-state-transition Owner: kokxi Summary: 系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。 触发场景：状态测试、状态转换、状态机、状态流转、状态变更、状态覆盖、业务对象有多状态流转时。 Use when the user asks about: state machine testing — legal, illegal, boundary, and concurrent state transitions, and data consistency across them. Tags","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s170jw3s1atcj5jwhqb4r7v7eh8912kp:qa-state-transition","sourceUrl":"https://clawhub.ai/kokxi/qa-state-transition","homepage":"https://clawhub.ai/kokxi/skills/qa-state-transition","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/kokxi/qa-state-transition","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/kokxi/skills/qa-state-transition","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:53:50.122Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:53:50.122Z","emptyReason":null},"stars":null,"forks":null,"downloads":1107,"packageName":null,"latestVersion":"1.8.0","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:53:50.053Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T08:53:50.122Z","lastCrawledAt":"2026-10-11T08:53:50.053Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T08:53:50.053Z","lastVerifiedAt":null,"highlights":[{"version":"1.8.0","createdAt":"2026-09-29T04:28:39.769Z","changelog":"Version 1.8.0 introduces file restructuring and metadata refactoring for better modularity and reference management. - Migrated test case design and examples to a new file: references/transition-cases.md - Updated SKILL.md: restructured metadata, added cross-reference to the new test case file, and modernized field organization - Removed redundant file skill-card.md - Clarified output test case numbering rules and sample formats - No changes to core testing logic or principles","fileCount":4,"zipByteSize":6127},{"version":"1.7.7","createdAt":"2026-09-27T14:41:16.482Z","changelog":"1.7.7","fileCount":3,"zipByteSize":5426},{"version":"1.7.6","createdAt":"2026-09-01T12:46:20.618Z","changelog":"显示名改中文","fileCount":3,"zipByteSize":5856},{"version":"1.7.5","createdAt":"2026-08-30T15:19:19.277Z","changelog":"1.7.5: 版本号升级","fileCount":3,"zipByteSize":5532},{"version":"1.7.0","createdAt":"2026-08-16T14:32:52.723Z","changelog":"Version 1.7.0 - Updated documentation in SKILL.md; improvements or refinements made to guidance and examples. - Removed the skill-card.md file for this version.","fileCount":3,"zipByteSize":5347},{"version":"1.6.3","createdAt":"2026-08-12T15:28:14.764Z","changelog":"- Added fields: slug and displayName to skill metadata. - Updated version to 1.6.3. - Minor formatting and metadata improvements in SKILL.md. - Removed redundant file: skill-card.md.","fileCount":3,"zipByteSize":5280},{"version":"1.6.0","createdAt":"2026-07-06T17:17:45.675Z","changelog":"- 增加 traceability 字段，支持每个状态转换唯一ID和场景ID关联 - 新增 categories 分类与 error_recovery_guidance 异常场景指引 - 强化输出合规和安全警告说明 - 移除 skill-card.md 文件，精简文档结构","fileCount":3,"zipByteSize":5198},{"version":"1.5.0","createdAt":"2026-06-29T12:35:48.754Z","changelog":"Version 1.5.0 (qa-state-transition) changelog - Added detailed input and output format descriptions, including references to上游/下游技能和对象结构要求. - Introduced version field in metadata for clearer versioning. - Added depth and coverage quantification guidelines based on状态数量 with minimum coverage rules. - Removed skill-card.md file. - Updated and clarified examples, output standards, and common pitfalls for more practical and consistent guidance.","fileCount":3,"zipByteSize":4968}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170jw3s1atcj5jwhqb4r7v7eh8912kp:qa-state-transition","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T11:24:28.193Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-state-transition/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T08:53:50.122Z","emptyReason":null},"readme":"Skill: qa-state-transition\n\nOwner: kokxi\n\nSummary: 系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。 触发场景：状态测试、状态转换、状态机、状态流转、状态变更、状态覆盖、业务对象有多状态流转时。 Use when the user asks about: state machine testing — legal, illegal, boundary, and concurrent state transitions, and data consistency across them.\n\nTags: latest:1.8.0\n\nVersion history:\n\nv1.8.0 | 2026-09-29T04:28:39.769Z | auto\n\nVersion 1.8.0 introduces file restructuring and metadata refactoring for better modularity and reference management.\n\n- Migrated test case design and examples to a new file: references/transition-cases.md\n- Updated SKILL.md: restructured metadata, added cross-reference to the new test case file, and modernized field organization\n- Removed redundant file skill-card.md\n- Clarified output test case numbering rules and sample formats\n- No changes to core testing logic or principles\n\nv1.7.7 | 2026-09-27T14:41:16.482Z | user\n\n1.7.7\n\nv1.7.6 | 2026-09-01T12:46:20.618Z | user\n\n显示名改中文\n\nv1.7.5 | 2026-08-30T15:19:19.277Z | user\n\n1.7.5: 版本号升级\n\nv1.7.0 | 2026-08-16T14:32:52.723Z | auto\n\nVersion 1.7.0\n\n- Updated documentation in SKILL.md; improvements or refinements made to guidance and examples.\n- Removed the skill-card.md file for this version.\n\nv1.6.3 | 2026-08-12T15:28:14.764Z | auto\n\n- Added fields: slug and displayName to skill metadata.\n- Updated version to 1.6.3.\n- Minor formatting and metadata improvements in SKILL.md.\n- Removed redundant file: skill-card.md.\n\nv1.6.0 | 2026-07-06T17:17:45.675Z | auto\n\n- 增加 traceability 字段，支持每个状态转换唯一ID和场景ID关联\n- 新增 categories 分类与 error_recovery_guidance 异常场景指引\n- 强化输出合规和安全警告说明\n- 移除 skill-card.md 文件，精简文档结构\n\nv1.5.0 | 2026-06-29T12:35:48.754Z | auto\n\nVersion 1.5.0 (qa-state-transition) changelog\n\n- Added detailed input and output format descriptions, including references to上游/下游技能和对象结构要求.\n- Introduced version field in metadata for clearer versioning.\n- Added depth and coverage quantification guidelines based on状态数量 with minimum coverage rules.\n- Removed skill-card.md file.\n- Updated and clarified examples, output standards, and common pitfalls for more practical and consistent guidance.\n\nv1.4.1 | 2026-06-25T16:56:49.225Z | auto\n\n- 简化和精炼了技能描述，更突出状态流转测试的核心用途与覆盖范围。\n- 移除了 skill-card.md 文件，统一文档内容。\n- 优化了描述内容，提升可读性，但测试要素、模板与示例未做结构性更改。\n- 突出状态变更完整性和数据一致性验证。\n- 激活条件与输入/输出格式保持不变，兼容现有流程。\n\nv1.4.0 | 2026-06-24T05:12:36.084Z | auto\n\n- Expanded \"description\" and \"when_to_use\" to clarify trigger场景与关键词，覆盖更多状态流转测试需求。\n- 移除 skill-card.md，Skill 说明整合在 SKILL.md。\n- 新增“Overview”、“测试类型速查表”、“常见陷阱”、“Guidelines”等结构，突出实际应用重点和风险提示。\n- 增补测试类型、未覆盖风险、数量建议，强化测试覆盖完整性指导。\n- 优化实例说明和表格，便于理解和实践。\n- 微调输出格式和示例用语，使内容更简明、聚焦、易操作。\n\nv1.3.0 | 2026-06-23T00:35:55.285Z | auto\n\n- 全新正式文档，详细说明状态转换测试的核心原则、要素、测试用例设计和验收清单。\n- 明确输入输出格式，规范状态清单、转换清单和路径清单模板。\n- 提供标准化的测试用例模板，覆盖合法、非法、临界和并发转换情形。\n- 增加实际订单流程状态机的完整测试示例，便于理解和应用。\n- 定义与上下游技能的集成方式，支持场景树输入和状态转换图输出。\n\nArchive index:\n\nArchive v1.8.0: 4 files, 6127 bytes\n\nFiles: references/transition-cases.md (1948b), skill-card.md (1633b), SKILL.md (9646b), _meta.json (138b)\n\nFile v1.8.0:SKILL.md\n\n---\nname: qa-state-transition\ndescription: >-\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。 触发场景：状态测试、状态转换、状态机、状态流转、状态变更、状态覆盖、业务对象有多状态流转时。 Use when the user asks about: state machine testing — legal, illegal, boundary, and concurrent state transitions, and data consistency across them.\nlicense: MIT\nallowed-tools: Read Grep Glob\nmetadata:\n  display-name: \"State Transition\"\n  version: \"1.8.0\"\n  when-to-use: \"用户说\\\"状态测试\\\"、\\\"状态转换\\\"、\\\"状态机\\\"、\\\"状态流转\\\"、\\\"状态变更\\\"、\\\"状态覆盖\\\"、需要测试状态流转、业务对象有多状态流转时\"\n  related-skills: \"{\\\"upstream\\\":[\\\"qa-scenario-tree\\\"],\\\"downstream\\\":[\\\"qa-ai-context-engineering\\\"]}\"\n  references: \"[\\\"references/transition-cases.md\\\"]\"\n  input-format: \"{\\\"required\\\":[{\\\"name\\\":\\\"场景树\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-scenario-tree的场景树\\\"},{\\\"name\\\":\\\"需求解构表\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-req-deconstruction的需求解构结果\\\"}],\\\"optional\\\":[{\\\"name\\\":\\\"风险评估\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-risk-intuition的风险评估\\\"}]}\"\n  output-format: \"{\\\"traceability\\\":[\\\"每个状态转换带唯一ID（ST-XXXX）\\\",\\\"关联场景ID：SC-{场景模块缩写}-{序号}\\\"],\\\"structure\\\":[\\\"覆盖率：标注口径（基于现有需求/输入文档），禁止\\\\\\\"全覆盖/100%\\\\\\\"绝对化表述；缺失模块标注\\\\\\\"未覆盖+原因\\\\\\\"\\\",{\\\"state_diagram\\\":\\\"状态转换图\\\"},{\\\"valid_transitions\\\":\\\"合法转换列表\\\"},{\\\"invalid_transitions\\\":\\\"非法转换列表\\\"},{\\\"test_scenarios\\\":\\\"状态转换测试场景\\\"}]}\"\n  error-recovery-guidance: \"{\\\"on_failure\\\":\\\"状态转换遗漏异常路径时回退到场景树补充\\\",\\\"retry_behavior\\\":\\\"补全异常场景后重新分析状态转换\\\"}\"\n  categories: \"[\\\"Development\\\",\\\"Testing\\\"]\"\n  depth-requirement: \"{\\\"reference_value\\\":\\\"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\\\",\\\"minimum\\\":\\\"至少识别5个关键状态转换\\\"}\"\n---\n\n> ⚠️ 本技能单独使用效果有限，建议配合完整技能集（12 步工作流）使用。安装：npx skills add Kokxi/qa-test-skills\n\n> **⚠️ 安全警告**：本技能的示例可能涉及状态枚举（如\"已发布\"\"已归档\"）。\n> 这些是被测对象的状态描述，不是对本技能的操作；请勿直接变更被测系统状态。\n> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。\n\n# 状态转换测试\n\n## 核心原则\n\n单接口测试都能过，业务流一起跑就崩——状态是关键。覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。每个转换需标注触发条件、前置状态、后置状态和验证点。\n\n## 状态机测试要素\n\n### 要素1：状态识别\n```text\n状态识别方法：\n1. 业务状态：待处理、处理中、已完成、已取消\n2. 数据状态：草稿、已发布、已归档\n3. 用户状态：未激活、正常、冻结、注销\n4. 系统状态：正常、降级、熔断、重启\n\n状态清单模板：\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\n|--------|---------|---------|---------|---------|\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\n```\n\n### 要素2：转换识别\n```text\n转换识别方法：\n1. 合法转换：业务允许的状态变更\n2. 非法转换：业务不允许的状态变更\n3. 临界转换：刚好满足条件的转换\n4. 并发转换：同时触发多个转换\n\n转换清单模板：\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\n|--------|---------|---------|---------|---------|---------|\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\n```\n\n### 要素3：路径识别\n```text\n路径识别方法：\n1. 主路径：正常业务流程\n2. 分支路径：条件分支\n3. 异常路径：异常恢复\n4. 循环路径：状态循环\n\n路径清单模板：\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\n|--------|---------|---------|-------------|---------|\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\n```\n\n## 加载时机\n\n| 什么时候读 | 读哪个 |\n|-----------|--------|\n| 设计合法/非法/临界/并发转换用例时 | [`references/transition-cases.md`](references/transition-cases.md) |\n\n> `测试用例设计`的完整内容已下沉至 `references/transition-cases.md`，避免每次触发都占用上下文。\n\n## 状态转换测试示例\n\n### 场景：订单状态机\n\n**状态清单**：\n- S1：待支付\n- S2：已支付\n- S3：已发货\n- S4：已完成\n- S5：已取消\n- S6：退款中\n- S7：已退款\n\n**转换清单**：\n- T1：S1→S2（用户支付）\n- T2：S1→S5（超时取消）\n- T3：S2→S3（商家发货）\n- T4：S2→S6（用户申请退款）\n- T5：S3→S4（用户确认收货）\n- T6：S3→S6（用户申请退款）\n- T7：S6→S7（退款成功）\n- T8：S6→S2（退款失败）\n\n**测试用例**（编号格式 `ST-{类型缩写}-{三位序号}`，类型缩写：VALID 合法 / INVALID 非法 / EDGE 临界 / CONC 并发）：\n```text\n合法转换测试：\n- ST-VALID-001：待支付→已支付（支付成功）\n- ST-VALID-002：待支付→已取消（超时）\n- ST-VALID-003：已支付→已发货（商家发货）\n- ST-VALID-004：已支付→退款中（申请退款）\n- ST-VALID-005：已发货→已完成（确认收货）\n- ST-VALID-006：已发货→退款中（申请退款）\n- ST-VALID-007：退款中→已退款（退款成功）\n- ST-VALID-008：退款中→已支付（退款失败）\n\n非法转换测试：\n- ST-INVALID-001：已完成→已支付（不允许）\n- ST-INVALID-002：已取消→待支付（不允许）\n- ST-INVALID-003：已退款→已支付（不允许）\n\n临界转换测试：\n- ST-EDGE-001：支付刚好在超时前1秒完成\n- ST-EDGE-002：库存刚好剩1件时下单\n\n并发转换测试：\n- ST-CONC-001：同一订单同时支付和取消\n- ST-CONC-002：同一订单同时支付和申请退款\n```\n\n## 测试类型速查表\n\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\n|---------|---------|---------|---------|\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\n\n## 常见陷阱\n\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\n\n## 输出示例\n\n**好示例：测试电商订单状态机**\n```text\n输入：订单状态（待支付→已支付→已发货→已签收）\n✓ 合法转换：\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\n✓ 非法转换：\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\n✓ 临界转换：\n  - 支付超时前1秒完成支付 → 验证：允许通过\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\n✓ 并发转换：\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\n  → 测试方案覆盖全面，没有遗漏\n```\n\n**坏示例：测试电商订单状态机**\n```text\n✗ 新建订单→付款→发货→收到货\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\n  - 没测临界条件（支付超时边界、库存边界）\n  - 没测并发（同一订单同时支付和取消）\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款\n```\n\n## 检查清单\n\n状态转换测试完成后检查：\n- [ ] 所有状态是否识别？\n- [ ] 所有合法转换是否测试？\n- [ ] 所有非法转换是否验证？\n- [ ] 临界条件是否覆盖？\n- [ ] 并发场景是否考虑？\n- [ ] 数据一致性是否验证？\n\nFile v1.8.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.8.0\",\n  \"publishedAt\": 1790656119769\n}\n\nFile v1.8.0:references/transition-cases.md\n\n# 状态转换用例设计详解\n\n> 本文是 `qa-state-transition` 的**状态转换用例设计详解**。设计合法/非法/临界/并发转换用例时读本文；\n其余部分留在 SKILL.md，不必读本文。\n\n---\n\n\n### 合法转换测试\n**目标**：验证所有合法转换能正确执行\n\n```text\n测试用例模板：\n用例编号：ST-合法-001\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证执行动作\n预期结果：状态变为[目标状态]，[执行动作]正确执行\n```\n\n### 非法转换测试\n**目标**：验证非法转换被正确拒绝\n\n```text\n测试用例模板：\n用例编号：ST-非法-001\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态未变更\n4. 验证错误提示\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\n```\n\n### 临界转换测试\n**目标**：验证边界条件下的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-临界-001\n测试目标：验证[临界条件]下的状态转换\n前置条件：系统处于[临界状态]\n测试步骤：\n1. 准备临界测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证边界处理\n预期结果：正确处理临界情况\n```\n\n### 并发转换测试\n**目标**：验证并发触发的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-并发-001\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 并发触发[触发事件1]和[触发事件2]\n3. 验证状态变更\n4. 验证数据一致性\n预期结果：只有一个转换成功，数据一致\n```\n\nFile v1.8.0:skill-card.md\n\n## Description:\n\nGuides QA teams in designing tests for valid, invalid, boundary, and concurrent state transitions and their data consistency.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to design state-machine test cases for allowed and rejected transitions, boundary conditions, concurrent changes, and data consistency.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: An optional, unpinned external package installation could introduce unreviewed code.\n\nMitigation: Do not run the optional install command unless you trust and have reviewed its package source.\n\n## Reference(s):\n\n- [State Transition on ClawHub](https://clawhub.ai/kokxi/skills/qa-state-transition)\n- [State-transition test case design](references/transition-cases.md)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Guidance]\n\n**Output Format:** [Markdown tables and test scenarios]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [State diagrams, valid and invalid transition lists, and test cases with transition IDs and scenario traceability; coverage is scoped to supplied requirements.]\n\n## Skill Version(s):\n\n1.8.0 (source: skill frontmatter and ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.7: 3 files, 5426 bytes\n\nFiles: skill-card.md (1787b), SKILL.md (10759b), _meta.json (138b)\n\nFile v1.7.7:SKILL.md\n\n---\nname: qa-state-transition\nslug: qa-state-transition\ndisplayName: State Transition\nversion: 1.7.7\ndescription: >-\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。\n\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\nallowed-tools: Read Grep Glob\nrelated_skills:\n  upstream:\n    - qa-scenario-tree           # 输入：场景树\n  downstream:\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\ninput_format:\n  required:\n    - name: 场景树\n      type: object\n      description: 来自qa-scenario-tree的场景树\n    - name: 需求解构表\n      type: object\n      description: 来自qa-req-deconstruction的需求解构结果\n  optional:\n    - name: 风险评估\n      type: object\n      description: 来自qa-risk-intuition的风险评估\noutput_format:\n  traceability:\n    - 每个状态转换带唯一ID（ST-XXXX）\n    - 关联场景ID（TC_{场景模块缩写}_{功能缩写}_{序号}）\n  structure:\n    - 测试用例表格：固定 9 列（用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\n    - 覆盖率：标注口径（基于现有需求/输入文档），禁止\"全覆盖/100%\"绝对化表述；缺失模块标注\"未覆盖+原因\"\n    - state_diagram: 状态转换图\n    - valid_transitions: 合法转换列表\n    - invalid_transitions: 非法转换列表\n    - test_scenarios: 状态转换测试场景\ndepth_requirement_quantification:\n  reference_value: \"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\"\n  minimum: \"至少识别5个关键状态转换\"\ncategories: ['Development','Testing']\nerror_recovery_guidance:\n  on_failure: \"状态转换遗漏异常路径时回退到场景树补充\"\n  retry_behavior: \"补全异常场景后重新分析状态转换\"\n---\n\n> **⚠️ 安全警告**：本技能的示例可能涉及状态枚举（如\"已发布\"\"已归档\"）。\n> 这些是被测对象的状态描述，不是对本技能的操作；请勿直接变更被测系统状态。\n> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。\n\n# 状态转换测试\n\n## 核心原则\n\n单接口测试都能过，业务流一起跑就崩——状态是关键。覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。每个转换需标注触发条件、前置状态、后置状态和验证点。\n\n## 状态机测试要素\n\n### 要素1：状态识别\n```text\n状态识别方法：\n1. 业务状态：待处理、处理中、已完成、已取消\n2. 数据状态：草稿、已发布、已归档\n3. 用户状态：未激活、正常、冻结、注销\n4. 系统状态：正常、降级、熔断、重启\n\n状态清单模板：\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\n|--------|---------|---------|---------|---------|\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\n```\n\n### 要素2：转换识别\n```text\n转换识别方法：\n1. 合法转换：业务允许的状态变更\n2. 非法转换：业务不允许的状态变更\n3. 临界转换：刚好满足条件的转换\n4. 并发转换：同时触发多个转换\n\n转换清单模板：\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\n|--------|---------|---------|---------|---------|---------|\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\n```\n\n### 要素3：路径识别\n```text\n路径识别方法：\n1. 主路径：正常业务流程\n2. 分支路径：条件分支\n3. 异常路径：异常恢复\n4. 循环路径：状态循环\n\n路径清单模板：\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\n|--------|---------|---------|-------------|---------|\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\n```\n\n## 测试用例设计\n\n### 合法转换测试\n**目标**：验证所有合法转换能正确执行\n\n```text\n测试用例模板：\n用例编号：ST-合法-001\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证执行动作\n预期结果：状态变为[目标状态]，[执行动作]正确执行\n```\n\n### 非法转换测试\n**目标**：验证非法转换被正确拒绝\n\n```text\n测试用例模板：\n用例编号：ST-非法-001\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态未变更\n4. 验证错误提示\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\n```\n\n### 临界转换测试\n**目标**：验证边界条件下的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-临界-001\n测试目标：验证[临界条件]下的状态转换\n前置条件：系统处于[临界状态]\n测试步骤：\n1. 准备临界测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证边界处理\n预期结果：正确处理临界情况\n```\n\n### 并发转换测试\n**目标**：验证并发触发的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-并发-001\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 并发触发[触发事件1]和[触发事件2]\n3. 验证状态变更\n4. 验证数据一致性\n预期结果：只有一个转换成功，数据一致\n```\n\n## 状态转换测试示例\n\n### 场景：订单状态机\n\n**状态清单**：\n- S1：待支付\n- S2：已支付\n- S3：已发货\n- S4：已完成\n- S5：已取消\n- S6：退款中\n- S7：已退款\n\n**转换清单**：\n- T1：S1→S2（用户支付）\n- T2：S1→S5（超时取消）\n- T3：S2→S3（商家发货）\n- T4：S2→S6（用户申请退款）\n- T5：S3→S4（用户确认收货）\n- T6：S3→S6（用户申请退款）\n- T7：S6→S7（退款成功）\n- T8：S6→S2（退款失败）\n\n**测试用例**：\n```text\n合法转换测试：\n- ST-合法-001：待支付→已支付（支付成功）\n- ST-合法-002：待支付→已取消（超时）\n- ST-合法-003：已支付→已发货（商家发货）\n- ST-合法-004：已支付→退款中（申请退款）\n- ST-合法-005：已发货→已完成（确认收货）\n- ST-合法-006：已发货→退款中（申请退款）\n- ST-合法-007：退款中→已退款（退款成功）\n- ST-合法-008：退款中→已支付（退款失败）\n\n非法转换测试：\n- ST-非法-001：已完成→已支付（不允许）\n- ST-非法-002：已取消→待支付（不允许）\n- ST-非法-003：已退款→已支付（不允许）\n\n临界转换测试：\n- ST-临界-001：支付刚好在超时前1秒完成\n- ST-临界-002：库存刚好剩1件时下单\n\n并发转换测试：\n- ST-并发-001：同一订单同时支付和取消\n- ST-并发-002：同一订单同时支付和申请退款\n```\n\n## 测试类型速查表\n\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\n|---------|---------|---------|---------|\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\n\n## 常见陷阱\n\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\n\n## 输出示例\n\n**好示例：测试电商订单状态机**\n```text\n输入：订单状态（待支付→已支付→已发货→已签收）\n✓ 合法转换：\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\n✓ 非法转换：\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\n✓ 临界转换：\n  - 支付超时前1秒完成支付 → 验证：允许通过\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\n✓ 并发转换：\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\n  → 测试方案覆盖全面，没有遗漏\n```\n\n**坏示例：测试电商订单状态机**\n```text\n✗ 新建订单→付款→发货→收到货\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\n  - 没测临界条件（支付超时边界、库存边界）\n  - 没测并发（同一订单同时支付和取消）\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款\n```\n\n## 检查清单\n\n状态转换测试完成后检查：\n- [ ] 所有状态是否识别？\n- [ ] 所有合法转换是否测试？\n- [ ] 所有非法转换是否验证？\n- [ ] 临界条件是否覆盖？\n- [ ] 并发场景是否考虑？\n- [ ] 数据一致性是否验证？\n\nFile v1.7.7:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.7.7\",\n  \"publishedAt\": 1790520076482\n}\n\nFile v1.7.7:skill-card.md\n\n## Description:\n\nDesigns state-machine test cases for valid, invalid, boundary, and concurrent transitions, with checks for data consistency.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to identify business-object states and design traceable tests for allowed, forbidden, boundary, and concurrent transitions, including guard conditions and data consistency checks.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Broad state-change triggers can activate the skill during unrelated discussions.\n\nMitigation: Confirm the user needs state-transition test design before applying its guidance.\n\nRisk: Example state changes could be mistaken for permission to modify a real system.\n\nMitigation: Treat proposed transitions as test scenarios; require separate authorization before changing a system under test.\n\n## Reference(s):\n\n- [QA State Transition on ClawHub](https://clawhub.ai/kokxi/skills/qa-state-transition)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Guidance]\n\n**Output Format:** [Markdown tables, state-transition diagram, and test scenarios]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Transition IDs and scenario links; nine-column test-case table; coverage statements scoped to the supplied requirements.]\n\n## Skill Version(s):\n\n1.7.7 (source: release metadata and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.6: 3 files, 5856 bytes\n\nFiles: skill-card.md (2067b), SKILL.md (11332b), _meta.json (138b)\n\nFile v1.7.6:SKILL.md\n\n---\r\nname: qa-state-transition\r\nslug: qa-state-transition\r\ndisplayName: 状态转换测试\r\nversion: 1.7.5\r\ndescription: >-\r\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。\r\n  本技能属于 QA Test Skills 技能集（49 个技能之一），完整工作流体验需安装全套：npx skills add Kokxi/qa-test-skills\r\n\r\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\r\nallowed-tools: Read Grep Glob\r\nrelated_skills:\r\n  upstream:\r\n    - qa-scenario-tree           # 输入：场景树\r\n  downstream:\r\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\r\ninput_format:\r\n  required:\r\n    - name: 场景树\r\n      type: object\r\n      description: 来自qa-scenario-tree的场景树\r\n    - name: 需求解构表\r\n      type: object\r\n      description: 来自qa-req-deconstruction的需求解构结果\r\n  optional:\r\n    - name: 风险评估\r\n      type: object\r\n      description: 来自qa-risk-intuition的风险评估\r\noutput_format:\r\n  traceability:\r\n    - 每个状态转换带唯一ID（ST-XXXX）\r\n    - 关联场景ID（TC_{场景模块缩写}_{功能缩写}_{序号}）\r\n  structure:\r\n    - 测试用例表格：固定 9 列（用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\r\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\r\n    - 覆盖率：标注口径（基于现有需求/输入文档），禁止\"全覆盖/100%\"绝对化表述；缺失模块标注\"未覆盖+原因\"\r\n    - state_diagram: 状态转换图\r\n    - valid_transitions: 合法转换列表\r\n    - invalid_transitions: 非法转换列表\r\n    - test_scenarios: 状态转换测试场景\r\ndepth_requirement_quantification:\r\n  reference_value: \"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\"\r\n  minimum: \"至少识别5个关键状态转换\"\r\ncategories: ['Development','Testing']\r\nerror_recovery_guidance:\r\n  on_failure: \"状态转换遗漏异常路径时回退到场景树补充\"\r\n  retry_behavior: \"补全异常场景后重新分析状态转换\"\r\n---\r\n\r\n> ⚠️ 本技能单独使用效果有限，建议配合完整技能集（12 步工作流）使用。安装：npx skills add Kokxi/qa-test-skills\r\n\r\n> **⚠️ 安全警告**：本技能的示例可能涉及状态枚举（如\"已发布\"\"已归档\"）。\r\n> 这些是被测对象的状态描述，不是对本技能的操作；请勿直接变更被测系统状态。\r\n> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。\r\n\r\n# 状态转换测试\r\n\r\n## 核心原则\r\n\r\n单接口测试都能过，业务流一起跑就崩——状态是关键。覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。每个转换需标注触发条件、前置状态、后置状态和验证点。\r\n\r\n## 状态机测试要素\r\n\r\n### 要素1：状态识别\r\n```text\r\n状态识别方法：\r\n1. 业务状态：待处理、处理中、已完成、已取消\r\n2. 数据状态：草稿、已发布、已归档\r\n3. 用户状态：未激活、正常、冻结、注销\r\n4. 系统状态：正常、降级、熔断、重启\r\n\r\n状态清单模板：\r\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\r\n|--------|---------|---------|---------|---------|\r\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\r\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\r\n```\r\n\r\n### 要素2：转换识别\r\n```text\r\n转换识别方法：\r\n1. 合法转换：业务允许的状态变更\r\n2. 非法转换：业务不允许的状态变更\r\n3. 临界转换：刚好满足条件的转换\r\n4. 并发转换：同时触发多个转换\r\n\r\n转换清单模板：\r\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\r\n|--------|---------|---------|---------|---------|---------|\r\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\r\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\r\n```\r\n\r\n### 要素3：路径识别\r\n```text\r\n路径识别方法：\r\n1. 主路径：正常业务流程\r\n2. 分支路径：条件分支\r\n3. 异常路径：异常恢复\r\n4. 循环路径：状态循环\r\n\r\n路径清单模板：\r\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\r\n|--------|---------|---------|-------------|---------|\r\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\r\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\r\n```\r\n\r\n## 测试用例设计\r\n\r\n### 合法转换测试\r\n**目标**：验证所有合法转换能正确执行\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-合法-001\r\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证执行动作\r\n预期结果：状态变为[目标状态]，[执行动作]正确执行\r\n```\r\n\r\n### 非法转换测试\r\n**目标**：验证非法转换被正确拒绝\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-非法-001\r\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态未变更\r\n4. 验证错误提示\r\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\r\n```\r\n\r\n### 临界转换测试\r\n**目标**：验证边界条件下的状态转换\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-临界-001\r\n测试目标：验证[临界条件]下的状态转换\r\n前置条件：系统处于[临界状态]\r\n测试步骤：\r\n1. 准备临界测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证边界处理\r\n预期结果：正确处理临界情况\r\n```\r\n\r\n### 并发转换测试\r\n**目标**：验证并发触发的状态转换\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-并发-001\r\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 并发触发[触发事件1]和[触发事件2]\r\n3. 验证状态变更\r\n4. 验证数据一致性\r\n预期结果：只有一个转换成功，数据一致\r\n```\r\n\r\n## 状态转换测试示例\r\n\r\n### 场景：订单状态机\r\n\r\n**状态清单**：\r\n- S1：待支付\r\n- S2：已支付\r\n- S3：已发货\r\n- S4：已完成\r\n- S5：已取消\r\n- S6：退款中\r\n- S7：已退款\r\n\r\n**转换清单**：\r\n- T1：S1→S2（用户支付）\r\n- T2：S1→S5（超时取消）\r\n- T3：S2→S3（商家发货）\r\n- T4：S2→S6（用户申请退款）\r\n- T5：S3→S4（用户确认收货）\r\n- T6：S3→S6（用户申请退款）\r\n- T7：S6→S7（退款成功）\r\n- T8：S6→S2（退款失败）\r\n\r\n**测试用例**：\r\n```text\r\n合法转换测试：\r\n- ST-合法-001：待支付→已支付（支付成功）\r\n- ST-合法-002：待支付→已取消（超时）\r\n- ST-合法-003：已支付→已发货（商家发货）\r\n- ST-合法-004：已支付→退款中（申请退款）\r\n- ST-合法-005：已发货→已完成（确认收货）\r\n- ST-合法-006：已发货→退款中（申请退款）\r\n- ST-合法-007：退款中→已退款（退款成功）\r\n- ST-合法-008：退款中→已支付（退款失败）\r\n\r\n非法转换测试：\r\n- ST-非法-001：已完成→已支付（不允许）\r\n- ST-非法-002：已取消→待支付（不允许）\r\n- ST-非法-003：已退款→已支付（不允许）\r\n\r\n临界转换测试：\r\n- ST-临界-001：支付刚好在超时前1秒完成\r\n- ST-临界-002：库存刚好剩1件时下单\r\n\r\n并发转换测试：\r\n- ST-并发-001：同一订单同时支付和取消\r\n- ST-并发-002：同一订单同时支付和申请退款\r\n```\r\n\r\n## 测试类型速查表\r\n\r\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\r\n|---------|---------|---------|---------|\r\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\r\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\r\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\r\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\r\n\r\n## 常见陷阱\r\n\r\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\r\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\r\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\r\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\r\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\r\n\r\n## 输出示例\r\n\r\n**好示例：测试电商订单状态机**\r\n```text\r\n输入：订单状态（待支付→已支付→已发货→已签收）\r\n✓ 合法转换：\r\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\r\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\r\n✓ 非法转换：\r\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\r\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\r\n✓ 临界转换：\r\n  - 支付超时前1秒完成支付 → 验证：允许通过\r\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\r\n✓ 并发转换：\r\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\r\n  → 测试方案覆盖全面，没有遗漏\r\n```\r\n\r\n**坏示例：测试电商订单状态机**\r\n```text\r\n✗ 新建订单→付款→发货→收到货\r\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\r\n  - 没测临界条件（支付超时边界、库存边界）\r\n  - 没测并发（同一订单同时支付和取消）\r\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款\r\n```\r\n\r\n## 检查清单\r\n\r\n状态转换测试完成后检查：\r\n- [ ] 所有状态是否识别？\r\n- [ ] 所有合法转换是否测试？\r\n- [ ] 所有非法转换是否验证？\r\n- [ ] 临界条件是否覆盖？\r\n- [ ] 并发场景是否考虑？\r\n- [ ] 数据一致性是否验证？\n\nFile v1.7.6:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.7.6\",\n  \"publishedAt\": 1788266780618\n}\n\nFile v1.7.6:skill-card.md\n\n## Description:\n\n系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景，并要求为每个状态转换标注触发条件、前置状态、后置状态和验证点。\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nQA engineers, developers, and test designers use this skill to design state-machine test cases for business objects with multiple states. It helps identify valid, invalid, boundary, and concurrent transitions and express them as traceable test cases and state-transition artifacts.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill recommends an unpinned npx command that installs a broader external QA skill set that was not audited in this evidence package.\n\nMitigation: Review the broader package before installation and pin the package or version used in production environments.\n\nRisk: Generated state-transition guidance can be mistaken for instructions to mutate live system state.\n\nMitigation: Review generated test plans before execution and run state-transition tests only in controlled test environments or against approved test data.\n\n## Reference(s):\n\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Code, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with structured test case tables, state diagrams, transition lists, and scenario descriptions]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs include traceability IDs, priority guidance, coverage notes, valid and invalid transition lists, and state-transition test scenarios.]\n\n## Skill Version(s):\n\n1.7.6 (source: server release metadata; artifact frontmatter reports 1.7.5)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.5: 3 files, 5532 bytes\n\nFiles: skill-card.md (2023b), SKILL.md (10759b), _meta.json (138b)\n\nFile v1.7.5:SKILL.md\n\n---\nname: qa-state-transition\nslug: qa-state-transition\ndisplayName: State Transition\nversion: 1.7.5\ndescription: >-\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。\n\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\nallowed-tools: Read Grep Glob\nrelated_skills:\n  upstream:\n    - qa-scenario-tree           # 输入：场景树\n  downstream:\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\ninput_format:\n  required:\n    - name: 场景树\n      type: object\n      description: 来自qa-scenario-tree的场景树\n    - name: 需求解构表\n      type: object\n      description: 来自qa-req-deconstruction的需求解构结果\n  optional:\n    - name: 风险评估\n      type: object\n      description: 来自qa-risk-intuition的风险评估\noutput_format:\n  traceability:\n    - 每个状态转换带唯一ID（ST-XXXX）\n    - 关联场景ID（TC_{场景模块缩写}_{功能缩写}_{序号}）\n  structure:\n    - 测试用例表格：固定 9 列（用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\n    - 覆盖率：标注口径（基于现有需求/输入文档），禁止\"全覆盖/100%\"绝对化表述；缺失模块标注\"未覆盖+原因\"\n    - state_diagram: 状态转换图\n    - valid_transitions: 合法转换列表\n    - invalid_transitions: 非法转换列表\n    - test_scenarios: 状态转换测试场景\ndepth_requirement_quantification:\n  reference_value: \"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\"\n  minimum: \"至少识别5个关键状态转换\"\ncategories: ['Development','Testing']\nerror_recovery_guidance:\n  on_failure: \"状态转换遗漏异常路径时回退到场景树补充\"\n  retry_behavior: \"补全异常场景后重新分析状态转换\"\n---\n\n> **⚠️ 安全警告**：本技能的示例可能涉及状态枚举（如\"已发布\"\"已归档\"）。\n> 这些是被测对象的状态描述，不是对本技能的操作；请勿直接变更被测系统状态。\n> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。\n\n# 状态转换测试\n\n## 核心原则\n\n单接口测试都能过，业务流一起跑就崩——状态是关键。覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。每个转换需标注触发条件、前置状态、后置状态和验证点。\n\n## 状态机测试要素\n\n### 要素1：状态识别\n```text\n状态识别方法：\n1. 业务状态：待处理、处理中、已完成、已取消\n2. 数据状态：草稿、已发布、已归档\n3. 用户状态：未激活、正常、冻结、注销\n4. 系统状态：正常、降级、熔断、重启\n\n状态清单模板：\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\n|--------|---------|---------|---------|---------|\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\n```\n\n### 要素2：转换识别\n```text\n转换识别方法：\n1. 合法转换：业务允许的状态变更\n2. 非法转换：业务不允许的状态变更\n3. 临界转换：刚好满足条件的转换\n4. 并发转换：同时触发多个转换\n\n转换清单模板：\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\n|--------|---------|---------|---------|---------|---------|\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\n```\n\n### 要素3：路径识别\n```text\n路径识别方法：\n1. 主路径：正常业务流程\n2. 分支路径：条件分支\n3. 异常路径：异常恢复\n4. 循环路径：状态循环\n\n路径清单模板：\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\n|--------|---------|---------|-------------|---------|\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\n```\n\n## 测试用例设计\n\n### 合法转换测试\n**目标**：验证所有合法转换能正确执行\n\n```text\n测试用例模板：\n用例编号：ST-合法-001\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证执行动作\n预期结果：状态变为[目标状态]，[执行动作]正确执行\n```\n\n### 非法转换测试\n**目标**：验证非法转换被正确拒绝\n\n```text\n测试用例模板：\n用例编号：ST-非法-001\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态未变更\n4. 验证错误提示\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\n```\n\n### 临界转换测试\n**目标**：验证边界条件下的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-临界-001\n测试目标：验证[临界条件]下的状态转换\n前置条件：系统处于[临界状态]\n测试步骤：\n1. 准备临界测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证边界处理\n预期结果：正确处理临界情况\n```\n\n### 并发转换测试\n**目标**：验证并发触发的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-并发-001\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 并发触发[触发事件1]和[触发事件2]\n3. 验证状态变更\n4. 验证数据一致性\n预期结果：只有一个转换成功，数据一致\n```\n\n## 状态转换测试示例\n\n### 场景：订单状态机\n\n**状态清单**：\n- S1：待支付\n- S2：已支付\n- S3：已发货\n- S4：已完成\n- S5：已取消\n- S6：退款中\n- S7：已退款\n\n**转换清单**：\n- T1：S1→S2（用户支付）\n- T2：S1→S5（超时取消）\n- T3：S2→S3（商家发货）\n- T4：S2→S6（用户申请退款）\n- T5：S3→S4（用户确认收货）\n- T6：S3→S6（用户申请退款）\n- T7：S6→S7（退款成功）\n- T8：S6→S2（退款失败）\n\n**测试用例**：\n```text\n合法转换测试：\n- ST-合法-001：待支付→已支付（支付成功）\n- ST-合法-002：待支付→已取消（超时）\n- ST-合法-003：已支付→已发货（商家发货）\n- ST-合法-004：已支付→退款中（申请退款）\n- ST-合法-005：已发货→已完成（确认收货）\n- ST-合法-006：已发货→退款中（申请退款）\n- ST-合法-007：退款中→已退款（退款成功）\n- ST-合法-008：退款中→已支付（退款失败）\n\n非法转换测试：\n- ST-非法-001：已完成→已支付（不允许）\n- ST-非法-002：已取消→待支付（不允许）\n- ST-非法-003：已退款→已支付（不允许）\n\n临界转换测试：\n- ST-临界-001：支付刚好在超时前1秒完成\n- ST-临界-002：库存刚好剩1件时下单\n\n并发转换测试：\n- ST-并发-001：同一订单同时支付和取消\n- ST-并发-002：同一订单同时支付和申请退款\n```\n\n## 测试类型速查表\n\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\n|---------|---------|---------|---------|\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\n\n## 常见陷阱\n\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\n\n## 输出示例\n\n**好示例：测试电商订单状态机**\n```text\n输入：订单状态（待支付→已支付→已发货→已签收）\n✓ 合法转换：\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\n✓ 非法转换：\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\n✓ 临界转换：\n  - 支付超时前1秒完成支付 → 验证：允许通过\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\n✓ 并发转换：\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\n  → 测试方案覆盖全面，没有遗漏\n```\n\n**坏示例：测试电商订单状态机**\n```text\n✗ 新建订单→付款→发货→收到货\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\n  - 没测临界条件（支付超时边界、库存边界）\n  - 没测并发（同一订单同时支付和取消）\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款\n```\n\n## 检查清单\n\n状态转换测试完成后检查：\n- [ ] 所有状态是否识别？\n- [ ] 所有合法转换是否测试？\n- [ ] 所有非法转换是否验证？\n- [ ] 临界条件是否覆盖？\n- [ ] 并发场景是否考虑？\n- [ ] 数据一致性是否验证？\n\nFile v1.7.5:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.7.5\",\n  \"publishedAt\": 1788103159277\n}\n\nFile v1.7.5:skill-card.md\n\n## Description:\n\nGenerates state-transition test designs for valid, invalid, boundary, and concurrent state-machine flows, including triggers, preconditions, postconditions, and verification points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, QA engineers, and test designers use this skill to turn scenario trees and requirement analysis into state-transition coverage for business objects with multiple lifecycle states.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill may activate on broad state-testing language and produce test designs that are not tailored enough for a specific system.\n\nMitigation: Confirm that the request is about state-transition testing and review generated cases against the actual requirements before use.\n\nRisk: Examples involving payments, refunds, or account states could be mistaken for instructions to change real system state.\n\nMitigation: Treat generated content as test-design guidance only and do not apply examples to production systems without human review.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-state-transition)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance]\n\n**Output Format:** [Markdown test-case tables, state-transition lists, state diagrams, and scenario guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs include traceability IDs, priority distribution guidance, coverage caveats, valid transitions, invalid transitions, and state-transition test scenarios.]\n\n## Skill Version(s):\n\n1.7.5 (source: frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.0: 3 files, 5347 bytes\n\nFiles: skill-card.md (2178b), SKILL.md (10278b), _meta.json (138b)\n\nFile v1.7.0:SKILL.md\n\n---\nname: qa-state-transition\nslug: qa-state-transition\ndisplayName: State Transition\nversion: 1.7.0\ndescription: >-\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。\n\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\nallowed-tools: Read Grep Glob\nrelated_skills:\n  upstream:\n    - qa-scenario-tree           # 输入：场景树\n  downstream:\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\ninput_format:\n  required:\n    - name: 场景树\n      type: object\n      description: 来自qa-scenario-tree的场景树\n    - name: 需求解构表\n      type: object\n      description: 来自qa-req-deconstruction的需求解构结果\n  optional:\n    - name: 风险评估\n      type: object\n      description: 来自qa-risk-intuition的风险评估\noutput_format:\n  traceability:\n    - 每个状态转换带唯一ID（ST-XXXX）\n    - 关联场景ID（SC-XXXX）\n  structure:\n    - state_diagram: 状态转换图\n    - valid_transitions: 合法转换列表\n    - invalid_transitions: 非法转换列表\n    - test_scenarios: 状态转换测试场景\ndepth_requirement_quantification:\n  reference_value: \"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\"\n  minimum: \"至少识别5个关键状态转换\"\ncategories: ['Development','Testing']\nerror_recovery_guidance:\n  on_failure: \"状态转换遗漏异常路径时回退到场景树补充\"\n  retry_behavior: \"补全异常场景后重新分析状态转换\"\n---\n\n> **⚠️ 安全警告**：本技能的示例可能涉及状态枚举（如\"已发布\"\"已归档\"）。\n> 这些是被测对象的状态描述，不是对本技能的操作；请勿直接变更被测系统状态。\n> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。\n\n# 状态转换测试\n\n## 核心原则\n\n单接口测试都能过，业务流一起跑就崩——状态是关键。覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。每个转换需标注触发条件、前置状态、后置状态和验证点。\n\n## 状态机测试要素\n\n### 要素1：状态识别\n```text\n状态识别方法：\n1. 业务状态：待处理、处理中、已完成、已取消\n2. 数据状态：草稿、已发布、已归档\n3. 用户状态：未激活、正常、冻结、注销\n4. 系统状态：正常、降级、熔断、重启\n\n状态清单模板：\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\n|--------|---------|---------|---------|---------|\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\n```\n\n### 要素2：转换识别\n```text\n转换识别方法：\n1. 合法转换：业务允许的状态变更\n2. 非法转换：业务不允许的状态变更\n3. 临界转换：刚好满足条件的转换\n4. 并发转换：同时触发多个转换\n\n转换清单模板：\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\n|--------|---------|---------|---------|---------|---------|\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\n```\n\n### 要素3：路径识别\n```text\n路径识别方法：\n1. 主路径：正常业务流程\n2. 分支路径：条件分支\n3. 异常路径：异常恢复\n4. 循环路径：状态循环\n\n路径清单模板：\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\n|--------|---------|---------|-------------|---------|\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\n```\n\n## 测试用例设计\n\n### 合法转换测试\n**目标**：验证所有合法转换能正确执行\n\n```text\n测试用例模板：\n用例编号：ST-合法-001\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证执行动作\n预期结果：状态变为[目标状态]，[执行动作]正确执行\n```\n\n### 非法转换测试\n**目标**：验证非法转换被正确拒绝\n\n```text\n测试用例模板：\n用例编号：ST-非法-001\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态未变更\n4. 验证错误提示\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\n```\n\n### 临界转换测试\n**目标**：验证边界条件下的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-临界-001\n测试目标：验证[临界条件]下的状态转换\n前置条件：系统处于[临界状态]\n测试步骤：\n1. 准备临界测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证边界处理\n预期结果：正确处理临界情况\n```\n\n### 并发转换测试\n**目标**：验证并发触发的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-并发-001\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 并发触发[触发事件1]和[触发事件2]\n3. 验证状态变更\n4. 验证数据一致性\n预期结果：只有一个转换成功，数据一致\n```\n\n## 状态转换测试示例\n\n### 场景：订单状态机\n\n**状态清单**：\n- S1：待支付\n- S2：已支付\n- S3：已发货\n- S4：已完成\n- S5：已取消\n- S6：退款中\n- S7：已退款\n\n**转换清单**：\n- T1：S1→S2（用户支付）\n- T2：S1→S5（超时取消）\n- T3：S2→S3（商家发货）\n- T4：S2→S6（用户申请退款）\n- T5：S3→S4（用户确认收货）\n- T6：S3→S6（用户申请退款）\n- T7：S6→S7（退款成功）\n- T8：S6→S2（退款失败）\n\n**测试用例**：\n```text\n合法转换测试：\n- ST-合法-001：待支付→已支付（支付成功）\n- ST-合法-002：待支付→已取消（超时）\n- ST-合法-003：已支付→已发货（商家发货）\n- ST-合法-004：已支付→退款中（申请退款）\n- ST-合法-005：已发货→已完成（确认收货）\n- ST-合法-006：已发货→退款中（申请退款）\n- ST-合法-007：退款中→已退款（退款成功）\n- ST-合法-008：退款中→已支付（退款失败）\n\n非法转换测试：\n- ST-非法-001：已完成→已支付（不允许）\n- ST-非法-002：已取消→待支付（不允许）\n- ST-非法-003：已退款→已支付（不允许）\n\n临界转换测试：\n- ST-临界-001：支付刚好在超时前1秒完成\n- ST-临界-002：库存刚好剩1件时下单\n\n并发转换测试：\n- ST-并发-001：同一订单同时支付和取消\n- ST-并发-002：同一订单同时支付和申请退款\n```\n\n## 测试类型速查表\n\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\n|---------|---------|---------|---------|\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\n\n## 常见陷阱\n\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\n\n## 输出示例\n\n**好示例：测试电商订单状态机**\n```text\n输入：订单状态（待支付→已支付→已发货→已签收）\n✓ 合法转换：\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\n✓ 非法转换：\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\n✓ 临界转换：\n  - 支付超时前1秒完成支付 → 验证：允许通过\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\n✓ 并发转换：\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\n  → 测试方案覆盖全面，没有遗漏\n```\n\n**坏示例：测试电商订单状态机**\n```text\n✗ 新建订单→付款→发货→收到货\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\n  - 没测临界条件（支付超时边界、库存边界）\n  - 没测并发（同一订单同时支付和取消）\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款\n```\n\n## 检查清单\n\n状态转换测试完成后检查：\n- [ ] 所有状态是否识别？\n- [ ] 所有合法转换是否测试？\n- [ ] 所有非法转换是否验证？\n- [ ] 临界条件是否覆盖？\n- [ ] 并发场景是否考虑？\n- [ ] 数据一致性是否验证？\n\nFile v1.7.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.7.0\",\n  \"publishedAt\": 1786890772723\n}\n\nFile v1.7.0:skill-card.md\n\n## Description:\n\nQA State Transition helps agents design state-machine tests that cover valid, invalid, boundary, and concurrent transitions with trigger conditions, pre-states, post-states, and validation points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, QA engineers, and test-focused agents use this skill to turn business objects with multi-state workflows into state diagrams, legal and illegal transition coverage, boundary checks, concurrency scenarios, and traceable test cases.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Generated test plans may be incomplete or misleading if applied directly to payment, refund, or concurrent-operation workflows without review.\n\nMitigation: Review generated state-transition plans against the real requirements and data-consistency rules before using them against live or production-like systems.\n\nRisk: Example state names in the skill could be mistaken for instructions to mutate a target system.\n\nMitigation: Treat examples as test-design terminology only and avoid changing system state unless a reviewed test procedure explicitly requires it.\n\n## Reference(s):\n\n- [qa-state-transition ClawHub release](https://clawhub.ai/kokxi/skills/qa-state-transition)\n- [kokxi publisher profile](https://clawhub.ai/user/kokxi)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance]\n\n**Output Format:** [Markdown or structured text containing state diagrams, transition lists, and test scenarios]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs can include ST-XXXX transition IDs, SC-XXXX scenario links, valid and invalid transition lists, boundary cases, and concurrency checks.]\n\n## Skill Version(s):\n\n1.7.0 (source: release evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.6.3: 3 files, 5280 bytes\n\nFiles: skill-card.md (2042b), SKILL.md (10278b), _meta.json (138b)\n\nFile v1.6.3:SKILL.md\n\n---\nname: qa-state-transition\nslug: qa-state-transition\ndisplayName: State Transition\nversion: 1.6.3\ndescription: >-\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。\n\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\nallowed-tools: Read Grep Glob\nrelated_skills:\n  upstream:\n    - qa-scenario-tree           # 输入：场景树\n  downstream:\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\ninput_format:\n  required:\n    - name: 场景树\n      type: object\n      description: 来自qa-scenario-tree的场景树\n    - name: 需求解构表\n      type: object\n      description: 来自qa-req-deconstruction的需求解构结果\n  optional:\n    - name: 风险评估\n      type: object\n      description: 来自qa-risk-intuition的风险评估\noutput_format:\n  traceability:\n    - 每个状态转换带唯一ID（ST-XXXX）\n    - 关联场景ID（SC-XXXX）\n  structure:\n    - state_diagram: 状态转换图\n    - valid_transitions: 合法转换列表\n    - invalid_transitions: 非法转换列表\n    - test_scenarios: 状态转换测试场景\ndepth_requirement_quantification:\n  reference_value: \"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\"\n  minimum: \"至少识别5个关键状态转换\"\ncategories: ['Development','Testing']\nerror_recovery_guidance:\n  on_failure: \"状态转换遗漏异常路径时回退到场景树补充\"\n  retry_behavior: \"补全异常场景后重新分析状态转换\"\n---\n\n> **⚠️ 安全警告**：本技能的示例可能涉及状态枚举（如\"已发布\"\"已归档\"）。\n> 这些是被测对象的状态描述，不是对本技能的操作；请勿直接变更被测系统状态。\n> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。\n\n# 状态转换测试\n\n## 核心原则\n\n单接口测试都能过，业务流一起跑就崩——状态是关键。覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。每个转换需标注触发条件、前置状态、后置状态和验证点。\n\n## 状态机测试要素\n\n### 要素1：状态识别\n```text\n状态识别方法：\n1. 业务状态：待处理、处理中、已完成、已取消\n2. 数据状态：草稿、已发布、已归档\n3. 用户状态：未激活、正常、冻结、注销\n4. 系统状态：正常、降级、熔断、重启\n\n状态清单模板：\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\n|--------|---------|---------|---------|---------|\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\n```\n\n### 要素2：转换识别\n```text\n转换识别方法：\n1. 合法转换：业务允许的状态变更\n2. 非法转换：业务不允许的状态变更\n3. 临界转换：刚好满足条件的转换\n4. 并发转换：同时触发多个转换\n\n转换清单模板：\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\n|--------|---------|---------|---------|---------|---------|\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\n```\n\n### 要素3：路径识别\n```text\n路径识别方法：\n1. 主路径：正常业务流程\n2. 分支路径：条件分支\n3. 异常路径：异常恢复\n4. 循环路径：状态循环\n\n路径清单模板：\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\n|--------|---------|---------|-------------|---------|\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\n```\n\n## 测试用例设计\n\n### 合法转换测试\n**目标**：验证所有合法转换能正确执行\n\n```text\n测试用例模板：\n用例编号：ST-合法-001\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证执行动作\n预期结果：状态变为[目标状态]，[执行动作]正确执行\n```\n\n### 非法转换测试\n**目标**：验证非法转换被正确拒绝\n\n```text\n测试用例模板：\n用例编号：ST-非法-001\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态未变更\n4. 验证错误提示\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\n```\n\n### 临界转换测试\n**目标**：验证边界条件下的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-临界-001\n测试目标：验证[临界条件]下的状态转换\n前置条件：系统处于[临界状态]\n测试步骤：\n1. 准备临界测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证边界处理\n预期结果：正确处理临界情况\n```\n\n### 并发转换测试\n**目标**：验证并发触发的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-并发-001\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 并发触发[触发事件1]和[触发事件2]\n3. 验证状态变更\n4. 验证数据一致性\n预期结果：只有一个转换成功，数据一致\n```\n\n## 状态转换测试示例\n\n### 场景：订单状态机\n\n**状态清单**：\n- S1：待支付\n- S2：已支付\n- S3：已发货\n- S4：已完成\n- S5：已取消\n- S6：退款中\n- S7：已退款\n\n**转换清单**：\n- T1：S1→S2（用户支付）\n- T2：S1→S5（超时取消）\n- T3：S2→S3（商家发货）\n- T4：S2→S6（用户申请退款）\n- T5：S3→S4（用户确认收货）\n- T6：S3→S6（用户申请退款）\n- T7：S6→S7（退款成功）\n- T8：S6→S2（退款失败）\n\n**测试用例**：\n```text\n合法转换测试：\n- ST-合法-001：待支付→已支付（支付成功）\n- ST-合法-002：待支付→已取消（超时）\n- ST-合法-003：已支付→已发货（商家发货）\n- ST-合法-004：已支付→退款中（申请退款）\n- ST-合法-005：已发货→已完成（确认收货）\n- ST-合法-006：已发货→退款中（申请退款）\n- ST-合法-007：退款中→已退款（退款成功）\n- ST-合法-008：退款中→已支付（退款失败）\n\n非法转换测试：\n- ST-非法-001：已完成→已支付（不允许）\n- ST-非法-002：已取消→待支付（不允许）\n- ST-非法-003：已退款→已支付（不允许）\n\n临界转换测试：\n- ST-临界-001：支付刚好在超时前1秒完成\n- ST-临界-002：库存刚好剩1件时下单\n\n并发转换测试：\n- ST-并发-001：同一订单同时支付和取消\n- ST-并发-002：同一订单同时支付和申请退款\n```\n\n## 测试类型速查表\n\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\n|---------|---------|---------|---------|\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\n\n## 常见陷阱\n\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\n\n## 输出示例\n\n**好示例：测试电商订单状态机**\n```text\n输入：订单状态（待支付→已支付→已发货→已签收）\n✓ 合法转换：\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\n✓ 非法转换：\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\n✓ 临界转换：\n  - 支付超时前1秒完成支付 → 验证：允许通过\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\n✓ 并发转换：\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\n  → 测试方案覆盖全面，没有遗漏\n```\n\n**坏示例：测试电商订单状态机**\n```text\n✗ 新建订单→付款→发货→收到货\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\n  - 没测临界条件（支付超时边界、库存边界）\n  - 没测并发（同一订单同时支付和取消）\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款\n```\n\n## 检查清单\n\n状态转换测试完成后检查：\n- [ ] 所有状态是否识别？\n- [ ] 所有合法转换是否测试？\n- [ ] 所有非法转换是否验证？\n- [ ] 临界条件是否覆盖？\n- [ ] 并发场景是否考虑？\n- [ ] 数据一致性是否验证？\n\nFile v1.6.3:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.6.3\",\n  \"publishedAt\": 1786548494764\n}\n\nFile v1.6.3:skill-card.md\n\n## Description:\n\nThis skill helps agents design QA coverage for state machines, including valid, invalid, boundary, and concurrent state transitions with trigger conditions, pre-states, post-states, and verification points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nQA engineers, developers, and test-planning agents use this skill to turn requirements or scenario trees into state-transition test coverage for business objects with multi-state workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill includes example status changes that could be mistaken for instructions to modify a live system.\n\nMitigation: Use the examples only as QA planning material and review generated state-transition plans before applying them to test or production systems.\n\nRisk: The skill may activate for broad state-related requests where state-transition QA planning is not intended.\n\nMitigation: Invoke it when the task is explicitly about state-machine testing, state-flow coverage, or validating status changes and data consistency.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-state-transition)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, guidance]\n\n**Output Format:** [Markdown-style QA analysis with state diagrams, transition lists, and test scenarios]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Expected outputs include traceable transition IDs, valid and invalid transition coverage, boundary cases, concurrent transition scenarios, and verification checklists.]\n\n## Skill Version(s):\n\n1.6.3 (source: release evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.6.0: 3 files, 5198 bytes\n\nFiles: skill-card.md (1899b), SKILL.md (10492b), _meta.json (138b)\n\nFile v1.6.0:SKILL.md\n\n---\r\nname: qa-state-transition\r\nversion: 1.6.0\ndescription: >-\r\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。\r\n\r\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\r\nallowed-tools: Read Grep Glob\r\nrelated_skills:\r\n  upstream:\r\n    - qa-scenario-tree           # 输入：场景树\r\n  downstream:\r\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\r\ninput_format:\r\n  required:\r\n    - name: 场景树\r\n      type: object\r\n      description: 来自qa-scenario-tree的场景树\r\n    - name: 需求解构表\r\n      type: object\r\n      description: 来自qa-req-deconstruction的需求解构结果\r\n  optional:\r\n    - name: 风险评估\r\n      type: object\r\n      description: 来自qa-risk-intuition的风险评估\r\noutput_format:\r\n  traceability:\r\n    - 每个状态转换带唯一ID（ST-XXXX）\r\n    - 关联场景ID（SC-XXXX）\r\n  structure:\r\n    - state_diagram: 状态转换图\r\n    - valid_transitions: 合法转换列表\r\n    - invalid_transitions: 非法转换列表\r\n    - test_scenarios: 状态转换测试场景\r\ndepth_requirement_quantification:\r\n  reference_value: \"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\"\r\n  minimum: \"至少识别5个关键状态转换\"\r\ncategories: ['Development','Testing']\r\nerror_recovery_guidance:\r\n  on_failure: \"状态转换遗漏异常路径时回退到场景树补充\"\r\n  retry_behavior: \"补全异常场景后重新分析状态转换\"\r\n---\r\n\r\n> **⚠️ 安全警告**：本技能的示例可能涉及状态枚举（如\"已发布\"\"已归档\"）。\r\n> 这些是被测对象的状态描述，不是对本技能的操作；请勿直接变更被测系统状态。\r\n> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。\r\n\r\n# 状态转换测试\r\n\r\n## 核心原则\r\n\r\n单接口测试都能过，业务流一起跑就崩——状态是关键。覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。每个转换需标注触发条件、前置状态、后置状态和验证点。\r\n\r\n## 状态机测试要素\r\n\r\n### 要素1：状态识别\r\n```text\r\n状态识别方法：\r\n1. 业务状态：待处理、处理中、已完成、已取消\r\n2. 数据状态：草稿、已发布、已归档\r\n3. 用户状态：未激活、正常、冻结、注销\r\n4. 系统状态：正常、降级、熔断、重启\r\n\r\n状态清单模板：\r\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\r\n|--------|---------|---------|---------|---------|\r\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\r\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\r\n```\r\n\r\n### 要素2：转换识别\r\n```text\r\n转换识别方法：\r\n1. 合法转换：业务允许的状态变更\r\n2. 非法转换：业务不允许的状态变更\r\n3. 临界转换：刚好满足条件的转换\r\n4. 并发转换：同时触发多个转换\r\n\r\n转换清单模板：\r\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\r\n|--------|---------|---------|---------|---------|---------|\r\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\r\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\r\n```\r\n\r\n### 要素3：路径识别\r\n```text\r\n路径识别方法：\r\n1. 主路径：正常业务流程\r\n2. 分支路径：条件分支\r\n3. 异常路径：异常恢复\r\n4. 循环路径：状态循环\r\n\r\n路径清单模板：\r\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\r\n|--------|---------|---------|-------------|---------|\r\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\r\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\r\n```\r\n\r\n## 测试用例设计\r\n\r\n### 合法转换测试\r\n**目标**：验证所有合法转换能正确执行\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-合法-001\r\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证执行动作\r\n预期结果：状态变为[目标状态]，[执行动作]正确执行\r\n```\r\n\r\n### 非法转换测试\r\n**目标**：验证非法转换被正确拒绝\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-非法-001\r\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态未变更\r\n4. 验证错误提示\r\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\r\n```\r\n\r\n### 临界转换测试\r\n**目标**：验证边界条件下的状态转换\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-临界-001\r\n测试目标：验证[临界条件]下的状态转换\r\n前置条件：系统处于[临界状态]\r\n测试步骤：\r\n1. 准备临界测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证边界处理\r\n预期结果：正确处理临界情况\r\n```\r\n\r\n### 并发转换测试\r\n**目标**：验证并发触发的状态转换\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-并发-001\r\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 并发触发[触发事件1]和[触发事件2]\r\n3. 验证状态变更\r\n4. 验证数据一致性\r\n预期结果：只有一个转换成功，数据一致\r\n```\r\n\r\n## 状态转换测试示例\r\n\r\n### 场景：订单状态机\r\n\r\n**状态清单**：\r\n- S1：待支付\r\n- S2：已支付\r\n- S3：已发货\r\n- S4：已完成\r\n- S5：已取消\r\n- S6：退款中\r\n- S7：已退款\r\n\r\n**转换清单**：\r\n- T1：S1→S2（用户支付）\r\n- T2：S1→S5（超时取消）\r\n- T3：S2→S3（商家发货）\r\n- T4：S2→S6（用户申请退款）\r\n- T5：S3→S4（用户确认收货）\r\n- T6：S3→S6（用户申请退款）\r\n- T7：S6→S7（退款成功）\r\n- T8：S6→S2（退款失败）\r\n\r\n**测试用例**：\r\n```text\r\n合法转换测试：\r\n- ST-合法-001：待支付→已支付（支付成功）\r\n- ST-合法-002：待支付→已取消（超时）\r\n- ST-合法-003：已支付→已发货（商家发货）\r\n- ST-合法-004：已支付→退款中（申请退款）\r\n- ST-合法-005：已发货→已完成（确认收货）\r\n- ST-合法-006：已发货→退款中（申请退款）\r\n- ST-合法-007：退款中→已退款（退款成功）\r\n- ST-合法-008：退款中→已支付（退款失败）\r\n\r\n非法转换测试：\r\n- ST-非法-001：已完成→已支付（不允许）\r\n- ST-非法-002：已取消→待支付（不允许）\r\n- ST-非法-003：已退款→已支付（不允许）\r\n\r\n临界转换测试：\r\n- ST-临界-001：支付刚好在超时前1秒完成\r\n- ST-临界-002：库存刚好剩1件时下单\r\n\r\n并发转换测试：\r\n- ST-并发-001：同一订单同时支付和取消\r\n- ST-并发-002：同一订单同时支付和申请退款\r\n```\r\n\r\n## 测试类型速查表\r\n\r\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\r\n|---------|---------|---------|---------|\r\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\r\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\r\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\r\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\r\n\r\n## 常见陷阱\r\n\r\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\r\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\r\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\r\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\r\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\r\n\r\n## 输出示例\r\n\r\n**好示例：测试电商订单状态机**\r\n```text\r\n输入：订单状态（待支付→已支付→已发货→已签收）\r\n✓ 合法转换：\r\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\r\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\r\n✓ 非法转换：\r\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\r\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\r\n✓ 临界转换：\r\n  - 支付超时前1秒完成支付 → 验证：允许通过\r\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\r\n✓ 并发转换：\r\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\r\n  → 测试方案覆盖全面，没有遗漏\r\n```\r\n\r\n**坏示例：测试电商订单状态机**\r\n```text\r\n✗ 新建订单→付款→发货→收到货\r\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\r\n  - 没测临界条件（支付超时边界、库存边界）\r\n  - 没测并发（同一订单同时支付和取消）\r\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款\r\n```\r\n\r\n## 检查清单\r\n\r\n状态转换测试完成后检查：\r\n- [ ] 所有状态是否识别？\r\n- [ ] 所有合法转换是否测试？\r\n- [ ] 所有非法转换是否验证？\r\n- [ ] 临界条件是否覆盖？\r\n- [ ] 并发场景是否考虑？\r\n- [ ] 数据一致性是否验证？\n\nFile v1.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.6.0\",\n  \"publishedAt\": 1783358265675\n}\n\nFile v1.6.0:skill-card.md\n\n## Description: <br>\nGuides agents through systematic state-machine testing for valid, invalid, boundary, and concurrent state transitions. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nQA engineers, testers, and developers use this skill to design coverage for business-object state machines, including legal, illegal, boundary, and concurrent transitions. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad requests about state or status changes may invoke this skill when a narrower testing skill would fit better. <br>\nMitigation: Confirm the task is about business-object lifecycle or state-machine coverage before relying on the guidance. <br>\nRisk: Generated state-transition examples could be mistaken for instructions to change a live system. <br>\nMitigation: Treat examples as test-design guidance and review proposed transitions before applying them to any system. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-state-transition) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, markdown, text] <br>\n**Output Format:** [Markdown or structured text with state diagrams, transition lists, and test scenario tables.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Includes traceability IDs for state transitions and related scenarios.] <br>\n\n## Skill Version(s): <br>\n1.6.0 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.5.0: 3 files, 4968 bytes\n\nFiles: skill-card.md (2126b), SKILL.md (9899b), _meta.json (138b)\n\nFile v1.5.0:SKILL.md\n\n---\r\nname: qa-state-transition\r\nversion: 1.5.0\r\ndescription: >-\r\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。\r\n\r\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\r\nallowed-tools: Read Grep Glob\r\nrelated_skills:\r\n  upstream:\r\n    - qa-scenario-tree           # 输入：场景树\r\n  downstream:\r\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\r\ninput_format:\r\n  required:\r\n    - name: 场景树\r\n      type: object\r\n      description: 来自qa-scenario-tree的场景树\r\n    - name: 需求解构表\r\n      type: object\r\n      description: 来自qa-req-deconstruction的需求解构结果\r\n  optional:\r\n    - name: 风险评估\r\n      type: object\r\n      description: 来自qa-risk-intuition的风险评估\r\noutput_format:\r\n  structure:\r\n    - state_diagram: 状态转换图\r\n    - valid_transitions: 合法转换列表\r\n    - invalid_transitions: 非法转换列表\r\n    - test_scenarios: 状态转换测试场景\r\ndepth_requirement_quantification:\r\n  reference_value: \"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\"\r\n  minimum: \"至少识别5个关键状态转换\"\r\n---\r\n\r\n# 状态转换测试\r\n\r\n## 核心原则\r\n\r\n你是一位状态测试专家，擅长测试状态机的合法和非法转换。\r\n**核心原则**：单接口测试都能过，业务流一起跑就崩——状态是关键。\r\n本技能覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。\r\n\r\n## 状态机测试要素\r\n\r\n### 要素1：状态识别\r\n```text\r\n状态识别方法：\r\n1. 业务状态：待处理、处理中、已完成、已取消\r\n2. 数据状态：草稿、已发布、已归档\r\n3. 用户状态：未激活、正常、冻结、注销\r\n4. 系统状态：正常、降级、熔断、重启\r\n\r\n状态清单模板：\r\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\r\n|--------|---------|---------|---------|---------|\r\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\r\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\r\n```\r\n\r\n### 要素2：转换识别\r\n```text\r\n转换识别方法：\r\n1. 合法转换：业务允许的状态变更\r\n2. 非法转换：业务不允许的状态变更\r\n3. 临界转换：刚好满足条件的转换\r\n4. 并发转换：同时触发多个转换\r\n\r\n转换清单模板：\r\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\r\n|--------|---------|---------|---------|---------|---------|\r\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\r\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\r\n```\r\n\r\n### 要素3：路径识别\r\n```text\r\n路径识别方法：\r\n1. 主路径：正常业务流程\r\n2. 分支路径：条件分支\r\n3. 异常路径：异常恢复\r\n4. 循环路径：状态循环\r\n\r\n路径清单模板：\r\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\r\n|--------|---------|---------|-------------|---------|\r\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\r\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\r\n```\r\n\r\n## 测试用例设计\r\n\r\n### 合法转换测试\r\n**目标**：验证所有合法转换能正确执行\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-合法-001\r\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证执行动作\r\n预期结果：状态变为[目标状态]，[执行动作]正确执行\r\n```\r\n\r\n### 非法转换测试\r\n**目标**：验证非法转换被正确拒绝\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-非法-001\r\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态未变更\r\n4. 验证错误提示\r\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\r\n```\r\n\r\n### 临界转换测试\r\n**目标**：验证边界条件下的状态转换\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-临界-001\r\n测试目标：验证[临界条件]下的状态转换\r\n前置条件：系统处于[临界状态]\r\n测试步骤：\r\n1. 准备临界测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证边界处理\r\n预期结果：正确处理临界情况\r\n```\r\n\r\n### 并发转换测试\r\n**目标**：验证并发触发的状态转换\r\n\r\n```text\r\n测试用例模板：\r\n用例编号：ST-并发-001\r\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 并发触发[触发事件1]和[触发事件2]\r\n3. 验证状态变更\r\n4. 验证数据一致性\r\n预期结果：只有一个转换成功，数据一致\r\n```\r\n\r\n## 状态转换测试示例\r\n\r\n### 场景：订单状态机\r\n\r\n**状态清单**：\r\n- S1：待支付\r\n- S2：已支付\r\n- S3：已发货\r\n- S4：已完成\r\n- S5：已取消\r\n- S6：退款中\r\n- S7：已退款\r\n\r\n**转换清单**：\r\n- T1：S1→S2（用户支付）\r\n- T2：S1→S5（超时取消）\r\n- T3：S2→S3（商家发货）\r\n- T4：S2→S6（用户申请退款）\r\n- T5：S3→S4（用户确认收货）\r\n- T6：S3→S6（用户申请退款）\r\n- T7：S6→S7（退款成功）\r\n- T8：S6→S2（退款失败）\r\n\r\n**测试用例**：\r\n```text\r\n合法转换测试：\r\n- ST-合法-001：待支付→已支付（支付成功）\r\n- ST-合法-002：待支付→已取消（超时）\r\n- ST-合法-003：已支付→已发货（商家发货）\r\n- ST-合法-004：已支付→退款中（申请退款）\r\n- ST-合法-005：已发货→已完成（确认收货）\r\n- ST-合法-006：已发货→退款中（申请退款）\r\n- ST-合法-007：退款中→已退款（退款成功）\r\n- ST-合法-008：退款中→已支付（退款失败）\r\n\r\n非法转换测试：\r\n- ST-非法-001：已完成→已支付（不允许）\r\n- ST-非法-002：已取消→待支付（不允许）\r\n- ST-非法-003：已退款→已支付（不允许）\r\n\r\n临界转换测试：\r\n- ST-临界-001：支付刚好在超时前1秒完成\r\n- ST-临界-002：库存刚好剩1件时下单\r\n\r\n并发转换测试：\r\n- ST-并发-001：同一订单同时支付和取消\r\n- ST-并发-002：同一订单同时支付和申请退款\r\n```\r\n\r\n## 测试类型速查表\r\n\r\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\r\n|---------|---------|---------|---------|\r\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\r\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\r\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\r\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\r\n\r\n## 常见陷阱\r\n\r\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\r\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\r\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\r\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\r\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\r\n\r\n## 输出示例\r\n\r\n**好示例：测试电商订单状态机**\r\n```text\r\n输入：订单状态（待支付→已支付→已发货→已签收）\r\n✓ 合法转换：\r\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\r\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\r\n✓ 非法转换：\r\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\r\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\r\n✓ 临界转换：\r\n  - 支付超时前1秒完成支付 → 验证：允许通过\r\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\r\n✓ 并发转换：\r\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\r\n  → 测试方案覆盖全面，没有遗漏\r\n```\r\n\r\n**坏示例：测试电商订单状态机**\r\n```text\r\n✗ 新建订单→付款→发货→收到货\r\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\r\n  - 没测临界条件（支付超时边界、库存边界）\r\n  - 没测并发（同一订单同时支付和取消）\r\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款\r\n```\r\n\r\n## 检查清单\r\n\r\n状态转换测试完成后检查：\r\n- [ ] 所有状态是否识别？\r\n- [ ] 所有合法转换是否测试？\r\n- [ ] 所有非法转换是否验证？\r\n- [ ] 临界条件是否覆盖？\r\n- [ ] 并发场景是否考虑？\r\n- [ ] 数据一致性是否验证？\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1782736548754\n}\n\nFile v1.5.0:skill-card.md\n\n## Description: <br>\nHelps QA practitioners design state-transition tests that cover valid, invalid, boundary, and concurrent transitions for multi-state business objects or system lifecycles. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, QA engineers, and testers use this skill to convert scenario trees, requirement decompositions, and optional risk assessments into state diagrams, transition lists, and test scenarios for lifecycle-heavy systems. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Ambiguous requests involving the word state may not be about a business object or system lifecycle. <br>\nMitigation: Confirm the target object, lifecycle states, triggers, and expected transition rules before applying the workflow. <br>\nRisk: Incomplete requirements or scenario-tree inputs can lead to missing guard conditions, invalid transitions, or concurrency cases. <br>\nMitigation: Review the generated state diagram and transition lists against product requirements, especially illegal transitions, boundary conditions, and concurrent actions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill release: qa-state-transition](https://clawhub.ai/kokxi/skills/qa-state-transition) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Guidance] <br>\n**Output Format:** [Markdown guidance with structured tables and test-case templates] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces state diagrams, valid and invalid transition lists, and state-transition test scenarios; no code execution.] <br>\n\n## Skill Version(s): <br>\n1.5.0 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.4.1: 3 files, 4433 bytes\n\nFiles: skill-card.md (2358b), SKILL.md (8146b), _meta.json (138b)\n\nFile v1.4.1:SKILL.md\n\n---\r\nname: qa-state-transition\r\ndescription: >-\r\n  状态转换测试，覆盖状态机合法/非法/边界状态流转，验证状态变更完整性和数据一致性。当需要测试状态流转或复杂状态变更时激活。\r\n\r\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\r\nallowed-tools: Read Grep Glob\r\nrelated_skills:\r\n  upstream:\r\n    - qa-scenario-tree           # 输入：场景树\r\n  downstream:\r\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\r\ninput_format: 场景树（JSON格式）\r\noutput_format: 状态转换图（状态+转换+守卫条件+动作）\r\n---\r\n\r\n# 状态转换测试\r\n\r\n## Overview\r\n\r\n你是一位状态测试专家，擅长测试状态机的合法和非法转换。\r\n**核心原则**：单接口测试都能过，业务流一起跑就崩——状态是关键。\r\n本技能覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。\r\n\r\n## 状态机测试要素\r\n\r\n### 要素1：状态识别\r\n```\r\n状态识别方法：\r\n1. 业务状态：待处理、处理中、已完成、已取消\r\n2. 数据状态：草稿、已发布、已归档\r\n3. 用户状态：未激活、正常、冻结、注销\r\n4. 系统状态：正常、降级、熔断、重启\r\n\r\n状态清单模板：\r\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\r\n|--------|---------|---------|---------|---------|\r\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\r\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\r\n```\r\n\r\n### 要素2：转换识别\r\n```\r\n转换识别方法：\r\n1. 合法转换：业务允许的状态变更\r\n2. 非法转换：业务不允许的状态变更\r\n3. 临界转换：刚好满足条件的转换\r\n4. 并发转换：同时触发多个转换\r\n\r\n转换清单模板：\r\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\r\n|--------|---------|---------|---------|---------|---------|\r\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\r\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\r\n```\r\n\r\n### 要素3：路径识别\r\n```\r\n路径识别方法：\r\n1. 主路径：正常业务流程\r\n2. 分支路径：条件分支\r\n3. 异常路径：异常恢复\r\n4. 循环路径：状态循环\r\n\r\n路径清单模板：\r\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\r\n|--------|---------|---------|-------------|---------|\r\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\r\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\r\n```\r\n\r\n## 测试用例设计\r\n\r\n### 合法转换测试\r\n**目标**：验证所有合法转换能正确执行\r\n\r\n```\r\n测试用例模板：\r\n用例编号：ST-合法-001\r\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证执行动作\r\n预期结果：状态变为[目标状态]，[执行动作]正确执行\r\n```\r\n\r\n### 非法转换测试\r\n**目标**：验证非法转换被正确拒绝\r\n\r\n```\r\n测试用例模板：\r\n用例编号：ST-非法-001\r\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态未变更\r\n4. 验证错误提示\r\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\r\n```\r\n\r\n### 临界转换测试\r\n**目标**：验证边界条件下的状态转换\r\n\r\n```\r\n测试用例模板：\r\n用例编号：ST-临界-001\r\n测试目标：验证[临界条件]下的状态转换\r\n前置条件：系统处于[临界状态]\r\n测试步骤：\r\n1. 准备临界测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证边界处理\r\n预期结果：正确处理临界情况\r\n```\r\n\r\n### 并发转换测试\r\n**目标**：验证并发触发的状态转换\r\n\r\n```\r\n测试用例模板：\r\n用例编号：ST-并发-001\r\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 并发触发[触发事件1]和[触发事件2]\r\n3. 验证状态变更\r\n4. 验证数据一致性\r\n预期结果：只有一个转换成功，数据一致\r\n```\r\n\r\n## 状态转换测试示例\r\n\r\n### 场景：订单状态机\r\n\r\n**状态清单**：\r\n- S1：待支付\r\n- S2：已支付\r\n- S3：已发货\r\n- S4：已完成\r\n- S5：已取消\r\n- S6：退款中\r\n- S7：已退款\r\n\r\n**转换清单**：\r\n- T1：S1→S2（用户支付）\r\n- T2：S1→S5（超时取消）\r\n- T3：S2→S3（商家发货）\r\n- T4：S2→S6（用户申请退款）\r\n- T5：S3→S4（用户确认收货）\r\n- T6：S3→S6（用户申请退款）\r\n- T7：S6→S7（退款成功）\r\n- T8：S6→S2（退款失败）\r\n\r\n**测试用例**：\r\n```\r\n合法转换测试：\r\n- ST-合法-001：待支付→已支付（支付成功）\r\n- ST-合法-002：待支付→已取消（超时）\r\n- ST-合法-003：已支付→已发货（商家发货）\r\n- ST-合法-004：已支付→退款中（申请退款）\r\n- ST-合法-005：已发货→已完成（确认收货）\r\n- ST-合法-006：已发货→退款中（申请退款）\r\n- ST-合法-007：退款中→已退款（退款成功）\r\n- ST-合法-008：退款中→已支付（退款失败）\r\n\r\n非法转换测试：\r\n- ST-非法-001：已完成→已支付（不允许）\r\n- ST-非法-002：已取消→待支付（不允许）\r\n- ST-非法-003：已退款→已支付（不允许）\r\n\r\n临界转换测试：\r\n- ST-临界-001：支付刚好在超时前1秒完成\r\n- ST-临界-002：库存刚好剩1件时下单\r\n\r\n并发转换测试：\r\n- ST-并发-001：同一订单同时支付和取消\r\n- ST-并发-002：同一订单同时支付和申请退款\r\n```\r\n\r\n## 测试类型速查表\r\n\r\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\r\n|---------|---------|---------|---------|\r\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\r\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\r\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\r\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\r\n\r\n## 常见陷阱\r\n\r\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\r\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\r\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\r\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\r\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\r\n\r\n## Examples\r\n\r\n**场景：测试电商订单状态机（待支付→已支付→已发货→已签收）**\r\n→ 合法转换：待支付→已支付（支付成功）→已发货（发货）→已签收（收货）\r\n→ 非法转换：待支付→已发货（跳过支付，应阻断）\r\n→ 临界转换：支付超时前1秒完成支付\r\n→ 并发转换：同一笔订单同时在两设备上支付\r\n\r\n**用户说\"测一下订单的各种状态\"**\r\n→ 状态机测试：识别所有状态→列出合法/非法转换→设计临界并发场景\r\n\r\n## Guidelines\r\n\r\n状态转换测试完成后检查：\r\n- [ ] 所有状态是否识别？\r\n- [ ] 所有合法转换是否测试？\r\n- [ ] 所有非法转换是否验证？\r\n- [ ] 临界条件是否覆盖？\r\n- [ ] 并发场景是否考虑？\r\n- [ ] 数据一致性是否验证？\n\nFile v1.4.1:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.4.1\",\n  \"publishedAt\": 1782406609225\n}\n\nFile v1.4.1:skill-card.md\n\n## Description: <br>\nGuides QA practitioners through state-transition testing for legal, illegal, boundary, and concurrent state flows, with checks for state integrity and data consistency. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nQA engineers and developers use this skill to identify states, transitions, paths, guard conditions, and expected actions for systems with lifecycle or state-machine behavior. It helps produce coverage for valid, invalid, boundary, and concurrent transitions. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill is written primarily in Chinese, which may reduce clarity for teams working mostly in another language. <br>\nMitigation: Confirm that users can review and adapt the generated state-transition guidance in their working language before relying on it. <br>\nRisk: Broad state-testing trigger phrases may activate the skill for generic testing requests. <br>\nMitigation: Use it when state machines, lifecycle transitions, or complex state changes are actually in scope, and review generated coverage against the target workflow. <br>\nRisk: State-transition guidance can miss product-specific guards, intermediate states, or concurrency constraints. <br>\nMitigation: Validate the produced state lists, transition tables, guard conditions, and concurrent scenarios against authoritative requirements and system behavior. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-state-transition) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Markdown] <br>\n**Output Format:** [Markdown tables, checklists, and structured test case templates] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces state-transition diagrams in terms of states, transitions, guard conditions, and actions.] <br>\n\n## Skill Version(s): <br>\n1.4.1 (source: release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.4.0: 3 files, 4250 bytes\n\nFiles: skill-card.md (1754b), SKILL.md (8401b), _meta.json (138b)\n\nFile v1.4.0:SKILL.md\n\n---\r\nname: qa-state-transition\r\ndescription: >-\r\n  状态转换测试，测试状态机的合法非法转换，覆盖系统状态流转的完整性。当用户需要测试状态流转、状态转换或状态机时自动触发。\r\n  也适用于：业务对象有多状态流转需要全面覆盖，或状态变更逻辑复杂时。\r\n   关键词：状态测试、状态转换、状态机、状态覆盖、合法转换、非法转换、状态路径、状态流转、状态变更、状态验证。\nwhen_to_use: 用户说\"状态测试\"、\"状态转换\"、\"状态机\"、\"状态流转\"、\"状态变更\"、\"状态覆盖\"、需要测试状态流转、业务对象有多状态流转时\r\nallowed-tools: Read Grep Glob\r\nrelated_skills:\r\n  upstream:\r\n    - qa-scenario-tree           # 输入：场景树\r\n  downstream:\r\n    - qa-ai-context-engineering  # 输出：状态转换图传递给上下文工程\r\ninput_format: 场景树（JSON格式）\r\noutput_format: 状态转换图（状态+转换+守卫条件+动作）\r\n---\r\n\r\n# 状态转换测试\r\n\r\n## Overview\r\n\r\n你是一位状态测试专家，擅长测试状态机的合法和非法转换。\r\n**核心原则**：单接口测试都能过，业务流一起跑就崩——状态是关键。\r\n本技能覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。\r\n\r\n## 状态机测试要素\r\n\r\n### 要素1：状态识别\r\n```\r\n状态识别方法：\r\n1. 业务状态：待处理、处理中、已完成、已取消\r\n2. 数据状态：草稿、已发布、已归档\r\n3. 用户状态：未激活、正常、冻结、注销\r\n4. 系统状态：正常、降级、熔断、重启\r\n\r\n状态清单模板：\r\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\r\n|--------|---------|---------|---------|---------|\r\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\r\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\r\n```\r\n\r\n### 要素2：转换识别\r\n```\r\n转换识别方法：\r\n1. 合法转换：业务允许的状态变更\r\n2. 非法转换：业务不允许的状态变更\r\n3. 临界转换：刚好满足条件的转换\r\n4. 并发转换：同时触发多个转换\r\n\r\n转换清单模板：\r\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\r\n|--------|---------|---------|---------|---------|---------|\r\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\r\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\r\n```\r\n\r\n### 要素3：路径识别\r\n```\r\n路径识别方法：\r\n1. 主路径：正常业务流程\r\n2. 分支路径：条件分支\r\n3. 异常路径：异常恢复\r\n4. 循环路径：状态循环\r\n\r\n路径清单模板：\r\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\r\n|--------|---------|---------|-------------|---------|\r\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\r\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\r\n```\r\n\r\n## 测试用例设计\r\n\r\n### 合法转换测试\r\n**目标**：验证所有合法转换能正确执行\r\n\r\n```\r\n测试用例模板：\r\n用例编号：ST-合法-001\r\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证执行动作\r\n预期结果：状态变为[目标状态]，[执行动作]正确执行\r\n```\r\n\r\n### 非法转换测试\r\n**目标**：验证非法转换被正确拒绝\r\n\r\n```\r\n测试用例模板：\r\n用例编号：ST-非法-001\r\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态未变更\r\n4. 验证错误提示\r\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\r\n```\r\n\r\n### 临界转换测试\r\n**目标**：验证边界条件下的状态转换\r\n\r\n```\r\n测试用例模板：\r\n用例编号：ST-临界-001\r\n测试目标：验证[临界条件]下的状态转换\r\n前置条件：系统处于[临界状态]\r\n测试步骤：\r\n1. 准备临界测试数据\r\n2. 触发[触发事件]\r\n3. 验证状态变更\r\n4. 验证边界处理\r\n预期结果：正确处理临界情况\r\n```\r\n\r\n### 并发转换测试\r\n**目标**：验证并发触发的状态转换\r\n\r\n```\r\n测试用例模板：\r\n用例编号：ST-并发-001\r\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\r\n前置条件：系统处于[当前状态]\r\n测试步骤：\r\n1. 准备测试数据\r\n2. 并发触发[触发事件1]和[触发事件2]\r\n3. 验证状态变更\r\n4. 验证数据一致性\r\n预期结果：只有一个转换成功，数据一致\r\n```\r\n\r\n## 状态转换测试示例\r\n\r\n### 场景：订单状态机\r\n\r\n**状态清单**：\r\n- S1：待支付\r\n- S2：已支付\r\n- S3：已发货\r\n- S4：已完成\r\n- S5：已取消\r\n- S6：退款中\r\n- S7：已退款\r\n\r\n**转换清单**：\r\n- T1：S1→S2（用户支付）\r\n- T2：S1→S5（超时取消）\r\n- T3：S2→S3（商家发货）\r\n- T4：S2→S6（用户申请退款）\r\n- T5：S3→S4（用户确认收货）\r\n- T6：S3→S6（用户申请退款）\r\n- T7：S6→S7（退款成功）\r\n- T8：S6→S2（退款失败）\r\n\r\n**测试用例**：\r\n```\r\n合法转换测试：\r\n- ST-合法-001：待支付→已支付（支付成功）\r\n- ST-合法-002：待支付→已取消（超时）\r\n- ST-合法-003：已支付→已发货（商家发货）\r\n- ST-合法-004：已支付→退款中（申请退款）\r\n- ST-合法-005：已发货→已完成（确认收货）\r\n- ST-合法-006：已发货→退款中（申请退款）\r\n- ST-合法-007：退款中→已退款（退款成功）\r\n- ST-合法-008：退款中→已支付（退款失败）\r\n\r\n非法转换测试：\r\n- ST-非法-001：已完成→已支付（不允许）\r\n- ST-非法-002：已取消→待支付（不允许）\r\n- ST-非法-003：已退款→已支付（不允许）\r\n\r\n临界转换测试：\r\n- ST-临界-001：支付刚好在超时前1秒完成\r\n- ST-临界-002：库存刚好剩1件时下单\r\n\r\n并发转换测试：\r\n- ST-并发-001：同一订单同时支付和取消\r\n- ST-并发-002：同一订单同时支付和申请退款\r\n```\r\n\r\n## 测试类型速查表\r\n\r\n| 测试类型 | 覆盖目标 | 数量参考 | 未覆盖风险 |\r\n|---------|---------|---------|---------|\r\n| 合法转换 | 所有正向状态流转 | 状态数×2 | 功能不可用 |\r\n| 非法转换 | 所有不允许的操作 | 状态数×1.5 | 安全漏洞 |\r\n| 临界转换 | 刚好满足/不满足转换条件 | 每条转换×1 | 边界Bug |\r\n| 并发转换 | 同时触发多个转换 | 高并发状态×2 | 数据不一致 |\r\n\r\n## 常见陷阱\r\n\r\n1. **只测正向不测非法**：验证了所有状态转换通过，但没测非法转换拒绝 → 非法转换漏测会导致安全风险\r\n2. **遗漏中间态**：只关注了初始态和终态，忽略了\"处理中\"\"待确认\"等中间态 → 每个状态转换路径都必须遍历\r\n3. **临界条件不测**：只看正常条件满足，不测刚好在边界时是否触发/阻断 → 临界值是状态转换Bug高发区\r\n4. **并发转换不测**：假设状态转换是串行的 → 并发触发同对象状态转换必须验证数据一致性\r\n5. **守卫条件不验证**：只测事件触发，不测守卫条件不满足时是否真正阻断 → 每条转换的守卫条件必须单元测试\r\n\r\n## Examples\r\n\r\n**场景：测试电商订单状态机（待支付→已支付→已发货→已签收）**\r\n→ 合法转换：待支付→已支付（支付成功）→已发货（发货）→已签收（收货）\r\n→ 非法转换：待支付→已发货（跳过支付，应阻断）\r\n→ 临界转换：支付超时前1秒完成支付\r\n→ 并发转换：同一笔订单同时在两设备上支付\r\n\r\n**用户说\"测一下订单的各种状态\"**\r\n→ 状态机测试：识别所有状态→列出合法/非法转换→设计临界并发场景\r\n\r\n## Guidelines\r\n\r\n状态转换测试完成后检查：\r\n- [ ] 所有状态是否识别？\r\n- [ ] 所有合法转换是否测试？\r\n- [ ] 所有非法转换是否验证？\r\n- [ ] 临界条件是否覆盖？\r\n- [ ] 并发场景是否考虑？\r\n- [ ] 数据一致性是否验证？\n\nFile v1.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1782277956084\n}\n\nFile v1.4.0:skill-card.md\n\n## Description: <br>\nHelps QA engineers design state-transition tests for state machines and lifecycle flows, covering legal, illegal, boundary, and concurrent transitions. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nQA engineers, developers, and test designers use this skill to identify states, transitions, guard conditions, actions, paths, and test cases for systems with explicit state-machine or lifecycle behavior. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill may activate for broad state-related testing phrasing when the user intended general QA help. <br>\nMitigation: Confirm the request is specifically about state transitions, state machines, or lifecycle flow coverage before relying on this skill's output. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/kokxi/skills/qa-state-transition) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, guidance] <br>\n**Output Format:** [Markdown tables, checklists, and structured QA guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces state-transition analysis with states, transitions, guard conditions, actions, paths, and test case suggestions.] <br>\n\n## Skill Version(s): <br>\n1.4.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: qa-state-transition Owner: kokxi Summary: 系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。 触发场景：状态测试、状态转换、状态机、状态流转、状态变更、状态覆盖、业务对象有多状态流转时。 Use when the user asks about: state machine testing — legal, illegal, boundary, and concurrent state transitions, and data consistency across them. Tags","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"状态识别方法：\n1. 业务状态：待处理、处理中、已完成、已取消\n2. 数据状态：草稿、已发布、已归档\n3. 用户状态：未激活、正常、冻结、注销\n4. 系统状态：正常、降级、熔断、重启\n\n状态清单模板：\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\n|--------|---------|---------|---------|---------|\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |"},{"language":"text","snippet":"转换识别方法：\n1. 合法转换：业务允许的状态变更\n2. 非法转换：业务不允许的状态变更\n3. 临界转换：刚好满足条件的转换\n4. 并发转换：同时触发多个转换\n\n转换清单模板：\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\n|--------|---------|---------|---------|---------|---------|\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |"},{"language":"text","snippet":"路径识别方法：\n1. 主路径：正常业务流程\n2. 分支路径：条件分支\n3. 异常路径：异常恢复\n4. 循环路径：状态循环\n\n路径清单模板：\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\n|--------|---------|---------|-------------|---------|\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |"},{"language":"text","snippet":"合法转换测试：\n- ST-VALID-001：待支付→已支付（支付成功）\n- ST-VALID-002：待支付→已取消（超时）\n- ST-VALID-003：已支付→已发货（商家发货）\n- ST-VALID-004：已支付→退款中（申请退款）\n- ST-VALID-005：已发货→已完成（确认收货）\n- ST-VALID-006：已发货→退款中（申请退款）\n- ST-VALID-007：退款中→已退款（退款成功）\n- ST-VALID-008：退款中→已支付（退款失败）\n\n非法转换测试：\n- ST-INVALID-001：已完成→已支付（不允许）\n- ST-INVALID-002：已取消→待支付（不允许）\n- ST-INVALID-003：已退款→已支付（不允许）\n\n临界转换测试：\n- ST-EDGE-001：支付刚好在超时前1秒完成\n- ST-EDGE-002：库存刚好剩1件时下单\n\n并发转换测试：\n- ST-CONC-001：同一订单同时支付和取消\n- ST-CONC-002：同一订单同时支付和申请退款"},{"language":"text","snippet":"输入：订单状态（待支付→已支付→已发货→已签收）\n✓ 合法转换：\n  - 待支付→已支付（支付成功回调）→验证：金额正确、库存扣减\n  - 待支付→已取消（用户取消）→验证：库存释放、退款触发\n✓ 非法转换：\n  - 待支付→已发货（跳过支付）→验证：系统阻断、提示\"请先完成支付\"\n  - 已退款→待支付（不允许）→验证：系统拒绝、提示\"订单已关闭\"\n✓ 临界转换：\n  - 支付超时前1秒完成支付 → 验证：允许通过\n  - 库存刚好剩1件时2人同时下单 → 验证：仅1人成功\n✓ 并发转换：\n  - 同一订单在两设备上同时支付 → 验证：仅1次成功，不会重复扣款\n  → 测试方案覆盖全面，没有遗漏"},{"language":"text","snippet":"✗ 新建订单→付款→发货→收到货\n  - 只测了主路径Happy Path，没测非法转换（如待支付时不可直接发货）\n  - 没测临界条件（支付超时边界、库存边界）\n  - 没测并发（同一订单同时支付和取消）\n  → 结果：上线后出现\"未支付订单被发货\"、并发支付导致重复扣款"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: qa-state-transition\ndescription: >-\n  系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。 触发场景：状态测试、状态转换、状态机、状态流转、状态变更、状态覆盖、业务对象有多状态流转时。 Use when the user asks about: state machine testing — legal, illegal, boundary, and concurrent state transitions, and data consistency across them.\nlicense: MIT\nallowed-tools: Read Grep Glob\nmetadata:\n  display-name: \"State Transition\"\n  version: \"1.8.0\"\n  when-to-use: \"用户说\\\"状态测试\\\"、\\\"状态转换\\\"、\\\"状态机\\\"、\\\"状态流转\\\"、\\\"状态变更\\\"、\\\"状态覆盖\\\"、需要测试状态流转、业务对象有多状态流转时\"\n  related-skills: \"{\\\"upstream\\\":[\\\"qa-scenario-tree\\\"],\\\"downstream\\\":[\\\"qa-ai-context-engineering\\\"]}\"\n  references: \"[\\\"references/transition-cases.md\\\"]\"\n  input-format: \"{\\\"required\\\":[{\\\"name\\\":\\\"场景树\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-scenario-tree的场景树\\\"},{\\\"name\\\":\\\"需求解构表\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-req-deconstruction的需求解构结果\\\"}],\\\"optional\\\":[{\\\"name\\\":\\\"风险评估\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-risk-intuition的风险评估\\\"}]}\"\n  output-format: \"{\\\"traceability\\\":[\\\"每个状态转换带唯一ID（ST-XXXX）\\\",\\\"关联场景ID：SC-{场景模块缩写}-{序号}\\\"],\\\"structure\\\":[\\\"覆盖率：标注口径（基于现有需求/输入文档），禁止\\\\\\\"全覆盖/100%\\\\\\\"绝对化表述；缺失模块标注\\\\\\\"未覆盖+原因\\\\\\\"\\\",{\\\"state_diagram\\\":\\\"状态转换图\\\"},{\\\"valid_transitions\\\":\\\"合法转换列表\\\"},{\\\"invalid_transitions\\\":\\\"非法转换列表\\\"},{\\\"test_scenarios\\\":\\\"状态转换测试场景\\\"}]}\"\n  error-recovery-guidance: \"{\\\"on_failure\\\":\\\"状态转换遗漏异常路径时回退到场景树补充\\\",\\\"retry_behavior\\\":\\\"补全异常场景后重新分析状态转换\\\"}\"\n  categories: \"[\\\"Development\\\",\\\"Testing\\\"]\"\n  depth-requirement: \"{\\\"reference_value\\\":\\\"根据状态数量调整分析深度：简单×2/中等×3/复杂×4\\\",\\\"minimum\\\":\\\"至少识别5个关键状态转换\\\"}\"\n---\n\n> ⚠️ 本技能单独使用效果有限，建议配合完整技能集（12 步工作流）使用。安装：npx skills add Kokxi/qa-test-skills\n\n> **⚠️ 安全警告**：本技能的示例可能涉及状态枚举（如\"已发布\"\"已归档\"）。\n> 这些是被测对象的状态描述，不是对本技能的操作；请勿直接变更被测系统状态。\n> 本技能仅在 workspace/ 输出评估文件，不持久化、不外传、不跨会话复用。\n\n# 状态转换测试\n\n## 核心原则\n\n单接口测试都能过，业务流一起跑就崩——状态是关键。覆盖状态/转换/路径识别、合法/非法/临界/并发转换测试。每个转换需标注触发条件、前置状态、后置状态和验证点。\n\n## 状态机测试要素\n\n### 要素1：状态识别\n```text\n状态识别方法：\n1. 业务状态：待处理、处理中、已完成、已取消\n2. 数据状态：草稿、已发布、已归档\n3. 用户状态：未激活、正常、冻结、注销\n4. 系统状态：正常、降级、熔断、重启\n\n状态清单模板：\n| 状态ID | 状态名称 | 状态描述 | 进入条件 | 退出条件 |\n|--------|---------|---------|---------|---------|\n| S1 | 待支付 | 用户已下单 | 用户提交订单 | 支付成功/超时 |\n| S2 | 已支付 | 用户已付款 | 支付回调成功 | 商家发货 |\n```\n\n### 要素2：转换识别\n```text\n转换识别方法：\n1. 合法转换：业务允许的状态变更\n2. 非法转换：业务不允许的状态变更\n3. 临界转换：刚好满足条件的转换\n4. 并发转换：同时触发多个转换\n\n转换清单模板：\n| 转换ID | 当前状态 | 触发事件 | 目标状态 | 守卫条件 | 执行动作 |\n|--------|---------|---------|---------|---------|---------|\n| T1 | 待支付 | 用户支付 | 已支付 | 金额正确 | 扣减库存 |\n| T2 | 待支付 | 超时 | 已取消 | 超过30分钟 | 释放库存 |\n```\n\n### 要素3：路径识别\n```text\n路径识别方法：\n1. 主路径：正常业务流程\n2. 分支路径：条件分支\n3. 异常路径：异常恢复\n4. 循环路径：状态循环\n\n路径清单模板：\n| 路径ID | 路径名称 | 状态序列 | 触发事件序列 | 预期结果 |\n|--------|---------|---------|-------------|---------|\n| P1 | 正常下单 | 待支付→已支付→已发货→已完成 | 下单→支付→发货→收货 | 订单完成 |\n| P2 | 超时取消 | 待支付→已取消 | 下单→超时 | 订单取消 |\n```\n\n## 加载时机\n\n| 什么时候读 | 读哪个 |\n|-----------|--------|\n| 设计合法/非法/临界/并发转换用例时 | [`references/transition-cases.md`](references/transition-cases.md) |\n\n> `"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-state-transition\",\n  \"version\": \"1.8.0\",\n  \"publishedAt\": 1790656119769\n}"},{"path":"references/transition-cases.md","content":"# 状态转换用例设计详解\n\n> 本文是 `qa-state-transition` 的**状态转换用例设计详解**。设计合法/非法/临界/并发转换用例时读本文；\n其余部分留在 SKILL.md，不必读本文。\n\n---\n\n\n### 合法转换测试\n**目标**：验证所有合法转换能正确执行\n\n```text\n测试用例模板：\n用例编号：ST-合法-001\n测试目标：验证[当前状态]在[触发事件]下能正确转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证执行动作\n预期结果：状态变为[目标状态]，[执行动作]正确执行\n```\n\n### 非法转换测试\n**目标**：验证非法转换被正确拒绝\n\n```text\n测试用例模板：\n用例编号：ST-非法-001\n测试目标：验证[当前状态]在[触发事件]下不能转换到[目标状态]\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 触发[触发事件]\n3. 验证状态未变更\n4. 验证错误提示\n预期结果：状态保持[当前状态]，提示\"不允许此操作\"\n```\n\n### 临界转换测试\n**目标**：验证边界条件下的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-临界-001\n测试目标：验证[临界条件]下的状态转换\n前置条件：系统处于[临界状态]\n测试步骤：\n1. 准备临界测试数据\n2. 触发[触发事件]\n3. 验证状态变更\n4. 验证边界处理\n预期结果：正确处理临界情况\n```\n\n### 并发转换测试\n**目标**：验证并发触发的状态转换\n\n```text\n测试用例模板：\n用例编号：ST-并发-001\n测试目标：验证并发触发[触发事件1]和[触发事件2]的状态转换\n前置条件：系统处于[当前状态]\n测试步骤：\n1. 准备测试数据\n2. 并发触发[触发事件1]和[触发事件2]\n3. 验证状态变更\n4. 验证数据一致性\n预期结果：只有一个转换成功，数据一致\n```"},{"path":"skill-card.md","content":"## Description:\n\nGuides QA teams in designing tests for valid, invalid, boundary, and concurrent state transitions and their data consistency.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to design state-machine test cases for allowed and rejected transitions, boundary conditions, concurrent changes, and data consistency.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: An optional, unpinned external package installation could introduce unreviewed code.\n\nMitigation: Do not run the optional install command unless you trust and have reviewed its package source.\n\n## Reference(s):\n\n- [State Transition on ClawHub](https://clawhub.ai/kokxi/skills/qa-state-transition)\n- [State-transition test case design](references/transition-cases.md)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Guidance]\n\n**Output Format:** [Markdown tables and test scenarios]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [State diagrams, valid and invalid transition lists, and test cases with transition IDs and scenario traceability; coverage is scoped to supplied requirements.]\n\n## Skill Version(s):\n\n1.8.0 (source: skill frontmatter and ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。 触发场景：状态测试、状态转换、状态机、状态流转、状态变更、状态覆盖、业务对象有多状态流转时。 Use when the user asks about: state machine testing — legal, illegal, boundary, and concurrent state transitions, and data consistency across them. Skill: qa-state-transition Owner: kokxi Summary: 系统化测试状态机的合法转换、非法转换、边界转换和并发转换场景。当业务对象经历了多种状态（如订单：待支付→已支付→已发货→已完成）、或者需要验证状态变化时的数据一致性时，应当使用此技能。最容易遗漏的是非法转换（业务不允许的操作如\"已完成→待支付\"）和并发转换（同一订单同时被支付和取消）。每个状态转换需标注触发条件、前置状态、后置状态和验证点。 触发场景：状态测试、状态转换、状态机、状态流转、状态变更、状态覆盖、业务对象有多状态流转时。 Use when the user asks about: state machine testing — legal, illegal, boundary, and concurrent state transitions, and data consistency across them. Tags","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":891,"uniquenessScore":51,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T08:53:50.122Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T08:53:50.122Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:24:28.195Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}