hunter-harness 0.2.0 → 0.2.1

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 (564) hide show
  1. package/dist/bin.js +659 -230
  2. package/package.json +9 -7
  3. package/resources/harness/bundles/general/claude-code/.harness-build.json +0 -6
  4. package/resources/harness/bundles/general/claude-code/CONTEXT.md +0 -65
  5. package/resources/harness/bundles/general/claude-code/README.md +0 -478
  6. package/resources/harness/bundles/general/claude-code/agents/harness-evaluator.md +0 -96
  7. package/resources/harness/bundles/general/claude-code/agents/harness-explorer.md +0 -72
  8. package/resources/harness/bundles/general/claude-code/agents/harness-reviewer.md +0 -69
  9. package/resources/harness/bundles/general/claude-code/harness-archive/SKILL.md +0 -215
  10. package/resources/harness/bundles/general/claude-code/harness-archive/checklist.md +0 -52
  11. package/resources/harness/bundles/general/claude-code/harness-archive/reference.md +0 -103
  12. package/resources/harness/bundles/general/claude-code/harness-archive/scripts/gen-manifest.ps1 +0 -31
  13. package/resources/harness/bundles/general/claude-code/harness-archive/templates/render-summary.mjs +0 -171
  14. package/resources/harness/bundles/general/claude-code/harness-archive/templates/summary-data-template.json +0 -128
  15. package/resources/harness/bundles/general/claude-code/harness-codebase-map/SKILL.md +0 -112
  16. package/resources/harness/bundles/general/claude-code/harness-codebase-map/checklist.md +0 -126
  17. package/resources/harness/bundles/general/claude-code/harness-codebase-map/reference.md +0 -364
  18. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  19. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/CONCERNS.md +0 -49
  20. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  21. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  22. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/STACK.md +0 -55
  23. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/STRUCTURE.md +0 -69
  24. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/TESTING.md +0 -64
  25. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  26. package/resources/harness/bundles/general/claude-code/harness-codebase-map/templates/map-summary.md +0 -64
  27. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/SKILL.md +0 -246
  28. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/design.md +0 -842
  29. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  30. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/mcp-config.example.json +0 -10
  31. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/reference.md +0 -309
  32. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  33. package/resources/harness/bundles/general/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  34. package/resources/harness/bundles/general/claude-code/harness-knowledge-query/SKILL.md +0 -164
  35. package/resources/harness/bundles/general/claude-code/harness-plan/SKILL.md +0 -127
  36. package/resources/harness/bundles/general/claude-code/harness-plan/checklist.md +0 -243
  37. package/resources/harness/bundles/general/claude-code/harness-plan/protocols.md +0 -124
  38. package/resources/harness/bundles/general/claude-code/harness-plan/reference.md +0 -376
  39. package/resources/harness/bundles/general/claude-code/harness-review/SKILL.md +0 -160
  40. package/resources/harness/bundles/general/claude-code/harness-review/checklist.md +0 -124
  41. package/resources/harness/bundles/general/claude-code/harness-review/protocols.md +0 -68
  42. package/resources/harness/bundles/general/claude-code/harness-review/reference.md +0 -86
  43. package/resources/harness/bundles/general/claude-code/harness-run/SKILL.md +0 -132
  44. package/resources/harness/bundles/general/claude-code/harness-run/checklist.md +0 -259
  45. package/resources/harness/bundles/general/claude-code/harness-run/protocols.md +0 -78
  46. package/resources/harness/bundles/general/claude-code/harness-run/reference.md +0 -834
  47. package/resources/harness/bundles/general/claude-code/harness-submit/SKILL.md +0 -159
  48. package/resources/harness/bundles/general/claude-code/harness-submit/checklist.md +0 -407
  49. package/resources/harness/bundles/general/claude-code/harness-submit/reference.md +0 -152
  50. package/resources/harness/bundles/general/claude-code/harness-sync/SKILL.md +0 -82
  51. package/resources/harness/bundles/general/claude-code/harness-sync/reference.md +0 -153
  52. package/resources/harness/bundles/general/claude-code/harness-test/SKILL.md +0 -180
  53. package/resources/harness/bundles/general/claude-code/harness-test/checklist.md +0 -319
  54. package/resources/harness/bundles/general/claude-code/harness-test/pitfalls.md +0 -260
  55. package/resources/harness/bundles/general/claude-code/harness-test/reference.md +0 -791
  56. package/resources/harness/bundles/general/claude-code/protocols/archive-report-protocol.md +0 -175
  57. package/resources/harness/bundles/general/claude-code/protocols/evidence-based-reporting-protocol.md +0 -134
  58. package/resources/harness/bundles/general/claude-code/protocols/ledger-protocol.md +0 -270
  59. package/resources/harness/bundles/general/claude-code/protocols/powershell-protocol.md +0 -181
  60. package/resources/harness/bundles/general/claude-code/protocols/report-pipeline-protocol.md +0 -150
  61. package/resources/harness/bundles/general/claude-code/protocols/sensitive-info-protocol.md +0 -92
  62. package/resources/harness/bundles/general/claude-code/protocols/state-layout-protocol.md +0 -131
  63. package/resources/harness/bundles/general/claude-code/protocols/submit-protocol.md +0 -78
  64. package/resources/harness/bundles/general/claude-code/scripts/harness_archive.py +0 -2319
  65. package/resources/harness/bundles/general/claude-code/scripts/harness_deploy.py +0 -674
  66. package/resources/harness/bundles/general/claude-code/scripts/harness_events.py +0 -680
  67. package/resources/harness/bundles/general/claude-code/scripts/harness_ledger.py +0 -671
  68. package/resources/harness/bundles/general/claude-code/scripts/harness_preflight.py +0 -780
  69. package/resources/harness/bundles/general/claude-code/scripts/harness_service.py +0 -1331
  70. package/resources/harness/bundles/general/codebuddy/.harness-build.json +0 -6
  71. package/resources/harness/bundles/general/codebuddy/CONTEXT.md +0 -65
  72. package/resources/harness/bundles/general/codebuddy/README.md +0 -478
  73. package/resources/harness/bundles/general/codebuddy/agents/harness-evaluator.md +0 -94
  74. package/resources/harness/bundles/general/codebuddy/agents/harness-explorer.md +0 -53
  75. package/resources/harness/bundles/general/codebuddy/agents/harness-reviewer.md +0 -52
  76. package/resources/harness/bundles/general/codebuddy/harness-archive/SKILL.md +0 -198
  77. package/resources/harness/bundles/general/codebuddy/harness-archive/checklist.md +0 -52
  78. package/resources/harness/bundles/general/codebuddy/harness-archive/reference.md +0 -103
  79. package/resources/harness/bundles/general/codebuddy/harness-archive/scripts/gen-manifest.ps1 +0 -31
  80. package/resources/harness/bundles/general/codebuddy/harness-archive/templates/render-summary.mjs +0 -171
  81. package/resources/harness/bundles/general/codebuddy/harness-archive/templates/summary-data-template.json +0 -128
  82. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/SKILL.md +0 -95
  83. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/checklist.md +0 -126
  84. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/reference.md +0 -364
  85. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  86. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/CONCERNS.md +0 -49
  87. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  88. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  89. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/STACK.md +0 -55
  90. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/STRUCTURE.md +0 -69
  91. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/TESTING.md +0 -64
  92. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  93. package/resources/harness/bundles/general/codebuddy/harness-codebase-map/templates/map-summary.md +0 -64
  94. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/SKILL.md +0 -229
  95. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/design.md +0 -842
  96. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  97. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/mcp-config.example.json +0 -10
  98. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/reference.md +0 -309
  99. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  100. package/resources/harness/bundles/general/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  101. package/resources/harness/bundles/general/codebuddy/harness-knowledge-query/SKILL.md +0 -147
  102. package/resources/harness/bundles/general/codebuddy/harness-plan/SKILL.md +0 -109
  103. package/resources/harness/bundles/general/codebuddy/harness-plan/checklist.md +0 -243
  104. package/resources/harness/bundles/general/codebuddy/harness-plan/protocols.md +0 -124
  105. package/resources/harness/bundles/general/codebuddy/harness-plan/reference.md +0 -376
  106. package/resources/harness/bundles/general/codebuddy/harness-review/SKILL.md +0 -142
  107. package/resources/harness/bundles/general/codebuddy/harness-review/checklist.md +0 -124
  108. package/resources/harness/bundles/general/codebuddy/harness-review/protocols.md +0 -68
  109. package/resources/harness/bundles/general/codebuddy/harness-review/reference.md +0 -86
  110. package/resources/harness/bundles/general/codebuddy/harness-run/SKILL.md +0 -113
  111. package/resources/harness/bundles/general/codebuddy/harness-run/checklist.md +0 -259
  112. package/resources/harness/bundles/general/codebuddy/harness-run/protocols.md +0 -78
  113. package/resources/harness/bundles/general/codebuddy/harness-run/reference.md +0 -834
  114. package/resources/harness/bundles/general/codebuddy/harness-submit/SKILL.md +0 -142
  115. package/resources/harness/bundles/general/codebuddy/harness-submit/checklist.md +0 -407
  116. package/resources/harness/bundles/general/codebuddy/harness-submit/reference.md +0 -152
  117. package/resources/harness/bundles/general/codebuddy/harness-sync/SKILL.md +0 -65
  118. package/resources/harness/bundles/general/codebuddy/harness-sync/reference.md +0 -153
  119. package/resources/harness/bundles/general/codebuddy/harness-test/SKILL.md +0 -160
  120. package/resources/harness/bundles/general/codebuddy/harness-test/checklist.md +0 -319
  121. package/resources/harness/bundles/general/codebuddy/harness-test/pitfalls.md +0 -260
  122. package/resources/harness/bundles/general/codebuddy/harness-test/reference.md +0 -791
  123. package/resources/harness/bundles/general/codebuddy/protocols/archive-report-protocol.md +0 -175
  124. package/resources/harness/bundles/general/codebuddy/protocols/evidence-based-reporting-protocol.md +0 -134
  125. package/resources/harness/bundles/general/codebuddy/protocols/ledger-protocol.md +0 -270
  126. package/resources/harness/bundles/general/codebuddy/protocols/powershell-protocol.md +0 -181
  127. package/resources/harness/bundles/general/codebuddy/protocols/report-pipeline-protocol.md +0 -150
  128. package/resources/harness/bundles/general/codebuddy/protocols/sensitive-info-protocol.md +0 -92
  129. package/resources/harness/bundles/general/codebuddy/protocols/state-layout-protocol.md +0 -131
  130. package/resources/harness/bundles/general/codebuddy/protocols/submit-protocol.md +0 -78
  131. package/resources/harness/bundles/general/codebuddy/scripts/harness_archive.py +0 -2319
  132. package/resources/harness/bundles/general/codebuddy/scripts/harness_deploy.py +0 -674
  133. package/resources/harness/bundles/general/codebuddy/scripts/harness_events.py +0 -680
  134. package/resources/harness/bundles/general/codebuddy/scripts/harness_ledger.py +0 -671
  135. package/resources/harness/bundles/general/codebuddy/scripts/harness_preflight.py +0 -780
  136. package/resources/harness/bundles/general/codebuddy/scripts/harness_service.py +0 -1331
  137. package/resources/harness/bundles/general/codex/.harness-build.json +0 -6
  138. package/resources/harness/bundles/general/codex/CONTEXT.md +0 -65
  139. package/resources/harness/bundles/general/codex/README.md +0 -478
  140. package/resources/harness/bundles/general/codex/harness-archive/SKILL.md +0 -198
  141. package/resources/harness/bundles/general/codex/harness-archive/checklist.md +0 -52
  142. package/resources/harness/bundles/general/codex/harness-archive/reference.md +0 -103
  143. package/resources/harness/bundles/general/codex/harness-archive/scripts/gen-manifest.ps1 +0 -31
  144. package/resources/harness/bundles/general/codex/harness-archive/templates/render-summary.mjs +0 -171
  145. package/resources/harness/bundles/general/codex/harness-archive/templates/summary-data-template.json +0 -128
  146. package/resources/harness/bundles/general/codex/harness-codebase-map/SKILL.md +0 -95
  147. package/resources/harness/bundles/general/codex/harness-codebase-map/checklist.md +0 -126
  148. package/resources/harness/bundles/general/codex/harness-codebase-map/reference.md +0 -364
  149. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  150. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/CONCERNS.md +0 -49
  151. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  152. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  153. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/STACK.md +0 -55
  154. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/STRUCTURE.md +0 -69
  155. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/TESTING.md +0 -64
  156. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  157. package/resources/harness/bundles/general/codex/harness-codebase-map/templates/map-summary.md +0 -64
  158. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/SKILL.md +0 -229
  159. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/design.md +0 -842
  160. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  161. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/mcp-config.example.json +0 -10
  162. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/reference.md +0 -309
  163. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  164. package/resources/harness/bundles/general/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  165. package/resources/harness/bundles/general/codex/harness-knowledge-query/SKILL.md +0 -147
  166. package/resources/harness/bundles/general/codex/harness-plan/SKILL.md +0 -109
  167. package/resources/harness/bundles/general/codex/harness-plan/checklist.md +0 -243
  168. package/resources/harness/bundles/general/codex/harness-plan/protocols.md +0 -124
  169. package/resources/harness/bundles/general/codex/harness-plan/reference.md +0 -376
  170. package/resources/harness/bundles/general/codex/harness-review/SKILL.md +0 -137
  171. package/resources/harness/bundles/general/codex/harness-review/checklist.md +0 -124
  172. package/resources/harness/bundles/general/codex/harness-review/protocols.md +0 -68
  173. package/resources/harness/bundles/general/codex/harness-review/reference.md +0 -86
  174. package/resources/harness/bundles/general/codex/harness-run/SKILL.md +0 -113
  175. package/resources/harness/bundles/general/codex/harness-run/checklist.md +0 -259
  176. package/resources/harness/bundles/general/codex/harness-run/protocols.md +0 -78
  177. package/resources/harness/bundles/general/codex/harness-run/reference.md +0 -834
  178. package/resources/harness/bundles/general/codex/harness-submit/SKILL.md +0 -142
  179. package/resources/harness/bundles/general/codex/harness-submit/checklist.md +0 -407
  180. package/resources/harness/bundles/general/codex/harness-submit/reference.md +0 -152
  181. package/resources/harness/bundles/general/codex/harness-sync/SKILL.md +0 -65
  182. package/resources/harness/bundles/general/codex/harness-sync/reference.md +0 -153
  183. package/resources/harness/bundles/general/codex/harness-test/SKILL.md +0 -160
  184. package/resources/harness/bundles/general/codex/harness-test/checklist.md +0 -319
  185. package/resources/harness/bundles/general/codex/harness-test/pitfalls.md +0 -260
  186. package/resources/harness/bundles/general/codex/harness-test/reference.md +0 -791
  187. package/resources/harness/bundles/general/codex/protocols/archive-report-protocol.md +0 -175
  188. package/resources/harness/bundles/general/codex/protocols/evidence-based-reporting-protocol.md +0 -134
  189. package/resources/harness/bundles/general/codex/protocols/ledger-protocol.md +0 -270
  190. package/resources/harness/bundles/general/codex/protocols/powershell-protocol.md +0 -181
  191. package/resources/harness/bundles/general/codex/protocols/report-pipeline-protocol.md +0 -150
  192. package/resources/harness/bundles/general/codex/protocols/sensitive-info-protocol.md +0 -92
  193. package/resources/harness/bundles/general/codex/protocols/state-layout-protocol.md +0 -131
  194. package/resources/harness/bundles/general/codex/protocols/submit-protocol.md +0 -78
  195. package/resources/harness/bundles/general/codex/scripts/harness_archive.py +0 -2319
  196. package/resources/harness/bundles/general/codex/scripts/harness_deploy.py +0 -674
  197. package/resources/harness/bundles/general/codex/scripts/harness_events.py +0 -680
  198. package/resources/harness/bundles/general/codex/scripts/harness_ledger.py +0 -671
  199. package/resources/harness/bundles/general/codex/scripts/harness_preflight.py +0 -780
  200. package/resources/harness/bundles/general/codex/scripts/harness_service.py +0 -1331
  201. package/resources/harness/bundles/general/cursor/.harness-build.json +0 -6
  202. package/resources/harness/bundles/general/cursor/CONTEXT.md +0 -65
  203. package/resources/harness/bundles/general/cursor/README.md +0 -478
  204. package/resources/harness/bundles/general/cursor/harness-archive/SKILL.md +0 -198
  205. package/resources/harness/bundles/general/cursor/harness-archive/checklist.md +0 -52
  206. package/resources/harness/bundles/general/cursor/harness-archive/reference.md +0 -103
  207. package/resources/harness/bundles/general/cursor/harness-archive/scripts/gen-manifest.ps1 +0 -31
  208. package/resources/harness/bundles/general/cursor/harness-archive/templates/render-summary.mjs +0 -171
  209. package/resources/harness/bundles/general/cursor/harness-archive/templates/summary-data-template.json +0 -128
  210. package/resources/harness/bundles/general/cursor/harness-codebase-map/SKILL.md +0 -95
  211. package/resources/harness/bundles/general/cursor/harness-codebase-map/checklist.md +0 -126
  212. package/resources/harness/bundles/general/cursor/harness-codebase-map/reference.md +0 -364
  213. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  214. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/CONCERNS.md +0 -49
  215. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  216. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  217. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/STACK.md +0 -55
  218. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/STRUCTURE.md +0 -69
  219. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/TESTING.md +0 -64
  220. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  221. package/resources/harness/bundles/general/cursor/harness-codebase-map/templates/map-summary.md +0 -64
  222. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/SKILL.md +0 -229
  223. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/design.md +0 -842
  224. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  225. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/mcp-config.example.json +0 -10
  226. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/reference.md +0 -309
  227. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  228. package/resources/harness/bundles/general/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  229. package/resources/harness/bundles/general/cursor/harness-knowledge-query/SKILL.md +0 -147
  230. package/resources/harness/bundles/general/cursor/harness-plan/SKILL.md +0 -109
  231. package/resources/harness/bundles/general/cursor/harness-plan/checklist.md +0 -243
  232. package/resources/harness/bundles/general/cursor/harness-plan/protocols.md +0 -124
  233. package/resources/harness/bundles/general/cursor/harness-plan/reference.md +0 -376
  234. package/resources/harness/bundles/general/cursor/harness-review/SKILL.md +0 -137
  235. package/resources/harness/bundles/general/cursor/harness-review/checklist.md +0 -124
  236. package/resources/harness/bundles/general/cursor/harness-review/protocols.md +0 -68
  237. package/resources/harness/bundles/general/cursor/harness-review/reference.md +0 -86
  238. package/resources/harness/bundles/general/cursor/harness-run/SKILL.md +0 -113
  239. package/resources/harness/bundles/general/cursor/harness-run/checklist.md +0 -259
  240. package/resources/harness/bundles/general/cursor/harness-run/protocols.md +0 -78
  241. package/resources/harness/bundles/general/cursor/harness-run/reference.md +0 -834
  242. package/resources/harness/bundles/general/cursor/harness-submit/SKILL.md +0 -142
  243. package/resources/harness/bundles/general/cursor/harness-submit/checklist.md +0 -407
  244. package/resources/harness/bundles/general/cursor/harness-submit/reference.md +0 -152
  245. package/resources/harness/bundles/general/cursor/harness-sync/SKILL.md +0 -65
  246. package/resources/harness/bundles/general/cursor/harness-sync/reference.md +0 -153
  247. package/resources/harness/bundles/general/cursor/harness-test/SKILL.md +0 -160
  248. package/resources/harness/bundles/general/cursor/harness-test/checklist.md +0 -319
  249. package/resources/harness/bundles/general/cursor/harness-test/pitfalls.md +0 -260
  250. package/resources/harness/bundles/general/cursor/harness-test/reference.md +0 -791
  251. package/resources/harness/bundles/general/cursor/protocols/archive-report-protocol.md +0 -175
  252. package/resources/harness/bundles/general/cursor/protocols/evidence-based-reporting-protocol.md +0 -134
  253. package/resources/harness/bundles/general/cursor/protocols/ledger-protocol.md +0 -270
  254. package/resources/harness/bundles/general/cursor/protocols/powershell-protocol.md +0 -181
  255. package/resources/harness/bundles/general/cursor/protocols/report-pipeline-protocol.md +0 -150
  256. package/resources/harness/bundles/general/cursor/protocols/sensitive-info-protocol.md +0 -92
  257. package/resources/harness/bundles/general/cursor/protocols/state-layout-protocol.md +0 -131
  258. package/resources/harness/bundles/general/cursor/protocols/submit-protocol.md +0 -78
  259. package/resources/harness/bundles/general/cursor/scripts/harness_archive.py +0 -2319
  260. package/resources/harness/bundles/general/cursor/scripts/harness_deploy.py +0 -674
  261. package/resources/harness/bundles/general/cursor/scripts/harness_events.py +0 -680
  262. package/resources/harness/bundles/general/cursor/scripts/harness_ledger.py +0 -671
  263. package/resources/harness/bundles/general/cursor/scripts/harness_preflight.py +0 -780
  264. package/resources/harness/bundles/general/cursor/scripts/harness_service.py +0 -1331
  265. package/resources/harness/bundles/java/claude-code/.harness-build.json +0 -6
  266. package/resources/harness/bundles/java/claude-code/CONTEXT.md +0 -65
  267. package/resources/harness/bundles/java/claude-code/README.md +0 -478
  268. package/resources/harness/bundles/java/claude-code/agents/harness-evaluator.md +0 -96
  269. package/resources/harness/bundles/java/claude-code/agents/harness-explorer.md +0 -72
  270. package/resources/harness/bundles/java/claude-code/agents/harness-reviewer.md +0 -69
  271. package/resources/harness/bundles/java/claude-code/harness-apidoc/SKILL.md +0 -86
  272. package/resources/harness/bundles/java/claude-code/harness-apidoc/checklist.md +0 -142
  273. package/resources/harness/bundles/java/claude-code/harness-apidoc/reference.md +0 -233
  274. package/resources/harness/bundles/java/claude-code/harness-archive/SKILL.md +0 -215
  275. package/resources/harness/bundles/java/claude-code/harness-archive/checklist.md +0 -52
  276. package/resources/harness/bundles/java/claude-code/harness-archive/reference.md +0 -103
  277. package/resources/harness/bundles/java/claude-code/harness-archive/scripts/gen-manifest.ps1 +0 -31
  278. package/resources/harness/bundles/java/claude-code/harness-archive/templates/render-summary.mjs +0 -171
  279. package/resources/harness/bundles/java/claude-code/harness-archive/templates/summary-data-template.json +0 -128
  280. package/resources/harness/bundles/java/claude-code/harness-codebase-map/SKILL.md +0 -112
  281. package/resources/harness/bundles/java/claude-code/harness-codebase-map/checklist.md +0 -126
  282. package/resources/harness/bundles/java/claude-code/harness-codebase-map/reference.md +0 -364
  283. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  284. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/CONCERNS.md +0 -49
  285. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  286. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  287. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/STACK.md +0 -55
  288. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/STRUCTURE.md +0 -69
  289. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/TESTING.md +0 -64
  290. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  291. package/resources/harness/bundles/java/claude-code/harness-codebase-map/templates/map-summary.md +0 -64
  292. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/SKILL.md +0 -246
  293. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/design.md +0 -842
  294. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  295. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/mcp-config.example.json +0 -10
  296. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/reference.md +0 -309
  297. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  298. package/resources/harness/bundles/java/claude-code/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  299. package/resources/harness/bundles/java/claude-code/harness-knowledge-query/SKILL.md +0 -164
  300. package/resources/harness/bundles/java/claude-code/harness-package/SKILL.md +0 -87
  301. package/resources/harness/bundles/java/claude-code/harness-package/checklist.md +0 -322
  302. package/resources/harness/bundles/java/claude-code/harness-package/reference.md +0 -210
  303. package/resources/harness/bundles/java/claude-code/harness-plan/SKILL.md +0 -127
  304. package/resources/harness/bundles/java/claude-code/harness-plan/checklist.md +0 -243
  305. package/resources/harness/bundles/java/claude-code/harness-plan/protocols.md +0 -124
  306. package/resources/harness/bundles/java/claude-code/harness-plan/reference.md +0 -376
  307. package/resources/harness/bundles/java/claude-code/harness-review/SKILL.md +0 -160
  308. package/resources/harness/bundles/java/claude-code/harness-review/checklist.md +0 -124
  309. package/resources/harness/bundles/java/claude-code/harness-review/protocols.md +0 -68
  310. package/resources/harness/bundles/java/claude-code/harness-review/reference.md +0 -86
  311. package/resources/harness/bundles/java/claude-code/harness-run/SKILL.md +0 -148
  312. package/resources/harness/bundles/java/claude-code/harness-run/checklist.md +0 -250
  313. package/resources/harness/bundles/java/claude-code/harness-run/protocols.md +0 -78
  314. package/resources/harness/bundles/java/claude-code/harness-run/reference.md +0 -814
  315. package/resources/harness/bundles/java/claude-code/harness-submit/SKILL.md +0 -166
  316. package/resources/harness/bundles/java/claude-code/harness-submit/checklist.md +0 -407
  317. package/resources/harness/bundles/java/claude-code/harness-submit/reference.md +0 -152
  318. package/resources/harness/bundles/java/claude-code/harness-sync/SKILL.md +0 -82
  319. package/resources/harness/bundles/java/claude-code/harness-sync/reference.md +0 -153
  320. package/resources/harness/bundles/java/claude-code/harness-test/SKILL.md +0 -192
  321. package/resources/harness/bundles/java/claude-code/harness-test/checklist.md +0 -317
  322. package/resources/harness/bundles/java/claude-code/harness-test/pitfalls-java.md +0 -16
  323. package/resources/harness/bundles/java/claude-code/harness-test/pitfalls.md +0 -260
  324. package/resources/harness/bundles/java/claude-code/harness-test/reference.md +0 -788
  325. package/resources/harness/bundles/java/claude-code/protocols/archive-report-protocol.md +0 -175
  326. package/resources/harness/bundles/java/claude-code/protocols/evidence-based-reporting-protocol.md +0 -134
  327. package/resources/harness/bundles/java/claude-code/protocols/ledger-protocol.md +0 -270
  328. package/resources/harness/bundles/java/claude-code/protocols/powershell-protocol.md +0 -181
  329. package/resources/harness/bundles/java/claude-code/protocols/report-pipeline-protocol.md +0 -150
  330. package/resources/harness/bundles/java/claude-code/protocols/sensitive-info-protocol.md +0 -92
  331. package/resources/harness/bundles/java/claude-code/protocols/state-layout-protocol.md +0 -131
  332. package/resources/harness/bundles/java/claude-code/protocols/submit-protocol.md +0 -78
  333. package/resources/harness/bundles/java/claude-code/scripts/harness_archive.py +0 -2319
  334. package/resources/harness/bundles/java/claude-code/scripts/harness_deploy.py +0 -674
  335. package/resources/harness/bundles/java/claude-code/scripts/harness_events.py +0 -680
  336. package/resources/harness/bundles/java/claude-code/scripts/harness_ledger.py +0 -671
  337. package/resources/harness/bundles/java/claude-code/scripts/harness_preflight.py +0 -780
  338. package/resources/harness/bundles/java/claude-code/scripts/harness_service.py +0 -1331
  339. package/resources/harness/bundles/java/codebuddy/.harness-build.json +0 -6
  340. package/resources/harness/bundles/java/codebuddy/CONTEXT.md +0 -65
  341. package/resources/harness/bundles/java/codebuddy/README.md +0 -478
  342. package/resources/harness/bundles/java/codebuddy/agents/harness-evaluator.md +0 -94
  343. package/resources/harness/bundles/java/codebuddy/agents/harness-explorer.md +0 -53
  344. package/resources/harness/bundles/java/codebuddy/agents/harness-reviewer.md +0 -52
  345. package/resources/harness/bundles/java/codebuddy/harness-apidoc/SKILL.md +0 -68
  346. package/resources/harness/bundles/java/codebuddy/harness-apidoc/checklist.md +0 -142
  347. package/resources/harness/bundles/java/codebuddy/harness-apidoc/reference.md +0 -233
  348. package/resources/harness/bundles/java/codebuddy/harness-archive/SKILL.md +0 -198
  349. package/resources/harness/bundles/java/codebuddy/harness-archive/checklist.md +0 -52
  350. package/resources/harness/bundles/java/codebuddy/harness-archive/reference.md +0 -103
  351. package/resources/harness/bundles/java/codebuddy/harness-archive/scripts/gen-manifest.ps1 +0 -31
  352. package/resources/harness/bundles/java/codebuddy/harness-archive/templates/render-summary.mjs +0 -171
  353. package/resources/harness/bundles/java/codebuddy/harness-archive/templates/summary-data-template.json +0 -128
  354. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/SKILL.md +0 -95
  355. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/checklist.md +0 -126
  356. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/reference.md +0 -364
  357. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  358. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/CONCERNS.md +0 -49
  359. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  360. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  361. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/STACK.md +0 -55
  362. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/STRUCTURE.md +0 -69
  363. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/TESTING.md +0 -64
  364. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  365. package/resources/harness/bundles/java/codebuddy/harness-codebase-map/templates/map-summary.md +0 -64
  366. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/SKILL.md +0 -229
  367. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/design.md +0 -842
  368. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  369. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/mcp-config.example.json +0 -10
  370. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/reference.md +0 -309
  371. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  372. package/resources/harness/bundles/java/codebuddy/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  373. package/resources/harness/bundles/java/codebuddy/harness-knowledge-query/SKILL.md +0 -147
  374. package/resources/harness/bundles/java/codebuddy/harness-package/SKILL.md +0 -69
  375. package/resources/harness/bundles/java/codebuddy/harness-package/checklist.md +0 -322
  376. package/resources/harness/bundles/java/codebuddy/harness-package/reference.md +0 -210
  377. package/resources/harness/bundles/java/codebuddy/harness-plan/SKILL.md +0 -109
  378. package/resources/harness/bundles/java/codebuddy/harness-plan/checklist.md +0 -243
  379. package/resources/harness/bundles/java/codebuddy/harness-plan/protocols.md +0 -124
  380. package/resources/harness/bundles/java/codebuddy/harness-plan/reference.md +0 -376
  381. package/resources/harness/bundles/java/codebuddy/harness-review/SKILL.md +0 -142
  382. package/resources/harness/bundles/java/codebuddy/harness-review/checklist.md +0 -124
  383. package/resources/harness/bundles/java/codebuddy/harness-review/protocols.md +0 -68
  384. package/resources/harness/bundles/java/codebuddy/harness-review/reference.md +0 -86
  385. package/resources/harness/bundles/java/codebuddy/harness-run/SKILL.md +0 -129
  386. package/resources/harness/bundles/java/codebuddy/harness-run/checklist.md +0 -250
  387. package/resources/harness/bundles/java/codebuddy/harness-run/protocols.md +0 -78
  388. package/resources/harness/bundles/java/codebuddy/harness-run/reference.md +0 -814
  389. package/resources/harness/bundles/java/codebuddy/harness-submit/SKILL.md +0 -149
  390. package/resources/harness/bundles/java/codebuddy/harness-submit/checklist.md +0 -407
  391. package/resources/harness/bundles/java/codebuddy/harness-submit/reference.md +0 -152
  392. package/resources/harness/bundles/java/codebuddy/harness-sync/SKILL.md +0 -65
  393. package/resources/harness/bundles/java/codebuddy/harness-sync/reference.md +0 -153
  394. package/resources/harness/bundles/java/codebuddy/harness-test/SKILL.md +0 -172
  395. package/resources/harness/bundles/java/codebuddy/harness-test/checklist.md +0 -317
  396. package/resources/harness/bundles/java/codebuddy/harness-test/pitfalls-java.md +0 -16
  397. package/resources/harness/bundles/java/codebuddy/harness-test/pitfalls.md +0 -260
  398. package/resources/harness/bundles/java/codebuddy/harness-test/reference.md +0 -788
  399. package/resources/harness/bundles/java/codebuddy/protocols/archive-report-protocol.md +0 -175
  400. package/resources/harness/bundles/java/codebuddy/protocols/evidence-based-reporting-protocol.md +0 -134
  401. package/resources/harness/bundles/java/codebuddy/protocols/ledger-protocol.md +0 -270
  402. package/resources/harness/bundles/java/codebuddy/protocols/powershell-protocol.md +0 -181
  403. package/resources/harness/bundles/java/codebuddy/protocols/report-pipeline-protocol.md +0 -150
  404. package/resources/harness/bundles/java/codebuddy/protocols/sensitive-info-protocol.md +0 -92
  405. package/resources/harness/bundles/java/codebuddy/protocols/state-layout-protocol.md +0 -131
  406. package/resources/harness/bundles/java/codebuddy/protocols/submit-protocol.md +0 -78
  407. package/resources/harness/bundles/java/codebuddy/scripts/harness_archive.py +0 -2319
  408. package/resources/harness/bundles/java/codebuddy/scripts/harness_deploy.py +0 -674
  409. package/resources/harness/bundles/java/codebuddy/scripts/harness_events.py +0 -680
  410. package/resources/harness/bundles/java/codebuddy/scripts/harness_ledger.py +0 -671
  411. package/resources/harness/bundles/java/codebuddy/scripts/harness_preflight.py +0 -780
  412. package/resources/harness/bundles/java/codebuddy/scripts/harness_service.py +0 -1331
  413. package/resources/harness/bundles/java/codex/.harness-build.json +0 -6
  414. package/resources/harness/bundles/java/codex/CONTEXT.md +0 -65
  415. package/resources/harness/bundles/java/codex/README.md +0 -478
  416. package/resources/harness/bundles/java/codex/harness-apidoc/SKILL.md +0 -68
  417. package/resources/harness/bundles/java/codex/harness-apidoc/checklist.md +0 -142
  418. package/resources/harness/bundles/java/codex/harness-apidoc/reference.md +0 -233
  419. package/resources/harness/bundles/java/codex/harness-archive/SKILL.md +0 -198
  420. package/resources/harness/bundles/java/codex/harness-archive/checklist.md +0 -52
  421. package/resources/harness/bundles/java/codex/harness-archive/reference.md +0 -103
  422. package/resources/harness/bundles/java/codex/harness-archive/scripts/gen-manifest.ps1 +0 -31
  423. package/resources/harness/bundles/java/codex/harness-archive/templates/render-summary.mjs +0 -171
  424. package/resources/harness/bundles/java/codex/harness-archive/templates/summary-data-template.json +0 -128
  425. package/resources/harness/bundles/java/codex/harness-codebase-map/SKILL.md +0 -95
  426. package/resources/harness/bundles/java/codex/harness-codebase-map/checklist.md +0 -126
  427. package/resources/harness/bundles/java/codex/harness-codebase-map/reference.md +0 -364
  428. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  429. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/CONCERNS.md +0 -49
  430. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  431. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  432. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/STACK.md +0 -55
  433. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/STRUCTURE.md +0 -69
  434. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/TESTING.md +0 -64
  435. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  436. package/resources/harness/bundles/java/codex/harness-codebase-map/templates/map-summary.md +0 -64
  437. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/SKILL.md +0 -229
  438. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/design.md +0 -842
  439. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  440. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/mcp-config.example.json +0 -10
  441. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/reference.md +0 -309
  442. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  443. package/resources/harness/bundles/java/codex/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  444. package/resources/harness/bundles/java/codex/harness-knowledge-query/SKILL.md +0 -147
  445. package/resources/harness/bundles/java/codex/harness-package/SKILL.md +0 -69
  446. package/resources/harness/bundles/java/codex/harness-package/checklist.md +0 -322
  447. package/resources/harness/bundles/java/codex/harness-package/reference.md +0 -210
  448. package/resources/harness/bundles/java/codex/harness-plan/SKILL.md +0 -109
  449. package/resources/harness/bundles/java/codex/harness-plan/checklist.md +0 -243
  450. package/resources/harness/bundles/java/codex/harness-plan/protocols.md +0 -124
  451. package/resources/harness/bundles/java/codex/harness-plan/reference.md +0 -376
  452. package/resources/harness/bundles/java/codex/harness-review/SKILL.md +0 -137
  453. package/resources/harness/bundles/java/codex/harness-review/checklist.md +0 -124
  454. package/resources/harness/bundles/java/codex/harness-review/protocols.md +0 -68
  455. package/resources/harness/bundles/java/codex/harness-review/reference.md +0 -86
  456. package/resources/harness/bundles/java/codex/harness-run/SKILL.md +0 -129
  457. package/resources/harness/bundles/java/codex/harness-run/checklist.md +0 -250
  458. package/resources/harness/bundles/java/codex/harness-run/protocols.md +0 -78
  459. package/resources/harness/bundles/java/codex/harness-run/reference.md +0 -814
  460. package/resources/harness/bundles/java/codex/harness-submit/SKILL.md +0 -149
  461. package/resources/harness/bundles/java/codex/harness-submit/checklist.md +0 -407
  462. package/resources/harness/bundles/java/codex/harness-submit/reference.md +0 -152
  463. package/resources/harness/bundles/java/codex/harness-sync/SKILL.md +0 -65
  464. package/resources/harness/bundles/java/codex/harness-sync/reference.md +0 -153
  465. package/resources/harness/bundles/java/codex/harness-test/SKILL.md +0 -172
  466. package/resources/harness/bundles/java/codex/harness-test/checklist.md +0 -317
  467. package/resources/harness/bundles/java/codex/harness-test/pitfalls-java.md +0 -16
  468. package/resources/harness/bundles/java/codex/harness-test/pitfalls.md +0 -260
  469. package/resources/harness/bundles/java/codex/harness-test/reference.md +0 -788
  470. package/resources/harness/bundles/java/codex/protocols/archive-report-protocol.md +0 -175
  471. package/resources/harness/bundles/java/codex/protocols/evidence-based-reporting-protocol.md +0 -134
  472. package/resources/harness/bundles/java/codex/protocols/ledger-protocol.md +0 -270
  473. package/resources/harness/bundles/java/codex/protocols/powershell-protocol.md +0 -181
  474. package/resources/harness/bundles/java/codex/protocols/report-pipeline-protocol.md +0 -150
  475. package/resources/harness/bundles/java/codex/protocols/sensitive-info-protocol.md +0 -92
  476. package/resources/harness/bundles/java/codex/protocols/state-layout-protocol.md +0 -131
  477. package/resources/harness/bundles/java/codex/protocols/submit-protocol.md +0 -78
  478. package/resources/harness/bundles/java/codex/scripts/harness_archive.py +0 -2319
  479. package/resources/harness/bundles/java/codex/scripts/harness_deploy.py +0 -674
  480. package/resources/harness/bundles/java/codex/scripts/harness_events.py +0 -680
  481. package/resources/harness/bundles/java/codex/scripts/harness_ledger.py +0 -671
  482. package/resources/harness/bundles/java/codex/scripts/harness_preflight.py +0 -780
  483. package/resources/harness/bundles/java/codex/scripts/harness_service.py +0 -1331
  484. package/resources/harness/bundles/java/cursor/.harness-build.json +0 -6
  485. package/resources/harness/bundles/java/cursor/CONTEXT.md +0 -65
  486. package/resources/harness/bundles/java/cursor/README.md +0 -478
  487. package/resources/harness/bundles/java/cursor/harness-apidoc/SKILL.md +0 -68
  488. package/resources/harness/bundles/java/cursor/harness-apidoc/checklist.md +0 -142
  489. package/resources/harness/bundles/java/cursor/harness-apidoc/reference.md +0 -233
  490. package/resources/harness/bundles/java/cursor/harness-archive/SKILL.md +0 -198
  491. package/resources/harness/bundles/java/cursor/harness-archive/checklist.md +0 -52
  492. package/resources/harness/bundles/java/cursor/harness-archive/reference.md +0 -103
  493. package/resources/harness/bundles/java/cursor/harness-archive/scripts/gen-manifest.ps1 +0 -31
  494. package/resources/harness/bundles/java/cursor/harness-archive/templates/render-summary.mjs +0 -171
  495. package/resources/harness/bundles/java/cursor/harness-archive/templates/summary-data-template.json +0 -128
  496. package/resources/harness/bundles/java/cursor/harness-codebase-map/SKILL.md +0 -95
  497. package/resources/harness/bundles/java/cursor/harness-codebase-map/checklist.md +0 -126
  498. package/resources/harness/bundles/java/cursor/harness-codebase-map/reference.md +0 -364
  499. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/ARCHITECTURE.md +0 -57
  500. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/CONCERNS.md +0 -49
  501. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/CONVENTIONS.md +0 -57
  502. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/INTEGRATIONS.md +0 -52
  503. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/STACK.md +0 -55
  504. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/STRUCTURE.md +0 -69
  505. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/TESTING.md +0 -64
  506. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/map-manifest.schema.json +0 -73
  507. package/resources/harness/bundles/java/cursor/harness-codebase-map/templates/map-summary.md +0 -64
  508. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/SKILL.md +0 -229
  509. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/design.md +0 -842
  510. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/evaluations/harness_knowledge_evaluation.xml +0 -42
  511. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/mcp-config.example.json +0 -10
  512. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/reference.md +0 -309
  513. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge.py +0 -4082
  514. package/resources/harness/bundles/java/cursor/harness-knowledge-ingest/scripts/harness_knowledge_mcp.py +0 -273
  515. package/resources/harness/bundles/java/cursor/harness-knowledge-query/SKILL.md +0 -147
  516. package/resources/harness/bundles/java/cursor/harness-package/SKILL.md +0 -69
  517. package/resources/harness/bundles/java/cursor/harness-package/checklist.md +0 -322
  518. package/resources/harness/bundles/java/cursor/harness-package/reference.md +0 -210
  519. package/resources/harness/bundles/java/cursor/harness-plan/SKILL.md +0 -109
  520. package/resources/harness/bundles/java/cursor/harness-plan/checklist.md +0 -243
  521. package/resources/harness/bundles/java/cursor/harness-plan/protocols.md +0 -124
  522. package/resources/harness/bundles/java/cursor/harness-plan/reference.md +0 -376
  523. package/resources/harness/bundles/java/cursor/harness-review/SKILL.md +0 -137
  524. package/resources/harness/bundles/java/cursor/harness-review/checklist.md +0 -124
  525. package/resources/harness/bundles/java/cursor/harness-review/protocols.md +0 -68
  526. package/resources/harness/bundles/java/cursor/harness-review/reference.md +0 -86
  527. package/resources/harness/bundles/java/cursor/harness-run/SKILL.md +0 -129
  528. package/resources/harness/bundles/java/cursor/harness-run/checklist.md +0 -250
  529. package/resources/harness/bundles/java/cursor/harness-run/protocols.md +0 -78
  530. package/resources/harness/bundles/java/cursor/harness-run/reference.md +0 -814
  531. package/resources/harness/bundles/java/cursor/harness-submit/SKILL.md +0 -149
  532. package/resources/harness/bundles/java/cursor/harness-submit/checklist.md +0 -407
  533. package/resources/harness/bundles/java/cursor/harness-submit/reference.md +0 -152
  534. package/resources/harness/bundles/java/cursor/harness-sync/SKILL.md +0 -65
  535. package/resources/harness/bundles/java/cursor/harness-sync/reference.md +0 -153
  536. package/resources/harness/bundles/java/cursor/harness-test/SKILL.md +0 -172
  537. package/resources/harness/bundles/java/cursor/harness-test/checklist.md +0 -317
  538. package/resources/harness/bundles/java/cursor/harness-test/pitfalls-java.md +0 -16
  539. package/resources/harness/bundles/java/cursor/harness-test/pitfalls.md +0 -260
  540. package/resources/harness/bundles/java/cursor/harness-test/reference.md +0 -788
  541. package/resources/harness/bundles/java/cursor/protocols/archive-report-protocol.md +0 -175
  542. package/resources/harness/bundles/java/cursor/protocols/evidence-based-reporting-protocol.md +0 -134
  543. package/resources/harness/bundles/java/cursor/protocols/ledger-protocol.md +0 -270
  544. package/resources/harness/bundles/java/cursor/protocols/powershell-protocol.md +0 -181
  545. package/resources/harness/bundles/java/cursor/protocols/report-pipeline-protocol.md +0 -150
  546. package/resources/harness/bundles/java/cursor/protocols/sensitive-info-protocol.md +0 -92
  547. package/resources/harness/bundles/java/cursor/protocols/state-layout-protocol.md +0 -131
  548. package/resources/harness/bundles/java/cursor/protocols/submit-protocol.md +0 -78
  549. package/resources/harness/bundles/java/cursor/scripts/harness_archive.py +0 -2319
  550. package/resources/harness/bundles/java/cursor/scripts/harness_deploy.py +0 -674
  551. package/resources/harness/bundles/java/cursor/scripts/harness_events.py +0 -680
  552. package/resources/harness/bundles/java/cursor/scripts/harness_ledger.py +0 -671
  553. package/resources/harness/bundles/java/cursor/scripts/harness_preflight.py +0 -780
  554. package/resources/harness/bundles/java/cursor/scripts/harness_service.py +0 -1331
  555. package/resources/harness/manifests/general/claude-code.json +0 -277
  556. package/resources/harness/manifests/general/codebuddy.json +0 -277
  557. package/resources/harness/manifests/general/codex.json +0 -265
  558. package/resources/harness/manifests/general/cursor.json +0 -265
  559. package/resources/harness/manifests/java/claude-code.json +0 -305
  560. package/resources/harness/manifests/java/codebuddy.json +0 -305
  561. package/resources/harness/manifests/java/codex.json +0 -293
  562. package/resources/harness/manifests/java/cursor.json +0 -293
  563. package/resources/harness/migrations/0.1.1/general.json +0 -358
  564. package/resources/harness/migrations/0.1.1/java.json +0 -398
