@chenmk/superflow 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INSTALL.en.md +32 -5
- package/INSTALL.md +58 -17
- package/README.md +121 -7
- package/README.zh-CN.md +92 -11
- package/assets/brand/superflow-banner.svg +80 -0
- package/assets/context-templates/business-rules.md +45 -78
- package/assets/context-templates/decisions.md +63 -149
- package/assets/context-templates/external-systems.md +64 -161
- package/assets/context-templates/incidents.md +40 -78
- package/assets/context-templates-en/business-rules.md +72 -0
- package/assets/context-templates-en/decisions.md +72 -0
- package/assets/context-templates-en/external-systems.md +78 -0
- package/assets/context-templates-en/incidents.md +52 -0
- package/assets/manifest.json +6 -4
- package/assets/scripts/claude-auto-backup-hook.sh +11 -6
- package/assets/scripts/codex-auto-backup-hook.sh +11 -6
- package/assets/skills/superflow-design/SKILL.md +16 -8
- package/assets/skills/superflow-docs/SKILL.md +17 -8
- package/assets/skills/superflow-pipeline/references/api-design-template.md +99 -63
- package/assets/skills/superflow-pipeline/references/batch-prompt-template.md +62 -14
- package/assets/skills/superflow-pipeline/references/implementation-prompt-template.md +114 -67
- package/assets/skills/superflow-pipeline/references/quality-gate.md +104 -102
- package/assets/skills/superflow-pipeline/references/superpower-technical-design-template.md +45 -19
- package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +35 -0
- package/assets/skills-en/api-doc-changelog/SKILL.md +64 -151
- package/assets/skills-en/superflow-clarify/SKILL.md +4 -4
- package/assets/skills-en/superflow-clarify/agents/openai.yaml +1 -1
- package/assets/skills-en/superflow-design/agents/openai.yaml +1 -1
- package/assets/skills-en/superflow-docs/SKILL.md +27 -27
- package/assets/skills-en/superflow-docs/agents/openai.yaml +1 -1
- package/assets/skills-en/superflow-implement/SKILL.md +113 -457
- package/assets/skills-en/superflow-implement/agents/openai.yaml +1 -1
- package/assets/skills-en/superflow-pipeline/SKILL.md +167 -840
- package/assets/skills-en/superflow-pipeline/agents/openai.yaml +1 -1
- package/assets/skills-en/superflow-pipeline/references/api-design-template.md +17 -426
- package/assets/skills-en/superflow-pipeline/references/architecture-design-template.md +15 -114
- package/assets/skills-en/superflow-pipeline/references/batch-prompt-template.md +36 -524
- package/assets/skills-en/superflow-pipeline/references/batch-split-guide.md +19 -133
- package/assets/skills-en/superflow-pipeline/references/document-templates.md +50 -123
- package/assets/skills-en/superflow-pipeline/references/feature-gated-workflow.md +12 -119
- package/assets/skills-en/superflow-pipeline/references/implementation-prompt-template.md +22 -1044
- package/assets/skills-en/superflow-pipeline/references/mock-strategy-guide.md +11 -81
- package/assets/skills-en/superflow-pipeline/references/openspec-format.md +17 -51
- package/assets/skills-en/superflow-pipeline/references/orchestration.md +17 -632
- package/assets/skills-en/superflow-pipeline/references/p0-baseline-template.md +10 -169
- package/assets/skills-en/superflow-pipeline/references/prompt-usage-template.md +29 -128
- package/assets/skills-en/superflow-pipeline/references/quality-gate.md +36 -299
- package/assets/skills-en/superflow-pipeline/references/quality-standards.md +12 -186
- package/assets/skills-en/superflow-pipeline/references/reviewer-checklist.md +12 -154
- package/assets/skills-en/superflow-pipeline/references/sql-risk-review-checklist.md +19 -316
- package/assets/skills-en/superflow-pipeline/references/test-execution-template.md +22 -220
- package/assets/skills-en/superflow-pipeline/references/test-guide.md +12 -26
- package/assets/skills-en/superflow-pipeline/references/traceability-matrix.md +5 -103
- package/assets/skills-en/superflow-pipeline/references/validation-integrity.md +12 -130
- package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +23 -23
- package/assets/skills-en/superflow-pipeline/scripts/superflow-state.sh +1 -1
- package/assets/skills-en/superflow-pipeline/scripts/superflow-status.sh +15 -15
- package/assets/skills-en/superflow-table-impact-analysis/SKILL.md +3 -3
- package/dist/cli/index.js +61 -54
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/design.js +25 -3
- package/dist/commands/design.js.map +1 -1
- package/dist/commands/doctor.js +31 -12
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +75 -27
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/scan.js +8 -4
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/uninstall.js +3 -3
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +8 -3
- package/dist/commands/update.js.map +1 -1
- package/dist/core/cli-help.js +98 -0
- package/dist/core/cli-help.js.map +1 -0
- package/dist/core/context.js +40 -17
- package/dist/core/context.js.map +1 -1
- package/dist/core/detect.js +58 -5
- package/dist/core/detect.js.map +1 -1
- package/dist/core/i18n.js +10 -8
- package/dist/core/i18n.js.map +1 -1
- package/dist/core/manifest.js +3 -0
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/scripts.js +8 -0
- package/dist/core/scripts.js.map +1 -1
- package/dist/core/skills.js +6 -0
- package/dist/core/skills.js.map +1 -1
- package/dist/core/state.js +12 -1
- package/dist/core/state.js.map +1 -1
- package/package.json +4 -3
|
@@ -1,86 +1,16 @@
|
|
|
1
|
-
# Mock
|
|
1
|
+
# Mock Strategy Guide
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Mocks are allowed for isolation, not for claiming real integration.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Labels
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
| 数据库(无测试环境) | ✅ 可选 | 可用 H2 / Docker MySQL |
|
|
12
|
-
| 消息队列 | ✅ 可选 | 可用内存队列替代 |
|
|
13
|
-
| 缓存(Redis) | ✅ 可选 | 可用 Caffeine / 本地缓存 |
|
|
14
|
-
| 文件存储(OSS) | ✅ 可选 | 可用本地文件系统 |
|
|
7
|
+
- Mock verification: dependency replaced or simulated.
|
|
8
|
+
- Test endpoint verification: local helper endpoint or bypass path.
|
|
9
|
+
- Real-entry verification: production-like user, device, callback, job, MQ,
|
|
10
|
+
client, or third-party entry.
|
|
15
11
|
|
|
16
|
-
##
|
|
12
|
+
## Report Rule
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
| `WireMock` | HTTP 外部服务 | 独立 Mock 服务器 | 验证请求格式、返回预设响应 |
|
|
22
|
-
| 本地模拟服务 | 设备回调、Webhook | 单独启动的 HTTP 服务 | 手动触发回调 |
|
|
23
|
-
| 接口假实现 | 无测试框架时 | 接口的硬编码实现 | 固定返回 |
|
|
24
|
-
| H2 内存数据库 | 无 MySQL 环境 | `spring.datasource.url=jdbc:h2:mem` | 标准 SQL 验证 |
|
|
25
|
-
|
|
26
|
-
## Mock 边界声明模板
|
|
27
|
-
|
|
28
|
-
每个使用 Mock 的外部依赖必须在交付文档中填写下表:
|
|
29
|
-
|
|
30
|
-
```markdown
|
|
31
|
-
## Mock 声明
|
|
32
|
-
|
|
33
|
-
### 外部依赖 1:<名称>
|
|
34
|
-
|
|
35
|
-
| 项目 | 说明 |
|
|
36
|
-
|------|------|
|
|
37
|
-
| 实际能力 | ____(如:真实支付扣款) |
|
|
38
|
-
| Mock 方式 | ____(如:@MockBean + 固定返回 success) |
|
|
39
|
-
| Mock 范围 | ____(哪些接口/方法被 Mock) |
|
|
40
|
-
| 假设条件 | ____(如:假设支付网关永远返回成功) |
|
|
41
|
-
| 替代验证 | ____(如何验证代码逻辑正确,如:检查数据库状态变化) |
|
|
42
|
-
| 恢复真实 | ____(如何切回真实服务,如:去掉 @MockBean 注解) |
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## 示例:门禁设备回调 Mock
|
|
46
|
-
|
|
47
|
-
```markdown
|
|
48
|
-
### 外部依赖:人行门禁设备
|
|
49
|
-
|
|
50
|
-
| 项目 | 说明 |
|
|
51
|
-
|------|------|
|
|
52
|
-
| 实际能力 | 真实硬件设备,刷卡/人脸识别后主动回调服务器 |
|
|
53
|
-
| Mock 方式 | 本地启动模拟 HTTP 服务(Python Flask / Node.js) |
|
|
54
|
-
| Mock 范围 | `/device/callback` 接口接收回调 |
|
|
55
|
-
| 假设条件 | 假设设备回调的报文格式与真实设备一致 |
|
|
56
|
-
| 替代验证 | 手动 POST 模拟回调报文,验证服务器处理逻辑(记录通行日志、开门指令) |
|
|
57
|
-
| 恢复真实 | 将回调地址指向真实设备网关 |
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## 示例:支付接口 Mock
|
|
61
|
-
|
|
62
|
-
```java
|
|
63
|
-
// 测试中使用 @MockBean
|
|
64
|
-
@MockBean
|
|
65
|
-
private PaymentClient paymentClient;
|
|
66
|
-
|
|
67
|
-
@BeforeEach
|
|
68
|
-
void setUp() {
|
|
69
|
-
when(paymentClient.charge(any()))
|
|
70
|
-
.thenReturn(PaymentResult.success("mock-trade-no"));
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// 验证替代方式:检查订单状态是否变为 PAID
|
|
74
|
-
@Test
|
|
75
|
-
void shouldUpdateOrderStatusWhenPaymentSuccess() {
|
|
76
|
-
// 执行支付流程
|
|
77
|
-
// 断言:数据库订单状态 = PAID(不依赖真实支付)
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## 禁止事项
|
|
82
|
-
|
|
83
|
-
1. ❌ Mock 后不声明假设条件
|
|
84
|
-
2. ❌ Mock 范围过大(把整个 Service 层都 Mock 掉)
|
|
85
|
-
3. ❌ 无替代验证方式(Mock 后不知道代码对不对)
|
|
86
|
-
4. ❌ 生产代码中残留 Mock 逻辑
|
|
14
|
+
Keep these labels separate in test-report.md. Mock-only evidence cannot close a
|
|
15
|
+
requirement that tests.md marks as L3/L4, real-entry, third-party, DB, or log
|
|
16
|
+
verified.
|
|
@@ -1,57 +1,23 @@
|
|
|
1
|
-
# OpenSpec
|
|
1
|
+
# OpenSpec Format
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Change Layout
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
- proposal.md
|
|
6
|
+
- api.md
|
|
7
|
+
- design.md
|
|
8
|
+
- tasks.md
|
|
9
|
+
- tests.md
|
|
10
|
+
- specs/<capability>/spec.md
|
|
11
|
+
- traceability-matrix.md
|
|
12
|
+
- review-checklist.md
|
|
13
|
+
- sdd-quality-gate.md
|
|
14
|
+
- test-report.md
|
|
10
15
|
|
|
11
|
-
##
|
|
16
|
+
## Spec Style
|
|
12
17
|
|
|
13
|
-
|
|
18
|
+
Use requirement IDs and scenarios. Each scenario must map to at least one test
|
|
19
|
+
case and one traceability row.
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
doc/openspec/
|
|
17
|
-
├── project.md # 项目定义
|
|
18
|
-
├── SPEC.md # OpenSpec 规范(含目录规范)
|
|
19
|
-
├── specs/ # 功能规格文档
|
|
20
|
-
│ └── <feature-name>/
|
|
21
|
-
│ └── spec.md
|
|
22
|
-
├── changes/ # 需求变更/新功能
|
|
23
|
-
│ └── <change-name>/
|
|
24
|
-
│ ├── proposal.md
|
|
25
|
-
│ ├── design.md
|
|
26
|
-
│ ├── tasks.md
|
|
27
|
-
│ ├── tests.md
|
|
28
|
-
│ └── specs/<feature>/
|
|
29
|
-
│ └── spec.md
|
|
30
|
-
├── designs/ # 架构/技术设计
|
|
31
|
-
├── reviews/ # 设计评审报告
|
|
32
|
-
├── plans/ # 计划文档
|
|
33
|
-
└── tests/ # 测试文档
|
|
34
|
-
```
|
|
21
|
+
## Task Style
|
|
35
22
|
|
|
36
|
-
|
|
37
|
-
- 在 `doc/openspec/` 根目录散落文档
|
|
38
|
-
- 使用中文目录名
|
|
39
|
-
- 在其他位置创建 openspec 文档
|
|
40
|
-
|
|
41
|
-
## Spec 编写规则(必须遵守)
|
|
42
|
-
|
|
43
|
-
```markdown
|
|
44
|
-
## ADDED|MODIFIED|REMOVED|RENAMED Requirements
|
|
45
|
-
|
|
46
|
-
### Requirement: <需求描述>
|
|
47
|
-
#### Scenario: <场景名称>
|
|
48
|
-
- **WHEN** <前置条件>
|
|
49
|
-
- **THEN** <预期结果>
|
|
50
|
-
- **AND** <附加条件>
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**规则:**
|
|
54
|
-
- 使用 `## ADDED|MODIFIED|REMOVED|RENAMED Requirements`
|
|
55
|
-
- 每个 `### Requirement:` 至少包含 1 个 `#### Scenario:`
|
|
56
|
-
- Scenario 用 `- **WHEN** / - **THEN** / - **AND**` 描述可验收行为
|
|
57
|
-
- 涉及边界条件的必须单独写 Scenario
|
|
23
|
+
Tasks must be atomic, ordered, dependency-aware, and linked to requirement IDs.
|