@ultime/codecraft 0.0.0-stage → 1.0.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/CHANGELOG.md +44 -0
- package/CONTRIBUTING.md +27 -0
- package/LICENSE +21 -0
- package/README.md +209 -2
- package/SECURITY.md +22 -0
- package/VERSION +1 -0
- package/adapters/README.md +10 -0
- package/adapters/claude/SKILL.md +40 -0
- package/adapters/generic/AGENTS.md +15 -0
- package/adapters/trae/SKILL.md +40 -0
- package/bin/codecraft.mjs +4 -0
- package/codecraft.config.example.json +15 -0
- package/docs/00-constitution.md +310 -0
- package/docs/01-family-cards.md +169 -0
- package/docs/02-ai-contract.md +68 -0
- package/docs/03-style-map.md +90 -0
- package/docs/04-gates.md +85 -0
- package/docs/05-patterns.md +243 -0
- package/docs/06-architecture.md +263 -0
- package/evals/golden-tasks.md +114 -0
- package/package.json +49 -4
- package/prompts/output.md +27 -0
- package/scenarios/audit-existing.md +41 -0
- package/scenarios/new-project.md +50 -0
- package/scenarios/refactor-review.md +31 -0
- package/scenarios/report-only.md +33 -0
- package/src/check.mjs +451 -0
- package/src/cli.mjs +384 -0
- package/src/gates.mjs +67 -0
- package/src/init.mjs +98 -0
- package/src/plan.mjs +35 -0
- package/templates/README.md +11 -0
- package/templates/app/README.md +28 -0
- package/templates/app/package.json +8 -0
- package/templates/library/CHANGELOG.md +3 -0
- package/templates/library/README.md +26 -0
- package/templates/library/compat.md +5 -0
- package/templates/library/package.json +14 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Golden Tasks(评估任务)
|
|
2
|
+
|
|
3
|
+
用于验证 skill 是否真的按规范工作。每条任务记录:结果、版本、误报 / 漏报。
|
|
4
|
+
|
|
5
|
+
## 1. 新项目架构计划
|
|
6
|
+
|
|
7
|
+
- 输入:一个 mp + admin 的小项目,后端契约未知。
|
|
8
|
+
- 模式:Plan(只读)。
|
|
9
|
+
- 期望:选 L0/L1;列必需 / 可选环节;出目录树;分阶段计划;不改文件。
|
|
10
|
+
- 失败信号:直接生成代码;把所有环节都设为必需;不标未定项。
|
|
11
|
+
|
|
12
|
+
## 2. 旧项目审计
|
|
13
|
+
|
|
14
|
+
- 输入:一个页面直接 import api、store 放请求的旧项目。
|
|
15
|
+
- 模式:Audit(只读)。
|
|
16
|
+
- 期望:引用 A3/A4/A17;给 severity;给升级计划;不改文件。
|
|
17
|
+
- 失败信号:只给泛泛建议;无文件证据;顺手改代码。
|
|
18
|
+
|
|
19
|
+
## 3. 新增页面
|
|
20
|
+
|
|
21
|
+
- 输入:按族卡新增一个列表页。
|
|
22
|
+
- 模式:Apply。
|
|
23
|
+
- 期望:页面只组合;不 import api;loading/empty/error 可见;跑门禁。
|
|
24
|
+
- 失败信号:页面里写请求;错误被吞;状态用多个布尔。
|
|
25
|
+
|
|
26
|
+
## 4. 新增 Wrapper
|
|
27
|
+
|
|
28
|
+
- 输入:第三方接口字段与内部类型不一致。
|
|
29
|
+
- 模式:Apply。
|
|
30
|
+
- 期望:外部类型只在 Wrapper;内部类型 `Xxx`;错误归一;不改调用方。
|
|
31
|
+
- 失败信号:页面直接 import 外部类型;内部类型叫 `XxxDto`;字段泄漏到 UI。
|
|
32
|
+
|
|
33
|
+
## 5. 评审一个边界违规
|
|
34
|
+
|
|
35
|
+
- 输入:一个 diff,内部组件 import `external/`。
|
|
36
|
+
- 模式:Review(只读)。
|
|
37
|
+
- 期望:命中 A4/A17;给最小改法;不改文件。
|
|
38
|
+
- 失败信号:没发现;建议大重构;直接改代码。
|
|
39
|
+
|
|
40
|
+
## 6. Library 审计
|
|
41
|
+
|
|
42
|
+
- 输入:一个 `packages/` 仓库,core 导入了未声明的 workspace 包;`dist/tokens.css` 没有“勿手改”标记。
|
|
43
|
+
- 模式:Audit(只读,`--pack library`)。
|
|
44
|
+
- 期望:命中 A2 / A11;只读;报告带包名与文件。
|
|
45
|
+
- 失败信号:把 `tokens.json`(seed 源文件)误判成生成物;漏掉未声明依赖。
|
|
46
|
+
|
|
47
|
+
## 7. Gates 汇总
|
|
48
|
+
|
|
49
|
+
- 输入:`codecraft.config.json` 里一个 gate 成功、一个失败。
|
|
50
|
+
- 模式:Audit。
|
|
51
|
+
- 期望:报告列出两个 gate、失败输出、退出码 1;不改文件。
|
|
52
|
+
- 失败信号:跳过 gate;只报内置规则;不报告退出码。
|
|
53
|
+
|
|
54
|
+
## 8. Plan from findings
|
|
55
|
+
|
|
56
|
+
- 输入:一个含 A17 违规的项目。
|
|
57
|
+
- 模式:Plan(只读)。
|
|
58
|
+
- 期望:输出 P1 项、动作、验证命令;默认不跑 gates;不改文件。
|
|
59
|
+
- 失败信号:直接改代码;没有验证命令;把 warn 当 error 阻断。
|
|
60
|
+
|
|
61
|
+
## 9. Init dry-run
|
|
62
|
+
|
|
63
|
+
- 输入:一个空目录,`--name demo`。
|
|
64
|
+
- 模式:Init(dry-run)。
|
|
65
|
+
- 期望:输出 `apps/demo/...`、`docs/`、`codecraft.config.json`;目录仍然为空。
|
|
66
|
+
- 失败信号:写盘;缺 `src/pages` / `src/external`;没有 config 预览。
|
|
67
|
+
|
|
68
|
+
## 10. Init apply
|
|
69
|
+
|
|
70
|
+
- 输入:一个空目录,`--name demo --apply`。
|
|
71
|
+
- 模式:Init(apply)。
|
|
72
|
+
- 期望:目录与模板文件写入;README / package.json 的占位符已替换;再跑一次输出 Skipped、不覆盖已改文件。
|
|
73
|
+
- 失败信号:覆盖已有文件;`--apply` 缺 `--name` 仍写盘;占位符残留。
|
|
74
|
+
|
|
75
|
+
## 11. 模式选型
|
|
76
|
+
|
|
77
|
+
- 输入:一个 12 分支的导出格式选择,分支签名一致。
|
|
78
|
+
- 模式:Plan(只读)。
|
|
79
|
+
- 期望:先答选型四问;给 Strategy(策略)与代价;给反例;不改文件。
|
|
80
|
+
- 失败信号:只报模式名;没有代价;分支签名不同还硬做函数表。
|
|
81
|
+
|
|
82
|
+
## 12. 架构设计
|
|
83
|
+
|
|
84
|
+
- 输入:一个单团队、单产品的多页应用,后端契约未知。
|
|
85
|
+
- 模式:Plan(只读)。
|
|
86
|
+
- 期望:先定档位 L0/L1;列变化轴;切边界并给依赖规则;两张图(Context / Container);ADR 只记难逆转项;不改文件。
|
|
87
|
+
- 失败信号:直接上微服务 / 微前端;只画图不给依赖规则;没有退出条件。
|
|
88
|
+
|
|
89
|
+
## 13. 架构评审
|
|
90
|
+
|
|
91
|
+
- 输入:一个模块间存在循环依赖、页面直接调 API 的项目。
|
|
92
|
+
- 模式:Audit / Review(只读)。
|
|
93
|
+
- 期望:命中 M1 / M4 / A2;给最小切分改法;给可执行检查;不改文件。
|
|
94
|
+
- 失败信号:只谈风格;建议大重写;没有验证方式。
|
|
95
|
+
|
|
96
|
+
## 14. Design System 审计
|
|
97
|
+
|
|
98
|
+
- 输入:`packages/` 下的 UI 包,README 引用了内部 `docs/开发计划/...`,`dist/tokens.css` 缺标记。
|
|
99
|
+
- 模式:Audit(`--pack design-system`)。
|
|
100
|
+
- 期望:命中 A11 / A21;不重复实现 `kit:check`;给出改为自洽文档的最小改法。
|
|
101
|
+
- 失败信号:只报 library 规则;把内部文档路径当正常引用;建议复制项目门禁。
|
|
102
|
+
|
|
103
|
+
## 15. 密钥扫描
|
|
104
|
+
|
|
105
|
+
- 输入:一个源码文件里出现高置信 API key。
|
|
106
|
+
- 模式:Audit。
|
|
107
|
+
- 期望:命中 A21;只报文件与行号,不回显密钥;提示轮换。
|
|
108
|
+
- 失败信号:漏报;把密钥原文打印到报告;把普通变量名误报为密钥。
|
|
109
|
+
|
|
110
|
+
## 评分
|
|
111
|
+
|
|
112
|
+
- 每条任务:pass / fail。
|
|
113
|
+
- 记录:版本、误报数、漏报数、审稿轮次。
|
|
114
|
+
- 目标:一次通过率上升,审稿轮次下降。
|
package/package.json
CHANGED
|
@@ -1,6 +1,51 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ultime/codecraft",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Language-agnostic code standard as an installable skill package.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"code-standard",
|
|
8
|
+
"lint",
|
|
9
|
+
"skill"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/ultime-space/skills.git",
|
|
15
|
+
"directory": "codecraft"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://github.com/ultime-space/skills/tree/main/codecraft",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/ultime-space/skills/issues"
|
|
20
|
+
},
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"bin": {
|
|
25
|
+
"codecraft": "./bin/codecraft.mjs"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"bin",
|
|
29
|
+
"src",
|
|
30
|
+
"docs",
|
|
31
|
+
"scenarios",
|
|
32
|
+
"adapters",
|
|
33
|
+
"prompts",
|
|
34
|
+
"evals",
|
|
35
|
+
"templates",
|
|
36
|
+
"VERSION",
|
|
37
|
+
"CHANGELOG.md",
|
|
38
|
+
"LICENSE",
|
|
39
|
+
"CONTRIBUTING.md",
|
|
40
|
+
"SECURITY.md",
|
|
41
|
+
"codecraft.config.example.json"
|
|
42
|
+
],
|
|
43
|
+
"type": "module",
|
|
44
|
+
"scripts": {
|
|
45
|
+
"test": "node --test tests/*.test.mjs",
|
|
46
|
+
"prepublishOnly": "npm test"
|
|
47
|
+
},
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=20"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Output Format(输出格式)
|
|
2
|
+
|
|
3
|
+
默认 Markdown;JSON 仅用于 CLI / CI。
|
|
4
|
+
|
|
5
|
+
## Markdown
|
|
6
|
+
|
|
7
|
+
```md
|
|
8
|
+
## 结论
|
|
9
|
+
|
|
10
|
+
## 证据
|
|
11
|
+
|
|
12
|
+
## 差距 / 风险
|
|
13
|
+
|
|
14
|
+
## 计划
|
|
15
|
+
|
|
16
|
+
## 验证
|
|
17
|
+
|
|
18
|
+
## 下一步
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
规则:
|
|
22
|
+
|
|
23
|
+
- 每条结论引用 A-ID 或文件路径。
|
|
24
|
+
- 不写敏感信息;示例用占位符。
|
|
25
|
+
- 英文术语首次出现用 `English(中文)`。
|
|
26
|
+
- 不把“计划”写成“已完成”。
|
|
27
|
+
- Audit / Plan 模式只输出报告,不改文件。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Audit Existing(旧项目审计)
|
|
2
|
+
|
|
3
|
+
## 何时用
|
|
4
|
+
|
|
5
|
+
接手 / 升级 / 重构前体检。
|
|
6
|
+
|
|
7
|
+
## 输入
|
|
8
|
+
|
|
9
|
+
- 仓库路径 / 分支
|
|
10
|
+
- 目标(升级、拆分、迁移、只体检)
|
|
11
|
+
|
|
12
|
+
## 先读
|
|
13
|
+
|
|
14
|
+
项目规则 → 宪法 → 相关族卡 → 现有 `README` / `docs`
|
|
15
|
+
|
|
16
|
+
## 步骤
|
|
17
|
+
|
|
18
|
+
1. 盘点:技术栈、目录、页面、请求层、状态、类型、测试。
|
|
19
|
+
2. 逐条对照 A1–A21;标 pass / warn / fail。
|
|
20
|
+
3. 找“历史实现”与“环节缺失”:哪些是习惯,哪些是必需。
|
|
21
|
+
4. 出差距清单:影响、成本、优先级。
|
|
22
|
+
5. 出升级计划:分阶段、可回滚、每阶段验收。
|
|
23
|
+
6. 风险:兼容、数据、权限、发布。
|
|
24
|
+
|
|
25
|
+
## 输出
|
|
26
|
+
|
|
27
|
+
- 体检报告
|
|
28
|
+
- 差距清单(severity)
|
|
29
|
+
- 升级计划
|
|
30
|
+
- 回滚方案
|
|
31
|
+
|
|
32
|
+
## 停止条件
|
|
33
|
+
|
|
34
|
+
- 无法只读访问
|
|
35
|
+
- 需要改动生产配置
|
|
36
|
+
- 发现密钥 / 隐私:停止并提示轮换
|
|
37
|
+
|
|
38
|
+
## 验收
|
|
39
|
+
|
|
40
|
+
- 只读;不改代码
|
|
41
|
+
- 每条结论有文件路径 / 命令 / A-ID
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# New Project(新项目)
|
|
2
|
+
|
|
3
|
+
## 何时用
|
|
4
|
+
|
|
5
|
+
从 0 设计架构、技术选型、目录与分阶段计划。
|
|
6
|
+
|
|
7
|
+
## 输入
|
|
8
|
+
|
|
9
|
+
- 业务目标 / 页面清单
|
|
10
|
+
- 端(mp / app / web / admin)
|
|
11
|
+
- 团队规模 / 交付周期
|
|
12
|
+
- 已有技术栈约束
|
|
13
|
+
|
|
14
|
+
## 先读
|
|
15
|
+
|
|
16
|
+
1. 项目 `AGENTS.md` / `rules/`
|
|
17
|
+
2. `../docs/00-constitution.md`
|
|
18
|
+
3. `../docs/01-family-cards.md`(只读相关族)
|
|
19
|
+
4. `../docs/03-style-map.md`
|
|
20
|
+
5. `../docs/06-architecture.md`(档位 / 七步法 / 边界 / ADR)
|
|
21
|
+
6. 需要选型时:`../docs/05-patterns.md`
|
|
22
|
+
|
|
23
|
+
## 步骤
|
|
24
|
+
|
|
25
|
+
1. 盘点:页面、角色、数据、外部系统。
|
|
26
|
+
2. 选规模档位:L0 / L1 / L2。
|
|
27
|
+
3. 选环节:Transport / Wrapper / Behavior / State / ...;标明必需 / 可选。
|
|
28
|
+
4. 定目录:`apps/` + `packages/`(如果需要)。
|
|
29
|
+
5. 定契约:类型来源、命名、门禁。
|
|
30
|
+
6. 出分阶段计划:每阶段一个可验收的垂直切片。
|
|
31
|
+
|
|
32
|
+
## 输出
|
|
33
|
+
|
|
34
|
+
- 架构图(文字)
|
|
35
|
+
- 目录树
|
|
36
|
+
- 环节清单
|
|
37
|
+
- 分阶段计划
|
|
38
|
+
- 风险与未定项
|
|
39
|
+
|
|
40
|
+
## 停止条件
|
|
41
|
+
|
|
42
|
+
- 业务目标不清
|
|
43
|
+
- 后端契约未知且无法假设
|
|
44
|
+
- 需要引入新的外部服务但无人确认
|
|
45
|
+
|
|
46
|
+
## 验收
|
|
47
|
+
|
|
48
|
+
- 每条规则引用 A-ID
|
|
49
|
+
- 计划可执行、可验收
|
|
50
|
+
- 不含敏感信息
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Refactor / Review(重构 / 评审)
|
|
2
|
+
|
|
3
|
+
## 何时用
|
|
4
|
+
|
|
5
|
+
已有改动或准备改动,需要按规范评审 / 重构。
|
|
6
|
+
|
|
7
|
+
## 模式
|
|
8
|
+
|
|
9
|
+
Apply(执行)或 Review(只评审)。
|
|
10
|
+
|
|
11
|
+
## 步骤
|
|
12
|
+
|
|
13
|
+
1. 读 diff / 目标文件。
|
|
14
|
+
2. 对照相关族卡与 A1–A21。
|
|
15
|
+
3. 列问题:边界、状态、错误、命名、注释、生成物。
|
|
16
|
+
4. 出最小改动计划;能不改就不改。
|
|
17
|
+
5. Apply:执行 + 跑门禁;Review:只出意见。
|
|
18
|
+
6. 输出五段式。
|
|
19
|
+
|
|
20
|
+
## 输出
|
|
21
|
+
|
|
22
|
+
- 问题清单
|
|
23
|
+
- 最小改动
|
|
24
|
+
- 验证命令与结果
|
|
25
|
+
- 风险 / 回滚
|
|
26
|
+
|
|
27
|
+
## 停止条件
|
|
28
|
+
|
|
29
|
+
- 需要跨族大改但无测试
|
|
30
|
+
- 需要改生成物
|
|
31
|
+
- 需要引入新依赖但未确认
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Report Only(只出报告)
|
|
2
|
+
|
|
3
|
+
## 何时用
|
|
4
|
+
|
|
5
|
+
只想体检,不要计划、不改代码。
|
|
6
|
+
|
|
7
|
+
## 先读
|
|
8
|
+
|
|
9
|
+
项目规则 → 宪法 → 相关族卡
|
|
10
|
+
|
|
11
|
+
## 步骤
|
|
12
|
+
|
|
13
|
+
1. 只读扫描。
|
|
14
|
+
2. 对照 A1–A21。
|
|
15
|
+
3. 输出 findings:severity / 证据 / 影响 / 建议(一句话)。
|
|
16
|
+
4. 不做升级计划,不写文件。
|
|
17
|
+
|
|
18
|
+
## 输出
|
|
19
|
+
|
|
20
|
+
- 结论
|
|
21
|
+
- Findings 表
|
|
22
|
+
- 附:版本号 + 扫描范围
|
|
23
|
+
|
|
24
|
+
## 停止条件
|
|
25
|
+
|
|
26
|
+
- 无法只读访问
|
|
27
|
+
- 发现密钥 / 隐私:立即停止并提示轮换
|
|
28
|
+
|
|
29
|
+
## 验收
|
|
30
|
+
|
|
31
|
+
- 不写文件
|
|
32
|
+
- 每条 finding 有证据
|
|
33
|
+
- 不含敏感信息
|