@pzy560117/codex-harness 0.1.8 → 0.1.10
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/package-source/AGENTS.md +11 -1
- package/package-source/docs/codex-harness-engineering/templates/bootstrap-codex-harness.ps1 +2 -1
- package/package-source/docs/codex-harness-engineering/templates/config/rules/agents.md +3 -3
- package/package-source/docs/codex-harness-engineering/templates/docs/project-agents-template.md +8 -1
- package/package-source/docs/codex-harness-engineering/templates/docs/task-session-strategy.md +3 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/project-agents-template.md +51 -1
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/controller-loop.md +88 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/failure-triage.md +71 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/harness-audit.md +54 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/implement-one-task.md +18 -15
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/repair-one-finding.md +1 -2
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/review-one-task.md +45 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/review-stage1-spec.md +111 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/review-stage2-quality.md +82 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/visual-evaluator.md +80 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/worker-role/backend-worker.md +41 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/worker-role/docs-worker.md +28 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/worker-role/frontend-worker.md +46 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/worker-role/harness-writer.md +40 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/docs/codex-harness-engineering/templates/prompts/worker-role/test-runner.md +27 -0
- package/package-source/docs/codex-harness-engineering/templates/package-assets/rules/agents.md +6 -3
- package/package-source/docs/codex-harness-engineering/templates/package-assets/skills/auto-commit/SKILL.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/package-assets/skills/speckit-plan/SKILL.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/prompts/controller-loop.md +4 -4
- package/package-source/docs/codex-harness-engineering/templates/prompts/failure-triage.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/prompts/harness-audit.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/prompts/implement-one-task.md +18 -15
- package/package-source/docs/codex-harness-engineering/templates/prompts/repair-one-finding.md +1 -2
- package/package-source/docs/codex-harness-engineering/templates/prompts/review-one-task.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/prompts/review-stage1-spec.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/prompts/review-stage2-quality.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/prompts/visual-evaluator.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/prompts/worker-role/backend-worker.md +2 -2
- package/package-source/docs/codex-harness-engineering/templates/prompts/worker-role/docs-worker.md +2 -2
- package/package-source/docs/codex-harness-engineering/templates/prompts/worker-role/frontend-worker.md +2 -2
- package/package-source/docs/codex-harness-engineering/templates/prompts/worker-role/harness-writer.md +4 -4
- package/package-source/docs/codex-harness-engineering/templates/prompts/worker-role/test-runner.md +1 -1
- package/package-source/docs/codex-harness-engineering/templates/runtime/AGENTS.md +45 -50
- package/package-source/docs/codex-harness-engineering/templates/runtime/doctor.ps1 +82 -18
- package/package-source/install-manifest.json +1 -1
- package/package-source/tools/install/bootstrap-codex-harness.ps1 +2 -1
- package/package-source/tools/install/install-agent.ps1 +70 -21
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
你是 Harness 审计 Agent。你只评估工程外壳本身,不改业务代码。
|
|
11
11
|
|
|
12
|
-
如果下面引用的 `docs/harness/*`、`docs/testing/*` 或 `docs/knowledge/*` 文件在 thin project
|
|
12
|
+
如果下面引用的 `docs/harness/*`、`docs/testing/*` 或 `docs/knowledge/*` 文件在 thin project 项目根不存在,先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`。
|
|
13
13
|
|
|
14
14
|
## 审计维度
|
|
15
15
|
|
package/package-source/docs/codex-harness-engineering/templates/prompts/implement-one-task.md
CHANGED
|
@@ -23,23 +23,24 @@ Driver 会在本模板后追加 `## Driver Context`,其中包含:
|
|
|
23
23
|
|
|
24
24
|
1. 先阅读 Driver Context。
|
|
25
25
|
2. 只读取优先上下文源和任务相关文件;信息不足时再做最小范围扩展检索。
|
|
26
|
-
3. 如果存在 `docs/knowledge/knowledge-catalog.md`(thin project
|
|
26
|
+
3. 如果存在 `docs/knowledge/knowledge-catalog.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`),先按任务阶段判断是否需要读取 `docs/knowledge/catalog.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`) 和相关条目;遵守 `knowledge_query_budget`,不要贪婪读取整库。
|
|
27
27
|
4. 先确认 Architecture Constraints Packet:读取任务上下文列出的架构约束 truth source、任务的 `architecture_constraints` 和 `forbidden_implementations`;如果当前任务声明了交付路径,不得用测试替身、local-only adapter 或领域原型替代。
|
|
28
|
-
5.
|
|
29
|
-
6.
|
|
30
|
-
7. 如需使用子代理,先确定子代理角色,再先阅读 `AGENTS.md`、`docs/harness/task-session-strategy.md`(thin project
|
|
28
|
+
5. 如果存在 `docs/ai/repo-map.md`、`docs/context/repo-map.md` 或同类代码地图,先从导航文件进入代码结构,再做局部文件读取;不要先全仓盲扫。
|
|
29
|
+
6. 先确认当前任务对应的 Requirement IDs、验收示例、追溯矩阵、`qa_contract`、测试影响、开发验证和最终验收验证,再对照 Product / Design / Testing / Contract / DEV-PLAN / Knowledge 等 truth source 改文件。
|
|
30
|
+
7. 如需使用子代理,先确定子代理角色,再先阅读 `AGENTS.md`、`docs/harness/task-session-strategy.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)、`.codex/rules/agents.md`、`docs/harness/knowledge-architecture.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)、对应 `.agents/skills/*/SKILL.md`(如存在)和必要的深文档,然后只传最小必要上下文给子代理。
|
|
31
31
|
8. 如果当前任务是 `feature_impl`,先确认自然语言测试用例覆盖满足需求类型矩阵;`tdd_contract.red.source_case_ids`、`story_full_chain.source_case_ids` 和 `acceptance_validation.source_case_ids` 均应能回溯到 `docs/testing/NATURAL_LANGUAGE_TEST_CASES.md`,缺失时输出 BLOCKED。
|
|
32
|
-
9.
|
|
33
|
-
10.
|
|
34
|
-
11. RED
|
|
35
|
-
12.
|
|
36
|
-
13.
|
|
37
|
-
14.
|
|
38
|
-
15.
|
|
39
|
-
16.
|
|
40
|
-
17.
|
|
41
|
-
18.
|
|
42
|
-
19.
|
|
32
|
+
9. 如果任务涉及用户可见行为、路由、表单、权限、状态流转或关键业务闭环,优先确认是否存在 `docs/testing/e2e-plan.md` 或等价 E2E 计划;缺失时应输出 BLOCKED 或先补齐测试计划,而不是直接实现。
|
|
33
|
+
10. 基于自然语言测试用例执行 TDD RED:只新增或修改聚焦目标行为的测试,不改生产代码;运行 `tdd_contract.red.command`,确认失败原因匹配 `expected_failure`,并把日志保存到 `tdd_contract.red.evidence`。
|
|
34
|
+
11. RED 失败必须证明目标行为缺失,不能是语法错误、导入错误、环境错误、测试数据错误或断言无效;如果 RED 直接通过、失败原因不匹配或无法保存证据,先修正测试或输出 BLOCKED。
|
|
35
|
+
12. RED 证据确认后才实现最小必要业务代码;然后运行 `tdd_contract.green.command`,确认同一聚焦测试通过,并把日志保存到 `tdd_contract.green.evidence`。
|
|
36
|
+
13. GREEN 后才允许重构;重构后运行 `tdd_contract.refactor_guard.command`,并把日志保存到 `tdd_contract.refactor_guard.evidence`。如任务声明 coverage 命令且不是 `not-applicable`,同步运行并记录结果。
|
|
37
|
+
14. 如果 `tdd_contract.policy` 是 `exempted` 或 `not_applicable`,必须在最终回答列明豁免依据和替代证据;不要把“测试后补”伪装成 TDD。
|
|
38
|
+
15. 对非 TDD 任务或 TDD 完成后,按任务步骤实现最小必要改动,并同步更新相关测试、证据路径或测试文档。
|
|
39
|
+
16. 编码过程中运行任务声明的开发验证,例如 affected tests、单元 / 组件、局部 API、契约、类型检查或 lint,并记录 `development_validation` 证据。
|
|
40
|
+
17. 实现完成后、最终回答前,必须从用户、业务闭环或发布候选视角重新运行任务声明的最终验收验证,并记录 `acceptance_validation` fresh evidence;不得把编码中途的小测试直接当作验收证据。
|
|
41
|
+
18. 实现或验证失败时,不要直接弱化断言或跳过测试;先按 `TEST_CODE_ISSUE`、`PRODUCT_BUG`、`REQUIREMENT_CHANGE`、`ENV_OR_DATA_ISSUE`、`FLAKY` 做一级分类,再决定修复路径。
|
|
42
|
+
19. 自检是否满足验收标准、测试影响、架构约束、知识引用、forbidden path 约束、自然语言用例来源、TDD 证据、开发验证和最终验收验证。
|
|
43
|
+
20. 在最终回答中给出 Requirement IDs、修改摘要、涉及文件、自然语言用例来源、TDD RED/GREEN/REFACTOR 证据、验证命令、证据路径、开发验证结果、最终验收验证结果、knowledge references、knowledge outputs 和剩余风险。
|
|
43
44
|
|
|
44
45
|
## 强制边界
|
|
45
46
|
|
|
@@ -50,12 +51,14 @@ Driver 会在本模板后追加 `## Driver Context`,其中包含:
|
|
|
50
51
|
- 不要执行 `git add`、`git commit`、`git push`、`git reset`、`git checkout`。
|
|
51
52
|
- 不要修改与当前任务无关的文件。
|
|
52
53
|
- 不要在没有验收示例或追溯矩阵支撑时自行猜测 P0/P1 业务规则。
|
|
54
|
+
- 不要在存在 `repo-map` / codemap 的大型仓库里跳过导航层直接全仓盲扫。
|
|
53
55
|
- 不要在缺少 `qa_contract`、测试意图、Oracle、证据路径、开发验证和最终验收验证声明时开始 `feature_impl`;先输出 BLOCKED 或补齐前置测试 truth source。
|
|
54
56
|
- 不要在 P0/P1 需求缺少 `docs/testing/NATURAL_LANGUAGE_TEST_CASES.md` 自然语言用例覆盖时开始 `feature_impl`。
|
|
55
57
|
- 不要在自然语言用例未声明需求类型、最少用例数、已写用例数和风险加量理由时开始 `feature_impl`。
|
|
56
58
|
- 不要在 `tdd_contract.red.source_case_ids` 无法回溯到自然语言测试用例时开始 TDD RED。
|
|
57
59
|
- 不要让非 TDD 自然语言用例停留在设计文档里;必须映射到故事验收、回归、release 验证或 verify-matrix。
|
|
58
60
|
- 不要在 `qa_contract.tdd_contract.policy=required` 且缺少 RED 命令、预期失败、测试文件或证据路径时开始 `feature_impl`;先输出 BLOCKED 或补齐 TDD 合同。
|
|
61
|
+
- 不要在高风险用户可见任务缺少 `docs/testing/e2e-plan.md` 或等价 E2E 计划时直接进入实现;先补齐测试计划或输出 BLOCKED。
|
|
59
62
|
- 不要在 RED 失败证据产生前修改生产代码;如果已经写了生产代码但没有 RED 证据,必须回到测试先行的最小行为闭环,不能把事后测试声称为 TDD。
|
|
60
63
|
- 不要把语法错误、导入错误、环境错误、测试数据错误、mock 行为或无效断言当作 RED 成功;RED 必须因目标行为缺失而失败。
|
|
61
64
|
- 不要在 RED 直接通过、GREEN 未复跑同一聚焦命令、重构后未复跑 guard 命令时声称完成 TDD。
|
package/package-source/docs/codex-harness-engineering/templates/prompts/repair-one-finding.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
- 允许修改的 owned paths
|
|
18
18
|
- retest command
|
|
19
19
|
|
|
20
|
-
如果下面引用的 `docs/knowledge/*` 文件在 thin project
|
|
20
|
+
如果下面引用的 `docs/knowledge/*` 文件在 thin project 项目根不存在,先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`。
|
|
21
21
|
|
|
22
22
|
## 修复流程
|
|
23
23
|
|
|
@@ -36,7 +36,6 @@
|
|
|
36
36
|
- 不要改测试来掩盖真实失败,除非 finding 明确指出测试错误。
|
|
37
37
|
- 不要扩大 owned paths。
|
|
38
38
|
- 不要提交 Git。
|
|
39
|
-
- 不要把单点修复顺手扩展成结构性重构或死代码清理任务。
|
|
40
39
|
|
|
41
40
|
## 输出格式
|
|
42
41
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- 验收标准: `<acceptance>`
|
|
10
10
|
- 测试命令: `<test_command>`
|
|
11
11
|
|
|
12
|
-
如果下面引用的 `docs/knowledge/*` 文件在 thin project
|
|
12
|
+
如果下面引用的 `docs/knowledge/*` 文件在 thin project 项目根不存在,先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`。
|
|
13
13
|
|
|
14
14
|
## 必查项
|
|
15
15
|
|
package/package-source/docs/codex-harness-engineering/templates/prompts/review-stage1-spec.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
## 真相源
|
|
14
14
|
|
|
15
|
-
如果下面引用的 `docs/harness/*`、`docs/testing/*` 或 `docs/knowledge/*` 文件在 thin project
|
|
15
|
+
如果下面引用的 `docs/harness/*`、`docs/testing/*` 或 `docs/knowledge/*` 文件在 thin project 项目根不存在,先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`。
|
|
16
16
|
|
|
17
17
|
- Truth source completeness: `<truth-source-state>`
|
|
18
18
|
- Product Spec: `<product-spec>`
|
package/package-source/docs/codex-harness-engineering/templates/prompts/review-stage2-quality.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
- 描述: `<task-description>`
|
|
9
9
|
- 测试命令: `<test-command>`
|
|
10
10
|
|
|
11
|
-
如果下面引用的 `docs/harness/*`、`docs/testing/*` 或 `docs/knowledge/*` 文件在 thin project
|
|
11
|
+
如果下面引用的 `docs/harness/*`、`docs/testing/*` 或 `docs/knowledge/*` 文件在 thin project 项目根不存在,先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`。
|
|
12
12
|
|
|
13
13
|
## 必查项
|
|
14
14
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
- 已运行应用的 URL
|
|
19
19
|
- 任务验收标准
|
|
20
20
|
|
|
21
|
-
如果下面引用的 `docs/knowledge/*` 文件在 thin project
|
|
21
|
+
如果下面引用的 `docs/knowledge/*` 文件在 thin project 项目根不存在,先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`。
|
|
22
22
|
|
|
23
23
|
## 评审流程
|
|
24
24
|
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
## 必读
|
|
8
8
|
|
|
9
9
|
- `AGENTS.md`
|
|
10
|
-
- `docs/harness/task-session-strategy.md`(thin project
|
|
10
|
+
- `docs/harness/task-session-strategy.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)
|
|
11
11
|
- `.codex/rules/agents.md`
|
|
12
|
-
- `docs/knowledge/knowledge-catalog.md`(thin project
|
|
12
|
+
- `docs/knowledge/knowledge-catalog.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`) 和相关知识条目(如任务阶段或标签相关)
|
|
13
13
|
- Product truth source
|
|
14
14
|
- Contract truth source
|
|
15
15
|
- `contracts/openapi.yaml`
|
package/package-source/docs/codex-harness-engineering/templates/prompts/worker-role/docs-worker.md
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
## 工作规则
|
|
8
8
|
|
|
9
|
-
- 启动前先阅读 `AGENTS.md`、`docs/harness/task-session-strategy.md`(thin project
|
|
10
|
-
- 涉及规则、prompt、归档或项目经验时,还要阅读 `docs/harness/rule-governance.md`(thin project
|
|
9
|
+
- 启动前先阅读 `AGENTS.md`、`docs/harness/task-session-strategy.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)、`.codex/rules/agents.md`、对应 `.agents/skills/*/SKILL.md`(如存在)与相关 truth source。
|
|
10
|
+
- 涉及规则、prompt、归档或项目经验时,还要阅读 `docs/harness/rule-governance.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)、`docs/harness/knowledge-architecture.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`) 和 `docs/knowledge/knowledge-catalog.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)。
|
|
11
11
|
- 文档必须引用真实存在的路径。
|
|
12
12
|
- 不要把临时讨论写成长期规则。
|
|
13
13
|
- 可复用经验优先写入 `docs/knowledge/`,不要直接写进 `AGENTS.md`。
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
## 必读
|
|
8
8
|
|
|
9
9
|
- `AGENTS.md`
|
|
10
|
-
- `docs/harness/task-session-strategy.md`(thin project
|
|
10
|
+
- `docs/harness/task-session-strategy.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)
|
|
11
11
|
- `.codex/rules/agents.md`
|
|
12
|
-
- `docs/knowledge/knowledge-catalog.md`(thin project
|
|
12
|
+
- `docs/knowledge/knowledge-catalog.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`) 和相关知识条目(如任务阶段或标签相关)
|
|
13
13
|
- Product truth source
|
|
14
14
|
- Design truth source
|
|
15
15
|
- `docs/design/image-to-frontend-spec.md`
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
## 必读
|
|
8
8
|
|
|
9
9
|
- `AGENTS.md`
|
|
10
|
-
- `docs/harness/task-session-strategy.md`(thin project
|
|
10
|
+
- `docs/harness/task-session-strategy.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)
|
|
11
11
|
- `.codex/rules/agents.md`
|
|
12
|
-
- `docs/harness/knowledge-architecture.md`(thin project
|
|
13
|
-
- `docs/harness/rule-governance.md`(thin project
|
|
14
|
-
- `docs/knowledge/knowledge-catalog.md`(thin project
|
|
12
|
+
- `docs/harness/knowledge-architecture.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)
|
|
13
|
+
- `docs/harness/rule-governance.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)
|
|
14
|
+
- `docs/knowledge/knowledge-catalog.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`) 和 `docs/knowledge/catalog.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)(如存在)
|
|
15
15
|
- 当前任务相关的 truth source
|
|
16
16
|
- 当前 writer task 和 owned paths
|
|
17
17
|
|
package/package-source/docs/codex-harness-engineering/templates/prompts/worker-role/test-runner.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
## 工作规则
|
|
8
8
|
|
|
9
|
-
- 启动前先阅读 `AGENTS.md`、`docs/harness/task-session-strategy.md`(thin project
|
|
9
|
+
- 启动前先阅读 `AGENTS.md`、`docs/harness/task-session-strategy.md`(thin project 缺失时先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:`docs/harness/* -> docs/codex-harness-engineering/templates/docs/*`、`docs/testing/* -> docs/codex-harness-engineering/templates/testing/*`、`docs/knowledge/* -> docs/codex-harness-engineering/templates/knowledge/*`)、`.codex/rules/agents.md`、对应 `.agents/skills/*/SKILL.md`(如存在)与相关 truth source。
|
|
10
10
|
- 按 test matrix 和 task test command 执行。
|
|
11
11
|
- 记录命令、退出码、日志路径、截图路径和 trace 路径。
|
|
12
12
|
- 失败时生成 failure findings,不直接修复。
|
|
@@ -1,65 +1,54 @@
|
|
|
1
|
-
|
|
1
|
+
## 模板优先
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
- 需要影响新项目 bootstrap、生成物结构、默认导航层、默认 prompt、默认规则、默认技能、默认上下文模板时,先修改模板 canonical:
|
|
4
|
+
- `docs/codex-harness-engineering/templates/`
|
|
5
|
+
- `tools/harness/templates/`
|
|
6
|
+
- `docs/codex-harness-engineering/templates/package-assets/`
|
|
7
|
+
- 当前仓库根目录下的活跃文档或脚本,只在它本身就是 canonical,或为了验证模板落地效果、保持当前仓库可运行时再同步修改。
|
|
8
|
+
- 如果一次改动同时涉及根目录活跃文件和模板文件,优先说明哪一份是 canonical,避免只修当前仓库、不修模板源。
|
|
4
9
|
|
|
5
|
-
##
|
|
10
|
+
## 任务结构硬门禁
|
|
6
11
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- `project-task-template.json` / `smoke-task.json` / `task.json` / `progress.txt`:任务与运行状态模板
|
|
12
|
-
- `task-run-profile.json`:运行策略模板
|
|
13
|
-
- `scripts/`:runtime 自检和队列校验脚本
|
|
14
|
-
- 维护该目录时,优先确认这些文件是“安装后运行面”,不要把只适用于模板仓库的局部说明大量混入这里。
|
|
12
|
+
- 未经用户明确同意,不得把标准 `task.json` 模板 phase 压缩成更少任务;正式任务队列至少保留 `ANALYSIS-001`、`TESTCASE-001`、`PLAN-001`。
|
|
13
|
+
- P0/P1 项目禁止跳过 `TESTCASE-001`;缺少 `docs/testing/NATURAL_LANGUAGE_TEST_CASES.md`、`ACCEPTANCE_CRITERIA.md`、`TRACEABILITY_MATRIX.md`、`TEST_DATA_MATRIX.md`、`REGRESSION_PLAN.md`、`verify-matrix.md` 任一项,都不得生成最终 `task.json`。
|
|
14
|
+
- `feature_impl` 没有 `qa_contract` 不得进入正式任务队列;`qa_contract` 没有完整 `tdd_contract`、`development_validation`、`acceptance_validation` 不得开始实现。
|
|
15
|
+
- 单个 `feature_impl` 默认不得覆盖超过 3 条主需求;订单、支付、库存、RBAC 必须拆独立任务;前端和后端不得长期混在同一个 story,除非这是明确的 `release` 任务。
|
|
15
16
|
|
|
16
|
-
##
|
|
17
|
+
## 子目录 AGENTS 规则
|
|
17
18
|
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
- 长会话续跑前,先重读 `docs/ai/CURRENT_TASK.md`、`docs/ai/repo-map.md` 和相关 truth source;不要只靠聊天记忆继续实现。
|
|
23
|
-
- 需要理解代码结构或安装包边界时,先读 `docs/ai/repo-map.md`,再进入具体目录或深文档。
|
|
24
|
-
- 需要落盘规则、任务、文档、前端、后端或测试内容时,先确认 truth source,再委派匹配的 writer 子代理或进入 driver 任务。
|
|
19
|
+
- 新增业务目录、模块职责变化、目录入口变化、目录级测试命令变化时,必须检查并更新最接近该目录的子目录 `AGENTS.md`。
|
|
20
|
+
- 目录级 `AGENTS.md` 负责承载局部职责、边界、入口、测试命令、复用模式、坑点和禁止事项;不要把这类规则长期堆在根 `AGENTS.md`。
|
|
21
|
+
- 自动托管区块 `AUTO-MODULE-FACTS` 只补动态事实,不等于目录规则完整;即使 facts 已自动刷新,仍需要有人维护手写的局部规则部分。
|
|
22
|
+
- 如果 `task.json.owned_paths`、`docs/ai/repo-map.md` 或模块边界已经明确某目录是独立模块,而该目录缺少子目录 `AGENTS.md`,应视为至少 `warn`,高风险目录应直接阻断进入正式任务队列或实现阶段。
|
|
25
23
|
|
|
26
|
-
##
|
|
24
|
+
## 目录级规则
|
|
27
25
|
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
- 多 Agent 协作时,禁止多个 Agent 同时修改同一文件或同一组可写路径;必须先按任务、目录、文件组、分支或 PR 隔离。
|
|
42
|
-
- 当前轮次结束前必须刷新 `docs/ai/CURRENT_TASK.md` 中的已完成内容、未完成内容、修改文件、测试结果和下一步。
|
|
43
|
-
- 阻塞时追加 `progress.txt`,输出 `BLOCKED - 需要人工介入`,然后停止。
|
|
44
|
-
|
|
45
|
-
## 阶段更新规则
|
|
46
|
-
|
|
47
|
-
- Stage 01 初始化:更新 `task.json`、`AGENTS.md`、项目路径和验证命令。
|
|
48
|
-
- Stage 02 需求收敛:更新 `docs/product/`、Requirement IDs、验收标准和可执行验收示例。
|
|
49
|
-
- Stage 03 追溯与架构约束:更新架构约束 truth source、测试追溯矩阵和证据协议。
|
|
50
|
-
- Stage 09 DEV-PLAN / 任务拆分:把架构约束、禁止实现和验证命令写入每个相关 `feature_impl`。
|
|
51
|
-
- Stage 10-14 实现与集成:只更新任务 owned paths 内的实现、测试和证据。
|
|
52
|
-
- Stage 15-16 Review:保持只读审查,输出 findings、证据和 repair queue。
|
|
53
|
-
- Stage 17 Verify / Regression:刷新验证证据,不在本阶段第一次补需求或测试范围。
|
|
54
|
-
- Archive:更新 `docs/knowledge/`、索引和可复用经验,不升级一次性结论为全局规则。
|
|
26
|
+
- 当某个目录满足以下任一条件时,应优先考虑新增或更新该目录下的 `AGENTS.md`,而不是继续扩充根入口:
|
|
27
|
+
- 目录有独立模块职责或技术栈
|
|
28
|
+
- 目录存在与全仓不同的架构边界
|
|
29
|
+
- 目录有独立入口文件、测试命令或验证方式
|
|
30
|
+
- 目录反复出现相同 review 问题、坑点或禁止事项
|
|
31
|
+
- 子目录 `AGENTS.md` 应重点写:
|
|
32
|
+
- 该目录负责什么 / 不负责什么
|
|
33
|
+
- 入口文件和核心文件
|
|
34
|
+
- 修改前必须先看的文件
|
|
35
|
+
- 本目录的局部架构规则和复用模式
|
|
36
|
+
- 测试 / 构建 / 验证命令
|
|
37
|
+
- 常见坑和禁止事项
|
|
38
|
+
- `docs/ai/repo-map.md` 及模板中的 repo-map 应维护“子目录规则索引”,明确哪些路径已有本地规则、适用于什么场景。
|
|
55
39
|
|
|
56
40
|
## 必读索引
|
|
57
41
|
|
|
58
|
-
如果当前仓库是 thin install 项目,而下面列出的 `docs/harness/*` 或 `docs/knowledge/*` 不在项目根,先读取 `.codex-harness/state/config.json
|
|
42
|
+
如果当前仓库是 thin install 项目,而下面列出的 `docs/harness/*`、`docs/testing/*` 或 `docs/knowledge/*` 不在项目根,先读取 `.codex-harness/state/config.json`,再按文档类型改读 `packageRoot` 下模板镜像中的对应文件:
|
|
43
|
+
- `docs/harness/*` -> `docs/codex-harness-engineering/templates/docs/*`
|
|
44
|
+
- `docs/testing/*` -> `docs/codex-harness-engineering/templates/testing/*`
|
|
45
|
+
- `docs/knowledge/*` -> `docs/codex-harness-engineering/templates/knowledge/*`
|
|
59
46
|
|
|
47
|
+
- Harness 分层分析索引:`harness-analysis/README.md`
|
|
48
|
+
- Codex Harness Engineering 总览:`docs/codex-harness-engineering/README.md`
|
|
49
|
+
- Codex 宿主自动加载机制:`docs/codex-harness-engineering/codex-host-runtime-and-autoload.md`
|
|
50
|
+
- Codex 自动加载优化清单:`harness-analysis/10-codex-autoload-optimization-checklist.md`
|
|
60
51
|
- Harness 架构:`docs/harness/architecture.md`
|
|
61
|
-
- 代码地图:`docs/ai/repo-map.md`
|
|
62
|
-
- 架构摘要:`docs/ai/architecture-brief.md`
|
|
63
52
|
- 架构约束包:`docs/architecture/constraints.md` 或 `task.json.runtime.handoff.truth_sources.architecture`
|
|
64
53
|
- 新项目使用:`docs/harness/new-project-usage.md`
|
|
65
54
|
- Task 会话与 `task.json` 细则:`docs/harness/task-session-strategy.md`
|
|
@@ -68,3 +57,9 @@
|
|
|
68
57
|
- Trace 格式:`docs/harness/trace-format.md`
|
|
69
58
|
- 权限策略:`docs/harness/sandbox-policy.md`
|
|
70
59
|
- Prompt 与知识集成:`docs/harness/prompt-knowledge-integration.md`
|
|
60
|
+
|
|
61
|
+
## 当前在做的事情
|
|
62
|
+
|
|
63
|
+
- 正在持续分析当前仓库里的 Codex 宿主层、Harness 控制层、安装工程和桥接层。
|
|
64
|
+
- 当前重点是把“哪些内容会被 Codex 自动加载到上下文、哪些只是运行配置、哪些是 Harness runtime 二次读取”彻底拆清。
|
|
65
|
+
- 所有新增分析文档统一落在 `harness-analysis/`,方法论和模板级说明补充到 `docs/codex-harness-engineering/`。
|
|
@@ -533,9 +533,6 @@ function Test-DoctorThinLegacyResidue {
|
|
|
533
533
|
param([string]$Root)
|
|
534
534
|
|
|
535
535
|
$legacyResiduePaths = @(
|
|
536
|
-
"docs\harness",
|
|
537
|
-
"docs\testing",
|
|
538
|
-
"docs\knowledge",
|
|
539
536
|
"docs\requirement-prep-kit"
|
|
540
537
|
)
|
|
541
538
|
|
|
@@ -578,6 +575,61 @@ function Test-DoctorThinLegacyResidue {
|
|
|
578
575
|
|
|
579
576
|
return $false
|
|
580
577
|
}
|
|
578
|
+
|
|
579
|
+
function Get-ThinProjectExcludedDestinations {
|
|
580
|
+
return @(
|
|
581
|
+
"docs/testing/",
|
|
582
|
+
"docs/harness/",
|
|
583
|
+
"docs/requirement-prep-kit/",
|
|
584
|
+
"docs/knowledge/"
|
|
585
|
+
)
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
function Test-ProjectScopeInstallSurface {
|
|
589
|
+
param(
|
|
590
|
+
[string]$Root,
|
|
591
|
+
[object]$ManifestSnapshot,
|
|
592
|
+
[ref]$Errors
|
|
593
|
+
)
|
|
594
|
+
|
|
595
|
+
if ($null -eq $ManifestSnapshot) {
|
|
596
|
+
return
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
$entries = @($ManifestSnapshot.entries | Where-Object { [string]$_.scope -eq "project" })
|
|
600
|
+
foreach ($entry in $entries) {
|
|
601
|
+
$destinationRaw = [string]$entry.destination
|
|
602
|
+
if ([string]::IsNullOrWhiteSpace($destinationRaw)) {
|
|
603
|
+
continue
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
$skipForThinProject = $false
|
|
607
|
+
foreach ($excludedDestination in @(Get-ThinProjectExcludedDestinations)) {
|
|
608
|
+
if ($destinationRaw.Replace('\', '/').StartsWith($excludedDestination, [System.StringComparison]::OrdinalIgnoreCase)) {
|
|
609
|
+
$skipForThinProject = $true
|
|
610
|
+
break
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
if ($skipForThinProject) {
|
|
614
|
+
continue
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
$normalizedDestination = $destinationRaw.Replace('/', '\').TrimStart('\')
|
|
618
|
+
$expectsDirectory = $destinationRaw.Trim().Replace('\', '/').EndsWith('/', [System.StringComparison]::Ordinal)
|
|
619
|
+
$targetPath = Join-Path $Root $normalizedDestination
|
|
620
|
+
|
|
621
|
+
if ($expectsDirectory) {
|
|
622
|
+
if (-not (Test-Path -LiteralPath $targetPath -PathType Container)) {
|
|
623
|
+
Add-DoctorError -Errors $Errors -Message "project scope 安装缺少目录: $normalizedDestination"
|
|
624
|
+
}
|
|
625
|
+
continue
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
if (-not (Test-Path -LiteralPath $targetPath -PathType Leaf)) {
|
|
629
|
+
Add-DoctorError -Errors $Errors -Message "project scope 安装缺少文件: $normalizedDestination"
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
581
633
|
|
|
582
634
|
function Test-DoctorMissingUserPackage {
|
|
583
635
|
param([object]$HarnessConfigInfo)
|
|
@@ -796,7 +848,7 @@ function Test-PackageLock {
|
|
|
796
848
|
}
|
|
797
849
|
}
|
|
798
850
|
|
|
799
|
-
function Test-InstallManifestSnapshot {
|
|
851
|
+
function Test-InstallManifestSnapshot {
|
|
800
852
|
param(
|
|
801
853
|
[string]$Root,
|
|
802
854
|
[bool]$RequireSnapshot,
|
|
@@ -874,9 +926,6 @@ function Test-ThinProjectSurface {
|
|
|
874
926
|
}
|
|
875
927
|
|
|
876
928
|
$legacyResiduePaths = @(
|
|
877
|
-
"docs\harness",
|
|
878
|
-
"docs\testing",
|
|
879
|
-
"docs\knowledge",
|
|
880
929
|
"docs\requirement-prep-kit"
|
|
881
930
|
)
|
|
882
931
|
|
|
@@ -915,6 +964,17 @@ function Test-ThinProjectSurface {
|
|
|
915
964
|
}
|
|
916
965
|
}
|
|
917
966
|
}
|
|
967
|
+
|
|
968
|
+
function Read-InstallManifestSnapshotOrNull {
|
|
969
|
+
param([string]$Root)
|
|
970
|
+
|
|
971
|
+
$snapshotPath = Join-Path $Root ".codex-harness\manifests\install-manifest.json"
|
|
972
|
+
if (-not (Test-Path -LiteralPath $snapshotPath -PathType Leaf)) {
|
|
973
|
+
return $null
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
return Read-JsonFileOrNull -Path $snapshotPath
|
|
977
|
+
}
|
|
918
978
|
|
|
919
979
|
function Test-HarnessConfig {
|
|
920
980
|
param(
|
|
@@ -1145,21 +1205,25 @@ if ((Test-Path -LiteralPath $specManifestSchemaPath) -and (-not (Test-JsonFile -
|
|
|
1145
1205
|
Add-DoctorError -Errors ([ref]$errors) -Message "spec-manifest.schema.json 不是合法 JSON: docs\\spec\\spec-manifest.schema.json"
|
|
1146
1206
|
}
|
|
1147
1207
|
|
|
1148
|
-
if ($isNotInstalledProject) {
|
|
1149
|
-
Add-DoctorError -Errors ([ref]$errors) -Message "readiness gate 未检测到 harness config 或 legacy vendor,请先安装 project scope。"
|
|
1150
|
-
}
|
|
1151
|
-
else {
|
|
1208
|
+
if ($isNotInstalledProject) {
|
|
1209
|
+
Add-DoctorError -Errors ([ref]$errors) -Message "readiness gate 未检测到 harness config 或 legacy vendor,请先安装 project scope。"
|
|
1210
|
+
}
|
|
1211
|
+
else {
|
|
1152
1212
|
if (-not $isVendorProjectInstall) {
|
|
1153
1213
|
Test-SpecManifest -Root $resolvedProjectRoot -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1154
1214
|
}
|
|
1155
1215
|
|
|
1156
|
-
Test-HarnessConfig -Root $resolvedProjectRoot -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1157
|
-
Test-PackageLock -Root $resolvedProjectRoot -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1158
|
-
if (-not $isThinProjectInstall) {
|
|
1159
|
-
Test-InstallManifest -Root $resolvedProjectRoot -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1160
|
-
}
|
|
1161
|
-
Test-InstallManifestSnapshot -Root $resolvedProjectRoot -RequireSnapshot:$harnessConfigInfo.Exists -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1162
|
-
|
|
1216
|
+
Test-HarnessConfig -Root $resolvedProjectRoot -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1217
|
+
Test-PackageLock -Root $resolvedProjectRoot -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1218
|
+
if (-not $isThinProjectInstall) {
|
|
1219
|
+
Test-InstallManifest -Root $resolvedProjectRoot -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1220
|
+
}
|
|
1221
|
+
Test-InstallManifestSnapshot -Root $resolvedProjectRoot -RequireSnapshot:$harnessConfigInfo.Exists -Errors ([ref]$errors) -Warnings ([ref]$warnings)
|
|
1222
|
+
if ($isThinProjectInstall) {
|
|
1223
|
+
$installManifestSnapshot = Read-InstallManifestSnapshotOrNull -Root $resolvedProjectRoot
|
|
1224
|
+
Test-ProjectScopeInstallSurface -Root $resolvedProjectRoot -ManifestSnapshot $installManifestSnapshot -Errors ([ref]$errors)
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1163
1227
|
|
|
1164
1228
|
if (-not (Test-Path -LiteralPath $taskPath)) {
|
|
1165
1229
|
if ($isNotInstalledProject) {
|
|
@@ -667,7 +667,8 @@ $contextFiles = @(
|
|
|
667
667
|
@{ Source = "context\API_MAP.md"; Destination = "docs\ai\API_MAP.md" },
|
|
668
668
|
@{ Source = "context\DB_SCHEMA.md"; Destination = "docs\ai\DB_SCHEMA.md" },
|
|
669
669
|
@{ Source = "context\KNOWN_ISSUES.md"; Destination = "docs\ai\KNOWN_ISSUES.md" },
|
|
670
|
-
@{ Source = "context\CHANGELOG_AI.md"; Destination = "docs\ai\CHANGELOG_AI.md" }
|
|
670
|
+
@{ Source = "context\CHANGELOG_AI.md"; Destination = "docs\ai\CHANGELOG_AI.md" },
|
|
671
|
+
@{ Source = "context\service-dependency-matrix.yaml"; Destination = ".service-matrix\dependencies.yaml" }
|
|
671
672
|
)
|
|
672
673
|
|
|
673
674
|
foreach ($file in $contextFiles) {
|