@chenmk/superflow 0.5.12 → 0.5.14
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/README.md +26 -0
- package/README.zh-CN.md +8 -0
- package/assets/manifest.json +33 -7
- package/assets/review-rules.json +24 -0
- package/assets/scripts/superflow-dependency-update-hook.sh +29 -0
- package/assets/scripts/superflow-doc-placement-hook.py +38 -0
- package/assets/scripts/superflow-java-build-hook.py +178 -0
- package/assets/scripts/superflow-java-stop-hook.sh +3 -0
- package/assets/scripts/superflow-loop-end-hook.sh +3 -0
- package/assets/scripts/superflow-loop-failure-hook.sh +3 -0
- package/assets/scripts/superflow-loop-observer.py +149 -0
- package/assets/scripts/superflow-sql-sync-hook.py +141 -3
- package/assets/scripts/superflow-test-report-lint.py +80 -2
- package/assets/skill-registry.json +229 -0
- package/assets/skills/openspec-propose/SKILL.md +14 -0
- package/assets/skills/superflow-clarify/SKILL.md +23 -1
- package/assets/skills/superflow-design/SKILL.md +6 -1
- package/assets/skills/superflow-docs/SKILL.md +24 -0
- package/assets/skills/superflow-implement/SKILL.md +8 -0
- package/assets/skills/superflow-pipeline/SKILL.md +31 -1
- package/assets/skills/superflow-pipeline/references/document-review-coverage.md +18 -0
- package/assets/skills/superflow-pipeline/references/superpower-technical-design-template.md +17 -0
- package/assets/skills/superflow-pipeline/references/test-execution-template.md +11 -0
- package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +8 -2
- package/assets/skills/superflow-quick-dev/SKILL.md +44 -0
- package/assets/skills/superflow-verify/SKILL.md +45 -1
- package/assets/skills-en/openspec-propose/SKILL.md +14 -0
- package/assets/skills-en/superflow-clarify/SKILL.md +23 -1
- package/assets/skills-en/superflow-design/SKILL.md +6 -1
- package/assets/skills-en/superflow-docs/SKILL.md +24 -0
- package/assets/skills-en/superflow-implement/SKILL.md +9 -0
- package/assets/skills-en/superflow-pipeline/SKILL.md +34 -0
- package/assets/skills-en/superflow-pipeline/references/document-review-coverage.md +20 -0
- package/assets/skills-en/superflow-pipeline/references/test-execution-template.md +12 -0
- package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +8 -2
- package/assets/skills-en/superflow-quick-dev/SKILL.md +43 -0
- package/assets/skills-en/superflow-verify/SKILL.md +52 -1
- package/dist/app/cli.js +98 -0
- package/dist/app/cli.js.map +1 -1
- package/dist/app/commands/check.js +7 -3
- package/dist/app/commands/check.js.map +1 -1
- package/dist/app/commands/cleanup-audit.js +13 -0
- package/dist/app/commands/cleanup-audit.js.map +1 -0
- package/dist/app/commands/context-audit.js +43 -0
- package/dist/app/commands/context-audit.js.map +1 -0
- package/dist/app/commands/docs-audit.js +11 -0
- package/dist/app/commands/docs-audit.js.map +1 -0
- package/dist/app/commands/doctor.js +10 -0
- package/dist/app/commands/doctor.js.map +1 -1
- package/dist/app/commands/hook-migrate.js +25 -0
- package/dist/app/commands/hook-migrate.js.map +1 -0
- package/dist/app/commands/init.js +9 -19
- package/dist/app/commands/init.js.map +1 -1
- package/dist/app/commands/map-audit.js +10 -0
- package/dist/app/commands/map-audit.js.map +1 -0
- package/dist/app/commands/pipeline.js +13 -1
- package/dist/app/commands/pipeline.js.map +1 -1
- package/dist/app/commands/quick.js +136 -0
- package/dist/app/commands/quick.js.map +1 -0
- package/dist/app/commands/review-coverage.js +84 -0
- package/dist/app/commands/review-coverage.js.map +1 -0
- package/dist/app/commands/skill-audit.js +36 -0
- package/dist/app/commands/skill-audit.js.map +1 -0
- package/dist/app/commands/status.js +108 -7
- package/dist/app/commands/status.js.map +1 -1
- package/dist/app/commands/update.js +9 -12
- package/dist/app/commands/update.js.map +1 -1
- package/dist/domains/cleanup-audit.js +38 -0
- package/dist/domains/cleanup-audit.js.map +1 -0
- package/dist/domains/config/cli-help.js +14 -0
- package/dist/domains/config/cli-help.js.map +1 -1
- package/dist/domains/config/context.js +13 -10
- package/dist/domains/config/context.js.map +1 -1
- package/dist/domains/context-audit.js +39 -0
- package/dist/domains/context-audit.js.map +1 -0
- package/dist/domains/deps.js +18 -8
- package/dist/domains/deps.js.map +1 -1
- package/dist/domains/docs-audit.js +34 -0
- package/dist/domains/docs-audit.js.map +1 -0
- package/dist/domains/hook-migration.js +127 -0
- package/dist/domains/hook-migration.js.map +1 -0
- package/dist/domains/hook.js +76 -2
- package/dist/domains/hook.js.map +1 -1
- package/dist/domains/managed-work/control.js +56 -2
- package/dist/domains/managed-work/control.js.map +1 -1
- package/dist/domains/map-audit.js +23 -0
- package/dist/domains/map-audit.js.map +1 -0
- package/dist/domains/quick-dev/gate.js +91 -0
- package/dist/domains/quick-dev/gate.js.map +1 -0
- package/dist/domains/review/coverage.js +119 -0
- package/dist/domains/review/coverage.js.map +1 -0
- package/dist/domains/review/report.js +62 -0
- package/dist/domains/review/report.js.map +1 -0
- package/dist/domains/skill/registry.js +87 -0
- package/dist/domains/skill/registry.js.map +1 -0
- package/package.json +1 -1
- package/scripts/check-design-principles.mjs +4 -0
|
@@ -83,6 +83,14 @@ Before implementation phase can exit:
|
|
|
83
83
|
## Prompt Splitting Rules
|
|
84
84
|
|
|
85
85
|
- Split by independently verifiable feature closure, not by a giant backend module.
|
|
86
|
+
- Read `tasks.md` predecessor links before splitting or dispatching. A batch is
|
|
87
|
+
executable only when its real predecessors are complete; independent batches
|
|
88
|
+
may run in parallel. Keep the existing checkbox and machine category as the
|
|
89
|
+
progress authority. An implementation discovery that changes a confirmed
|
|
90
|
+
owner decision or task acceptance requires canonical document repair,
|
|
91
|
+
handoff refresh, document review, and a new Coding Ready receipt before the
|
|
92
|
+
affected batch resumes. A free-text `Blocked by` note cannot downgrade a
|
|
93
|
+
locally executable task to an external category.
|
|
86
94
|
- Use P0 for baseline only: worktree, branch, compile, SQL/entity/mapper/DTO consistency.
|
|
87
95
|
- Keep business prompts small and explicit.
|
|
88
96
|
- Every implementation prompt must begin with the mandatory superpower/team
|
|
@@ -7,6 +7,16 @@ description: SDD 总入口和路由技能。Use when the user says sdd, SDD 流
|
|
|
7
7
|
|
|
8
8
|
This is the lightweight SDD router. Do not load the whole SDD process when a smaller phase skill is enough.
|
|
9
9
|
|
|
10
|
+
## 角色 owner 与互斥边界
|
|
11
|
+
|
|
12
|
+
| 角色 | 唯一 owner | 可以做 | 不可以做 |
|
|
13
|
+
|---|---|---|---|
|
|
14
|
+
| Host | 目标、澄清、监督、语义评审 | 选择路由、判断代码/架构风险、决定是否接受反馈 | 代替 Executor 写业务代码;启动嵌套 Supervisor |
|
|
15
|
+
| Executor | 源码实现、测试、启动、整改 | 在冻结合同内修改工作区并提交证据 | 改合同/状态;自行降低验收等级;自动提交发布 |
|
|
16
|
+
| Runner | 状态、哈希、退出码、证据持久化 | 调度、等待、恢复、确定性门禁 | 猜业务语义;重新设计 API/DB;代替 Host 评审 |
|
|
17
|
+
|
|
18
|
+
菜单或 persona 只改变入口表达,不创建第二套状态机;发现 owner 冲突时回到 Host 澄清。
|
|
19
|
+
|
|
10
20
|
维护 Superflow CLI 自身时,必须先读取仓库根目录
|
|
11
21
|
`docs/superflow-cli-design-principles.md` 和
|
|
12
22
|
`docs/superflow-cli-evaluation-framework.md`;涉及托管时再读取托管专项宪章与协议。
|
|
@@ -31,6 +41,9 @@ CLI 命令:
|
|
|
31
41
|
停止,不创建托管 Task;已有用户评审通过的 change/Prompt 时原路径冻结;只有边界清晰的
|
|
32
42
|
口头小需求才直接进入 minimal/standard。若口头需求存在会改变实现方向的 API、数据、
|
|
33
43
|
并发、跨仓或 owner 决策,先进入澄清/文档流程,不能把这一判断交给 Runner 正则或 Executor。
|
|
44
|
+
多页面、跨前后端、数据库字段横向改造要求闭环交付时,按完整 SDD 冻结真实入口、
|
|
45
|
+
`tests.md` 和逐入口验收合同。仅有 OpenSpec `spec/design/tasks` 或通用冒烟报告,
|
|
46
|
+
只能声明相应范围已实现/验证,不得称为完整 SDD 验收。
|
|
34
47
|
|
|
35
48
|
```bash
|
|
36
49
|
superflow pipeline "<implementation-prompt 路径、change 目录或简单任务>" --managed --project "<项目根目录>" \
|
|
@@ -86,6 +99,12 @@ JSON,再用 `--resume-task <task-id> --submit-host-review <json>` 恢复。监
|
|
|
86
99
|
|
|
87
100
|
## Choose The Right SDD Skill
|
|
88
101
|
|
|
102
|
+
- Use `$superflow-quick-dev` for one clear, low-blast-radius code change along
|
|
103
|
+
an existing test seam. Run its narrow gate before editing; API, DB, security,
|
|
104
|
+
transactions, concurrency, payments, cross-module work, a related active SDD
|
|
105
|
+
change, or uncertain ownership goes to `$superflow-clarify` instead. Reuse
|
|
106
|
+
the current quick managed profile after the Quick Spec is approved; do not
|
|
107
|
+
create a second managed-task state machine.
|
|
89
108
|
- Use `$openspec-explore` when the user is still thinking through a requirement,
|
|
90
109
|
wants to compare options, or needs codebase investigation before a change.
|
|
91
110
|
- Route to `$superflow-clarify` in embedded deep-clarification mode when the
|
|
@@ -163,6 +182,12 @@ When the router selects embedded deep clarification, follow these rules inside
|
|
|
163
182
|
- Exit deep clarification once only repository-verifiable facts remain and the
|
|
164
183
|
user confirms the current feature understanding. Continue through the existing
|
|
165
184
|
clarify workflow without invoking an external skill dependency.
|
|
185
|
+
- After all relevant features are frozen, show the change-level Consensus
|
|
186
|
+
Summary from `superflow-clarify` before OpenSpec artifact generation. Carry
|
|
187
|
+
confirmed choices into canonical `proposal.md`; do not create a parallel
|
|
188
|
+
alignment fact source or add approval prompts for decisions already explicit
|
|
189
|
+
in the user's request. A changed owner choice requires affected documents,
|
|
190
|
+
handoff, review, and Coding Ready to be refreshed before execution.
|
|
166
191
|
|
|
167
192
|
## Non-Negotiable Rules
|
|
168
193
|
|
|
@@ -326,6 +351,11 @@ context_compression | created_at | verified_at | updated_at`
|
|
|
326
351
|
|
|
327
352
|
- 设计范围、API/DB 合同、执行模式、验证边界、archive closeout 需要用户取舍时,
|
|
328
353
|
使用 `references/decision-point.md` 的格式记录,不用聊天记忆代替。
|
|
354
|
+
|
|
355
|
+
仓库级术语或持久架构决定可运行 `superflow context-audit --path <project>`
|
|
356
|
+
做只读检查。业务术语放入 `CONTEXT.md`;只有难逆转且存在有意义备选方案时才写 ADR。
|
|
357
|
+
审计是 advisory:缺少 ADR 只提醒,ADR 字段不全或术语混入实现细节才报告修复项,
|
|
358
|
+
不新增审批门禁,也不替代 `design.md`。
|
|
329
359
|
- 脏工作区、并行 worktree 或跨会话接力前,使用 `references/dirty-worktree.md`
|
|
330
360
|
的检查项,避免覆盖用户改动或拿旧 handoff 继续。
|
|
331
361
|
- `build_mode: subagent-driven-development` 时,维护
|
|
@@ -431,7 +461,7 @@ Mapper/XML、数据库样例、接口契约和真实消费入口验证。
|
|
|
431
461
|
**影响面发现方式(优先但可降级):**
|
|
432
462
|
|
|
433
463
|
- 优先检查当前仓库是否存在 understand-anything 相关索引/产物,例如
|
|
434
|
-
`.understand-anything/`、`understand-anything.md`、`understand anything.md`、
|
|
464
|
+
`.ua/`、`.understand-anything/`、`understand-anything.md`、`understand anything.md`、
|
|
435
465
|
或项目约定的 understand-anything 图谱文件。
|
|
436
466
|
- 如果索引存在,可以用它快速定位整个平台相关代码,包括当前仓库、同平台
|
|
437
467
|
sibling repo、共享 SDK、公共 DTO、数据库表消费方、定时任务、回调入口、外部平台
|
|
@@ -24,6 +24,14 @@
|
|
|
24
24
|
同页面不同角色的分支用不同入口 ID;不得只测试开发者选中的新接口。
|
|
25
25
|
5. 验收同时断言返回、最终状态和禁止的副作用。只读/纯函数场景也要给出明确
|
|
26
26
|
无持久化变更的理由,不能留空。browser 入口必须有 browser 验收,API 测试只能补充。
|
|
27
|
+
6. 横向页面/字段改造先从前端路由、列表列和可点击动作建立页面入口清单,再从后端
|
|
28
|
+
Controller、Mapper statement、全部写入方反向建立清单。逐项对账后才生成 tasks/tests;
|
|
29
|
+
相似方法名不得作为调用关系证据。每个列表记录实际页面请求、Controller、Service、
|
|
30
|
+
精确 Mapper statement、返回 DTO 与表;每个管理按钮记录实际 mutation API 和写入点。
|
|
31
|
+
未定位或两份清单不一致的入口标记待调查,不得以总数相等替代逐项核验。
|
|
32
|
+
7. 数据库字段展示用例必须分别覆盖一个非空记录与允许的历史 NULL 记录。非空记录
|
|
33
|
+
用同一业务 ID 比较 API 字段与数据库真源值,并在浏览器核对展示;仅有字段键、HTTP
|
|
34
|
+
200、空列表或历史 NULL 不能证明字段链路正确。修改入口还要验证写后读及禁止的副作用。
|
|
27
35
|
|
|
28
36
|
## 凭证扩展
|
|
29
37
|
|
|
@@ -80,3 +88,13 @@ coding-ready 复检失败会写 BLOCKED 撤销旧 READY。
|
|
|
80
88
|
验收阶段沿同一 R/E/C ID 在 `test-report.md` 回填实际角色、动作、请求路由、状态/
|
|
81
89
|
副作用断言、原始日志路径及结果。主 Agent 对照原始来源和实际证据,不只看测试汇总。
|
|
82
90
|
计划用例不是执行证据;API-only 不能报页面 E2E 成功。脚本未验证业务语义的部分不得宣称自动保证。
|
|
91
|
+
完整 SDD 报告使用唯一的逐用例执行证据表,供现有 report lint 核对冻结索引:
|
|
92
|
+
|
|
93
|
+
| 用例 ID | 入口 ID | 验收级别 | 结果 | 证据路径 |
|
|
94
|
+
|---|---|---|---|---|
|
|
95
|
+
| C1 | E1 | browser | PASS | logs/C1-trace.zip |
|
|
96
|
+
|
|
97
|
+
结果只用 `PASS/FAIL/BLOCKED/PARTIAL`;证据路径指向实际命令输出、浏览器 trace、
|
|
98
|
+
响应或数据库对账记录。PASS 的本地证据文件必须保留到验收并可读取;远端证据可用
|
|
99
|
+
HTTP(S) 链接。阻塞项在报告正文写明原因。表格仅证明用例逐项回填,不能证明
|
|
100
|
+
证据内容正确。任何非 PASS 用例存在时,不得声明整体验证 PASS。
|
|
@@ -20,6 +20,23 @@ canonical_sources:
|
|
|
20
20
|
|
|
21
21
|
# Superpowers Technical Design: <change title>
|
|
22
22
|
|
|
23
|
+
## Design-It-Twice:接口与 seam 选择
|
|
24
|
+
|
|
25
|
+
仅在新增或改变模块接口时填写;纯实现内重构可写“无接口变化”。
|
|
26
|
+
|
|
27
|
+
| 项目 | 方案 A | 方案 B |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| 接口与调用方约束 | | |
|
|
30
|
+
| seam 与 adapter owner | | |
|
|
31
|
+
| 真实测试面 | | |
|
|
32
|
+
| 复用证据(文件/符号) | | |
|
|
33
|
+
| 爆炸半径与后果 | | |
|
|
34
|
+
|
|
35
|
+
- 选择:A / B
|
|
36
|
+
- 选择理由:
|
|
37
|
+
- 被拒绝方案的具体代价:
|
|
38
|
+
- 两种方案不能只是改名或换参数顺序。
|
|
39
|
+
|
|
23
40
|
## Boundary
|
|
24
41
|
|
|
25
42
|
- This document owns source-level HOW only.
|
|
@@ -71,6 +71,17 @@ mvn test -Dtest=UserServiceTest
|
|
|
71
71
|
|
|
72
72
|
## 4.1 真实测试数据与证据
|
|
73
73
|
|
|
74
|
+
完整 SDD 变更还需按 `document-review.json` 的 R/E/C 索引逐项回填,不得用总通过数
|
|
75
|
+
代替单个入口的结果。下表供 `superflow-test-report-lint.py --review` 校验:
|
|
76
|
+
|
|
77
|
+
| 用例 ID | 入口 ID | 验收级别 | 结果 | 证据路径 |
|
|
78
|
+
|---|---|---|---|---|
|
|
79
|
+
| C1 | E1 | browser | PASS | logs/C1-trace.zip |
|
|
80
|
+
|
|
81
|
+
`PASS/FAIL/BLOCKED/PARTIAL` 之外的值无效;非 PASS 项在正文说明原因。
|
|
82
|
+
数据库字段展示要分别记录非空数据按同一 ID 的 API/DB 值对账、历史 NULL 结果和
|
|
83
|
+
真实浏览器展示。API 键存在、静态前端配置与浏览器显示分别记录证据等级。
|
|
84
|
+
|
|
74
85
|
| 用例 ID | 真实参数 | 参数来源 | 自动化命令 | 证据等级 | 执行证据 | 结论 |
|
|
75
86
|
|---------|----------|----------|------------|----------|----------|------|
|
|
76
87
|
| TC-001 | parkCode=____ | 前端请求 / 用户提供 / DB查询 / Mock | curl/Newman/pytest/RestAssured | Mock only / 测试端点 / 真实入口 | 响应 + DB + 日志 | Passed / Blocked / Partial |
|
|
@@ -87,15 +87,21 @@ project_root_for_change() {
|
|
|
87
87
|
|
|
88
88
|
require_test_report_lint() {
|
|
89
89
|
local report="$CHANGE_DIR/test-report.md"
|
|
90
|
-
local root lint output
|
|
90
|
+
local root lint output review
|
|
91
|
+
local -a lint_args
|
|
91
92
|
root="$(project_root_for_change)"
|
|
93
|
+
review="$CHANGE_DIR/.sdd/reviews/document-review.json"
|
|
94
|
+
lint_args=(--tests "$CHANGE_DIR/tests.md")
|
|
95
|
+
if [[ -f "$review" ]]; then
|
|
96
|
+
lint_args+=(--review "$review")
|
|
97
|
+
fi
|
|
92
98
|
|
|
93
99
|
for lint in \
|
|
94
100
|
"$root/.codex/hooks/superflow-test-report-lint.py" \
|
|
95
101
|
"$HOME/.codex/hooks/superflow-test-report-lint.py"; do
|
|
96
102
|
if [[ -x "$lint" ]]; then
|
|
97
103
|
output="$(mktemp)"
|
|
98
|
-
if ! "$lint"
|
|
104
|
+
if ! "$lint" "${lint_args[@]}" "$report" >"$output" 2>&1; then
|
|
99
105
|
issues+=("superflow-test-report-lint failed: $(tr '\n' ' ' < "$output" | sed -E 's/[[:space:]]+/ /g')")
|
|
100
106
|
fi
|
|
101
107
|
rm -f "$output"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: superflow-quick-dev
|
|
3
|
+
description: 小型代码工作的快速准入与 Quick Spec。目标、seam 或爆炸半径不清时停止并转正式 SDD。
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: superflow
|
|
7
|
+
version: '1.0'
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Superflow Quick Dev
|
|
11
|
+
|
|
12
|
+
只接单一、低爆炸半径、沿已有 seam 的代码工作。
|
|
13
|
+
|
|
14
|
+
## 窄门
|
|
15
|
+
|
|
16
|
+
先查真实源码、调用方和测试,再运行
|
|
17
|
+
`superflow quick "<request>" --json --path <changed-files...> --seam <existing-file>`。
|
|
18
|
+
只有确认**同一行为**由在途 SDD 变更拥有时才追加 `--active-sdd`;仅复用其代码或依赖
|
|
19
|
+
其产出,不等于同一变更。只有返回
|
|
20
|
+
`QUICK` 才能继续。公共 API、数据库/迁移、事务、并发、锁、权限、安全、支付、跨模块、
|
|
21
|
+
在途 SDD 变更或非独占工作树必须返回 `STOP`,转 `superflow-clarify`。若项目还安装了
|
|
22
|
+
ake-harness 的 `ssd-propose`,不得因为它可见就自动改派;只有用户明确选择 ake SSD
|
|
23
|
+
流程时才切换。
|
|
24
|
+
|
|
25
|
+
## Quick Spec
|
|
26
|
+
|
|
27
|
+
在 `.sdd/tasks/<YYYY-MM-DD>-<slug>/spec.md` 写入并展示当前磁盘版本,内容必须包含:
|
|
28
|
+
|
|
29
|
+
- Intent / Non-goals;
|
|
30
|
+
- Current behavior / Target behavior;
|
|
31
|
+
- 已确认的测试 seam;
|
|
32
|
+
- 按依赖排序的实施步骤;
|
|
33
|
+
- Given / When / Then 验收条件;
|
|
34
|
+
- 风险、升级条件和 deferred;
|
|
35
|
+
- baseline commit 与精确文件范围。
|
|
36
|
+
|
|
37
|
+
用户批准前不得修改运行时代码;收到当前磁盘版本的明确批准后,才运行
|
|
38
|
+
`superflow quick "<request>" --path <files...> --seam <existing-file> --spec <spec> --approve`。
|
|
39
|
+
CLI 将当前内容摘要绑定到批准状态。Intent、Non-goals 或 Acceptance Criteria 变化时回到
|
|
40
|
+
`draft`,重新批准后才实施。按 TDD 和 verification-loop 逐项跑 RED/GREEN 信号,完成后
|
|
41
|
+
复用 `superflow review-coverage` 和 `superflow eval` 的证据格式收口。
|
|
42
|
+
|
|
43
|
+
Quick 路径不创建 OpenSpec checkpoint,也不自动提交、推送或发布;一旦范围扩大,保留
|
|
44
|
+
spec 作为线索并转正式 SDD。
|
|
@@ -5,13 +5,56 @@ description: Use when an SDD/OpenSpec change is ready for verification, test-rep
|
|
|
5
5
|
|
|
6
6
|
# SDD Verify
|
|
7
7
|
|
|
8
|
+
Before semantic code review, run `superflow review-coverage --json` (or pass
|
|
9
|
+
`--base <ref>` for a branch review). Use its included/excluded inventory and
|
|
10
|
+
path-specific rules to account for every changed file. Review related Java
|
|
11
|
+
and Mapper XML files together when they share a bundle. Do not treat this
|
|
12
|
+
mechanical inventory as a correctness verdict: findings still need source
|
|
13
|
+
anchors, a fresh reading of the affected call path, and independent judgment.
|
|
14
|
+
|
|
15
|
+
Use the reported risk tier to choose review depth: low may be reviewed inline;
|
|
16
|
+
medium requires an independent view; high requires focused coverage of the
|
|
17
|
+
named high-impact paths in addition to the ordinary Host review. Every
|
|
18
|
+
reviewer report starts with `DONE`, `DONE_WITH_CONCERNS`, `BLOCKED`, or
|
|
19
|
+
`NEEDS_CONTEXT`. Run `superflow review-coverage --report <file> --json` to
|
|
20
|
+
validate that marker and every `file:line` finding anchor. `BLOCKED` and
|
|
21
|
+
`NEEDS_CONTEXT` require more evidence before triage; `DONE_WITH_CONCERNS`
|
|
22
|
+
requires Host investigation of each concern before deciding. Re-read each
|
|
23
|
+
anchor and attempt to disprove the finding before assigning severity. Keep
|
|
24
|
+
unverifiable claims separate rather than giving them a guessed severity.
|
|
25
|
+
|
|
26
|
+
## 评审回应纪律
|
|
27
|
+
|
|
28
|
+
收到 finding 后先通读全部反馈,复述要求,再对照当前源码、项目规则、调用方和测试验证。
|
|
29
|
+
不得只依据评审者措辞附和或直接改。确认有效时说明代码锚点和修复方向;认为有误时给出
|
|
30
|
+
具体源码或合同证据及被拒绝方案。一次处理一个 finding,跑受影响信号后才能声称已修复。
|
|
31
|
+
遇到“做成通用版本”等宽泛建议,先检查真实调用点;没有第二个调用方或合同要求时保持最小实现。
|
|
32
|
+
项目规则只有用户确认后才回写,评审反馈不会静默改变仓库政策。
|
|
33
|
+
|
|
8
34
|
完整 workflow 验收必须读取[需求×真实入口评审](../superflow-pipeline/references/document-review-coverage.md)。
|
|
9
35
|
沿 R/E/C ID 在现有 test-report 回填实际角色、页面动作、请求路由、最终状态与禁止副作用
|
|
10
36
|
的原始证据。独立对照原始来源及实际调用方;API-only 不得冒充 browser E2E,计划不等于执行。
|
|
37
|
+
横向字段改造还要复核页面请求命中的精确 Mapper statement,并查看非空记录的同 ID
|
|
38
|
+
API/DB 值对照与浏览器显示。历史 NULL、字段键存在和静态列配置各自只能支持较弱结论。
|
|
11
39
|
|
|
12
40
|
Verification is a phase, not a final sentence. Use this skill after
|
|
13
41
|
implementation work claims completion and before archive or delivery.
|
|
14
42
|
|
|
43
|
+
## Behavior-preserving simplification
|
|
44
|
+
|
|
45
|
+
After the implementation signals are green, inspect only the files changed by
|
|
46
|
+
this change for missed reuse, duplicated logic, redundant defensive branches,
|
|
47
|
+
and needless abstraction. Before removing a helper or guard, identify its
|
|
48
|
+
callers, error behavior, side effects, and reason for existing. If that reason
|
|
49
|
+
is unclear, leave it in place. Simplification is optional; clean code needs no
|
|
50
|
+
ceremonial edit.
|
|
51
|
+
|
|
52
|
+
Apply one small simplification at a time. Run the same tests and build signals
|
|
53
|
+
without changing their assertions; if behavior, errors, or side effects change,
|
|
54
|
+
revert that simplification. Keep simplification in a separate commit from the
|
|
55
|
+
feature, and stop if it reaches files outside the original change. This is a
|
|
56
|
+
readability pass, not a second code review or a license for unrelated cleanup.
|
|
57
|
+
|
|
15
58
|
## Entry Check
|
|
16
59
|
|
|
17
60
|
Run:
|
|
@@ -99,7 +142,8 @@ Before pass:
|
|
|
99
142
|
DB/log/API evidence, handoff hash, and phase state.
|
|
100
143
|
2. `~/.codex/hooks/superflow-verify-integration.sh <test-report.md>` passes when the
|
|
101
144
|
report involves integration evidence.
|
|
102
|
-
3. `~/.codex/hooks/superflow-test-report-lint.py --tests <tests.md>
|
|
145
|
+
3. `~/.codex/hooks/superflow-test-report-lint.py --tests <tests.md> --review
|
|
146
|
+
<.sdd/reviews/document-review.json> <test-report.md>`
|
|
103
147
|
passes. If `tests.md` declares L3/L4, real-entry, third-party, device,
|
|
104
148
|
database, log, or dev-tool evidence, mock-only/unit-only reports are hard
|
|
105
149
|
failures unless the report is explicitly `Blocked` or `Partially verified`
|
|
@@ -22,6 +22,14 @@ When ready to implement, run /opsx:apply
|
|
|
22
22
|
|
|
23
23
|
**Input**: The user's request should include a change name (kebab-case) OR a description of what they want to build.
|
|
24
24
|
|
|
25
|
+
When this skill follows `superflow-clarify`, read the confirmed change-level
|
|
26
|
+
Consensus Summary and its source evidence before creating artifacts. Put the
|
|
27
|
+
goal, scope, material owner decisions, rejected alternatives, migration risks,
|
|
28
|
+
and non-blocking reopen triggers in canonical `proposal.md`; cite the existing
|
|
29
|
+
source audit rather than copying it. A pending owner decision that changes the
|
|
30
|
+
solution blocks downstream spec/design/tasks. An explicit decision in the
|
|
31
|
+
user's original request needs no second confirmation.
|
|
32
|
+
|
|
25
33
|
### Canonical OpenSpec Change Directory (Blocking)
|
|
26
34
|
|
|
27
35
|
- A change must have exactly one physical directory:
|
|
@@ -111,6 +119,12 @@ After completing all artifacts, summarize:
|
|
|
111
119
|
- Follow the `instruction` field from `openspec instructions` for each artifact type
|
|
112
120
|
- The schema defines what each artifact should contain - follow it
|
|
113
121
|
- Read dependency artifacts for context before creating new ones
|
|
122
|
+
- For a Superflow change, keep ordinary OpenSpec checkbox task syntax. For each
|
|
123
|
+
independently verifiable task, state its observable delivery and acceptance
|
|
124
|
+
signal; record real predecessor task IDs as `Blocked by` and link the relevant
|
|
125
|
+
requirement/scenario or traceability row. A free-text blocker does not change
|
|
126
|
+
Superflow's `[local_required]` / `[environment_required]` /
|
|
127
|
+
`[release_required]` machine classification. Do not invent dependencies.
|
|
114
128
|
- Use `template` as the structure for your output file - fill in its sections
|
|
115
129
|
- **IMPORTANT**: `context` and `rules` are constraints for YOU, not content for the file
|
|
116
130
|
- Do NOT copy `<context>`, `<rules>`, `<project_context>` blocks into the artifact
|
|
@@ -13,7 +13,7 @@ any full SDD document or implementation prompt is generated.
|
|
|
13
13
|
|
|
14
14
|
- Before freezing any new requirement or bug fix, perform platform-level impact
|
|
15
15
|
discovery. Prefer understand-anything artifacts when present, such as
|
|
16
|
-
`.understand-anything/`, `understand-anything.md`, `understand anything.md`,
|
|
16
|
+
`.ua/`, `.understand-anything/`, `understand-anything.md`, `understand anything.md`,
|
|
17
17
|
or the project-specific graph output, but treat them only as locator evidence.
|
|
18
18
|
If artifacts are missing, stale, incomplete, or unavailable, degrade to `rg`,
|
|
19
19
|
source reading, Mapper/XML, configuration, database table names, log
|
|
@@ -174,6 +174,28 @@ Use the detailed workflow in:
|
|
|
174
174
|
indexed feature. Do not batch-confirm multiple features from memory or a
|
|
175
175
|
compressed chat summary.
|
|
176
176
|
|
|
177
|
+
### Change-level alignment before OpenSpec artifacts
|
|
178
|
+
|
|
179
|
+
After all in-scope features are frozen, present one concise change-level
|
|
180
|
+
`Consensus Summary` covering the goal, in/out scope, verified source facts,
|
|
181
|
+
owner decisions with rejected alternatives, production and migration risks,
|
|
182
|
+
and remaining non-blocking questions with owner and reopen trigger. Derive it
|
|
183
|
+
from `source-code-audit.md`, `feature-gates.md`, and the confirmed decisions in
|
|
184
|
+
`.sdd/handoff/brainstorm-summary.md`; the summary is a handoff view, not a
|
|
185
|
+
second source of requirements. Record unresolved decisions as blockers and
|
|
186
|
+
ask only the next owner decision. Do not ask the user to reconfirm facts or
|
|
187
|
+
choices already explicit in the original request.
|
|
188
|
+
|
|
189
|
+
When a material owner choice was made during clarification, show the current
|
|
190
|
+
summary before generating OpenSpec artifacts. Reuse an explicit confirmation
|
|
191
|
+
already given for that exact choice and summary; ask once only if the summary
|
|
192
|
+
introduces a new choice or changes its consequence. The later `proposal.md`
|
|
193
|
+
must carry the confirmed change-level
|
|
194
|
+
decisions and cite their evidence. If a later finding changes a confirmed
|
|
195
|
+
choice, return to that decision, update affected canonical documents, refresh
|
|
196
|
+
the handoff hash and repeat document review and Coding Ready. Task checkbox
|
|
197
|
+
progress alone does not change the agreed contract.
|
|
198
|
+
|
|
177
199
|
## Handoff
|
|
178
200
|
|
|
179
201
|
When the feature is frozen, tell the user to continue with `$openspec-propose`
|
|
@@ -58,7 +58,12 @@ Superpowers own source-level HOW without weakening OpenSpec/SDD contracts.
|
|
|
58
58
|
5. Write:
|
|
59
59
|
`docs/superpowers/specs/YYYY-MM-DD-<change-id>-technical-design.md`
|
|
60
60
|
using `../superflow-pipeline/references/superpower-technical-design-template.md`.
|
|
61
|
-
6.
|
|
61
|
+
6. For each new or changed module interface, add a `Design-It-Twice` card to
|
|
62
|
+
the technical design: two materially different interfaces, seam and adapter
|
|
63
|
+
ownership, the real test surface, reuse evidence, caller consequences, and
|
|
64
|
+
an explicit choice. Renaming the same interface does not count as two
|
|
65
|
+
options; revisit it. This card is advisory and does not add a state gate.
|
|
66
|
+
7. Complete `Minimal Design Review` before expanding source-level HOW. For
|
|
62
67
|
every new table, field, API, service/component, abstraction, cache,
|
|
63
68
|
async/MQ/event flow, scheduled job, or compatibility layer, prove existing
|
|
64
69
|
reuse options, necessity, and why the simplest direct implementation is
|
|
@@ -38,6 +38,12 @@ Do not invent new fields or requirements.
|
|
|
38
38
|
|
|
39
39
|
For complex requirements, verify these before writing docs:
|
|
40
40
|
|
|
41
|
+
- `proposal.md` carries the confirmed change-level Consensus Summary from
|
|
42
|
+
clarification: goal, scope, owner choices and rejected alternatives,
|
|
43
|
+
production/migration risks, and non-blocking reopen triggers. Check it
|
|
44
|
+
against original sources and `source-code-audit.md`; do not treat the
|
|
45
|
+
handoff summary as a second authority. If a material choice remains open,
|
|
46
|
+
return to `$superflow-clarify` before finalizing design or tasks.
|
|
41
47
|
- `source-ingestion.md`, `feature-inventory.md`, and `feature-gates.md` prove
|
|
42
48
|
that the original PRD/Lark/Feishu/screenshots were processed section by
|
|
43
49
|
section, not summarized into tasks in one whole-document pass. Each feature
|
|
@@ -236,6 +242,12 @@ applicable:
|
|
|
236
242
|
`[local_required]`, `[environment_required]`, or `[release_required]`.
|
|
237
243
|
Locally executable code, tests, startup, and browser checks are local_required;
|
|
238
244
|
free-form Blocker/owner prose cannot replace the category.
|
|
245
|
+
- For each implementation task, review observable delivery, acceptance signal,
|
|
246
|
+
requirement/scenario coverage, and actual predecessors. Show the currently
|
|
247
|
+
executable tasks whose predecessors are complete. Reuse
|
|
248
|
+
`traceability-matrix.md` for detailed coverage; do not create another task
|
|
249
|
+
state file. `Blocked by` expresses execution order and never changes the
|
|
250
|
+
machine task classification above.
|
|
239
251
|
- `tests.md`
|
|
240
252
|
- `test-report.md` skeleton
|
|
241
253
|
- `sdd-quality-gate.md`
|
|
@@ -364,6 +376,18 @@ Use references only as needed:
|
|
|
364
376
|
`Case ID | Requirement/scenario | Level L1/L2/L3/L4 | Precondition data | Steps |
|
|
365
377
|
Automation command | Response assertion | DB assertion | Log assertion | RED expected failure | GREEN expected pass |
|
|
366
378
|
test-report evidence location`.
|
|
379
|
+
- For cross-page management or database-backed display changes, reconcile the
|
|
380
|
+
frontend action/list inventory with real Controller, Service, exact Mapper
|
|
381
|
+
statement and table anchors before freezing tasks. Put the confirmed chain
|
|
382
|
+
and entry ID in `source-code-audit.md` and reuse it in `design.md`, `tasks.md`
|
|
383
|
+
and `tests.md`. A similarly named query is not evidence for the page route.
|
|
384
|
+
Include every visible mutation button, such as enable/disable, as an entry
|
|
385
|
+
even when the original task list omitted it.
|
|
386
|
+
- For a returned persisted field, `tests.md` must freeze at least one non-null
|
|
387
|
+
fixture and an allowed historical-NULL fixture separately. Assert API and DB
|
|
388
|
+
values for the same record ID, then browser rendering where a page is in
|
|
389
|
+
scope. Key-presence, HTTP 200, empty-page and NULL-only assertions cannot
|
|
390
|
+
close the non-null data path. Name the exact query/command and evidence file.
|
|
367
391
|
- For L3/L4 input validation, protocol rejection, and exceptional branches,
|
|
368
392
|
`tests.md` also freezes the real injected payload and evidence that it reaches
|
|
369
393
|
the intended parser or validation branch; matching the same HTTP status alone
|
|
@@ -96,6 +96,15 @@ Use references/batch-split-guide.md and references/batch-prompt-template.md.
|
|
|
96
96
|
Split by business closure, not by file type. Each batch must have independent
|
|
97
97
|
entry, implementation scope, verification, and report obligations.
|
|
98
98
|
|
|
99
|
+
Read `tasks.md` predecessor links before splitting or dispatching. A batch is
|
|
100
|
+
executable only when its real predecessors are complete; independent batches
|
|
101
|
+
may run in parallel. Keep the existing checkbox and machine category as the
|
|
102
|
+
progress authority. An implementation discovery that changes a confirmed
|
|
103
|
+
owner decision or task acceptance requires canonical document repair, handoff
|
|
104
|
+
refresh, document review, and a new Coding Ready receipt before the affected
|
|
105
|
+
batch resumes. A free-text `Blocked by` note cannot downgrade a locally
|
|
106
|
+
executable task to an external category.
|
|
107
|
+
|
|
99
108
|
Workers may update only their own embedded-changes/pXX-* docs. Root aggregate
|
|
100
109
|
docs are updated by the leader during closeout after related worktrees merge.
|
|
101
110
|
|
|
@@ -15,6 +15,17 @@ the unified evaluation framework.
|
|
|
15
15
|
## Role
|
|
16
16
|
|
|
17
17
|
This is the main router and stateful workflow orchestrator for SuperBridge Flow.
|
|
18
|
+
|
|
19
|
+
## Role ownership and mutual exclusions
|
|
20
|
+
|
|
21
|
+
| Role | Sole owner | May do | Must not do |
|
|
22
|
+
|---|---|---|---|
|
|
23
|
+
| Host | goal, clarification, supervision, semantic review | choose routing and judge code/architecture risk | write business code or start a nested Supervisor |
|
|
24
|
+
| Executor | source implementation, tests, startup, repair | change the workspace within the frozen contract and return evidence | edit the contract/state, lower verification, or release automatically |
|
|
25
|
+
| Runner | state, hashes, exit codes, evidence persistence | schedule, wait, recover, and enforce deterministic facts | guess business meaning or replace Host review |
|
|
26
|
+
|
|
27
|
+
Menus and personas change entry wording only; they never create a second state
|
|
28
|
+
machine. Return to Host clarification when ownership conflicts.
|
|
18
29
|
It combines OpenSpec/SDD and Superpowers without letting them overwrite each
|
|
19
30
|
other:
|
|
20
31
|
|
|
@@ -50,6 +61,10 @@ user-approved change/prompt is frozen from its original path. Only a bounded
|
|
|
50
61
|
verbal request enters minimal or standard directly. Direction-changing API,
|
|
51
62
|
data, concurrency, cross-repository, or owner choices return to
|
|
52
63
|
clarification/documents; Runner regexes and Executor improvisation do not decide them.
|
|
64
|
+
For cross-page, cross-stack or database-field changes requesting closed delivery,
|
|
65
|
+
use full SDD to freeze real entries, `tests.md` and per-entry acceptance. A raw
|
|
66
|
+
OpenSpec `spec/design/tasks` set or generic smoke report supports only its
|
|
67
|
+
actually verified scope, not a full SDD acceptance claim.
|
|
53
68
|
|
|
54
69
|
```bash
|
|
55
70
|
superflow pipeline "<implementation prompt, change directory, or direct task>" --managed --project "<project root>" \
|
|
@@ -138,6 +153,11 @@ hotfix:
|
|
|
138
153
|
|
|
139
154
|
## Routing
|
|
140
155
|
|
|
156
|
+
- One clear, low-blast-radius code change with an existing test seam: use
|
|
157
|
+
superflow-quick-dev before editing, then reuse the existing quick managed
|
|
158
|
+
profile after Quick Spec approval. API, DB, security, transaction,
|
|
159
|
+
concurrency, payment, cross-module, active-SDD, or ownership uncertainty
|
|
160
|
+
routes to superflow-clarify instead; do not add a second managed state machine.
|
|
141
161
|
- When the user explicitly asks for rigorous questioning, or a bounded feature
|
|
142
162
|
has unresolved owner decisions, mutually exclusive approaches, an unclear
|
|
143
163
|
source of truth, unclear acceptance behavior, or cross-system responsibility,
|
|
@@ -179,6 +199,12 @@ When the router selects embedded deep clarification, follow these rules inside
|
|
|
179
199
|
- Exit deep clarification once only repository-verifiable facts remain and the
|
|
180
200
|
user confirms the current feature understanding. Continue through the existing
|
|
181
201
|
clarify workflow without invoking an external skill dependency.
|
|
202
|
+
- After all relevant features are frozen, show the change-level Consensus
|
|
203
|
+
Summary from `superflow-clarify` before OpenSpec artifact generation. Carry
|
|
204
|
+
confirmed choices into canonical `proposal.md`; do not create a parallel
|
|
205
|
+
alignment fact source or add approval prompts for decisions already explicit
|
|
206
|
+
in the user's request. A changed owner choice requires affected documents,
|
|
207
|
+
handoff, review, and Coding Ready to be refreshed before execution.
|
|
182
208
|
|
|
183
209
|
## Required Artifacts
|
|
184
210
|
|
|
@@ -316,6 +342,14 @@ questions in one final batch.
|
|
|
316
342
|
Record irreversible or ambiguous decisions in references/decision-point.md
|
|
317
343
|
format. Do not store decisions only in chat memory.
|
|
318
344
|
|
|
345
|
+
For repository-wide terminology, run `superflow context-audit --path <project>`
|
|
346
|
+
when a change introduces a domain term or a durable architectural decision. Keep
|
|
347
|
+
business vocabulary in `CONTEXT.md`; use an ADR only when the decision is hard
|
|
348
|
+
to reverse and has meaningful alternatives. The audit is advisory: a missing
|
|
349
|
+
ADR is a warning, while incomplete ADR fields or implementation details in the
|
|
350
|
+
terminology list are reported for repair. It does not create approval gates or
|
|
351
|
+
replace the canonical `design.md` contract.
|
|
352
|
+
|
|
319
353
|
Decision points include:
|
|
320
354
|
|
|
321
355
|
- API compatibility choices
|
|
@@ -26,6 +26,16 @@ investigate source-resolvable questions autonomously.
|
|
|
26
26
|
5. Assert response, final state and forbidden effects. For read-only/pure-function work explain
|
|
27
27
|
why no persistent change applies; do not leave blanks. Browser paths require browser acceptance;
|
|
28
28
|
API checks can supplement, not replace them.
|
|
29
|
+
6. For cross-page or field changes, inventory frontend routes, list columns and clickable actions
|
|
30
|
+
independently from backend Controllers, exact Mapper statements and all writers. Reconcile both
|
|
31
|
+
inventories before writing tasks/tests. Similar method names are not call-chain evidence. For
|
|
32
|
+
every list record page request, Controller, Service, exact Mapper statement, response DTO and
|
|
33
|
+
table; for every management button record its mutation API and write point. Investigate missing
|
|
34
|
+
or conflicting entries instead of treating matching totals as proof.
|
|
35
|
+
7. A database-backed display case needs both a non-null fixture and a separate allowed historical
|
|
36
|
+
NULL case. Compare API fields with authoritative DB values for the same business ID, then check
|
|
37
|
+
browser rendering. Field keys, HTTP 200, empty lists and historical NULL alone are insufficient.
|
|
38
|
+
Mutation cases also check write-then-read behavior and forbidden side effects.
|
|
29
39
|
|
|
30
40
|
## Receipt extension
|
|
31
41
|
|
|
@@ -87,3 +97,13 @@ During verification, reuse R/E/C IDs in `test-report.md`, recording actual actor
|
|
|
87
97
|
request route, state/forbidden-effect assertions, raw evidence paths and outcomes. The Host
|
|
88
98
|
compares them to original sources, not only a test summary. Planned cases are not execution
|
|
89
99
|
evidence; API-only results cannot claim browser E2E. Do not claim automatic semantic assurance.
|
|
100
|
+
Full SDD reports use one per-case execution evidence table for the existing report linter:
|
|
101
|
+
|
|
102
|
+
| Case ID | Entry ID | Acceptance level | Result | Evidence path |
|
|
103
|
+
|---|---|---|---|---|
|
|
104
|
+
| C1 | E1 | browser | PASS | logs/C1-trace.zip |
|
|
105
|
+
|
|
106
|
+
Results are `PASS/FAIL/BLOCKED/PARTIAL`. Evidence points to actual command output, browser trace,
|
|
107
|
+
response or DB reconciliation. Retain readable local evidence files for PASS; HTTP(S) links may
|
|
108
|
+
identify remote evidence. Explain blockers in the report body. This table proves case-level
|
|
109
|
+
accounting only; the Host must inspect evidence contents. Any non-PASS case prevents an overall PASS.
|
|
@@ -55,6 +55,18 @@ Archive Readiness: PASS / BLOCKED
|
|
|
55
55
|
|
|
56
56
|
Required for `verify_mode: full`:
|
|
57
57
|
|
|
58
|
+
For full SDD changes, fill every R/E/C case from `document-review.json` in one
|
|
59
|
+
execution table checked by `superflow-test-report-lint.py --review`:
|
|
60
|
+
|
|
61
|
+
| Case ID | Entry ID | Acceptance level | Result | Evidence path |
|
|
62
|
+
|---|---|---|---|---|
|
|
63
|
+
| C1 | E1 | browser | PASS | logs/C1-trace.zip |
|
|
64
|
+
|
|
65
|
+
Use only `PASS/FAIL/BLOCKED/PARTIAL`; explain non-PASS results in the report.
|
|
66
|
+
For database-backed display fields, record same-ID API/DB values on non-null
|
|
67
|
+
data, historical NULL separately, and real browser rendering. Distinguish
|
|
68
|
+
field-key checks, static frontend inspection and browser evidence.
|
|
69
|
+
|
|
58
70
|
- Test environment:
|
|
59
71
|
- Branch/commit/build number or image:
|
|
60
72
|
- Base URL:
|
|
@@ -87,15 +87,21 @@ project_root_for_change() {
|
|
|
87
87
|
|
|
88
88
|
require_test_report_lint() {
|
|
89
89
|
local report="$CHANGE_DIR/test-report.md"
|
|
90
|
-
local root lint output
|
|
90
|
+
local root lint output review
|
|
91
|
+
local -a lint_args
|
|
91
92
|
root="$(project_root_for_change)"
|
|
93
|
+
review="$CHANGE_DIR/.sdd/reviews/document-review.json"
|
|
94
|
+
lint_args=(--tests "$CHANGE_DIR/tests.md")
|
|
95
|
+
if [[ -f "$review" ]]; then
|
|
96
|
+
lint_args+=(--review "$review")
|
|
97
|
+
fi
|
|
92
98
|
|
|
93
99
|
for lint in \
|
|
94
100
|
"$root/.codex/hooks/superflow-test-report-lint.py" \
|
|
95
101
|
"$HOME/.codex/hooks/superflow-test-report-lint.py"; do
|
|
96
102
|
if [[ -x "$lint" ]]; then
|
|
97
103
|
output="$(mktemp)"
|
|
98
|
-
if ! "$lint"
|
|
104
|
+
if ! "$lint" "${lint_args[@]}" "$report" >"$output" 2>&1; then
|
|
99
105
|
issues+=("superflow-test-report-lint failed: $(tr '\n' ' ' < "$output" | sed -E 's/[[:space:]]+/ /g')")
|
|
100
106
|
fi
|
|
101
107
|
rm -f "$output"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: superflow-quick-dev
|
|
3
|
+
description: Fast admission and Quick Spec for small code tasks. Stop and switch to formal SDD when intent, seam, or blast radius is unclear.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: superflow
|
|
7
|
+
version: '1.0'
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Superflow Quick Dev
|
|
11
|
+
|
|
12
|
+
Accept only one low-blast-radius code task that follows an existing seam.
|
|
13
|
+
|
|
14
|
+
## Narrow gate
|
|
15
|
+
|
|
16
|
+
Inspect current source, callers, and tests, then run
|
|
17
|
+
`superflow quick "<request>" --json --path <changed-files...> --seam <existing-file>`.
|
|
18
|
+
Pass `--active-sdd` only after confirming an active SDD change owns the **same
|
|
19
|
+
behavior**; reusing its code or depending on its output is insufficient. Continue only
|
|
20
|
+
when it returns `QUICK`. Public APIs, databases/migrations, transactions,
|
|
21
|
+
concurrency, locks, permissions, security, payments, cross-module work, active
|
|
22
|
+
SDD changes, or a non-exclusive worktree must return `STOP` and switch to
|
|
23
|
+
`superflow-clarify`. If ake-harness's `ssd-propose` is also visible, do not
|
|
24
|
+
route there merely because it is installed. Switch to ake SSD only when the
|
|
25
|
+
user explicitly chooses that workflow.
|
|
26
|
+
|
|
27
|
+
## Quick Spec
|
|
28
|
+
|
|
29
|
+
Write and show the current disk version at
|
|
30
|
+
`.sdd/tasks/<YYYY-MM-DD>-<slug>/spec.md` with Intent / Non-goals, current and
|
|
31
|
+
target behavior, confirmed test seam, ordered implementation steps, Given /
|
|
32
|
+
When / Then acceptance, risks, escalation conditions, deferred work, baseline
|
|
33
|
+
commit, and exact file scope.
|
|
34
|
+
|
|
35
|
+
Do not edit runtime code before approval. After explicit approval of the current
|
|
36
|
+
disk version, run `superflow quick "<request>" --path <files...> --seam <existing-file> --spec <spec> --approve`.
|
|
37
|
+
The CLI binds the approval to the current content digest. If Intent, Non-goals, or Acceptance
|
|
38
|
+
Criteria change, return to `draft` and obtain approval again. Use TDD and
|
|
39
|
+
verification-loop RED/GREEN signals, then close with `superflow review-coverage`
|
|
40
|
+
and `superflow eval` evidence.
|
|
41
|
+
|
|
42
|
+
Quick work creates no OpenSpec checkpoint and never commits, pushes, or releases.
|
|
43
|
+
When scope expands, keep the spec as a lead and switch to formal SDD.
|