@hunyed15/codecgc 0.1.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/.claude/hooks/route-edit.ps1 +86 -0
- package/INSTALLATION.md +550 -0
- package/LICENSE +21 -0
- package/README.md +171 -0
- package/bin/cgc-build.js +4 -0
- package/bin/cgc-doctor.js +4 -0
- package/bin/cgc-entry.js +4 -0
- package/bin/cgc-external-audit.js +4 -0
- package/bin/cgc-fix.js +4 -0
- package/bin/cgc-history.js +4 -0
- package/bin/cgc-install.js +4 -0
- package/bin/cgc-lifecycle.js +4 -0
- package/bin/cgc-package-audit.js +4 -0
- package/bin/cgc-plan.js +4 -0
- package/bin/cgc-release-readiness.js +4 -0
- package/bin/cgc-review.js +4 -0
- package/bin/cgc-route.js +4 -0
- package/bin/cgc-status.js +4 -0
- package/bin/cgc-test.js +4 -0
- package/bin/cgc.js +4 -0
- package/bin/codecgc.js +1284 -0
- package/codecgc/cgc/SKILL.md +46 -0
- package/codecgc/cgc-arch/SKILL.md +61 -0
- package/codecgc/cgc-build/SKILL.md +53 -0
- package/codecgc/cgc-decide/SKILL.md +55 -0
- package/codecgc/cgc-fix/SKILL.md +47 -0
- package/codecgc/cgc-learn/SKILL.md +46 -0
- package/codecgc/cgc-onboard/SKILL.md +52 -0
- package/codecgc/cgc-plan/SKILL.md +48 -0
- package/codecgc/cgc-refactor/SKILL.md +46 -0
- package/codecgc/cgc-req/SKILL.md +61 -0
- package/codecgc/cgc-review/SKILL.md +57 -0
- package/codecgc/cgc-roadmap/SKILL.md +55 -0
- package/codecgc/cgc-test/SKILL.md +21 -0
- package/codecgc/reference/api-cgc-review-libdoc.md +13 -0
- package/codecgc/reference/artifact-class-policy.md +81 -0
- package/codecgc/reference/build-flow.md +95 -0
- package/codecgc/reference/checklist-contract.md +103 -0
- package/codecgc/reference/execution-audit.md +121 -0
- package/codecgc/reference/execution-model.md +118 -0
- package/codecgc/reference/execution-routing.md +130 -0
- package/codecgc/reference/executor-contract.md +87 -0
- package/codecgc/reference/external-capability-registry.json +104 -0
- package/codecgc/reference/fix-flow.md +94 -0
- package/codecgc/reference/fixture-governance.md +60 -0
- package/codecgc/reference/flow-execution.md +65 -0
- package/codecgc/reference/lifecycle-map.md +172 -0
- package/codecgc/reference/lifecycle-playbook.md +104 -0
- package/codecgc/reference/long-lived-artifacts.md +98 -0
- package/codecgc/reference/operation-guide.md +242 -0
- package/codecgc/reference/release-maintenance-playbook.md +150 -0
- package/codecgc/reference/review-writeback.md +141 -0
- package/codecgc/reference/role-model.md +128 -0
- package/codecgc/reference/runtime-boundary.md +72 -0
- package/codecgc/reference/shared-conventions.md +93 -0
- package/codecgc/reference/workflow-scaffold.md +57 -0
- package/codexmcp/LICENSE +21 -0
- package/codexmcp/README.md +294 -0
- package/codexmcp/pyproject.toml +37 -0
- package/codexmcp/src/codexmcp/__init__.py +4 -0
- package/codexmcp/src/codexmcp/cli.py +12 -0
- package/codexmcp/src/codexmcp/server.py +529 -0
- package/geminimcp/README.md +258 -0
- package/geminimcp/pyproject.toml +15 -0
- package/geminimcp/src/geminimcp/__init__.py +4 -0
- package/geminimcp/src/geminimcp/cli.py +12 -0
- package/geminimcp/src/geminimcp/server.py +465 -0
- package/model-routing.yaml +30 -0
- package/package.json +90 -0
- package/requirements.txt +1 -0
- package/scripts/README-codecgc-cli.md +89 -0
- package/scripts/audit_codecgc_external_capabilities.py +276 -0
- package/scripts/audit_codecgc_historical_audits.py +242 -0
- package/scripts/audit_codecgc_lifecycle.py +241 -0
- package/scripts/audit_codecgc_package_runtime.py +445 -0
- package/scripts/audit_codecgc_release_readiness.py +202 -0
- package/scripts/audit_codecgc_review_policy.py +82 -0
- package/scripts/audit_codecgc_workflow_history.py +317 -0
- package/scripts/build_codecgc_task.py +487 -0
- package/scripts/codecgc_artifact_roots.py +40 -0
- package/scripts/codecgc_cli.py +843 -0
- package/scripts/codecgc_command_surface.py +28 -0
- package/scripts/codecgc_console_io.py +45 -0
- package/scripts/codecgc_executor_registry.py +54 -0
- package/scripts/codecgc_file_evidence.py +349 -0
- package/scripts/codecgc_flow_control.py +233 -0
- package/scripts/codecgc_governance_dedupe.py +161 -0
- package/scripts/codecgc_plan_decision.py +103 -0
- package/scripts/codecgc_review_control.py +588 -0
- package/scripts/codecgc_roadmap_templates.py +149 -0
- package/scripts/codecgc_routing_paths.py +16 -0
- package/scripts/codecgc_routing_template.py +135 -0
- package/scripts/codecgc_runtime_paths.py +22 -0
- package/scripts/codecgc_session_recovery.py +44 -0
- package/scripts/codecgc_step_control.py +154 -0
- package/scripts/codecgc_workflow_runtime.py +63 -0
- package/scripts/codecgc_workflow_templates.py +437 -0
- package/scripts/entry_codecgc_workflow.py +3419 -0
- package/scripts/exercise_mcp_tools.py +109 -0
- package/scripts/expand_codecgc_roadmap.py +664 -0
- package/scripts/init_codecgc_roadmap.py +134 -0
- package/scripts/init_codecgc_workflow.py +207 -0
- package/scripts/install_codecgc.py +938 -0
- package/scripts/migrate_demo_workflows_to_fixtures.py +128 -0
- package/scripts/normalize_codecgc_audits.py +114 -0
- package/scripts/normalize_codecgc_governance_docs.py +79 -0
- package/scripts/normalize_codecgc_workflow_docs.py +269 -0
- package/scripts/plan_codecgc_workflow.py +970 -0
- package/scripts/refresh_codecgc_review_policy.py +223 -0
- package/scripts/review_codecgc_workflow.py +88 -0
- package/scripts/route_codecgc_workflow.py +671 -0
- package/scripts/run_codecgc_build.py +104 -0
- package/scripts/run_codecgc_fix.py +104 -0
- package/scripts/run_codecgc_flow_step.py +165 -0
- package/scripts/run_codecgc_task.py +410 -0
- package/scripts/run_codecgc_test.py +105 -0
- package/scripts/sync_codecgc_mcp_config.py +41 -0
- package/scripts/write_codecgc_architecture.py +78 -0
- package/scripts/write_codecgc_decision.py +83 -0
- package/scripts/write_codecgc_explore.py +118 -0
- package/scripts/write_codecgc_guide.py +141 -0
- package/scripts/write_codecgc_learning.py +87 -0
- package/scripts/write_codecgc_libdoc.py +140 -0
- package/scripts/write_codecgc_refactor.py +78 -0
- package/scripts/write_codecgc_requirement.py +78 -0
- package/scripts/write_codecgc_review.py +291 -0
- package/scripts/write_codecgc_roadmap.py +122 -0
- package/scripts/write_codecgc_trick.py +123 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# CodeCGC 产物类别策略
|
|
2
|
+
|
|
3
|
+
## 1. 目的
|
|
4
|
+
|
|
5
|
+
这份文档说明 CodeCGC 如何区分真实产品产物与本地验证 fixture。
|
|
6
|
+
|
|
7
|
+
## 2. 允许值
|
|
8
|
+
|
|
9
|
+
当前支持的 `artifact_class` 只有两种:
|
|
10
|
+
|
|
11
|
+
- `product`
|
|
12
|
+
- `fixture`
|
|
13
|
+
|
|
14
|
+
## 3. 默认规则
|
|
15
|
+
|
|
16
|
+
通过 `init` 或 `plan` 创建的新工作流产物,默认都属于:
|
|
17
|
+
|
|
18
|
+
- `artifact_class: product`
|
|
19
|
+
|
|
20
|
+
这代表正常的仓库交付意图。
|
|
21
|
+
|
|
22
|
+
## 4. Fixture 规则
|
|
23
|
+
|
|
24
|
+
只有当一个工作流的主要目的,是验证运行时行为而不是交付真实项目工作时,才应使用:
|
|
25
|
+
|
|
26
|
+
- `artifact_class: fixture`
|
|
27
|
+
|
|
28
|
+
## 5. 当前存储规则
|
|
29
|
+
|
|
30
|
+
`product` 产物当前放在:
|
|
31
|
+
|
|
32
|
+
- `codecgc/features/`
|
|
33
|
+
- `codecgc/issues/`
|
|
34
|
+
|
|
35
|
+
`fixture` 产物当前放在:
|
|
36
|
+
|
|
37
|
+
- `codecgc/fixtures/features/`
|
|
38
|
+
- `codecgc/fixtures/issues/`
|
|
39
|
+
|
|
40
|
+
因此 `artifact_class` 仍然是机器可读的意图标记,而 fixture 现在也有自己独立的目录根。
|
|
41
|
+
|
|
42
|
+
## 6. 审计传播规则
|
|
43
|
+
|
|
44
|
+
当 checklist 或 fix 产物里声明了 `artifact_class` 时,运行时会把它继续传播到 audit 的:
|
|
45
|
+
|
|
46
|
+
- `source.artifact_class`
|
|
47
|
+
|
|
48
|
+
当前规则是:
|
|
49
|
+
|
|
50
|
+
- `product` audit 默认写入 `codecgc/execution/`
|
|
51
|
+
- `fixture` audit 默认写入 `codecgc/fixtures/execution/`
|
|
52
|
+
|
|
53
|
+
这样后续工具就能区分:
|
|
54
|
+
|
|
55
|
+
- 真实产品执行证据
|
|
56
|
+
- fixture 验证执行证据
|
|
57
|
+
|
|
58
|
+
## 7. 操作规则
|
|
59
|
+
|
|
60
|
+
如果一个工作流只是为了验证:
|
|
61
|
+
|
|
62
|
+
- 路由
|
|
63
|
+
- 审核回写
|
|
64
|
+
- 状态推进
|
|
65
|
+
- 结构化规划
|
|
66
|
+
|
|
67
|
+
那么就应使用:
|
|
68
|
+
|
|
69
|
+
- `--artifact-class fixture`
|
|
70
|
+
|
|
71
|
+
否则保持默认的 `product`。
|
|
72
|
+
|
|
73
|
+
## 8. 历史修复规则
|
|
74
|
+
|
|
75
|
+
如果旧 audit 仍然保留在错误目录或仍含旧路径信息,可以使用:
|
|
76
|
+
|
|
77
|
+
- `python scripts/normalize_codecgc_audits.py`
|
|
78
|
+
|
|
79
|
+
如果旧 demo 工作流还停留在产品目录下,可以使用:
|
|
80
|
+
|
|
81
|
+
- `python scripts/migrate_demo_workflows_to_fixtures.py`
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# CodeCGC 功能开发流程
|
|
2
|
+
|
|
3
|
+
## 1. 目的
|
|
4
|
+
|
|
5
|
+
这份文档定义 `cgc-build` 的标准行为。
|
|
6
|
+
|
|
7
|
+
它是 CodeCGC 在功能开发场景下的受控执行流程。
|
|
8
|
+
|
|
9
|
+
## 2. 适用范围
|
|
10
|
+
|
|
11
|
+
`cgc-build` 只处理“需求已经足够清晰、可以进入执行”的新能力开发工作。
|
|
12
|
+
|
|
13
|
+
它必须:
|
|
14
|
+
|
|
15
|
+
- 使用 `codecgc/features/` 下的 feature 产物
|
|
16
|
+
- 遵守 CodeCGC 的执行归属规则
|
|
17
|
+
- 不绕过既有步骤契约直接自由执行
|
|
18
|
+
|
|
19
|
+
## 3. 标准流程阶段
|
|
20
|
+
|
|
21
|
+
`cgc-build` 应按以下顺序推进:
|
|
22
|
+
|
|
23
|
+
1. 定位或初始化 feature 上下文
|
|
24
|
+
2. 检查设计是否已具备执行条件
|
|
25
|
+
3. 选出当前唯一可执行的功能开发步骤
|
|
26
|
+
4. 校验该步骤的 `codecgc` 契约
|
|
27
|
+
5. 通过 `scripts/run_codecgc_task.py` 发起委派执行
|
|
28
|
+
6. 收集结构化结果与 audit 路径
|
|
29
|
+
7. 把结果交给 `cgc-review`
|
|
30
|
+
|
|
31
|
+
## 4. 执行前检查
|
|
32
|
+
|
|
33
|
+
在真正执行之前,Claude 必须确认:
|
|
34
|
+
|
|
35
|
+
- 功能目标已经清楚
|
|
36
|
+
- 当前步骤只属于一个执行器
|
|
37
|
+
- 当前步骤具备本地验收条件
|
|
38
|
+
- 当前步骤没有混入未来工作
|
|
39
|
+
|
|
40
|
+
只要这些条件不满足,就必须回到规划或设计阶段,而不是继续执行。
|
|
41
|
+
|
|
42
|
+
## 5. 步骤契约检查
|
|
43
|
+
|
|
44
|
+
当前步骤必须包含合法的 `codecgc` 区块,至少包括:
|
|
45
|
+
|
|
46
|
+
- `kind`
|
|
47
|
+
- `task_id`
|
|
48
|
+
- `task_summary`
|
|
49
|
+
- `target_paths`
|
|
50
|
+
- `constraints`
|
|
51
|
+
- `acceptance`
|
|
52
|
+
- `cd`
|
|
53
|
+
|
|
54
|
+
如果这个区块缺失、混合或仍然模糊,那么该步骤不可执行。
|
|
55
|
+
|
|
56
|
+
## 6. 委派规则
|
|
57
|
+
|
|
58
|
+
执行必须通过:
|
|
59
|
+
|
|
60
|
+
- `scripts/run_codecgc_flow_step.py`
|
|
61
|
+
- `scripts/run_codecgc_task.py`
|
|
62
|
+
|
|
63
|
+
不要在已有合法步骤契约的情况下,手工重拼执行器 prompt 直接发起执行。
|
|
64
|
+
|
|
65
|
+
## 7. 结果采集规则
|
|
66
|
+
|
|
67
|
+
`cgc-build` 必须收集:
|
|
68
|
+
|
|
69
|
+
- `success`
|
|
70
|
+
- `task_id`
|
|
71
|
+
- `SESSION_ID`
|
|
72
|
+
- `summary`
|
|
73
|
+
- `changed_files`
|
|
74
|
+
- `policy_checks`
|
|
75
|
+
- `risks`
|
|
76
|
+
- `audit.path`
|
|
77
|
+
|
|
78
|
+
audit 产物属于执行证据的一部分。
|
|
79
|
+
后续审核不能只依赖自由文本聊天结果。
|
|
80
|
+
|
|
81
|
+
如果执行失败,`cgc-build` 不能静默继续,而必须分类失败原因,例如:
|
|
82
|
+
|
|
83
|
+
- 范围错误
|
|
84
|
+
- 设计缺口
|
|
85
|
+
- 环境或工具问题
|
|
86
|
+
- 执行器失败
|
|
87
|
+
|
|
88
|
+
## 8. 结束状态
|
|
89
|
+
|
|
90
|
+
`cgc-build` 只能结束在以下几种状态之一:
|
|
91
|
+
|
|
92
|
+
- 已成功委派,等待 `cgc-review`
|
|
93
|
+
- 已退回规划或设计
|
|
94
|
+
- 被环境或工具问题阻塞
|
|
95
|
+
- 因步骤不可执行而拒绝继续
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# CodeCGC Checklist Contract
|
|
2
|
+
|
|
3
|
+
## 1. 目的
|
|
4
|
+
|
|
5
|
+
design 文档首先是给人看的。
|
|
6
|
+
checklist contract 首先是给执行系统看的。
|
|
7
|
+
|
|
8
|
+
因此,一个真正会改代码的 CodeCGC 步骤,应该带有一个 `codecgc` 块,明确声明这一步的机器执行边界。
|
|
9
|
+
|
|
10
|
+
## 2. 必填字段
|
|
11
|
+
|
|
12
|
+
`codecgc` 块至少要定义:
|
|
13
|
+
|
|
14
|
+
- `kind`
|
|
15
|
+
- `task_id`
|
|
16
|
+
- `task_summary`
|
|
17
|
+
- `target_paths`
|
|
18
|
+
- `constraints`
|
|
19
|
+
- `acceptance`
|
|
20
|
+
- `cd`
|
|
21
|
+
|
|
22
|
+
可选字段包括:
|
|
23
|
+
|
|
24
|
+
- `codex_sandbox`
|
|
25
|
+
- `gemini_sandbox`
|
|
26
|
+
- `model`
|
|
27
|
+
- `profile`
|
|
28
|
+
- `SESSION_ID`
|
|
29
|
+
|
|
30
|
+
## 3. 字段规则
|
|
31
|
+
|
|
32
|
+
### `kind`
|
|
33
|
+
|
|
34
|
+
只能是:
|
|
35
|
+
|
|
36
|
+
- `frontend`
|
|
37
|
+
- `backend`
|
|
38
|
+
- `auto`
|
|
39
|
+
|
|
40
|
+
其中 `auto` 只表示“运行时可进一步判定”,不表示可以放弃边界控制。
|
|
41
|
+
|
|
42
|
+
### `target_paths`
|
|
43
|
+
|
|
44
|
+
必须是当前步骤允许修改的最小文件范围。
|
|
45
|
+
|
|
46
|
+
不要写成整个模块、整个应用或宽泛目录,除非该步骤本身确实只允许那样的范围。
|
|
47
|
+
|
|
48
|
+
### `task_summary`
|
|
49
|
+
|
|
50
|
+
只能描述当前这一步,不要把后续步骤一起塞进去。
|
|
51
|
+
|
|
52
|
+
### `constraints`
|
|
53
|
+
|
|
54
|
+
这里写的是硬约束,不是愿景描述。
|
|
55
|
+
|
|
56
|
+
好的约束应接近:
|
|
57
|
+
|
|
58
|
+
- 不能修改哪些文件
|
|
59
|
+
- 不能跨到哪个层
|
|
60
|
+
- 不能顺手做什么额外重构
|
|
61
|
+
|
|
62
|
+
### `acceptance`
|
|
63
|
+
|
|
64
|
+
验收条件必须能在当前步骤内被检查,而不是依赖未来步骤。
|
|
65
|
+
|
|
66
|
+
## 4. 何时拒绝生成 contract
|
|
67
|
+
|
|
68
|
+
遇到下面这些情况,不应该勉强附一个宽泛 `codecgc` 块:
|
|
69
|
+
|
|
70
|
+
- 当前步骤混合了前端和后端范围
|
|
71
|
+
- 当前步骤包含 shared 路径
|
|
72
|
+
- 仍然存在未拍板设计选择
|
|
73
|
+
- 无法明确给出 `target_paths`
|
|
74
|
+
|
|
75
|
+
这种情况下,正确做法不是“先执行再说”,而是先拆分或回到设计。
|
|
76
|
+
|
|
77
|
+
## 5. 示例
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
steps:
|
|
81
|
+
- action: "仅实现登录页 UI"
|
|
82
|
+
exit_signal: "前端执行器返回结构化摘要"
|
|
83
|
+
status: pending
|
|
84
|
+
codecgc:
|
|
85
|
+
kind: frontend
|
|
86
|
+
task_id: login-ui-step-1
|
|
87
|
+
task_summary: "仅实现已确认范围内的登录页 UI。"
|
|
88
|
+
target_paths:
|
|
89
|
+
- frontend/login-page.tsx
|
|
90
|
+
constraints:
|
|
91
|
+
- 不要修改 target_paths 之外的文件。
|
|
92
|
+
- 不要改动后端 API。
|
|
93
|
+
acceptance:
|
|
94
|
+
- 登录页 UI 满足当前步骤已确认的范围。
|
|
95
|
+
cd: .
|
|
96
|
+
gemini_sandbox: false
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 6. 使用原则
|
|
100
|
+
|
|
101
|
+
可以把 checklist contract 理解成“Claude 发给执行器的最小合法任务包”。
|
|
102
|
+
|
|
103
|
+
如果这个任务包写不清楚,说明步骤本身还没准备好,不应该把问题转嫁给执行器。
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# CodeCGC 执行审计
|
|
2
|
+
|
|
3
|
+
## 1. 目的
|
|
4
|
+
|
|
5
|
+
这份文档定义委派执行后生成的 audit 产物。
|
|
6
|
+
|
|
7
|
+
当前写入入口:
|
|
8
|
+
|
|
9
|
+
- `scripts/run_codecgc_task.py`
|
|
10
|
+
|
|
11
|
+
每一次委派的 `build` 或 `fix` 执行,都应生成一个 audit 文件。
|
|
12
|
+
|
|
13
|
+
## 2. 当前存放位置
|
|
14
|
+
|
|
15
|
+
审计文件默认存放在:
|
|
16
|
+
|
|
17
|
+
- `codecgc/execution/`
|
|
18
|
+
|
|
19
|
+
如果工作流属于 fixture,则会写入:
|
|
20
|
+
|
|
21
|
+
- `codecgc/fixtures/execution/`
|
|
22
|
+
|
|
23
|
+
## 3. 文件规则
|
|
24
|
+
|
|
25
|
+
每次执行写入一个 JSON 文件:
|
|
26
|
+
|
|
27
|
+
- `{task_id}.json`
|
|
28
|
+
|
|
29
|
+
当同一个 `task_id` 被再次执行时,应覆盖旧文件,而不是无限追加。
|
|
30
|
+
|
|
31
|
+
## 4. 顶层必要字段
|
|
32
|
+
|
|
33
|
+
每个 audit 文件至少必须包含:
|
|
34
|
+
|
|
35
|
+
- `product`
|
|
36
|
+
- `version`
|
|
37
|
+
- `mode`
|
|
38
|
+
- `timestamp`
|
|
39
|
+
- `task_id`
|
|
40
|
+
- `target`
|
|
41
|
+
- `tool_name`
|
|
42
|
+
- `target_paths`
|
|
43
|
+
- `route_notes`
|
|
44
|
+
- `routing_file`
|
|
45
|
+
- `source`
|
|
46
|
+
- `task_summary`
|
|
47
|
+
- `constraints`
|
|
48
|
+
- `acceptance_criteria`
|
|
49
|
+
- `cd`
|
|
50
|
+
- `requested_session_id`
|
|
51
|
+
- `result`
|
|
52
|
+
|
|
53
|
+
## 5. `result` 区块
|
|
54
|
+
|
|
55
|
+
`result` 区块至少必须包含:
|
|
56
|
+
|
|
57
|
+
- `success`
|
|
58
|
+
- `outcome`
|
|
59
|
+
- `task_id`
|
|
60
|
+
- `session_id`
|
|
61
|
+
- `summary`
|
|
62
|
+
- `changed_files`
|
|
63
|
+
- `policy_checks`
|
|
64
|
+
- `risks`
|
|
65
|
+
- `error`
|
|
66
|
+
|
|
67
|
+
`source` 区块当前也可能携带:
|
|
68
|
+
|
|
69
|
+
- `artifact_class`
|
|
70
|
+
|
|
71
|
+
## 6. `file_evidence` 区块
|
|
72
|
+
|
|
73
|
+
`file_evidence` 当前用于补充本地证据,应尽量包含:
|
|
74
|
+
|
|
75
|
+
- `evidence_source`
|
|
76
|
+
- `workspace_changed_files`
|
|
77
|
+
- `verified_changed_files`
|
|
78
|
+
- `out_of_scope_changed_files`
|
|
79
|
+
- `file_diffs`
|
|
80
|
+
- `evidence_confidence`
|
|
81
|
+
|
|
82
|
+
当可用时,`file_diffs` 还会总结本地观察到的文件变化,例如:
|
|
83
|
+
|
|
84
|
+
- `path`
|
|
85
|
+
- `change_type`
|
|
86
|
+
- `before_hash`
|
|
87
|
+
- `after_hash`
|
|
88
|
+
- `before_size`
|
|
89
|
+
- `after_size`
|
|
90
|
+
- `before_preview`
|
|
91
|
+
- `after_preview`
|
|
92
|
+
- `in_scope`
|
|
93
|
+
|
|
94
|
+
## 7. 允许的结果值
|
|
95
|
+
|
|
96
|
+
当前常见 `outcome` 包括:
|
|
97
|
+
|
|
98
|
+
- `done`
|
|
99
|
+
- `split-required`
|
|
100
|
+
- `design-gap`
|
|
101
|
+
- `blocked`
|
|
102
|
+
- `executor-failure`
|
|
103
|
+
|
|
104
|
+
## 8. 审核契约
|
|
105
|
+
|
|
106
|
+
`cgc-review` 在验收前必须读取 audit 文件。
|
|
107
|
+
|
|
108
|
+
audit 是最小机器可读执行证据,至少回答这些问题:
|
|
109
|
+
|
|
110
|
+
- 哪个执行器执行了当前步骤
|
|
111
|
+
- 路由到的是哪些路径
|
|
112
|
+
- 执行返回了什么结果
|
|
113
|
+
- 哪些策略检查通过或失败了
|
|
114
|
+
- 当前步骤是否具备进入审核的证据基础
|
|
115
|
+
|
|
116
|
+
## 9. 非目标
|
|
117
|
+
|
|
118
|
+
audit 不是最终验收报告。
|
|
119
|
+
|
|
120
|
+
它只负责执行证据层。
|
|
121
|
+
最终验收、回写和发布判断仍然属于 Claude。
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# CodeCGC 执行模型
|
|
2
|
+
|
|
3
|
+
## 1. 目的
|
|
4
|
+
|
|
5
|
+
CodeCGC 把“工作流控制”和“代码执行”明确分层。
|
|
6
|
+
|
|
7
|
+
工作流层决定:
|
|
8
|
+
|
|
9
|
+
- 当前在做哪一步
|
|
10
|
+
- 这一步是否已经可执行
|
|
11
|
+
- 这一步应该交给哪个模型
|
|
12
|
+
|
|
13
|
+
执行层负责:
|
|
14
|
+
|
|
15
|
+
- 通过 MCP 调用正确执行器
|
|
16
|
+
- 落地代码改动
|
|
17
|
+
- 产出可审核的结构化证据
|
|
18
|
+
|
|
19
|
+
## 2. 当前运行链路
|
|
20
|
+
|
|
21
|
+
当前标准链路如下:
|
|
22
|
+
|
|
23
|
+
1. 用户通过 `cgc` 或 `cgc-entry` 进入工作流
|
|
24
|
+
2. Claude 读取现有工作流产物
|
|
25
|
+
3. Claude 识别当前唯一可推进的执行步骤
|
|
26
|
+
4. Claude 将步骤打包为机器可执行任务
|
|
27
|
+
5. 运行时调用对应的执行入口
|
|
28
|
+
6. 执行入口再桥接到底层任务执行脚本
|
|
29
|
+
7. MCP 将任务委托给 Gemini 或 Codex
|
|
30
|
+
8. 执行结果被写入 audit 产物
|
|
31
|
+
9. Claude 基于 audit、步骤契约和工作流状态继续审核与回写
|
|
32
|
+
|
|
33
|
+
简化理解:
|
|
34
|
+
|
|
35
|
+
- Claude 决定“做什么、何时做、交给谁”
|
|
36
|
+
- Gemini / Codex 负责“按边界把代码做出来”
|
|
37
|
+
|
|
38
|
+
## 3. 路由输入
|
|
39
|
+
|
|
40
|
+
路由规则主要声明在:
|
|
41
|
+
|
|
42
|
+
- `model-routing.yaml`
|
|
43
|
+
|
|
44
|
+
运行时 guardrail 主要声明在:
|
|
45
|
+
|
|
46
|
+
- `.mcp.json`
|
|
47
|
+
- `.claude/settings.json`
|
|
48
|
+
- `.claude/hooks/route-edit.ps1`
|
|
49
|
+
|
|
50
|
+
这些文件一起负责“不能越界”。
|
|
51
|
+
|
|
52
|
+
## 4. 允许的执行结果
|
|
53
|
+
|
|
54
|
+
一个代码步骤最终只允许落在下面这些状态之一:
|
|
55
|
+
|
|
56
|
+
- `ready`:单模型范围明确,可以立即执行
|
|
57
|
+
- `split-required`:前后端混合或 shared 范围,必须先拆分
|
|
58
|
+
- `design-gap`:步骤描述不足,仍需补设计
|
|
59
|
+
- `blocked`:环境、权限或工具阻塞
|
|
60
|
+
- `done`:执行器已经返回完整结果
|
|
61
|
+
|
|
62
|
+
这些状态不是面向用户的产品口语,而是运行时判断的机器语义。
|
|
63
|
+
|
|
64
|
+
从 `P6-1` 开始,`split-required` 不再只是一个阻断码。
|
|
65
|
+
当运行时能明确看出哪些路径属于前端、后端或 shared 时,还会额外返回结构化拆分建议,供单入口恢复链和 `cgc-plan` 继续复用。
|
|
66
|
+
|
|
67
|
+
## 5. 什么叫“可执行步骤”
|
|
68
|
+
|
|
69
|
+
只有同时满足下面条件,步骤才算真正 ready:
|
|
70
|
+
|
|
71
|
+
- 只属于一个执行器
|
|
72
|
+
- 不包含 shared 或 mixed 范围
|
|
73
|
+
- `target_paths` 足够小且明确
|
|
74
|
+
- 有当前步骤自己的验收标准
|
|
75
|
+
- 没有把未来工作偷偷塞进当前执行
|
|
76
|
+
|
|
77
|
+
如果做不到这一点,就不该执行,而应该回到拆分或设计。
|
|
78
|
+
|
|
79
|
+
## 6. 执行器契约
|
|
80
|
+
|
|
81
|
+
当前前端执行器是:
|
|
82
|
+
|
|
83
|
+
- `implement_frontend_task`
|
|
84
|
+
|
|
85
|
+
当前后端执行器是:
|
|
86
|
+
|
|
87
|
+
- `implement_backend_task`
|
|
88
|
+
|
|
89
|
+
执行器返回结果时,至少应包含:
|
|
90
|
+
|
|
91
|
+
- `success`
|
|
92
|
+
- `task_id`
|
|
93
|
+
- `SESSION_ID`
|
|
94
|
+
- `summary`
|
|
95
|
+
- `changed_files`
|
|
96
|
+
- `policy_checks`
|
|
97
|
+
- `risks`
|
|
98
|
+
|
|
99
|
+
运行时必须把这些字段持久化到 audit 中,供后续审核使用。
|
|
100
|
+
|
|
101
|
+
参见:
|
|
102
|
+
|
|
103
|
+
- `codecgc/reference/execution-audit.md`
|
|
104
|
+
- `codecgc/reference/executor-contract.md`
|
|
105
|
+
|
|
106
|
+
## 7. 产品原则
|
|
107
|
+
|
|
108
|
+
CodeCGC 不相信“提示词里说了不要越界”就足够。
|
|
109
|
+
|
|
110
|
+
正确顺序必须是:
|
|
111
|
+
|
|
112
|
+
1. 先定义流程
|
|
113
|
+
2. 再生成机器可读步骤契约
|
|
114
|
+
3. 再触发 MCP 执行
|
|
115
|
+
4. 再用 hook 和审核控制做兜底
|
|
116
|
+
|
|
117
|
+
文档负责解释系统。
|
|
118
|
+
流程控制负责真正约束系统。
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# CodeCGC 执行路由
|
|
2
|
+
|
|
3
|
+
## 1. 目的
|
|
4
|
+
|
|
5
|
+
这份文档定义 CodeCGC 如何对“会改代码的工作”做执行路由。
|
|
6
|
+
|
|
7
|
+
它不是命名建议,而是执行归属规则。
|
|
8
|
+
|
|
9
|
+
## 2. 主路由规则
|
|
10
|
+
|
|
11
|
+
### 前端
|
|
12
|
+
|
|
13
|
+
当变更主要影响以下范围时,路由给 Gemini:
|
|
14
|
+
|
|
15
|
+
- 页面
|
|
16
|
+
- 组件
|
|
17
|
+
- 样式
|
|
18
|
+
- 前端状态
|
|
19
|
+
- 客户端交互
|
|
20
|
+
- 浏览器可见行为
|
|
21
|
+
- 前端测试
|
|
22
|
+
|
|
23
|
+
### 后端
|
|
24
|
+
|
|
25
|
+
当变更主要影响以下范围时,路由给 Codex:
|
|
26
|
+
|
|
27
|
+
- 服务
|
|
28
|
+
- API
|
|
29
|
+
- 仓储层
|
|
30
|
+
- 定时任务
|
|
31
|
+
- 持久化
|
|
32
|
+
- 后端领域逻辑
|
|
33
|
+
- 脚本与自动化
|
|
34
|
+
- 后端测试
|
|
35
|
+
|
|
36
|
+
## 3. 共享范围不能直接执行
|
|
37
|
+
|
|
38
|
+
如果一个步骤同时触达前端和后端,或者触达真正被两侧共同依赖的共享契约,那么这个步骤不能直接执行。
|
|
39
|
+
|
|
40
|
+
Claude 必须先拆分。
|
|
41
|
+
|
|
42
|
+
## 4. 三类共享范围
|
|
43
|
+
|
|
44
|
+
### 前端内部共享
|
|
45
|
+
|
|
46
|
+
示例:
|
|
47
|
+
|
|
48
|
+
- 前端 design token
|
|
49
|
+
- UI 原语
|
|
50
|
+
- 仅前端使用的工具库
|
|
51
|
+
|
|
52
|
+
默认路由:
|
|
53
|
+
|
|
54
|
+
- Gemini
|
|
55
|
+
|
|
56
|
+
### 后端内部共享
|
|
57
|
+
|
|
58
|
+
示例:
|
|
59
|
+
|
|
60
|
+
- 后端领域类型
|
|
61
|
+
- 服务端共享工具
|
|
62
|
+
- 数据访问共享能力
|
|
63
|
+
|
|
64
|
+
默认路由:
|
|
65
|
+
|
|
66
|
+
- Codex
|
|
67
|
+
|
|
68
|
+
### 跨边界共享
|
|
69
|
+
|
|
70
|
+
示例:
|
|
71
|
+
|
|
72
|
+
- 请求或响应契约
|
|
73
|
+
- 前后端共同消费的类型
|
|
74
|
+
- 事件载荷
|
|
75
|
+
- 需要 API 与 UI 同时对齐的行为
|
|
76
|
+
|
|
77
|
+
默认路由:
|
|
78
|
+
|
|
79
|
+
- Claude 先拆分,不直接派给执行器
|
|
80
|
+
|
|
81
|
+
## 5. 标准拆分模式
|
|
82
|
+
|
|
83
|
+
跨边界工作通常应被拆成:
|
|
84
|
+
|
|
85
|
+
1. 契约或设计步骤
|
|
86
|
+
2. 后端实现步骤
|
|
87
|
+
3. 前端实现步骤
|
|
88
|
+
4. 审核与验收步骤
|
|
89
|
+
|
|
90
|
+
不要把一个宽泛的混合任务直接丢给执行器。
|
|
91
|
+
|
|
92
|
+
## 6. 路径规则
|
|
93
|
+
|
|
94
|
+
机器可读的路径映射定义在:
|
|
95
|
+
|
|
96
|
+
- `model-routing.yaml`
|
|
97
|
+
|
|
98
|
+
这个文件负责机器路由。
|
|
99
|
+
这份文档负责人类可读的归属说明。
|
|
100
|
+
|
|
101
|
+
## 7. 可执行前检查
|
|
102
|
+
|
|
103
|
+
在真正 dispatch 之前,Claude 必须能对下面每一项回答“是”:
|
|
104
|
+
|
|
105
|
+
- 当前步骤是否只有一个执行器
|
|
106
|
+
- 是否有最小且明确的目标路径集合
|
|
107
|
+
- 是否避免了前后端混合范围
|
|
108
|
+
- 是否避免了未拆分的共享范围
|
|
109
|
+
- 是否拥有步骤级验收条件
|
|
110
|
+
|
|
111
|
+
只要其中一项是否,当前步骤就不能执行。
|
|
112
|
+
|
|
113
|
+
## 8. 执行后审核归属
|
|
114
|
+
|
|
115
|
+
执行完成后:
|
|
116
|
+
|
|
117
|
+
- Gemini 或 Codex 提供实现证据
|
|
118
|
+
- Claude 决定该步骤是否通过审核
|
|
119
|
+
|
|
120
|
+
执行归属和审核归属不是同一件事。
|
|
121
|
+
|
|
122
|
+
## 9. 产品原则
|
|
123
|
+
|
|
124
|
+
路由不是“模型偏好”问题。
|
|
125
|
+
|
|
126
|
+
路由的本质是稳定的软件所有权:
|
|
127
|
+
|
|
128
|
+
- Claude 负责控制与审核
|
|
129
|
+
- Gemini 负责前端实现
|
|
130
|
+
- Codex 负责后端实现
|