@cyanautomation/kaseki-agent 1.4.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 (459) hide show
  1. package/.dockerignore +54 -0
  2. package/.eslintignore +11 -0
  3. package/.eslintrc.json +95 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +53 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +53 -0
  6. package/.github/ISSUE_TEMPLATE/security.md +51 -0
  7. package/.github/PULL_REQUEST_TEMPLATE/default.md +71 -0
  8. package/.github/dependabot.yml +38 -0
  9. package/.github/skills/dependency-cache-optimization/SKILL.md +526 -0
  10. package/.github/skills/docker-image-management/SKILL.md +532 -0
  11. package/.github/skills/frontend-design/SKILL.md +782 -0
  12. package/.github/skills/prompt-engineering/SKILL.md +360 -0
  13. package/.github/skills/quality-gate-config/SKILL.md +591 -0
  14. package/.github/skills/result-report-analysis/SKILL.md +576 -0
  15. package/.github/skills/test-automation/SKILL.md +593 -0
  16. package/.github/skills/workflow-diagnosis/SKILL.md +468 -0
  17. package/.github/workflows/build-docker-image.yml +453 -0
  18. package/.github/workflows/release.yml +68 -0
  19. package/.releaserc.json +135 -0
  20. package/CHANGELOG.md +117 -0
  21. package/CLAUDE.md +336 -0
  22. package/CONTRIBUTING.md +339 -0
  23. package/Dockerfile +217 -0
  24. package/README.md +1527 -0
  25. package/STYLE.md +521 -0
  26. package/add-js-extensions.d.ts +9 -0
  27. package/add-js-extensions.d.ts.map +1 -0
  28. package/add-js-extensions.js.map +1 -0
  29. package/dist/add-js-extensions.d.ts +9 -0
  30. package/dist/add-js-extensions.d.ts.map +1 -0
  31. package/dist/add-js-extensions.js +52 -0
  32. package/dist/add-js-extensions.js.map +1 -0
  33. package/dist/ansi-colors.d.ts +26 -0
  34. package/dist/ansi-colors.d.ts.map +1 -0
  35. package/dist/ansi-colors.js +51 -0
  36. package/dist/ansi-colors.js.map +1 -0
  37. package/dist/cli/BaseCommand.d.ts +18 -0
  38. package/dist/cli/BaseCommand.d.ts.map +1 -0
  39. package/dist/cli/BaseCommand.js +31 -0
  40. package/dist/cli/BaseCommand.js.map +1 -0
  41. package/dist/cli/KasekiCLI.d.ts +30 -0
  42. package/dist/cli/KasekiCLI.d.ts.map +1 -0
  43. package/dist/cli/KasekiCLI.js +134 -0
  44. package/dist/cli/KasekiCLI.js.map +1 -0
  45. package/dist/cli/commands/ConfigCommand.d.ts +13 -0
  46. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
  47. package/dist/cli/commands/ConfigCommand.js +131 -0
  48. package/dist/cli/commands/ConfigCommand.js.map +1 -0
  49. package/dist/cli/commands/DoctorCommand.d.ts +45 -0
  50. package/dist/cli/commands/DoctorCommand.d.ts.map +1 -0
  51. package/dist/cli/commands/DoctorCommand.js +309 -0
  52. package/dist/cli/commands/DoctorCommand.js.map +1 -0
  53. package/dist/cli/commands/ListCommand.d.ts +9 -0
  54. package/dist/cli/commands/ListCommand.d.ts.map +1 -0
  55. package/dist/cli/commands/ListCommand.js +81 -0
  56. package/dist/cli/commands/ListCommand.js.map +1 -0
  57. package/dist/cli/commands/ReportCommand.d.ts +9 -0
  58. package/dist/cli/commands/ReportCommand.d.ts.map +1 -0
  59. package/dist/cli/commands/ReportCommand.js +98 -0
  60. package/dist/cli/commands/ReportCommand.js.map +1 -0
  61. package/dist/cli/commands/RunCommand.d.ts +13 -0
  62. package/dist/cli/commands/RunCommand.d.ts.map +1 -0
  63. package/dist/cli/commands/RunCommand.js +191 -0
  64. package/dist/cli/commands/RunCommand.js.map +1 -0
  65. package/dist/cli/commands/SecretsCommand.d.ts +9 -0
  66. package/dist/cli/commands/SecretsCommand.d.ts.map +1 -0
  67. package/dist/cli/commands/SecretsCommand.js +109 -0
  68. package/dist/cli/commands/SecretsCommand.js.map +1 -0
  69. package/dist/cli/commands/ServeCommand.d.ts +9 -0
  70. package/dist/cli/commands/ServeCommand.d.ts.map +1 -0
  71. package/dist/cli/commands/ServeCommand.js +50 -0
  72. package/dist/cli/commands/ServeCommand.js.map +1 -0
  73. package/dist/cli/commands/SetupCommand.d.ts +42 -0
  74. package/dist/cli/commands/SetupCommand.d.ts.map +1 -0
  75. package/dist/cli/commands/SetupCommand.js +249 -0
  76. package/dist/cli/commands/SetupCommand.js.map +1 -0
  77. package/dist/cli.d.ts +9 -0
  78. package/dist/cli.d.ts.map +1 -0
  79. package/dist/cli.js +130 -0
  80. package/dist/cli.js.map +1 -0
  81. package/dist/config/ConfigManager.d.ts +395 -0
  82. package/dist/config/ConfigManager.d.ts.map +1 -0
  83. package/dist/config/ConfigManager.js +446 -0
  84. package/dist/config/ConfigManager.js.map +1 -0
  85. package/dist/docker/DockerManager.d.ts +69 -0
  86. package/dist/docker/DockerManager.d.ts.map +1 -0
  87. package/dist/docker/DockerManager.js +266 -0
  88. package/dist/docker/DockerManager.js.map +1 -0
  89. package/dist/event-aggregator.d.ts +71 -0
  90. package/dist/event-aggregator.d.ts.map +1 -0
  91. package/dist/event-aggregator.js +95 -0
  92. package/dist/event-aggregator.js.map +1 -0
  93. package/dist/github-app-token.d.ts +16 -0
  94. package/dist/github-app-token.d.ts.map +1 -0
  95. package/dist/github-app-token.js +148 -0
  96. package/dist/github-app-token.js.map +1 -0
  97. package/dist/idempotency-store.d.ts +61 -0
  98. package/dist/idempotency-store.d.ts.map +1 -0
  99. package/dist/idempotency-store.js +321 -0
  100. package/dist/idempotency-store.js.map +1 -0
  101. package/dist/index.d.ts +25 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +31 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/instance/InstanceManager.d.ts +81 -0
  106. package/dist/instance/InstanceManager.d.ts.map +1 -0
  107. package/dist/instance/InstanceManager.js +220 -0
  108. package/dist/instance/InstanceManager.js.map +1 -0
  109. package/dist/instance-metadata-reader.d.ts +48 -0
  110. package/dist/instance-metadata-reader.d.ts.map +1 -0
  111. package/dist/instance-metadata-reader.js +94 -0
  112. package/dist/instance-metadata-reader.js.map +1 -0
  113. package/dist/instance-state-derivation.d.ts +42 -0
  114. package/dist/instance-state-derivation.d.ts.map +1 -0
  115. package/dist/instance-state-derivation.js +133 -0
  116. package/dist/instance-state-derivation.js.map +1 -0
  117. package/dist/job-scheduler.d.ts +124 -0
  118. package/dist/job-scheduler.d.ts.map +1 -0
  119. package/dist/job-scheduler.js +992 -0
  120. package/dist/job-scheduler.js.map +1 -0
  121. package/dist/kaseki-api-client.d.ts +89 -0
  122. package/dist/kaseki-api-client.d.ts.map +1 -0
  123. package/dist/kaseki-api-client.js +405 -0
  124. package/dist/kaseki-api-client.js.map +1 -0
  125. package/dist/kaseki-api-config.d.ts +34 -0
  126. package/dist/kaseki-api-config.d.ts.map +1 -0
  127. package/dist/kaseki-api-config.js +113 -0
  128. package/dist/kaseki-api-config.js.map +1 -0
  129. package/dist/kaseki-api-routes.d.ts +13 -0
  130. package/dist/kaseki-api-routes.d.ts.map +1 -0
  131. package/dist/kaseki-api-routes.js +559 -0
  132. package/dist/kaseki-api-routes.js.map +1 -0
  133. package/dist/kaseki-api-service-wrapper.d.ts +43 -0
  134. package/dist/kaseki-api-service-wrapper.d.ts.map +1 -0
  135. package/dist/kaseki-api-service-wrapper.js +150 -0
  136. package/dist/kaseki-api-service-wrapper.js.map +1 -0
  137. package/dist/kaseki-api-service.d.ts +16 -0
  138. package/dist/kaseki-api-service.d.ts.map +1 -0
  139. package/dist/kaseki-api-service.js +143 -0
  140. package/dist/kaseki-api-service.js.map +1 -0
  141. package/dist/kaseki-api-types.d.ts +440 -0
  142. package/dist/kaseki-api-types.d.ts.map +1 -0
  143. package/dist/kaseki-api-types.js +64 -0
  144. package/dist/kaseki-api-types.js.map +1 -0
  145. package/dist/kaseki-cli-lib.d.ts +219 -0
  146. package/dist/kaseki-cli-lib.d.ts.map +1 -0
  147. package/dist/kaseki-cli-lib.js +523 -0
  148. package/dist/kaseki-cli-lib.js.map +1 -0
  149. package/dist/kaseki-cli.d.ts +38 -0
  150. package/dist/kaseki-cli.d.ts.map +1 -0
  151. package/dist/kaseki-cli.js +559 -0
  152. package/dist/kaseki-cli.js.map +1 -0
  153. package/dist/kaseki-report.d.ts +3 -0
  154. package/dist/kaseki-report.d.ts.map +1 -0
  155. package/dist/kaseki-report.js +140 -0
  156. package/dist/kaseki-report.js.map +1 -0
  157. package/dist/lib/subprocess-helpers.d.ts +98 -0
  158. package/dist/lib/subprocess-helpers.d.ts.map +1 -0
  159. package/dist/lib/subprocess-helpers.js +136 -0
  160. package/dist/lib/subprocess-helpers.js.map +1 -0
  161. package/dist/logger.d.ts +39 -0
  162. package/dist/logger.d.ts.map +1 -0
  163. package/dist/logger.js +79 -0
  164. package/dist/logger.js.map +1 -0
  165. package/dist/metrics.d.ts +19 -0
  166. package/dist/metrics.d.ts.map +1 -0
  167. package/dist/metrics.js +59 -0
  168. package/dist/metrics.js.map +1 -0
  169. package/dist/middleware/job-lookup.d.ts +27 -0
  170. package/dist/middleware/job-lookup.d.ts.map +1 -0
  171. package/dist/middleware/job-lookup.js +28 -0
  172. package/dist/middleware/job-lookup.js.map +1 -0
  173. package/dist/pi-event-filter.d.ts +3 -0
  174. package/dist/pi-event-filter.d.ts.map +1 -0
  175. package/dist/pi-event-filter.js +126 -0
  176. package/dist/pi-event-filter.js.map +1 -0
  177. package/dist/pi-progress-stream.d.ts +3 -0
  178. package/dist/pi-progress-stream.d.ts.map +1 -0
  179. package/dist/pi-progress-stream.js +205 -0
  180. package/dist/pi-progress-stream.js.map +1 -0
  181. package/dist/pi-progress-summarizer.d.ts +61 -0
  182. package/dist/pi-progress-summarizer.d.ts.map +1 -0
  183. package/dist/pi-progress-summarizer.js +246 -0
  184. package/dist/pi-progress-summarizer.js.map +1 -0
  185. package/dist/pre-flight-validator.d.ts +72 -0
  186. package/dist/pre-flight-validator.d.ts.map +1 -0
  187. package/dist/pre-flight-validator.js +513 -0
  188. package/dist/pre-flight-validator.js.map +1 -0
  189. package/dist/progress-stream-utils.d.ts +3 -0
  190. package/dist/progress-stream-utils.d.ts.map +1 -0
  191. package/dist/progress-stream-utils.js +15 -0
  192. package/dist/progress-stream-utils.js.map +1 -0
  193. package/dist/result-cache.d.ts +52 -0
  194. package/dist/result-cache.d.ts.map +1 -0
  195. package/dist/result-cache.js +134 -0
  196. package/dist/result-cache.js.map +1 -0
  197. package/dist/routes/artifact-routes.d.ts +10 -0
  198. package/dist/routes/artifact-routes.d.ts.map +1 -0
  199. package/dist/routes/artifact-routes.js +126 -0
  200. package/dist/routes/artifact-routes.js.map +1 -0
  201. package/dist/routes/log-routes.d.ts +8 -0
  202. package/dist/routes/log-routes.d.ts.map +1 -0
  203. package/dist/routes/log-routes.js +345 -0
  204. package/dist/routes/log-routes.js.map +1 -0
  205. package/dist/routes/status-routes.d.ts +8 -0
  206. package/dist/routes/status-routes.d.ts.map +1 -0
  207. package/dist/routes/status-routes.js +82 -0
  208. package/dist/routes/status-routes.js.map +1 -0
  209. package/dist/routes/webhook-routes.d.ts +6 -0
  210. package/dist/routes/webhook-routes.d.ts.map +1 -0
  211. package/dist/routes/webhook-routes.js +86 -0
  212. package/dist/routes/webhook-routes.js.map +1 -0
  213. package/dist/run-artifact-metadata-cache.d.ts +42 -0
  214. package/dist/run-artifact-metadata-cache.d.ts.map +1 -0
  215. package/dist/run-artifact-metadata-cache.js +139 -0
  216. package/dist/run-artifact-metadata-cache.js.map +1 -0
  217. package/dist/secret-value-cache.d.ts +13 -0
  218. package/dist/secret-value-cache.d.ts.map +1 -0
  219. package/dist/secret-value-cache.js +44 -0
  220. package/dist/secret-value-cache.js.map +1 -0
  221. package/dist/secrets/SecretsManager.d.ts +80 -0
  222. package/dist/secrets/SecretsManager.d.ts.map +1 -0
  223. package/dist/secrets/SecretsManager.js +306 -0
  224. package/dist/secrets/SecretsManager.js.map +1 -0
  225. package/dist/test-utils.d.ts +55 -0
  226. package/dist/test-utils.d.ts.map +1 -0
  227. package/dist/test-utils.js +48 -0
  228. package/dist/test-utils.js.map +1 -0
  229. package/dist/timestamp-tracker.d.ts +75 -0
  230. package/dist/timestamp-tracker.d.ts.map +1 -0
  231. package/dist/timestamp-tracker.js +121 -0
  232. package/dist/timestamp-tracker.js.map +1 -0
  233. package/dist/utils/failure-artifact-writer.d.ts +29 -0
  234. package/dist/utils/failure-artifact-writer.d.ts.map +1 -0
  235. package/dist/utils/failure-artifact-writer.js +157 -0
  236. package/dist/utils/failure-artifact-writer.js.map +1 -0
  237. package/dist/utils/file-helpers.d.ts +41 -0
  238. package/dist/utils/file-helpers.d.ts.map +1 -0
  239. package/dist/utils/file-helpers.js +143 -0
  240. package/dist/utils/file-helpers.js.map +1 -0
  241. package/dist/utils/http-client-factory.d.ts +46 -0
  242. package/dist/utils/http-client-factory.d.ts.map +1 -0
  243. package/dist/utils/http-client-factory.js +114 -0
  244. package/dist/utils/http-client-factory.js.map +1 -0
  245. package/dist/utils/progress-normalizer.d.ts +13 -0
  246. package/dist/utils/progress-normalizer.d.ts.map +1 -0
  247. package/dist/utils/progress-normalizer.js +57 -0
  248. package/dist/utils/progress-normalizer.js.map +1 -0
  249. package/dist/utils/response-helpers.d.ts +34 -0
  250. package/dist/utils/response-helpers.d.ts.map +1 -0
  251. package/dist/utils/response-helpers.js +78 -0
  252. package/dist/utils/response-helpers.js.map +1 -0
  253. package/dist/utils/route-helpers.d.ts +17 -0
  254. package/dist/utils/route-helpers.d.ts.map +1 -0
  255. package/dist/utils/route-helpers.js +22 -0
  256. package/dist/utils/route-helpers.js.map +1 -0
  257. package/dist/utils/status-response-builder.d.ts +23 -0
  258. package/dist/utils/status-response-builder.d.ts.map +1 -0
  259. package/dist/utils/status-response-builder.js +144 -0
  260. package/dist/utils/status-response-builder.js.map +1 -0
  261. package/dist/utils/type-guards.d.ts +37 -0
  262. package/dist/utils/type-guards.d.ts.map +1 -0
  263. package/dist/utils/type-guards.js +45 -0
  264. package/dist/utils/type-guards.js.map +1 -0
  265. package/dist/utils/utf8-helpers.d.ts +32 -0
  266. package/dist/utils/utf8-helpers.d.ts.map +1 -0
  267. package/dist/utils/utf8-helpers.js +97 -0
  268. package/dist/utils/utf8-helpers.js.map +1 -0
  269. package/dist/utils/webhook-event-builder.d.ts +26 -0
  270. package/dist/utils/webhook-event-builder.d.ts.map +1 -0
  271. package/dist/utils/webhook-event-builder.js +77 -0
  272. package/dist/utils/webhook-event-builder.js.map +1 -0
  273. package/dist/webhook-manager.d.ts +56 -0
  274. package/dist/webhook-manager.d.ts.map +1 -0
  275. package/dist/webhook-manager.js +359 -0
  276. package/dist/webhook-manager.js.map +1 -0
  277. package/docker/workspace-cache/package-lock.json +13 -0
  278. package/docker/workspace-cache/package.json +7 -0
  279. package/docker-compose.yml +53 -0
  280. package/docs/API.md +708 -0
  281. package/docs/BACKLOG.md +19 -0
  282. package/docs/BUILD_STRATEGY.md +404 -0
  283. package/docs/CLI.md +569 -0
  284. package/docs/DEPLOYMENT.md +521 -0
  285. package/docs/DEVELOPMENT.md +459 -0
  286. package/docs/DOCKER_SETUP.md +522 -0
  287. package/docs/ENHANCED_PROGRESS_LOGS.md +264 -0
  288. package/docs/IMPLEMENTATION_SUMMARY.md +549 -0
  289. package/docs/INTEGRATION_EXAMPLE.md +217 -0
  290. package/docs/NPM_SETUP.md +468 -0
  291. package/docs/PHASE1-4_IMPLEMENTATION.md +302 -0
  292. package/docs/PHASE1_COMPLETION.md +192 -0
  293. package/docs/PHASE2_COMPLETION.md +134 -0
  294. package/docs/PHASE6_MIGRATION.md +392 -0
  295. package/docs/PRINTF_SAFETY_FIX.md +282 -0
  296. package/docs/QUALITY_GATES.md +369 -0
  297. package/docs/SETUP_GUIDE.md +482 -0
  298. package/docs/TASK_PROMPT_TEMPLATES.md +533 -0
  299. package/docs/VALIDATION_FIX.md +139 -0
  300. package/docs/VERIFICATION_CHECKLIST.md +335 -0
  301. package/docs/repo-maturity.md +760 -0
  302. package/fix-tests.d.ts +9 -0
  303. package/fix-tests.d.ts.map +1 -0
  304. package/fix-tests.js.map +1 -0
  305. package/fix-tests.ts +53 -0
  306. package/jest.config.ts +31 -0
  307. package/kaseki +183 -0
  308. package/kaseki-agent.sh +1961 -0
  309. package/ops/logrotate/kaseki +10 -0
  310. package/package.json +83 -0
  311. package/perf/README.md +54 -0
  312. package/perf/pi-event-filter.benchmark.test.ts +98 -0
  313. package/run-kaseki-json.test.sh +106 -0
  314. package/run-kaseki.sh +990 -0
  315. package/scripts/allowlist-helper.sh +56 -0
  316. package/scripts/cleanup-kaseki.sh +168 -0
  317. package/scripts/deploy-pi-template.sh +293 -0
  318. package/scripts/docker-entrypoint.sh +71 -0
  319. package/scripts/dry-run-allowlist.sh +161 -0
  320. package/scripts/kaseki-activate.sh +396 -0
  321. package/scripts/kaseki-api.service +62 -0
  322. package/scripts/kaseki-container-entrypoint-wrapper.sh +119 -0
  323. package/scripts/kaseki-container-setup-remote.sh +172 -0
  324. package/scripts/kaseki-container-setup.sh +193 -0
  325. package/scripts/kaseki-healthcheck.sh +95 -0
  326. package/scripts/kaseki-install.sh +50 -0
  327. package/scripts/kaseki-maturity-score.sh +291 -0
  328. package/scripts/kaseki-performance-metrics.sh +122 -0
  329. package/scripts/kaseki-preflight.sh +270 -0
  330. package/scripts/kaseki-setup.sh +265 -0
  331. package/scripts/pi-setup-remote.sh +213 -0
  332. package/scripts/setup-github-labels.sh +42 -0
  333. package/scripts/suggest-allowlist.sh +68 -0
  334. package/scripts/templates/MULTI_HOST_DISTRIBUTED.md +337 -0
  335. package/scripts/templates/REST_API_SERVICE.md +490 -0
  336. package/scripts/templates/SINGLE_HOST_CLI.md +194 -0
  337. package/scripts/test-github-app.sh +248 -0
  338. package/src/add-js-extensions.ts +61 -0
  339. package/src/ansi-colors.test.ts +62 -0
  340. package/src/ansi-colors.ts +67 -0
  341. package/src/cli/BaseCommand.ts +40 -0
  342. package/src/cli/KasekiCLI.ts +154 -0
  343. package/src/cli/commands/ConfigCommand.ts +145 -0
  344. package/src/cli/commands/DoctorCommand.ts +329 -0
  345. package/src/cli/commands/ListCommand.ts +105 -0
  346. package/src/cli/commands/ReportCommand.ts +110 -0
  347. package/src/cli/commands/RunCommand.ts +218 -0
  348. package/src/cli/commands/SecretsCommand.ts +120 -0
  349. package/src/cli/commands/ServeCommand.ts +62 -0
  350. package/src/cli/commands/SetupCommand.ts +301 -0
  351. package/src/cli.ts +138 -0
  352. package/src/config/ConfigManager.ts +476 -0
  353. package/src/docker/DockerManager.ts +319 -0
  354. package/src/docker-entrypoint-packaging.test.ts +33 -0
  355. package/src/event-aggregator.test.ts +117 -0
  356. package/src/event-aggregator.ts +126 -0
  357. package/src/github-app-token.ts +215 -0
  358. package/src/idempotency-store.test.ts +117 -0
  359. package/src/idempotency-store.ts +385 -0
  360. package/src/index.ts +89 -0
  361. package/src/instance/InstanceManager.ts +285 -0
  362. package/src/instance-metadata-reader.test.ts +190 -0
  363. package/src/instance-metadata-reader.ts +129 -0
  364. package/src/instance-state-derivation.test.ts +263 -0
  365. package/src/instance-state-derivation.ts +148 -0
  366. package/src/job-scheduler.test.ts +1236 -0
  367. package/src/job-scheduler.ts +1117 -0
  368. package/src/kaseki-api-client.ts +488 -0
  369. package/src/kaseki-api-config.test.ts +315 -0
  370. package/src/kaseki-api-config.ts +175 -0
  371. package/src/kaseki-api-routes.test.ts +1615 -0
  372. package/src/kaseki-api-routes.ts +643 -0
  373. package/src/kaseki-api-service-wrapper.ts +188 -0
  374. package/src/kaseki-api-service.test.ts +418 -0
  375. package/src/kaseki-api-service.ts +192 -0
  376. package/src/kaseki-api-types.ts +320 -0
  377. package/src/kaseki-cli-lib.test.ts +552 -0
  378. package/src/kaseki-cli-lib.ts +760 -0
  379. package/src/kaseki-cli.ts +682 -0
  380. package/src/kaseki-report.test.ts +118 -0
  381. package/src/kaseki-report.ts +192 -0
  382. package/src/lib/subprocess-helpers.ts +177 -0
  383. package/src/logger.ts +114 -0
  384. package/src/metrics.ts +66 -0
  385. package/src/middleware/job-lookup.test.ts +113 -0
  386. package/src/middleware/job-lookup.ts +45 -0
  387. package/src/pi-event-filter.test.ts +183 -0
  388. package/src/pi-event-filter.ts +183 -0
  389. package/src/pi-progress-stream.ts +287 -0
  390. package/src/pi-progress-summarizer.test.ts +302 -0
  391. package/src/pi-progress-summarizer.ts +287 -0
  392. package/src/pre-flight-validator.test.ts +512 -0
  393. package/src/pre-flight-validator.ts +618 -0
  394. package/src/progress-stream-utils.test.ts +35 -0
  395. package/src/progress-stream-utils.ts +14 -0
  396. package/src/result-cache.test.ts +195 -0
  397. package/src/result-cache.ts +181 -0
  398. package/src/routes/artifact-routes.ts +169 -0
  399. package/src/routes/log-routes.ts +391 -0
  400. package/src/routes/status-routes.ts +92 -0
  401. package/src/routes/webhook-routes.ts +97 -0
  402. package/src/run-artifact-metadata-cache.test.ts +80 -0
  403. package/src/run-artifact-metadata-cache.ts +184 -0
  404. package/src/secret-value-cache.test.ts +66 -0
  405. package/src/secret-value-cache.ts +55 -0
  406. package/src/secrets/SecretsManager.ts +343 -0
  407. package/src/test-utils.ts +81 -0
  408. package/src/timestamp-tracker.test.ts +134 -0
  409. package/src/timestamp-tracker.ts +132 -0
  410. package/src/utils/failure-artifact-writer.ts +187 -0
  411. package/src/utils/file-helpers.test.ts +235 -0
  412. package/src/utils/file-helpers.ts +150 -0
  413. package/src/utils/http-client-factory.test.ts +245 -0
  414. package/src/utils/http-client-factory.ts +157 -0
  415. package/src/utils/progress-normalizer.test.ts +442 -0
  416. package/src/utils/progress-normalizer.ts +68 -0
  417. package/src/utils/response-helpers.test.ts +122 -0
  418. package/src/utils/response-helpers.ts +101 -0
  419. package/src/utils/route-helpers.ts +30 -0
  420. package/src/utils/status-response-builder.ts +159 -0
  421. package/src/utils/type-guards.ts +52 -0
  422. package/src/utils/utf8-helpers.ts +102 -0
  423. package/src/utils/webhook-event-builder.test.ts +143 -0
  424. package/src/utils/webhook-event-builder.ts +87 -0
  425. package/src/webhook-manager.test.ts +152 -0
  426. package/src/webhook-manager.ts +445 -0
  427. package/templates/allowlist-api-route.txt +7 -0
  428. package/templates/allowlist-comprehensive.txt +8 -0
  429. package/templates/allowlist-parser-fix.txt +6 -0
  430. package/templates/allowlist-ui-component.txt +9 -0
  431. package/templates/allowlist-utility.txt +9 -0
  432. package/test/actual-model-metadata.test.sh +102 -0
  433. package/test/dry-run.test.sh +131 -0
  434. package/test/fixtures/kaseki-report-exit-codes/metadata-exit-0.json +1 -0
  435. package/test/fixtures/kaseki-report-exit-codes/metadata-exit-1.json +1 -0
  436. package/test/fixtures/kaseki-report-exit-codes/metadata-exit-invalid.json +1 -0
  437. package/test/fixtures/kaseki-report-exit-codes/metadata-exit-str-0.json +1 -0
  438. package/test/fixtures/kaseki-report-exit-codes/metadata-exit-str-1.json +1 -0
  439. package/test/kaseki-api.integration.test.sh +165 -0
  440. package/test/pi-event-filter-failure.test.sh +83 -0
  441. package/test/printf-safety-focused.test.sh +99 -0
  442. package/test/printf-safety-results/results/restoration.jsonl +10 -0
  443. package/test/printf-safety-results/results/test.jsonl +0 -0
  444. package/test/printf-safety.test.sh +297 -0
  445. package/test/validation-fix.test.sh +79 -0
  446. package/test/validation-integration.test.sh +109 -0
  447. package/tests/allowlist-glob.test.sh +61 -0
  448. package/tests/dependency-cache-key.test.sh +48 -0
  449. package/tests/dependency-restore-mode.test.sh +48 -0
  450. package/tests/doctor-template-parity.test.sh +95 -0
  451. package/tests/github-operations.test.sh +142 -0
  452. package/tests/npm-install-flags.test.sh +58 -0
  453. package/tests/quality-gates.test.sh +178 -0
  454. package/tests/repo-memory.test.sh +103 -0
  455. package/tests/restore-disallowed-changes.test.sh +80 -0
  456. package/tests/validation-missing-npm-scripts.test.sh +93 -0
  457. package/tests/validation-strict-mode.test.sh +118 -0
  458. package/tsconfig.changed.json +7 -0
  459. package/tsconfig.json +39 -0
