@tea-agent/loop-agent 0.13.0-beta.0 → 0.13.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 (282) hide show
  1. package/AGENTS.md +157 -155
  2. package/CHANGELOG.md +301 -322
  3. package/README.md +335 -345
  4. package/bin/agent-worker.js +22 -22
  5. package/bin/loop-agent.js +21 -21
  6. package/dist/commands/cursor-prompt.js +6 -6
  7. package/dist/commands/init.js +597 -528
  8. package/dist/commands/loop-benchmark.js +11 -11
  9. package/dist/commands/pi-reuse-benchmark.js +16 -16
  10. package/dist/executors/shell-executor.js +200 -21
  11. package/dist/infrastructure/evaluation/candidate-store.js +5 -1
  12. package/dist/sidecars/cursor-prompt/executor.js +1 -1
  13. package/dist/task/runtime.js +27 -27
  14. package/dist/worker/observe/static/api.js +46 -46
  15. package/dist/worker/observe/static/app.js +150 -150
  16. package/dist/worker/observe/static/constants.js +148 -148
  17. package/dist/worker/observe/static/copy.js +67 -67
  18. package/dist/worker/observe/static/dag-helpers.js +172 -172
  19. package/dist/worker/observe/static/dag-layout.d.ts +31 -31
  20. package/dist/worker/observe/static/dag-layout.js +83 -83
  21. package/dist/worker/observe/static/dag-model.js +72 -72
  22. package/dist/worker/observe/static/dom.js +212 -53
  23. package/dist/worker/observe/static/format-pool.js +67 -67
  24. package/dist/worker/observe/static/format.js +292 -292
  25. package/dist/worker/observe/static/index.html +308 -308
  26. package/dist/worker/observe/static/kpi.js +94 -94
  27. package/dist/worker/observe/static/relations.js +133 -133
  28. package/dist/worker/observe/static/router.js +93 -93
  29. package/dist/worker/observe/static/run-processing.js +148 -148
  30. package/dist/worker/observe/static/shell-chrome.js +68 -68
  31. package/dist/worker/observe/static/state.js +267 -253
  32. package/dist/worker/observe/static/styles.css +1902 -1902
  33. package/dist/worker/observe/static/views/batch.js +227 -227
  34. package/dist/worker/observe/static/views/dag-graph.js +172 -172
  35. package/dist/worker/observe/static/views/dag-inspector.js +627 -607
  36. package/dist/worker/observe/static/views/dag.js +371 -362
  37. package/dist/worker/observe/static/views/dashboard.js +509 -252
  38. package/dist/worker/observe/static/views/failures.js +143 -143
  39. package/dist/worker/observe/static/views/feature.js +492 -492
  40. package/dist/worker/observe/static/views/pool.js +350 -350
  41. package/dist/worker/observe/static/views/run.js +453 -453
  42. package/dist/worker/observe/static/views/session-timeline.js +219 -205
  43. package/dist/worker/observe/static/views/shell.js +7 -7
  44. package/dist/worker/observe/static/views/task.js +314 -314
  45. package/dist/worker/observe/static/views/timeline.js +163 -163
  46. package/dist/workflows/dag/backend-test-case-manifest.js +503 -0
  47. package/dist/workflows/dag/backend-test-execution-contract.js +353 -0
  48. package/dist/workflows/dag/backend-test-result-contract.js +568 -0
  49. package/dist/workflows/dag/canvas-observer.js +275 -275
  50. package/dist/workflows/dag/decision-envelope.js +57 -2
  51. package/dist/workflows/dag/frontend-implementation-contract.js +240 -0
  52. package/dist/workflows/dag/frontend-project-capability.js +309 -0
  53. package/dist/workflows/dag/frontend-repair.js +341 -0
  54. package/dist/workflows/dag/frontend-risk.js +161 -0
  55. package/dist/workflows/dag/frontend-verification-trace.js +190 -0
  56. package/dist/workflows/dag/init-hybrid.js +1020 -125
  57. package/dist/workflows/dag/repair-artifact.js +43 -3
  58. package/dist/workflows/dag/skill-instructions.js +4 -2
  59. package/dist/workflows/dag/types.js +29 -8
  60. package/docs/README.md +105 -104
  61. package/docs/agent-dag-recovery-playbook.md +195 -195
  62. package/docs/agent-dag-runner.md +67 -67
  63. package/docs/architecture/README.md +26 -26
  64. package/docs/architecture/dag-execution.md +140 -140
  65. package/docs/architecture/evolution.md +54 -54
  66. package/docs/architecture/facts-and-state.md +71 -71
  67. package/docs/architecture/runtime-boundaries.md +191 -191
  68. package/docs/architecture/system-overview.md +93 -93
  69. package/docs/architecture/worker-and-feature.md +85 -85
  70. package/docs/cursor-prompt-sidecar.md +36 -36
  71. package/docs/decisions/README.md +18 -18
  72. package/docs/design/README.md +167 -167
  73. package/docs/development-principles.md +73 -73
  74. package/docs/exec-plans/README.md +6 -6
  75. package/docs/exec-plans/active/README.md +1 -4
  76. package/docs/exec-plans/completed/README.md +106 -84
  77. package/docs/feature-workflow.md +414 -389
  78. package/docs/harness-methodology-debugging.md +153 -153
  79. package/docs/harness-methodology-tdd.md +130 -130
  80. package/docs/harness-methodology-verification.md +27 -27
  81. package/docs/init-surface.manifest.json +307 -289
  82. package/docs/loop-agent-harness.md +142 -142
  83. package/docs/production-readiness.md +96 -96
  84. package/docs/progress/README.md +76 -60
  85. package/docs/reports/README.md +150 -108
  86. package/docs/skills/README.md +7 -7
  87. package/docs/skills/vetted-skill-registry.md +29 -29
  88. package/docs/templates/adr.md +60 -60
  89. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  90. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  91. package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -117
  92. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  93. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  94. package/docs/templates/agent-dag-report.schema.json +473 -473
  95. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  96. package/docs/templates/agent-dag.base.json +190 -190
  97. package/docs/templates/agent-dag.final-verification.json +185 -185
  98. package/docs/templates/agent-dag.schema.json +411 -411
  99. package/docs/templates/agent-dag.supervised-implementation.json +620 -501
  100. package/docs/templates/backend-test-analysis.schema.json +44 -44
  101. package/docs/templates/backend-test-case-manifest.schema.json +190 -0
  102. package/docs/templates/backend-test-dag.classify.prompt.md +75 -0
  103. package/docs/templates/backend-test-dag.generate-pytest.prompt.md +204 -202
  104. package/docs/templates/backend-test-dag.json +559 -311
  105. package/docs/templates/backend-test-dag.retrospect.prompt.md +139 -125
  106. package/docs/templates/backend-test-dag.review-cases.prompt.md +83 -81
  107. package/docs/templates/backend-test-execution.schema.json +133 -0
  108. package/docs/templates/backend-test-result.schema.json +99 -0
  109. package/docs/templates/branch-merge-report.md +93 -0
  110. package/docs/templates/exec-plan.md +64 -64
  111. package/docs/templates/feature-spec.md +53 -53
  112. package/docs/templates/frontend-design-contract.md +42 -42
  113. package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -0
  114. package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -0
  115. package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -0
  116. package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -0
  117. package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -0
  118. package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -0
  119. package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -0
  120. package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -0
  121. package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -0
  122. package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -0
  123. package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -0
  124. package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -0
  125. package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -0
  126. package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -0
  127. package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -0
  128. package/docs/templates/frontend-eval/metrics.md +138 -0
  129. package/docs/templates/frontend-eval/smoke-targets.md +53 -0
  130. package/docs/templates/frontend-implementation-contract.schema.json +27 -0
  131. package/docs/templates/frontend-task-constraints.md +35 -35
  132. package/docs/templates/frontend-task-requirement.md +70 -70
  133. package/docs/templates/frontend-test-dag.generate-cases.prompt.md +5 -5
  134. package/docs/templates/frontend-test-dag.json +23 -23
  135. package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +3 -3
  136. package/docs/templates/frontend-test-dag.retrospect.prompt.md +3 -3
  137. package/docs/templates/frontend-test-dag.review-cases.prompt.md +3 -3
  138. package/docs/templates/frontend-test-dag.review-execution.prompt.md +3 -3
  139. package/docs/templates/harness.schema.json +221 -221
  140. package/docs/templates/hybrid-dag.json +188 -188
  141. package/docs/templates/init-evolution-review.md +35 -35
  142. package/docs/templates/interactive-ui-round2-experiment.md +66 -66
  143. package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -118
  144. package/docs/templates/knowledge-sync-dag.json +178 -178
  145. package/docs/templates/knowledge-sync-draft.schema.json +71 -71
  146. package/docs/templates/product-line/AGENTS.md +8 -8
  147. package/docs/templates/product-line/README.md +9 -9
  148. package/docs/templates/product-line/acceptance.yaml +14 -14
  149. package/docs/templates/product-line/closeout.yaml +9 -9
  150. package/docs/templates/product-line/design.md +13 -13
  151. package/docs/templates/product-line/links.md +10 -10
  152. package/docs/templates/product-line/requirement.md +17 -17
  153. package/docs/templates/product-line/task-graph.yaml +15 -15
  154. package/docs/templates/product-line/task.yaml +64 -64
  155. package/docs/templates/product-line/test-plan.md +7 -7
  156. package/docs/templates/production-readiness-checklist.md +57 -57
  157. package/docs/templates/progress-log.md +17 -17
  158. package/docs/templates/project-start-checklist.md +9 -9
  159. package/docs/templates/qa-report.md +48 -48
  160. package/docs/templates/sprint-contract.md +29 -29
  161. package/docs/templates/worker-dogfood-evidence.md +80 -80
  162. package/docs/templates/worker-dogfood-setup.md +68 -68
  163. package/docs/verification-matrix.md +70 -70
  164. package/examples/decision-gate-agent-dag.json +177 -177
  165. package/examples/example-dag.json +46 -46
  166. package/examples/hybrid-loop-agent-dag.json +189 -189
  167. package/harness.json +66 -66
  168. package/package.json +52 -88
  169. package/scripts/check-product-line-docs.sh +29 -29
  170. package/scripts/check-task-pool-root.sh +32 -32
  171. package/scripts/kb-bootstrap-init-skeleton.sh +240 -240
  172. package/scripts/kb-graph-incremental-prepare.mjs +386 -386
  173. package/scripts/kb-graph-incremental-prepare.sh +5 -5
  174. package/scripts/kb-graph-materialize.mjs +105 -105
  175. package/scripts/kb-graph-materialize.sh +4 -4
  176. package/scripts/kb-graph-promote.mjs +164 -164
  177. package/scripts/kb-graph-promote.sh +4 -4
  178. package/scripts/kb-query.mjs +554 -554
  179. package/scripts/kb-query.sh +5 -5
  180. package/skills/agent-worker/SKILL.md +39 -39
  181. package/skills/agent-worker/references/agent-worker-operator.md +60 -60
  182. package/skills/ai-engineering-context/SKILL.md +48 -48
  183. package/skills/analyze-product-dependencies/SKILL.md +67 -67
  184. package/skills/analyze-product-dependencies/agents/openai.yaml +4 -4
  185. package/skills/analyze-product-dependencies/references/api-documentation-schema.md +30 -30
  186. package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +28 -28
  187. package/skills/analyze-product-dependencies/references/example.md +76 -76
  188. package/skills/analyze-product-dependencies/references/forward-test-cases.md +35 -35
  189. package/skills/analyze-product-dependencies/references/input-contract.md +11 -11
  190. package/skills/analyze-product-dependencies/references/scouting-rules.md +61 -61
  191. package/skills/analyze-product-dependencies/scripts/test-validators.mjs +267 -267
  192. package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +101 -101
  193. package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +142 -142
  194. package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +76 -76
  195. package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +146 -146
  196. package/skills/analyze-product-requirements/SKILL.md +90 -90
  197. package/skills/analyze-product-requirements/agents/openai.yaml +4 -4
  198. package/skills/analyze-product-requirements/references/acceptance-criteria.md +91 -91
  199. package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +56 -56
  200. package/skills/analyze-product-requirements/references/example.md +86 -86
  201. package/skills/analyze-product-requirements/references/forward-test-cases.md +66 -66
  202. package/skills/analyze-product-requirements/references/product-analysis-schema.md +32 -32
  203. package/skills/analyze-product-requirements/references/product-requirement-schema.md +33 -33
  204. package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +35 -35
  205. package/skills/analyze-product-requirements/scripts/test-validators.mjs +193 -193
  206. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +69 -69
  207. package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +97 -97
  208. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +98 -98
  209. package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +156 -156
  210. package/skills/browser-tools/SKILL.md +196 -0
  211. package/skills/browser-tools/browser-content.js +103 -0
  212. package/skills/browser-tools/browser-cookies.js +35 -0
  213. package/skills/browser-tools/browser-eval.js +53 -0
  214. package/skills/browser-tools/browser-hn-scraper.js +108 -0
  215. package/skills/browser-tools/browser-nav.js +44 -0
  216. package/skills/browser-tools/browser-pick.js +162 -0
  217. package/skills/browser-tools/browser-screenshot.js +34 -0
  218. package/skills/browser-tools/browser-start.js +86 -0
  219. package/skills/browser-tools/package-lock.json +2556 -0
  220. package/skills/browser-tools/package.json +19 -0
  221. package/skills/code-review-core/SKILL.md +20 -20
  222. package/skills/codebase-scout/SKILL.md +19 -19
  223. package/skills/frontend-design-review/SKILL.md +66 -66
  224. package/skills/frontend-design-review/references/review-checklist.md +58 -58
  225. package/skills/frontend-implementation/SKILL.md +49 -47
  226. package/skills/frontend-implementation/references/code-standards.md +32 -32
  227. package/skills/frontend-implementation/references/design-spec.md +46 -46
  228. package/skills/frontend-implementation/references/node-contracts.md +27 -76
  229. package/skills/frontend-review/SKILL.md +59 -59
  230. package/skills/frontend-review/references/review-findings.md +47 -47
  231. package/skills/frontend-verification/SKILL.md +53 -53
  232. package/skills/frontend-verification/references/verification-checklist.md +68 -68
  233. package/skills/grill-me/SKILL.md +10 -10
  234. package/skills/grill-with-docs/SKILL.md +88 -88
  235. package/skills/grill-with-docs/adr-format.md +47 -47
  236. package/skills/grill-with-docs/context-format.md +60 -60
  237. package/skills/init-capability-evolution/SKILL.md +70 -70
  238. package/skills/loop-agent/SKILL.md +151 -151
  239. package/skills/loop-agent/references/README.md +67 -67
  240. package/skills/loop-agent/references/command-reference.md +527 -505
  241. package/skills/loop-agent/references/docs-converge.md +126 -126
  242. package/skills/loop-agent/references/harness-policy.md +263 -263
  243. package/skills/loop-agent/references/hybrid-dag.md +243 -238
  244. package/skills/loop-agent/references/learned/README.md +21 -21
  245. package/skills/loop-agent/references/long-running-loop.md +57 -57
  246. package/skills/loop-agent/references/model-routing.md +36 -36
  247. package/skills/loop-agent/references/multi-worktree.md +54 -54
  248. package/skills/loop-agent/references/one-shot-runs.md +85 -85
  249. package/skills/loop-agent/references/orchestrator-and-interventions.md +169 -169
  250. package/skills/loop-agent/references/pi-prompt.md +23 -23
  251. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -84
  252. package/skills/loop-agent/references/post-implementation-and-patterns.md +44 -44
  253. package/skills/loop-agent/references/task-workflow.md +89 -89
  254. package/skills/loop-agent/references/verification-and-failure-handling.md +141 -139
  255. package/skills/playwright-cli/SKILL.md +420 -420
  256. package/skills/playwright-cli/references/element-attributes.md +23 -23
  257. package/skills/playwright-cli/references/playwright-tests.md +39 -39
  258. package/skills/playwright-cli/references/request-mocking.md +87 -87
  259. package/skills/playwright-cli/references/running-code.md +241 -241
  260. package/skills/playwright-cli/references/session-management.md +225 -225
  261. package/skills/playwright-cli/references/storage-state.md +275 -275
  262. package/skills/playwright-cli/references/test-generation.md +433 -433
  263. package/skills/playwright-cli/references/tracing.md +139 -139
  264. package/skills/playwright-cli/references/video-recording.md +143 -143
  265. package/skills/playwright-cli-case-generator/SKILL.md +74 -74
  266. package/skills/requesting-code-review/SKILL.md +101 -101
  267. package/skills/requesting-code-review/code-reviewer.md +168 -168
  268. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  269. package/skills/systematic-debugging/SKILL.md +296 -296
  270. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  271. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  272. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  273. package/skills/systematic-debugging/find-polluter.sh +63 -63
  274. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  275. package/skills/systematic-debugging/test-academic.md +14 -14
  276. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  277. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  278. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  279. package/skills/test-driven-development/SKILL.md +20 -20
  280. package/skills/using-git-worktrees/SKILL.md +215 -215
  281. package/skills/verification-before-completion/SKILL.md +154 -154
  282. package/skills/webapp-testing/SKILL.md +19 -19
