ccg-workflow 1.7.51 → 1.7.53

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
@@ -43,34 +43,36 @@ npx ccg-workflow
43
43
  | `/ccg:worktree` | Worktree 管理 |
44
44
  | `/ccg:init` | 初始化 CLAUDE.md |
45
45
  | `/ccg:enhance` | Prompt 增强 |
46
- | `/ccg:spec-init` | 初始化 OpenSpec 环境 |
47
- | `/ccg:spec-research` | 需求 → 约束集 |
48
- | `/ccg:spec-plan` | 约束 → 零决策计划 |
49
- | `/ccg:spec-impl` | 按计划执行 + 归档 |
50
- | `/ccg:spec-review` | 双模型交叉审查 |
51
46
 
52
- ### OpenSpec 规范驱动(v1.7.48)
47
+ **注意**:v1.7.52 起,`/ccg:spec-*` 命令已迁移到 OPSX 架构。请使用 `/opsx:*` 命令代替:
48
+ - `/opsx:init` - 初始化 OPSX 环境
49
+ - `/opsx:research` - 需求 → 约束集
50
+ - `/opsx:plan` - 约束 → 零决策计划
51
+ - `/opsx:impl` - 按计划执行 + 归档
52
+ - `/opsx:review` - 双模型交叉审查
53
53
 