@@ -0,0 +1,468 @@
1
+ ---
2
+ name: workflow-diagnosis
3
+ description: Diagnosing kaseki run failures and interpreting artifacts
4
+ tags: [kaseki, troubleshooting, diagnostics, debugging]
5
+ relatedSkills: [prompt-engineering, quality-gate-config, test-automation, docker-image-management, dependency-cache-optimization, result-report-analysis]
6
+ ---
7
+
8
+ # Workflow Diagnosis for Kaseki Agent
9
+
10
+ This skill guides you through diagnosing failures in kaseki runs, interpreting artifacts, and identifying root causes.
11
+
12
+ ## Overview
13
+
14
+ **When to Use**:
15
+ - A kaseki run failed and you need to understand why
16
+ - Performance is slower than expected
17
+ - Unexpected files were changed
18
+ - Quality gates failed (diff size, allowlist, secrets)
19
+ - Agent timed out or produced unexpected output
20
+
21
+ **Key Process**:
22
+ 1. Check `metadata.json` for exit codes (quick status)
23
+ 2. Read `result-summary.md` for human-readable summary
24
+ 3. Inspect relevant artifact based on failure type
25
+ 4. Use exit code mapping to find root cause
26
+ 5. Refer to related skill for remediation
27
+
28
+ ---
29
+
30
+ ## Artifact Inspection Order
31
+
32
+ When a kaseki run completes, artifacts are written to `/agents/kaseki-results/kaseki-N/`:
33
+
34
+ ### First: Check metadata.json
35
+ ```json
36
+ {
37
+ "instance": "kaseki-1",
38
+ "start_time": "2026-04-25T10:30:00Z",
39
+ "end_time": "2026-04-25T10:45:30Z",
40
+ "duration_seconds": 930,
41
+ "exit_codes": {
42
+ "agent": 0,
43
+ "validation": 0,
44
+ "quality_gates": 0,
45
+ "overall": 0
46
+ },
47
+ "model": "openrouter/free",
48
+ "timeout_seconds": 1200
49
+ }
50
+ ```
51
+
52
+ **What to Look For**:
53
+ - `exit_codes.overall`: 0 = success, non-zero = failure
54
+ - `exit_codes.agent`: Pi CLI exit code (0 = completed, 124 = timeout)
55
+ - `exit_codes.validation`: Validation command exit code
56
+ - `exit_codes.quality_gates`: Quality gate failures (see below)
57
+ - `duration_seconds`: How long the run took (baseline: 5–15 min)
58
+
59
+ ### Second: Read result-summary.md
60
+ Human-readable status and key facts:
61
+
62
+ ```markdown
63
+ # Kaseki Run Summary: kaseki-1
64
+
65
+ **Status**: ✓ Success
66
+ **Duration**: 15m 30s
67
+ **Model**: openrouter/free
68
+
69
+ ## Validation Results
70
+ - ✓ All validation commands passed
71
+ - ✓ Quality gates passed
72
+ - ✓ No secrets detected
73
+
74
+ ## Changes
75
+ - Files modified: 3
76
+ - Lines added: 42
77
+ - Lines removed: 18
78
+ - Diff size: 2.4 KB
79
+ ```
80
+
81
+ **What to Look For**:
82
+ - Status line (Success, Failure, Timeout, etc.)
83
+ - Which validation commands passed/failed
84
+ - Quality gate results
85
+ - Change summary (file count, diff size)
86
+
87
+ ### Third: Check Relevant Artifact Based on Exit Code
88
+
89
+ Use the **Exit Code Mapping** table below to jump to the right artifact.
90
+
91
+ ---
92
+
93
+ ## Exit Code Mapping & Remediation
94
+
95
+ | Exit Code | Meaning | Artifact to Check | Remediation Skill |
96
+ |---|---|---|---|
97
+ | 0 | Success | `pi-summary.json` | N/A (success) |
98
+ | 2 | Missing API key / config | `stdout.log`, `stderr.log` | N/A (configuration) |
99
+ | 3 | Empty git diff | `git.diff`, `pi-events.jsonl` | [Prompt Engineering](prompt-engineering.md) |
100
+ | 4 | Diff exceeds max bytes | `git.diff`, `changed-files.txt` | [Quality Gate Configuration](quality-gate-config.md) |
101
+ | 5 | Changed file outside allowlist | `changed-files.txt`, `quality.log` | [Quality Gate Configuration](quality-gate-config.md) |
102
+ | 6 | Secret scan hit (sk-or-* leak) | `secret-scan.log` | [Prompt Engineering](prompt-engineering.md) |
103
+ | 124 | Pi agent timeout | `pi-summary.json`, `stdout.log` | [Prompt Engineering](prompt-engineering.md) or [Docker Image Management](docker-image-management.md) |
104
+ | Other | Validation command failure | `validation.log`, exit code in metadata | [Test Automation](test-automation.md) |
105
+
106
+ ---
107
+
108
+ ## Common Failure Patterns
109
+
110
+ ### Pattern 1: Empty Diff (Exit Code 3)
111
+
112
+ **Symptom**: Kaseki completes but produces no changes.
113
+
114
+ **Quick Diagnosis**:
115
+ ```bash
116
+ cat /agents/kaseki-results/kaseki-N/git.diff
117
+ # Output: (empty or minimal)
118
+
119
+ cat /agents/kaseki-results/kaseki-N/pi-summary.json | jq '.status'
120
+ # Output: "completed"
121
+ ```
122
+
123
+ **Root Causes**:
124
+ 1. **Prompt was too vague** → Agent didn't understand what to do
125
+ - Remediation: See [Prompt Engineering](prompt-engineering.md) — be more specific
126
+ 2. **Code was already correct** → Bug doesn't exist or is fixed
127
+ - Remediation: Verify the issue manually in the repo
128
+ 3. **Validation commands fail on any change** → Too strict constraints
129
+ - Remediation: See [Quality Gate Configuration](quality-gate-config.md) — loosen constraints
130
+
131
+ **Diagnosis Steps**:
132
+ ```bash
133
+ # Did the agent think there was nothing to do?
134
+ cat /agents/kaseki-results/kaseki-N/pi-events.jsonl | grep -i "nothing\|no change\|complete"
135
+
136
+ # Did validation commands fail without agent changes?
137
+ cat /agents/kaseki-results/kaseki-N/validation.log
138
+
139
+ # Is the issue actually present in the cloned repo?
140
+ # Check git.status to see what the agent saw
141
+ cat /agents/kaseki-results/kaseki-N/git.status
142
+ ```
143
+
144
+ ### Pattern 2: Agent Timeout (Exit Code 124)
145
+
146
+ **Symptom**: Agent runs for `KASEKI_AGENT_TIMEOUT_SECONDS` (default 1200s = 20m) then stops.
147
+
148
+ **Quick Diagnosis**:
149
+ ```bash
150
+ cat /agents/kaseki-results/kaseki-N/metadata.json | jq '.duration_seconds'
151
+ # Output: 1200 (or close to timeout value)
152
+
153
+ cat /agents/kaseki-results/kaseki-N/pi-summary.json | jq '.status'
154
+ # Output: "timeout" or incomplete
155
+ ```
156
+
157
+ **Root Causes**:
158
+ 1. **Task too complex** → Agent exploring too many options
159
+ - Remediation: Simplify task scope; provide more constraints
160
+ 2. **Validation commands are slow** → npm ci, build takes 10+ minutes
161
+ - Remediation: See [Dependency Cache Optimization](dependency-cache-optimization.md)
162
+ 3. **Pi CLI performance issue** → Upstream problem with LLM
163
+ - Remediation: Retry with a different model or shorter timeout
164
+
165
+ **Diagnosis Steps**:
166
+ ```bash
167
+ # Check where time was spent
168
+ cat /agents/kaseki-results/kaseki-N/validation-timings.tsv
169
+ # Shows: command | duration_seconds
170
+
171
+ # Was most time in npm install?
172
+ head -5 /agents/kaseki-results/kaseki-N/validation-timings.tsv
173
+
174
+ # Check Pi summary for events and reasoning length
175
+ cat /agents/kaseki-results/kaseki-N/pi-summary.json | jq '{events, thinking_chars}'
176
+ ```
177
+
178
+ ### Pattern 3: Allowlist Violation (Exit Code 5)
179
+
180
+ **Symptom**: Agent changed files outside the allowlist.
181
+
182
+ **Quick Diagnosis**:
183
+ ```bash
184
+ cat /agents/kaseki-results/kaseki-N/changed-files.txt
185
+ # Output: src/lib/parser.ts tests/parser.test.ts src/other/config.ts
186
+ # (src/other/config.ts is NOT in allowlist)
187
+
188
+ cat /agents/kaseki-results/kaseki-N/quality.log
189
+ # Output: Changed file 'src/other/config.ts' not in allowlist
190
+ ```
191
+
192
+ **Root Causes**:
193
+ 1. **Allowlist too narrow** → Legitimate files excluded
194
+ - Remediation: See [Quality Gate Configuration](quality-gate-config.md) — expand allowlist
195
+ 2. **Prompt scope unclear** → Agent made assumption and changed extra files
196
+ - Remediation: See [Prompt Engineering](prompt-engineering.md) — be explicit about constraints
197
+
198
+ **Diagnosis Steps**:
199
+ ```bash
200
+ # See exactly which files changed
201
+ cat /agents/kaseki-results/kaseki-N/changed-files.txt
202
+
203
+ # Check what the allowlist was
204
+ echo $KASEKI_CHANGED_FILES_ALLOWLIST
205
+ # Or re-inspect git.diff to see what agent tried to do
206
+ cat /agents/kaseki-results/kaseki-N/git.diff | grep '^diff --git' | head -10
207
+ ```
208
+
209
+ ### Pattern 4: Diff Size Exceeded (Exit Code 4)
210
+
211
+ **Symptom**: Changes are too large.
212
+
213
+ **Quick Diagnosis**:
214
+ ```bash
215
+ wc -c < /agents/kaseki-results/kaseki-N/git.diff
216
+ # Output: 250000 (exceeds default 200000 = 200 KB)
217
+
218
+ cat /agents/kaseki-results/kaseki-N/quality.log
219
+ # Output: Diff size 250000 bytes exceeds KASEKI_MAX_DIFF_BYTES (200000)
220
+ ```
221
+
222
+ **Root Causes**:
223
+ 1. **Task too broad** → Agent changed too much
224
+ - Remediation: See [Prompt Engineering](prompt-engineering.md) — narrow task scope
225
+ 2. **Max diff too conservative** → Limit is unreasonable for this task
226
+ - Remediation: See [Quality Gate Configuration](quality-gate-config.md) — increase limit
227
+
228
+ **Diagnosis Steps**:
229
+ ```bash
230
+ # What changed?
231
+ cat /agents/kaseki-results/kaseki-N/changed-files.txt
232
+
233
+ # How much per file?
234
+ git diff --stat < /agents/kaseki-results/kaseki-N/git.diff | tail -5
235
+ ```
236
+
237
+ ### Pattern 5: Validation Command Failed
238
+
239
+ **Symptom**: Exit code in metadata shows validation failure (not 0).
240
+
241
+ **Quick Diagnosis**:
242
+ ```bash
243
+ cat /agents/kaseki-results/kaseki-N/metadata.json | jq '.exit_codes.validation'
244
+ # Output: 1 (command exited with code 1)
245
+
246
+ cat /agents/kaseki-results/kaseki-N/result-summary.md | grep -A 5 "Validation Results"
247
+ # Shows which command failed
248
+ ```
249
+
250
+ **Root Causes**:
251
+ 1. **Tests don't pass** → Agent made breaking change
252
+ - Remediation: Review pi-events.jsonl to see agent's reasoning
253
+ 2. **Type checker failed** → New type errors introduced
254
+ - Remediation: Check validation.log for type error details
255
+ 3. **Build failed** → Syntax error or missing dependency
256
+ - Remediation: Check validation.log for build error
257
+
258
+ **Diagnosis Steps**:
259
+ ```bash
260
+ # See full validation output
261
+ cat /agents/kaseki-results/kaseki-N/validation.log | tail -100
262
+
263
+ # Check timing to see which command failed
264
+ cat /agents/kaseki-results/kaseki-N/validation-timings.tsv
265
+
266
+ # Compare git diff to understand what agent tried
267
+ head -50 /agents/kaseki-results/kaseki-N/git.diff
268
+ ```
269
+
270
+ ### Pattern 6: Secret Leak Detected (Exit Code 6)
271
+
272
+ **Symptom**: Credentials found in artifacts.
273
+
274
+ **Quick Diagnosis**:
275
+ ```bash
276
+ cat /agents/kaseki-results/kaseki-N/secret-scan.log
277
+ # Output: Found secret pattern sk-or-abc... in {filename}:{line}
278
+ ```
279
+
280
+ **Root Causes**:
281
+ 1. **Prompt included API key example** → Security issue in prompt design
282
+ - Remediation: See [Prompt Engineering](prompt-engineering.md) — security checklist
283
+ 2. **Agent exposed environment variable** → Unexpected behavior
284
+ - Remediation: Check pi-events.jsonl to see what agent was thinking
285
+
286
+ **Diagnosis Steps**:
287
+ ```bash
288
+ # Find exact secret patterns
289
+ grep -r "sk-or-" /agents/kaseki-results/kaseki-N/ --exclude-dir=.git
290
+
291
+ # Was it in the prompt or agent output?
292
+ grep "sk-or-" /agents/kaseki-results/kaseki-N/pi-events.jsonl
293
+
294
+ # Revoke/rotate any exposed credentials immediately
295
+ ```
296
+
297
+ ---
298
+
299
+ ## Performance Analysis
300
+
301
+ ### Check Overall Duration
302
+
303
+ ```bash
304
+ cat /agents/kaseki-results/kaseki-N/metadata.json | jq '{start: .start_time, end: .end_time, duration_seconds: .duration_seconds}'
305
+ ```
306
+
307
+ **Expected Baselines**:
308
+ - `npm ci` with cache hit: 10–30 seconds
309
+ - `npm ci` cache miss: 1–3 minutes
310
+ - Validation commands: 1–5 minutes (varies by repo)
311
+ - Pi agent (typical task): 5–10 minutes
312
+ - **Total**: 5–15 minutes for a typical run
313
+
314
+ **If Slower Than Expected**:
315
+ 1. Check validation timings (see below)
316
+ 2. See [Dependency Cache Optimization](dependency-cache-optimization.md) if npm is slow
317
+ 3. See [Workflow Diagnosis](#pattern-2-agent-timeout-exit-code-124) for timeout pattern
318
+
319
+ ### Check Validation Command Timings
320
+
321
+ ```bash
322
+ cat /agents/kaseki-results/kaseki-N/validation-timings.tsv
323
+ # Output:
324
+ # command duration_seconds
325
+ # npm ci 120
326
+ # npm run check 45
327
+ # npm run test 90
328
+ # npm run build 60
329
+ ```
330
+
331
+ **Optimization**:
332
+ - `npm ci` > 2m? → Cache issue, see [Dependency Cache Optimization](dependency-cache-optimization.md)
333
+ - `npm test` > 5m? → Consider running only relevant tests
334
+ - Any command > 10m? → Consider increasing `KASEKI_AGENT_TIMEOUT_SECONDS`
335
+
336
+ ---
337
+
338
+ ## Pi Agent Analysis
339
+
340
+ ### Quick Stats
341
+
342
+ ```bash
343
+ cat /agents/kaseki-results/kaseki-N/pi-summary.json | jq '.statistics'
344
+ # Output:
345
+ # {
346
+ # "events": 42,
347
+ # "thinking_tokens": 5000,
348
+ # "output_tokens": 2000,
349
+ # "total_tokens": 7000,
350
+ # "status": "completed"
351
+ # }
352
+ ```
353
+
354
+ **What to Look For**:
355
+ - `events`: Number of reasoning steps (10–50 is typical)
356
+ - `thinking_tokens`: Reasoning effort (5k–20k is normal)
357
+ - `total_tokens`: Cost indicator (affects model choice)
358
+ - `status`: "completed", "timeout", "error"
359
+
360
+ ### Understand Agent Behavior
361
+
362
+ ```bash
363
+ # See high-level event types
364
+ cat /agents/kaseki-results/kaseki-N/pi-events.jsonl | jq '.type' | sort | uniq -c | sort -rn
365
+ # Output:
366
+ # 15 "thought"
367
+ # 10 "tool_call"
368
+ # 8 "tool_result"
369
+ # 5 "message"
370
+ ```
371
+
372
+ **Interpretation**:
373
+ - More `thought` events = agent reasoning longer (possibly confused)
374
+ - Many `tool_call` events = agent trying multiple approaches
375
+ - Few events = straightforward task
376
+
377
+ ### Check For Errors
378
+
379
+ ```bash
380
+ # Look for error events
381
+ cat /agents/kaseki-results/kaseki-N/pi-events.jsonl | jq 'select(.type == "error")'
382
+
383
+ # Look for warnings in output
384
+ grep -i "warn\|error\|failed" /agents/kaseki-results/kaseki-N/pi-events.jsonl
385
+ ```
386
+
387
+ ---
388
+
389
+ ## Decision Tree
390
+
391
+ Use this flowchart to diagnose issues:
392
+
393
+ ```
394
+ START: Kaseki run completed
395
+
396
+ 1. Check exit_codes.overall in metadata.json
397
+ ├─ 0 → Run succeeded! Analyze results with pi-summary.json
398
+ ├─ 2 → Missing API key/config (check env vars)
399
+ ├─ 3 → Empty diff (see Pattern 1)
400
+ ├─ 4 → Diff too large (see Pattern 4)
401
+ ├─ 5 → Allowlist violation (see Pattern 3)
402
+ ├─ 6 → Secret leak (see Pattern 6)
403
+ ├─ 124 → Timeout (see Pattern 2)
404
+ └─ Other → Check validation.log (Pattern 5)
405
+
406
+ 2. If exit code is 0:
407
+ ├─ Changes look good? Verify with git.diff
408
+ ├─ Tests passed? See validation-timings.tsv
409
+ └─ Done!
410
+
411
+ 3. If exit code is non-zero:
412
+ ├─ Read result-summary.md for human explanation
413
+ ├─ Jump to matching pattern above
414
+ ├─ Apply remediation from linked skill
415
+ ├─ Refine task/config
416
+ └─ Retry with new kaseki instance (e.g., kaseki-2)
417
+ ```
418
+
419
+ ---
420
+
421
+ ## Useful Commands
422
+
423
+ ### Inspect a Run Quickly
424
+
425
+ ```bash
426
+ # Summary view
427
+ tail -30 /agents/kaseki-results/kaseki-N/result-summary.md
428
+
429
+ # Exit codes
430
+ jq .exit_codes /agents/kaseki-results/kaseki-N/metadata.json
431
+
432
+ # Changed files
433
+ cat /agents/kaseki-results/kaseki-N/changed-files.txt
434
+
435
+ # Pi stats
436
+ jq .statistics /agents/kaseki-results/kaseki-N/pi-summary.json
437
+ ```
438
+
439
+ ### Compare Multiple Runs
440
+
441
+ ```bash
442
+ # Compare timings across runs
443
+ for dir in /agents/kaseki-results/kaseki-{1,2,3}/; do
444
+ echo "=== $(basename $dir) ==="
445
+ jq '.duration_seconds' "$dir/metadata.json"
446
+ grep "npm ci" "$dir/validation-timings.tsv" | awk '{print $2}'
447
+ done
448
+ ```
449
+
450
+ ### Extract Full Pi Interaction
451
+
452
+ ```bash
453
+ # Pretty-print events (useful for debugging agent reasoning)
454
+ jq -r '.type + ": " + (.content // .message // "")' \
455
+ /agents/kaseki-results/kaseki-N/pi-events.jsonl | head -50
456
+ ```
457
+
458
+ ---
459
+
460
+ ## Related Skills & Docs
461
+
462
+ - [Prompt Engineering](prompt-engineering.md) — Design better tasks to avoid failures
463
+ - [Quality Gate Configuration](quality-gate-config.md) — Set appropriate constraints
464
+ - [Test Automation](test-automation.md) — Ensure validation tests are robust
465
+ - [Docker Image Management](docker-image-management.md) — Image-related issues
466
+ - [Dependency Cache Optimization](dependency-cache-optimization.md) — Performance tuning
467
+ - [Result Report Analysis](result-report-analysis.md) — Metrics and baselines
468
+ - [CLAUDE.md](../../CLAUDE.md) — Complete architecture and exit codes reference