create-specfuse 0.7.0 → 0.9.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 +55 -144
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -10
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +2 -2
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +3 -82
- package/dist/prompts.js.map +1 -1
- package/dist/scaffolder.d.ts.map +1 -1
- package/dist/scaffolder.js +7 -44
- package/dist/scaffolder.js.map +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +7 -23
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/templates/claude-settings.d.ts +1 -2
- package/dist/templates/claude-settings.d.ts.map +1 -1
- package/dist/templates/claude-settings.js +2 -2
- package/dist/templates/claude-settings.js.map +1 -1
- package/dist/templates/fusereview-skill.d.ts +1 -1
- package/dist/templates/fusereview-skill.d.ts.map +1 -1
- package/dist/templates/fusereview-skill.js +2 -10
- package/dist/templates/fusereview-skill.js.map +1 -1
- package/dist/templates/gitignore.d.ts +1 -2
- package/dist/templates/gitignore.d.ts.map +1 -1
- package/dist/templates/gitignore.js +2 -11
- package/dist/templates/gitignore.js.map +1 -1
- package/dist/templates/openspec-config.d.ts +1 -2
- package/dist/templates/openspec-config.d.ts.map +1 -1
- package/dist/templates/openspec-config.js +34 -3
- package/dist/templates/openspec-config.js.map +1 -1
- package/dist/types.d.ts +0 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/tools.d.ts +0 -3
- package/dist/utils/tools.d.ts.map +1 -1
- package/dist/utils/tools.js +25 -38
- package/dist/utils/tools.js.map +1 -1
- package/package.json +1 -1
- package/dist/stacks/bash.d.ts +0 -5
- package/dist/stacks/bash.d.ts.map +0 -1
- package/dist/stacks/bash.js +0 -66
- package/dist/stacks/bash.js.map +0 -1
- package/dist/stacks/cpp-cmake.d.ts +0 -5
- package/dist/stacks/cpp-cmake.d.ts.map +0 -1
- package/dist/stacks/cpp-cmake.js +0 -74
- package/dist/stacks/cpp-cmake.js.map +0 -1
- package/dist/stacks/detect.d.ts +0 -11
- package/dist/stacks/detect.d.ts.map +0 -1
- package/dist/stacks/detect.js +0 -104
- package/dist/stacks/detect.js.map +0 -1
- package/dist/stacks/dotnet.d.ts +0 -5
- package/dist/stacks/dotnet.d.ts.map +0 -1
- package/dist/stacks/dotnet.js +0 -68
- package/dist/stacks/dotnet.js.map +0 -1
- package/dist/stacks/elixir.d.ts +0 -5
- package/dist/stacks/elixir.d.ts.map +0 -1
- package/dist/stacks/elixir.js +0 -68
- package/dist/stacks/elixir.js.map +0 -1
- package/dist/stacks/go.d.ts +0 -5
- package/dist/stacks/go.d.ts.map +0 -1
- package/dist/stacks/go.js +0 -68
- package/dist/stacks/go.js.map +0 -1
- package/dist/stacks/index.d.ts +0 -7
- package/dist/stacks/index.d.ts.map +0 -1
- package/dist/stacks/index.js +0 -84
- package/dist/stacks/index.js.map +0 -1
- package/dist/stacks/java-gradle.d.ts +0 -5
- package/dist/stacks/java-gradle.d.ts.map +0 -1
- package/dist/stacks/java-gradle.js +0 -69
- package/dist/stacks/java-gradle.js.map +0 -1
- package/dist/stacks/java-maven.d.ts +0 -5
- package/dist/stacks/java-maven.d.ts.map +0 -1
- package/dist/stacks/java-maven.js +0 -67
- package/dist/stacks/java-maven.js.map +0 -1
- package/dist/stacks/kotlin.d.ts +0 -5
- package/dist/stacks/kotlin.d.ts.map +0 -1
- package/dist/stacks/kotlin.js +0 -69
- package/dist/stacks/kotlin.js.map +0 -1
- package/dist/stacks/php.d.ts +0 -5
- package/dist/stacks/php.d.ts.map +0 -1
- package/dist/stacks/php.js +0 -68
- package/dist/stacks/php.js.map +0 -1
- package/dist/stacks/python-fastapi.d.ts +0 -5
- package/dist/stacks/python-fastapi.d.ts.map +0 -1
- package/dist/stacks/python-fastapi.js +0 -75
- package/dist/stacks/python-fastapi.js.map +0 -1
- package/dist/stacks/ruby.d.ts +0 -5
- package/dist/stacks/ruby.d.ts.map +0 -1
- package/dist/stacks/ruby.js +0 -69
- package/dist/stacks/ruby.js.map +0 -1
- package/dist/stacks/rust.d.ts +0 -5
- package/dist/stacks/rust.d.ts.map +0 -1
- package/dist/stacks/rust.js +0 -65
- package/dist/stacks/rust.js.map +0 -1
- package/dist/stacks/scala-sbt.d.ts +0 -5
- package/dist/stacks/scala-sbt.d.ts.map +0 -1
- package/dist/stacks/scala-sbt.js +0 -68
- package/dist/stacks/scala-sbt.js.map +0 -1
- package/dist/stacks/schema.d.ts +0 -91
- package/dist/stacks/schema.d.ts.map +0 -1
- package/dist/stacks/schema.js +0 -23
- package/dist/stacks/schema.js.map +0 -1
- package/dist/stacks/swift.d.ts +0 -5
- package/dist/stacks/swift.d.ts.map +0 -1
- package/dist/stacks/swift.js +0 -69
- package/dist/stacks/swift.js.map +0 -1
- package/dist/stacks/typescript-react.d.ts +0 -5
- package/dist/stacks/typescript-react.d.ts.map +0 -1
- package/dist/stacks/typescript-react.js +0 -73
- package/dist/stacks/typescript-react.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,204 +1,117 @@
|
|
|
1
1
|
# SpecFuse
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> 把 AI 编码从即兴发挥,改造成工程流水线。
|
|
4
4
|
|
|
5
|
-
SpecFuse
|
|
5
|
+
SpecFuse 不发明新工具。它把 OpenSpec(流程引擎)和 Superpowers(行为约束)编排成一条 **Think → Do → FuseReview → Verify** 四拍流水线,一条命令注入任何项目——它不产生新能力,它约束产出可靠性。
|
|
6
6
|
|
|
7
7
|
## 快速开始
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm create specfuse@latest
|
|
10
|
+
npm create specfuse@latest # 交互式引导(需 Node >= 18,推荐 nvm)
|
|
11
|
+
npm create specfuse@latest my-app -- --yes # 非交互,CI 友好
|
|
12
|
+
cd existing-project && npm create specfuse@latest . # 已有项目就地初始化
|
|
11
13
|
```
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
两个可选组件。不装也能用——生成的 `CLAUDE.md` 依然生效,只是缺一半能力:
|
|
14
16
|
|
|
15
17
|
```bash
|
|
16
|
-
#
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
# 指定技术栈,跳过交互
|
|
20
|
-
npm create specfuse@latest my-app -- --stack rust --yes
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### 前置依赖
|
|
24
|
-
|
|
25
|
-
- **Node.js >= 18**(推荐通过 [nvm](https://github.com/nvm-sh/nvm) 安装)
|
|
26
|
-
|
|
27
|
-
### 可选组件
|
|
28
|
-
|
|
29
|
-
SpecFuse 生成的工作流依赖以下组件实现完整能力,但它们不是硬依赖:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# OpenSpec CLI — 流程引擎
|
|
33
|
-
npm install -g @fission-ai/openspec
|
|
34
|
-
|
|
35
|
-
# Superpowers — Claude Code 行为约束插件(在 Claude Code 内执行)
|
|
36
|
-
/plugins add obra/superpowers
|
|
18
|
+
npm install -g @fission-ai/openspec # 流程引擎;装好后自动注册 /opsx:* 命令
|
|
19
|
+
/plugins add obra/superpowers # 行为约束插件(在 Claude Code 内执行)
|
|
37
20
|
```
|
|
38
21
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
---
|
|
22
|
+
## 生成物
|
|
42
23
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
运行后在目标目录生成:
|
|
24
|
+
装完得到四样东西:
|
|
46
25
|
|
|
47
26
|
```
|
|
48
27
|
my-app/
|
|
49
|
-
├── CLAUDE.md #
|
|
50
|
-
├── .gitignore #
|
|
28
|
+
├── CLAUDE.md # 流水线调度协议(四拍规则全文)
|
|
29
|
+
├── .gitignore # 共享忽略规则
|
|
51
30
|
├── .claude/
|
|
52
31
|
│ ├── settings.local.json # 权限白名单
|
|
53
32
|
│ └── skills/
|
|
54
33
|
│ ├── design-md/ # 设计令牌生成技能
|
|
55
34
|
│ └── fusereview/ # 实施后代码评审技能
|
|
56
35
|
└── openspec/
|
|
57
|
-
├── config.yaml #
|
|
58
|
-
├── specs/
|
|
59
|
-
└── changes/
|
|
60
|
-
└── archive/
|
|
36
|
+
├── config.yaml # spec 规则(流程约束)
|
|
37
|
+
├── specs/ # 主规格
|
|
38
|
+
└── changes/archive/ # 变更档案
|
|
61
39
|
```
|
|
62
40
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
如果检测到已安装 `@fission-ai/openspec`,还会自动注册 OpenSpec 技能和 `/opsx:*` 命令。
|
|
41
|
+
项目目录会自动加入 Claude Code 信任列表。
|
|
66
42
|
|
|
67
43
|
### Design Tokens(前端项目)
|
|
68
44
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
也可手动调用 `/design-md` 为已有项目生成设计令牌。
|
|
72
|
-
|
|
73
|
-
---
|
|
45
|
+
涉 UI/前端的项目,Think 阶段会触发 `/design-md` 技能生成 `DESIGN-TOKENS.md`,定义色彩、字体、间距、圆角等设计变量。也可手动 `/design-md` 为已有项目生成。
|
|
74
46
|
|
|
75
47
|
## 四拍流水线
|
|
76
48
|
|
|
77
|
-
|
|
49
|
+
在项目中启动 Claude Code,按这套节奏开发:
|
|
78
50
|
|
|
79
51
|
```
|
|
80
|
-
Think /opsx:new 或 /opsx:propose
|
|
81
|
-
|
|
82
|
-
|
|
52
|
+
Think /opsx:new 或 /opsx:propose —— 方案设计与制品生成
|
|
53
|
+
Do /opsx:apply —— TDD 实施
|
|
54
|
+
FuseReview apply 收尾检查点 —— 冷读评审
|
|
55
|
+
Verify /opsx:verify → /opsx:archive —— 全量验收与归档
|
|
56
|
+
```
|
|
83
57
|
|
|
84
|
-
|
|
85
|
-
↓ 严格 TDD:写失败测试 → 最小实现 → 粘贴证据
|
|
86
|
-
↓ 每个任务完成前必须有终端输出作为证据
|
|
58
|
+
### Think
|
|
87
59
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
↓ blocking 发现走 TDD 修复,跳过留痕
|
|
60
|
+
- `/opsx:propose`(Path A)一次生成全部制品;`/opsx:new` + `/opsx:continue`(Path B)一次一个制品、逐步确认。
|
|
61
|
+
- 苏格拉底式一次一问,2-3 个方案对比,强制声明 Non-goals、Trade-offs、Verification strategy。
|
|
91
62
|
|
|
92
|
-
|
|
93
|
-
↓ 全量测试 + lint 零警告 → 归档
|
|
94
|
-
```
|
|
63
|
+
### Do
|
|
95
64
|
|
|
96
|
-
|
|
65
|
+
- 进入实施前有模型切换检查点。
|
|
66
|
+
- 逐任务红绿循环,严格遵守 TDD。
|
|
67
|
+
- **铁律:`NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE`** —— 每个任务完成前必须粘贴终端原始输出作为证据。
|
|
97
68
|
|
|
98
|
-
|
|
99
|
-
|------|----------|
|
|
100
|
-
| Think | 一次一问,2-3 种方案对比,Non-goals + Trade-offs |
|
|
101
|
-
| Do | Red-Green-Refactor,禁止跳过测试 |
|
|
102
|
-
| FuseReview | apply 完成后必须询问是否评审;跳过必须留痕;修复只复审修复 diff |
|
|
103
|
-
| Verify | 必须粘贴终端原始输出,不接受"应该能跑" |
|
|
69
|
+
### FuseReview
|
|
104
70
|
|
|
105
|
-
|
|
71
|
+
- apply 完成后必须询问是否评审(禁止静默跳过);呈报任务数、涉及模块等事实,由你决定是否执行。
|
|
72
|
+
- 评审以冷读方式审查 `基线..HEAD` 的累积 diff(评审者不参与实现)。
|
|
73
|
+
- Blocking 发现走 TDD 修复;修复后只复审修复 diff,不进行第二轮全量评审。
|
|
74
|
+
- 跳过评审必须记录在收尾报告中留痕。
|
|
106
75
|
|
|
107
|
-
|
|
76
|
+
### Verify
|
|
108
77
|
|
|
109
|
-
|
|
110
|
-
cd existing-project
|
|
111
|
-
npm create specfuse@latest .
|
|
112
|
-
```
|
|
78
|
+
- `/opsx:verify` 逐条对照 specs 验证实现;`/opsx:archive` 前运行全量测试 + lint 零警告,粘贴原始输出。
|
|
113
79
|
|
|
114
|
-
|
|
80
|
+
## 已有项目:能不动就不动
|
|
81
|
+
|
|
82
|
+
`npm create specfuse@latest .` 的合并策略逐文件保守:
|
|
115
83
|
|
|
116
84
|
| 文件 | 行为 |
|
|
117
85
|
|------|------|
|
|
118
|
-
| `CLAUDE.md` | 有 `<!-- FUSION:START/END -->` 标记 →
|
|
86
|
+
| `CLAUDE.md` | 有 `<!-- FUSION:START/END -->` 标记 → 只替换标记内段落;无标记 → 追加 |
|
|
119
87
|
| `.gitignore` | 追加缺失模式,不重复 |
|
|
120
88
|
| `.claude/settings.local.json` | 合并权限列表 |
|
|
121
89
|
| `openspec/config.yaml` | 已存在 → 跳过 |
|
|
122
90
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
## 内置技术栈
|
|
126
|
-
|
|
127
|
-
| 栈 | ID | 构建 | 测试 | Lint |
|
|
128
|
-
|---|---|---|---|---|
|
|
129
|
-
| Rust | `rust` | `cargo build` | `cargo test` | `cargo clippy -- -D warnings` |
|
|
130
|
-
| Go | `go` | `go build ./...` | `go test ./...` | `golangci-lint run` |
|
|
131
|
-
| TypeScript + React | `typescript-react` | `npm run build` | `npx vitest run` | `npx eslint .` |
|
|
132
|
-
| Python + FastAPI | `python-fastapi` | `pip install -e .` | `pytest tests/ -v` | `ruff check .` |
|
|
133
|
-
| Java (Maven) | `java-maven` | `mvn package` | `mvn test` | `mvn checkstyle:check` |
|
|
134
|
-
| Java (Gradle) | `java-gradle` | `./gradlew build` | `./gradlew test` | `./gradlew checkstyleMain` |
|
|
135
|
-
| C++ (CMake) | `cpp-cmake` | `cmake --build build` | `ctest --test-dir build` | `clang-tidy` |
|
|
136
|
-
| Ruby | `ruby` | — | `bundle exec rspec` | `bundle exec rubocop` |
|
|
137
|
-
| PHP | `php` | `composer install` | `./vendor/bin/phpunit` | `./vendor/bin/phpstan` |
|
|
138
|
-
| Kotlin | `kotlin` | `./gradlew build` | `./gradlew test` | `./gradlew ktlintCheck` |
|
|
139
|
-
| Swift | `swift` | `swift build` | `swift test` | `swiftlint` |
|
|
140
|
-
| Elixir | `elixir` | `mix compile` | `mix test` | `mix credo` |
|
|
141
|
-
| Scala (sbt) | `scala-sbt` | `sbt compile` | `sbt test` | `sbt scalafmtCheck` |
|
|
142
|
-
| .NET | `dotnet` | `dotnet build` | `dotnet test` | `dotnet format --verify-no-changes` |
|
|
143
|
-
| Bash | `bash` | — | `bats tests/` | `shellcheck **/*.sh` |
|
|
144
|
-
|
|
145
|
-
### 自定义栈
|
|
146
|
-
|
|
147
|
-
创建 YAML 文件定义你的栈:
|
|
148
|
-
|
|
149
|
-
```yaml
|
|
150
|
-
id: java-spring
|
|
151
|
-
label: "Java + Spring Boot"
|
|
152
|
-
languages: [Java]
|
|
153
|
-
framework: Spring Boot
|
|
154
|
-
architecture: Layered (Controller → Service → Repository)
|
|
155
|
-
commands:
|
|
156
|
-
build: ./gradlew build
|
|
157
|
-
test: ./gradlew test
|
|
158
|
-
lint: ./gradlew checkstyleMain
|
|
159
|
-
format: ./gradlew spotlessApply
|
|
160
|
-
permissions:
|
|
161
|
-
- "Bash(./gradlew *)"
|
|
162
|
-
gitignorePatterns:
|
|
163
|
-
- "/build/"
|
|
164
|
-
- "/.gradle/"
|
|
165
|
-
```
|
|
91
|
+
删除 `CLAUDE.md` 里的 FUSION 块,项目即回到无调度状态——整套编排零侵入、可逆。
|
|
166
92
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
93
|
+
## 不问技术栈
|
|
94
|
+
|
|
95
|
+
SpecFuse 是流程,不是栈选择器。Think → Do → FuseReview → Verify 对 Rust、React 或一个裸脚本完全一致,所以初始化时不会问你用什么栈,也不生成栈特化内容:
|
|
96
|
+
|
|
97
|
+
- `CLAUDE.md` 不含 Tech Stack 段落,验证指令写作「项目的测试命令」「项目的 linter」——由项目自己的工具链定义。
|
|
98
|
+
- `.gitignore` 只给 IDE / OS / env / 日志这些共享模式,构建产物模式留给首次提交时判断。
|
|
99
|
+
- `.claude/settings.local.json` 只给 git / openspec / 检索这些共享权限。
|
|
100
|
+
- `openspec/config.yaml` 只给方法论不变量(Non-goals、Trade-offs、依赖图、可独立测试的 spec、TDD 任务顺序)。
|
|
170
101
|
|
|
171
|
-
|
|
102
|
+
栈是项目自己的文件已经声明的事实,SpecFuse 没什么可补充的。
|
|
172
103
|
|
|
173
104
|
## CLI 参考
|
|
174
105
|
|
|
175
106
|
```
|
|
176
107
|
Usage: create-specfuse [options] [project-name]
|
|
177
108
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
--stack <id> 指定内置技术栈
|
|
183
|
-
--stack-from <path> 加载自定义栈配置(YAML/JSON)
|
|
184
|
-
-y, --yes 非交互模式(CI 友好)
|
|
185
|
-
-V, --version 显示版本号
|
|
186
|
-
-h, --help 显示帮助
|
|
109
|
+
project-name 目标目录(省略或 "." 表示当前目录)
|
|
110
|
+
-y, --yes 非交互模式
|
|
111
|
+
-V, --version 版本号
|
|
112
|
+
-h, --help 帮助
|
|
187
113
|
```
|
|
188
114
|
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## 为什么需要编排
|
|
192
|
-
|
|
193
|
-
你手里可能已经有 OpenSpec、Superpowers——但谁来记住"现在该激活什么"?
|
|
194
|
-
|
|
195
|
-
- **你来记** → 你会忘。第三个小需求时你会想"太简单了不需要 brainstorm",然后写到一半发现方向错了。
|
|
196
|
-
- **流水线来记** → 每个命令背后自动调度对应能力。调用"开始实施",TDD 铁律就自动生效。
|
|
197
|
-
|
|
198
|
-
这就是融合和组合的区别:组合是你有三个好工具,融合是一条流水线让工具在正确时刻自动接力。
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
115
|
## 开发
|
|
203
116
|
|
|
204
117
|
```bash
|
|
@@ -215,8 +128,6 @@ npm run samples
|
|
|
215
128
|
|
|
216
129
|
16 个内置模版各生成一个自包含 HTML 页面,展示色彩系统、字体阶梯、间距、圆角和组件预览。打开 `docs/samples/index.html` 查看全部模版。
|
|
217
130
|
|
|
218
|
-
新增栈模板:在 `src/stacks/` 下创建文件并注册到 `src/stacks/index.ts`。
|
|
219
|
-
|
|
220
131
|
## License
|
|
221
132
|
|
|
222
133
|
MIT
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,25 +5,18 @@ import { fileURLToPath } from 'node:url';
|
|
|
5
5
|
import { dirname, resolve } from 'node:path';
|
|
6
6
|
import { collectProjectConfig } from './prompts.js';
|
|
7
7
|
import { scaffold } from './scaffolder.js';
|
|
8
|
-
import { loadCustomStack } from './stacks/index.js';
|
|
9
8
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
9
|
const pkg = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf-8'));
|
|
11
|
-
const program = new Command();
|
|
10
|
+
export const program = new Command();
|
|
12
11
|
program
|
|
13
12
|
.name('create-specfuse')
|
|
14
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.')
|
|
15
14
|
.version(pkg.version)
|
|
16
15
|
.argument('[project-name]', 'Target directory (omit or use "." to init in current directory)')
|
|
17
|
-
.option('--stack <id>', 'Built-in stack: rust, go, typescript-react, python-fastapi, bash, java-maven, java-gradle, cpp-cmake, ruby, php, kotlin, swift, elixir, scala-sbt, dotnet')
|
|
18
|
-
.option('--stack-from <path>', 'Custom stack profile (YAML/JSON)')
|
|
19
16
|
.option('-y, --yes', 'Non-interactive mode (use defaults, CI-friendly)')
|
|
20
17
|
.action(async (projectName, opts) => {
|
|
21
18
|
try {
|
|
22
|
-
|
|
23
|
-
if (opts.stackFrom) {
|
|
24
|
-
customStack = await loadCustomStack(opts.stackFrom);
|
|
25
|
-
}
|
|
26
|
-
const config = await collectProjectConfig(projectName, opts.stack, customStack, opts.yes);
|
|
19
|
+
const config = await collectProjectConfig(projectName, opts.yes);
|
|
27
20
|
await scaffold(config);
|
|
28
21
|
}
|
|
29
22
|
catch (err) {
|
|
@@ -31,5 +24,9 @@ program
|
|
|
31
24
|
process.exit(1);
|
|
32
25
|
}
|
|
33
26
|
});
|
|
34
|
-
program
|
|
27
|
+
// Only parse when run as the CLI entrypoint, so tests can import `program`.
|
|
28
|
+
const isMain = process.argv[1] && fileURLToPath(import.meta.url) === resolve(process.argv[1]);
|
|
29
|
+
if (isMain) {
|
|
30
|
+
program.parse();
|
|
31
|
+
}
|
|
35
32
|
//# sourceMappingURL=index.js.map
|
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,MAAM,SAAS,CAAC;AACvC,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;
|
|
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,MAAM,SAAS,CAAC;AACvC,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,kLAAkL,CAAC;KAC/L,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,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,IAAI,MAAM,EAAE,CAAC;IACX,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
|
package/dist/prompts.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function collectProjectConfig(projectNameArg?: string,
|
|
1
|
+
import type { ProjectConfig } from './types.js';
|
|
2
|
+
export declare function collectProjectConfig(projectNameArg?: string, skipPrompts?: boolean): Promise<ProjectConfig>;
|
|
3
3
|
//# sourceMappingURL=prompts.d.ts.map
|
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAsB,oBAAoB,CACxC,cAAc,CAAC,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,aAAa,CAAC,CAwBxB"}
|
package/dist/prompts.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { detectStacks } from './stacks/detect.js';
|
|
5
|
-
export async function collectProjectConfig(projectNameArg, stackArg, customStack, skipPrompts) {
|
|
2
|
+
import { confirm } from '@inquirer/prompts';
|
|
3
|
+
export async function collectProjectConfig(projectNameArg, skipPrompts) {
|
|
6
4
|
const isExisting = projectNameArg === undefined || projectNameArg === '.';
|
|
7
5
|
let projectName;
|
|
8
6
|
let targetDir;
|
|
@@ -17,87 +15,10 @@ export async function collectProjectConfig(projectNameArg, stackArg, customStack
|
|
|
17
15
|
}
|
|
18
16
|
targetDir = path.join(process.cwd(), projectName);
|
|
19
17
|
}
|
|
20
|
-
let stack;
|
|
21
|
-
if (customStack) {
|
|
22
|
-
stack = customStack;
|
|
23
|
-
}
|
|
24
|
-
else if (stackArg) {
|
|
25
|
-
const found = getBuiltinStacks().find((s) => s.id === stackArg);
|
|
26
|
-
if (!found) {
|
|
27
|
-
const ids = getBuiltinStacks().map((s) => s.id).join(', ');
|
|
28
|
-
throw new Error(`Unknown stack "${stackArg}". Available: ${ids}`);
|
|
29
|
-
}
|
|
30
|
-
stack = found;
|
|
31
|
-
}
|
|
32
|
-
else if (skipPrompts) {
|
|
33
|
-
throw new Error('--stack is required with --yes');
|
|
34
|
-
}
|
|
35
|
-
else if (isExisting) {
|
|
36
|
-
stack = await detectAndSelect(targetDir);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
stack = await promptFullStackList();
|
|
40
|
-
}
|
|
41
18
|
const initGit = isExisting
|
|
42
19
|
? false
|
|
43
20
|
: (skipPrompts ? true : await confirm({ message: 'Initialize git repository?', default: true }));
|
|
44
21
|
const initOpenspec = skipPrompts ? true : await confirm({ message: 'Initialize OpenSpec?', default: true });
|
|
45
|
-
|
|
46
|
-
return { projectName, stack, initGit, initOpenspec, initCodegraph, targetDir, isExisting };
|
|
47
|
-
}
|
|
48
|
-
async function detectAndSelect(targetDir) {
|
|
49
|
-
const detected = await detectStacks(targetDir);
|
|
50
|
-
const stacks = getBuiltinStacks();
|
|
51
|
-
if (detected.length === 1) {
|
|
52
|
-
const found = stacks.find((s) => s.id === detected[0]);
|
|
53
|
-
if (found) {
|
|
54
|
-
const useDetected = await confirm({ message: `Detected stack: ${found.label}. Use it?`, default: true });
|
|
55
|
-
if (useDetected)
|
|
56
|
-
return found;
|
|
57
|
-
return promptFullStackList();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (detected.length > 1) {
|
|
61
|
-
const detectedStacks = detected
|
|
62
|
-
.map((id) => stacks.find((s) => s.id === id))
|
|
63
|
-
.filter((s) => !!s);
|
|
64
|
-
const choices = [
|
|
65
|
-
...detectedStacks.map((s) => ({ name: `${s.label} (detected)`, value: s.id })),
|
|
66
|
-
{ name: 'Other...', value: '__other__' },
|
|
67
|
-
];
|
|
68
|
-
const stackId = await select({ message: 'Detected multiple stacks. Select primary:', choices });
|
|
69
|
-
if (stackId === '__other__') {
|
|
70
|
-
return promptFullStackList();
|
|
71
|
-
}
|
|
72
|
-
return stacks.find((s) => s.id === stackId);
|
|
73
|
-
}
|
|
74
|
-
return promptFullStackList();
|
|
75
|
-
}
|
|
76
|
-
async function promptFullStackList() {
|
|
77
|
-
const stacks = getBuiltinStacks();
|
|
78
|
-
const choices = [
|
|
79
|
-
{ name: 'Skip (decide later)', value: '__skip__' },
|
|
80
|
-
...stacks.map((s) => ({ name: s.label, value: s.id })),
|
|
81
|
-
];
|
|
82
|
-
const stackId = await select({
|
|
83
|
-
message: 'Tech stack:',
|
|
84
|
-
choices,
|
|
85
|
-
});
|
|
86
|
-
if (stackId === '__skip__') {
|
|
87
|
-
return {
|
|
88
|
-
id: 'generic',
|
|
89
|
-
label: 'Generic',
|
|
90
|
-
languages: [],
|
|
91
|
-
architecture: 'Not specified',
|
|
92
|
-
commands: { build: 'echo "no build configured"', test: 'echo "no test configured"', lint: 'echo "no lint configured"' },
|
|
93
|
-
errorHandling: 'Not specified',
|
|
94
|
-
concurrency: 'Not specified',
|
|
95
|
-
permissions: [],
|
|
96
|
-
gitignorePatterns: [],
|
|
97
|
-
openspecContext: 'Tech stack not yet configured. Set up later with create-specfuse --stack <id>',
|
|
98
|
-
openspecRules: {},
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
return stacks.find((s) => s.id === stackId);
|
|
22
|
+
return { projectName, initGit, initOpenspec, targetDir, isExisting };
|
|
102
23
|
}
|
|
103
24
|
//# sourceMappingURL=prompts.js.map
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,cAAuB,EACvB,WAAqB;IAErB,MAAM,UAAU,GAAG,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,GAAG,CAAC;IAE1E,IAAI,WAAmB,CAAC;IACxB,IAAI,SAAiB,CAAC;IAEtB,IAAI,UAAU,EAAE,CAAC;QACf,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,cAAc,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QACD,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnG,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5G,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACvE,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;AA0FhD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA0FhD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgKnE"}
|
package/dist/scaffolder.js
CHANGED
|
@@ -12,7 +12,7 @@ import { composeFuseReviewSkill } from './templates/fusereview-skill.js';
|
|
|
12
12
|
import { composeCLAUDEmd } from './templates/claude-md.js';
|
|
13
13
|
import { createDir, writeText, writeJSON, writeYAML } from './utils/fs.js';
|
|
14
14
|
import { gitInit, gitInitialCommit } from './utils/git.js';
|
|
15
|
-
import {
|
|
15
|
+
import { detectOpenspec, installOpenspec, initOpenspec } from './utils/tools.js';
|
|
16
16
|
function hasSuperpowersPlugin() {
|
|
17
17
|
const pluginsPath = path.join(process.env.HOME || '', '.claude', 'plugins', 'installed_plugins.json');
|
|
18
18
|
if (!existsSync(pluginsPath))
|
|
@@ -90,8 +90,8 @@ function mergeClaudeSettings(existing, generated) {
|
|
|
90
90
|
return { ...existing, permissions: { ...existing?.permissions, allow: merged } };
|
|
91
91
|
}
|
|
92
92
|
export async function scaffold(config) {
|
|
93
|
-
const { targetDir,
|
|
94
|
-
const ctx = { projectName
|
|
93
|
+
const { targetDir, projectName, isExisting } = config;
|
|
94
|
+
const ctx = { projectName };
|
|
95
95
|
if (!isExisting && await fileExists(targetDir)) {
|
|
96
96
|
throw new Error(`Directory "${targetDir}" already exists. Omit project name to init in current directory.`);
|
|
97
97
|
}
|
|
@@ -101,7 +101,7 @@ export async function scaffold(config) {
|
|
|
101
101
|
spinner.text = 'Writing .gitignore...';
|
|
102
102
|
const gitignorePath = path.join(targetDir, '.gitignore');
|
|
103
103
|
const existingGitignore = await readTextSafe(gitignorePath);
|
|
104
|
-
const generatedGitignore = composeGitignore(
|
|
104
|
+
const generatedGitignore = composeGitignore();
|
|
105
105
|
if (existingGitignore) {
|
|
106
106
|
await writeText(gitignorePath, mergeGitignore(existingGitignore, generatedGitignore));
|
|
107
107
|
}
|
|
@@ -123,7 +123,7 @@ export async function scaffold(config) {
|
|
|
123
123
|
spinner.text = 'Writing .claude/settings.local.json...';
|
|
124
124
|
const settingsPath = path.join(targetDir, '.claude', 'settings.local.json');
|
|
125
125
|
const existingSettings = await readTextSafe(settingsPath);
|
|
126
|
-
const generatedSettings = composeClaudeSettings(
|
|
126
|
+
const generatedSettings = composeClaudeSettings();
|
|
127
127
|
if (existingSettings) {
|
|
128
128
|
try {
|
|
129
129
|
const parsed = JSON.parse(existingSettings);
|
|
@@ -172,7 +172,7 @@ export async function scaffold(config) {
|
|
|
172
172
|
spinner.text = 'OpenSpec config.yaml already exists, skipping...';
|
|
173
173
|
}
|
|
174
174
|
else {
|
|
175
|
-
await writeYAML(configYamlPath, composeOpenspecConfig(
|
|
175
|
+
await writeYAML(configYamlPath, composeOpenspecConfig());
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
// Git
|
|
@@ -205,33 +205,6 @@ export async function scaffold(config) {
|
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
|
-
// CodeGraph
|
|
209
|
-
if (config.initCodegraph) {
|
|
210
|
-
spinner.text = 'Setting up CodeGraph...';
|
|
211
|
-
const hasCodegraph = await detectCodegraph();
|
|
212
|
-
if (hasCodegraph) {
|
|
213
|
-
const ok = await initCodegraph(targetDir);
|
|
214
|
-
if (ok) {
|
|
215
|
-
spinner.text = 'CodeGraph initialized.';
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
spinner.warn('CodeGraph init failed. Run manually: codegraph init -i && codegraph install');
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
spinner.text = 'Installing CodeGraph...';
|
|
223
|
-
const installed = await installCodegraph();
|
|
224
|
-
if (installed) {
|
|
225
|
-
const ok = await initCodegraph(targetDir);
|
|
226
|
-
if (!ok) {
|
|
227
|
-
spinner.warn('CodeGraph installed but init failed. Run manually: codegraph init -i && codegraph install');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
spinner.warn('CodeGraph installation failed. Install manually:\n curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh\n Then run: codegraph init -i && codegraph install');
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
208
|
// Trust the project directory so .claude/settings.local.json permissions take effect
|
|
236
209
|
try {
|
|
237
210
|
await trustDirectory(path.resolve(targetDir));
|
|
@@ -244,7 +217,7 @@ export async function scaffold(config) {
|
|
|
244
217
|
console.log(chalk.bold(` ${projectName}/`));
|
|
245
218
|
const tag = (label) => isExisting ? `${label} ${chalk.yellow('(merged)')}` : label;
|
|
246
219
|
console.log(` CLAUDE.md ${chalk.dim(tag('Bridge declaration'))}`);
|
|
247
|
-
console.log(` .gitignore ${chalk.dim(tag(
|
|
220
|
+
console.log(` .gitignore ${chalk.dim(tag('Shared ignore patterns'))}`);
|
|
248
221
|
console.log(` .claude/settings.local.json ${chalk.dim(tag('Permissions'))}`);
|
|
249
222
|
if (config.initOpenspec) {
|
|
250
223
|
console.log(` openspec/config.yaml ${chalk.dim('Spec-driven config')}`);
|
|
@@ -255,16 +228,6 @@ export async function scaffold(config) {
|
|
|
255
228
|
console.log(` cd ${projectName}`);
|
|
256
229
|
console.log(' claude');
|
|
257
230
|
console.log(' /opsx:propose # start your first change');
|
|
258
|
-
if (config.initCodegraph) {
|
|
259
|
-
const localBin = path.join(process.env.HOME || '', '.local', 'bin');
|
|
260
|
-
const inPath = (process.env.PATH || '').split(':').includes(localBin);
|
|
261
|
-
if (!inPath) {
|
|
262
|
-
console.log('');
|
|
263
|
-
console.log(chalk.yellow(' Note: ~/.local/bin is not in your PATH.'));
|
|
264
|
-
console.log(chalk.dim(' Add it to use codegraph directly:'));
|
|
265
|
-
console.log(chalk.dim(' echo \'export PATH="$HOME/.local/bin:$PATH"\' >> ~/.bashrc && source ~/.bashrc'));
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
231
|
if (!hasSuperpowersPlugin()) {
|
|
269
232
|
console.log('');
|
|
270
233
|
console.log(chalk.yellow(' Note: Superpowers plugin not detected.'));
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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;AAiJnD,wBAAgB,qBAAqB,IAAI,MAAM,CAuB9C;AAuBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAgC5D"}
|