create-specfuse 0.11.0 → 0.12.0
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 +72 -43
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/scaffolder.d.ts.map +1 -1
- package/dist/scaffolder.js +11 -0
- package/dist/scaffolder.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -0
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +29 -2
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/templates/fuseqa-skill.js +2 -2
- package/dist/templates/fusereview-skill.js +2 -2
- package/dist/templates/specfuse-command.d.ts +11 -0
- package/dist/templates/specfuse-command.d.ts.map +1 -0
- package/dist/templates/specfuse-command.js +79 -0
- package/dist/templates/specfuse-command.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,42 +19,34 @@ npm install -g @fission-ai/openspec # 流程引擎;装好后自动注册 /o
|
|
|
19
19
|
/plugins add obra/superpowers # 行为约束插件(在 Claude Code 内执行)
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
装完即可在项目里启动 `claude`,用 `/opsx:propose` 开始第一个变更。
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
## 生成物
|
|
25
25
|
|
|
26
26
|
```
|
|
27
27
|
my-app/
|
|
28
|
-
├── CLAUDE.md
|
|
29
|
-
├── .gitignore
|
|
28
|
+
├── CLAUDE.md # 流水线调度协议(五拍规则全文)
|
|
29
|
+
├── .gitignore # 共享忽略规则
|
|
30
30
|
├── .claude/
|
|
31
|
-
│ ├── settings.local.json
|
|
31
|
+
│ ├── settings.local.json # 权限白名单
|
|
32
|
+
│ ├── commands/
|
|
33
|
+
│ │ ├── opsx/ # OpenSpec 提供:/opsx:* 命令面
|
|
34
|
+
│ │ └── specfuse.md # SpecFuse 提供:全自动入口
|
|
32
35
|
│ └── skills/
|
|
33
|
-
│ ├── design-md/
|
|
34
|
-
│ ├── fusedoc/
|
|
35
|
-
│ ├── fusereview/
|
|
36
|
-
│
|
|
36
|
+
│ ├── design-md/ # 设计令牌生成技能(含 16 个原型模板)
|
|
37
|
+
│ ├── fusedoc/ # 文档标准技能(含 3 份参考文件)
|
|
38
|
+
│ ├── fusereview/ # 实施后代码评审技能
|
|
39
|
+
│ ├── fuseqa/ # 实施后端到端验收技能(含 4 份模板)
|
|
40
|
+
│ └── openspec-*/ # OpenSpec 提供:随其 init 生成
|
|
37
41
|
└── openspec/
|
|
38
|
-
├── config.yaml
|
|
39
|
-
├── specs/
|
|
40
|
-
└── changes/archive/
|
|
42
|
+
├── config.yaml # spec 规则(流程约束)
|
|
43
|
+
├── specs/ # 主规格
|
|
44
|
+
└── changes/archive/ # 变更档案
|
|
41
45
|
```
|
|
42
46
|
|
|
43
|
-
项目目录会自动加入 Claude Code
|
|
44
|
-
|
|
45
|
-
### Design Tokens(前端项目)
|
|
46
|
-
|
|
47
|
-
涉 UI/前端的项目,Think 阶段会触发 `/design-md` 技能生成 `DESIGN-TOKENS.md`,定义色彩、字体、间距、圆角等设计变量。也可手动 `/design-md` 为已有项目生成。
|
|
47
|
+
项目目录会自动加入 Claude Code 信任列表。`commands/opsx/` 与 `openspec-*` 由 OpenSpec 自己的 `init` 产生,随其版本更新;`commands/specfuse.md` 与四个技能由 SpecFuse 写入,已存在则不覆盖;`CLAUDE.md` 按 FUSION 标记合并(见下文)。
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
`/fusedoc` 是贯穿全链路的文档标准,**不属于五拍中的任何一拍**:无检查点、无强制提问、不进 apply 收尾序列,由产出散文的各阶段按需调用。它管三件事——一段话必须说什么、读起来是从仓库出发还是从写作会话出发、一个事实该放在哪一层。
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
/fusedoc <scope> # scope 必填;不填则报缺输入并停止,不推断全仓库范围
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## 五拍流水线
|
|
49
|
+
## 五个阶段
|
|
58
50
|
|
|
59
51
|
在项目中启动 Claude Code,按这套节奏开发:
|
|
60
52
|
|
|
@@ -66,6 +58,16 @@ FuseQA apply 收尾检查点 —— 真实入口端到端验
|
|
|
66
58
|
Verify /opsx:verify → /opsx:archive —— 全量验收与归档
|
|
67
59
|
```
|
|
68
60
|
|
|
61
|
+
### 无人值守:`/specfuse`
|
|
62
|
+
|
|
63
|
+
需求已经明确、不想逐拍确认时,用一条命令跑完整条流水线:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
/specfuse <需求描述>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
brainstorm、`/design-md` 问卷、模型切换与两个收尾检查点都由模型按推荐答案自答,并记录在最终报告中:模型切换默认不切换,FuseReview 自动进入,FuseQA 记录为跳过,verify 全部通过后 archive,全程不 commit、不 push。verify 仍失败时不 archive,保留变更目录并把失败写进报告。默认的 `/opsx:*` 交互行为不受影响。
|
|
70
|
+
|
|
69
71
|
### Think
|
|
70
72
|
|
|
71
73
|
- `/opsx:propose`(Path A)一次生成全部制品;`/opsx:new` + `/opsx:continue`(Path B)一次一个制品、逐步确认。
|
|
@@ -77,20 +79,20 @@ Verify /opsx:verify → /opsx:archive —— 全量验收与归档
|
|
|
77
79
|
- 逐任务红绿循环,严格遵守 TDD。
|
|
78
80
|
- **铁律:`NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE`** —— 每个任务完成前必须粘贴终端原始输出作为证据。
|
|
79
81
|
|
|
80
|
-
### FuseReview
|
|
82
|
+
### FuseReview(第三拍)
|
|
81
83
|
|
|
82
84
|
- apply 完成后必须询问是否评审(禁止静默跳过);呈报任务数、涉及模块等事实,由你决定是否执行。
|
|
83
|
-
-
|
|
85
|
+
- 评审者不参与实现,以冷读方式审查 `基线..HEAD` 的累积 diff,按十一项检查逐条走(测试强度、缺失检测、范围契合、真实入口、接口两侧、生命周期与并发、强制路径、配置选择、能力与消费者契合、借用状态、边界值)。
|
|
84
86
|
- Blocking 发现走 TDD 修复;修复后只复审修复 diff,不进行第二轮全量评审。
|
|
85
87
|
- 跳过评审必须记录在收尾报告中留痕。
|
|
86
88
|
|
|
87
|
-
### FuseQA
|
|
89
|
+
### FuseQA(第四拍)
|
|
88
90
|
|
|
89
|
-
- apply
|
|
91
|
+
- apply 完成后必须询问是否验收。**与 FuseReview 是两问**:前一问答什么都不影响这一问必问,禁止合并成一问。
|
|
90
92
|
- 单测覆盖源码,冷读评审不运行系统,全量测试跑的还是单测——**没人以用户身份运行过制品**。这一拍补的就是这个缺口。
|
|
91
93
|
- 用例从 specs 的 Scenario 派生,重建为真实入口(子进程 / HTTP 请求 / 浏览器),被测物是构建产物而非 `src/`;禁止 `import ../src/`(机械可查)。
|
|
92
94
|
- 用例落 `tests/e2e/<capability>/`,与 `openspec/specs/<capability>/` 同名对齐,因此**回归零成本成立**——它已是全量测试的一部分。
|
|
93
|
-
-
|
|
95
|
+
- 发现按**归因**分级而非按红:实现缺陷 Blocking,spec 漏洞默认 Suggestion,假红记为用例债并须写明代码为何正确。
|
|
94
96
|
- 用例是项目资产,新增/修正/剔除都要留理由——剔除尤其,否则「删掉红用例」和「掩盖缺陷」在台账上无从区分。
|
|
95
97
|
- **收尾报告必须同时记录 FuseReview 与 FuseQA 两条决定**,缺一条即 apply 未完成。
|
|
96
98
|
|
|
@@ -99,6 +101,20 @@ Verify /opsx:verify → /opsx:archive —— 全量验收与归档
|
|
|
99
101
|
- `/opsx:verify` 逐条对照 specs 验证实现;`/opsx:archive` 前运行全量测试 + lint 零警告,粘贴原始输出。
|
|
100
102
|
- 全量测试**即 E2E 回归门禁**(包含 `tests/e2e/` 下所有用例),不得跳过。
|
|
101
103
|
|
|
104
|
+
## 文档标准:FuseDoc
|
|
105
|
+
|
|
106
|
+
`/fusedoc` 是贯穿全链路的文档标准,**不属于五拍中的任何一拍**:无检查点、无强制提问、不进 apply 收尾序列,由产出散文的各阶段按需调用。
|
|
107
|
+
|
|
108
|
+
它管三件事——一段话必须说什么、读起来是从仓库出发还是从写作会话出发、一个事实该放在哪一层。派上用场的典型场合:写 README 和注释、审计一份文档、判断某个事实该落在决策记录还是使用指南。
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
/fusedoc <scope> # scope 必填;不填则报缺输入并停止,不推断全仓库范围
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## 设计令牌(前端项目)
|
|
115
|
+
|
|
116
|
+
涉 UI/前端的项目,Think 阶段会触发 `/design-md` 生成 `DESIGN-TOKENS.md`,定义色彩、字体、间距、圆角等设计变量。内置 16 个原型模板(SaaS 面板、营销页、后台管理、移动端……),按项目形态匹配。也可手动 `/design-md` 为已有项目生成。
|
|
117
|
+
|
|
102
118
|
## 已有项目:能不动就不动
|
|
103
119
|
|
|
104
120
|
`npm create specfuse@latest .` 的合并策略逐文件保守:
|
|
@@ -106,15 +122,17 @@ Verify /opsx:verify → /opsx:archive —— 全量验收与归档
|
|
|
106
122
|
| 文件 | 行为 |
|
|
107
123
|
|------|------|
|
|
108
124
|
| `CLAUDE.md` | 有 `<!-- FUSION:START/END -->` 标记 → 只替换标记内段落;无标记 → 追加 |
|
|
109
|
-
| `.gitignore` |
|
|
110
|
-
| `.claude/settings.local.json` |
|
|
125
|
+
| `.gitignore` | 追加缺失模式(带 `# Added by specfuse` 分节),不重复 |
|
|
126
|
+
| `.claude/settings.local.json` | 合并 `permissions.allow`,其余键原样透传 |
|
|
111
127
|
| `openspec/config.yaml` | 已存在 → 跳过 |
|
|
128
|
+
| `.claude/skills/*` | 已存在 → 不覆盖 |
|
|
129
|
+
| `.claude/commands/specfuse.md` | 已存在 → 不覆盖 |
|
|
112
130
|
|
|
113
131
|
删除 `CLAUDE.md` 里的 FUSION 块,项目即回到无调度状态——整套编排零侵入、可逆。
|
|
114
132
|
|
|
115
|
-
##
|
|
133
|
+
## 与技术栈无关
|
|
116
134
|
|
|
117
|
-
SpecFuse
|
|
135
|
+
SpecFuse 是流程,不是栈选择器。五拍对 Rust、React 或一个裸脚本完全一致,所以初始化时不会问你用什么栈,也不生成栈特化内容:
|
|
118
136
|
|
|
119
137
|
- `CLAUDE.md` 不含 Tech Stack 段落,验证指令写作「项目的测试命令」「项目的 linter」——由项目自己的工具链定义。
|
|
120
138
|
- `.gitignore` 只给 IDE / OS / env / 日志这些共享模式,构建产物模式留给首次提交时判断。
|
|
@@ -128,27 +146,38 @@ SpecFuse 是流程,不是栈选择器。Think → Do → FuseReview → FuseQA
|
|
|
128
146
|
```
|
|
129
147
|
Usage: create-specfuse [options] [project-name]
|
|
130
148
|
|
|
131
|
-
|
|
132
|
-
-
|
|
133
|
-
|
|
134
|
-
|
|
149
|
+
Arguments:
|
|
150
|
+
project-name 目标目录(省略或 "." 表示当前目录就地初始化)
|
|
151
|
+
|
|
152
|
+
Options:
|
|
153
|
+
-y, --yes 非交互模式(全取默认值,CI 友好)
|
|
154
|
+
-V, --version 版本号
|
|
155
|
+
-h, --help 帮助
|
|
135
156
|
```
|
|
136
157
|
|
|
158
|
+
交互模式只问两个问题:是否初始化 git(仅新目录)、是否初始化 OpenSpec。项目名由参数给出,不提问。
|
|
159
|
+
|
|
160
|
+
**失败行为**:OpenSpec 装不上或初始化失败时,脚手架仍以退出码 0 结束,并打印一条指向手动命令的提示——报告失败不等于让脚手架失败。Superpowers 插件缺失时打印安装提示,不中断。
|
|
161
|
+
|
|
137
162
|
## 开发
|
|
138
163
|
|
|
139
164
|
```bash
|
|
140
165
|
npm install
|
|
141
|
-
npm run build
|
|
142
|
-
npm test
|
|
166
|
+
npm run build # tsc + 拷贝模板资产到 dist/
|
|
167
|
+
npm test # vitest run,含 tests/e2e/ 下的端到端用例
|
|
168
|
+
npm run lint # eslint,零告警
|
|
169
|
+
npx tsc --noEmit # 类型检查
|
|
143
170
|
```
|
|
144
171
|
|
|
145
|
-
|
|
172
|
+
生成设计模板预览页面(输出到 `docs/samples/`):
|
|
146
173
|
|
|
147
174
|
```bash
|
|
148
175
|
npm run samples
|
|
149
176
|
```
|
|
150
177
|
|
|
151
|
-
16
|
|
178
|
+
16 个内置模板各生成一个自包含 HTML 页面,展示色彩系统、字体阶梯、间距、圆角和组件预览。打开 `docs/samples/index.html` 查看全部模板。
|
|
179
|
+
|
|
180
|
+
方法论的权威定义在 `openspec/specs/`——每个 capability 一份 spec,描述可观察的行为契约。分发到目标项目的技能模板在 `src/templates/`,静态资产在 `src/<skill>/templates/`。
|
|
152
181
|
|
|
153
182
|
## License
|
|
154
183
|
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ const pkg = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'u
|
|
|
10
10
|
export const program = new Command();
|
|
11
11
|
program
|
|
12
12
|
.name('create-specfuse')
|
|
13
|
-
.description('SpecFuse — AI engineering pipeline scaffolder.\n\nInjects OpenSpec workflow + Superpowers discipline into any project.\nThink → Do → FuseReview → Verify, one command at a time.')
|
|
13
|
+
.description('SpecFuse — AI engineering pipeline scaffolder.\n\nInjects OpenSpec workflow + Superpowers discipline into any project.\nThink → Do → FuseReview → FuseQA → Verify, one command at a time.')
|
|
14
14
|
.version(pkg.version)
|
|
15
15
|
.argument('[project-name]', 'Target directory (omit or use "." to init in current directory)')
|
|
16
16
|
.option('-y, --yes', 'Non-interactive mode (use defaults, CI-friendly)')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC,2LAA2L,CAAC;KACxM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,QAAQ,CAAC,gBAAgB,EAAE,iEAAiE,CAAC;KAC7F,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,IAAuB,EAAE,EAAE;IACzE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,YAAa,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,4EAA4E;AAC5E,kFAAkF;AAClF,iFAAiF;AACjF,8EAA8E;AAC9E,SAAS,YAAY;IACnB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,YAAY,EAAE,EAAE,CAAC;IACnB,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
package/dist/scaffolder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqKhD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiOnE"}
|
package/dist/scaffolder.js
CHANGED
|
@@ -11,6 +11,7 @@ import { composeDesignMdSkill } from './templates/design-md-skill.js';
|
|
|
11
11
|
import { composeFuseReviewSkill } from './templates/fusereview-skill.js';
|
|
12
12
|
import { composeFuseQASkill } from './templates/fuseqa-skill.js';
|
|
13
13
|
import { composeFuseDocSkill } from './templates/fusedoc-skill.js';
|
|
14
|
+
import { composeSpecfuseCommand } from './templates/specfuse-command.js';
|
|
14
15
|
import { composeCLAUDEmd } from './templates/claude-md.js';
|
|
15
16
|
import { createDir, writeText, writeJSON, writeYAML } from './utils/fs.js';
|
|
16
17
|
import { gitInit, gitInitialCommit } from './utils/git.js';
|
|
@@ -213,6 +214,15 @@ export async function scaffold(config) {
|
|
|
213
214
|
await createDir(path.join(targetDir, '.claude', 'skills', 'fusedoc'));
|
|
214
215
|
await writeText(fusedocSkillPath, composeFuseDocSkill());
|
|
215
216
|
}
|
|
217
|
+
// /specfuse command
|
|
218
|
+
spinner.text = 'Writing .claude/commands/specfuse.md...';
|
|
219
|
+
const specfuseCommandPath = path.join(targetDir, '.claude', 'commands', 'specfuse.md');
|
|
220
|
+
// Existence, not content: a zero-byte file is still a user-owned file and
|
|
221
|
+
// must survive, exactly like a non-empty one.
|
|
222
|
+
if (!(await fileExists(specfuseCommandPath))) {
|
|
223
|
+
await createDir(path.join(targetDir, '.claude', 'commands'));
|
|
224
|
+
await writeText(specfuseCommandPath, composeSpecfuseCommand());
|
|
225
|
+
}
|
|
216
226
|
// Skill templates
|
|
217
227
|
spinner.text = 'Copying skill templates...';
|
|
218
228
|
await copyTemplateDir(path.join(import.meta.dirname, 'design-md', 'templates'), path.join(targetDir, '.claude', 'skills', 'design-md', 'templates'));
|
|
@@ -283,6 +293,7 @@ export async function scaffold(config) {
|
|
|
283
293
|
console.log(` .gitignore ${chalk.dim(tag('Shared ignore patterns'))}`);
|
|
284
294
|
console.log(` .claude/settings.local.json ${chalk.dim(tag('Permissions'))}`);
|
|
285
295
|
console.log(` .claude/skills/fusedoc/ ${chalk.dim('Documentation standard')}`);
|
|
296
|
+
console.log(` .claude/commands/specfuse.md ${chalk.dim('Unattended pipeline')}`);
|
|
286
297
|
if (config.initOpenspec) {
|
|
287
298
|
console.log(` openspec/config.yaml ${chalk.dim('Spec-driven config')}`);
|
|
288
299
|
}
|
package/dist/scaffolder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export declare function renderApplyPhase(): string;
|
|
|
3
3
|
export declare function renderApplyFuseReview(): string;
|
|
4
4
|
export declare function renderFuseQA(): string;
|
|
5
5
|
export declare function renderFuseDocStandard(): string;
|
|
6
|
+
export declare function renderAutoMode(): string;
|
|
6
7
|
export declare function renderVerifyPhase(): string;
|
|
7
8
|
export declare function composeCLAUDEmd(_ctx: TemplateContext): string;
|
|
8
9
|
//# sourceMappingURL=claude-md.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAyFnD,wBAAgB,gBAAgB,IAAI,MAAM,CA0DzC;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CA2B9C;AAED,wBAAgB,YAAY,IAAI,MAAM,CA+BrC;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAY9C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAiBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAyFnD,wBAAgB,gBAAgB,IAAI,MAAM,CA0DzC;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CA2B9C;AAED,wBAAgB,YAAY,IAAI,MAAM,CA+BrC;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAY9C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAwBvC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAiBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAsC7D"}
|
|
@@ -142,7 +142,7 @@ When \`/opsx:apply\` is invoked:
|
|
|
142
142
|
export function renderApplyFuseReview() {
|
|
143
143
|
return `### Phase 2.5: FuseReview Checkpoint (Post-Apply)
|
|
144
144
|
|
|
145
|
-
FuseReview is the
|
|
145
|
+
FuseReview is the post-apply review: Think reviews direction, Do produces code, **FuseReview reviews the implementation**, FuseQA verifies the artifact through real entry points, Verify validates the whole. The full review method lives in \`.claude/skills/fusereview/SKILL.md\`.
|
|
146
146
|
|
|
147
147
|
**Baseline:** At apply start, record the current HEAD commit in the change's state as the review baseline. The review object is \`baseline..HEAD\`. If no baseline was recorded, fall back to the merge-base of the current branch and the trunk, and annotate the fallback in the report.
|
|
148
148
|
|
|
@@ -170,7 +170,7 @@ FuseReview is the fourth beat: Think reviews direction, Do produces code, **Fuse
|
|
|
170
170
|
export function renderFuseQA() {
|
|
171
171
|
return `### Phase 2.6: FuseQA Checkpoint (Post-Apply E2E)
|
|
172
172
|
|
|
173
|
-
FuseQA is the
|
|
173
|
+
FuseQA is the post-apply verification: Think reviews direction, Do produces code, FuseReview reviews the implementation, **FuseQA verifies the artifact through real entry points**, Verify validates the whole. The full method lives in \`.claude/skills/fuseqa/SKILL.md\`.
|
|
174
174
|
|
|
175
175
|
**Why this beat exists:** unit tests cover source, FuseReview reads a diff without running anything, and the Verify phase runs the same unit suite. A defect can therefore pass every gate and still reach users — an entry-guard bug that works when the built file is called by its real path but does nothing when called through a symlinked bin shim passes typecheck, unit tests and cold-read review alike. Nobody runs the artifact as a user until this beat.
|
|
176
176
|
|
|
@@ -212,6 +212,31 @@ The standard lives at \`.claude/skills/fusedoc/SKILL.md\`. It governs three thin
|
|
|
212
212
|
|
|
213
213
|
Scope is required. An invocation naming no scope reports the missing input rather than inferring a repository-wide one.`;
|
|
214
214
|
}
|
|
215
|
+
export function renderAutoMode() {
|
|
216
|
+
return `### Auto Mode: /specfuse
|
|
217
|
+
|
|
218
|
+
\`/specfuse <requirement>\` runs the whole pipeline unattended. It is an entry point alongside Path A and Path B, and the rules below override the checkpoint questions for that invocation only. Interactive \`/opsx:*\` behavior is unchanged.
|
|
219
|
+
|
|
220
|
+
**Automatic decisions.** Do not call \`AskUserQuestion\` for any decision point. The model answers with the recommended option and records the decision with its rationale in the final report:
|
|
221
|
+
- **Brainstorming:** derive 2–3 alternatives with trade-offs, select the recommended one, and write the selection and rationale into \`design.md\`.
|
|
222
|
+
- **Design tokens:** when the three-gate test triggers \`/design-md\`, answer the questionnaire with recommended values; never overwrite an existing \`DESIGN-TOKENS.md\`.
|
|
223
|
+
- **Model switch:** record \`continue with current model\`; do not switch and do not ask.
|
|
224
|
+
- **FuseReview:** record \`auto: entered\` and run the review.
|
|
225
|
+
- **FuseQA:** record \`auto: declined\`; do not enter the beat.
|
|
226
|
+
- **Path B pace control:** generate all artifacts in one pass; do not stop between artifacts for review.
|
|
227
|
+
|
|
228
|
+
**Execution order.** Brainstorming decisions → proposal → specs → design → tasks → apply under \`test-driven-development\` and \`verification-before-completion\` → FuseReview → verify → archive. The command definition at \`.claude/commands/specfuse.md\` carries the full procedure.
|
|
229
|
+
|
|
230
|
+
**Exit sequence.** Auto mode enters FuseReview and skips FuseQA. The apply completion report still records both decisions — \`auto: entered\` and \`auto: declined\` — so the dual-record rule is satisfied without a question.
|
|
231
|
+
|
|
232
|
+
**Verify gates archive.** Archive only after \`/opsx:verify\`, the project's full test suite, and the project's linter pass. If any check still fails after best-effort repair, do not archive; keep the change directory and write each failure with its raw output into the final report.
|
|
233
|
+
|
|
234
|
+
**Worktree isolation.** When a worktree trigger condition is met, create and enter the worktree before writing any artifact, so the whole pipeline stays inside it. Never merge it back to the trunk; leave it in place for the user to inspect. If worktree creation fails, continue in the current working tree and record the fallback. Because auto mode does not commit, FuseReview reads the working-tree diff from the baseline, including untracked files. Subagent-driven development is not used under auto mode: its integration step requires a merge.
|
|
235
|
+
|
|
236
|
+
**Prohibitions.** Never run \`git commit\`, \`git push\`, or \`git merge\`. Auto mode does not waive TDD, verification evidence, or the documentation standard.
|
|
237
|
+
|
|
238
|
+
**Interactive rules unchanged.** The checkpoints in Phase 2, Phase 2.5, and Phase 2.6 still require their questions for \`/opsx:apply\`. Auto mode removes the question, not the decision record.`;
|
|
239
|
+
}
|
|
215
240
|
export function renderVerifyPhase() {
|
|
216
241
|
return `### Phase 3: Verify / Archive
|
|
217
242
|
|
|
@@ -255,6 +280,8 @@ export function composeCLAUDEmd(_ctx) {
|
|
|
255
280
|
"",
|
|
256
281
|
renderFuseDocStandard(),
|
|
257
282
|
"",
|
|
283
|
+
renderAutoMode(),
|
|
284
|
+
"",
|
|
258
285
|
renderPathA(),
|
|
259
286
|
"",
|
|
260
287
|
renderPathB(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAEA,SAAS,sBAAsB;IAC7B,OAAO;;iCAEwB,CAAC;AAClC,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;oJAa2I,CAAC;AACrJ,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;;;;;;;;;;;;;;;;+DAgBsD,CAAC;AAChE,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;4EAwBmE,CAAC;AAC7E,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;;;;;;;;;;;;qGAY4F,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAwDuC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;uHAyB8G,CAAC;AACxH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mHA6B0G,CAAC;AACpH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;wHAU+G,CAAC;AACzH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;;;;;;;;0MAQiM,CAAC;AAC3M,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;;;;;;;2EAOkE,CAAC;AAC5E,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,IAAqB;IACnD,MAAM,QAAQ,GAAG;QACf,qBAAqB;QACrB,EAAE;QACF,sBAAsB,EAAE;QACxB,EAAE;QACF,uBAAuB,EAAE;QACzB,EAAE;QACF,KAAK;QACL,EAAE;QACF,uBAAuB;QACvB,0DAA0D;QAC1D,EAAE;QACF,4EAA4E;QAC5E,sDAAsD;QACtD,EAAE;QACF,qBAAqB,EAAE;QACvB,EAAE;QACF,WAAW,EAAE;QACb,EAAE;QACF,WAAW,EAAE;QACb,EAAE;QACF,iBAAiB,EAAE;QACnB,EAAE;QACF,gBAAgB,EAAE;QAClB,EAAE;QACF,qBAAqB,EAAE;QACvB,EAAE;QACF,YAAY,EAAE;QACd,EAAE;QACF,iBAAiB,EAAE;QACnB,EAAE;QACF,kBAAkB,EAAE;QACpB,qBAAqB;KACtB,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAEA,SAAS,sBAAsB;IAC7B,OAAO;;iCAEwB,CAAC;AAClC,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;oJAa2I,CAAC;AACrJ,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;;;;;;;;;;;;;;;;+DAgBsD,CAAC;AAChE,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;4EAwBmE,CAAC;AAC7E,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;;;;;;;;;;;;qGAY4F,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAwDuC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;uHAyB8G,CAAC;AACxH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mHA6B0G,CAAC;AACpH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;wHAU+G,CAAC;AACzH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;kMAsByL,CAAC;AACnM,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO;;;;;;;;0MAQiM,CAAC;AAC3M,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;;;;;;;2EAOkE,CAAC;AAC5E,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,IAAqB;IACnD,MAAM,QAAQ,GAAG;QACf,qBAAqB;QACrB,EAAE;QACF,sBAAsB,EAAE;QACxB,EAAE;QACF,uBAAuB,EAAE;QACzB,EAAE;QACF,KAAK;QACL,EAAE;QACF,uBAAuB;QACvB,0DAA0D;QAC1D,EAAE;QACF,4EAA4E;QAC5E,sDAAsD;QACtD,EAAE;QACF,qBAAqB,EAAE;QACvB,EAAE;QACF,cAAc,EAAE;QAChB,EAAE;QACF,WAAW,EAAE;QACb,EAAE;QACF,WAAW,EAAE;QACb,EAAE;QACF,iBAAiB,EAAE;QACnB,EAAE;QACF,gBAAgB,EAAE;QAClB,EAAE;QACF,qBAAqB,EAAE;QACvB,EAAE;QACF,YAAY,EAAE;QACd,EAAE;QACF,iBAAiB,EAAE;QACnB,EAAE;QACF,kBAAkB,EAAE;QACpB,qBAAqB;KACtB,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACpC,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export function composeFuseQASkill(_ctx) {
|
|
2
2
|
return `---
|
|
3
3
|
name: fuseqa
|
|
4
|
-
description: Use when performing post-apply E2E verification (FuseQA
|
|
4
|
+
description: Use when performing post-apply E2E verification (FuseQA) — derives end-to-end cases for the current change from its specs and drives them through real user entry points against the built artifact; also runs when the user asks to "write e2e tests", "end-to-end tests", "QA acceptance", or to add test cases for a change.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# FuseQA — Post-Apply E2E Verification
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Think reviews direction, Do produces code, FuseReview reviews the implementation, **FuseQA verifies the artifact through real entry points**, Verify validates the whole.
|
|
10
10
|
|
|
11
11
|
This beat authors E2E cases for the current change and handles what those cases expose. It **does not execute the existing regression suite** — that belongs to the Verify phase full test run. A new case failing on first run is the TDD RED step, not a diagnosis stage.
|
|
12
12
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export function composeFuseReviewSkill(_ctx) {
|
|
2
2
|
return `---
|
|
3
3
|
name: fusereview
|
|
4
|
-
description: Use when performing the post-apply code review (FuseReview
|
|
4
|
+
description: Use when performing the post-apply code review (FuseReview) — reviews the accumulated diff of the current change with a fresh context; also runs when the user asks to "code review", "review the change", or audit the implementation quality of recent work.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# FuseReview — Post-Apply Code Review
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Think reviews direction, Do produces code, **FuseReview reviews the implementation**, FuseQA verifies the artifact through real entry points, Verify validates the whole. This skill is guidance, not a checklist: follow the code, keep judgment active, and prefer one substantiated blocker over a list of nits.
|
|
10
10
|
|
|
11
11
|
This skill is **self-contained**. The review method below is complete within this file; it does not route to documents that may not exist in this project.
|
|
12
12
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders the `/specfuse` slash command shipped into scaffolded projects.
|
|
3
|
+
*
|
|
4
|
+
* The command is prose, not a runtime: every ordering rule below is enforced
|
|
5
|
+
* only by the model reading it. Keep clauses exact — the tests assert the
|
|
6
|
+
* sentences that carry each requirement, because a looser paraphrase can drop
|
|
7
|
+
* a prohibition (for example, "archive after verify" without "only when every
|
|
8
|
+
* check passes") while every keyword still appears.
|
|
9
|
+
*/
|
|
10
|
+
export declare function composeSpecfuseCommand(): string;
|
|
11
|
+
//# sourceMappingURL=specfuse-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specfuse-command.d.ts","sourceRoot":"","sources":["../../src/templates/specfuse-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAoE/C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders the `/specfuse` slash command shipped into scaffolded projects.
|
|
3
|
+
*
|
|
4
|
+
* The command is prose, not a runtime: every ordering rule below is enforced
|
|
5
|
+
* only by the model reading it. Keep clauses exact — the tests assert the
|
|
6
|
+
* sentences that carry each requirement, because a looser paraphrase can drop
|
|
7
|
+
* a prohibition (for example, "archive after verify" without "only when every
|
|
8
|
+
* check passes") while every keyword still appears.
|
|
9
|
+
*/
|
|
10
|
+
export function composeSpecfuseCommand() {
|
|
11
|
+
return `---
|
|
12
|
+
description: Run the SpecFuse pipeline unattended, from brainstorming through archive
|
|
13
|
+
argument-hint: <requirement description>
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# /specfuse — unattended pipeline
|
|
17
|
+
|
|
18
|
+
Run the full SpecFuse pipeline for: $ARGUMENTS
|
|
19
|
+
|
|
20
|
+
If \`$ARGUMENTS\` is empty, print usage as \`/specfuse <requirement description>\` and stop. Do not create a change or generate an artifact. Do not ask a question.
|
|
21
|
+
|
|
22
|
+
## Automatic decisions
|
|
23
|
+
|
|
24
|
+
Do not call AskUserQuestion at any decision point. Answer each with the recommended option and record the decision in the final report.
|
|
25
|
+
|
|
26
|
+
- **Brainstorming:** derive 2–3 alternatives with trade-offs, select the recommended one, and write the selection and rationale into \`design.md\`.
|
|
27
|
+
- **Design tokens:** when the three-gate test triggers \`/design-md\`, answer the questionnaire with recommended values and generate \`DESIGN-TOKENS.md\`; never overwrite an existing \`DESIGN-TOKENS.md\`.
|
|
28
|
+
- **Model switch:** record \`continue with current model\`; do not switch and do not ask.
|
|
29
|
+
- **FuseReview:** record \`auto: entered\` and run the review.
|
|
30
|
+
- **FuseQA:** record \`auto: declined\`; do not enter the beat.
|
|
31
|
+
- **Pace control:** do not stop between artifacts for review.
|
|
32
|
+
|
|
33
|
+
## Execution order
|
|
34
|
+
|
|
35
|
+
### 0. Select the workspace
|
|
36
|
+
|
|
37
|
+
When a Git Worktree trigger condition is met, create and enter a dedicated worktree before writing anything, so every artifact stays inside it. If worktree creation fails, continue in the current working tree and record the fallback.
|
|
38
|
+
|
|
39
|
+
### 1. Create the change
|
|
40
|
+
|
|
41
|
+
Run \`openspec new change <kebab-case-name>\`. Record the current HEAD as the review baseline.
|
|
42
|
+
|
|
43
|
+
### 2. Generate the artifacts
|
|
44
|
+
|
|
45
|
+
Read \`openspec instructions <artifact-id> --change <name>\` for each artifact and write them in one pass, in this order: \`proposal.md\`, \`specs/\`, \`design.md\`, \`tasks.md\`. Artifact prose follows the FuseDoc standard at \`.claude/skills/fusedoc/SKILL.md\`.
|
|
46
|
+
|
|
47
|
+
### 3. Apply
|
|
48
|
+
|
|
49
|
+
Activate \`test-driven-development\` and \`verification-before-completion\`. For every task, write the failing test first, make it pass, then refactor. Before checking a task off, run the project's test command and paste the raw output as evidence. Do not dispatch implementation subagents: their worktrees would require a merge, which auto mode forbids.
|
|
50
|
+
|
|
51
|
+
### 4. FuseReview
|
|
52
|
+
|
|
53
|
+
Run the \`fusereview\` skill over the working-tree diff from the recorded baseline, including untracked files. Do not use \`baseline..HEAD\`: no commits are made. Fix Blocking findings test-first and re-review only the fix diff.
|
|
54
|
+
|
|
55
|
+
### 5. Verify
|
|
56
|
+
|
|
57
|
+
Run the verify phase with \`/opsx:verify <change>\`, then the project's full test suite and the project's linter. Paste the raw output for each. Structural validation alone does not check implementation against specs.
|
|
58
|
+
|
|
59
|
+
### 6. Archive
|
|
60
|
+
|
|
61
|
+
Archive only when every verify check passes: run \`openspec archive <change> --yes\`. If any check still fails after best-effort repair, do not archive; leave the change directory in place and write each failure with its raw output into the final report.
|
|
62
|
+
|
|
63
|
+
## Worktree isolation
|
|
64
|
+
|
|
65
|
+
When a Git Worktree trigger condition is met, the worktree is selected in step 0 and the entire pipeline runs inside it: artifacts, apply, FuseReview, verify, and archive. Never merge the worktree back to the trunk; leave it in place for the user to inspect. If worktree creation fails, continue in the current working tree and record the fallback. Because auto mode does not commit, FuseReview reads the working-tree diff from the baseline, including untracked files.
|
|
66
|
+
|
|
67
|
+
## Prohibitions
|
|
68
|
+
|
|
69
|
+
- Never run \`git commit\`, \`git push\`, or \`git merge\`.
|
|
70
|
+
- Never skip TDD or verification evidence.
|
|
71
|
+
- Never archive after a failing verify.
|
|
72
|
+
- Never leave an automatic decision out of the final report.
|
|
73
|
+
|
|
74
|
+
## Final report
|
|
75
|
+
|
|
76
|
+
State the change name and location, the artifacts written, the task count, verification output, the FuseReview decision (\`auto: entered\`), the FuseQA decision (\`auto: declined\`), the archive outcome, any worktree path, every automatic decision with its rationale, and that no commit and no push were performed.
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=specfuse-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specfuse-command.js","sourceRoot":"","sources":["../../src/templates/specfuse-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkER,CAAC;AACF,CAAC"}
|