@tea-agent/loop-agent 0.35.0-beta.2 → 0.35.1-beta.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.
Files changed (154) hide show
  1. package/AGENTS.md +108 -108
  2. package/CHANGELOG.md +55 -4
  3. package/README.md +165 -165
  4. package/bin/agent-worker.js +0 -0
  5. package/bin/loop-agent.js +21 -21
  6. package/dist/application/task-lifecycle/advance.js +1 -0
  7. package/dist/commands/cursor-prompt.js +6 -6
  8. package/dist/commands/init-upgrade.js +351 -19
  9. package/dist/commands/init.js +14 -67
  10. package/dist/commands/loop-benchmark.js +11 -11
  11. package/dist/commands/pi-reuse-benchmark.js +16 -16
  12. package/dist/commands/run-dag-progress.js +14 -0
  13. package/dist/commands/task-advance.js +33 -3
  14. package/dist/shared/operator/capabilities.js +38 -1
  15. package/dist/sidecars/cursor-prompt/executor.js +1 -1
  16. package/dist/worker/console/chat/pi-runtime.js +41 -25
  17. package/dist/worker/console/chat/routes.js +27 -4
  18. package/dist/worker/console/operation-runner.js +24 -0
  19. package/dist/worker/console/operation-wait.js +241 -0
  20. package/dist/worker/console/operator-actions.js +58 -0
  21. package/dist/worker/console/static/assets/{index-hJqCPs_g.css → index-Dups4sSM.css} +1 -1
  22. package/dist/worker/console/static/assets/index-SjjjZnV3.js +56 -0
  23. package/dist/worker/console/static/index.html +2 -2
  24. package/dist/worker/console/static-src/operator-chat/slash-palette-nav.js +141 -0
  25. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +13 -2
  26. package/dist/worker/console/static-src/operator-chat/useComposer.js +30 -7
  27. package/dist/worker/observe/static/copy.js +67 -67
  28. package/dist/worker/observe/static/dag-layout.d.ts +36 -36
  29. package/dist/worker/observe/static/dom.js +220 -220
  30. package/dist/worker/observe/static/relations.js +133 -133
  31. package/dist/worker/observe/static/run-processing.js +148 -148
  32. package/dist/worker/observe/static/views/batch.js +227 -227
  33. package/dist/worker/observe/static/views/failures.js +143 -143
  34. package/dist/worker/observe/static/views/feature.js +492 -492
  35. package/dist/worker/observe/static/views/run.js +453 -453
  36. package/dist/worker/observe/static/views/shell.js +7 -7
  37. package/dist/worker/observe/static/views/timeline.js +163 -163
  38. package/dist/workflows/dag/canvas-observer.js +275 -275
  39. package/dist/workflows/dag/frontend-prewrite-gate.js +9 -1
  40. package/dist/workflows/dag/init-hybrid.js +2 -0
  41. package/docs/architecture/evolution.md +73 -73
  42. package/docs/architecture/system-overview.md +100 -100
  43. package/docs/architecture/worker-and-feature.md +122 -122
  44. package/docs/skills/README.md +7 -7
  45. package/docs/templates/adr.md +60 -60
  46. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  47. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  48. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  49. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  50. package/docs/templates/agent-dag-report.schema.json +473 -473
  51. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  52. package/docs/templates/backend-test-result.schema.json +99 -99
  53. package/docs/templates/evaluation/agents-map-slim-v1.md +87 -87
  54. package/docs/templates/evaluation/agents-map-verbose-v0.md +153 -153
  55. package/docs/templates/feature-spec.md +53 -53
  56. package/docs/templates/frontend-design-contract.md +42 -42
  57. package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -17
  58. package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -16
  59. package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -16
  60. package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -16
  61. package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -16
  62. package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -16
  63. package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -21
  64. package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -29
  65. package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -28
  66. package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -28
  67. package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -29
  68. package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -27
  69. package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -28
  70. package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -28
  71. package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -27
  72. package/docs/templates/frontend-eval/metrics.md +138 -138
  73. package/docs/templates/frontend-eval/smoke-targets.md +53 -53
  74. package/docs/templates/frontend-task-constraints.md +35 -35
  75. package/docs/templates/frontend-task-requirement.md +70 -70
  76. package/docs/templates/init-evolution-review.md +35 -35
  77. package/docs/templates/init-managed-agents.md +156 -154
  78. package/docs/templates/interactive-ui-round2-experiment.md +66 -66
  79. package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -118
  80. package/docs/templates/knowledge-sync-dag.json +178 -178
  81. package/docs/templates/knowledge-sync-draft.schema.json +71 -71
  82. package/docs/templates/product-line/closeout.yaml +9 -9
  83. package/docs/templates/product-line/design.md +13 -13
  84. package/docs/templates/product-line/links.md +10 -10
  85. package/docs/templates/product-line/requirement.md +17 -17
  86. package/docs/templates/product-line/test-plan.md +7 -7
  87. package/docs/templates/project-start-checklist.md +9 -9
  88. package/docs/templates/qa-report.md +48 -48
  89. package/docs/templates/sprint-contract.md +29 -29
  90. package/docs/templates/worker-dogfood-evidence.md +80 -80
  91. package/docs/templates/worker-dogfood-setup.md +68 -68
  92. package/harness.json +5 -2
  93. package/package.json +1 -1
  94. package/scripts/kb-bootstrap-init-skeleton.sh +0 -0
  95. package/scripts/kb-graph-incremental-prepare.mjs +0 -0
  96. package/scripts/kb-graph-materialize.mjs +105 -105
  97. package/scripts/kb-graph-promote.mjs +164 -164
  98. package/scripts/kb-query.mjs +554 -554
  99. package/skills/agent-worker/SKILL.md +48 -48
  100. package/skills/agent-worker/references/agent-worker-operator.md +159 -159
  101. package/skills/ai-engineering-context/SKILL.md +48 -48
  102. package/skills/analyze-product-dependencies/scripts/test-validators.mjs +0 -0
  103. package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +0 -0
  104. package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +0 -0
  105. package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +0 -0
  106. package/skills/analyze-product-requirements/scripts/compute-source-identity.mjs +0 -0
  107. package/skills/analyze-product-requirements/scripts/test-validators.mjs +0 -0
  108. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +0 -0
  109. package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +0 -0
  110. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +0 -0
  111. package/skills/browser-tools/browser-content.js +103 -103
  112. package/skills/browser-tools/browser-cookies.js +35 -35
  113. package/skills/browser-tools/browser-eval.js +53 -53
  114. package/skills/browser-tools/browser-hn-scraper.js +108 -108
  115. package/skills/browser-tools/browser-nav.js +44 -44
  116. package/skills/browser-tools/browser-pick.js +162 -162
  117. package/skills/browser-tools/browser-screenshot.js +34 -34
  118. package/skills/browser-tools/browser-start.js +86 -86
  119. package/skills/browser-tools/package-lock.json +2556 -2556
  120. package/skills/browser-tools/package.json +19 -19
  121. package/skills/code-review-core/SKILL.md +20 -20
  122. package/skills/codebase-scout/SKILL.md +19 -19
  123. package/skills/grill-me/SKILL.md +10 -10
  124. package/skills/local-jacoco-coverage/scripts/run-coverage-analysis.sh +0 -0
  125. package/skills/local-jacoco-coverage/scripts/start-jacoco-agent.sh +0 -0
  126. package/skills/loop-agent/SKILL.md +1 -0
  127. package/skills/loop-agent/references/command-reference.md +641 -639
  128. package/skills/loop-agent/references/docs-converge.md +126 -126
  129. package/skills/loop-agent/references/learned/README.md +21 -21
  130. package/skills/loop-agent/references/pi-prompt.md +23 -23
  131. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -84
  132. package/skills/playwright-cli/references/element-attributes.md +23 -23
  133. package/skills/playwright-cli/references/playwright-tests.md +39 -39
  134. package/skills/playwright-cli/references/request-mocking.md +87 -87
  135. package/skills/playwright-cli/references/running-code.md +241 -241
  136. package/skills/playwright-cli/references/session-management.md +225 -225
  137. package/skills/playwright-cli/references/storage-state.md +275 -275
  138. package/skills/playwright-cli/references/test-generation.md +433 -433
  139. package/skills/requesting-code-review/SKILL.md +101 -101
  140. package/skills/requesting-code-review/code-reviewer.md +168 -168
  141. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  142. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  143. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  144. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  145. package/skills/systematic-debugging/find-polluter.sh +63 -63
  146. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  147. package/skills/systematic-debugging/test-academic.md +14 -14
  148. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  149. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  150. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  151. package/skills/using-git-worktrees/SKILL.md +215 -215
  152. package/skills/verification-before-completion/SKILL.md +154 -154
  153. package/skills/webapp-testing/SKILL.md +19 -19
  154. package/dist/worker/console/static/assets/index-fsjzREob.js +0 -56
