@jennie-shawn/starwork 0.1.0-alpha.3 → 0.1.0-alpha.6
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/cli/README.md +8 -1
- package/cli/doctor-spec.md +70 -4
- package/cli/src/cli.js +781 -7
- package/cli/test/init.test.js +223 -0
- package/cli/upgrade-spec.md +487 -0
- package/docs/README.md +1 -0
- package/docs/doctor-capabilities.html +626 -0
- package/docs/index.html +1 -0
- package/docs/roadmap.html +3 -3
- package/docs/roadmap.md +6 -6
- package/docs/v0.1-plan.md +1 -1
- package/package.json +1 -1
- package/skills/README.md +2 -0
- package/skills/starworkDoctor/SKILL.md +172 -0
- package/skills/starworkDoctor/agents/openai.yaml +7 -0
- package/skills/starworkDoctor-spec.md +292 -0
- package/skills/starworkUpgrade/SKILL.md +158 -0
- package/skills/starworkUpgrade/agents/openai.yaml +7 -0
- package/skills/starworkUpgrade-spec.md +333 -0
package/cli/README.md
CHANGED
|
@@ -25,10 +25,15 @@ v0.1 只覆盖最小可用安装和适配能力:
|
|
|
25
25
|
|
|
26
26
|
- `starwork init` 第一版:可以初始化轻量单项目、长期单项目和多项目管理中枢,并通过 Pack 语言配置组装通用工作、内容创作者和中枢管理场景。
|
|
27
27
|
- `starwork spawn` 第一版:可以从健康 Hub 生成 `satellite-starter` / `satellite-matter` 项目工作台,支持 `--blueprint` 定制目录、路径、规则和 seed,并回写 Hub 项目注册表。
|
|
28
|
-
- `starwork doctor` 第一版:可以检查 workspace state、Core 必需角色、Kit 文件、正式事实源、业务工作区和 Pack 落地结果,并支持 `--json`
|
|
28
|
+
- `starwork doctor` 第一版:可以检查 workspace state、Core 必需角色、Kit 文件、正式事实源、业务工作区和 Pack 落地结果,并支持 `--json` 输出;alpha.4 开始可识别历史模板候选;alpha.5 开始输出目录 `inventory` 与语义 `signals`,供 `starworkDoctor` skill 判断。
|
|
29
|
+
- `starwork upgrade` 第一版:可以读取 `starworkUpgrade` skill 生成的升级蓝图,把历史模板或非标准目录安全升级为 StarWork 工作台;v0.1 只支持 `--blueprint`,不自动判断升级方案。
|
|
29
30
|
- `starwork adapt` 第一版:可以为 Codex、Claude Code、Cursor、Trae 生成或登记轻量适配入口。
|
|
30
31
|
- `starwork pack install` 第一版:可以在健康工作台上补装 Pack,并更新路径、规则、模板和 workspace state。
|
|
31
32
|
|
|
33
|
+
后续规划:
|
|
34
|
+
|
|
35
|
+
- `starwork update`:面向已经是 StarWork 的工作台,处理未来 Core / Kit / Pack 版本迁移;与 `upgrade` 分开设计。
|
|
36
|
+
|
|
32
37
|
CLI 不在 v0.1 阶段处理账号、授权、消息平台 gateway 或复杂商业系统。
|
|
33
38
|
|
|
34
39
|
## 命令规格
|
|
@@ -39,6 +44,7 @@ CLI 不在 v0.1 阶段处理账号、授权、消息平台 gateway 或复杂商
|
|
|
39
44
|
- [`starwork pack install` SPEC](./pack-install-spec.md)
|
|
40
45
|
- [`starwork spawn` SPEC](./spawn-spec.md)
|
|
41
46
|
- [`starwork spawn --blueprint` SPEC](./spawn-blueprint-spec.md)
|
|
47
|
+
- [`starwork upgrade` SPEC](./upgrade-spec.md)
|
|
42
48
|
|
|
43
49
|
## 本地运行
|
|
44
50
|
|
|
@@ -46,6 +52,7 @@ CLI 不在 v0.1 阶段处理账号、授权、消息平台 gateway 或复杂商
|
|
|
46
52
|
node cli/bin/starwork.js init --type single-light --pack general --dry-run
|
|
47
53
|
node cli/bin/starwork.js spawn --hub ./my-hub --name "新项目" --target ./new-project --mode matter --dry-run
|
|
48
54
|
node cli/bin/starwork.js spawn --hub ./my-hub --target ./new-project --blueprint ./blueprint.json --dry-run
|
|
55
|
+
node cli/bin/starwork.js upgrade --target ./old-workspace --blueprint ./upgrade-blueprint.json --dry-run
|
|
49
56
|
node cli/bin/starwork.js doctor --target ./my-workspace
|
|
50
57
|
node cli/bin/starwork.js adapt claude --target ./my-workspace --yes
|
|
51
58
|
node cli/bin/starwork.js pack install content-creator --target ./my-workspace --yes
|
package/cli/doctor-spec.md
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
- 所属模块:StarWork CLI
|
|
7
7
|
- 命令:`starwork doctor`
|
|
8
8
|
- 前置状态:Core v0.1 已封版,`starwork init` 第一版已落地
|
|
9
|
-
- 实现状态:v0.1
|
|
10
|
-
- 目标:检查一个 StarWork
|
|
9
|
+
- 实现状态:v0.1 最小实现已落地;历史模板升级诊断、目录 inventory 和 signals 已进入 alpha
|
|
10
|
+
- 目标:检查一个 StarWork 工作台是否健康,并把结构事实、风险和候选信号暴露出来;对历史模板用户只输出可供 AI 判断的诊断信号,不直接生成行动建议
|
|
11
11
|
|
|
12
12
|
## 一句话定义
|
|
13
13
|
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
它不负责创建工作台,不负责升级工作台,也不默认修复文件。它只做一件事:把 Core、Kit、Pack 和 Agent 适配文件之间的不一致检查出来,用人能看懂的方式报告。
|
|
17
17
|
|
|
18
|
+
从 alpha.4 起,`doctor` 还承担一个轻量探测入口职责:当目录不是标准 StarWork 工作台,但看起来像用户正在使用的历史模板时,它不会只说“不是工作台”,而是输出历史模板识别结果、目录 inventory 和 semantic signals,交给 `starworkDoctor` 做后续判断。
|
|
19
|
+
|
|
18
20
|
## 为什么先做 doctor
|
|
19
21
|
|
|
20
22
|
Core v0.1 已封版后,项目进入 M2:CLI v0.1 最小闭环。
|
|
@@ -90,6 +92,8 @@ starwork doctor --verbose
|
|
|
90
92
|
| `--json` | 输出机器可读 JSON。 |
|
|
91
93
|
| `--strict` | 将部分 warning 视为失败,适合测试和发布前检查。 |
|
|
92
94
|
| `--verbose` | 显示通过项、检查来源和路径解析细节。 |
|
|
95
|
+
| `--inventory-depth <number\|all>` | 控制目录结构探测深度,默认用于保护过大的工作区。 |
|
|
96
|
+
| `--inventory-limit <number>` | 控制最多输出多少个目录和文件条目。 |
|
|
93
97
|
| `--help` | 显示帮助。 |
|
|
94
98
|
|
|
95
99
|
v0.1 暂不提供 `--fix`。修复动作后续可以单独设计为 `starwork doctor --fix` 或 `starwork repair`,但第一版不要混入。
|
|
@@ -142,7 +146,7 @@ v0.1 暂不提供 `--fix`。修复动作后续可以单独设计为 `starwork do
|
|
|
142
146
|
结果:
|
|
143
147
|
|
|
144
148
|
- 找到:使用该目录作为工作区根目录。
|
|
145
|
-
- 未找到但当前目录有 StarWork
|
|
149
|
+
- 未找到但当前目录有 StarWork 或历史模板痕迹:报告缺少 workspace state,同时输出历史模板候选信号。
|
|
146
150
|
- 未找到且无 StarWork 痕迹:报告不是 StarWork 工作台。
|
|
147
151
|
|
|
148
152
|
v0.1 判断标准:
|
|
@@ -150,9 +154,41 @@ v0.1 判断标准:
|
|
|
150
154
|
| 情况 | 结果 |
|
|
151
155
|
|---|---|
|
|
152
156
|
| 找到 `.starwork/workspace.json` | 继续检查。 |
|
|
153
|
-
| 未找到 state,但有 `AGENTS.md` 和 `_系统/` / `_system/` | `fail`:缺少 workspace state
|
|
157
|
+
| 未找到 state,但有 `AGENTS.md` 和 `_系统/` / `_system/` | `fail`:缺少 workspace state,并输出候选信号。 |
|
|
158
|
+
| 未找到 state,但有 `references/outputs` 或 `参考资料/输出` | `fail`:识别为历史模板升级候选。 |
|
|
154
159
|
| 完全没有 StarWork 痕迹 | `fail`:不是 StarWork 工作台。 |
|
|
155
160
|
|
|
161
|
+
### Step 1.5:历史模板升级诊断
|
|
162
|
+
|
|
163
|
+
历史模板诊断只读文件结构,不移动、不复制、不写入任何文件。
|
|
164
|
+
|
|
165
|
+
识别信号:
|
|
166
|
+
|
|
167
|
+
| 信号 | 示例 |
|
|
168
|
+
|---|---|
|
|
169
|
+
| Agent 入口规则 | `AGENTS.md`、`CLAUDE.md`、`.cursorrules` |
|
|
170
|
+
| 系统目录 | `_系统/`、`_system/` |
|
|
171
|
+
| 事项目录 | `事项/`、`matters/` |
|
|
172
|
+
| 参考资料目录 | `参考资料/`、`资料/`、`素材/`、`references/`、`reference/` |
|
|
173
|
+
| 输出目录 | `输出/`、`成果/`、`outputs/`、`output/` |
|
|
174
|
+
| 身份和教训 | `identity/`、`lessons/`、`_系统/身份/`、`_system/identity/` |
|
|
175
|
+
|
|
176
|
+
推断规则:
|
|
177
|
+
|
|
178
|
+
| 推断项 | 规则 |
|
|
179
|
+
|---|---|
|
|
180
|
+
| `language` | 中文路径多则 `zh`,英文路径多则 `en`,不确定时默认为 `zh`。 |
|
|
181
|
+
| `workspace_type` | 存在 `事项/` 或 `matters/` 时推断为 `single-matter`,否则推断为 `single-light`。 |
|
|
182
|
+
输出内容:
|
|
183
|
+
|
|
184
|
+
- `upgrade.candidate: true`
|
|
185
|
+
- `upgrade.source: legacy-template`
|
|
186
|
+
- `upgrade.inferred.language`
|
|
187
|
+
- `upgrade.inferred.workspace_type`
|
|
188
|
+
- 检测到的参考资料目录和输出目录
|
|
189
|
+
|
|
190
|
+
注意:`doctor --json` 不输出 `next_steps`,也不输出 Pack 建议,避免影响 `starworkDoctor` 基于上下文做独立判断。在没有正式 `starwork upgrade` 命令前,`doctor` 只提供事实和信号,不执行迁移。
|
|
191
|
+
|
|
156
192
|
### Step 2:读取 workspace state
|
|
157
193
|
|
|
158
194
|
读取 `.starwork/workspace.json`。
|
|
@@ -388,6 +424,7 @@ Result:
|
|
|
388
424
|
"language": "zh",
|
|
389
425
|
"packs": ["content-creator"]
|
|
390
426
|
},
|
|
427
|
+
"upgrade": null,
|
|
391
428
|
"summary": {
|
|
392
429
|
"pass": 18,
|
|
393
430
|
"info": 1,
|
|
@@ -405,6 +442,29 @@ Result:
|
|
|
405
442
|
}
|
|
406
443
|
```
|
|
407
444
|
|
|
445
|
+
历史模板升级候选的 JSON 示例:
|
|
446
|
+
|
|
447
|
+
```json
|
|
448
|
+
{
|
|
449
|
+
"schema": "starwork.doctor.result.v0.1",
|
|
450
|
+
"ok": false,
|
|
451
|
+
"strict_ok": false,
|
|
452
|
+
"workspace_root": null,
|
|
453
|
+
"workspace": null,
|
|
454
|
+
"upgrade": {
|
|
455
|
+
"candidate": true,
|
|
456
|
+
"source": "legacy-template",
|
|
457
|
+
"confidence": "high",
|
|
458
|
+
"inferred": {
|
|
459
|
+
"language": "zh",
|
|
460
|
+
"workspace_type": "single-matter",
|
|
461
|
+
"references": ["参考资料"],
|
|
462
|
+
"outputs": ["输出"]
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
```
|
|
467
|
+
|
|
408
468
|
## 检查 ID 命名
|
|
409
469
|
|
|
410
470
|
检查 ID 应稳定,方便测试、文档和后续自动化使用。
|
|
@@ -419,6 +479,7 @@ capability.*
|
|
|
419
479
|
pack.*
|
|
420
480
|
content.*
|
|
421
481
|
adapter.*
|
|
482
|
+
legacy.*
|
|
422
483
|
```
|
|
423
484
|
|
|
424
485
|
示例:
|
|
@@ -435,6 +496,9 @@ adapter.*
|
|
|
435
496
|
- `pack.paths.exist`
|
|
436
497
|
- `pack.templates.installed`
|
|
437
498
|
- `content.current_work.too_long`
|
|
499
|
+
- `legacy.template.detected`
|
|
500
|
+
- `legacy.references.detected`
|
|
501
|
+
- `legacy.outputs.detected`
|
|
438
502
|
|
|
439
503
|
## 与其他命令的关系
|
|
440
504
|
|
|
@@ -503,6 +567,8 @@ adapter.*
|
|
|
503
567
|
- 删除正式事实源目录后返回 fail。
|
|
504
568
|
- 删除 Pack seed 文件后返回 fail。
|
|
505
569
|
- 非 StarWork 目录返回 fail,并提示先运行 `starwork init`。
|
|
570
|
+
- 对存在 `references/outputs` 的英文历史模板返回 fail,但输出 `upgrade` 候选信号,不输出 `next_steps` 或 Pack 建议。
|
|
571
|
+
- 对存在 `参考资料/输出/事项` 的中文历史模板返回 fail,但推断为 `single-matter` + `zh`。
|
|
506
572
|
- `--json` 输出稳定结构。
|
|
507
573
|
- 没有 fail 时退出码为 `0`,有 fail 时退出码为 `1`。
|
|
508
574
|
|