ccg-workflow 1.7.74 → 1.7.75
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 +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/cli.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/shared/{ccg-workflow.Cj1gMkci.mjs → ccg-workflow.C09usDEA.mjs} +16 -3
- package/package.json +1 -1
- package/templates/commands/spec-impl.md +5 -1
- package/templates/commands/spec-plan.md +4 -0
- package/templates/commands/spec-research.md +4 -0
package/README.md
CHANGED
package/README.zh-CN.md
CHANGED
package/dist/cli.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import cac from 'cac';
|
|
3
3
|
import ansis from 'ansis';
|
|
4
|
-
import { z as diagnoseMcpConfig, A as isWindows, B as readClaudeCodeConfig, C as fixWindowsMcpConfig, D as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, a as i18n, s as showMainMenu, i as init, E as configMcp, F as version } from './shared/ccg-workflow.
|
|
4
|
+
import { z as diagnoseMcpConfig, A as isWindows, B as readClaudeCodeConfig, C as fixWindowsMcpConfig, D as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, a as i18n, s as showMainMenu, i as init, E as configMcp, F as version } from './shared/ccg-workflow.C09usDEA.mjs';
|
|
5
5
|
import 'inquirer';
|
|
6
6
|
import 'node:child_process';
|
|
7
7
|
import 'node:util';
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { c as changeLanguage, x as checkForUpdates, y as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, t as getCurrentVersion, v as getLatestVersion, j as getWorkflowById, h as getWorkflowConfigs, a as i18n, i as init, b as initI18n, l as installAceTool, m as installAceToolRs, k as installWorkflows, p as migrateToV1_4_0, q as needsMigration, r as readCcgConfig, s as showMainMenu, o as uninstallAceTool, n as uninstallWorkflows, u as update, w as writeCcgConfig } from './shared/ccg-workflow.
|
|
1
|
+
export { c as changeLanguage, x as checkForUpdates, y as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, t as getCurrentVersion, v as getLatestVersion, j as getWorkflowById, h as getWorkflowConfigs, a as i18n, i as init, b as initI18n, l as installAceTool, m as installAceToolRs, k as installWorkflows, p as migrateToV1_4_0, q as needsMigration, r as readCcgConfig, s as showMainMenu, o as uninstallAceTool, n as uninstallWorkflows, u as update, w as writeCcgConfig } from './shared/ccg-workflow.C09usDEA.mjs';
|
|
2
2
|
import 'ansis';
|
|
3
3
|
import 'inquirer';
|
|
4
4
|
import 'node:child_process';
|
|
@@ -10,7 +10,7 @@ import { parse, stringify } from 'smol-toml';
|
|
|
10
10
|
import i18next from 'i18next';
|
|
11
11
|
import ora from 'ora';
|
|
12
12
|
|
|
13
|
-
const version = "1.7.
|
|
13
|
+
const version = "1.7.75";
|
|
14
14
|
|
|
15
15
|
function isWindows() {
|
|
16
16
|
return process.platform === "win32";
|
|
@@ -669,9 +669,22 @@ ${workflow.description}
|
|
|
669
669
|
}
|
|
670
670
|
}
|
|
671
671
|
const skillsTemplateDir = join(templateDir, "skills");
|
|
672
|
-
const skillsDestDir = join(installDir, "skills");
|
|
672
|
+
const skillsDestDir = join(installDir, "skills", "ccg");
|
|
673
673
|
if (await fs.pathExists(skillsTemplateDir)) {
|
|
674
674
|
try {
|
|
675
|
+
const oldSkillsRoot = join(installDir, "skills");
|
|
676
|
+
const ccgLegacyItems = ["tools", "orchestration", "SKILL.md", "run_skill.js"];
|
|
677
|
+
const needsMigration = !await fs.pathExists(skillsDestDir) && await fs.pathExists(join(oldSkillsRoot, "tools"));
|
|
678
|
+
if (needsMigration) {
|
|
679
|
+
await fs.ensureDir(skillsDestDir);
|
|
680
|
+
for (const item of ccgLegacyItems) {
|
|
681
|
+
const oldPath = join(oldSkillsRoot, item);
|
|
682
|
+
const newPath = join(skillsDestDir, item);
|
|
683
|
+
if (await fs.pathExists(oldPath)) {
|
|
684
|
+
await fs.move(oldPath, newPath, { overwrite: true });
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
}
|
|
675
688
|
await fs.copy(skillsTemplateDir, skillsDestDir, {
|
|
676
689
|
overwrite: force,
|
|
677
690
|
errorOnExist: false
|
|
@@ -756,7 +769,7 @@ async function uninstallWorkflows(installDir) {
|
|
|
756
769
|
const commandsDir = join(installDir, "commands", "ccg");
|
|
757
770
|
join(installDir, ".ccg", "prompts");
|
|
758
771
|
const agentsDir = join(installDir, "agents", "ccg");
|
|
759
|
-
const skillsDir = join(installDir, "skills");
|
|
772
|
+
const skillsDir = join(installDir, "skills", "ccg");
|
|
760
773
|
const binDir = join(installDir, "bin");
|
|
761
774
|
const ccgConfigDir = join(installDir, ".ccg");
|
|
762
775
|
if (await fs.pathExists(commandsDir)) {
|
package/package.json
CHANGED
|
@@ -22,13 +22,17 @@ description: '按规范执行 + 多模型协作 + 归档'
|
|
|
22
22
|
- Confirm with user which change ID to implement.
|
|
23
23
|
- Run `openspec status --change "<change_id>" --json` to review tasks.
|
|
24
24
|
|
|
25
|
-
2. **Apply OPSX Change**
|
|
25
|
+
2. **Apply OPSX Change (Pre-flight Check)**
|
|
26
26
|
- Call `/opsx:apply` internally to enter implementation mode:
|
|
27
27
|
```
|
|
28
28
|
/opsx:apply
|
|
29
29
|
```
|
|
30
30
|
- This will load the change context and guide you through the tasks defined in `tasks.md`.
|
|
31
31
|
- **Note**: This is an internal call. If this step fails, guide the user to re-run `/ccg:spec-impl`.
|
|
32
|
+
- **HARD GATE**: Check the returned `state` field:
|
|
33
|
+
- If `state: "blocked"` → STOP immediately. Inform the user which artifacts are missing and suggest: "Run `/ccg:spec-plan` to generate missing artifacts first."
|
|
34
|
+
- If `progress.total === 0` → STOP immediately. Inform: "tasks.md has no parseable tasks. Run `/ccg:spec-plan` to regenerate."
|
|
35
|
+
- Only proceed to Step 3 when `state: "ready"` and `progress.total > 0`.
|
|
32
36
|
|
|
33
37
|
3. **Identify Minimal Verifiable Phase**
|
|
34
38
|
- Review `tasks.md` and identify the **smallest verifiable phase**.
|
|
@@ -15,6 +15,7 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
|
|
|
15
15
|
- Refer to `openspec/config.yaml` for project conventions.
|
|
16
16
|
- **USER GUIDANCE RULE**: When suggesting next steps to the user, ALWAYS use CCG commands (`/ccg:spec-research`, `/ccg:spec-plan`, `/ccg:spec-impl`, `/ccg:spec-review`). NEVER suggest `/opsx:*` commands to the user. If OpenSpec CLI returns error messages referencing OPSX skills, translate them to CCG equivalents.
|
|
17
17
|
- **TASKS FORMAT RULE**: When generating or modifying `tasks.md`, ALL tasks MUST use checkbox format (`- [ ] X.Y description`). Heading+bullet format will cause OpenSpec CLI to parse 0 tasks and block the workflow.
|
|
18
|
+
- **PHASE BOUNDARY**: This phase ONLY generates OPSX artifacts (specs.md, design.md, tasks.md). Do NOT modify any source code. Do NOT proceed to implementation. After artifacts are generated, STOP and inform the user: "Plan complete. Run `/ccg:spec-impl` to start implementation."
|
|
18
19
|
|
|
19
20
|
**Steps**
|
|
20
21
|
1. **Select Change**
|
|
@@ -114,6 +115,9 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
|
|
|
114
115
|
```
|
|
115
116
|
- The OPSX skill will use the above summary to create specs.md, design.md, and tasks.md.
|
|
116
117
|
- **Note**: This is an internal call. If this step fails, guide the user to re-run `/ccg:spec-plan`.
|
|
118
|
+
- **STOP**: After artifacts are generated, verify they exist and inform user:
|
|
119
|
+
"Plan phase complete. Artifacts generated: specs.md, design.md, tasks.md. Run `/ccg:spec-impl` to start implementation."
|
|
120
|
+
Do NOT proceed to modify source code.
|
|
117
121
|
|
|
118
122
|
6. **Context Checkpoint**
|
|
119
123
|
- Report current context usage.
|
|
@@ -16,6 +16,7 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
|
|
|
16
16
|
- Use `{{MCP_SEARCH_TOOL}}` to minimize grep/find operations.
|
|
17
17
|
- Do not make architectural decisions—surface constraints that guide decisions.
|
|
18
18
|
- **USER GUIDANCE RULE**: When suggesting next steps to the user, ALWAYS use CCG commands (`/ccg:spec-research`, `/ccg:spec-plan`, `/ccg:spec-impl`, `/ccg:spec-review`). NEVER suggest `/opsx:*` commands to the user. If OpenSpec CLI returns error messages referencing OPSX skills, translate them to CCG equivalents.
|
|
19
|
+
- **PHASE BOUNDARY**: This phase ONLY generates the OPSX proposal artifact. Do NOT modify any source code. Do NOT proceed to planning or implementation. After the proposal is generated, STOP and inform the user: "Research complete. Run `/ccg:spec-plan` to continue."
|
|
19
20
|
|
|
20
21
|
**Steps**
|
|
21
22
|
0. **MANDATORY: Enhance Requirement FIRST**
|
|
@@ -137,6 +138,9 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
|
|
|
137
138
|
```
|
|
138
139
|
- The OPSX skill will use the above summary to write proposal.md.
|
|
139
140
|
- **Note**: This is an internal call. If this step fails, guide the user to re-run `/ccg:spec-research`.
|
|
141
|
+
- **STOP**: After proposal is generated, verify it exists and inform user:
|
|
142
|
+
"Research phase complete. Proposal generated. Run `/ccg:spec-plan` to continue planning."
|
|
143
|
+
Do NOT proceed to planning or implementation.
|
|
140
144
|
|
|
141
145
|
8. **Context Checkpoint**
|
|
142
146
|
- Report current context usage.
|