54
- 集成 [OpenSpec](https://github.com/fission-ai/openspec),把需求变成约束,让 AI 没法自由发挥:
54
+ ### OPSX 规范驱动(v1.7.52+)
55
+
56
+ 集成 [OPSX 架构](https://github.com/fission-ai/opsx),把需求变成约束,让 AI 没法自由发挥:
55
57
 
56
58
  ```bash
57
59
  # 初始化
58
- /ccg:spec-init
60
+ /opsx:init
59
61
 
60
62
  # 研究需求 → 输出约束集
61
- /ccg:spec-research 实现用户认证
63
+ /opsx:research 实现用户认证
62
64
 
63
65
  # 并行分析 → 零决策计划
64
- /ccg:spec-plan
66
+ /opsx:plan
65
67
 
66
68
  # 按计划执行
67
- /ccg:spec-impl
69
+ /opsx:impl
68
70
 
69
71
  # 独立审查(随时可用)
70
- /ccg:spec-review
72
+ /opsx:review
71
73
  ```
72
74
 
73
- 每阶段之间可 `/clear`,状态存在 `openspec/` 目录,不怕上下文爆。
75
+ **重要**:v1.7.52 起,旧的 `/ccg:spec-*` 命令已废弃,请使用 `/opsx:*` 命令。每阶段之间可 `/clear`,状态存在 `opsx/` 目录,不怕上下文爆。
74
76
 
75
77
  ### 规划与执行分离
76
78
 
@@ -187,4 +189,4 @@ MIT
187
189
 
188
190
  ---
189
191
 
190
- v1.7.48 | [Issues](https://github.com/fengshao1227/ccg-workflow/issues)
192
+ v1.7.52 | [Issues](https://github.com/fengshao1227/ccg-workflow/issues)
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.CEsTETSi.mjs';
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.SwZf2ogk.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.CEsTETSi.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.SwZf2ogk.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.51";
13
+ const version = "1.7.53";
14
14
 
15
15
  function isWindows() {
16
16
  return process.platform === "win32";
@@ -1863,20 +1863,23 @@ async function update() {
1863
1863
  }
1864
1864
  console.log();
1865
1865
  const effectiveNeedsUpdate = hasUpdate || needsWorkflowUpdate;
1866
+ let defaultConfirm = effectiveNeedsUpdate;
1866
1867
  let message;
1867
1868
  if (hasUpdate) {
1868
- message = `\u786E\u8BA4\u8981\u66F4\u65B0\u5230 v${latestVersion} \u5417\uFF1F\uFF08\u5148\u4E0B\u8F7D\u6700\u65B0\u5305 \u2192 \u5220\u9664\u65E7\u5DE5\u4F5C\u6D41 \u2192 \u5B89\u88C5\u65B0\u5DE5\u4F5C\u6D41\uFF09`;
1869
+ message = `\u53D1\u73B0\u65B0\u7248\u672C v${latestVersion} (\u5F53\u524D: v${currentVersion})\uFF0C\u662F\u5426\u66F4\u65B0\uFF1F`;
1870
+ defaultConfirm = true;
1869
1871
  } else if (needsWorkflowUpdate) {
1870
1872
  message = `\u68C0\u6D4B\u5230\u672C\u5730\u5DE5\u4F5C\u6D41\u7248\u672C (v${localVersion}) \u4F4E\u4E8E\u5F53\u524D\u7248\u672C (v${currentVersion})\uFF0C\u662F\u5426\u66F4\u65B0\uFF1F`;
1873
+ defaultConfirm = true;
1871
1874
  } else {
1872
- message = "\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C\u3002\u8981\u91CD\u65B0\u5B89\u88C5\u5417\uFF1F\uFF08\u5148\u4E0B\u8F7D\u6700\u65B0\u5305 \u2192 \u5220\u9664\u65E7\u5DE5\u4F5C\u6D41 \u2192 \u5B89\u88C5\u65B0\u5DE5\u4F5C\u6D41\uFF09";
1875
+ message = `\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C (v${currentVersion})\u3002\u662F\u5426\u5F3A\u5236\u91CD\u65B0\u5B89\u88C5/\u4FEE\u590D\u5DE5\u4F5C\u6D41\uFF1F`;
1876
+ defaultConfirm = false;
1873
1877
  }
1874
1878
  const { confirmUpdate } = await inquirer.prompt([{
1875
1879
  type: "confirm",
1876
1880
  name: "confirmUpdate",
1877
1881
  message,
1878
- default: effectiveNeedsUpdate
1879
- // Default to true if needs update
1882
+ default: defaultConfirm
1880
1883
  }]);
1881
1884
  if (!confirmUpdate) {
1882
1885
  console.log(ansis.gray("\u5DF2\u53D6\u6D88\u66F4\u65B0"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccg-workflow",
3
- "version": "1.7.51",
3
+ "version": "1.7.53",
4
4
  "description": "Claude-Codex-Gemini 多模型协作系统 - 智能路由多模型开发工作流",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.17.1",
@@ -12,16 +12,17 @@ description: '按规范执行 + 多模型协作 + 归档'
12
12
  - **NEVER** apply Codex/Gemini prototypes directly—all outputs are reference only.
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
- - Refer to `openspec/AGENTS.md` for conventions.
15
+ - Refer to `openspec/config.yaml` for conventions.
16
16
 
17
17
  **Steps**
18
- 1. **Select Proposal**
19
- - Run `openspec list` to inspect Active Changes.
20
- - Confirm with user which proposal ID to implement.
21
- - Run `openspec show <proposal_id>` to review tasks.
18
+ 1. **Select Change**
19
+ - Run `/opsx:list` to inspect Active Changes.
20
+ - Confirm with user which change ID to implement.
21
+ - Run `/opsx:show <change_id>` to review tasks.
22
22
 
23
- 2. **Apply OpenSpec Change**
24
- - Run `/openspec:apply <proposal_id>` to enter implementation mode.
23
+ 2. **Apply OPSX Change**
24
+ - Use `/ccg:spec-impl` (which uses OpenSpec skills internally) to enter implementation mode.
25
+ - This skill will guide you through the tasks defined in `tasks.md`.
25
26
 
26
27
  3. **Identify Minimal Verifiable Phase**
27
28
  - Review `tasks.md` and identify the **smallest verifiable phase**.
@@ -104,13 +105,13 @@ description: '按规范执行 + 多模型协作 + 归档'
104
105
 
105
106
  10. **Archive on Completion**
106
107
  - When ALL tasks in `tasks.md` are marked `[x]`:
107
- - Run `/openspec:archive <proposal_id>`
108
+ - The agent will use OpenSpec skills to archive the change.
108
109
  - This merges spec deltas to `openspec/specs/` and moves change to archive.
109
110
 
110
111
  **Reference**
111
- - Check task status: `openspec show <id>`
112
- - Validate before archive: `openspec validate <id>`
113
- - View active changes: `openspec list`
112
+ - Check task status: `/opsx:show <id>`
113
+ - Validate before archive: `/opsx:validate <id>`
114
+ - View active changes: `/opsx:list`
114
115
  - Search existing patterns: `rg -n "function|class" <file>`
115
116
 
116
117
  **Exit Criteria**
@@ -118,6 +119,5 @@ Implementation is complete when:
118
119
  - [ ] All tasks in `tasks.md` marked `[x]`
119
120
  - [ ] All multi-model reviews passed
120
121
  - [ ] Side-effect review confirmed no regressions
121
- - [ ] `openspec validate <id>` returns zero issues
122
122
  - [ ] Change archived successfully
123
123
  <!-- CCG:SPEC:IMPL:END -->
@@ -1,9 +1,9 @@
1
1
  ---
2
- description: '初始化 OpenSpec 环境 + 验证多模型 MCP 工具'
2
+ description: '初始化 OpenSpec (OPSX) 环境 + 验证多模型 MCP 工具'
3
3
  ---
4
4
  <!-- CCG:SPEC:INIT:START -->
5
5
  **Core Philosophy**
6
- - OpenSpec provides the specification framework; CCG adds multi-model collaboration.
6
+ - OPSX provides the specification framework; CCG adds multi-model collaboration.
7
7
  - This phase ensures all tools are ready before any development work begins.
8
8
  - Fail fast: detect missing dependencies early rather than mid-workflow.
9
9
 
@@ -18,20 +18,26 @@ description: '初始化 OpenSpec 环境 + 验证多模型 MCP 工具'
18
18
  - Identify OS using `uname -s` (Unix) or environment variables (Windows).
19
19
  - Inform user which OS was detected.
20
20
 
21
- 2. **Check and Install OpenSpec**
22
- - Verify if `openspec` CLI is installed: `openspec --version`
23
- - If not installed:
21
+ 2. **Check and Install OPSX**
22
+ - Verify if OPSX commands are available: `/opsx:version`
23
+ - If not installed or not found:
24
24
  ```bash
25
- npm install -g @fission-ai/openspec@latest
25
+ npm install -g @opsx/cli@latest
26
26
  ```
27
- - Confirm installation success.
27
+ - **Path Verification**:
28
+ - If `/opsx:version` command is not found after installation:
29
+ 1. Ensure Claude Code commands are properly loaded
30
+ 2. Restart Claude Code session if needed
31
+ 3. Check if OPSX skills are installed in `.claude/skills/`
32
+ - Confirm installation success by running `/opsx:version` again.
28
33
 
29
- 3. **Initialize OpenSpec for Current Project**
34
+ 3. **Initialize OPSX for Current Project**
30
35
  - Run:
31
36
  ```bash
32
- openspec init --tools claude
37
+ /opsx:init --tools claude
33
38
  ```
34
39
  - Verify `openspec/` directory structure is created.
40
+ - Verify `.claude/skills/` contains `opsx-*` skills.
35
41
  - Report any errors with remediation steps.
36
42
 
37
43
  4. **Validate Multi-Model MCP Tools**
@@ -47,26 +53,39 @@ description: '初始化 OpenSpec 环境 + 验证多模型 MCP 工具'
47
53
  - For each unavailable tool, display warning with installation instructions.
48
54
 
49
55
  5. **Validate Context Retrieval MCP** (Optional)
50
- - Check if `mcp__ace-tool__search_context` is available.
51
- - If not, suggest: "Run `npx ccg-workflow` and select ace-tool MCP option."
56
+ - **Check Active Tool**: Is `mcp__ace-tool__search_context` available in the current session?
57
+ - **Check Configuration**: If tool is missing, check `~/.claude.json` (or `%APPDATA%\Claude\claude.json` on Windows) for `"ace-tool"` or `"ace-tool-rs"` in `mcpServers`.
58
+ - **Diagnosis**:
59
+ - If tool available: Mark as "✓ Active".
60
+ - If config exists but tool missing: Mark as "⚠️ Configured but inactive (Try restarting Claude)".
61
+ - If neither: Mark as "○ Not installed (Optional)".
62
+ - If not installed/configured, suggest: "Run `npx ccg-workflow` and select ace-tool MCP option."
52
63
 
53
64
  6. **Summary Report**
54
65
  Display status table:
55
66
  ```
56
67
  Component Status
57
68
  ─────────────────────────────────
58
- OpenSpec CLI ✓/✗
69
+ OPSX CLI ✓/✗
59
70
  Project initialized ✓/✗
71
+ OPSX Skills ✓/✗
60
72
  codeagent-wrapper ✓/✗
61
73
  Codex backend ✓/✗
62
74
  Gemini backend ✓/✗
63
75
  ace-tool MCP ✓/✗ (optional)
64
76
  ```
65
- If any required components missing, list actions before proceeding.
77
+
78
+ **Next Steps (Use CCG Encapsulated Commands)**
79
+ 1. Start Research: `/ccg:spec-research "description"`
80
+ 2. Plan & Design: `/ccg:spec-plan`
81
+ 3. Implement: `/ccg:spec-impl` (Includes auto-review & archive)
82
+
83
+ **Standalone Tools (Available Anytime)**
84
+ - Code Review: `/ccg:spec-review` (Independent dual-model review)
66
85
 
67
86
  **Reference**
68
- - OpenSpec CLI: `openspec --help`
87
+ - OPSX CLI: `/opsx:help`
69
88
  - CCG Workflow: `npx ccg-workflow`
70
89
  - Codex/Gemini MCP: Bundled with codeagent-wrapper
71
- - Node.js >= 18.x required for OpenSpec
90
+ - Node.js >= 18.x required for OPSX
72
91
  <!-- CCG:SPEC:INIT:END -->
@@ -12,13 +12,13 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
12
12
  - Do not proceed to implementation until every ambiguity is resolved.
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
- - Refer to `openspec/AGENTS.md` for conventions; run `openspec update` if missing.
15
+ - Refer to `openspec/config.yaml` for project conventions.
16
16
 
17
17
  **Steps**
18
- 1. **Select Proposal**
19
- - Run `openspec list` to display Active Changes.
20
- - Confirm with user which proposal ID to refine.
21
- - Run `openspec show <proposal_id>` to review current state.
18
+ 1. **Select Change**
19
+ - Run `/opsx:list` to display Active Changes.
20
+ - Confirm with user which change ID to refine.
21
+ - Run `/opsx:status <change_id>` to review current state.
22
22
 
23
23
  2. **Multi-Model Implementation Analysis (PARALLEL)**
24
24
  - **CRITICAL**: You MUST launch BOTH Codex AND Gemini in a SINGLE message with TWO Bash tool calls.
@@ -29,7 +29,7 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
29
29
  **FIRST Bash call (Codex)**:
30
30
  ```
31
31
  Bash({
32
- command: "~/.claude/bin/codeagent-wrapper --backend codex - \"$PWD\" <<'EOF'\nAnalyze proposal <proposal_id> from backend perspective:\n- Implementation approach\n- Technical risks\n- Alternative architectures\n- Edge cases and failure modes\nOUTPUT: JSON with analysis\nEOF",
32
+ command: "~/.claude/bin/codeagent-wrapper --backend codex - \"$PWD\" <<'EOF'\nAnalyze change <change_id> from backend perspective:\n- Implementation approach\n- Technical risks\n- Alternative architectures\n- Edge cases and failure modes\nOUTPUT: JSON with analysis\nEOF",
33
33
  run_in_background: true,
34
34
  timeout: 300000,
35
35
  description: "Codex: backend analysis"
@@ -39,7 +39,7 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
39
39
  **SECOND Bash call (Gemini) - IN THE SAME MESSAGE**:
40
40
  ```
41
41
  Bash({
42
- command: "~/.claude/bin/codeagent-wrapper --backend gemini - \"$PWD\" <<'EOF'\nAnalyze proposal <proposal_id> from frontend/integration perspective:\n- Maintainability assessment\n- Scalability considerations\n- Integration conflicts\nOUTPUT: JSON with analysis\nEOF",
42
+ command: "~/.claude/bin/codeagent-wrapper --backend gemini - \"$PWD\" <<'EOF'\nAnalyze change <change_id> from frontend/integration perspective:\n- Maintainability assessment\n- Scalability considerations\n- Integration conflicts\nOUTPUT: JSON with analysis\nEOF",
43
43
  run_in_background: true,
44
44
  timeout: 300000,
45
45
  description: "Gemini: frontend analysis"
@@ -82,28 +82,28 @@ description: '多模型分析 → 消除歧义 → 零决策可执行计划'
82
82
  - **Monotonicity**: Ordering guarantees (e.g., timestamps increase)
83
83
  - **Bounds**: Value ranges, size limits, rate constraints
84
84
 
85
- 5. **Update OpenSpec Documents**
86
- - Run `/openspec:proposal <proposal_id>` to update specs with:
87
- * All resolved constraints
88
- * PBT properties in spec format
89
- * Zero-decision task sequence
90
- - Run `openspec validate <proposal_id>` to verify format.
85
+ 5. **Update OPSX Artifacts**
86
+ - The agent will use OpenSpec skills to generate/update:
87
+ * specs (Requirements + PBT)
88
+ * design (Technical decisions)
89
+ * tasks (Zero-decision implementation plan)
90
+ - Ensure all resolved constraints and PBT properties are included in the generated artifacts.
91
91
 
92
92
  6. **Context Checkpoint**
93
93
  - Report current context usage.
94
- - If approaching 80K tokens, suggest: "Run `/clear` and continue with `/ccg:spec:impl`"
94
+ - If approaching 80K tokens, suggest: "Run `/clear` and continue with `/ccg:spec-impl`"
95
95
 
96
96
  **Exit Criteria**
97
- A proposal is ready for implementation only when:
97
+ A change is ready for implementation only when:
98
98
  - [ ] All multi-model analyses completed and synthesized
99
99
  - [ ] Zero ambiguities remain (verified by step 3 audit)
100
100
  - [ ] All PBT properties documented with falsification strategies
101
- - [ ] `openspec validate <id>` returns zero issues
101
+ - [ ] Artifacts (specs, design, tasks) generated via OpenSpec skills
102
102
  - [ ] User has explicitly approved all constraint decisions
103
103
 
104
104
  **Reference**
105
- - Inspect proposal: `openspec show <id> --json`
106
- - Check conflicts: `openspec list --specs`
105
+ - Inspect change: `/opsx:status <id>`
106
+ - Check conflicts: `/opsx:schemas`
107
107
  - Search patterns: `rg -n "INVARIANT:|PROPERTY:" openspec/`
108
108
  - Use `AskUserQuestion` for ANY ambiguity—never assume
109
109
  <!-- CCG:SPEC:PLAN:END -->
@@ -1,12 +1,12 @@
1
1
  ---
2
- description: '需求 → 约束集(并行探索 + OpenSpec 提案)'
2
+ description: '需求 → 约束集(并行探索 + OPSX 提案)'
3
3
  ---
4
4
  <!-- CCG:SPEC:RESEARCH:START -->
5
5
  **Core Philosophy**
6
6
  - Research produces **constraint sets**, not information dumps. Each constraint narrows the solution space.
7
7
  - Constraints tell subsequent stages "don't consider this direction," enabling mechanical execution without decisions.
8
8
  - Output: 约束集合 + 可验证的成功判据 (constraint sets + verifiable success criteria).
9
- - Strictly adhere to OpenSpec rules when writing spec-structured documents.
9
+ - Strictly adhere to OPSX rules when writing spec-structured documents.
10
10
 
11
11
  **Guardrails**
12
12
  - **STOP! BEFORE ANY OTHER ACTION**: You MUST call `mcp__ace-tool__enhance_prompt` FIRST. This is NON-NEGOTIABLE.
@@ -30,9 +30,13 @@ description: '需求 → 约束集(并行探索 + OpenSpec 提案)'
30
30
  - Wait for enhanced prompt result.
31
31
  - Use enhanced prompt for ALL subsequent steps.
32
32
 
33
- 1. **Generate OpenSpec Proposal**
34
- - Run: `/openspec:proposal $ARGUMENTS`
35
- - This scaffolds `openspec/changes/<name>/` with proposal.md, tasks.md, specs/.
33
+ 1. **Generate OPSX Change**
34
+ - Create a new change using OPSX command:
35
+ ```bash
36
+ /opsx:new "<brief-descriptive-name>"
37
+ ```
38
+ - This scaffolds `openspec/changes/<name>/` with proposal.md.
39
+ - If change already exists, use `/opsx:list` to find it and continue.
36
40
 
37
41
  2. **Initial Codebase Assessment**
38
42
  - Use `mcp__ace-tool__search_context` to scan codebase.
@@ -78,8 +82,8 @@ description: '需求 → 约束集(并行探索 + OpenSpec 提案)'
78
82
  * Suggest defaults when applicable
79
83
  - Capture responses as additional constraints.
80
84
 
81
- 7. **Finalize OpenSpec Proposal**
82
- - Transform constraint sets into OpenSpec format:
85
+ 7. **Finalize OPSX Proposal**
86
+ - Transform constraint sets into OPSX format:
83
87
  * **Context**: User need + discovered constraints
84
88
  * **Requirements**: Each constraint becomes requirement with scenario
85
89
  * **Success Criteria**: Derived from hints and user confirmations
@@ -91,11 +95,10 @@ description: '需求 → 约束集(并行探索 + OpenSpec 提案)'
91
95
 
92
96
  8. **Context Checkpoint**
93
97
  - Report current context usage.
94
- - If approaching 80K tokens, suggest: "Run `/clear` and continue with `/ccg:spec:plan`"
98
+ - If approaching 80K tokens, suggest: "Run `/clear` and continue with `/ccg:spec-plan`"
95
99
 
96
100
  **Reference**
97
- - Review constraints: `rg -n "Constraint:|MUST|MUST NOT" openspec/specs`
101
+ - OPSX CLI: `/opsx:status`, `/opsx:show`
98
102
  - Check prior research: `ls openspec/changes/*/`
99
- - Use `openspec show <name>` to inspect proposal structure
100
103
  - Use `AskUserQuestion` for ANY ambiguity—never assume or guess
101
104
  <!-- CCG:SPEC:RESEARCH:END -->
@@ -15,13 +15,13 @@ description: '双模型交叉审查(独立工具,随时可用)'
15
15
 
16
16
  **Steps**
17
17
  1. **Select Proposal**
18
- - Run `openspec list` to display Active Changes.
18
+ - Run `/opsx:list` to display Active Changes.
19
19
  - Confirm with user which proposal ID to review.
20
- - Run `openspec show <proposal_id>` to load spec and tasks.
20
+ - Run `/opsx:show <proposal_id>` to load spec and tasks.
21
21
 
22
22
  2. **Collect Implementation Artifacts**
23
23
  - Identify all files modified by this proposal.
24
- - Use `git diff` or `openspec diff <proposal_id>` to get change summary.
24
+ - Use `git diff` or `/opsx:diff <proposal_id>` to get change summary.
25
25
  - Load relevant spec constraints and PBT properties from `openspec/changes/<id>/specs/`.
26
26
 
27
27
  3. **Multi-Model Review (PARALLEL)**
@@ -113,8 +113,8 @@ Review is complete when:
113
113
  - [ ] User decision captured (archive / return to impl / defer)
114
114
 
115
115
  **Reference**
116
- - View proposal: `openspec show <id>`
116
+ - View proposal: `/opsx:show <id>`
117
117
  - Check spec constraints: `rg -n "CONSTRAINT:|MUST|INVARIANT:" openspec/changes/<id>/specs/`
118
- - View implementation diff: `openspec diff <id>` or `git diff`
118
+ - View implementation diff: `/opsx:diff <id>` or `git diff`
119
119
  - Archive (after passing): `/ccg:spec-impl` → Step 10
120
120
  <!-- CCG:SPEC:REVIEW:END -->