@@ -1,198 +0,0 @@
1
- ---
2
- name: harness-archive
3
- description: 归档所有变更产出(计划/测试报告/审查/SQL/API文档)到
4
- .harness/archive/,含归档元数据和可视化最终总结。使用场景:归档、完成归档、收尾、打包产出物
5
- ---
6
- <!-- generated by harness_deploy.py; core=560f9757ad576d78; overlay=none; agent=codex; do not edit -->
7
- # harness-archive — 变更归档
8
-
9
- ## Purpose
10
-
11
- 将 `.harness/changes/<change-name>/` 的所有产出移入 `.harness/archive/YYYY-MM-DD-<change-name>/`,生成归档元数据和可视化最终报告,释放工作区。
12
-
13
- ## When to Use
14
-
15
- 使用场景:
16
-
17
- - 用户说"归档 / 完成归档 / 收尾 / 打包产出物"。
18
- - submit 已推送、test/review 报告已就绪(或已明确标记跳过/未运行),需要封存变更产出。
19
- - 变更闭环最后一站,归档后从工作区移除 `.harness/changes/<change-name>/`。
20
-
21
- 跳过场景:
22
-
23
- - 变更尚未 submit 推送(归档前 commit 必须已 push)。
24
- - 仍存在未结清的 test/review 验证(除非已明确标记 CONDITIONAL_OK)。
25
-
26
- 自动调用边界:
27
-
28
- - 归档涉及移动/删除原变更目录,支持被其他 skill 调用,但调用前必须确保前置条件已满足;也支持用户显式 `/harness-archive` 调用。
29
- - 归档前确认是强制阻断检查点,用户拒绝 → 终止流程,不执行任何操作。
30
-
31
- ## 前置条件
32
-
33
- - commit 已 push(`git log @{u}..HEAD` 输出为空)
34
- - **最终 hash 来源**:worktree 模式(`meta/worktree.json` requested=true)下读 ledger 的 `mergeFinalHash`(由 `/harness-submit` 合并段写入);主目录模式读 submit 的 `final pushed hash`。当前 `git rev-parse HEAD` 须一致
35
- - test 报告存在或标记"跳过";review 报告存在或标记"未运行 review"(review 不阻塞归档)
36
-
37
- ## Inputs
38
-
39
- - `$ARGUMENTS`:变更名(可选,留空时 Glob `.harness/changes/*/plans/*-plan.md` 自动检测,排除 `.harness/archive/`)
40
- - 相关文件:`.harness/changes/<change-name>/logs/execution-log.md`、`.harness/changes/<change-name>/events.ndjson`、`evidence/verification-ledger.json`、各阶段 reports/
41
-
42
- ## 统一读取协议
43
-
44
- 1. **`.harness/changes/<change-name>/` 是唯一真相源** — 所有输入从该目录读取,产物写入对应子目录
45
- 2. **change-name 优先从 frontmatter 读取** — `spec/*-design.md`、`plans/*-plan.md` 的 YAML `change-name`
46
- 3. **frontmatter 缺失时兼容旧格式** — 从路径推断,标记 `🟡 legacy-plan`,不失败
47
- 4. **spec** — 设计真相源:`spec/<change>-design.md`
48
- 5. **plan** — 任务真相源:`plans/<change>-plan.md`
49
- 6. **implementation-detail** — 自适应执行参考;legacy 缺失 🟡WARN,不阻断
50
- 7. **test-scenarios** — 测试真相源:`plans/<change>-test-scenarios.md`
51
- 8. **禁止读取 `docs/superpowers/` 作为正式输入** — 旧草稿仅人工线索
52
-
53
- 状态目录分层:新路径优先,旧路径兼容 → [[../protocols/state-layout-protocol.md|state-layout-protocol]]
54
-
55
- ## Workflow
56
-
57
- ### Phase 0:读取规则和上下文
58
-
59
- 1. 读取本文件。
60
- 2. 按需读取 `reference.md`(归档流程、manifest、summary-data、final-summary 渲染、目录结构与最终状态规则)。
61
- 3. 读取共用约束:
62
- - `../protocols/archive-report-protocol.md`
63
- - `../protocols/state-layout-protocol.md`
64
- - `../protocols/powershell-protocol.md`
65
- - `../protocols/sensitive-info-protocol.md`
66
- - `../protocols/evidence-based-reporting-protocol.md`
67
- - `../protocols/report-pipeline-protocol.md`
68
- 4. 解析 `$ARGUMENTS`:留空时 Glob 自动检测未归档变更,排除 `.harness/archive/`。
69
-
70
- ### Phase 1:确认归档对象(扫描未归档变更)
71
-
72
- 用 Glob 搜索 `.harness/changes/*/plans/*-plan.md`(排除 `.harness/archive/`),展示变更概要。
73
-
74
- - **Read `checklist.md`** — 归档前检查项
75
- - 发现多个未归档变更 → 让用户选择或终止
76
-
77
- ### Phase 2:确认归档 ⚠️ 强制阻断
78
-
79
- AskUserQuestion 让用户确认归档操作。**用户拒绝 → 终止流程,不执行任何操作。**
80
-
81
- - **Read `reference.md`** — 确认对话框的内容格式
82
-
83
- ### Phase 3:执行归档
84
-
85
- 1. append `phase.start` 事件。
86
- 2. 运行 `python <skills-root>/scripts/harness_archive.py status --change-dir ".harness/changes/<change-name>" --json` 前置检查。
87
- 3. 运行 `python <skills-root>/scripts/harness_archive.py finalize --change-dir ".harness/changes/<change-name>" --archive-root ".harness/archive" --json`;读 JSON(移动、collect、render、validate、manifest 比对)。**finalize 不再同步执行知识维护**(§8.2):它写一个 `pending` maintenance-outbox 项即返回,`knowledgeMaintenance=QUEUED`;写 outbox 失败时 `NOT_QUEUED`(warning,不回滚 archive,总状态 CONDITIONAL)。后续由 `harness-sync` / `harness_knowledge.py maintain` 异步推进 outbox。
88
- 4. 模型补写 `meta/archive-meta.md` 的维护者结论 / knownRisks / manualActions(脚本占位字段)。
89
- 5. append `phase.end` 事件。**finalize 失败或 validate 报错时不删除原目录**。
90
-
91
- - **Read `reference.md`** — finalize 输出字段、archive-meta 格式、CONDITIONAL_OK 规则
92
- - **Read `templates/summary-data-template.json`** — summary-data 数据结构
93
- - **Read `templates/render-summary.mjs`** — final-summary 渲染脚本(finalize 内嵌调用)
94
-
95
- ### Phase 4:验证与提示
96
-
97
- 验证归档目录完整 → 提示用户归档完成。
98
-
99
- - **Read `checklist.md`** — 归档后验证项
100
-
101
- ## P0 执行可信度规则
102
-
103
- - 命令结果不得靠猜测;普通 Bash 被拒 → 立即改用等价 PowerShell 重试一次
104
- - 仅 PowerShell 成功且有明确证据(构建/git/测试输出、文件存在、exit 0)时可标 ✅OK;否则 ❌FAIL 或 🟡WARN
105
- - 禁止把 hook 拒绝、静态验证、无输出、用户跳过说成成功 → 详见 [[../protocols/powershell-protocol.md|powershell-protocol]]、[[../protocols/evidence-based-reporting-protocol.md|evidence-based-reporting-protocol]]
106
-
107
- ## 关键规则(硬门禁速查)
108
-
109
- > 每条规则的详细判定、模板见 `reference.md` 对应章节;归档报告协议见 `../protocols/archive-report-protocol.md`,Shell 执行安全见 `../protocols/powershell-protocol.md`,敏感信息见 `../protocols/sensitive-info-protocol.md`,证据化报告见 `../protocols/evidence-based-reporting-protocol.md`,状态目录见 `../protocols/state-layout-protocol.md`。
110
-
111
- ### 一、同一时间最多 1 个未归档变更
112
-
113
- 扫描排除 `.harness/archive/`;多个未归档变更 → 让用户选择或终止,不批量归档。
114
-
115
- ### 二、归档前确认是强制阻断检查点
116
-
117
- AskUserQuestion 确认;用户拒绝 → 终止,不执行任何操作。
118
-
119
- ### 三、文件移动只用内置工具或 PowerShell
120
-
121
- 移动用 Read+Write+验证 或 PowerShell;**禁止 Bash mv/cp/rm**。移动失败时不删除原目录,报错退出让用户手动处理。
122
-
123
- ### 四、数据化归档门禁(先数据后渲染)
124
-
125
- 必须通过 `harness_archive.py finalize` 生成 `reports/final/summary-data.json` 与 `final-summary.html` 并完成 validate;**禁止模型临场写 500+ 行 HTML**。统计数字只能来自 summary-data、events、ledger 或 manifest。详见 `../protocols/report-pipeline-protocol.md`、`../protocols/archive-report-protocol.md`、`reference.md`。
126
-
127
- ### 五、manifest/checksum 必须存在
128
-
129
- 归档前后生成 `evidence/archive-manifest-before.json` / `archive-manifest-after.json`(path/size/sha256),before/after 不一致时**不得删除原目录**。复杂 PowerShell 写入 `scripts/*.ps1` 后 `-File` 执行,禁止内联 `$` / `$_` / `@{}`。详见 `reference.md`。
130
-
131
- ### 六、归档前确认四项(缺一不可)
132
-
133
- - commit 已 push(`git log @{u}..HEAD` 输出为空)
134
- - **final hash 来源**:worktree 模式(requested=true)下读 ledger `mergeFinalHash`(submit 合并段);否则读 submit 日志 `final pushed hash`。当前 HEAD 须一致
135
- - test 报告存在,或标记"跳过"/"未运行测试"
136
- - review 报告:存在则作 📝ADVISORY 归档材料;不存在标记"📝ADVISORY:未运行 review"(review 不阻塞归档)
137
-
138
- ### 七、verification-ledger 汇总状态
139
-
140
- 归档前读 `evidence/verification-ledger.json`,提取各阶段 status、postTestClassification、复用关系,供 final-summary 真实展示状态演进。若 ledger 有 `postTestClassification`,final-summary 必须展示该分类及对应的复用/重测决策。
141
-
142
- ### 八、final-summary 不得伪造且必须展示状态演进
143
-
144
- 无测试报告 → 显示"未运行测试 / 静态验证",不得 100% 通过率;无 review → "📝ADVISORY:未运行 review"。状态用 ✅OK / 🟡WARN / 🔁REUSED / 🔁RETESTED / 📝ADVISORY / 🧹NON_BEHAVIORAL_CLEANUP,复用前一阶段结果显示 🔁REUSED,**不得伪装成重新执行,不得无脑全绿**。
145
-
146
- **final-summary 必须产出**:Node 渲染器不可用/超时/exit 非 0/未产出文件时,`harness_archive.py` 自动用内置 Python fallback 渲染(含 changeName/finalStatus/commands/verification/changedFiles/archiveManifest/knownRisks/manualActions/maintenanceNotes,USER_SKIPPED/BLOCKED_BY_DBA/失败状态可见,全部 HTML 转义)。Node 与 Python fallback **都失败**时,finalize 立即恢复原 change 目录并 exit 非 0,**绝不归档一个没有 final-summary.html 的变更**。
147
-
148
- ### 九、CONDITIONAL_OK 最终状态
149
-
150
- API 测试 `USER_SKIPPED` 或 DB 兼容 `BLOCKED_BY_DBA` 时,最终状态必须是 `CONDITIONAL_OK`,不能显示纯 `OK`。
151
-
152
- ### 十、未提交测试文件归档
153
-
154
- 未提交但用于验证的测试文件必须归档到 `backups/uncommitted-tests/` 并在 final-summary 中展示。
155
-
156
- ### 十一、phase.start 事件前置
157
-
158
- 阶段 0 之前必须先 append `phase.start` 事件(`harness_events.py append`);不得等归档完成才补。归档后 events.ndjson 与自动渲染的 execution-log.md 一起移入 archive。
159
-
160
- ### 十二、Shell 安全 / 敏感信息 / 证据化报告
161
-
162
- git 命令通过 `powershell.exe -Command "..."` 执行;archive-meta.md 和 final-summary.html 不得含明文 token/密码/密钥;归档报告必须区分 ✅真实成功 / 🟡跳过·静态验证 / ❌失败。
163
-
164
- ## Output Format
165
-
166
- > 归档元数据格式见 `reference.md` 的 archive-meta 模板;最终报告由 `templates/summary-data-template.json` 数据结构 + `templates/render-summary.mjs` 固定脚本渲染。
167
-
168
- 产出文件:
169
-
170
- - `.harness/archive/YYYY-MM-DD-<change-name>/meta/archive-meta.md` — 归档元数据
171
- - `.harness/archive/YYYY-MM-DD-<change-name>/events.ndjson` — 结构化事件层(新流程推荐;旧 archive 可缺失)
172
- - `.harness/archive/YYYY-MM-DD-<change-name>/reports/final/summary-data.json` — 最终报告数据源
173
- - `.harness/archive/YYYY-MM-DD-<change-name>/reports/final/final-summary.html` — 由 `render-summary.mjs` 渲染(Node 不可用或失败时由 `harness_archive.py` 内置 Python fallback 渲染);**始终必须存在**,否则 finalize 恢复原 change 目录并 exit 非 0
174
- - `.harness/archive/YYYY-MM-DD-<change-name>/evidence/archive-manifest-before.json` / `archive-manifest-after.json` — 归档前后 manifest/checksum
175
-
176
- ## 渐进披露
177
-
178
- - **Read `checklist.md`** 仅在 Phase 1 归档前检查和 Phase 4 验证时 — 含归档前检查项和归档后验证项
179
- - **Read `reference.md`** 仅在 Phase 0/2/3 时 — 含归档流程、archive-meta 格式、summary-data 字段说明、final-summary 渲染规则、目录结构与最终状态规则
180
- - **Read `reference.md`** 仅在 Phase 3 finalize 时 — summary-data、final-summary 校验与 archive-meta 补写
181
- - **Read `templates/summary-data-template.json`** 仅在 Phase 3 生成 `summary-data.json` 时 — 含最终报告数据结构
182
- - **Read `templates/render-summary.mjs`** 仅在 Phase 3 渲染 `final-summary.html` 时 — 固定 HTML 渲染脚本
183
-
184
- ## 交互白名单
185
-
186
- **仅允许**归档确认(Phase 2 AskUserQuestion);拒绝 → 终止,不执行任何移动。
187
-
188
- ## 执行日志
189
-
190
- `events.ndjson` 为唯一事实源(schema_version 2,`note` 承载人类可读摘要);`logs/execution-log.md` 由 `harness_events.py` 渲染,**禁止手工 Edit**。结构 → [[../protocols/report-pipeline-protocol.md|report-pipeline-protocol]]
191
-
192
- ```powershell
193
- python <skills-root>/scripts/harness_events.py append --change-dir ".harness/changes/<change-name>" --phase <phase> --type phase.start --note "<触发指令>"
194
- ```
195
-
196
- > **脚本接线**:`harness_events.py append`;`harness_archive.py finalize`;`harness_preflight.py check`;`harness_ledger.py can-reuse`;`harness_service.py ensure/stop`(须 `--files`/`serviceStart.inputFiles`)。JSON 输出按 D13 护栏解读。
197
-
198
- > **Task 4 §6.1 写入契约**:普通 `append` = 加锁 -> 追加一行 -> fsync -> 解锁,**不 load 历史、不渲染**(O(1),跨进程锁 `events.ndjson.lock`,UUID 用完整 `uuid4().hex` 无需去重扫描)。仅 `--type phase.end` append 在追加成功后渲染一次 `execution-log.md`;显式 `harness_events.py render` 随时从完整 events 重建;`harness_archive.py finalize` 在 collect 前强制 render 一次。高频 command append 期间 log 可能滞后,phase 边界保持最新。
@@ -1,52 +0,0 @@
1
- ---
2
- description: harness-archive 的归档前检查项和归档后验证项。仅在 Phase 1 检查和 Phase 4 验证时读取。
3
- ---
4
-
5
- # harness-archive 检查清单
6
-
7
- ## P0 数据化归档门禁
8
-
9
- 归档遵循 `../protocols/archive-report-protocol.md`,门禁要点见 SKILL.md `## 关键规则` 四/五/九:
10
-
11
- - 先写 `reports/final/summary-data.json`,再渲染 `reports/final/final-summary.html`。
12
- - 归档前生成 `evidence/archive-manifest-before.json`,移动后生成 `archive-manifest-after.json`。
13
- - final-summary 的统计只能来自 summary-data 或 manifest。
14
- - before/after checksum 不一致时,不得删除原目录。
15
- - 默认渲染器 `templates/render-summary.mjs`(finalize 内嵌调用)。
16
-
17
- ## 归档前检查(Phase 1)
18
-
19
- > ⚠️ **phase.start 前置**:在归档前检查的第一项前,必须先 append `phase.start` 事件(见 SKILL.md `## 执行日志`)。不得等归档完成才补。
20
-
21
- - [ ] 已 append `phase.start` 事件(`harness_events.py append --change-dir ".harness/changes/<change-name>"`)
22
- - [ ] 只有一个未归档变更目录(多个时终止或让用户选择)
23
- - [ ] 变更目录下有 plans/ 子目录(至少有计划文件)
24
- - [ ] `logs/execution-log.md` 存在(需要追加归档记录;新路径缺失时兼容根目录 `execution-log.md`)
25
- - [ ] 准备生成 `archive-manifest-before.json`(path/size/sha256)
26
- - [ ] 准备生成 `summary-data.json`(业务目标、阶段状态、验证、产物、维护者结论)
27
- - [ ] git status 无未提交的重要变更(归档应对应已提交的代码)
28
- - [ ] **commit 已 push**:`powershell.exe -Command "git -C '<项目路径>' log @{u}..HEAD --oneline"` 输出为空(无未推送提交)
29
- - [ ] **最终 hash 一致**:worktree 模式(requested=true)下读 `evidence/verification-ledger.json` 的 `mergeFinalHash`(submit 合并段写入),否则从 events/ledger 读取 `final pushed hash`,与当前 `git rev-parse HEAD` 比对
30
- - [ ] **test/review 报告状态确认**:
31
- - ✅ `.harness/changes/<change-name>/tests/test-report-*.md` 存在 → 归档正常
32
- - 🟡 不存在 → 必须在 archive-meta.md 和 final-summary.html 中标记"跳过测试"或"未运行测试",不得伪造通过率
33
- - ✅ `.harness/changes/<change-name>/reports/review/review-report-*.md` 存在(旧路径 `reviews/review-report-*.md` 兼容回退)→ 作为 📝ADVISORY 归档材料
34
- - 📝 `.harness/changes/<change-name>/reports/review/fixback-*.md` 存在 → 随 review 报告一并归档;默认 advisory,除非 `strict-review-gate=true`
35
- - 🟡 不存在但 `logs/execution-log.md` 有 harness-review 小节 → **review 已运行但未落盘**(harness-review `context:fork` 交接缝常见,见 `agent/case-candidates/2026-06-30-harness-review-forked-not-persisting-report.md`):从 execution-log/会话补落盘到 `reports/review/review-report-YYYYMMDD-HHmm.md` 再归档,**不得误标"未运行 review"**(实际跑过)
36
- - 🟡 不存在且 execution-log 无 review 小节 → 在 archive-meta.md 和 final-summary.html 中标记"📝ADVISORY:未运行 review"
37
-
38
- ## 归档后验证(Phase 4)
39
-
40
- - [ ] `.harness/archive/YYYY-MM-DD-<change-name>/` 目录存在(通过 Glob 实际扫描确认)
41
- - [ ] 所有子目录(plans/, tests/, reviews/, sqls/)已完整移入(通过 Glob 实际扫描确认,不仅看预期路径)
42
- - [ ] before/after manifest 校验通过(排除 `logs/execution-log.md`——归档追加结束记录预期 sha256 变化;其他 moved 文件 sha256 必须一致,missing/mismatch=0)
43
- - [ ] archive-meta.md 已创建,frontmatter 字段完整
44
- - [ ] summary-data.json 已生成,且为合法 JSON
45
- - [ ] final-summary.html 已由 `templates/render-summary.mjs` 渲染生成
46
- - [ ] **final-summary.html 真实性检查**:
47
- - 无测试报告时,`summary-data.json.verification.unitTests.status` / `summary-data.json.verification.apiTests.status` 必须标记为 `NOT_RUN`、`USER_SKIPPED`、`BLOCKED` 或 `STATIC_ONLY`,不得显示 100%
48
- - 无 review 报告时,`summary-data.json.reviewSummary.status` 必须标记为 `ADVISORY_NOT_RUN`,不得显示 100%
49
- - 跳过、复用、人工确认的部分必须明确标记,不伪装成 ✅
50
- - final-summary.html 中不得残留 `{{...}}` 占位符
51
- - [ ] 原目录 `.harness/changes/<change-name>/` 已删除(仅在前面所有验证通过后)
52
- - [ ] .harness/ 下无残留未归档变更目录
@@ -1,103 +0,0 @@
1
- ---
2
- description: harness-archive 的归档流程、manifest、summary-data、final-summary 渲染、目录结构与最终状态规则。
3
- ---
4
-
5
- # harness-archive 参考
6
-
7
- ## 归档流程(对齐 SKILL.md Workflow)
8
-
9
- - **Phase 0 读取上下文**:读 SKILL.md / 本文件 / 共用协议(`../protocols/archive-report-protocol.md`、`../protocols/report-pipeline-protocol.md`、`../protocols/state-layout-protocol.md`、`../protocols/powershell-protocol.md`、`../protocols/sensitive-info-protocol.md`、`../protocols/evidence-based-reporting-protocol.md`)/ 解析 `$ARGUMENTS`。
10
- - **Phase 1 确认归档对象**:Glob `.harness/changes/*/plans/*-plan.md`(排除 archive),展示概要;多变更让用户选择或终止。
11
- - **Phase 2 确认归档(强制阻断)**:AskUserQuestion 确认,拒绝即终止。
12
- - **Phase 3 执行归档**:
13
- 1. append `phase.start` 事件(`harness_events.py append`)。
14
- 2. 运行 `python <skills-root>/scripts/harness_archive.py status --change-dir ... --json` 做前置检查。
15
- 3. 运行 `python <skills-root>/scripts/harness_archive.py finalize --change-dir ... --archive-root ".harness/archive" --json`;读 JSON 结果。
16
- 4. 模型补写 `meta/archive-meta.md` 的 `maintenanceNotes` / `knownRisks` / `manualActions`(脚本留空占位)。
17
- 5. append `phase.end` 事件。**finalize 报错或 validate 失败时不删除原 changes 目录**。
18
- - **Phase 4 验证与提示**:见 `checklist.md` 归档后验证项。
19
-
20
- ## manifest 生成
21
-
22
- manifest 每项包含:
23
-
24
- ```json
25
- {"path":"...","size":123,"sha256":"...","lastModified":"..."}
26
- ```
27
-
28
- 建议使用固定脚本,禁止内联复杂 PowerShell(包含 `$`、`$_`、`@{}`、script block、管道 JSON 输出):
29
-
30
- ```powershell
31
- powershell.exe -NoProfile -ExecutionPolicy Bypass -File "harness-skills/harness-archive/scripts/gen-manifest.ps1" -RootPath ".harness/changes/<change>" -OutputPath ".harness/changes/<change>/evidence/archive-manifest-before.json"
32
- ```
33
-
34
- 移动到 archive 目录后,再生成 after manifest:
35
-
36
- ```powershell
37
- powershell.exe -NoProfile -ExecutionPolicy Bypass -File "harness-skills/harness-archive/scripts/gen-manifest.ps1" -RootPath ".harness/archive/<date-change>" -OutputPath ".harness/archive/<date-change>/evidence/archive-manifest-after.json"
38
- ```
39
-
40
- **校验 before/after 时排除 execution-log**(通用):`logs/execution-log.md` 在归档过程会追加结束记录(Phase 4),before(移动前含开始记录)与 after(含开始+结束记录)sha256 必然不同——这是预期追加,非文件损坏。校验脚本需跳过 `logs/execution-log.md`,其他 moved 文件 sha256 必须一致;若其他文件 missing/mismatch,才表示移动损坏,不得删除原目录。
41
-
42
- ## summary-data.json 与 harness_archive.py
43
-
44
- 默认由 `harness_archive.py finalize`(或 `replay`)生成/校验 `reports/final/summary-data.json`;CLI 不可用时按 `../protocols/report-pipeline-protocol.md` 与 `templates/summary-data-template.json`(schemaVersion 2.2)生成等价数据。必须保留原 final report 维度。必须包含:
45
-
46
- - `businessGoal`:本次变更为了做什么;
47
- - `stageStatus`:plan/run/test/review/submit/archive;
48
- - `diffStat`:filesChanged/insertions/deletions/range —— 来自 `git diff --numstat` + `git diff --stat <base>..<head>`,不得手写;
49
- - `durations`:totalMinutes + stages[{stage,skill,startedAt,endedAt,minutes,result}] —— 从 `logs/execution-log.md` 各 `[N] harness-<skill>` 小节的 `开始`/`结束`/`耗时` 解析;
50
- - `skillCalls`:每个 skill 的调用次数(含重入)+ 结果 —— 从 execution-log 统计;
51
- - `verification`:单元/API/覆盖展示,含 passRate —— 来自 `evidence/verification-ledger.json`;
52
- - `changedFiles`:path/summary/insertions/deletions —— 来自 `git diff --numstat <base>..<head>`;
53
- - `reviewSummary`:red/yellow + redFixed/redConfirmed/yellowFixed/yellowDeferred 修复进度;
54
- - `maintenanceNotes`:给后续维护者看的结论;
55
- - `knownRisks`:剩余风险或人工确认项。
56
-
57
- 报告必须突出业务目标和维护者结论。所有统计数字只能来自 events、summary-data、ledger 或 manifest,不得手写另一套。历史 archive 没有 `events.ndjson` 时,允许从 ledger/log/manifest 回放,并在 `reportPipeline.sources` 中记录来源。
58
-
59
- ## final-summary 渲染
60
-
61
- 默认使用 Node.js 渲染器:
62
-
63
- ```powershell
64
- powershell.exe -NoProfile -Command "& '<node-path>' 'harness-skills/harness-archive/templates/render-summary.mjs' --summary '.harness/archive/<date-change>/reports/final/summary-data.json' --out '.harness/archive/<date-change>/reports/final/final-summary.html'"
65
- ```
66
-
67
- 如模板脚本位于 skill 目录,则先复制到 archive 目录或直接引用 skill 路径。
68
-
69
- 禁止模型临场手写大段 HTML。确需临时修 HTML,只能修模板,不得让统计数字脱离 `summary-data.json`。
70
-
71
- 渲染后必须执行:
72
-
73
- ```powershell
74
- powershell.exe -NoProfile -Command "npx hunter-harness report validate --change-id '<date-change>' --json"
75
- ```
76
-
77
- 存在 validate error 时,不得删除原 `.harness/changes/<change>` 目录。
78
-
79
- ## archive-meta.md 模板
80
-
81
- ```markdown
82
- # Archive Meta — <change-name>
83
-
84
- - archivedAt: YYYY-MM-DD HH:mm
85
- - finalCommit: <hash>
86
- - sourceDir: .harness/changes/<change-name>
87
- - archiveDir: .harness/archive/YYYY-MM-DD-<change-name>
88
- - movedFiles: <from manifest>
89
- - generatedFiles: archive-meta.md, summary-data.json, final-summary.html, manifests
90
- - totalArchiveFiles: <from after manifest>
91
- ```
92
-
93
- ## 目录结构与最终状态规则
94
-
95
- - 默认渲染器:`templates/render-summary.mjs`,输入 `reports/final/summary-data.json`,输出 `reports/final/final-summary.html`。
96
- - `render-summary.mjs` 是默认 UTF-8 渲染器;finalize 内嵌调用,不得由模型临场写 HTML。
97
- - 新路径优先:`meta/`、`logs/`、`evidence/`、`reports/final/`、`scripts/`、`backups/uncommitted-tests/`。旧路径只做读取兼容,不再写大量根目录文件。
98
- - 当 `summary-data.json.verification.apiTests.status=USER_SKIPPED` 或 `verification.dbCompatibility.status=BLOCKED_BY_DBA`,最终状态必须是 `CONDITIONAL_OK`。
99
- - 复杂 PowerShell 命令写入 `scripts/*.ps1` 后 `-File` 执行,禁止内联 `$` / `$_`。
100
-
101
- ## 执行日志记录
102
-
103
- 归档只向 `events.ndjson` 追加事件(schema_version 2);`logs/execution-log.md` 由 `harness_events.py append` 自动渲染,禁止手工 Edit。事件类型与脚本用法见 SKILL.md `## 执行日志` 与 `../protocols/report-pipeline-protocol.md`。
@@ -1,31 +0,0 @@
1
- param(
2
- [Parameter(Mandatory=$true)][string]$RootPath,
3
- [Parameter(Mandatory=$true)][string]$OutputPath
4
- )
5
-
6
- $ErrorActionPreference = 'Stop'
7
- $root = (Resolve-Path $RootPath).Path
8
- # 排除 OutputPath 自身:重新生成 manifest 时旧 manifest 文件会被扫到,导致递归(新 manifest 含旧 manifest 的 sha256,fileCount 虚高 +1)。
9
- # OutputPath 不存在时(首次生成)$excludePath=$null,Where-Object 不过滤。
10
- $excludePath = $null
11
- if (Test-Path $OutputPath) {
12
- $excludePath = (Resolve-Path $OutputPath).Path
13
- }
14
- $items = Get-ChildItem -Path $root -File -Recurse | Where-Object { $excludePath -eq $null -or $_.FullName -ne $excludePath } | Sort-Object FullName | ForEach-Object {
15
- $relative = $_.FullName.Substring($root.Length).TrimStart('\','/') -replace '\\','/'
16
- $hash = Get-FileHash -Path $_.FullName -Algorithm SHA256
17
- [PSCustomObject]@{
18
- path = $relative
19
- sizeBytes = $_.Length
20
- sha256 = $hash.Hash.ToLowerInvariant()
21
- }
22
- }
23
- $result = [PSCustomObject]@{
24
- root = $root
25
- generatedAt = (Get-Date).ToString('s')
26
- fileCount = @($items).Count
27
- totalBytes = (@($items) | Measure-Object -Property sizeBytes -Sum).Sum
28
- files = @($items)
29
- }
30
- $utf8NoBom = New-Object System.Text.UTF8Encoding($false)
31
- [System.IO.File]::WriteAllText((Resolve-Path (Split-Path $OutputPath -Parent)).Path + [System.IO.Path]::DirectorySeparatorChar + (Split-Path $OutputPath -Leaf), ($result | ConvertTo-Json -Depth 8), $utf8NoBom)
@@ -1,171 +0,0 @@
1
- #!/usr/bin/env node
2
- // render-summary.mjs
3
- // Deterministic UTF-8 renderer for harness archive final-summary.html.
4
- // Input: summary-data.json (schemaVersion 2.2). Output: final-summary.html.
5
- // Keeps UTF-8, avoids PowerShell string interpolation issues.
6
- // All numbers come from summary-data.json or manifest — never re-inferred here.
7
-
8
- import fs from 'node:fs';
9
- import path from 'node:path';
10
-
11
- const args = process.argv.slice(2);
12
- function getArg(name, fallback) {
13
- const i = args.indexOf(name);
14
- return i >= 0 && args[i + 1] ? args[i + 1] : fallback;
15
- }
16
-
17
- const summaryPath = getArg('--summary', args[0]);
18
- const outPath = getArg('--out', args[1] || 'final-summary.html');
19
- if (!summaryPath) {
20
- console.error('Usage: node render-summary.mjs --summary summary-data.json --out final-summary.html');
21
- process.exit(2);
22
- }
23
-
24
- const data = JSON.parse(fs.readFileSync(summaryPath, 'utf8'));
25
- const esc = (v) => String(v ?? '').replace(/[&<>"']/g, (c) => ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]));
26
- const arr = (v) => Array.isArray(v) ? v : [];
27
- const obj = (v) => v && typeof v === 'object' ? v : {};
28
- const num = (v) => Number(v) || 0;
29
- const badgeClass = (s) => {
30
- const v = String(s ?? '').toUpperCase();
31
- if (v.includes('FAIL') || v.includes('ERROR')) return 'bad';
32
- if (v.includes('WARN') || v.includes('BLOCK') || v.includes('SKIP') || v.includes('CONDITIONAL') || v.includes('PARTIAL') || v.includes('NOT_RUN')) return 'warn';
33
- if (v.includes('ADVISORY') || v.includes('REUSED')) return 'info';
34
- return 'ok';
35
- };
36
- const badge = (s) => `<span class="badge ${badgeClass(s)}">${esc(s || 'N/A')}</span>`;
37
-
38
- // pass-rate progress bar: parses "183/185" style strings
39
- const parseRate = (rate) => {
40
- if (!rate) return null;
41
- const m = String(rate).match(/(\d+)\s*\/\s*(\d+)/);
42
- return m ? { passed: +m[1], total: +m[2] } : null;
43
- };
44
- const rateBar = (rateStr, status) => {
45
- const r = parseRate(rateStr);
46
- if (!r || r.total <= 0) return `<span class="muted">N/A</span>`;
47
- const pct = Math.round(r.passed / r.total * 100);
48
- const cls = badgeClass(status || (r.passed >= r.total ? 'OK' : 'WARN'));
49
- return `<div class="rate"><div class="bar-track"><div class="bar-fill ${cls}" style="width:${pct}%"></div></div><span class="muted small">${esc(rateStr)} · ${pct}%</span></div>`;
50
- };
51
-
52
- const stageRows = Object.entries(obj(data.stageStatus)).map(([k,v]) => `<tr><td>${esc(k)}</td><td>${badge(v)}</td></tr>`).join('\n') || `<tr><td colspan="2" class="muted">未记录阶段状态</td></tr>`;
53
-
54
- const verification = obj(data.verification);
55
- const unit = obj(verification.unitTests);
56
- const api = obj(verification.apiTests);
57
- const unitStatus = (num(unit.failures) + num(unit.errors)) > 0 ? 'WARN' : 'OK';
58
- const verificationRows = [
59
- ['Unit Tests', `${rateBar(unit.passRate, unitStatus)}<div class="muted small">${esc(unit.run ?? 0)} run · ${esc(unit.failures ?? 0)} fail · ${esc(unit.errors ?? 0)} err · ${esc(unit.skipped ?? 0)} skip · ${esc(unit.source || 'not recorded')}</div>`],
60
- ['API Tests', `${rateBar(api.passRate, api.status)}<div class="muted small">${esc(api.passed ?? 0)}/${esc(api.total ?? 0)} · ${esc(api.status || data.stageStatus?.test || 'N/A')}</div>`],
61
- ['DB Compat', badge(verification.dbCompatibility || 'N/A')],
62
- ['Coverage', esc(verification.coverageDisplay || 'N/A')],
63
- ['Overall', badge(data.finalStatus || data.overallStatus || 'N/A')]
64
- ].map(([a,b]) => `<tr><td>${a}</td><td>${b}</td></tr>`).join('\n');
65
-
66
- const diffStat = obj(data.diffStat);
67
- const changedRows = arr(data.changedFiles).map(f => `<tr><td><code>${esc(f.path || f.file || '')}</code></td><td>${esc(f.summary || f.change || '')}</td><td class="ins">+${esc(f.insertions ?? 0)}</td><td class="del">-${esc(f.deletions ?? 0)}</td></tr>`).join('\n') || `<tr><td colspan="4" class="muted">未记录变更文件</td></tr>`;
68
- const artifactList = arr(data.artifacts);
69
- const artifactRows = artifactList.map(a => `<tr><td>${esc(a.name || '')}</td><td><code>${esc(a.path || '')}</code></td><td>${esc(a.size || '')}</td><td><code>${esc(a.sha256 || '')}</code></td></tr>`).join('\n');
70
- const artifactCard = artifactList.length > 0 ? `<div class="card"><h2>📦 产物清单</h2><table><tr><th>名称</th><th>路径</th><th>大小</th><th>SHA-256</th></tr>${artifactRows}</table></div>` : '';
71
- const notes = arr(data.maintenanceNotes).map(n => `<li>${esc(n)}</li>`).join('\n') || `<li class="muted">无额外维护说明</li>`;
72
- const risks = arr(data.knownRisks).map(n => `<li>${esc(n)}</li>`).join('\n') || `<li class="muted">无已知遗留风险</li>`;
73
- const manual = arr(data.manualActions).map(n => `<li>${esc(n)}</li>`).join('\n') || `<li class="muted">无人工后续动作</li>`;
74
- const uncommittedList = arr(data.uncommittedTestEvidence);
75
- const uncommittedTests = uncommittedList.map(n => `<li>${esc(n)}</li>`).join('\n');
76
- const uncommittedCard = uncommittedList.length > 0 ? `<div class="card"><h2>🧪 未提交测试证据</h2><ul>${uncommittedTests}</ul></div>` : '';
77
- const review = obj(data.reviewSummary);
78
- const manifest = obj(data.archiveManifest);
79
- const timeline = arr(data.timeline).map(t => `<tr><td>${esc(t.stage || '')}</td><td>${badge(t.result || '')}</td><td>${esc(t.evidence || '')}</td></tr>`).join('\n');
80
-
81
- // durations + skillCalls (schema 2.1); fall back to timeline when absent
82
- const durations = obj(data.durations);
83
- const durStages = arr(durations.stages);
84
- const maxMin = durStages.reduce((m, s) => Math.max(m, num(s.minutes)), 0);
85
- const durRows = durStages.map(s => {
86
- const min = num(s.minutes);
87
- const pct = maxMin > 0 ? Math.round(min / maxMin * 100) : 0;
88
- return `<div class="dur-row"><div class="dur-label">${esc(s.skill || s.stage || '')} <span class="muted small">${esc(s.result || '')}</span></div><div class="dur-track"><div class="dur-bar" style="width:${pct}%"></div></div><div class="dur-min">${esc(min)}m</div></div>`;
89
- }).join('\n');
90
- const skillCallsHtml = arr(data.skillCalls).map(s => `${esc(s.skill)}×${esc(s.count)} ${badge(s.result)}`).join(' ') || '<span class="muted">未记录</span>';
91
-
92
- const durCard = durStages.length > 0
93
- ? `<div class="card"><h2>⏱️ 阶段耗时与 Skill 调用</h2>${durRows}<div class="muted small" style="margin-top:10px">Skill 调用:${skillCallsHtml}</div></div>`
94
- : (timeline ? `<div class="card"><h2>阶段时间线</h2><table><tr><th>阶段</th><th>结果</th><th>证据</th></tr>${timeline}</table></div>` : '');
95
-
96
- const totalLabel = durations.totalLabel || (durations.totalMinutes ? durations.totalMinutes + 'm' : 'N/A');
97
-
98
- const html = `<!doctype html>
99
- <html lang="zh-CN">
100
- <head>
101
- <meta charset="utf-8" />
102
- <meta name="viewport" content="width=device-width, initial-scale=1" />
103
- <title>变更最终报告 - ${esc(data.changeName || '')}</title>
104
- <style>
105
- :root { color-scheme: dark; }
106
- * { box-sizing: border-box; }
107
- body { font-family: -apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif; margin: 0; background: #0b1020; color: #e5e7eb; }
108
- main { max-width: 1120px; margin: 0 auto; padding: 32px; }
109
- .card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 20px; margin: 16px 0; box-shadow: 0 12px 40px rgba(0,0,0,.18); }
110
- h1 { margin: 0 0 8px; font-size: 30px; }
111
- h2 { margin: 0 0 12px; font-size: 20px; }
112
- h3 { margin: 18px 0 8px; }
113
- .muted { color: #94a3b8; }
114
- .small { font-size: 12px; }
115
- table { width: 100%; border-collapse: collapse; table-layout: fixed; }
116
- th, td { border-bottom: 1px solid rgba(255,255,255,.12); padding: 10px; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
117
- th { color: #cbd5e1; font-weight: 600; }
118
- tbody tr:nth-child(even) { background: rgba(255,255,255,.03); }
119
- tbody tr:hover { background: rgba(96,165,250,.08); }
120
- code { color: #bfdbfe; word-break: break-all; }
121
- .ins { color: #86efac; font-weight: 600; }
122
- .del { color: #fca5a5; font-weight: 600; }
123
- .badge { display: inline-block; padding: 4px 8px; border-radius: 999px; font-weight: 700; font-size: 12px; }
124
- .badge.ok { background: rgba(34,197,94,.16); color: #86efac; }
125
- .badge.warn { background: rgba(245,158,11,.18); color: #fcd34d; }
126
- .badge.bad { background: rgba(239,68,68,.18); color: #fca5a5; }
127
- .badge.info { background: rgba(59,130,246,.18); color: #93c5fd; }
128
- .grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 16px; }
129
- .kpi { font-size: 18px; font-weight: 700; margin-top: 4px; word-break: break-all; }
130
- .hero { border-color: rgba(96,165,250,.35); background: linear-gradient(135deg, rgba(59,130,246,.12), rgba(255,255,255,.04)); }
131
- ul { margin-top: 8px; }
132
- .bar-track { background: rgba(255,255,255,.08); border-radius: 999px; height: 8px; overflow: hidden; margin: 4px 0; }
133
- .bar-fill { height: 100%; border-radius: 999px; }
134
- .bar-fill.ok { background: #22c55e; }
135
- .bar-fill.warn { background: #f59e0b; }
136
- .bar-fill.bad { background: #ef4444; }
137
- .bar-fill.info { background: #3b82f6; }
138
- .rate { display: flex; flex-direction: column; gap: 2px; min-width: 160px; }
139
- .dur-row { display: grid; grid-template-columns: 150px 1fr 50px; align-items: center; gap: 10px; padding: 6px 0; }
140
- .dur-label { color: #93c5fd; font-size: 13px; }
141
- .dur-track { background: rgba(255,255,255,.06); border-radius: 4px; height: 18px; overflow: hidden; }
142
- .dur-bar { height: 100%; background: linear-gradient(90deg, #3b82f6, #60a5fa); border-radius: 4px; }
143
- .dur-min { color: #94a3b8; font-size: 13px; text-align: right; }
144
- @media (max-width: 640px) { main { padding: 16px; } .grid { grid-template-columns: 1fr; } .dur-row { grid-template-columns: 100px 1fr 40px; } }
145
- </style>
146
- </head>
147
- <body><main>
148
- <div class="card hero">
149
- <h1>变更最终报告:${esc(data.changeName || '')}</h1>
150
- <p class="muted">${esc(data.businessGoal || '未记录业务目标')}</p>
151
- </div>
152
- <div class="grid">
153
- <div class="card"><div class="muted">🎯 最终状态</div><div class="kpi">${badge(data.finalStatus || data.overallStatus || 'N/A')}</div></div>
154
- <div class="card"><div class="muted">🔒 Final Commit</div><div class="kpi"><code>${esc(data.finalCommit || 'N/A')}</code></div><div class="muted small">${esc(data.finalCommitBranch || '')}</div></div>
155
- <div class="card"><div class="muted">📊 代码变更</div><div class="kpi">${esc(diffStat.filesChanged ?? 'N/A')} 文件</div><div class="muted small"><span class="ins">+${esc(diffStat.insertions ?? 0)}</span> <span class="del">-${esc(diffStat.deletions ?? 0)}</span></div></div>
156
- <div class="card"><div class="muted">⏱️ 总耗时</div><div class="kpi">${esc(totalLabel)}</div><div class="muted small">${esc(durStages.length)} 个阶段</div></div>
157
- <div class="card"><div class="muted">📝 Review</div><div class="kpi">${esc(review.status || 'N/A')}</div><div class="muted small">RED ${esc(review.red ?? 0)}(修${esc(review.redFixed ?? 0)}/确${esc(review.redConfirmed ?? 0)}) · YEL ${esc(review.yellow ?? 0)}(修${esc(review.yellowFixed ?? 0)}/留${esc(review.yellowDeferred ?? 0)})</div></div>
158
- <div class="card"><div class="muted">📦 Archive</div><div class="kpi">${esc(manifest.totalArchiveFiles ?? 'N/A')} 文件</div><div class="muted small">${esc(manifest.checksumStatus || 'N/A')}</div></div>
159
- </div>
160
- <div class="card"><h2>📋 阶段状态</h2><table><tr><th>阶段</th><th>状态</th></tr>${stageRows}</table></div>
161
- ${durCard}
162
- <div class="card"><h2>🛡️ 验证明细</h2><table><tr><th>类型</th><th>结果</th></tr>${verificationRows}</table></div>
163
- <div class="card"><h2>📁 变更文件</h2><table><tr><th>文件</th><th>说明</th><th>+</th><th>-</th></tr>${changedRows}</table></div>
164
- ${artifactCard}
165
- ${uncommittedCard}
166
- <div class="card"><h2>👨‍🔧 给后续维护者</h2><ul>${notes}</ul></div>
167
- <div class="card"><h2>⚠️ 已知风险 / 人工确认项</h2><ul>${risks}</ul><h3>人工后续动作</h3><ul>${manual}</ul></div>
168
- </main></body></html>`;
169
-
170
- fs.mkdirSync(path.dirname(outPath), { recursive: true });
171
- fs.writeFileSync(outPath, html, 'utf8');