ccg-workflow 1.7.63 → 1.7.65
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/dist/cli.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/shared/{ccg-workflow.CJlHAzd-.mjs → ccg-workflow.DfYEh3he.mjs} +14 -2
- package/package.json +4 -2
- package/templates/commands/spec-impl.md +0 -2
- package/templates/commands/spec-init.md +0 -1
- package/templates/commands/spec-plan.md +0 -2
- package/templates/commands/spec-research.md +5 -11
- package/templates/commands/spec-review.md +1 -2
- package/templates/commands/team-plan.md +1 -1
package/README.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, s as showMainMenu, i as init, E as configMcp, F as version, a as i18n } 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, s as showMainMenu, i as init, E as configMcp, F as version, a as i18n } from './shared/ccg-workflow.DfYEh3he.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.DfYEh3he.mjs';
|
|
2
2
|
import 'ansis';
|
|
3
3
|
import 'inquirer';
|
|
4
4
|
import 'node:child_process';
|
|
@@ -10,7 +10,7 @@ import i18next from 'i18next';
|
|
|
10
10
|
import ora from 'ora';
|
|
11
11
|
import { parse, stringify } from 'smol-toml';
|
|
12
12
|
|
|
13
|
-
const version = "1.7.
|
|
13
|
+
const version = "1.7.65";
|
|
14
14
|
|
|
15
15
|
function isWindows() {
|
|
16
16
|
return process.platform === "win32";
|
|
@@ -489,7 +489,19 @@ function injectConfigVariables(content, config) {
|
|
|
489
489
|
const liteModeFlag = config.liteMode ? "--lite " : "";
|
|
490
490
|
processed = processed.replace(/\{\{LITE_MODE_FLAG\}\}/g, liteModeFlag);
|
|
491
491
|
const mcpProvider = config.mcpProvider || "ace-tool";
|
|
492
|
-
if (mcpProvider === "
|
|
492
|
+
if (mcpProvider === "skip") {
|
|
493
|
+
processed = processed.replace(/,\s*\{\{MCP_SEARCH_TOOL\}\}/g, "");
|
|
494
|
+
processed = processed.replace(
|
|
495
|
+
/```\n\{\{MCP_SEARCH_TOOL\}\}[\s\S]*?\n```/g,
|
|
496
|
+
"> MCP \u672A\u914D\u7F6E\u3002\u4F7F\u7528 `Glob` \u5B9A\u4F4D\u6587\u4EF6 + `Grep` \u641C\u7D22\u5173\u952E\u7B26\u53F7 + `Read` \u8BFB\u53D6\u6587\u4EF6\u5185\u5BB9\u3002"
|
|
497
|
+
);
|
|
498
|
+
processed = processed.replace(
|
|
499
|
+
/`\{\{MCP_SEARCH_TOOL\}\}`/g,
|
|
500
|
+
"`Glob + Grep`\uFF08MCP \u672A\u914D\u7F6E\uFF09"
|
|
501
|
+
);
|
|
502
|
+
processed = processed.replace(/\{\{MCP_SEARCH_TOOL\}\}/g, "Glob + Grep");
|
|
503
|
+
processed = processed.replace(/\{\{MCP_SEARCH_PARAM\}\}/g, "");
|
|
504
|
+
} else if (mcpProvider === "contextweaver") {
|
|
493
505
|
processed = processed.replace(/\{\{MCP_SEARCH_TOOL\}\}/g, "mcp__contextweaver__codebase-retrieval");
|
|
494
506
|
processed = processed.replace(/\{\{MCP_SEARCH_PARAM\}\}/g, "information_request");
|
|
495
507
|
} else {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccg-workflow",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.65",
|
|
4
4
|
"description": "Claude-Codex-Gemini 多模型协作系统 - 智能路由多模型开发工作流",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.17.1",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"start": "node bin/ccg.mjs",
|
|
72
72
|
"typecheck": "tsc --noEmit",
|
|
73
73
|
"prepublishOnly": "pnpm build",
|
|
74
|
+
"test": "vitest run",
|
|
74
75
|
"lint": "eslint",
|
|
75
76
|
"lint:fix": "eslint --fix"
|
|
76
77
|
},
|
|
@@ -93,6 +94,7 @@
|
|
|
93
94
|
"eslint": "^9.36.0",
|
|
94
95
|
"tsx": "^4.20.5",
|
|
95
96
|
"typescript": "^5.9.2",
|
|
96
|
-
"unbuild": "^3.6.1"
|
|
97
|
+
"unbuild": "^3.6.1",
|
|
98
|
+
"vitest": "^3.1.1"
|
|
97
99
|
}
|
|
98
100
|
}
|
|
@@ -109,14 +109,12 @@ description: '按规范执行 + 多模型协作 + 归档'
|
|
|
109
109
|
|
|
110
110
|
10. **Archive on Completion**
|
|
111
111
|
- When ALL tasks in `tasks.md` are marked `[x]`:
|
|
112
|
-
- **Verify first (v1.2+)**: Use `/opsx:verify` to validate implementation matches artifacts.
|
|
113
112
|
- The agent will use OpenSpec skills to archive the change.
|
|
114
113
|
- This merges spec deltas to `openspec/specs/` and moves change to archive.
|
|
115
114
|
|
|
116
115
|
**Reference**
|
|
117
116
|
- Check task status: `openspec status --change "<id>" --json`
|
|
118
117
|
- View active changes: `openspec list --json`
|
|
119
|
-
- Verify before archive (v1.2+): `/opsx:verify`
|
|
120
118
|
- Search existing patterns: `rg -n "function|class" <file>`
|
|
121
119
|
|
|
122
120
|
**Exit Criteria**
|
|
@@ -103,7 +103,6 @@ description: '初始化 OpenSpec (OPSX) 环境 + 验证多模型 MCP 工具'
|
|
|
103
103
|
|
|
104
104
|
**Reference**
|
|
105
105
|
- OpenSpec (OPSX) CLI: `npx @fission-ai/openspec --help`
|
|
106
|
-
- OPSX Commands (v1.2+): `/opsx:propose` (one-step), `/opsx:explore`, `/opsx:new`, `/opsx:ff`, `/opsx:apply`, `/opsx:verify`, `/opsx:archive`
|
|
107
106
|
- Profile Management: `openspec config profile`
|
|
108
107
|
- CCG Workflow: `npx ccg-workflow`
|
|
109
108
|
- Codex/Gemini MCP: Bundled with codeagent-wrapper
|
|
@@ -88,7 +88,6 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
|
|
|
88
88
|
* specs (Requirements + PBT)
|
|
89
89
|
* design (Technical decisions)
|
|
90
90
|
* tasks (Zero-decision implementation plan)
|
|
91
|
-
- **Fast-Forward Option (v1.2+)**: Use `/opsx:ff` to generate all planning artifacts at once instead of step-by-step with `/opsx:continue`.
|
|
92
91
|
- Ensure all resolved constraints and PBT properties are included in the generated artifacts.
|
|
93
92
|
|
|
94
93
|
6. **Context Checkpoint**
|
|
@@ -106,7 +105,6 @@ A change is ready for implementation only when:
|
|
|
106
105
|
**Reference**
|
|
107
106
|
- Inspect change: `openspec status --change "<id>" --json`
|
|
108
107
|
- List changes: `openspec list --json`
|
|
109
|
-
- Fast-forward artifacts (v1.2+): `/opsx:ff` — creates all planning artifacts at once
|
|
110
108
|
- Search patterns: `rg -n "INVARIANT:|PROPERTY:" openspec/`
|
|
111
109
|
- Use `AskUserQuestion` for ANY ambiguity—never assume
|
|
112
110
|
<!-- CCG:SPEC:PLAN:END -->
|
|
@@ -27,15 +27,11 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
|
|
|
27
27
|
```bash
|
|
28
28
|
openspec list --json
|
|
29
29
|
```
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
openspec new change "<brief-descriptive-name>"
|
|
37
|
-
```
|
|
38
|
-
- This scaffolds `openspec/changes/<name>/` with proposal.md.
|
|
30
|
+
- If change doesn't exist, create it:
|
|
31
|
+
```bash
|
|
32
|
+
openspec new change "<brief-descriptive-name>"
|
|
33
|
+
```
|
|
34
|
+
- This scaffolds `openspec/changes/<name>/` with proposal.md.
|
|
39
35
|
- If change already exists, continue with existing change.
|
|
40
36
|
|
|
41
37
|
2. **Initial Codebase Assessment**
|
|
@@ -99,8 +95,6 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
|
|
|
99
95
|
|
|
100
96
|
**Reference**
|
|
101
97
|
- OPSX CLI: `openspec status --change "<id>" --json`, `openspec list --json`
|
|
102
|
-
- One-step workflow (v1.2+): `/opsx:propose` — generates complete proposal from requirement
|
|
103
|
-
- Step-by-step workflow: `/opsx:new` → `/opsx:continue` or `/opsx:ff`
|
|
104
98
|
- Check prior research: `ls openspec/changes/*/`
|
|
105
99
|
- Use `AskUserQuestion` for ANY ambiguity—never assume or guess
|
|
106
100
|
<!-- CCG:SPEC:RESEARCH:END -->
|
|
@@ -117,6 +117,5 @@ Review is complete when:
|
|
|
117
117
|
- View proposal: `openspec status --change "<id>" --json`
|
|
118
118
|
- Check spec constraints: `rg -n "CONSTRAINT:|MUST|INVARIANT:" openspec/changes/<id>/specs/`
|
|
119
119
|
- View implementation diff: `git diff`
|
|
120
|
-
-
|
|
121
|
-
- Archive (after passing): `/opsx:archive` or `/ccg:spec-impl` → Step 10
|
|
120
|
+
- Archive (after passing): `/ccg:spec-impl` → Step 10
|
|
122
121
|
<!-- CCG:SPEC:REVIEW:END -->
|
|
@@ -16,7 +16,7 @@ description: 'Agent Teams 规划 - Lead 调用 Codex/Gemini 并行分析,产
|
|
|
16
16
|
**Steps**
|
|
17
17
|
1. **上下文收集**
|
|
18
18
|
- 用 Glob/Grep/Read 分析项目结构、技术栈、现有代码模式。
|
|
19
|
-
- 如果 `
|
|
19
|
+
- 如果 `{{MCP_SEARCH_TOOL}}` 可用,优先语义检索。
|
|
20
20
|
- 整理出:技术栈、目录结构、关键文件、现有模式。
|
|
21
21
|
|
|
22
22
|
2. **多模型并行分析(PARALLEL)**
|