@@ -0,0 +1,99 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://tea-agent.dev/schemas/backend-test-result-v1.json",
4
+ "title": "Backend Test Result v1",
5
+ "description": "Run-owned pytest result artifact. Task Pool may consume outcome, counts, failures[], executionStatus, collectionStatus, pytestExitCode, and junit refs. Auto follow-up is out of scope for M2.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "executionStatus",
11
+ "pytestExitCode",
12
+ "collectionStatus",
13
+ "tests",
14
+ "passed",
15
+ "failed",
16
+ "error",
17
+ "skipped",
18
+ "junit",
19
+ "commandSummary",
20
+ "failures",
21
+ "outcome"
22
+ ],
23
+ "properties": {
24
+ "schemaVersion": { "const": 1 },
25
+ "executionStatus": {
26
+ "type": "string",
27
+ "enum": ["completed", "collection-error", "command-error", "report-error"],
28
+ "description": "Process-level status. Task Pool: do not treat collection-error/command-error as ProductBug."
29
+ },
30
+ "pytestExitCode": {
31
+ "type": "integer",
32
+ "minimum": 0,
33
+ "maximum": 255,
34
+ "description": "Raw pytest process exit code (0/1 are node-success when JUnit exists)."
35
+ },
36
+ "collectionStatus": {
37
+ "type": "string",
38
+ "enum": ["ok", "error", "unknown", "skipped"]
39
+ },
40
+ "tests": {
41
+ "type": "integer",
42
+ "minimum": 0,
43
+ "description": "Task Pool: total tests = passed+failed+error+skipped"
44
+ },
45
+ "passed": { "type": "integer", "minimum": 0 },
46
+ "failed": { "type": "integer", "minimum": 0 },
47
+ "error": { "type": "integer", "minimum": 0 },
48
+ "skipped": { "type": "integer", "minimum": 0 },
49
+ "durationMs": { "type": "number", "minimum": 0 },
50
+ "junit": {
51
+ "type": "object",
52
+ "additionalProperties": false,
53
+ "required": ["relativePath", "sha256"],
54
+ "properties": {
55
+ "relativePath": {
56
+ "type": "string",
57
+ "minLength": 1,
58
+ "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*(?:^|/)\\.(?:/|$))(?!.*\\\\)(?!.*//).+$",
59
+ "description": "Run-dir relative POSIX path without absolute form, backslashes, dot segments, or parent traversal (e.g. reports/backend-test-junit.xml)"
60
+ },
61
+ "sha256": {
62
+ "type": "string",
63
+ "pattern": "^[a-f0-9]{64}$"
64
+ }
65
+ }
66
+ },
67
+ "commandSummary": {
68
+ "type": "string",
69
+ "minLength": 1,
70
+ "description": "Non-secret command summary only"
71
+ },
72
+ "failures": {
73
+ "type": "array",
74
+ "description": "Truncated failure/error summaries for triage (Task Pool consumable).",
75
+ "items": {
76
+ "type": "object",
77
+ "additionalProperties": false,
78
+ "required": ["classname", "name", "message"],
79
+ "properties": {
80
+ "classname": { "type": "string", "minLength": 1 },
81
+ "name": { "type": "string", "minLength": 1 },
82
+ "message": { "type": "string", "minLength": 1 },
83
+ "kind": { "type": "string", "enum": ["failure", "error"], "default": "failure" }
84
+ }
85
+ }
86
+ },
87
+ "outcome": {
88
+ "type": "string",
89
+ "enum": [
90
+ "passed",
91
+ "completed-with-failures",
92
+ "collection-error",
93
+ "command-error",
94
+ "report-error"
95
+ ],
96
+ "description": "Authoritative shell-facing outcome for backend-test-outcome-gate-shell. Retrospective must not override."
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,93 @@
1
+ # Branch Merge Report — `<source-ref>` into `<target-branch>` at `<source-short-sha>`
2
+
3
+ Date: `<YYYY-MM-DD>`
4
+ Target branch: `<target-branch>`
5
+ Target before merge: `<full SHA>`
6
+ Source: `<source-ref>@<full SHA>`
7
+ Merge base: `<full SHA>`
8
+ Merge commit: `<full SHA or follow-up commit reference>`
9
+
10
+ ## Naming Convention
11
+
12
+ Use `YYYY-MM-DD-origin-<source>-into-<target>-<source-short-sha>.md` under `docs/reports/`. Replace `/` and other path separators in branch names with `-`. The source short SHA distinguishes repeated merges on the same day.
13
+
14
+ ## Pre-merge Inspection
15
+
16
+ - Divergence: `<target-only count>` target-only commits / `<source-only count>` source-only commits.
17
+ - Dry run: `git merge-tree --write-tree --messages <target> <source>`.
18
+ - Predicted conflicts: `<count and files>`.
19
+ - Baseline verification: `<commands and results>`.
20
+
21
+ ## Incoming Capabilities
22
+
23
+ | Capability | Key files / contracts | Expected user or runtime result | Verification |
24
+ | --- | --- | --- | --- |
25
+ | `<incoming capability>` | `<paths>` | `<behavior>` | `<test/smoke>` |
26
+
27
+ ## Target-branch Capabilities to Preserve
28
+
29
+ | Capability | Key files / contracts | Preservation risk | Verification |
30
+ | --- | --- | --- | --- |
31
+ | `<target capability>` | `<paths>` | `<possible overwrite>` | `<test/smoke>` |
32
+
33
+ ## Conflict Resolution
34
+
35
+ | File | Conflict type | Incoming concern | Target concern | Resolution | Evidence |
36
+ | --- | --- | --- | --- | --- | --- |
37
+ | `<path>` | `content/rename-delete/add-add` | `<incoming behavior>` | `<target behavior>` | `<combined decision>` | `<test/diff>` |
38
+
39
+ If there were no textual conflicts, write `No textual conflicts` and continue with the automatic-merge review below.
40
+
41
+ ## Automatic-merge Semantic Review
42
+
43
+ Record overlapping or high-risk files that Git merged without conflict. These are common places for silent feature loss.
44
+
45
+ | File / area | Why high risk | Incoming behavior retained | Target behavior retained | Evidence |
46
+ | --- | --- | --- | --- | --- |
47
+ | `<path>` | `<shared imports/topology/config>` | `<incoming proof>` | `<target proof>` | `<tests/search>` |
48
+
49
+ ## Functional Impact Matrix
50
+
51
+ | Feature | Before merge | After merge | Deleted or weakened? | Notes |
52
+ | --- | --- | --- | --- | --- |
53
+ | `<feature>` | `<baseline>` | `<result>` | `No/Yes` | `<details>` |
54
+
55
+ ## Init and Update Impact
56
+
57
+ - Changed init/package surface: `<paths or none>`.
58
+ - Fresh full init result: `<result>`.
59
+ - `init check-update` result: `<result>`.
60
+ - `init update --apply-safe` recovery result: `<result>`.
61
+ - Manifest or init implementation updates made: `<details or none>`.
62
+
63
+ ## Package Surface Impact
64
+
65
+ - `npm pack --dry-run --ignore-scripts --json`: `<file count>` files.
66
+ - Added package paths: `<paths>`.
67
+ - Removed package paths: `<paths or none>`.
68
+ - Unexpected files or missing required files: `<details or none>`.
69
+
70
+ ## Verification
71
+
72
+ | Command | Result | Capability covered |
73
+ | --- | --- | --- |
74
+ | `npm run typecheck` | `<pass/fail>` | TypeScript integration |
75
+ | `npm test` | `<pass/fail>` | Full regression |
76
+ | `npm run build` | `<pass/fail>` | Build/package inputs |
77
+ | `bash scripts/check-repo.sh` | `<pass/fail>` | Governance and init surface |
78
+ | `npm run docs:build` | `<pass/fail>` | User documentation |
79
+ | `npm pack --dry-run --ignore-scripts --json` | `<pass/fail>` | Published files |
80
+
81
+ Add focused tests and real init/update/browser/CLI smokes required by the merged capabilities.
82
+
83
+ ## Residual Risk
84
+
85
+ - `<unverified external environment, performance, migration, or compatibility risk>`
86
+
87
+ ## Rollback and Investigation Pointers
88
+
89
+ - Merge commit: `<SHA>`.
90
+ - Conflict files: `<paths>`.
91
+ - First tests to run if a feature appears missing: `<commands>`.
92
+ - Safe rollback strategy: prefer `git revert -m 1 <merge-commit>` after review; do not use destructive reset on shared work.
93
+
@@ -1,64 +1,64 @@
1
- # 执行计划模板
2
-
3
- ## 标题
4
-
5
- ## 状态
6
-
7
- - draft / active / blocked / completed
8
-
9
- ## 背景
10
-
11
- - 当前问题或机会是什么:
12
- - 为什么值得现在做:
13
-
14
- ## 目标(Objective)
15
-
16
- - 本计划希望达成什么结果:
17
-
18
- ## 范围(Scope)
19
-
20
- - 包含:
21
- - 不包含:
22
-
23
- ## 约束(Constraints)
24
-
25
- - 架构/契约约束:
26
- - 时间/风险约束:
27
- - 验证约束:
28
-
29
- ## 里程碑(Milestones)
30
-
31
- | ID | Milestone | Status | Exit Criteria |
32
- |----|-----------|--------|---------------|
33
- | M1 | | todo | |
34
-
35
- ## 工作分解(Work Breakdown)
36
-
37
- | ID | Work Item | Status | Notes |
38
- |----|-----------|--------|-------|
39
- | W1 | | todo | |
40
-
41
- ## 验证关口(Verification Gates)
42
-
43
- - [ ] 文档/契约已同步
44
- - [ ] 最低必要测试已通过
45
- - [ ] 关键路径已验证
46
- - [ ] 风险与未覆盖项已记录
47
-
48
- ## 风险 / 阻塞项
49
-
50
- - 风险:
51
- - 阻塞:
52
-
53
- ## 回退 / 恢复(Rollback / Recovery)
54
-
55
- - 如何回退:
56
- - 回退后如何恢复基线:
57
-
58
- ## Open Questions
59
-
60
- -
61
-
62
- ## 推荐下一步
63
-
64
- -
1
+ # 执行计划模板
2
+
3
+ ## 标题
4
+
5
+ ## 状态
6
+
7
+ - draft / active / blocked / completed
8
+
9
+ ## 背景
10
+
11
+ - 当前问题或机会是什么:
12
+ - 为什么值得现在做:
13
+
14
+ ## 目标(Objective)
15
+
16
+ - 本计划希望达成什么结果:
17
+
18
+ ## 范围(Scope)
19
+
20
+ - 包含:
21
+ - 不包含:
22
+
23
+ ## 约束(Constraints)
24
+
25
+ - 架构/契约约束:
26
+ - 时间/风险约束:
27
+ - 验证约束:
28
+
29
+ ## 里程碑(Milestones)
30
+
31
+ | ID | Milestone | Status | Exit Criteria |
32
+ |----|-----------|--------|---------------|
33
+ | M1 | | todo | |
34
+
35
+ ## 工作分解(Work Breakdown)
36
+
37
+ | ID | Work Item | Status | Notes |
38
+ |----|-----------|--------|-------|
39
+ | W1 | | todo | |
40
+
41
+ ## 验证关口(Verification Gates)
42
+
43
+ - [ ] 文档/契约已同步
44
+ - [ ] 最低必要测试已通过
45
+ - [ ] 关键路径已验证
46
+ - [ ] 风险与未覆盖项已记录
47
+
48
+ ## 风险 / 阻塞项
49
+
50
+ - 风险:
51
+ - 阻塞:
52
+
53
+ ## 回退 / 恢复(Rollback / Recovery)
54
+
55
+ - 如何回退:
56
+ - 回退后如何恢复基线:
57
+
58
+ ## Open Questions
59
+
60
+ -
61
+
62
+ ## 推荐下一步
63
+
64
+ -
@@ -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
@@ -0,0 +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 仅记录
@@ -0,0 +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)
@@ -0,0 +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 不得宣称真实联调成功
@@ -0,0 +1,16 @@
1
+ # Failure fixture: missing loading/empty/error state
2
+
3
+ - **fixtureId**: `fe-fail-missing-ui-states`
4
+ - **triggerSignal**: plan/design 或 review 发现 applicable 异步列表缺少 loading/empty/error
5
+ - **expectedGateBehavior**: first/final design 应 request-revision;若漏到实现则 review request-revision
6
+ - **repairable (M3 预标注)**: `repairable`(补状态 UI + 测试)
7
+ - **Browser**: not-run
8
+
9
+ ## 场景
10
+
11
+ 仅实现 success 列表渲染。
12
+
13
+ ## 期望
14
+
15
+ - design checklist 含 UI States
16
+ - M1 合同将强制 applicable states 映射
@@ -0,0 +1,16 @@
1
+ # Failure fixture: forbidden write / writeSet expansion attempt
2
+
3
+ - **fixtureId**: `fe-fail-forbidden-write`
4
+ - **triggerSignal**: writer 试图修改 writeSet 外路径或 forbiddenPaths(如 `src/**` 任务写入 `package.json`)
5
+ - **expectedGateBehavior**: write-guard 拒绝;run 失败或 NeedsAction;不得当成功 closeout
6
+ - **repairable (M3 预标注)**: `non-repairable`(路径/authority;不得靠 repair 扩大 writeSet)
7
+ - **Browser**: not-run
8
+
9
+ ## 场景
10
+
11
+ 实现中「顺手」改根配置或越界文档。
12
+
13
+ ## 期望
14
+
15
+ - exclusive writeSet 强制
16
+ - M0 eval 计入 `forbidden_write_count`
@@ -0,0 +1,16 @@
1
+ # Failure fixture: unapproved dependency add
2
+
3
+ - **fixtureId**: `fe-fail-unapproved-dependency`
4
+ - **triggerSignal**: diff 出现未授权 `package.json` / lockfile 依赖新增
5
+ - **expectedGateBehavior**: design 应预先拒绝;若发生则 review Important + request-revision;任务 forbidden 含 package 时 write-guard 阻断
6
+ - **repairable (M3 预标注)**: `non-repairable`(依赖策略/人工批准)
7
+ - **Browser**: not-run
8
+
9
+ ## 场景
10
+
11
+ 为方便引入大型 UI 库未在计划 Dependency Policy 批准。
12
+
13
+ ## 期望
14
+
15
+ - 计入 `unapproved_dependency_count`
16
+ - 不得以 build 通过单独放行
@@ -0,0 +1,21 @@
1
+ # Failure fixture: Mock production-on / real-request commented out
2
+
3
+ - **fixtureId**: `fe-fail-mock-production-on`
4
+ - **triggerSignal**: 生产入口默认启用 Mock、注释真实请求、或 production import test mocks
5
+ - **expectedGateBehavior**: design/review 至少 Important → request-revision;static production/default-real-path 检查应失败或 review 阻断
6
+ - **repairable (M3 预标注)**: `repairable` 若仅激活边界错误;`non-repairable` 若故意绕过合同
7
+ - **Browser**: not-run;Mock UI 观感不得当真实联调
8
+
9
+ ## 场景
10
+
11
+ ```ts
12
+ // fetch('/api/users')
13
+ return mockUsers;
14
+ ```
15
+
16
+ 或 `mock.enable()` 无 dev/test 守卫。
17
+
18
+ ## 期望
19
+
20
+ - 计入潜在 `mock_real_integration_false_claim` 若 closeout 美化
21
+ - 与 mock workflow 生产默认真实路径规则一致
@@ -0,0 +1,29 @@
1
+ # Functional fixture: simple component / style
2
+
3
+ - **fixtureId**: `fe-func-simple-component-style`
4
+ - **taskTitle**: 调整 Button 次要样式以匹配设计 token
5
+ - **expectedRoute**: `frontend-implementation`
6
+ - **expectedRiskLevel**: `small`(M4 前仅标注)
7
+ - **expectedGateIntensity**: standard dual design + mock assess;无 API 时倾向 `not-needed`
8
+ - **expectedMockStrategy**: `not-needed`(无远程数据)
9
+ - **Browser**: **out-of-scope / not-run**
10
+
11
+ ## 需求要点
12
+
13
+ - 修改既有展示型组件 className / CSS module / token 引用。
14
+ - 不改变公共 props API。
15
+ - 覆盖 hover/disabled 若设计要求;无 loading/empty 则 N/A 并说明。
16
+
17
+ ## allowedPaths 建议
18
+
19
+ ```text
20
+ src/components/Button/**
21
+ src/styles/**
22
+ test/components/Button/**
23
+ ```
24
+
25
+ ## expected verification 形态
26
+
27
+ - Static: `typecheck` + `build`(fallback 可接受)
28
+ - Behavior: 组件单测或 style snapshot 类 vitest(无浏览器)
29
+ - 无 `frontend-mock-verify-shell`