spec-wave 2.1.1
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/LICENSE +21 -0
- package/README.md +327 -0
- package/README.zh-CN.md +327 -0
- package/RELEASING.md +52 -0
- package/assets/README.md +30 -0
- package/assets/ci/samples/README.md +76 -0
- package/assets/ci/samples/hgm-ingest.yml.example +42 -0
- package/assets/ci/samples/lint-wiki-delta.pin.yml.example +47 -0
- package/assets/ci/samples/lint-wiki-delta.yml.example +49 -0
- package/assets/ci/samples/pytest.yml.example +49 -0
- package/assets/ci/samples/quality.yml.example +56 -0
- package/assets/ci/samples/skills-validate.yml.example +38 -0
- package/assets/ci/samples/tech-graph.yml.example +55 -0
- package/assets/coding_wiki/templates/README.md +115 -0
- package/assets/coding_wiki/templates/_index.md +19 -0
- package/assets/coding_wiki/templates/context.md +18 -0
- package/assets/coding_wiki/templates/stable.md +26 -0
- package/assets/coding_wiki/templates/topics/wiki_layout.md +13 -0
- package/assets/coding_wiki/templates/topics/wikilinks_export.md +13 -0
- package/assets/coding_wiki/templates/volatile.md +25 -0
- package/assets/docs/POINTER_ONBOARDING.md +9 -0
- package/assets/docs/POINTER_RUNBOOK_wiki_delta.md +18 -0
- package/assets/docs/POINTER_SDD_HAT_FLOW.md +8 -0
- package/assets/docs/POINTER_USER_GUIDE.md +8 -0
- package/assets/graph/stubs/README.md +6 -0
- package/assets/graph/templates/00_main.graph.yaml +72 -0
- package/assets/graph/templates/00_main.md +85 -0
- package/assets/graph/templates/01_struct.md +38 -0
- package/assets/graph/templates/02_version.md +7 -0
- package/assets/graph/templates/10_flow_MAIN.graph.yaml +105 -0
- package/assets/graph/templates/10_flow_MAIN.md +103 -0
- package/assets/graph/templates/99_mermaid_protocol.md +156 -0
- package/assets/graph/templates/README.md +66 -0
- package/assets/harness/README.md +18 -0
- package/assets/harness/discipline-coverage.yaml +320 -0
- package/assets/harness/invokes/README.md +22 -0
- package/assets/harness/invokes/TEMPLATE_invoke.md +61 -0
- package/assets/harness/lifecycle.yaml +127 -0
- package/assets/harness/prompts/00-orchestrator.md +91 -0
- package/assets/harness/prompts/10-spec-requirements.md +63 -0
- package/assets/harness/prompts/10-task-requirements.md +70 -0
- package/assets/harness/prompts/20-spec-audit.md +50 -0
- package/assets/harness/prompts/20-task-audit.md +90 -0
- package/assets/harness/prompts/30-execute-code.md +64 -0
- package/assets/harness/prompts/40-self-check.md +65 -0
- package/assets/harness/prompts/FRAGMENT_00_delegate_only_v1_zh.md +19 -0
- package/assets/harness/prompts/FRAGMENT_30_gate_verify_v1_zh.md +34 -0
- package/assets/harness/prompts/FRAGMENT_30_invoke_block_v1_zh.md +28 -0
- package/assets/harness/prompts/FRAGMENT_hat_reanchor_v1_zh.md +19 -0
- package/assets/harness/prompts/README.md +67 -0
- package/assets/harness/prompts/TEMPLATE_30_gate_stop.md +36 -0
- package/assets/harness/templates/FRAGMENT_task_domain_infer_v1_zh.md +16 -0
- package/assets/harness/templates/ONTOLOGY_consumer_slice_v1.md +41 -0
- package/assets/harness/templates/QUICKREF_v1_zh.md +35 -0
- package/assets/harness/templates/README.md +50 -0
- package/assets/harness/templates/TASK_TEMPLATE.md +133 -0
- package/assets/harness/templates/TASK_done_README.md +76 -0
- package/assets/harness/templates/TASK_epic.md +103 -0
- package/assets/harness/templates/TASK_graph_bootstrap.md +115 -0
- package/assets/harness/templates/VIEW_done_by_domain.md +66 -0
- package/assets/harness/templates/VIEW_done_thin_pointer.md +16 -0
- package/assets/ide/adapters/AGENTS.md.fragment.example +33 -0
- package/assets/ide/adapters/CLAUDE.md.fragment.example +32 -0
- package/assets/ide/adapters/README.md +57 -0
- package/assets/ide/adapters/cursor-harness-starter.mdc.example +39 -0
- package/assets/ide/commands/claude/kit/apply-standards.md +10 -0
- package/assets/ide/commands/claude/kit/gate-status.md +10 -0
- package/assets/ide/commands/claude/kit/graph-check.md +8 -0
- package/assets/ide/commands/claude/kit/hat-00-delegate.md +9 -0
- package/assets/ide/commands/claude/kit/hat-10-spec.md +9 -0
- package/assets/ide/commands/claude/kit/hat-10-task.md +9 -0
- package/assets/ide/commands/claude/kit/hat-20-spec-audit.md +9 -0
- package/assets/ide/commands/claude/kit/hat-20-task-audit.md +9 -0
- package/assets/ide/commands/claude/kit/hat-reanchor.md +8 -0
- package/assets/ide/commands/claude/kit/init-guide.md +16 -0
- package/assets/ide/commands/claude/kit/sync-prompts-guide.md +9 -0
- package/assets/ide/commands/claude/kit/verify.md +16 -0
- package/assets/ide/commands/cursor/kit-apply-standards.md +12 -0
- package/assets/ide/commands/cursor/kit-gate-status.md +12 -0
- package/assets/ide/commands/cursor/kit-graph-check.md +10 -0
- package/assets/ide/commands/cursor/kit-hat-00-delegate.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-10-spec.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-10-task.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-20-spec-audit.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-20-task-audit.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-reanchor.md +10 -0
- package/assets/ide/commands/cursor/kit-init-guide.md +18 -0
- package/assets/ide/commands/cursor/kit-sync-prompts-guide.md +11 -0
- package/assets/ide/commands/cursor/kit-verify.md +18 -0
- package/assets/ide/host-adapt/README.md +113 -0
- package/assets/ide/host-adapt/examples/mvp-hosts.yaml +78 -0
- package/assets/ide/host-adapt/host-adapt.schema.json +97 -0
- package/assets/ide/skills-orch/README.md +16 -0
- package/assets/ide/skills-orch/kit-apply-standards/SKILL.md +17 -0
- package/assets/ide/skills-orch/kit-gate-status/SKILL.md +17 -0
- package/assets/ide/skills-orch/kit-hat-reanchor/SKILL.md +15 -0
- package/assets/ide/skills-orch/kit-init-guide/SKILL.md +23 -0
- package/assets/ide/skills-orch/kit-verify/SKILL.md +23 -0
- package/assets/ontology.yaml +113 -0
- package/assets/skills/README.md +37 -0
- package/assets/skills/harness-00-delegate-only/SKILL.md +19 -0
- package/assets/skills/harness-10-spec/SKILL.md +63 -0
- package/assets/skills/harness-10-task/SKILL.md +70 -0
- package/assets/skills/harness-20-spec-audit/SKILL.md +50 -0
- package/assets/skills/harness-20-task-audit/SKILL.md +90 -0
- package/assets/skills/harness-20-task-audit/references/TEMPLATE_30_gate_stop.md +36 -0
- package/assets/skills/harness-hat-reanchor/SKILL.md +19 -0
- package/assets/standards/POINTER_workspace_truth_v1_zh.md +42 -0
- package/assets/standards/README.md +35 -0
- package/assets/standards/SOURCES_v1_zh.md +49 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L1_v1_zh.md +88 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L2_backend_v1_zh.md +75 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L2_frontend_v1_zh.md +76 -0
- package/bin/dsh-coding-kit.js +7 -0
- package/bin/specgate.js +7 -0
- package/bin/validate_template_compliance.py +470 -0
- package/cordis.patch.yml +5 -0
- package/lib/cli-checks.d.ts +68 -0
- package/lib/cli-checks.js +812 -0
- package/lib/cli-checks.js.map +1 -0
- package/lib/cli-graph-hgm.d.ts +74 -0
- package/lib/cli-graph-hgm.js +416 -0
- package/lib/cli-graph-hgm.js.map +1 -0
- package/lib/cli-graph-yaml.d.ts +79 -0
- package/lib/cli-graph-yaml.js +602 -0
- package/lib/cli-graph-yaml.js.map +1 -0
- package/lib/cli-graph.d.ts +1 -0
- package/lib/cli-graph.js +199 -0
- package/lib/cli-graph.js.map +1 -0
- package/lib/cli-host.d.ts +24 -0
- package/lib/cli-host.js +1197 -0
- package/lib/cli-host.js.map +1 -0
- package/lib/cli-lifecycle.d.ts +2 -0
- package/lib/cli-lifecycle.js +401 -0
- package/lib/cli-lifecycle.js.map +1 -0
- package/lib/cli-refresh-ide-blocks.d.ts +66 -0
- package/lib/cli-refresh-ide-blocks.js +484 -0
- package/lib/cli-refresh-ide-blocks.js.map +1 -0
- package/lib/cli-shared.d.ts +74 -0
- package/lib/cli-shared.js +281 -0
- package/lib/cli-shared.js.map +1 -0
- package/lib/cli-skills.d.ts +52 -0
- package/lib/cli-skills.js +363 -0
- package/lib/cli-skills.js.map +1 -0
- package/lib/cli-status.d.ts +2 -0
- package/lib/cli-status.js +251 -0
- package/lib/cli-status.js.map +1 -0
- package/lib/cli-sync-prompts.d.ts +25 -0
- package/lib/cli-sync-prompts.js +158 -0
- package/lib/cli-sync-prompts.js.map +1 -0
- package/lib/cli-sync.d.ts +2 -0
- package/lib/cli-sync.js +124 -0
- package/lib/cli-sync.js.map +1 -0
- package/lib/cli-task-extra.d.ts +53 -0
- package/lib/cli-task-extra.js +408 -0
- package/lib/cli-task-extra.js.map +1 -0
- package/lib/cli-timeline.d.ts +28 -0
- package/lib/cli-timeline.js +68 -0
- package/lib/cli-timeline.js.map +1 -0
- package/lib/cli-wiki.d.ts +21 -0
- package/lib/cli-wiki.js +189 -0
- package/lib/cli-wiki.js.map +1 -0
- package/lib/cli.d.ts +22 -0
- package/lib/cli.js +1034 -0
- package/lib/cli.js.map +1 -0
- package/lib/host-contract.d.ts +23 -0
- package/lib/host-contract.js +143 -0
- package/lib/host-contract.js.map +1 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +290 -0
- package/lib/index.js.map +1 -0
- package/lib/yaml.d.ts +4 -0
- package/lib/yaml.js +10 -0
- package/lib/yaml.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-status.js","sourceRoot":"","sources":["../src/cli-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Starter 白名单(R1 钉死 · 不含 README.md) */
|
|
2
|
+
export declare const SYNC_PROMPT_FILES: readonly ["00-orchestrator.md", "10-task-requirements.md", "10-spec-requirements.md", "20-task-audit.md", "20-spec-audit.md", "30-execute-code.md", "40-self-check.md", "FRAGMENT_30_gate_verify_v1_zh.md", "FRAGMENT_hat_reanchor_v1_zh.md", "FRAGMENT_00_delegate_only_v1_zh.md", "TEMPLATE_30_gate_stop.md"];
|
|
3
|
+
export declare const SYNC_TEMPLATE_FILES: readonly ["TASK_TEMPLATE.md"];
|
|
4
|
+
export type SyncPromptEntry = {
|
|
5
|
+
packageRel: string;
|
|
6
|
+
targetRel: string;
|
|
7
|
+
};
|
|
8
|
+
export type SyncPromptsPlan = {
|
|
9
|
+
skip: SyncPromptEntry[];
|
|
10
|
+
add: SyncPromptEntry[];
|
|
11
|
+
conflict: SyncPromptEntry[];
|
|
12
|
+
};
|
|
13
|
+
export type SyncPromptsResult = SyncPromptsPlan & {
|
|
14
|
+
dryRun: boolean;
|
|
15
|
+
written: SyncPromptEntry[];
|
|
16
|
+
};
|
|
17
|
+
export declare const SYNC_PROMPTS_USAGE = "\u7528\u6CD5:\n npx spec-wave sync prompts [--target PATH] [--yes] [--force] [--json]\n\n \u9ED8\u8BA4 dry-run\uFF08\u96F6\u5199\u5165\uFF09\uFF1B--yes \u5199\u5165 add \u9879\u5E76\u521B\u5EFA\u76EE\u6807\u76EE\u5F55\uFF1Bconflict \u9ED8\u8BA4\u4E0D\u8986\u76D6\uFF0C--force \u663E\u5F0F\u8986\u76D6\u3002\n \u524D\u7F6E\uFF1A\u76EE\u6807\u4ED3\u987B\u5DF2\u6709 .coding-kit/manifest.json\uFF08\u6216 legacy .cyning-harness/manifest.json\uFF1B\u5148 init\uFF09\u3002";
|
|
18
|
+
export declare function listSyncPromptEntries(): SyncPromptEntry[];
|
|
19
|
+
export declare function planSyncPrompts(target: string, root?: string): SyncPromptsPlan;
|
|
20
|
+
export declare function applySyncPrompts(target: string, opts: {
|
|
21
|
+
yes: boolean;
|
|
22
|
+
force: boolean;
|
|
23
|
+
root?: string;
|
|
24
|
+
}): SyncPromptsResult;
|
|
25
|
+
export declare function cmdSyncPrompts(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { fail, packageRoot, resolveLayoutFile, resolveTarget, takeOption } from "./cli-shared.js";
|
|
5
|
+
/** Starter 白名单(R1 钉死 · 不含 README.md) */
|
|
6
|
+
export const SYNC_PROMPT_FILES = [
|
|
7
|
+
'00-orchestrator.md',
|
|
8
|
+
'10-task-requirements.md',
|
|
9
|
+
'10-spec-requirements.md',
|
|
10
|
+
'20-task-audit.md',
|
|
11
|
+
'20-spec-audit.md',
|
|
12
|
+
'30-execute-code.md',
|
|
13
|
+
'40-self-check.md',
|
|
14
|
+
'FRAGMENT_30_gate_verify_v1_zh.md',
|
|
15
|
+
'FRAGMENT_hat_reanchor_v1_zh.md',
|
|
16
|
+
'FRAGMENT_00_delegate_only_v1_zh.md',
|
|
17
|
+
'TEMPLATE_30_gate_stop.md',
|
|
18
|
+
];
|
|
19
|
+
export const SYNC_TEMPLATE_FILES = ['TASK_TEMPLATE.md'];
|
|
20
|
+
export const SYNC_PROMPTS_USAGE = `用法:
|
|
21
|
+
npx spec-wave sync prompts [--target PATH] [--yes] [--force] [--json]
|
|
22
|
+
|
|
23
|
+
默认 dry-run(零写入);--yes 写入 add 项并创建目标目录;conflict 默认不覆盖,--force 显式覆盖。
|
|
24
|
+
前置:目标仓须已有 .coding-kit/manifest.json(或 legacy .cyning-harness/manifest.json;先 init)。`;
|
|
25
|
+
function sha256(body) {
|
|
26
|
+
return createHash('sha256').update(body, 'utf8').digest('hex');
|
|
27
|
+
}
|
|
28
|
+
function manifestPath(target) {
|
|
29
|
+
return resolveLayoutFile(target, 'manifest.json').abs;
|
|
30
|
+
}
|
|
31
|
+
function hasManifest(target) {
|
|
32
|
+
return resolveLayoutFile(target, 'manifest.json').source !== 'none';
|
|
33
|
+
}
|
|
34
|
+
export function listSyncPromptEntries() {
|
|
35
|
+
const out = [];
|
|
36
|
+
for (const name of SYNC_PROMPT_FILES) {
|
|
37
|
+
out.push({
|
|
38
|
+
packageRel: path.join('assets', 'harness', 'prompts', name).replace(/\\/g, '/'),
|
|
39
|
+
targetRel: path.join('docs', 'harness', 'prompts', name).replace(/\\/g, '/'),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
for (const name of SYNC_TEMPLATE_FILES) {
|
|
43
|
+
out.push({
|
|
44
|
+
packageRel: path.join('assets', 'harness', 'templates', name).replace(/\\/g, '/'),
|
|
45
|
+
targetRel: path.join('docs', 'harness', 'templates', name).replace(/\\/g, '/'),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
export function planSyncPrompts(target, root = packageRoot()) {
|
|
51
|
+
const skip = [];
|
|
52
|
+
const add = [];
|
|
53
|
+
const conflict = [];
|
|
54
|
+
for (const entry of listSyncPromptEntries()) {
|
|
55
|
+
const srcAbs = path.join(root, entry.packageRel);
|
|
56
|
+
const destAbs = path.join(target, entry.targetRel);
|
|
57
|
+
const srcBody = readFileSync(srcAbs, 'utf8');
|
|
58
|
+
const srcHash = sha256(srcBody);
|
|
59
|
+
if (!existsSync(destAbs)) {
|
|
60
|
+
add.push(entry);
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const destHash = sha256(readFileSync(destAbs, 'utf8'));
|
|
64
|
+
if (destHash === srcHash)
|
|
65
|
+
skip.push(entry);
|
|
66
|
+
else
|
|
67
|
+
conflict.push(entry);
|
|
68
|
+
}
|
|
69
|
+
return { skip, add, conflict };
|
|
70
|
+
}
|
|
71
|
+
function printHumanReport(result) {
|
|
72
|
+
const mode = result.dryRun ? 'dry-run' : 'apply';
|
|
73
|
+
console.log(`sync prompts (${mode}):`);
|
|
74
|
+
const sections = [
|
|
75
|
+
['skip', result.skip],
|
|
76
|
+
['add', result.add],
|
|
77
|
+
['conflict', result.conflict],
|
|
78
|
+
];
|
|
79
|
+
for (const [label, items] of sections) {
|
|
80
|
+
console.log(` ${label} (${items.length}):`);
|
|
81
|
+
if (items.length === 0) {
|
|
82
|
+
console.log(' (无)');
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
for (const item of items) {
|
|
86
|
+
if (label === 'conflict') {
|
|
87
|
+
console.log(` ${item.targetRel} — 本地已改 · 未覆盖 · 对照包内 ${item.packageRel}`);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
console.log(` ${item.targetRel}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (!result.dryRun && result.written.length > 0) {
|
|
95
|
+
console.log(` written (${result.written.length}):`);
|
|
96
|
+
for (const item of result.written)
|
|
97
|
+
console.log(` ${item.targetRel}`);
|
|
98
|
+
}
|
|
99
|
+
if (result.dryRun) {
|
|
100
|
+
console.log('(dry-run · 零写入 · 加 --yes 执行)');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export function applySyncPrompts(target, opts) {
|
|
104
|
+
const root = opts.root ?? packageRoot();
|
|
105
|
+
const plan = planSyncPrompts(target, root);
|
|
106
|
+
const dryRun = !opts.yes;
|
|
107
|
+
const written = [];
|
|
108
|
+
if (dryRun) {
|
|
109
|
+
return { ...plan, dryRun: true, written };
|
|
110
|
+
}
|
|
111
|
+
const toWrite = [...plan.add];
|
|
112
|
+
if (opts.force)
|
|
113
|
+
toWrite.push(...plan.conflict);
|
|
114
|
+
for (const entry of toWrite) {
|
|
115
|
+
const srcAbs = path.join(root, entry.packageRel);
|
|
116
|
+
const destAbs = path.join(target, entry.targetRel);
|
|
117
|
+
mkdirSync(path.dirname(destAbs), { recursive: true });
|
|
118
|
+
writeFileSync(destAbs, readFileSync(srcAbs, 'utf8'), 'utf8');
|
|
119
|
+
written.push(entry);
|
|
120
|
+
}
|
|
121
|
+
return { ...plan, dryRun: false, written };
|
|
122
|
+
}
|
|
123
|
+
export async function cmdSyncPrompts(args) {
|
|
124
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
125
|
+
console.log(SYNC_PROMPTS_USAGE);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const yes = args.includes('--yes');
|
|
129
|
+
const force = args.includes('--force');
|
|
130
|
+
let rest = args.filter((a) => a !== '--yes' && a !== '--force');
|
|
131
|
+
const json = rest.includes('--json');
|
|
132
|
+
rest = rest.filter((a) => a !== '--json');
|
|
133
|
+
const { value: targetArg, rest: r1 } = takeOption(rest, '--target');
|
|
134
|
+
rest = r1;
|
|
135
|
+
if (rest.length > 0)
|
|
136
|
+
fail(`sync prompts 未知参数: ${rest.join(' ')}`);
|
|
137
|
+
const target = resolveTarget(process.cwd(), targetArg);
|
|
138
|
+
if (!hasManifest(target)) {
|
|
139
|
+
fail('未接入(无 .coding-kit/manifest.json 或 legacy .cyning-harness/manifest.json)。建议: npx spec-wave init --preset harness-only --yes');
|
|
140
|
+
}
|
|
141
|
+
const result = applySyncPrompts(target, { yes, force });
|
|
142
|
+
if (json) {
|
|
143
|
+
console.log(JSON.stringify({
|
|
144
|
+
dry_run: result.dryRun,
|
|
145
|
+
skip: result.skip.map((e) => e.targetRel),
|
|
146
|
+
add: result.add.map((e) => e.targetRel),
|
|
147
|
+
conflict: result.conflict.map((e) => e.targetRel),
|
|
148
|
+
written: result.written.map((e) => e.targetRel),
|
|
149
|
+
}, null, 2));
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
printHumanReport(result);
|
|
153
|
+
}
|
|
154
|
+
if (!result.dryRun && result.conflict.length > 0 && !force) {
|
|
155
|
+
fail('存在 conflict 文件未覆盖(加 --force 显式覆盖,或人工合并后重跑)', 1);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=cli-sync-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-sync-prompts.js","sourceRoot":"","sources":["../src/cli-sync-prompts.ts"],"names":[],"mappings":"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"}
|
package/lib/cli-sync.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { cmdSyncPrompts, SYNC_PROMPTS_USAGE } from "./cli-sync-prompts.js";
|
|
4
|
+
import { fail, kitLayoutJoin, parseHarnessMeta, resolveTarget, takeOption } from "./cli-shared.js";
|
|
5
|
+
function extractHatId(filename) {
|
|
6
|
+
const base = path.basename(filename, '.md');
|
|
7
|
+
const parts = base.split('_');
|
|
8
|
+
if (parts.length >= 3 && parts[0] === 'invoke')
|
|
9
|
+
return parts[2];
|
|
10
|
+
return 'unknown';
|
|
11
|
+
}
|
|
12
|
+
function collectTaskEntryPoints(target) {
|
|
13
|
+
const entryBySlug = {};
|
|
14
|
+
const taskDirs = [path.join(target, 'docs/tasks/active'), path.join(target, 'docs/tasks/done')];
|
|
15
|
+
for (const dir of taskDirs) {
|
|
16
|
+
if (!existsSync(dir))
|
|
17
|
+
continue;
|
|
18
|
+
for (const name of readdirSync(dir)) {
|
|
19
|
+
if (!name.startsWith('task_') || !name.endsWith('.md'))
|
|
20
|
+
continue;
|
|
21
|
+
const content = readFileSync(path.join(dir, name), 'utf8');
|
|
22
|
+
const meta = parseHarnessMeta(content);
|
|
23
|
+
const slug = meta.task_slug;
|
|
24
|
+
if (!slug)
|
|
25
|
+
continue;
|
|
26
|
+
const points = {};
|
|
27
|
+
if (meta.entry_invoke_10_task)
|
|
28
|
+
points['10'] = meta.entry_invoke_10_task;
|
|
29
|
+
if (meta.entry_invoke_20)
|
|
30
|
+
points['20'] = meta.entry_invoke_20;
|
|
31
|
+
if (meta.entry_invoke_30)
|
|
32
|
+
points['30'] = meta.entry_invoke_30;
|
|
33
|
+
if (Object.keys(points).length === 0)
|
|
34
|
+
continue;
|
|
35
|
+
entryBySlug[slug] = {
|
|
36
|
+
task_markdown: path.relative(target, path.join(dir, name)).replace(/\\/g, '/'),
|
|
37
|
+
entry_points: points,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return entryBySlug;
|
|
42
|
+
}
|
|
43
|
+
export function generateInvokeIndex(target) {
|
|
44
|
+
const byTaskDir = path.join(target, 'docs/harness/invokes/by-task');
|
|
45
|
+
const indexFile = kitLayoutJoin(target, 'invoke_index.json');
|
|
46
|
+
const index = {
|
|
47
|
+
schema_version: '1',
|
|
48
|
+
generated_at: new Date().toISOString(),
|
|
49
|
+
index: {},
|
|
50
|
+
};
|
|
51
|
+
const taskEntries = collectTaskEntryPoints(target);
|
|
52
|
+
if (existsSync(byTaskDir)) {
|
|
53
|
+
for (const entry of readdirSync(byTaskDir, { withFileTypes: true })) {
|
|
54
|
+
if (!entry.isDirectory())
|
|
55
|
+
continue;
|
|
56
|
+
const slug = entry.name;
|
|
57
|
+
const slugDir = path.join(byTaskDir, slug);
|
|
58
|
+
const invokes = [];
|
|
59
|
+
for (const file of readdirSync(slugDir)) {
|
|
60
|
+
if (!file.startsWith('invoke_') || !file.endsWith('.md'))
|
|
61
|
+
continue;
|
|
62
|
+
const full = path.join(slugDir, file);
|
|
63
|
+
const stat = statSync(full);
|
|
64
|
+
invokes.push({
|
|
65
|
+
path: path.relative(target, full).replace(/\\/g, '/'),
|
|
66
|
+
mtime: Math.floor(stat.mtimeMs / 1000),
|
|
67
|
+
hat_id: extractHatId(file),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
invokes.sort((a, b) => a.path.localeCompare(b.path));
|
|
71
|
+
const record = { task_slug: slug, invokes };
|
|
72
|
+
if (taskEntries[slug]) {
|
|
73
|
+
record.task_markdown = taskEntries[slug].task_markdown;
|
|
74
|
+
record.entry_points = taskEntries[slug].entry_points;
|
|
75
|
+
}
|
|
76
|
+
index.index[slug] = record;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
for (const [slug, data] of Object.entries(taskEntries)) {
|
|
80
|
+
if (!index.index[slug]) {
|
|
81
|
+
index.index[slug] = {
|
|
82
|
+
task_slug: slug,
|
|
83
|
+
invokes: [],
|
|
84
|
+
task_markdown: data.task_markdown,
|
|
85
|
+
entry_points: data.entry_points,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
mkdirSync(path.dirname(indexFile), { recursive: true });
|
|
90
|
+
writeFileSync(indexFile, `${JSON.stringify(index, null, 2)}\n`);
|
|
91
|
+
return indexFile;
|
|
92
|
+
}
|
|
93
|
+
const SYNC_INDEX_USAGE = `用法: npx spec-wave sync index [--target PATH]`;
|
|
94
|
+
export async function cmdSync(args) {
|
|
95
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
96
|
+
console.log(`用法:
|
|
97
|
+
npx spec-wave sync index [--target PATH]
|
|
98
|
+
npx spec-wave sync prompts [--target PATH] [--yes] [--force] [--json]
|
|
99
|
+
|
|
100
|
+
子命令 help: sync index --help · sync prompts --help`);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const [sub, ...rest] = args;
|
|
104
|
+
if (sub === 'prompts') {
|
|
105
|
+
await cmdSyncPrompts(rest);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (sub === 'index' && (rest.includes('--help') || rest.includes('-h'))) {
|
|
109
|
+
console.log(SYNC_INDEX_USAGE);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (sub !== 'index') {
|
|
113
|
+
fail(`sync 子命令未知: ${sub ?? '(空)'}\n用法: sync index [--target PATH] · sync prompts [--target PATH] [--yes] [--force] [--json]`);
|
|
114
|
+
}
|
|
115
|
+
let remaining = rest;
|
|
116
|
+
const { value: targetArg, rest: r1 } = takeOption(remaining, '--target');
|
|
117
|
+
remaining = r1;
|
|
118
|
+
if (remaining.length > 0)
|
|
119
|
+
fail(`sync index 未知参数: ${remaining.join(' ')}`);
|
|
120
|
+
const target = resolveTarget(process.cwd(), targetArg);
|
|
121
|
+
const out = generateInvokeIndex(target);
|
|
122
|
+
console.log(`invoke_index: ${out}`);
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=cli-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-sync.js","sourceRoot":"","sources":["../src/cli-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACnG,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAElG,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/D,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc;IAI5C,MAAM,WAAW,GAAoF,EAAE,CAAA;IACvG,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAC/F,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC9B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAQ;YAChE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;YAC1D,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAA;YAC3B,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,MAAM,MAAM,GAA2B,EAAE,CAAA;YACzC,IAAI,IAAI,CAAC,oBAAoB;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAA;YACvE,IAAI,IAAI,CAAC,eAAe;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAA;YAC7D,IAAI,IAAI,CAAC,eAAe;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAA;YAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAC9C,WAAW,CAAC,IAAI,CAAC,GAAG;gBAClB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;gBAC9E,YAAY,EAAE,MAAM;aACrB,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC5D,MAAM,KAAK,GAYP;QACF,cAAc,EAAE,GAAG;QACnB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtC,KAAK,EAAE,EAAE;KACV,CAAA;IACD,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAClD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAQ;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAsD,EAAE,CAAA;YACrE,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,SAAQ;gBAClE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAC3B,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;oBACrD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACtC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;iBAC3B,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACpD,MAAM,MAAM,GAAiC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;YACzE,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,aAAa,CAAA;gBACtD,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,YAAY,CAAA;YACtD,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;gBAClB,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,EAAE;gBACX,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAA;QACH,CAAC;IACH,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvD,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IAC/D,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,gBAAgB,GAAG,8CAA8C,CAAA;AAEvE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC;;;;kDAIkC,CAAC,CAAA;QAC/C,OAAM;IACR,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1B,OAAM;IACR,CAAC;IACD,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QAC7B,OAAM;IACR,CAAC;IACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,IAAI,CACF,eAAe,GAAG,IAAI,KAAK,4FAA4F,CACxH,CAAA;IACH,CAAC;IACD,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACxE,SAAS,GAAG,EAAE,CAAA;IACd,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,oBAAoB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAA;IACtD,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAA;AACrC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare function lintDoneInvokes(target: string): {
|
|
2
|
+
ok: boolean;
|
|
3
|
+
missing: string[];
|
|
4
|
+
extra: string[];
|
|
5
|
+
doneCount: number;
|
|
6
|
+
invokeCount: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const WIKI_DELTA_LITERALS: Set<string>;
|
|
9
|
+
export declare const WIKI_DELTA_PATHISH_RE: RegExp;
|
|
10
|
+
export declare function lintWikiDeltaMissing(target: string, options?: {
|
|
11
|
+
scope?: string;
|
|
12
|
+
strict?: boolean;
|
|
13
|
+
}): {
|
|
14
|
+
ok: boolean;
|
|
15
|
+
missing: {
|
|
16
|
+
path: string;
|
|
17
|
+
scope: string;
|
|
18
|
+
code: string;
|
|
19
|
+
detail: string;
|
|
20
|
+
}[];
|
|
21
|
+
issues: {
|
|
22
|
+
path: string;
|
|
23
|
+
scope: string;
|
|
24
|
+
code: string;
|
|
25
|
+
detail: string;
|
|
26
|
+
}[];
|
|
27
|
+
scanned: number;
|
|
28
|
+
scope: string;
|
|
29
|
+
strict: boolean;
|
|
30
|
+
};
|
|
31
|
+
export declare function loadTaskSidecar(filePath: string): Record<string, unknown>;
|
|
32
|
+
export declare function validateTaskSidecar(data: Record<string, unknown>, fileLabel?: string): {
|
|
33
|
+
ok: boolean;
|
|
34
|
+
errors: string[];
|
|
35
|
+
};
|
|
36
|
+
export declare function checkTaskFile(filePath: string, options?: {
|
|
37
|
+
noCircular?: boolean;
|
|
38
|
+
registryDirs?: string[];
|
|
39
|
+
}): {
|
|
40
|
+
file: string;
|
|
41
|
+
task_slug: unknown;
|
|
42
|
+
validation: {
|
|
43
|
+
ok: boolean;
|
|
44
|
+
errors: string[];
|
|
45
|
+
};
|
|
46
|
+
cycle: {
|
|
47
|
+
ok: boolean;
|
|
48
|
+
cycle?: string[];
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export declare function cmdTaskLintDone(args: string[]): Promise<void>;
|
|
52
|
+
export declare function cmdTaskLintWikiDelta(args: string[]): Promise<void>;
|
|
53
|
+
export declare function cmdTaskCheck(rest: string[]): Promise<void>;
|