@chenmk/superflow 0.2.5 → 0.4.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 +24 -2
- package/README.zh-CN.md +17 -1
- package/assets/manifest.json +7 -4
- package/assets/prompts/superflow-clarify.md +6 -0
- package/assets/prompts/superflow-design.md +3 -0
- package/assets/prompts/superflow-docs.md +4 -1
- package/assets/prompts/superflow-pipeline.md +8 -0
- package/assets/scripts/superflow-archive-command-hook.sh +80 -0
- package/assets/scripts/superflow-delivery-check.sh +23 -4
- package/assets/scripts/superflow-dependency-update-hook.sh +1 -1
- package/assets/scripts/superflow-managed-work-check.mjs +194 -0
- package/assets/scripts/superflow-managed-work-guard.sh +103 -0
- package/assets/skills/openspec-propose/SKILL.md +11 -0
- package/assets/skills/superflow-archive/SKILL.md +5 -0
- package/assets/skills/superflow-clarify/SKILL.md +26 -7
- package/assets/skills/superflow-design/SKILL.md +38 -7
- package/assets/skills/superflow-docs/SKILL.md +27 -0
- package/assets/skills/superflow-pipeline/SKILL.md +75 -0
- package/assets/skills/superflow-pipeline/references/api-design-template.md +11 -0
- package/assets/skills/superflow-pipeline/references/batch-prompt-template.md +27 -0
- package/assets/skills/superflow-pipeline/references/document-templates.md +8 -0
- package/assets/skills/superflow-pipeline/references/implementation-prompt-template.md +29 -1
- package/assets/skills/superflow-pipeline/references/managed-work.md +58 -0
- package/assets/skills/superflow-pipeline/references/quality-gate.md +3 -0
- package/assets/skills/superflow-pipeline/references/superpower-technical-design-template.md +51 -0
- package/assets/skills/superflow-pipeline/references/test-execution-template.md +10 -0
- package/assets/skills/superflow-pipeline/scripts/superflow-archive.sh +1 -1
- package/assets/skills/superflow-pipeline/scripts/superflow-guard.sh +215 -2
- package/assets/skills/superflow-verify/SKILL.md +7 -0
- package/assets/skills-en/openspec-propose/SKILL.md +14 -0
- package/assets/skills-en/superflow-archive/SKILL.md +6 -0
- package/assets/skills-en/superflow-clarify/SKILL.md +26 -7
- package/assets/skills-en/superflow-design/SKILL.md +38 -6
- package/assets/skills-en/superflow-docs/SKILL.md +27 -0
- package/assets/skills-en/superflow-pipeline/SKILL.md +76 -0
- package/assets/skills-en/superflow-pipeline/references/api-design-template.md +13 -0
- package/assets/skills-en/superflow-pipeline/references/batch-prompt-template.md +16 -0
- package/assets/skills-en/superflow-pipeline/references/document-templates.md +5 -0
- package/assets/skills-en/superflow-pipeline/references/implementation-prompt-template.md +17 -0
- package/assets/skills-en/superflow-pipeline/references/managed-work.md +34 -0
- package/assets/skills-en/superflow-pipeline/references/quality-gate.md +25 -0
- package/assets/skills-en/superflow-pipeline/references/superpower-technical-design-template.md +57 -0
- package/assets/skills-en/superflow-pipeline/references/test-execution-template.md +12 -0
- package/assets/skills-en/superflow-pipeline/scripts/superflow-archive.sh +1 -1
- package/assets/skills-en/superflow-pipeline/scripts/superflow-guard.sh +214 -2
- package/assets/skills-en/superflow-verify/SKILL.md +8 -0
- package/dist/app/cli.js +120 -102
- package/dist/app/cli.js.map +1 -1
- package/dist/app/commands/archive.js +7 -3
- package/dist/app/commands/archive.js.map +1 -1
- package/dist/app/commands/change-guard.js +27 -0
- package/dist/app/commands/change-guard.js.map +1 -0
- package/dist/app/commands/design.js +2 -20
- package/dist/app/commands/design.js.map +1 -1
- package/dist/app/commands/init.js +7 -7
- package/dist/app/commands/init.js.map +1 -1
- package/dist/app/commands/managed-service.js +5 -0
- package/dist/app/commands/managed-service.js.map +1 -0
- package/dist/app/commands/pipeline.js +123 -3
- package/dist/app/commands/pipeline.js.map +1 -1
- package/dist/app/commands/status.js +199 -77
- package/dist/app/commands/status.js.map +1 -1
- package/dist/app/commands/uninstall.js +5 -2
- package/dist/app/commands/uninstall.js.map +1 -1
- package/dist/app/commands/update.js +33 -11
- package/dist/app/commands/update.js.map +1 -1
- package/dist/app/commands/verify.js +7 -3
- package/dist/app/commands/verify.js.map +1 -1
- package/dist/domains/config/cli-help.js +103 -73
- package/dist/domains/config/cli-help.js.map +1 -1
- package/dist/domains/config/context.js +1 -5
- package/dist/domains/config/context.js.map +1 -1
- package/dist/domains/deps.js +3 -6
- package/dist/domains/deps.js.map +1 -1
- package/dist/domains/hook.js +71 -37
- package/dist/domains/hook.js.map +1 -1
- package/dist/domains/managed-work/contract.js +218 -0
- package/dist/domains/managed-work/contract.js.map +1 -0
- package/dist/domains/managed-work/i18n.js +12 -0
- package/dist/domains/managed-work/i18n.js.map +1 -0
- package/dist/domains/managed-work/input.js +111 -0
- package/dist/domains/managed-work/input.js.map +1 -0
- package/dist/domains/managed-work/journal.js +122 -0
- package/dist/domains/managed-work/journal.js.map +1 -0
- package/dist/domains/managed-work/lock.js +40 -0
- package/dist/domains/managed-work/lock.js.map +1 -0
- package/dist/domains/managed-work/notifications.js +53 -0
- package/dist/domains/managed-work/notifications.js.map +1 -0
- package/dist/domains/managed-work/paths.js +18 -0
- package/dist/domains/managed-work/paths.js.map +1 -0
- package/dist/domains/managed-work/prompts.js +218 -0
- package/dist/domains/managed-work/prompts.js.map +1 -0
- package/dist/domains/managed-work/runner.js +626 -0
- package/dist/domains/managed-work/runner.js.map +1 -0
- package/dist/domains/managed-work/schemas.js +85 -0
- package/dist/domains/managed-work/schemas.js.map +1 -0
- package/dist/domains/managed-work/service.js +121 -0
- package/dist/domains/managed-work/service.js.map +1 -0
- package/dist/domains/managed-work/state.js +90 -0
- package/dist/domains/managed-work/state.js.map +1 -0
- package/dist/domains/managed-work/storage.js +181 -0
- package/dist/domains/managed-work/storage.js.map +1 -0
- package/dist/domains/managed-work/types.js +16 -0
- package/dist/domains/managed-work/types.js.map +1 -0
- package/dist/domains/managed-work/wait.js +40 -0
- package/dist/domains/managed-work/wait.js.map +1 -0
- package/dist/platform/agent-process.js +308 -0
- package/dist/platform/agent-process.js.map +1 -0
- package/dist/platform/assets.js +9 -0
- package/dist/platform/assets.js.map +1 -0
- package/dist/platform/process-liveness.js +10 -0
- package/dist/platform/process-liveness.js.map +1 -0
- package/dist/platform/version-check.js +30 -9
- package/dist/platform/version-check.js.map +1 -1
- package/package.json +3 -2
- package/scripts/release-notes-check.js +102 -0
package/dist/app/cli.js
CHANGED
|
@@ -1,213 +1,231 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Command } from
|
|
3
|
-
import { readFileSync } from
|
|
4
|
-
import { fileURLToPath } from
|
|
5
|
-
import { dirname, join } from
|
|
6
|
-
import { cliText, resolveCliLanguage } from
|
|
7
|
-
import { checkForUpdates } from
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
import { dirname, join } from "path";
|
|
6
|
+
import { cliText, resolveCliLanguage } from "../domains/config/cli-help.js";
|
|
7
|
+
import { checkForUpdates } from "../platform/version-check.js";
|
|
8
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
9
|
const __dirname = dirname(__filename);
|
|
10
|
-
const pkgPath = join(__dirname,
|
|
11
|
-
const pkg = JSON.parse(readFileSync(pkgPath,
|
|
10
|
+
const pkgPath = join(__dirname, "..", "..", "package.json");
|
|
11
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
12
12
|
// 启动时后台检查新版本(非阻塞,不 await)
|
|
13
13
|
checkForUpdates(pkg.version);
|
|
14
14
|
const program = new Command();
|
|
15
15
|
const helpText = cliText(resolveCliLanguage());
|
|
16
16
|
function resolveTargetPathArg(value, command, commandName) {
|
|
17
|
-
if (typeof value ===
|
|
17
|
+
if (typeof value === "string" && value.length > 0 && value !== ".")
|
|
18
18
|
return value;
|
|
19
19
|
const args = command?.args;
|
|
20
20
|
const first = args?.[0];
|
|
21
|
-
if (typeof first ===
|
|
21
|
+
if (typeof first === "string" && first.length > 0)
|
|
22
22
|
return first;
|
|
23
23
|
const index = process.argv.indexOf(commandName);
|
|
24
24
|
if (index >= 0) {
|
|
25
|
-
const valueOptions = new Set([
|
|
26
|
-
'--agent',
|
|
27
|
-
'--scope',
|
|
28
|
-
]);
|
|
25
|
+
const valueOptions = new Set(["--agent", "--scope"]);
|
|
29
26
|
for (let i = index + 1; i < process.argv.length; i++) {
|
|
30
27
|
const arg = process.argv[i];
|
|
31
28
|
if (valueOptions.has(arg)) {
|
|
32
29
|
i++;
|
|
33
30
|
continue;
|
|
34
31
|
}
|
|
35
|
-
if (!arg.startsWith(
|
|
32
|
+
if (!arg.startsWith("-"))
|
|
36
33
|
return arg;
|
|
37
34
|
}
|
|
38
35
|
}
|
|
39
|
-
return
|
|
36
|
+
return ".";
|
|
40
37
|
}
|
|
41
38
|
function commandOptions(options) {
|
|
42
|
-
const opts = options
|
|
39
|
+
const opts = options
|
|
40
|
+
?.opts;
|
|
43
41
|
return {
|
|
44
42
|
...program.opts(),
|
|
45
|
-
...(typeof opts ===
|
|
43
|
+
...(typeof opts === "function"
|
|
44
|
+
? opts.call(options)
|
|
45
|
+
: { ...options }),
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
program
|
|
49
|
-
.name(
|
|
49
|
+
.name("superflow")
|
|
50
50
|
.description(helpText.programDescription)
|
|
51
|
-
.option(
|
|
52
|
-
.option(
|
|
51
|
+
.option("--language <language>", helpText.languageOption)
|
|
52
|
+
.option("--lang <language>", helpText.languageOption)
|
|
53
53
|
.version(pkg.version);
|
|
54
54
|
program
|
|
55
|
-
.command(
|
|
55
|
+
.command("init [targetPath]")
|
|
56
56
|
.description(helpText.initDescription)
|
|
57
|
-
.option(
|
|
58
|
-
.option(
|
|
59
|
-
.option(
|
|
60
|
-
.option(
|
|
61
|
-
.option(
|
|
62
|
-
.option(
|
|
63
|
-
.option(
|
|
64
|
-
.option(
|
|
65
|
-
.option(
|
|
66
|
-
.option(
|
|
67
|
-
.option(
|
|
68
|
-
.option(
|
|
57
|
+
.option("--dry-run", helpText.dryRun)
|
|
58
|
+
.option("--agent <agent>", helpText.agentOption)
|
|
59
|
+
.option("--scope <scope>", helpText.scopeOption, "global")
|
|
60
|
+
.option("--language <language>", helpText.languageOption)
|
|
61
|
+
.option("--yes", helpText.yesOption)
|
|
62
|
+
.option("--json", helpText.jsonOption)
|
|
63
|
+
.option("--resume", helpText.resumeOption)
|
|
64
|
+
.option("--skip-existing", helpText.skipExistingOption)
|
|
65
|
+
.option("--overwrite", helpText.overwriteOption)
|
|
66
|
+
.option("--no-hooks", helpText.noHooksOption)
|
|
67
|
+
.option("--no-openspec-init", helpText.noOpenspecInitOption)
|
|
68
|
+
.option("--no-scan", helpText.noScanOption)
|
|
69
69
|
.action(async (targetPath, options) => {
|
|
70
|
-
const { initCommand } = await import(
|
|
70
|
+
const { initCommand } = await import("./commands/init.js");
|
|
71
71
|
await initCommand({
|
|
72
72
|
...commandOptions(options),
|
|
73
|
-
targetPath: resolveTargetPathArg(targetPath, options,
|
|
73
|
+
targetPath: resolveTargetPathArg(targetPath, options, "init"),
|
|
74
74
|
});
|
|
75
75
|
});
|
|
76
76
|
program
|
|
77
|
-
.command(
|
|
77
|
+
.command("scan")
|
|
78
78
|
.description(helpText.scanDescription)
|
|
79
|
-
.option(
|
|
80
|
-
.option(
|
|
81
|
-
.option(
|
|
79
|
+
.option("--dry-run", helpText.dryRun)
|
|
80
|
+
.option("--force", helpText.forceOption)
|
|
81
|
+
.option("--language <language>", helpText.languageOption)
|
|
82
82
|
.action(async (options) => {
|
|
83
|
-
const { scanCommand } = await import(
|
|
83
|
+
const { scanCommand } = await import("./commands/scan.js");
|
|
84
84
|
await scanCommand(commandOptions(options));
|
|
85
85
|
});
|
|
86
86
|
program
|
|
87
|
-
.command(
|
|
87
|
+
.command("clarify [feature]")
|
|
88
88
|
.description(helpText.clarifyDescription)
|
|
89
|
-
.option(
|
|
89
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
90
90
|
.action(async (feature, options) => {
|
|
91
|
-
const { clarifyCommand } = await import(
|
|
91
|
+
const { clarifyCommand } = await import("./commands/clarify.js");
|
|
92
92
|
await clarifyCommand(feature, options);
|
|
93
93
|
});
|
|
94
94
|
program
|
|
95
|
-
.command(
|
|
95
|
+
.command("docs [change]")
|
|
96
96
|
.description(helpText.docsDescription)
|
|
97
|
-
.option(
|
|
97
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
98
98
|
.action(async (change, options) => {
|
|
99
|
-
const { docsCommand } = await import(
|
|
99
|
+
const { docsCommand } = await import("./commands/docs.js");
|
|
100
100
|
await docsCommand(change, options);
|
|
101
101
|
});
|
|
102
102
|
program
|
|
103
|
-
.command(
|
|
103
|
+
.command("design [change]")
|
|
104
104
|
.description(helpText.designDescription)
|
|
105
|
-
.option(
|
|
105
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
106
106
|
.action(async (change, options) => {
|
|
107
|
-
const { designCommand } = await import(
|
|
107
|
+
const { designCommand } = await import("./commands/design.js");
|
|
108
108
|
await designCommand(change, options);
|
|
109
109
|
});
|
|
110
110
|
program
|
|
111
|
-
.command(
|
|
111
|
+
.command("implement [task]")
|
|
112
112
|
.description(helpText.implementDescription)
|
|
113
|
-
.option(
|
|
113
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
114
114
|
.action(async (task, options) => {
|
|
115
|
-
const { implementCommand } = await import(
|
|
115
|
+
const { implementCommand } = await import("./commands/implement.js");
|
|
116
116
|
await implementCommand(task, options);
|
|
117
117
|
});
|
|
118
118
|
program
|
|
119
|
-
.command(
|
|
119
|
+
.command("pipeline [request]")
|
|
120
120
|
.description(helpText.pipelineDescription)
|
|
121
|
-
.option(
|
|
121
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
122
|
+
.option("--managed", helpText.managedOption)
|
|
123
|
+
.option("--project <path>", helpText.managedProjectOption)
|
|
124
|
+
.option("--profile <profile>", helpText.managedProfileOption, "auto")
|
|
125
|
+
.option("--supervisor <agent>", helpText.managedSupervisorOption, "codex")
|
|
126
|
+
.option("--executor <agent>", helpText.managedExecutorOption)
|
|
127
|
+
.option("--add-dir <paths...>", helpText.managedAddDirOption)
|
|
128
|
+
.option("--resume-task <taskId>", helpText.managedResumeOption)
|
|
129
|
+
.option("--language <language>", helpText.languageOption)
|
|
130
|
+
.option("--dry-run", helpText.dryRun)
|
|
131
|
+
.action(async (request, options) => {
|
|
132
|
+
const { pipelineCommand } = await import("./commands/pipeline.js");
|
|
133
|
+
await pipelineCommand(request, commandOptions(options));
|
|
134
|
+
});
|
|
135
|
+
program
|
|
136
|
+
.command("managed-service", { hidden: true })
|
|
137
|
+
.option("--once")
|
|
122
138
|
.action(async (options) => {
|
|
123
|
-
const {
|
|
124
|
-
await
|
|
139
|
+
const { managedServiceCommand } = await import("./commands/managed-service.js");
|
|
140
|
+
await managedServiceCommand(options);
|
|
125
141
|
});
|
|
126
142
|
program
|
|
127
|
-
.command(
|
|
143
|
+
.command("verify [change]")
|
|
128
144
|
.description(helpText.verifyDescription)
|
|
129
|
-
.option(
|
|
145
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
130
146
|
.action(async (change, options) => {
|
|
131
|
-
const { verifyCommand } = await import(
|
|
147
|
+
const { verifyCommand } = await import("./commands/verify.js");
|
|
132
148
|
await verifyCommand(change, options);
|
|
133
149
|
});
|
|
134
150
|
program
|
|
135
|
-
.command(
|
|
151
|
+
.command("archive [change]")
|
|
136
152
|
.description(helpText.archiveDescription)
|
|
137
|
-
.option(
|
|
153
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
138
154
|
.action(async (change, options) => {
|
|
139
|
-
const { archiveCommand } = await import(
|
|
155
|
+
const { archiveCommand } = await import("./commands/archive.js");
|
|
140
156
|
await archiveCommand(change, options);
|
|
141
157
|
});
|
|
142
158
|
program
|
|
143
|
-
.command(
|
|
159
|
+
.command("status [path]")
|
|
144
160
|
.description(helpText.statusDescription)
|
|
145
|
-
.option(
|
|
146
|
-
.
|
|
147
|
-
|
|
148
|
-
await
|
|
161
|
+
.option("--json", helpText.jsonOption)
|
|
162
|
+
.option("--language <language>", helpText.languageOption)
|
|
163
|
+
.action(async (targetPath = ".", options) => {
|
|
164
|
+
const { statusCommand } = await import("./commands/status.js");
|
|
165
|
+
await statusCommand(targetPath, commandOptions(options));
|
|
149
166
|
});
|
|
150
167
|
program
|
|
151
|
-
.command(
|
|
168
|
+
.command("update [targetPath]")
|
|
152
169
|
.description(helpText.updateDescription)
|
|
153
|
-
.option(
|
|
154
|
-
.option(
|
|
155
|
-
.option(
|
|
156
|
-
.option(
|
|
157
|
-
.option(
|
|
158
|
-
.option(
|
|
170
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
171
|
+
.option("--scope <scope>", helpText.updateScopeOption, "auto")
|
|
172
|
+
.option("--dry-run", helpText.dryRun)
|
|
173
|
+
.option("--json", helpText.jsonOption)
|
|
174
|
+
.option("--no-hooks", helpText.noHooksUpdateOption)
|
|
175
|
+
.option("--with-package", helpText.withPackageOption)
|
|
176
|
+
.option("--language <language>", helpText.languageOption)
|
|
159
177
|
.action(async (targetPath, options) => {
|
|
160
|
-
const { updateCommand } = await import(
|
|
178
|
+
const { updateCommand } = await import("./commands/update.js");
|
|
161
179
|
await updateCommand({
|
|
162
180
|
...commandOptions(options),
|
|
163
|
-
targetPath: resolveTargetPathArg(targetPath, options,
|
|
181
|
+
targetPath: resolveTargetPathArg(targetPath, options, "update"),
|
|
164
182
|
});
|
|
165
183
|
});
|
|
166
184
|
program
|
|
167
|
-
.command(
|
|
185
|
+
.command("doctor [targetPath]")
|
|
168
186
|
.description(helpText.doctorDescription)
|
|
169
|
-
.option(
|
|
170
|
-
.option(
|
|
171
|
-
.option(
|
|
187
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
188
|
+
.option("--scope <scope>", helpText.commandScopeOption, "global")
|
|
189
|
+
.option("--json", helpText.jsonOption)
|
|
172
190
|
.action(async (targetPath, options) => {
|
|
173
|
-
const { doctorCommand } = await import(
|
|
191
|
+
const { doctorCommand } = await import("./commands/doctor.js");
|
|
174
192
|
await doctorCommand({
|
|
175
193
|
...commandOptions(options),
|
|
176
|
-
targetPath: resolveTargetPathArg(targetPath, options,
|
|
194
|
+
targetPath: resolveTargetPathArg(targetPath, options, "doctor"),
|
|
177
195
|
});
|
|
178
196
|
});
|
|
179
197
|
program
|
|
180
|
-
.command(
|
|
198
|
+
.command("uninstall [targetPath]")
|
|
181
199
|
.description(helpText.uninstallDescription)
|
|
182
|
-
.option(
|
|
183
|
-
.option(
|
|
184
|
-
.option(
|
|
185
|
-
.option(
|
|
186
|
-
.option(
|
|
187
|
-
.option(
|
|
200
|
+
.option("--agent <agent>", helpText.agentOption, "both")
|
|
201
|
+
.option("--scope <scope>", helpText.commandScopeOption, "global")
|
|
202
|
+
.option("--dry-run", helpText.dryRun)
|
|
203
|
+
.option("--json", helpText.jsonOption)
|
|
204
|
+
.option("--force", helpText.uninstallForceOption)
|
|
205
|
+
.option("--with-deps", helpText.withDepsOption)
|
|
188
206
|
.action(async (targetPath, options) => {
|
|
189
|
-
const { uninstallCommand } = await import(
|
|
207
|
+
const { uninstallCommand } = await import("./commands/uninstall.js");
|
|
190
208
|
await uninstallCommand({
|
|
191
209
|
...commandOptions(options),
|
|
192
|
-
targetPath: resolveTargetPathArg(targetPath, options,
|
|
210
|
+
targetPath: resolveTargetPathArg(targetPath, options, "uninstall"),
|
|
193
211
|
});
|
|
194
212
|
});
|
|
195
213
|
program
|
|
196
|
-
.command(
|
|
197
|
-
.description(
|
|
198
|
-
.option(
|
|
214
|
+
.command("check <change>")
|
|
215
|
+
.description("检查 SDD change 的文档完整性")
|
|
216
|
+
.option("--json", "输出 JSON")
|
|
199
217
|
.action(async (change, options) => {
|
|
200
|
-
const { checkCommand } = await import(
|
|
218
|
+
const { checkCommand } = await import("./commands/check.js");
|
|
201
219
|
await checkCommand(change, { json: options.json });
|
|
202
220
|
});
|
|
203
221
|
program
|
|
204
|
-
.command(
|
|
205
|
-
.description(
|
|
206
|
-
.option(
|
|
207
|
-
.option(
|
|
208
|
-
.option(
|
|
222
|
+
.command("config <change>")
|
|
223
|
+
.description("Set workflow config for a change (review_mode, auto_transition)")
|
|
224
|
+
.option("--review-mode <mode>", "Review mode: off | standard | thorough")
|
|
225
|
+
.option("--auto-transition <bool>", "Auto-advance phases: true | false")
|
|
226
|
+
.option("--json", "Output JSON")
|
|
209
227
|
.action(async (change, options) => {
|
|
210
|
-
const { configCommand } = await import(
|
|
228
|
+
const { configCommand } = await import("./commands/config.js");
|
|
211
229
|
await configCommand(change, {
|
|
212
230
|
reviewMode: options.reviewMode,
|
|
213
231
|
autoTransition: options.autoTransition,
|
package/dist/app/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/app/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvD,0BAA0B;AAC1B,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAE7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAE/C,SAAS,oBAAoB,CAC3B,KAAc,EACd,OAAgB,EAChB,WAAmB;IAEnB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/app/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { checkSkillDeployment } from
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { checkSkillDeployment, } from "../../domains/skill/check.js";
|
|
2
|
+
import { runArchiveDryRun } from "./change-guard.js";
|
|
3
|
+
const SKILL_NAME = "superflow-archive";
|
|
4
|
+
export async function archiveCommand(change, options = {}) {
|
|
5
|
+
if (change) {
|
|
6
|
+
runArchiveDryRun(change);
|
|
7
|
+
}
|
|
4
8
|
checkSkillDeployment(SKILL_NAME, options);
|
|
5
9
|
}
|
|
6
10
|
//# sourceMappingURL=archive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/app/commands/archive.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/app/commands/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAe,EACf,UAA6B,EAAE;IAE/B,IAAI,MAAM,EAAE,CAAC;QACX,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { ASSETS_DIR } from "../../platform/assets.js";
|
|
5
|
+
const PIPELINE_SCRIPTS = path.resolve(ASSETS_DIR, "skills", "superflow-pipeline", "scripts");
|
|
6
|
+
export function resolveChangeDir(change) {
|
|
7
|
+
const direct = path.resolve(change);
|
|
8
|
+
if (existsSync(direct))
|
|
9
|
+
return direct;
|
|
10
|
+
const openspecChange = path.resolve("openspec", "changes", change);
|
|
11
|
+
if (existsSync(openspecChange))
|
|
12
|
+
return openspecChange;
|
|
13
|
+
return direct;
|
|
14
|
+
}
|
|
15
|
+
export function runChangeGuard(change, phase) {
|
|
16
|
+
const guard = path.join(PIPELINE_SCRIPTS, "superflow-guard.sh");
|
|
17
|
+
execFileSync("bash", [guard, resolveChangeDir(change), phase], {
|
|
18
|
+
stdio: "inherit",
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export function runArchiveDryRun(change) {
|
|
22
|
+
const archive = path.join(PIPELINE_SCRIPTS, "superflow-archive.sh");
|
|
23
|
+
execFileSync("bash", [archive, resolveChangeDir(change), "--dry-run"], {
|
|
24
|
+
stdio: "inherit",
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=change-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-guard.js","sourceRoot":"","sources":["../../../src/app/commands/change-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CACnC,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,SAAS,CACV,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAEtC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnE,IAAI,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,cAAc,CAAC;IAEtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,KAA0B;IAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IAChE,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE;QAC7D,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;IACpE,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE;QACrE,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,28 +1,10 @@
|
|
|
1
|
-
import { execFileSync } from "node:child_process";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { fileURLToPath } from "node:url";
|
|
5
1
|
import { checkSkillDeployment, } from "../../domains/skill/check.js";
|
|
2
|
+
import { runChangeGuard } from "./change-guard.js";
|
|
6
3
|
const SKILL_NAME = "superflow-design";
|
|
7
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
-
const __dirname = path.dirname(__filename);
|
|
9
|
-
const GUARD = path.resolve(__dirname, "..", "..", "assets", "skills", "superflow-pipeline", "scripts", "superflow-guard.sh");
|
|
10
4
|
export async function designCommand(change, options = {}) {
|
|
11
5
|
if (change) {
|
|
12
|
-
|
|
6
|
+
runChangeGuard(change, "design");
|
|
13
7
|
}
|
|
14
8
|
checkSkillDeployment(SKILL_NAME, options);
|
|
15
9
|
}
|
|
16
|
-
function resolveChangeDir(change) {
|
|
17
|
-
const direct = path.resolve(change);
|
|
18
|
-
if (existsSync(direct))
|
|
19
|
-
return direct;
|
|
20
|
-
const openspecChange = path.resolve("openspec", "changes", change);
|
|
21
|
-
if (existsSync(openspecChange))
|
|
22
|
-
return openspecChange;
|
|
23
|
-
return direct;
|
|
24
|
-
}
|
|
25
|
-
function runDesignGuard(changeDir) {
|
|
26
|
-
execFileSync("bash", [GUARD, changeDir, "design"], { stdio: "inherit" });
|
|
27
|
-
}
|
|
28
10
|
//# sourceMappingURL=design.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design.js","sourceRoot":"","sources":["../../../src/app/commands/design.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"design.js","sourceRoot":"","sources":["../../../src/app/commands/design.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAe,EACf,UAA6B,EAAE;IAE/B,IAAI,MAAM,EAAE,CAAC;QACX,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
-
import { fileURLToPath } from 'url';
|
|
3
2
|
import { existsSync } from 'fs';
|
|
4
3
|
import { createInterface } from 'readline/promises';
|
|
5
4
|
import { stdin as input, stdout as output } from 'process';
|
|
6
5
|
import { detectOS } from '../../platform/os.js';
|
|
7
6
|
import { getPlatformPaths, stateFile } from '../../platform/paths.js';
|
|
8
7
|
import { parseAgentSelection, parseInstallScope, resolveAgents, } from '../../domains/agent.js';
|
|
9
|
-
import { installOpenspec, initializeOpenspec, openspecInitArgs, installSuperpowers, installCodexSuperpowers, installUnderstand, installCodexUnderstand, installApiDocChangelog, } from '../../domains/deps.js';
|
|
8
|
+
import { CODEX_SUPERPOWERS_PLUGIN, installOpenspec, initializeOpenspec, openspecInitArgs, installSuperpowers, installCodexSuperpowers, installUnderstand, installCodexUnderstand, installApiDocChangelog, } from '../../domains/deps.js';
|
|
10
9
|
import { deploySkill } from '../../domains/skill/deploy.js';
|
|
11
10
|
import { deployScripts } from '../../domains/skill/scripts.js';
|
|
12
11
|
import { deployPrompts } from '../../domains/skill/prompts.js';
|
|
@@ -16,10 +15,7 @@ import { loadState, saveState, initState } from '../../domains/state.js';
|
|
|
16
15
|
import { scaffoldBusinessContext, checkUnderstandScan, printSoftPrompt } from '../../domains/config/context.js';
|
|
17
16
|
import { ALL_RULES, ALL_SKILLS, CODEX_PROMPTS, scriptsForAgent, hookScriptsForAgent, } from '../../domains/skill/assets.js';
|
|
18
17
|
import { normalizeLanguage, t } from '../../domains/config/i18n.js';
|
|
19
|
-
|
|
20
|
-
const __dirname = path.dirname(__filename);
|
|
21
|
-
// dist/commands/init.js → ../../assets
|
|
22
|
-
const ASSETS_DIR = path.resolve(__dirname, '..', '..', 'assets');
|
|
18
|
+
import { ASSETS_DIR } from '../../platform/assets.js';
|
|
23
19
|
export async function initCommand(cmdOptions) {
|
|
24
20
|
// commander 的 --no-hooks 标志让 options.hooks = false;默认是 true
|
|
25
21
|
// commander 的 --no-scan 标志让 options.scan = false;默认是 true
|
|
@@ -257,7 +253,8 @@ export async function runInit(options) {
|
|
|
257
253
|
log('[dry-run] Claude plugins: superpowers / understand-anything / api-doc');
|
|
258
254
|
}
|
|
259
255
|
if (agents.includes('codex')) {
|
|
260
|
-
log(
|
|
256
|
+
log(`[dry-run] codex plugin add ${CODEX_SUPERPOWERS_PLUGIN}`);
|
|
257
|
+
log('[dry-run] Codex skills: understand-anything / api-doc');
|
|
261
258
|
}
|
|
262
259
|
if (agents.includes('opencode')) {
|
|
263
260
|
log('[dry-run] OpenCode: deploy skills/commands/scripts/rules; native hooks are not registered');
|
|
@@ -294,6 +291,9 @@ export async function runInit(options) {
|
|
|
294
291
|
const sup = await installCodexSuperpowers();
|
|
295
292
|
if (!sup.ok)
|
|
296
293
|
throw new Error(`codex superpowers install failed: ${sup.error}`);
|
|
294
|
+
log(zh
|
|
295
|
+
? ' ✓ Codex Superpowers 已安装,包含验证、代码评审和分支收尾技能'
|
|
296
|
+
: ' ✓ Codex Superpowers installed for verification, code review, and branch closeout');
|
|
297
297
|
const und = await installCodexUnderstand();
|
|
298
298
|
if (!und.ok)
|
|
299
299
|
warn(`[WARN] codex understand-anything: ${und.error}`);
|