@@ -1,153 +1,153 @@
1
- <!-- CODEGRAPH_START -->
2
- ## CodeGraph
3
-
4
- 如果仓库根目录存在 `.codegraph/`,在理解或定位代码前优先使用 CodeGraph,再考虑 rg/fd 或手动读文件。
5
- <!-- CODEGRAPH_END -->
6
-
7
- # AGENTS.md
8
-
9
- 本仓库采用“人类掌舵,智能体执行”的工程方式。目标不是一次性写完所有代码,而是在一个可持续演进、可交接、可验证的系统里做小步增量。
10
-
11
- `AGENTS.md` 是地图,不是百科。顶层只保留开工协议、会话协议与文档导航;长期知识、方法论、决策、计划、报告和模板应进入 `docs/`。
12
-
13
- ## 默认立场
14
-
15
- - 仓库是记录系统:决策、契约、计划、测试、报告优先落到仓库,而不是停留在聊天里。
16
- - 一次只推进一个清晰工作块;主会话按 Orient → Select → Contract → Implement → Verify → Handoff 治理,runtime 真实流程以 `src/workflows/` 为准。
17
- - 先验证基线,再叠加改动;如果当前基线已坏,优先定位基线问题。
18
- - Do not consider backward compatibility. Ignore legacy code/libraries.
19
- - 完成定义必须可验证;不能靠删测试、降标准或模糊描述制造“完成”。
20
- - 搜索先于实现;先查现有代码、文档、脚本、测试,避免重复造轮子或误判系统能力。
21
- - 受治理 Agent runtime 只有 Pi:DAG writer 固定为 `implement-pi` / `repair-pi`;`cursor-prompt` 仅是显式手工 one-shot sidecar,不进入 Loop auto-execute 或 Delegate 自动写入。
22
- - 在 DAG runtime 中,搜索/侦察是显式节点:标准路径是 Contract → Scout → Plan → Implement → Verify → Closeout/Handoff。
23
- - init surface、runtime 边界、command registry、skill entry 和架构 import 方向是可机器校验的治理契约;相关细节以 `docs/init-surface.manifest.json`、`docs/architecture/runtime-boundaries.md`、`src/cli/command-definitions.ts`、`skills/loop-agent/` 和 `scripts/check-*.sh` 为准,顶层 `AGENTS.md` 只指路,不重复维护事实源。
24
- - 本仓库既是 loop-agent 源项目,也是目标项目初始化体验的默认模板;任何新增命令、脚本、文档、skill、模板或发布包内容,都要判断它应由 npm 包内置提供,还是由 `loop-agent init` 投影到目标项目,避免出现“本项目能用、初始化项目缺能力”。
25
- - 委托模型写入前,必须把写入边界写成结构化 `task.json.allowedPaths` / `task.json.forbiddenPaths`,再审查生成 DAG 的 writer `writeSet`;不要只依赖 `source/执行约束.md` 的自然语言约束。
26
- - Shell 搜索优先 `rg`,按名找文件优先 `fd`;脚本确为 Bash 脚本时使用 Git Bash 或已配置的兼容 Bash,不要求 Windows 环境适配 POSIX 路径。
27
- - 用 loop-agent 迭代本仓库时,控制器必须来自已发布的 npm 安装包;首次安装或有意升级可用 `@tea-agent/loop-agent@latest`,但一次自举任务启动后不要中途升级控制器,并记录 `npm list -g @tea-agent/loop-agent --depth=0` 显示的实际版本。不要用当前工作区的 `npm link` 或 `npm run dev` 控制可能改动 CLI、DAG runtime、executor、package metadata 或 build output 的任务。
28
- - 反复出现的约束要固化为文档、脚本、检查项、测试或模板。
29
- - 除非用户明确要求,不要自行引入外部 SDD、spec-first、brainstorming 等方法论的强制设计文档、审批门或专用目录;本仓库的工作流程以本文件和 `docs/` 中的治理规则为准。
30
- - 对非微小的实现或修复,`exec-plan` 只负责记录 Contract、进度和验证证据,不能替代 Agent DAG。除非用户明确要求 one-shot,或在计划中记录了适用的 escape hatch 与理由,否则在改动实现文件前必须完成 `task advance`(含结构化 `allowedPaths` / `forbiddenPaths` 与 writeSet 审查);随后 `--approve-gate` 长跑,不得主会话直接改实现。
31
- - 禁止占位实现;除非 contract 明确约定为脚手架且标出后续闭环。
32
-
33
- ## 开始顺序
34
-
35
- 改文件前必须先完成:
36
-
37
- 1. 运行 `pwd`。
38
- 2. 阅读 `README.md`。
39
- 3. 阅读 `harness.json`。
40
- 4. 阅读 `docs/README.md`。
41
- 5. 如果存在 `CONTEXT.md`,阅读项目术语表,避免混用任务源、执行约束、契约、计划等领域概念。
42
- 6. 如果是实现类工作,继续阅读:
43
- - `docs/governance/development-principles.md`
44
- - `docs/governance/feature-workflow.md`
45
- - `docs/governance/verification-matrix.md`
46
- 7. 如果任务涉及命令入口、执行流程、executor、初始化投影、skills、脚本矩阵、发布包范围或治理检查,继续阅读:
47
- - `docs/architecture/runtime-boundaries.md`
48
- - `docs/runtime/loop-agent-harness.md`
49
- 8. 如果任务涉及测试纪律、验证声明或调试,继续阅读:
50
- - `docs/governance/harness-methodology-tdd.md`
51
- - `docs/governance/harness-methodology-verification.md`
52
- - `docs/governance/harness-methodology-debugging.md`
53
- 9. 查看最近提交、相关执行计划、progress/report,确认当前上下文。
54
- 10. 检查 `git status --short --branch`。
55
- 11. 运行本次任务相关的最小基线验证。
56
- 12. 如果用户提到"后端测试"、"接口测试"、"pytest"、"自动化测试",在任务 `task.json` 中设置 `taskKind: "backend-test"` 再 `task advance`;不要用 `--profile backend-test`(CLI 不接受该值,专用模板只走 taskKind)。知识回写用 `taskKind: "knowledge-sync"`(须 `featureId`),图谱开荒用 `taskKind: "knowledge-graph-bootstrap"`。`--profile` 仅表示治理强度:`auto|minimal|standard|reviewed|supervised`。
57
- 13. 如果用户提到"看板"、"observe"、"监控面板"、"启动看板",使用 `agent-worker console` 启动统一 Operator Console(默认 repo=当前目录、port=8790;本地图形环境默认打开浏览器,`--no-open` 禁止);`/inspect/` 提供只读检视。`agent-worker observe serve` 已下线(REMOVED / exit 2)。
58
- 14. 如果用户要求“合并 `<source>` 到 `<target>`”或“合并 origin/main 到当前分支”,先阅读 `docs/operations/branch-merge-guideline.md`,按影响自动选择快速、标准或深度模式;始终冻结 source SHA、审查双方功能、运行 merge-tree、生成 source-SHA 合并报告,并在提交前再次 fetch 防止主干前进。
59
-
60
- ## 会话协议
61
-
62
- 1. Orient:读入口文档、相关专题、最近变更和现有实现。
63
- 2. Select:只选一个清晰工作块;避免把重构、新功能、文档迁移混在一轮里。
64
- 3. Contract:写清本轮交付物、非目标、完成标准、验证方法和失败条件。
65
- 4. Implement:做最小增量实现,同步维护必要文档、脚本和测试。
66
- 5. Verify:优先跑快速反馈,再跑必要的真实路径验证。
67
- 6. Converge Docs:检查 README、AGENTS.md、CHANGELOG.md、docs/README.md、相关治理文档、skills references、website docs、初始化模板和脚本说明是否仍与实际行为一致;只更新与本次变更相关的内容,不做顺手文档迁移。
68
- 7. Handoff:更新 progress/report/plan 中有长期价值的信息,写清风险、剩余项和下一步。
69
-
70
- 这套会话协议不是 DAG runtime 的节点序列。复杂实现默认采用 Agent DAG;具体节点拓扑、profile routing、writer 选择和 runner 行为以 `docs/governance/feature-workflow.md` 与 `src/workflows/` 为准。主 agent 负责拆任务、写 contract、把允许/禁止路径写入结构化 task config、审查 DAG/writeSet/profile/shell verification、盯验证与 handoff。微小任务或 DAG runtime 自身修复也应优先使用 DAG,或使用 one-shot `pi-prompt` / `cursor-prompt` escape hatch 并记录边界与验证证据。
71
-
72
- ## 项目地图
73
-
74
- - `CONTEXT.md`:项目术语表,定义 loop-agent、任务源、执行约束等领域语言
75
- - `src/`:loop-agent 运行时代码
76
- - `test/`:Vitest 测试套件
77
- - `bin/loop-agent.js`:CLI 可执行入口
78
- - `skills/`:loop-agent 源仓库和 npm 包内置 skill 指令与参考资料;目标项目初始化后只生成 `.agents/skills/`,不再生成根 `skills/`。初始化还会向目标项目 `.gitignore` 合并 loop-agent managed block,忽略 `.harness/tasks/*`、`.harness/dag-runs/*`、`.harness/runs/*`、`.harness/evaluation/`、`.harness/dogfood-evidence/`、`.harness/init-surface.json`、`.harness/task-pool/*`、`.task-pool/`、`.worktrees/` 等运行态事实,但保留 `.harness/prompts/` 和目录占位可共享,不会整目录忽略 `.harness/`。
79
- - `.harness/`:任务、DAG、run、cache 和 live state 等运行态目录
80
- - `docs/`:治理文档、计划、报告和模板
81
- - `website/`:Docusaurus 用户文档站
82
- - `scripts/`:验证和维护脚本
83
-
84
- ## 工作规则
85
-
86
- - 每次任务只推进一个清晰、有边界的工作块。
87
- - 保留无关的用户改动,不要回退自己没有做的修改。
88
- - 优先沿用现有 helper、目录边界和局部模式,再考虑新增抽象。
89
- - 长期决策写入 `docs/`,不要只留在聊天里。
90
- - 分支合并遵循 `docs/operations/branch-merge-guideline.md`;快速模式只用于可证明的低风险/no-op 合并,涉及冲突、init/package/runtime/release/public API 时必须升级为标准或深度模式。
91
- - 后端测试、接口/API 测试、pytest 或明确的后端自动化测试,必须把 `.harness/tasks/<task-id>/task.json` 的 `taskKind` 设置为 `"backend-test"`,不得保留默认 `standard`。`backend-test` 是 `taskKind`,不是 `--profile` 的可选值;`task advance` 继续使用 `--profile auto` 选择治理等级。仅说“自动化测试”且前后端不明时,先根据任务源和项目技术栈判断,禁止无条件路由。
92
- - 本地 Operator Console:`agent-worker console`(默认 repo=当前目录、port=8790;`--no-open` 可禁止自动打开浏览器),访问 `http://127.0.0.1:8790/`;其中 `/inspect/` 为只读运行检视。默认绑定本机 `127.0.0.1`;可用 `--host 0.0.0.0` / `--debug`,不要直接暴露到公开网络。端口被占用时不会自动更换,请用 `--port <port>` 显式指定。
93
- - 面向使用者的新增、修改、删除或修复,应同步更新根目录 `CHANGELOG.md`;保持版本级摘要即可,不写过细技术细节。
94
- - 面向用户的中文更新日志、README 和说明文档应使用自然、结果导向的表达:先说明用户能获得什么或问题如何改善,保留必要的命令和产品术语,避免逐字翻译、内部实现细节和无意义的中英混杂。
95
- - 涉及 `loop-agent init` 或目标项目投影的改动,必须同步考虑目标项目生成物:`AGENTS.md`、`README.md`、`harness.json`、`ai_workspace/loop-agent/`、`scripts/`、`.agents/skills/`、`.harness/prompts`、`.gitignore`(loop-agent runtime managed block)和 npm 包内置 assets;目标项目根 `docs/` 和根 `skills/` 的旧投影需要由 `init update --apply-safe` 安全迁移或退役。
96
- - 涉及初始化能力演化时,按 `docs/init-surface.manifest.json` 与 `scripts/check-init-evolution-needed.sh` 分级处理:小改 advisory,中等 surface-check,高影响才需要模型审查;不要把所有小改动升级成重流程。
97
- - 通用脚本、skill 和模板可以复制或投影;项目相关 README、验证命令、发布/维护脚本必须基于模板和目标项目真实文件生成,不假定目标项目是 TypeScript、Node、前端、后端或工具项目。
98
- - 涉及 CLI command、skill entry、runtime boundary、import 方向或发布包范围时,同步更新对应文档、catalog/definition、治理脚本和测试,避免 README、skill reference、CLI help、npm 包内容互相漂移。
99
- - 完成相关更新后必须做文档收敛:如果 README、AGENTS.md、CHANGELOG.md、docs、skills、website、初始化生成模板或脚本说明不需要更新,应在交接里写明理由。
100
- - 不提交占位实现。
101
- - 没有新鲜验证证据时,不声明工作完成。
102
- - 发现新 bug、技术债或契约漂移时,写回当前 plan、progress 或 report,而不是只在对话里提一句。
103
- - 涉及 harness 流程变化时,优先把变化落到 `harness.json`、模板、脚本或治理文档,而不是只改提示词。
104
-
105
- ## 验证
106
-
107
- 用 `docs/governance/verification-matrix.md` 选择命令。常用门禁:
108
-
109
- ```bash
110
- npm run typecheck
111
- npm test
112
- npm run build
113
- node bin/loop-agent.js --help
114
- bash scripts/check-repo.sh
115
- bash scripts/ci.sh
116
- ```
117
-
118
- Windows 上运行 `scripts/*.sh` 时使用 Git Bash 或已配置的兼容 Bash。CLI、Node 代码、模板和提示词里的实际文件路径必须兼容 macOS 与 Windows:优先使用平台原生临时目录和 `path`/`os.tmpdir()`;仅在 repo 引用、JSON/Markdown 证据引用和 glob 约定中使用 `/` 作为稳定分隔符。
119
-
120
- 文档站相关变更还需要按范围运行:
121
-
122
- ```bash
123
- npm run docs:build
124
- ```
125
-
126
- 按变更类型补充定向验证:
127
-
128
- - 初始化能力或目标项目投影:运行 `test/init-command.test.ts`,并在临时目标项目执行 `loop-agent init --profile full --merge`、`loop-agent init doctor`、`loop-agent inspect`、`loop-agent docs audit` 和目标项目 `bash scripts/check-repo.sh`。
129
- - init surface 或初始化能力演化:运行 `bash scripts/check-init-evolution-needed.sh` 和 `bash scripts/check-init-surface.sh`;高影响或发布前按需使用 `--strict` 并参考 `skills/init-capability-evolution/` 与 `docs/templates/init-evolution-review.md`。
130
- - runtime boundary / command registry / skill entry:运行 `bash scripts/check-architecture-boundaries.sh`、`bash scripts/check-command-registry-drift.sh`、`bash scripts/check-skill-entry.sh`,并确保 `bash scripts/check-repo.sh` 覆盖这些检查。
131
- - 发布包范围:运行 `npm run build`、`node bin/loop-agent.js --help` 和 `npm pack --dry-run`,确认初始化所需静态资料在 package files 中。
132
-
133
- ## 交接
134
-
135
- 较大的工作结束时记录:
136
-
137
- - 改了什么
138
- - 为什么这样改
139
- - 执行过哪些验证命令以及结果
140
- - 是否影响契约、文档、测试或脚本
141
- - 剩余风险
142
- - 后续工作
143
-
144
- ## 禁止事项
145
-
146
- - 不要在未读相关文档的前提下直接大改。
147
- - 不要一次混合重构、新功能和文档大迁移而没有清晰边界。
148
- - 不要把仅存在于对话里的约束当作长期知识。
149
- - 不要在缺少验证的情况下宣称完成。
150
- - 不要假设系统没有某个能力;先搜索再判断。
151
- - 不要用 stub、假数据通路或注释承诺替代真正交付。
152
- - 不要把个人机器的绝对路径写入仓库级 `AGENTS.md`、README、模板或发布包资料;个人工具配置应留在用户级配置或本机会话上下文。
153
- - 不要只更新 loop-agent 本仓库体验而遗漏目标项目初始化体验;新增能力如果不能通过 npm 内置资料或 `loop-agent init` 到达目标项目,必须写清原因和替代入口。
1
+ <!-- CODEGRAPH_START -->
2
+ ## CodeGraph
3
+
4
+ 如果仓库根目录存在 `.codegraph/`,在理解或定位代码前优先使用 CodeGraph,再考虑 rg/fd 或手动读文件。
5
+ <!-- CODEGRAPH_END -->
6
+
7
+ # AGENTS.md
8
+
9
+ 本仓库采用“人类掌舵,智能体执行”的工程方式。目标不是一次性写完所有代码,而是在一个可持续演进、可交接、可验证的系统里做小步增量。
10
+
11
+ `AGENTS.md` 是地图,不是百科。顶层只保留开工协议、会话协议与文档导航;长期知识、方法论、决策、计划、报告和模板应进入 `docs/`。
12
+
13
+ ## 默认立场
14
+
15
+ - 仓库是记录系统:决策、契约、计划、测试、报告优先落到仓库,而不是停留在聊天里。
16
+ - 一次只推进一个清晰工作块;主会话按 Orient → Select → Contract → Implement → Verify → Handoff 治理,runtime 真实流程以 `src/workflows/` 为准。
17
+ - 先验证基线,再叠加改动;如果当前基线已坏,优先定位基线问题。
18
+ - Do not consider backward compatibility. Ignore legacy code/libraries.
19
+ - 完成定义必须可验证;不能靠删测试、降标准或模糊描述制造“完成”。
20
+ - 搜索先于实现;先查现有代码、文档、脚本、测试,避免重复造轮子或误判系统能力。
21
+ - 受治理 Agent runtime 只有 Pi:DAG writer 固定为 `implement-pi` / `repair-pi`;`cursor-prompt` 仅是显式手工 one-shot sidecar,不进入 Loop auto-execute 或 Delegate 自动写入。
22
+ - 在 DAG runtime 中,搜索/侦察是显式节点:标准路径是 Contract → Scout → Plan → Implement → Verify → Closeout/Handoff。
23
+ - init surface、runtime 边界、command registry、skill entry 和架构 import 方向是可机器校验的治理契约;相关细节以 `docs/init-surface.manifest.json`、`docs/architecture/runtime-boundaries.md`、`src/cli/command-definitions.ts`、`skills/loop-agent/` 和 `scripts/check-*.sh` 为准,顶层 `AGENTS.md` 只指路,不重复维护事实源。
24
+ - 本仓库既是 loop-agent 源项目,也是目标项目初始化体验的默认模板;任何新增命令、脚本、文档、skill、模板或发布包内容,都要判断它应由 npm 包内置提供,还是由 `loop-agent init` 投影到目标项目,避免出现“本项目能用、初始化项目缺能力”。
25
+ - 委托模型写入前,必须把写入边界写成结构化 `task.json.allowedPaths` / `task.json.forbiddenPaths`,再审查生成 DAG 的 writer `writeSet`;不要只依赖 `source/执行约束.md` 的自然语言约束。
26
+ - Shell 搜索优先 `rg`,按名找文件优先 `fd`;脚本确为 Bash 脚本时使用 Git Bash 或已配置的兼容 Bash,不要求 Windows 环境适配 POSIX 路径。
27
+ - 用 loop-agent 迭代本仓库时,控制器必须来自已发布的 npm 安装包;首次安装或有意升级可用 `@tea-agent/loop-agent@latest`,但一次自举任务启动后不要中途升级控制器,并记录 `npm list -g @tea-agent/loop-agent --depth=0` 显示的实际版本。不要用当前工作区的 `npm link` 或 `npm run dev` 控制可能改动 CLI、DAG runtime、executor、package metadata 或 build output 的任务。
28
+ - 反复出现的约束要固化为文档、脚本、检查项、测试或模板。
29
+ - 除非用户明确要求,不要自行引入外部 SDD、spec-first、brainstorming 等方法论的强制设计文档、审批门或专用目录;本仓库的工作流程以本文件和 `docs/` 中的治理规则为准。
30
+ - 对非微小的实现或修复,`exec-plan` 只负责记录 Contract、进度和验证证据,不能替代 Agent DAG。除非用户明确要求 one-shot,或在计划中记录了适用的 escape hatch 与理由,否则在改动实现文件前必须完成 `task advance`(含结构化 `allowedPaths` / `forbiddenPaths` 与 writeSet 审查);随后 `--approve-gate` 长跑,不得主会话直接改实现。
31
+ - 禁止占位实现;除非 contract 明确约定为脚手架且标出后续闭环。
32
+
33
+ ## 开始顺序
34
+
35
+ 改文件前必须先完成:
36
+
37
+ 1. 运行 `pwd`。
38
+ 2. 阅读 `README.md`。
39
+ 3. 阅读 `harness.json`。
40
+ 4. 阅读 `docs/README.md`。
41
+ 5. 如果存在 `CONTEXT.md`,阅读项目术语表,避免混用任务源、执行约束、契约、计划等领域概念。
42
+ 6. 如果是实现类工作,继续阅读:
43
+ - `docs/governance/development-principles.md`
44
+ - `docs/governance/feature-workflow.md`
45
+ - `docs/governance/verification-matrix.md`
46
+ 7. 如果任务涉及命令入口、执行流程、executor、初始化投影、skills、脚本矩阵、发布包范围或治理检查,继续阅读:
47
+ - `docs/architecture/runtime-boundaries.md`
48
+ - `docs/runtime/loop-agent-harness.md`
49
+ 8. 如果任务涉及测试纪律、验证声明或调试,继续阅读:
50
+ - `docs/governance/harness-methodology-tdd.md`
51
+ - `docs/governance/harness-methodology-verification.md`
52
+ - `docs/governance/harness-methodology-debugging.md`
53
+ 9. 查看最近提交、相关执行计划、progress/report,确认当前上下文。
54
+ 10. 检查 `git status --short --branch`。
55
+ 11. 运行本次任务相关的最小基线验证。
56
+ 12. 如果用户提到"后端测试"、"接口测试"、"pytest"、"自动化测试",在任务 `task.json` 中设置 `taskKind: "backend-test"` 再 `task advance`;不要用 `--profile backend-test`(CLI 不接受该值,专用模板只走 taskKind)。知识回写用 `taskKind: "knowledge-sync"`(须 `featureId`),图谱开荒用 `taskKind: "knowledge-graph-bootstrap"`。`--profile` 仅表示治理强度:`auto|minimal|standard|reviewed|supervised`。
57
+ 13. 如果用户提到"看板"、"observe"、"监控面板"、"启动看板",使用 `agent-worker console` 启动统一 Operator Console(默认 repo=当前目录、port=8790;本地图形环境默认打开浏览器,`--no-open` 禁止);`/inspect/` 提供只读检视。`agent-worker observe serve` 已下线(REMOVED / exit 2)。
58
+ 14. 如果用户要求“合并 `<source>` 到 `<target>`”或“合并 origin/main 到当前分支”,先阅读 `docs/operations/branch-merge-guideline.md`,按影响自动选择快速、标准或深度模式;始终冻结 source SHA、审查双方功能、运行 merge-tree、生成 source-SHA 合并报告,并在提交前再次 fetch 防止主干前进。
59
+
60
+ ## 会话协议
61
+
62
+ 1. Orient:读入口文档、相关专题、最近变更和现有实现。
63
+ 2. Select:只选一个清晰工作块;避免把重构、新功能、文档迁移混在一轮里。
64
+ 3. Contract:写清本轮交付物、非目标、完成标准、验证方法和失败条件。
65
+ 4. Implement:做最小增量实现,同步维护必要文档、脚本和测试。
66
+ 5. Verify:优先跑快速反馈,再跑必要的真实路径验证。
67
+ 6. Converge Docs:检查 README、AGENTS.md、CHANGELOG.md、docs/README.md、相关治理文档、skills references、website docs、初始化模板和脚本说明是否仍与实际行为一致;只更新与本次变更相关的内容,不做顺手文档迁移。
68
+ 7. Handoff:更新 progress/report/plan 中有长期价值的信息,写清风险、剩余项和下一步。
69
+
70
+ 这套会话协议不是 DAG runtime 的节点序列。复杂实现默认采用 Agent DAG;具体节点拓扑、profile routing、writer 选择和 runner 行为以 `docs/governance/feature-workflow.md` 与 `src/workflows/` 为准。主 agent 负责拆任务、写 contract、把允许/禁止路径写入结构化 task config、审查 DAG/writeSet/profile/shell verification、盯验证与 handoff。微小任务或 DAG runtime 自身修复也应优先使用 DAG,或使用 one-shot `pi-prompt` / `cursor-prompt` escape hatch 并记录边界与验证证据。
71
+
72
+ ## 项目地图
73
+
74
+ - `CONTEXT.md`:项目术语表,定义 loop-agent、任务源、执行约束等领域语言
75
+ - `src/`:loop-agent 运行时代码
76
+ - `test/`:Vitest 测试套件
77
+ - `bin/loop-agent.js`:CLI 可执行入口
78
+ - `skills/`:loop-agent 源仓库和 npm 包内置 skill 指令与参考资料;目标项目初始化后只生成 `.agents/skills/`,不再生成根 `skills/`。初始化还会向目标项目 `.gitignore` 合并 loop-agent managed block,忽略 `.harness/tasks/*`、`.harness/dag-runs/*`、`.harness/runs/*`、`.harness/evaluation/`、`.harness/dogfood-evidence/`、`.harness/init-surface.json`、`.harness/task-pool/*`、`.task-pool/`、`.worktrees/` 等运行态事实,但保留 `.harness/prompts/` 和目录占位可共享,不会整目录忽略 `.harness/`。
79
+ - `.harness/`:任务、DAG、run、cache 和 live state 等运行态目录
80
+ - `docs/`:治理文档、计划、报告和模板
81
+ - `website/`:Docusaurus 用户文档站
82
+ - `scripts/`:验证和维护脚本
83
+
84
+ ## 工作规则
85
+
86
+ - 每次任务只推进一个清晰、有边界的工作块。
87
+ - 保留无关的用户改动,不要回退自己没有做的修改。
88
+ - 优先沿用现有 helper、目录边界和局部模式,再考虑新增抽象。
89
+ - 长期决策写入 `docs/`,不要只留在聊天里。
90
+ - 分支合并遵循 `docs/operations/branch-merge-guideline.md`;快速模式只用于可证明的低风险/no-op 合并,涉及冲突、init/package/runtime/release/public API 时必须升级为标准或深度模式。
91
+ - 后端测试、接口/API 测试、pytest 或明确的后端自动化测试,必须把 `.harness/tasks/<task-id>/task.json` 的 `taskKind` 设置为 `"backend-test"`,不得保留默认 `standard`。`backend-test` 是 `taskKind`,不是 `--profile` 的可选值;`task advance` 继续使用 `--profile auto` 选择治理等级。仅说“自动化测试”且前后端不明时,先根据任务源和项目技术栈判断,禁止无条件路由。
92
+ - 本地 Operator Console:`agent-worker console`(默认 repo=当前目录、port=8790;`--no-open` 可禁止自动打开浏览器),访问 `http://127.0.0.1:8790/`;其中 `/inspect/` 为只读运行检视。默认绑定本机 `127.0.0.1`;可用 `--host 0.0.0.0` / `--debug`,不要直接暴露到公开网络。端口被占用时不会自动更换,请用 `--port <port>` 显式指定。
93
+ - 面向使用者的新增、修改、删除或修复,应同步更新根目录 `CHANGELOG.md`;保持版本级摘要即可,不写过细技术细节。
94
+ - 面向用户的中文更新日志、README 和说明文档应使用自然、结果导向的表达:先说明用户能获得什么或问题如何改善,保留必要的命令和产品术语,避免逐字翻译、内部实现细节和无意义的中英混杂。
95
+ - 涉及 `loop-agent init` 或目标项目投影的改动,必须同步考虑目标项目生成物:`AGENTS.md`、`README.md`、`harness.json`、`ai_workspace/loop-agent/`、`scripts/`、`.agents/skills/`、`.harness/prompts`、`.gitignore`(loop-agent runtime managed block)和 npm 包内置 assets;目标项目根 `docs/` 和根 `skills/` 的旧投影需要由 `init update --apply-safe` 安全迁移或退役。
96
+ - 涉及初始化能力演化时,按 `docs/init-surface.manifest.json` 与 `scripts/check-init-evolution-needed.sh` 分级处理:小改 advisory,中等 surface-check,高影响才需要模型审查;不要把所有小改动升级成重流程。
97
+ - 通用脚本、skill 和模板可以复制或投影;项目相关 README、验证命令、发布/维护脚本必须基于模板和目标项目真实文件生成,不假定目标项目是 TypeScript、Node、前端、后端或工具项目。
98
+ - 涉及 CLI command、skill entry、runtime boundary、import 方向或发布包范围时,同步更新对应文档、catalog/definition、治理脚本和测试,避免 README、skill reference、CLI help、npm 包内容互相漂移。
99
+ - 完成相关更新后必须做文档收敛:如果 README、AGENTS.md、CHANGELOG.md、docs、skills、website、初始化生成模板或脚本说明不需要更新,应在交接里写明理由。
100
+ - 不提交占位实现。
101
+ - 没有新鲜验证证据时,不声明工作完成。
102
+ - 发现新 bug、技术债或契约漂移时,写回当前 plan、progress 或 report,而不是只在对话里提一句。
103
+ - 涉及 harness 流程变化时,优先把变化落到 `harness.json`、模板、脚本或治理文档,而不是只改提示词。
104
+
105
+ ## 验证
106
+
107
+ 用 `docs/governance/verification-matrix.md` 选择命令。常用门禁:
108
+
109
+ ```bash
110
+ npm run typecheck
111
+ npm test
112
+ npm run build
113
+ node bin/loop-agent.js --help
114
+ bash scripts/check-repo.sh
115
+ bash scripts/ci.sh
116
+ ```
117
+
118
+ Windows 上运行 `scripts/*.sh` 时使用 Git Bash 或已配置的兼容 Bash。CLI、Node 代码、模板和提示词里的实际文件路径必须兼容 macOS 与 Windows:优先使用平台原生临时目录和 `path`/`os.tmpdir()`;仅在 repo 引用、JSON/Markdown 证据引用和 glob 约定中使用 `/` 作为稳定分隔符。
119
+
120
+ 文档站相关变更还需要按范围运行:
121
+
122
+ ```bash
123
+ npm run docs:build
124
+ ```
125
+
126
+ 按变更类型补充定向验证:
127
+
128
+ - 初始化能力或目标项目投影:运行 `test/init-command.test.ts`,并在临时目标项目执行 `loop-agent init --profile full --merge`、`loop-agent init doctor`、`loop-agent inspect`、`loop-agent docs audit` 和目标项目 `bash scripts/check-repo.sh`。
129
+ - init surface 或初始化能力演化:运行 `bash scripts/check-init-evolution-needed.sh` 和 `bash scripts/check-init-surface.sh`;高影响或发布前按需使用 `--strict` 并参考 `skills/init-capability-evolution/` 与 `docs/templates/init-evolution-review.md`。
130
+ - runtime boundary / command registry / skill entry:运行 `bash scripts/check-architecture-boundaries.sh`、`bash scripts/check-command-registry-drift.sh`、`bash scripts/check-skill-entry.sh`,并确保 `bash scripts/check-repo.sh` 覆盖这些检查。
131
+ - 发布包范围:运行 `npm run build`、`node bin/loop-agent.js --help` 和 `npm pack --dry-run`,确认初始化所需静态资料在 package files 中。
132
+
133
+ ## 交接
134
+
135
+ 较大的工作结束时记录:
136
+
137
+ - 改了什么
138
+ - 为什么这样改
139
+ - 执行过哪些验证命令以及结果
140
+ - 是否影响契约、文档、测试或脚本
141
+ - 剩余风险
142
+ - 后续工作
143
+
144
+ ## 禁止事项
145
+
146
+ - 不要在未读相关文档的前提下直接大改。
147
+ - 不要一次混合重构、新功能和文档大迁移而没有清晰边界。
148
+ - 不要把仅存在于对话里的约束当作长期知识。
149
+ - 不要在缺少验证的情况下宣称完成。
150
+ - 不要假设系统没有某个能力;先搜索再判断。
151
+ - 不要用 stub、假数据通路或注释承诺替代真正交付。
152
+ - 不要把个人机器的绝对路径写入仓库级 `AGENTS.md`、README、模板或发布包资料;个人工具配置应留在用户级配置或本机会话上下文。
153
+ - 不要只更新 loop-agent 本仓库体验而遗漏目标项目初始化体验;新增能力如果不能通过 npm 内置资料或 `loop-agent init` 到达目标项目,必须写清原因和替代入口。
@@ -1,53 +1,53 @@
1
- # Feature Spec 模板
2
-
3
- ## 标题
4
-
5
- ## 状态
6
-
7
- - draft / active / completed
8
-
9
- ## 背景(Background)
10
-
11
- - 问题背景:
12
- - 用户/协作者痛点:
13
- - 与现有系统的关系:
14
-
15
- ## 目标(Goal)
16
-
17
- - 本 feature 要实现什么:
18
-
19
- ## 非目标(Non-goals)
20
-
21
- - 明确本轮不做什么:
22
-
23
- ## 关键场景 / 用户路径
24
-
25
- 1.
26
- 2.
27
- 3.
28
-
29
- ## Feature List
30
-
31
- | ID | Feature | Priority | Status | Acceptance | Notes |
32
- |----|---------|----------|--------|------------|-------|
33
- | F1 | | High | todo | | |
34
-
35
- ## 依赖(Dependencies)
36
-
37
- - 上游依赖:
38
- - 下游影响:
39
- - 文档/契约依赖:
40
-
41
- ## 风险(Risks)
42
-
43
- -
44
-
45
- ## 验证说明(Verification Notes)
46
-
47
- - 最低建议验证:
48
- - 加强验证:
49
- - 关键手工路径:
50
-
51
- ## Open Questions
52
-
53
- -
1
+ # Feature Spec 模板
2
+
3
+ ## 标题
4
+
5
+ ## 状态
6
+
7
+ - draft / active / completed
8
+
9
+ ## 背景(Background)
10
+
11
+ - 问题背景:
12
+ - 用户/协作者痛点:
13
+ - 与现有系统的关系:
14
+
15
+ ## 目标(Goal)
16
+
17
+ - 本 feature 要实现什么:
18
+
19
+ ## 非目标(Non-goals)
20
+
21
+ - 明确本轮不做什么:
22
+
23
+ ## 关键场景 / 用户路径
24
+
25
+ 1.
26
+ 2.
27
+ 3.
28
+
29
+ ## Feature List
30
+
31
+ | ID | Feature | Priority | Status | Acceptance | Notes |
32
+ |----|---------|----------|--------|------------|-------|
33
+ | F1 | | High | todo | | |
34
+
35
+ ## 依赖(Dependencies)
36
+
37
+ - 上游依赖:
38
+ - 下游影响:
39
+ - 文档/契约依赖:
40
+
41
+ ## 风险(Risks)
42
+
43
+ -
44
+
45
+ ## 验证说明(Verification Notes)
46
+
47
+ - 最低建议验证:
48
+ - 加强验证:
49
+ - 关键手工路径:
50
+
51
+ ## Open Questions
52
+
53
+ -
@@ -1,42 +1,42 @@
1
- # 前端设计契约模板
2
-
3
- ## 页面目标
4
-
5
- TODO
6
-
7
- ## 信息结构
8
-
9
- TODO
10
-
11
- ## 组件拆分
12
-
13
- TODO
14
-
15
- ## 交互规则
16
-
17
- TODO
18
-
19
- ## UI 状态
20
-
21
- TODO
22
-
23
- ## Mock / API 策略
24
-
25
- - 接口文档或 schema:TODO
26
- - 策略:`native | browser-intercept | request-adapter | not-needed | blocked`
27
- - endpoint / fixture / UI 状态映射:TODO
28
- - 显式启用方式与 production 默认关闭边界:TODO
29
- - DAG 已固化的验证入口:TODO
30
- - Real Integration Gap 与后端就绪后的复验:TODO
31
-
32
- ## 样式与设计系统映射
33
-
34
- TODO
35
-
36
- ## 响应式范围
37
-
38
- TODO
39
-
40
- ## 风险与非目标
41
-
42
- TODO
1
+ # 前端设计契约模板
2
+
3
+ ## 页面目标
4
+
5
+ TODO
6
+
7
+ ## 信息结构
8
+
9
+ TODO
10
+
11
+ ## 组件拆分
12
+
13
+ TODO
14
+
15
+ ## 交互规则
16
+
17
+ TODO
18
+
19
+ ## UI 状态
20
+
21
+ TODO
22
+
23
+ ## Mock / API 策略
24
+
25
+ - 接口文档或 schema:TODO
26
+ - 策略:`native | browser-intercept | request-adapter | not-needed | blocked`
27
+ - endpoint / fixture / UI 状态映射:TODO
28
+ - 显式启用方式与 production 默认关闭边界:TODO
29
+ - DAG 已固化的验证入口:TODO
30
+ - Real Integration Gap 与后端就绪后的复验:TODO
31
+
32
+ ## 样式与设计系统映射
33
+
34
+ TODO
35
+
36
+ ## 响应式范围
37
+
38
+ TODO
39
+
40
+ ## 风险与非目标
41
+
42
+ TODO
@@ -1,17 +1,17 @@
1
- # Failure fixture: type / build error
2
-
3
- - **fixtureId**: `fe-fail-type-build-error`
4
- - **triggerSignal**: `frontend-static-verify-shell` 非零(tsc 或 build 失败)
5
- - **expectedGateBehavior**: static 失败阻断 behavior/review 成功路径;不得 closeout pass
6
- - **repairable (M3 预标注)**: `repairable`(局部类型/导入修复)
7
- - **Browser**: 不得宣称 Browser 证据
8
-
9
- ## 场景
10
-
11
- Writer 引入错误 prop 类型或缺失导出,导致 typecheck/build 失败。
12
-
13
- ## 期望
14
-
15
- - 新鲜 stdout/stderr 归档
16
- - review 不得在 static 失败时 VERDICT: pass
17
- - M3:可进入 bounded repair;M0 仅记录
1
+ # Failure fixture: type / build error
2
+
3
+ - **fixtureId**: `fe-fail-type-build-error`
4
+ - **triggerSignal**: `frontend-static-verify-shell` 非零(tsc 或 build 失败)
5
+ - **expectedGateBehavior**: static 失败阻断 behavior/review 成功路径;不得 closeout pass
6
+ - **repairable (M3 预标注)**: `repairable`(局部类型/导入修复)
7
+ - **Browser**: 不得宣称 Browser 证据
8
+
9
+ ## 场景
10
+
11
+ Writer 引入错误 prop 类型或缺失导出,导致 typecheck/build 失败。
12
+
13
+ ## 期望
14
+
15
+ - 新鲜 stdout/stderr 归档
16
+ - review 不得在 static 失败时 VERDICT: pass
17
+ - M3:可进入 bounded repair;M0 仅记录
@@ -1,16 +1,16 @@
1
- # Failure fixture: unit/component test fail
2
-
3
- - **fixtureId**: `fe-fail-unit-component-test`
4
- - **triggerSignal**: `frontend-behavior-verify-shell` 非零(vitest 断言失败)
5
- - **expectedGateBehavior**: behavior 失败 → review 不得 pass;closeout 阻断
6
- - **repairable (M3 预标注)**: `repairable`
7
- - **Browser**: not-run;不得用「应在浏览器正常」抵消
8
-
9
- ## 场景
10
-
11
- 组件测试期望文案/状态与实现不一致。
12
-
13
- ## 期望
14
-
15
- - 失败命令为生成期冻结入口
16
- - 禁止删测 / `.skip` 伪装通过(review 应标 Important)
1
+ # Failure fixture: unit/component test fail
2
+
3
+ - **fixtureId**: `fe-fail-unit-component-test`
4
+ - **triggerSignal**: `frontend-behavior-verify-shell` 非零(vitest 断言失败)
5
+ - **expectedGateBehavior**: behavior 失败 → review 不得 pass;closeout 阻断
6
+ - **repairable (M3 预标注)**: `repairable`
7
+ - **Browser**: not-run;不得用「应在浏览器正常」抵消
8
+
9
+ ## 场景
10
+
11
+ 组件测试期望文案/状态与实现不一致。
12
+
13
+ ## 期望
14
+
15
+ - 失败命令为生成期冻结入口
16
+ - 禁止删测 / `.skip` 伪装通过(review 应标 Important)
@@ -1,16 +1,16 @@
1
- # Failure fixture: fixture schema drift vs API contract
2
-
3
- - **fixtureId**: `fe-fail-fixture-schema-drift`
4
- - **triggerSignal**: Mock fixture 字段与接口文档冲突;design gate 或 review 发现;或 mock 专项测试失败
5
- - **expectedGateBehavior**: design request-revision 或 review request-revision;不得发明字段硬通过
6
- - **repairable (M3 预标注)**: `non-repairable` 若根因是 spec 冲突未裁决;局部拼写且 contract 已明确时可为 repairable
7
- - **Browser**: not-run
8
-
9
- ## 场景
10
-
11
- Handler 返回 `userName` 而契约为 `name`。
12
-
13
- ## 期望
14
-
15
- - Mock assess / design 要求 contract-aligned
16
- - closeout 不得宣称真实联调成功
1
+ # Failure fixture: fixture schema drift vs API contract
2
+
3
+ - **fixtureId**: `fe-fail-fixture-schema-drift`
4
+ - **triggerSignal**: Mock fixture 字段与接口文档冲突;design gate 或 review 发现;或 mock 专项测试失败
5
+ - **expectedGateBehavior**: design request-revision 或 review request-revision;不得发明字段硬通过
6
+ - **repairable (M3 预标注)**: `non-repairable` 若根因是 spec 冲突未裁决;局部拼写且 contract 已明确时可为 repairable
7
+ - **Browser**: not-run
8
+
9
+ ## 场景
10
+
11
+ Handler 返回 `userName` 而契约为 `name`。
12
+
13
+ ## 期望
14
+
15
+ - Mock assess / design 要求 contract-aligned
16
+ - closeout 不得宣称真实联调成功