@skrupellose/code-helper 0.1.0 → 0.1.2
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 +114 -14
- package/dist/archive.d.ts +8 -1
- package/dist/archive.js +39 -6
- package/dist/archive.js.map +1 -1
- package/dist/checks.d.ts +4 -2
- package/dist/checks.js +71 -5
- package/dist/checks.js.map +1 -1
- package/dist/cli.d.ts +54 -0
- package/dist/cli.js +1255 -148
- package/dist/cli.js.map +1 -1
- package/dist/completion.d.ts +43 -0
- package/dist/completion.js +289 -0
- package/dist/completion.js.map +1 -0
- package/dist/constants.js +14 -7
- package/dist/constants.js.map +1 -1
- package/dist/hooks.d.ts +36 -0
- package/dist/hooks.js +401 -0
- package/dist/hooks.js.map +1 -0
- package/dist/init.d.ts +6 -0
- package/dist/init.js +77 -18
- package/dist/init.js.map +1 -1
- package/dist/skills.d.ts +45 -5
- package/dist/skills.js +305 -21
- package/dist/skills.js.map +1 -1
- package/dist/templates.d.ts +3 -2
- package/dist/templates.js +312 -33
- package/dist/templates.js.map +1 -1
- package/dist/terminal-ui.d.ts +5 -0
- package/dist/terminal-ui.js +21 -4
- package/dist/terminal-ui.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/workflows.js +70 -16
- package/dist/workflows.js.map +1 -1
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -8,30 +8,69 @@
|
|
|
8
8
|
npx @skrupellose/code-helper
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
交互菜单支持方向键移动,空格或回车确认。不支持按键交互的终端会回退为数字菜单,输入 `0` 返回上一级。主菜单会用 `【分组】` 标题和空行区分功能区域;raw mode 菜单使用固定名称列展示说明,数字兜底菜单会把说明缩进到下一行,方便扫描。菜单动作会打印开始和完成状态,并在 TTY 模式下等待回车后再返回菜单,避免执行结果一闪而过。
|
|
12
|
+
|
|
13
|
+
数字兜底菜单示例:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
【任务推进】
|
|
17
|
+
2. 生成任务计划
|
|
18
|
+
根据需求文档生成计划、状态记录和执行记录入口
|
|
19
|
+
3. 生成手工测试文档
|
|
20
|
+
为页面或交互验收生成需要人工执行的测试文档
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
主菜单按功能用途分组:
|
|
24
|
+
|
|
25
|
+
| 分组 | 菜单项 | 说明 |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| 项目准备 | 初始化/刷新项目配置 | 创建或更新工作区、入口索引、规则模板、Skills 和可用 hooks |
|
|
28
|
+
| 任务推进 | 生成任务计划 | 根据需求文档生成计划、状态记录和执行记录入口 |
|
|
29
|
+
| 任务推进 | 生成手工测试文档 | 为页面或交互验收生成需要人工执行的测试文档 |
|
|
30
|
+
| 任务推进 | 检查功能完成情况 | 检查当前任务是否满足完成条件,并提示后续动作 |
|
|
31
|
+
| 项目维护 | 查看任务列表 | 查看 active、archived 和 mixed 状态的任务文档 |
|
|
32
|
+
| 项目维护 | 归档已完成任务 | 将已结束任务的计划、结果和状态文档移动到 archive |
|
|
33
|
+
| 项目维护 | 检查协作规范 | 检查入口文档、规则目录、计划和归档结构是否完整 |
|
|
34
|
+
| 工具设置 | 功能管理 | 应用或取消项目级 Skills、Agent hooks 和 Git hook |
|
|
35
|
+
| 工具设置 | 管理项目 Skills | 查看、注册、取消注册、检查或分析项目级 Skills |
|
|
36
|
+
| 工具设置 | 管理 Hooks | 查看、安装或卸载 code-helper 管理的 Git / Agent hooks |
|
|
12
37
|
|
|
13
38
|
也可以使用非交互命令:
|
|
14
39
|
|
|
15
40
|
```bash
|
|
16
41
|
npx @skrupellose/code-helper init
|
|
42
|
+
npx @skrupellose/code-helper sync-local
|
|
17
43
|
npx @skrupellose/code-helper check
|
|
18
44
|
npx @skrupellose/code-helper features list
|
|
19
45
|
npx @skrupellose/code-helper plan docs/订单管理需求.md 订单管理升级
|
|
20
46
|
npx @skrupellose/code-helper manual-test 订单管理升级
|
|
47
|
+
npx @skrupellose/code-helper finish 订单管理升级
|
|
21
48
|
npx @skrupellose/code-helper archive 订单管理升级
|
|
49
|
+
npx @skrupellose/code-helper archive 订单管理升级 --resolve-mixed
|
|
22
50
|
npx @skrupellose/code-helper tasks
|
|
51
|
+
npx @skrupellose/code-helper init codex
|
|
23
52
|
npx @skrupellose/code-helper skills register
|
|
53
|
+
npx @skrupellose/code-helper hooks install agent
|
|
54
|
+
npx @skrupellose/code-helper hooks list
|
|
24
55
|
```
|
|
25
56
|
|
|
26
|
-
|
|
57
|
+
在交互式“生成任务计划”里,可以直接把需求文档拖到终端;工具会识别引号、`file://`、反斜杠转义空格和项目内绝对路径。
|
|
58
|
+
|
|
59
|
+
生成项目计划时,会创建计划文档、实施记录和当前状态记录;`status-doc` 会同步生成当前执行入口,包含“当前执行节点”和“子计划队列”,用于让 agent 按计划逐步推进。手工测试文档由 `manual-test` 按需单独生成。
|
|
60
|
+
|
|
61
|
+
完成小节点、识别到功能变更、准备最终回复或切换任务前,可以运行 `code-helper finish <中文功能名> --check-only`。它只输出完成判断和后续建议,不会自动更新长期记忆、归档或提交。
|
|
62
|
+
|
|
63
|
+
生成手工测试文档、检查功能完成情况和归档已完成任务时,工具会优先读取当前 `plan-doc` / `result-doc` / `status-doc` 中的活动任务,让用户从列表选择;仍然支持直接传入中文功能名。
|
|
27
64
|
|
|
28
65
|
## 默认工作区
|
|
29
66
|
|
|
30
|
-
|
|
67
|
+
初始化后会创建或按目标写入:
|
|
31
68
|
|
|
32
69
|
- `.code-helper/`:工具配置、内置 skills 模板、hook sample 和检查结果
|
|
33
|
-
- `.agents/skills/`:Codex 项目级 skills
|
|
34
|
-
- `.claude/skills/`:Claude Code 项目级 skills
|
|
70
|
+
- `.agents/skills/`:Codex 项目级 skills 注册目录,当前项目选择或识别到 Codex 时注册 code-helper skills
|
|
71
|
+
- `.claude/skills/`:Claude Code 项目级 skills 注册目录,当前项目选择或识别到 Claude Code 时注册 code-helper skills
|
|
72
|
+
- `.github/copilot-instructions.md`:GitHub Copilot 项目入口记忆文档,当前项目选择或识别到 GitHub Copilot 时写入 code-helper 入口区块
|
|
73
|
+
- `.github/skills/`:GitHub Copilot 项目级 skills 注册目录,当前项目选择或识别到 GitHub Copilot Agent Skills 时注册 code-helper skills
|
|
35
74
|
- `code-helper-docs/user-rules/`:长期专题规则
|
|
36
75
|
- `code-helper-docs/plan-doc/`:项目计划
|
|
37
76
|
- `code-helper-docs/result-doc/`:执行结果和手工测试文档
|
|
@@ -40,25 +79,86 @@ npx @skrupellose/code-helper skills register
|
|
|
40
79
|
|
|
41
80
|
## 默认策略
|
|
42
81
|
|
|
43
|
-
-
|
|
82
|
+
- 初始化会优先根据已有 `AGENTS.md`、`CLAUDE.md` 和 GitHub Copilot 入口判断 agent 工具;完全无法判断时,交互式 init 会让用户选择目标,非交互 init 会保守跳过项目级 skills 和 Agent hooks。
|
|
83
|
+
- `init` 一旦确定目标,就会补齐对应入口记忆文档:Codex 写 `AGENTS.md`,Claude Code 写 `CLAUDE.md`,GitHub Copilot 写 `.github/copilot-instructions.md`;`init all` 会补齐三类入口。
|
|
44
84
|
- 初始化不会覆盖已有专题规则。
|
|
45
85
|
- `.code-helper/skills/` 只是内置 skills 模板源,不会被 Codex 或 Claude Code 默认识别。
|
|
46
|
-
- `npx @skrupellose/code-helper init`
|
|
47
|
-
- `npx @skrupellose/code-helper skills register` 不带 target 时按当前项目已有 `AGENTS.md` / `CLAUDE.md`
|
|
86
|
+
- `npx @skrupellose/code-helper init [target]` 支持显式指定 `codex`、`claudecode`、`githubcopilot` 或 `all`;init 确定目标后,会按同一批目标注册项目级 skills,并安装 Codex / Claude Code 对应的 Agent hooks。
|
|
87
|
+
- `npx @skrupellose/code-helper skills register` 不带 target 时按当前项目已有 `AGENTS.md` / `CLAUDE.md` / GitHub Copilot 入口自动选择目标;无法识别时跳过,传 `all` 时强制注册全部三类目标。
|
|
48
88
|
- 入口文档只更新 `<!-- code-helper:start -->` 和 `<!-- code-helper:end -->` 之间的受控区块。
|
|
49
89
|
- 计划、结果、状态和测试文档必须使用中文命名与中文总结,例如 `code-helper-docs/plan-doc/订单管理升级.md`、`code-helper-docs/result-doc/订单管理升级/实施记录.md`、`code-helper-docs/status-doc/订单管理升级-状态.md`。
|
|
50
90
|
- 页面相关测试只生成严格手工测试文档。
|
|
51
91
|
- 工具自己只执行纯逻辑测试,例如函数单元测试或非浏览器集成测试。
|
|
92
|
+
- 检查功能完成情况只做判断和提示;更新长期记忆、归档已完成任务、提交和发布都需要用户确认。
|
|
52
93
|
- 功能完成后可以执行 `npx @skrupellose/code-helper archive <中文功能名>` 归档文档。
|
|
94
|
+
- 不带功能名执行 `manual-test`、`finish` 或 `archive` 时,TTY 终端会优先展示当前活动任务选择列表。
|
|
53
95
|
- 用户手动移动到 `archive/` 的任务会被识别为已结束任务。
|
|
54
|
-
-
|
|
96
|
+
- `check` 默认只输出检查结果;需要写入 `.code-helper/checks/latest.json` 时使用 `check --write-report`。
|
|
97
|
+
- init 不会自动安装 Git hook;Git hook 只在显式执行 `hooks install git` 时安装。`hooks install` / `hooks uninstall` 必须显式传入 `git`、`codex`、`claudecode`、`agent` 或 `all`,避免误安装全部 hooks。
|
|
55
98
|
|
|
56
|
-
##
|
|
99
|
+
## 功能管理
|
|
57
100
|
|
|
58
101
|
```bash
|
|
59
|
-
npx @skrupellose/code-helper
|
|
60
|
-
npx @skrupellose/code-helper
|
|
61
|
-
npx @skrupellose/code-helper
|
|
102
|
+
npx @skrupellose/code-helper skills register
|
|
103
|
+
npx @skrupellose/code-helper skills unregister
|
|
104
|
+
npx @skrupellose/code-helper hooks install agent
|
|
105
|
+
npx @skrupellose/code-helper hooks uninstall agent
|
|
106
|
+
npx @skrupellose/code-helper hooks install git
|
|
107
|
+
npx @skrupellose/code-helper hooks uninstall git
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
交互菜单中的“功能管理”会直接应用或取消 Skills、Agent hooks、Git hook,也可以刷新规则和模板。应用或取消项目级 Skills 时,可以选择 Codex、Claude Code、GitHub Copilot、全部,或使用当前项目识别到的默认 agent 工具;应用或取消 Agent hooks 时,只提供 Codex、Claude Code 和全部可用 Agent hooks,GitHub Copilot 不会安装 Agent hook。`features` 命令仍保留为高级配置接口,普通使用不需要先切换功能开关。
|
|
111
|
+
|
|
112
|
+
## 管理项目 Skills
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npx @skrupellose/code-helper skills list
|
|
116
|
+
npx @skrupellose/code-helper skills register githubcopilot
|
|
117
|
+
npx @skrupellose/code-helper skills doctor
|
|
118
|
+
npx @skrupellose/code-helper skills audit
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
- `skills doctor`:检查项目级 skills 的结构、frontmatter、description 和 code-helper 模板是否过期。
|
|
122
|
+
- `skills audit`:根据当前入口文档、专题规则和计划/归档目录,给出缺失注册或缺失 skill 的建议。
|
|
123
|
+
|
|
124
|
+
## 管理 Hooks
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npx @skrupellose/code-helper hooks list
|
|
128
|
+
npx @skrupellose/code-helper hooks install git
|
|
129
|
+
npx @skrupellose/code-helper hooks install codex
|
|
130
|
+
npx @skrupellose/code-helper hooks install claudecode
|
|
131
|
+
npx @skrupellose/code-helper hooks uninstall agent
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
- `hooks install` 会直接应用对应 hook,并同步内部状态。
|
|
135
|
+
- Agent hooks 只运行 `finish --check-only`,不会自动更新长期记忆、归档或提交。
|
|
136
|
+
- 卸载只移除 code-helper 管理的 hook,不删除用户自己的 hooks。
|
|
137
|
+
|
|
138
|
+
## 本地验证与发布检查
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
npm run sync:local
|
|
142
|
+
npm test
|
|
143
|
+
npm run check
|
|
144
|
+
npm pack --dry-run
|
|
62
145
|
```
|
|
63
146
|
|
|
64
|
-
|
|
147
|
+
开发 code-helper 本仓库时,修改 `src/templates.ts`、入口规则、内置 skills 或项目级 skills 相关逻辑后,先运行 `npm run sync:local`。它会构建当前代码,刷新 `AGENTS.md` 的 code-helper 受控区块、`.code-helper/skills/` 内置模板,并注册 Codex、Claude Code、GitHub Copilot 三类项目级 skills;不会额外创建 `CLAUDE.md`、`.github/copilot-instructions.md` 或安装 hooks。
|
|
148
|
+
|
|
149
|
+
`npm pack` 前会自动执行构建,避免发布包依赖本地残留的 `dist/`。
|
|
150
|
+
|
|
151
|
+
## GitHub Actions 与 npm 发布
|
|
152
|
+
|
|
153
|
+
仓库提供两个 GitHub Actions:
|
|
154
|
+
|
|
155
|
+
- `CI`:在 PR 和 `main` push 时运行 `npm ci`、`npm test`、`npm run check`、`npm pack --dry-run`,覆盖 Node.js 20 和 22。
|
|
156
|
+
- `Publish to npm`:只支持手动触发,发布当前 `package.json` 中的版本;触发时必须输入 `publish` 确认,并会先检查该版本是否已存在于 npm。
|
|
157
|
+
|
|
158
|
+
npm 发布建议使用 Trusted Publishing / OIDC,不在 GitHub Secrets 中保存长期 npm token。需要在 npm package 设置中添加 trusted publisher:
|
|
159
|
+
|
|
160
|
+
- Repository:当前 GitHub 仓库
|
|
161
|
+
- Workflow:`npm-publish.yml`
|
|
162
|
+
- Environment:`npm-publish`
|
|
163
|
+
|
|
164
|
+
发布前仍需先在代码中完成版本号更新并提交;workflow 不自动改版本、不自动创建 tag、不自动发布未确认的提交。
|
package/dist/archive.d.ts
CHANGED
|
@@ -14,11 +14,18 @@ export interface TaskRecord {
|
|
|
14
14
|
activeArtifacts: string[];
|
|
15
15
|
archivedArtifacts: string[];
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* 归档命令选项。
|
|
19
|
+
* resolveMixed 只在用户显式要求时清理 active/archive 同名冲突,避免默认删除活动文档。
|
|
20
|
+
*/
|
|
21
|
+
export interface ArchiveFeatureOptions {
|
|
22
|
+
resolveMixed?: boolean;
|
|
23
|
+
}
|
|
17
24
|
/**
|
|
18
25
|
* 执行任务文档归档。
|
|
19
26
|
* 归档目标固定为各文档目录下的 archive 子目录,避免已结束任务继续影响当前任务判断。
|
|
20
27
|
*/
|
|
21
|
-
export declare function archiveFeature(projectRoot: string, rawFeatureName: string): Promise<OperationResult[]>;
|
|
28
|
+
export declare function archiveFeature(projectRoot: string, rawFeatureName: string, options?: ArchiveFeatureOptions): Promise<OperationResult[]>;
|
|
22
29
|
/**
|
|
23
30
|
* 扫描当前项目任务。
|
|
24
31
|
* 如果用户手动把文件移动到 archive 子目录,这里也会识别为 archived。
|
package/dist/archive.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mkdir, readdir, rename, stat } from "node:fs/promises";
|
|
1
|
+
import { mkdir, readdir, rename, rm, stat } from "node:fs/promises";
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
3
|
import { loadConfig } from "./config.js";
|
|
4
4
|
import { ensureDirectory, portablePath, projectPath, writeText } from "./fs-utils.js";
|
|
@@ -7,7 +7,7 @@ import { normalizeDocumentName, normalizeFeatureName } from "./workflows.js";
|
|
|
7
7
|
* 执行任务文档归档。
|
|
8
8
|
* 归档目标固定为各文档目录下的 archive 子目录,避免已结束任务继续影响当前任务判断。
|
|
9
9
|
*/
|
|
10
|
-
export async function archiveFeature(projectRoot, rawFeatureName) {
|
|
10
|
+
export async function archiveFeature(projectRoot, rawFeatureName, options = {}) {
|
|
11
11
|
const config = await loadConfig(projectRoot);
|
|
12
12
|
if (!config.features.documentArchive.enabled) {
|
|
13
13
|
throw new Error("文档归档功能已关闭,请先执行 `code-helper features enable documentArchive`。");
|
|
@@ -16,8 +16,16 @@ export async function archiveFeature(projectRoot, rawFeatureName) {
|
|
|
16
16
|
const recordFeatureName = featureNames[0];
|
|
17
17
|
const operations = [];
|
|
18
18
|
const moves = featureNames.flatMap((featureName) => getArchiveMoves(config, featureName));
|
|
19
|
+
const conflicts = options.resolveMixed ? [] : await findArchiveConflicts(projectRoot, moves);
|
|
20
|
+
if (conflicts.length > 0) {
|
|
21
|
+
throw new Error([
|
|
22
|
+
`任务存在 active/archive 同名冲突:${rawFeatureName}`,
|
|
23
|
+
"如果确认归档目录中的版本应保留,请运行 `code-helper archive <中文功能名> --resolve-mixed` 清理活动副本。",
|
|
24
|
+
...conflicts.map((conflict) => `冲突路径:${conflict}`)
|
|
25
|
+
].join("\n"));
|
|
26
|
+
}
|
|
19
27
|
for (const move of moves) {
|
|
20
|
-
operations.push(await movePathIfExists(projectRoot, move.from, move.to));
|
|
28
|
+
operations.push(await movePathIfExists(projectRoot, move.from, move.to, options));
|
|
21
29
|
}
|
|
22
30
|
if (!operations.some((operation) => isKnownArchivedOperation(operation))) {
|
|
23
31
|
throw new Error(`未找到功能文档:${rawFeatureName}。请确认 plan-doc、result-doc 或 status-doc 中存在对应任务。`);
|
|
@@ -25,6 +33,21 @@ export async function archiveFeature(projectRoot, rawFeatureName) {
|
|
|
25
33
|
operations.push(await writeArchiveRecord(projectRoot, config, recordFeatureName, operations));
|
|
26
34
|
return operations;
|
|
27
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* 归档前预检查 active/archive 同名冲突。
|
|
38
|
+
* 这样默认模式下不会先移动部分文档再报错,保持归档动作可预期。
|
|
39
|
+
*/
|
|
40
|
+
async function findArchiveConflicts(projectRoot, moves) {
|
|
41
|
+
const conflicts = [];
|
|
42
|
+
for (const move of moves) {
|
|
43
|
+
const sourceExists = await pathExists(projectPath(projectRoot, move.from));
|
|
44
|
+
const targetExists = await pathExists(projectPath(projectRoot, move.to));
|
|
45
|
+
if (sourceExists && targetExists) {
|
|
46
|
+
conflicts.push(move.to);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return conflicts;
|
|
50
|
+
}
|
|
28
51
|
/**
|
|
29
52
|
* 生成归档任务名候选。
|
|
30
53
|
* 新文档强制中文命名;旧项目可能仍有英文 feature 文档,因此归档时保留旧英文兼容。
|
|
@@ -92,7 +115,7 @@ function getArchiveMoves(config, featureName) {
|
|
|
92
115
|
* 文件或目录存在时移动到 archive。
|
|
93
116
|
* 目标已存在时不覆盖,避免破坏用户手动归档后的内容。
|
|
94
117
|
*/
|
|
95
|
-
async function movePathIfExists(projectRoot, fromRelativePath, toRelativePath) {
|
|
118
|
+
async function movePathIfExists(projectRoot, fromRelativePath, toRelativePath, options) {
|
|
96
119
|
const fromPath = projectPath(projectRoot, fromRelativePath);
|
|
97
120
|
const toPath = projectPath(projectRoot, toRelativePath);
|
|
98
121
|
const sourceExists = await pathExists(fromPath);
|
|
@@ -112,10 +135,18 @@ async function movePathIfExists(projectRoot, fromRelativePath, toRelativePath) {
|
|
|
112
135
|
};
|
|
113
136
|
}
|
|
114
137
|
if (targetExists) {
|
|
138
|
+
if (options.resolveMixed) {
|
|
139
|
+
await rm(fromPath, { recursive: true, force: true });
|
|
140
|
+
return {
|
|
141
|
+
path: fromPath,
|
|
142
|
+
action: "updated",
|
|
143
|
+
message: "已清理活动副本,保留归档目录中的已结束任务"
|
|
144
|
+
};
|
|
145
|
+
}
|
|
115
146
|
return {
|
|
116
147
|
path: toPath,
|
|
117
148
|
action: "skipped",
|
|
118
|
-
message: "
|
|
149
|
+
message: "活动文档和归档文档同时存在,请人工确认后再处理"
|
|
119
150
|
};
|
|
120
151
|
}
|
|
121
152
|
await mkdir(dirname(toPath), { recursive: true });
|
|
@@ -154,7 +185,9 @@ async function writeArchiveRecord(projectRoot, config, featureName, operations)
|
|
|
154
185
|
* 源文档不存在不算已归档,避免生成空归档记录。
|
|
155
186
|
*/
|
|
156
187
|
function isKnownArchivedOperation(operation) {
|
|
157
|
-
return operation.message === "已移动到归档目录"
|
|
188
|
+
return operation.message === "已移动到归档目录"
|
|
189
|
+
|| operation.message === "已在归档目录中,识别为已结束任务"
|
|
190
|
+
|| operation.message === "已清理活动副本,保留归档目录中的已结束任务";
|
|
158
191
|
}
|
|
159
192
|
/**
|
|
160
193
|
* 收集 plan-doc 中的活动或归档计划文档。
|
package/dist/archive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"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"}
|
package/dist/checks.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { CheckIssue } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* 运行项目协作规则检查。
|
|
4
|
-
*
|
|
4
|
+
* 默认只读项目结构;需要持久化报告时由调用方显式传入 writeReport。
|
|
5
5
|
*/
|
|
6
|
-
export declare function runChecks(projectRoot: string
|
|
6
|
+
export declare function runChecks(projectRoot: string, options?: {
|
|
7
|
+
writeReport?: boolean;
|
|
8
|
+
}): Promise<CheckIssue[]>;
|
package/dist/checks.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import { readdir } from "node:fs/promises";
|
|
2
2
|
import { ENTRY_BLOCK_END, ENTRY_BLOCK_START, FEATURE_KEYS } from "./constants.js";
|
|
3
3
|
import { listTasks } from "./archive.js";
|
|
4
|
-
import { loadConfig } from "./config.js";
|
|
4
|
+
import { getConfigRelativePath, loadConfig } from "./config.js";
|
|
5
5
|
import { portablePath, projectPath, readTextIfExists, writeText } from "./fs-utils.js";
|
|
6
6
|
/**
|
|
7
7
|
* 运行项目协作规则检查。
|
|
8
|
-
*
|
|
8
|
+
* 默认只读项目结构;需要持久化报告时由调用方显式传入 writeReport。
|
|
9
9
|
*/
|
|
10
|
-
export async function runChecks(projectRoot) {
|
|
10
|
+
export async function runChecks(projectRoot, options = {}) {
|
|
11
|
+
const rawConfigIssues = await checkRawConfig(projectRoot);
|
|
12
|
+
if (rawConfigIssues.some((issue) => issue.code === "invalid-config-json" || issue.code === "invalid-config-shape")) {
|
|
13
|
+
return rawConfigIssues;
|
|
14
|
+
}
|
|
11
15
|
const config = await loadConfig(projectRoot);
|
|
12
16
|
const issues = [];
|
|
13
17
|
if (!config.features.checks.enabled) {
|
|
14
18
|
return issues;
|
|
15
19
|
}
|
|
20
|
+
issues.push(...rawConfigIssues);
|
|
16
21
|
issues.push(...(await checkConfig(config)));
|
|
17
22
|
issues.push(...(await checkEntryDocuments(projectRoot, config)));
|
|
18
23
|
issues.push(...(await checkRuleDocuments(projectRoot, config)));
|
|
@@ -20,9 +25,69 @@ export async function runChecks(projectRoot) {
|
|
|
20
25
|
issues.push(...(await checkChineseWorkbenchDocuments(projectRoot, config)));
|
|
21
26
|
issues.push(...(await checkTestingPolicy(projectRoot, config)));
|
|
22
27
|
issues.push(...(await checkArchiveState(projectRoot, config)));
|
|
23
|
-
|
|
28
|
+
if (options.writeReport === true) {
|
|
29
|
+
await writeText(projectPath(projectRoot, `${config.directories.workspace}/checks/latest.json`), `${JSON.stringify({ checkedAt: new Date().toISOString(), issues }, null, 2)}\n`);
|
|
30
|
+
}
|
|
24
31
|
return issues;
|
|
25
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* 检查原始配置文件结构。
|
|
35
|
+
* loadConfig 会自动补默认值,因此缺失字段必须在合并前检查,否则会被默认配置掩盖。
|
|
36
|
+
*/
|
|
37
|
+
async function checkRawConfig(projectRoot) {
|
|
38
|
+
const configPath = getConfigRelativePath();
|
|
39
|
+
const raw = await readTextIfExists(projectPath(projectRoot, configPath));
|
|
40
|
+
if (raw === undefined) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
let parsed;
|
|
44
|
+
try {
|
|
45
|
+
parsed = JSON.parse(raw);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return [
|
|
49
|
+
{
|
|
50
|
+
level: "error",
|
|
51
|
+
code: "invalid-config-json",
|
|
52
|
+
message: "code-helper 配置不是合法 JSON",
|
|
53
|
+
path: configPath,
|
|
54
|
+
suggestion: "修复 JSON 语法,或运行 `npx @skrupellose/code-helper init` 重新生成配置。"
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
59
|
+
return [
|
|
60
|
+
{
|
|
61
|
+
level: "error",
|
|
62
|
+
code: "invalid-config-shape",
|
|
63
|
+
message: "code-helper 配置必须是 JSON 对象",
|
|
64
|
+
path: configPath,
|
|
65
|
+
suggestion: "运行 `npx @skrupellose/code-helper init` 重新生成配置。"
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
const features = parsed.features;
|
|
70
|
+
if (typeof features !== "object" || features === null || Array.isArray(features)) {
|
|
71
|
+
return [
|
|
72
|
+
{
|
|
73
|
+
level: "error",
|
|
74
|
+
code: "missing-feature-toggles",
|
|
75
|
+
message: "配置缺少 features 功能开关对象",
|
|
76
|
+
path: configPath,
|
|
77
|
+
suggestion: "运行 `npx @skrupellose/code-helper init` 补齐默认功能开关。"
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
return FEATURE_KEYS
|
|
82
|
+
.filter((feature) => !(feature in features))
|
|
83
|
+
.map((feature) => ({
|
|
84
|
+
level: "error",
|
|
85
|
+
code: "missing-feature-toggle",
|
|
86
|
+
message: `配置缺少功能开关:${feature}`,
|
|
87
|
+
path: configPath,
|
|
88
|
+
suggestion: "运行 `npx @skrupellose/code-helper init`,让工具补齐默认配置。"
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
26
91
|
/**
|
|
27
92
|
* 检查计划、结果、状态和测试文档是否遵守中文命名规则。
|
|
28
93
|
* 生成端已经强制中文命名;检查端负责发现用户手动创建或旧文档残留。
|
|
@@ -203,7 +268,8 @@ async function checkEntryDocuments(projectRoot, config) {
|
|
|
203
268
|
const issues = [];
|
|
204
269
|
const entryFiles = [
|
|
205
270
|
config.entryFiles.agents ? "AGENTS.md" : undefined,
|
|
206
|
-
config.entryFiles.claude ? "CLAUDE.md" : undefined
|
|
271
|
+
config.entryFiles.claude ? "CLAUDE.md" : undefined,
|
|
272
|
+
config.entryFiles.copilot ? ".github/copilot-instructions.md" : undefined
|
|
207
273
|
].filter((file) => file !== undefined);
|
|
208
274
|
for (const entryFile of entryFiles) {
|
|
209
275
|
const content = await readTextIfExists(projectPath(projectRoot, entryFile));
|
package/dist/checks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,5 +1,59 @@
|
|
|
1
|
+
import { type HookInstallTarget } from "./hooks.js";
|
|
2
|
+
import { type SkillRegistrationTarget } from "./skills.js";
|
|
3
|
+
import { type SelectOption } from "./terminal-ui.js";
|
|
1
4
|
/**
|
|
2
5
|
* CLI 主入口。
|
|
3
6
|
* 支持子命令,也支持无参数时进入交互菜单。
|
|
4
7
|
*/
|
|
5
8
|
export declare function runCli(argv: string[], projectRoot?: string): Promise<number>;
|
|
9
|
+
/**
|
|
10
|
+
* 主菜单条目。
|
|
11
|
+
* value 是数字兜底菜单和 switch 分发共用的稳定值,name 与 description 共同组成用户可见文案。
|
|
12
|
+
*/
|
|
13
|
+
export interface MainMenuItem {
|
|
14
|
+
value: string;
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 主菜单分组。
|
|
20
|
+
* 交互式 raw mode 菜单和非 raw mode 数字菜单都从这里生成,避免两套文案不同步。
|
|
21
|
+
*/
|
|
22
|
+
export interface MainMenuGroup {
|
|
23
|
+
title: string;
|
|
24
|
+
items: MainMenuItem[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 导出主菜单分组,供测试锁定菜单分组、命名和说明。
|
|
28
|
+
*/
|
|
29
|
+
export declare function getMainMenuGroups(): MainMenuGroup[];
|
|
30
|
+
/**
|
|
31
|
+
* 渲染主菜单分组标题。
|
|
32
|
+
* 标题使用中文常见的书名号式括号,和功能项形成明确视觉区分,且不依赖 ANSI 样式。
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatMainMenuGroupTitle(title: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* 渲染 raw mode 菜单中的单行功能项。
|
|
37
|
+
* 功能名按终端显示宽度补齐,保证说明从稳定列开始,便于快速扫描。
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatMainMenuSelectItemLabel(item: MainMenuItem): string;
|
|
40
|
+
/**
|
|
41
|
+
* 渲染数字兜底菜单中的功能项。
|
|
42
|
+
* 数字兜底没有高亮能力,因此把功能名和说明拆成两行,避免长说明挤在同一行。
|
|
43
|
+
*/
|
|
44
|
+
export declare function formatMainMenuTextItemLines(item: MainMenuItem): string[];
|
|
45
|
+
/**
|
|
46
|
+
* 构造 raw mode 单选菜单。
|
|
47
|
+
* 分组标题和分组间空行作为 disabled 选项展示,方向键会自动跳过。
|
|
48
|
+
*/
|
|
49
|
+
export declare function buildMainMenuSelectOptions(): Array<SelectOption<string>>;
|
|
50
|
+
/**
|
|
51
|
+
* 解析功能管理中 Skills 目标文本。
|
|
52
|
+
* 该函数导出给单元测试使用,确保非 raw mode 菜单和 raw mode 菜单使用同一套目标规则。
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseSkillTargetMenuSelection(value: string, inferredTargets?: SkillRegistrationTarget[]): SkillRegistrationTarget[];
|
|
55
|
+
/**
|
|
56
|
+
* 解析功能管理中 Agent hook 目标文本。
|
|
57
|
+
* GitHub Copilot 没有 Agent hook 安装位置,因此输入相关别名时直接给出清晰错误。
|
|
58
|
+
*/
|
|
59
|
+
export declare function parseAgentHookTargetMenuSelection(value: string, inferredSkillTargets?: SkillRegistrationTarget[]): Array<Exclude<HookInstallTarget, "git">>;
|