ccg-workflow 1.7.73 → 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 CHANGED
@@ -293,4 +293,4 @@ MIT
293
293
 
294
294
  ---
295
295
 
296
- v1.7.73 | [Issues](https://github.com/fengshao1227/ccg-workflow/issues)
296
+ v1.7.75 | [Issues](https://github.com/fengshao1227/ccg-workflow/issues)
package/README.zh-CN.md CHANGED
@@ -295,4 +295,4 @@ MIT
295
295
 
296
296
  ---
297
297
 
298
- v1.7.73 | [Issues](https://github.com/fengshao1227/ccg-workflow/issues)
298
+ v1.7.75 | [Issues](https://github.com/fengshao1227/ccg-workflow/issues)
Binary file
Binary file
Binary file
Binary file
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.DoPpjMJ6.mjs';
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.DoPpjMJ6.mjs';
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.73";
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccg-workflow",
3
- "version": "1.7.73",
3
+ "version": "1.7.75",
4
4
  "description": "Claude + Codex + Gemini multi-model collaboration system - smart routing development workflow",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.17.1",
@@ -13,6 +13,8 @@ description: '按规范执行 + 多模型协作 + 归档'
13
13
  - **MANDATORY**: Request `unified diff patch` format from external models; they have zero write permission.
14
14
  - Keep implementation strictly within `tasks.md` scope—no scope creep.
15
15
  - Refer to `openspec/config.yaml` for conventions.
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
+ - **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.
16
18
 
17
19
  **Steps**
18
20
  1. **Select Change**
@@ -20,12 +22,17 @@ description: '按规范执行 + 多模型协作 + 归档'
20
22
  - Confirm with user which change ID to implement.
21
23
  - Run `openspec status --change "<change_id>" --json` to review tasks.
22
24
 
23
- 2. **Apply OPSX Change**
24
- - Call `/opsx:apply` to enter implementation mode:
25
+ 2. **Apply OPSX Change (Pre-flight Check)**
26
+ - Call `/opsx:apply` internally to enter implementation mode:
25
27
  ```
26
28
  /opsx:apply
27
29
  ```
28
30
  - This will load the change context and guide you through the tasks defined in `tasks.md`.
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`.
29
36
 
30
37
  3. **Identify Minimal Verifiable Phase**
31
38
  - Review `tasks.md` and identify the **smallest verifiable phase**.
@@ -112,11 +119,12 @@ description: '按规范执行 + 多模型协作 + 归档'
112
119
 
113
120
  10. **Archive on Completion**
114
121
  - When ALL tasks in `tasks.md` are marked `[x]`:
115
- - Call `/opsx:archive` to archive the change:
122
+ - Call `/opsx:archive` internally to archive the change:
116
123
  ```
117
124
  /opsx:archive
118
125
  ```
119
126
  - This merges spec deltas to `openspec/specs/` and moves change to archive.
127
+ - **Note**: This is an internal call. If archiving fails, guide the user to re-run `/ccg:spec-impl`.
120
128
 
121
129
  **Reference**
122
130
  - Check task status: `openspec status --change "<id>" --json`
@@ -13,6 +13,9 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
13
13
  - Multi-model collaboration is **mandatory**: use both Codex and Gemini.
14
14
  - If constraints cannot be fully specified, escalate to user or return to research phase.
15
15
  - Refer to `openspec/config.yaml` for project conventions.
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
+ - **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."
16
19
 
17
20
  **Steps**
18
21
  1. **Select Change**
@@ -84,7 +87,7 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
84
87
  - **Bounds**: Value ranges, size limits, rate constraints
85
88
 
86
89
  5. **Update OPSX Artifacts**
87
- - **BEFORE calling `/opsx:continue`**, output a structured summary for OPSX context:
90
+ - **BEFORE calling `/opsx:continue`** (internal skill call — do NOT expose this command to user), output a structured summary for OPSX context:
88
91
  ```markdown
89
92
  ## Planning Summary for OPSX
90
93
 
@@ -106,11 +109,15 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
106
109
  - [High-level task breakdown ready for tasks.md]
107
110
  ```
108
111
 
109
- - Then call `/opsx:continue` to generate next artifacts:
112
+ - Then call `/opsx:continue` internally to generate next artifacts:
110
113
  ```
111
114
  /opsx:continue
112
115
  ```
113
116
  - The OPSX skill will use the above summary to create specs.md, design.md, and tasks.md.
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.
114
121
 
115
122
  6. **Context Checkpoint**
116
123
  - Report current context usage.
@@ -15,6 +15,8 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
15
15
  - Each subagent context must be self-contained with independent output.
16
16
  - Use `{{MCP_SEARCH_TOOL}}` to minimize grep/find operations.
17
17
  - Do not make architectural decisions—surface constraints that guide decisions.
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."
18
20
 
19
21
  **Steps**
20
22
  0. **MANDATORY: Enhance Requirement FIRST**
@@ -110,7 +112,7 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
110
112
  - Capture responses as additional constraints.
111
113
 
112
114
  7. **Finalize OPSX Proposal**
113
- - **BEFORE calling `/opsx:continue`**, output a structured summary for OPSX context:
115
+ - **BEFORE calling `/opsx:continue`** (internal skill call — do NOT expose this command to user), output a structured summary for OPSX context:
114
116
  ```markdown
115
117
  ## Research Summary for OPSX
116
118
 
@@ -130,11 +132,15 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
130
132
  - [List all user decisions from Step 6]
131
133
  ```
132
134
 
133
- - Then call `/opsx:continue` to generate proposal artifact:
135
+ - Then call `/opsx:continue` internally to generate proposal artifact:
134
136
  ```
135
137
  /opsx:continue
136
138
  ```
137
139
  - The OPSX skill will use the above summary to write proposal.md.
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.
138
144
 
139
145
  8. **Context Checkpoint**
140
146
  - Report current context usage.