@kynetic-ai/spec 0.1.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. package/README.md +250 -17
  2. package/dist/acp/client.d.ts +18 -4
  3. package/dist/acp/client.d.ts.map +1 -1
  4. package/dist/acp/client.js +44 -26
  5. package/dist/acp/client.js.map +1 -1
  6. package/dist/acp/framing.d.ts +2 -2
  7. package/dist/acp/framing.d.ts.map +1 -1
  8. package/dist/acp/framing.js +37 -29
  9. package/dist/acp/framing.js.map +1 -1
  10. package/dist/acp/index.d.ts +6 -7
  11. package/dist/acp/index.d.ts.map +1 -1
  12. package/dist/acp/index.js +3 -3
  13. package/dist/acp/index.js.map +1 -1
  14. package/dist/acp/types.d.ts +5 -5
  15. package/dist/acp/types.d.ts.map +1 -1
  16. package/dist/acp/types.js +18 -18
  17. package/dist/acp/types.js.map +1 -1
  18. package/dist/agents/adapters.d.ts.map +1 -1
  19. package/dist/agents/adapters.js +24 -13
  20. package/dist/agents/adapters.js.map +1 -1
  21. package/dist/agents/index.d.ts +2 -2
  22. package/dist/agents/index.js +2 -2
  23. package/dist/agents/spawner.d.ts +4 -4
  24. package/dist/agents/spawner.d.ts.map +1 -1
  25. package/dist/agents/spawner.js +6 -6
  26. package/dist/agents/spawner.js.map +1 -1
  27. package/dist/cli/batch-context.d.ts +43 -0
  28. package/dist/cli/batch-context.d.ts.map +1 -0
  29. package/dist/cli/batch-context.js +93 -0
  30. package/dist/cli/batch-context.js.map +1 -0
  31. package/dist/cli/batch-exec.d.ts +107 -0
  32. package/dist/cli/batch-exec.d.ts.map +1 -0
  33. package/dist/cli/batch-exec.js +706 -0
  34. package/dist/cli/batch-exec.js.map +1 -0
  35. package/dist/cli/batch.d.ts +4 -2
  36. package/dist/cli/batch.d.ts.map +1 -1
  37. package/dist/cli/batch.js +15 -14
  38. package/dist/cli/batch.js.map +1 -1
  39. package/dist/cli/command-annotations.d.ts +23 -0
  40. package/dist/cli/command-annotations.d.ts.map +1 -0
  41. package/dist/cli/command-annotations.js +27 -0
  42. package/dist/cli/command-annotations.js.map +1 -0
  43. package/dist/cli/commands/agents.d.ts +46 -0
  44. package/dist/cli/commands/agents.d.ts.map +1 -0
  45. package/dist/cli/commands/agents.js +377 -0
  46. package/dist/cli/commands/agents.js.map +1 -0
  47. package/dist/cli/commands/batch.d.ts +20 -0
  48. package/dist/cli/commands/batch.d.ts.map +1 -0
  49. package/dist/cli/commands/batch.js +214 -0
  50. package/dist/cli/commands/batch.js.map +1 -0
  51. package/dist/cli/commands/clone-for-testing.d.ts +1 -1
  52. package/dist/cli/commands/clone-for-testing.d.ts.map +1 -1
  53. package/dist/cli/commands/clone-for-testing.js +37 -47
  54. package/dist/cli/commands/clone-for-testing.js.map +1 -1
  55. package/dist/cli/commands/derive.d.ts +1 -1
  56. package/dist/cli/commands/derive.d.ts.map +1 -1
  57. package/dist/cli/commands/derive.js +141 -88
  58. package/dist/cli/commands/derive.js.map +1 -1
  59. package/dist/cli/commands/doctor.d.ts +11 -0
  60. package/dist/cli/commands/doctor.d.ts.map +1 -0
  61. package/dist/cli/commands/doctor.js +152 -0
  62. package/dist/cli/commands/doctor.js.map +1 -0
  63. package/dist/cli/commands/export.d.ts +12 -0
  64. package/dist/cli/commands/export.d.ts.map +1 -0
  65. package/dist/cli/commands/export.js +134 -0
  66. package/dist/cli/commands/export.js.map +1 -0
  67. package/dist/cli/commands/help.d.ts +1 -1
  68. package/dist/cli/commands/help.d.ts.map +1 -1
  69. package/dist/cli/commands/help.js +163 -37
  70. package/dist/cli/commands/help.js.map +1 -1
  71. package/dist/cli/commands/inbox.d.ts +1 -1
  72. package/dist/cli/commands/inbox.d.ts.map +1 -1
  73. package/dist/cli/commands/inbox.js +178 -56
  74. package/dist/cli/commands/inbox.js.map +1 -1
  75. package/dist/cli/commands/index.d.ts +31 -19
  76. package/dist/cli/commands/index.d.ts.map +1 -1
  77. package/dist/cli/commands/index.js +31 -19
  78. package/dist/cli/commands/index.js.map +1 -1
  79. package/dist/cli/commands/init.d.ts +5 -1
  80. package/dist/cli/commands/init.d.ts.map +1 -1
  81. package/dist/cli/commands/init.js +108 -57
  82. package/dist/cli/commands/init.js.map +1 -1
  83. package/dist/cli/commands/item.d.ts +1 -1
  84. package/dist/cli/commands/item.d.ts.map +1 -1
  85. package/dist/cli/commands/item.js +557 -274
  86. package/dist/cli/commands/item.js.map +1 -1
  87. package/dist/cli/commands/link.d.ts +1 -1
  88. package/dist/cli/commands/link.d.ts.map +1 -1
  89. package/dist/cli/commands/link.js +55 -46
  90. package/dist/cli/commands/link.js.map +1 -1
  91. package/dist/cli/commands/log.d.ts +1 -1
  92. package/dist/cli/commands/log.d.ts.map +1 -1
  93. package/dist/cli/commands/log.js +58 -51
  94. package/dist/cli/commands/log.js.map +1 -1
  95. package/dist/cli/commands/merge-driver.d.ts +19 -0
  96. package/dist/cli/commands/merge-driver.d.ts.map +1 -0
  97. package/dist/cli/commands/merge-driver.js +398 -0
  98. package/dist/cli/commands/merge-driver.js.map +1 -0
  99. package/dist/cli/commands/meta.d.ts +1 -1
  100. package/dist/cli/commands/meta.d.ts.map +1 -1
  101. package/dist/cli/commands/meta.js +534 -399
  102. package/dist/cli/commands/meta.js.map +1 -1
  103. package/dist/cli/commands/module.d.ts +1 -1
  104. package/dist/cli/commands/module.d.ts.map +1 -1
  105. package/dist/cli/commands/module.js +30 -25
  106. package/dist/cli/commands/module.js.map +1 -1
  107. package/dist/cli/commands/plan-import.d.ts +11 -0
  108. package/dist/cli/commands/plan-import.d.ts.map +1 -0
  109. package/dist/cli/commands/plan-import.js +547 -0
  110. package/dist/cli/commands/plan-import.js.map +1 -0
  111. package/dist/cli/commands/plan.d.ts +10 -0
  112. package/dist/cli/commands/plan.d.ts.map +1 -0
  113. package/dist/cli/commands/plan.js +421 -0
  114. package/dist/cli/commands/plan.js.map +1 -0
  115. package/dist/cli/commands/ralph.d.ts +1 -1
  116. package/dist/cli/commands/ralph.d.ts.map +1 -1
  117. package/dist/cli/commands/ralph.js +1109 -170
  118. package/dist/cli/commands/ralph.js.map +1 -1
  119. package/dist/cli/commands/refs.d.ts +13 -0
  120. package/dist/cli/commands/refs.d.ts.map +1 -0
  121. package/dist/cli/commands/refs.js +283 -0
  122. package/dist/cli/commands/refs.js.map +1 -0
  123. package/dist/cli/commands/search.d.ts +1 -1
  124. package/dist/cli/commands/search.d.ts.map +1 -1
  125. package/dist/cli/commands/search.js +199 -37
  126. package/dist/cli/commands/search.js.map +1 -1
  127. package/dist/cli/commands/serve.d.ts +10 -0
  128. package/dist/cli/commands/serve.d.ts.map +1 -0
  129. package/dist/cli/commands/serve.js +491 -0
  130. package/dist/cli/commands/serve.js.map +1 -0
  131. package/dist/cli/commands/session.d.ts +25 -6
  132. package/dist/cli/commands/session.d.ts.map +1 -1
  133. package/dist/cli/commands/session.js +810 -127
  134. package/dist/cli/commands/session.js.map +1 -1
  135. package/dist/cli/commands/setup-seeding.d.ts +81 -0
  136. package/dist/cli/commands/setup-seeding.d.ts.map +1 -0
  137. package/dist/cli/commands/setup-seeding.js +292 -0
  138. package/dist/cli/commands/setup-seeding.js.map +1 -0
  139. package/dist/cli/commands/setup.d.ts +77 -3
  140. package/dist/cli/commands/setup.d.ts.map +1 -1
  141. package/dist/cli/commands/setup.js +1267 -274
  142. package/dist/cli/commands/setup.js.map +1 -1
  143. package/dist/cli/commands/shadow.d.ts +1 -1
  144. package/dist/cli/commands/shadow.d.ts.map +1 -1
  145. package/dist/cli/commands/shadow.js +70 -50
  146. package/dist/cli/commands/shadow.js.map +1 -1
  147. package/dist/cli/commands/skill-crud.d.ts +58 -0
  148. package/dist/cli/commands/skill-crud.d.ts.map +1 -0
  149. package/dist/cli/commands/skill-crud.js +753 -0
  150. package/dist/cli/commands/skill-crud.js.map +1 -0
  151. package/dist/cli/commands/skill-diff.d.ts +27 -0
  152. package/dist/cli/commands/skill-diff.d.ts.map +1 -0
  153. package/dist/cli/commands/skill-diff.js +840 -0
  154. package/dist/cli/commands/skill-diff.js.map +1 -0
  155. package/dist/cli/commands/skill-install.d.ts +56 -0
  156. package/dist/cli/commands/skill-install.d.ts.map +1 -0
  157. package/dist/cli/commands/skill-install.js +509 -0
  158. package/dist/cli/commands/skill-install.js.map +1 -0
  159. package/dist/cli/commands/skill.d.ts +20 -0
  160. package/dist/cli/commands/skill.d.ts.map +1 -0
  161. package/dist/cli/commands/skill.js +36 -0
  162. package/dist/cli/commands/skill.js.map +1 -0
  163. package/dist/cli/commands/task.d.ts +1 -1
  164. package/dist/cli/commands/task.d.ts.map +1 -1
  165. package/dist/cli/commands/task.js +584 -350
  166. package/dist/cli/commands/task.js.map +1 -1
  167. package/dist/cli/commands/tasks.d.ts +26 -1
  168. package/dist/cli/commands/tasks.d.ts.map +1 -1
  169. package/dist/cli/commands/tasks.js +225 -122
  170. package/dist/cli/commands/tasks.js.map +1 -1
  171. package/dist/cli/commands/trait.d.ts +1 -1
  172. package/dist/cli/commands/trait.d.ts.map +1 -1
  173. package/dist/cli/commands/trait.js +166 -101
  174. package/dist/cli/commands/trait.js.map +1 -1
  175. package/dist/cli/commands/triage.d.ts +7 -0
  176. package/dist/cli/commands/triage.d.ts.map +1 -0
  177. package/dist/cli/commands/triage.js +483 -0
  178. package/dist/cli/commands/triage.js.map +1 -0
  179. package/dist/cli/commands/util.d.ts +7 -0
  180. package/dist/cli/commands/util.d.ts.map +1 -0
  181. package/dist/cli/commands/util.js +30 -0
  182. package/dist/cli/commands/util.js.map +1 -0
  183. package/dist/cli/commands/validate.d.ts +1 -1
  184. package/dist/cli/commands/validate.d.ts.map +1 -1
  185. package/dist/cli/commands/validate.js +264 -83
  186. package/dist/cli/commands/validate.js.map +1 -1
  187. package/dist/cli/commands/workflow.d.ts +16 -0
  188. package/dist/cli/commands/workflow.d.ts.map +1 -0
  189. package/dist/cli/commands/workflow.js +851 -0
  190. package/dist/cli/commands/workflow.js.map +1 -0
  191. package/dist/cli/exit-codes.d.ts +7 -0
  192. package/dist/cli/exit-codes.d.ts.map +1 -1
  193. package/dist/cli/exit-codes.js +26 -18
  194. package/dist/cli/exit-codes.js.map +1 -1
  195. package/dist/cli/help/content.d.ts.map +1 -1
  196. package/dist/cli/help/content.js +86 -71
  197. package/dist/cli/help/content.js.map +1 -1
  198. package/dist/cli/index.d.ts +1 -1
  199. package/dist/cli/index.d.ts.map +1 -1
  200. package/dist/cli/index.js +131 -19
  201. package/dist/cli/index.js.map +1 -1
  202. package/dist/cli/introspection.d.ts +6 -2
  203. package/dist/cli/introspection.d.ts.map +1 -1
  204. package/dist/cli/introspection.js +11 -8
  205. package/dist/cli/introspection.js.map +1 -1
  206. package/dist/cli/output.d.ts +64 -4
  207. package/dist/cli/output.d.ts.map +1 -1
  208. package/dist/cli/output.js +237 -85
  209. package/dist/cli/output.js.map +1 -1
  210. package/dist/cli/parse-utils.d.ts +21 -0
  211. package/dist/cli/parse-utils.d.ts.map +1 -0
  212. package/dist/cli/parse-utils.js +32 -0
  213. package/dist/cli/parse-utils.js.map +1 -0
  214. package/dist/cli/pid-utils.d.ts +72 -0
  215. package/dist/cli/pid-utils.d.ts.map +1 -0
  216. package/dist/cli/pid-utils.js +174 -0
  217. package/dist/cli/pid-utils.js.map +1 -0
  218. package/dist/cli/suggest.d.ts.map +1 -1
  219. package/dist/cli/suggest.js +1 -2
  220. package/dist/cli/suggest.js.map +1 -1
  221. package/dist/cli/validators.d.ts +43 -0
  222. package/dist/cli/validators.d.ts.map +1 -0
  223. package/dist/cli/validators.js +84 -0
  224. package/dist/cli/validators.js.map +1 -0
  225. package/dist/daemon/index.ts +52 -0
  226. package/dist/daemon/middleware/project-context.ts +126 -0
  227. package/dist/daemon/pid.ts +179 -0
  228. package/dist/daemon/project-context.ts +343 -0
  229. package/dist/daemon/routes/inbox.ts +164 -0
  230. package/dist/daemon/routes/items.ts +322 -0
  231. package/dist/daemon/routes/meta.ts +118 -0
  232. package/dist/daemon/routes/projects.ts +162 -0
  233. package/dist/daemon/routes/tasks.ts +327 -0
  234. package/dist/daemon/routes/triage.ts +402 -0
  235. package/dist/daemon/routes/validation.ts +248 -0
  236. package/dist/daemon/server.ts +408 -0
  237. package/dist/daemon/watcher.ts +195 -0
  238. package/dist/daemon/websocket/handler.ts +138 -0
  239. package/dist/daemon/websocket/heartbeat.ts +71 -0
  240. package/dist/daemon/websocket/pubsub.ts +125 -0
  241. package/dist/daemon/websocket/types.ts +66 -0
  242. package/dist/export/html.d.ts +19 -0
  243. package/dist/export/html.d.ts.map +1 -0
  244. package/dist/export/html.js +239 -0
  245. package/dist/export/html.js.map +1 -0
  246. package/dist/export/index.d.ts +10 -0
  247. package/dist/export/index.d.ts.map +1 -0
  248. package/dist/export/index.js +10 -0
  249. package/dist/export/index.js.map +1 -0
  250. package/dist/export/json.d.ts +24 -0
  251. package/dist/export/json.d.ts.map +1 -0
  252. package/dist/export/json.js +198 -0
  253. package/dist/export/json.js.map +1 -0
  254. package/dist/export/triage.d.ts +51 -0
  255. package/dist/export/triage.d.ts.map +1 -0
  256. package/dist/export/triage.js +83 -0
  257. package/dist/export/triage.js.map +1 -0
  258. package/dist/export/types.d.ts +122 -0
  259. package/dist/export/types.d.ts.map +1 -0
  260. package/dist/export/types.js +9 -0
  261. package/dist/export/types.js.map +1 -0
  262. package/dist/index.d.ts +2 -2
  263. package/dist/index.js +2 -2
  264. package/dist/lib/claude-plugin-registry.d.ts +66 -0
  265. package/dist/lib/claude-plugin-registry.d.ts.map +1 -0
  266. package/dist/lib/claude-plugin-registry.js +318 -0
  267. package/dist/lib/claude-plugin-registry.js.map +1 -0
  268. package/dist/merge/arrays.d.ts +87 -0
  269. package/dist/merge/arrays.d.ts.map +1 -0
  270. package/dist/merge/arrays.js +164 -0
  271. package/dist/merge/arrays.js.map +1 -0
  272. package/dist/merge/file-type.d.ts +32 -0
  273. package/dist/merge/file-type.d.ts.map +1 -0
  274. package/dist/merge/file-type.js +70 -0
  275. package/dist/merge/file-type.js.map +1 -0
  276. package/dist/merge/index.d.ts +14 -0
  277. package/dist/merge/index.d.ts.map +1 -0
  278. package/dist/merge/index.js +11 -0
  279. package/dist/merge/index.js.map +1 -0
  280. package/dist/merge/objects.d.ts +46 -0
  281. package/dist/merge/objects.d.ts.map +1 -0
  282. package/dist/merge/objects.js +193 -0
  283. package/dist/merge/objects.js.map +1 -0
  284. package/dist/merge/parse.d.ts +23 -0
  285. package/dist/merge/parse.d.ts.map +1 -0
  286. package/dist/merge/parse.js +78 -0
  287. package/dist/merge/parse.js.map +1 -0
  288. package/dist/merge/resolve.d.ts +66 -0
  289. package/dist/merge/resolve.d.ts.map +1 -0
  290. package/dist/merge/resolve.js +189 -0
  291. package/dist/merge/resolve.js.map +1 -0
  292. package/dist/merge/types.d.ts +82 -0
  293. package/dist/merge/types.d.ts.map +1 -0
  294. package/dist/merge/types.js +8 -0
  295. package/dist/merge/types.js.map +1 -0
  296. package/dist/parser/agent-data-sections.d.ts +53 -0
  297. package/dist/parser/agent-data-sections.d.ts.map +1 -0
  298. package/dist/parser/agent-data-sections.js +118 -0
  299. package/dist/parser/agent-data-sections.js.map +1 -0
  300. package/dist/parser/alignment.d.ts +4 -4
  301. package/dist/parser/alignment.d.ts.map +1 -1
  302. package/dist/parser/alignment.js +27 -22
  303. package/dist/parser/alignment.js.map +1 -1
  304. package/dist/parser/assess.d.ts +5 -5
  305. package/dist/parser/assess.d.ts.map +1 -1
  306. package/dist/parser/assess.js +36 -32
  307. package/dist/parser/assess.js.map +1 -1
  308. package/dist/parser/config.d.ts +457 -0
  309. package/dist/parser/config.d.ts.map +1 -0
  310. package/dist/parser/config.js +373 -0
  311. package/dist/parser/config.js.map +1 -0
  312. package/dist/parser/convention-validation.d.ts +1 -1
  313. package/dist/parser/convention-validation.d.ts.map +1 -1
  314. package/dist/parser/convention-validation.js +21 -16
  315. package/dist/parser/convention-validation.js.map +1 -1
  316. package/dist/parser/coverage-cache.d.ts +49 -0
  317. package/dist/parser/coverage-cache.d.ts.map +1 -0
  318. package/dist/parser/coverage-cache.js +123 -0
  319. package/dist/parser/coverage-cache.js.map +1 -0
  320. package/dist/parser/daemon-status.d.ts +37 -0
  321. package/dist/parser/daemon-status.d.ts.map +1 -0
  322. package/dist/parser/daemon-status.js +67 -0
  323. package/dist/parser/daemon-status.js.map +1 -0
  324. package/dist/parser/doctor.d.ts +107 -0
  325. package/dist/parser/doctor.d.ts.map +1 -0
  326. package/dist/parser/doctor.js +366 -0
  327. package/dist/parser/doctor.js.map +1 -0
  328. package/dist/parser/fix.d.ts +1 -1
  329. package/dist/parser/fix.d.ts.map +1 -1
  330. package/dist/parser/fix.js +31 -27
  331. package/dist/parser/fix.js.map +1 -1
  332. package/dist/parser/index.d.ts +16 -11
  333. package/dist/parser/index.d.ts.map +1 -1
  334. package/dist/parser/index.js +16 -11
  335. package/dist/parser/index.js.map +1 -1
  336. package/dist/parser/items.d.ts +8 -2
  337. package/dist/parser/items.d.ts.map +1 -1
  338. package/dist/parser/items.js +71 -35
  339. package/dist/parser/items.js.map +1 -1
  340. package/dist/parser/meta.d.ts +167 -9
  341. package/dist/parser/meta.d.ts.map +1 -1
  342. package/dist/parser/meta.js +379 -46
  343. package/dist/parser/meta.js.map +1 -1
  344. package/dist/parser/plan-document.d.ts +197 -0
  345. package/dist/parser/plan-document.d.ts.map +1 -0
  346. package/dist/parser/plan-document.js +341 -0
  347. package/dist/parser/plan-document.js.map +1 -0
  348. package/dist/parser/plans.d.ts +59 -0
  349. package/dist/parser/plans.d.ts.map +1 -0
  350. package/dist/parser/plans.js +239 -0
  351. package/dist/parser/plans.js.map +1 -0
  352. package/dist/parser/refs.d.ts +22 -9
  353. package/dist/parser/refs.d.ts.map +1 -1
  354. package/dist/parser/refs.js +102 -50
  355. package/dist/parser/refs.js.map +1 -1
  356. package/dist/parser/setup-status.d.ts +71 -0
  357. package/dist/parser/setup-status.d.ts.map +1 -0
  358. package/dist/parser/setup-status.js +269 -0
  359. package/dist/parser/setup-status.js.map +1 -0
  360. package/dist/parser/shadow.d.ts +150 -19
  361. package/dist/parser/shadow.d.ts.map +1 -1
  362. package/dist/parser/shadow.js +548 -187
  363. package/dist/parser/shadow.js.map +1 -1
  364. package/dist/parser/skill-render.d.ts +317 -0
  365. package/dist/parser/skill-render.d.ts.map +1 -0
  366. package/dist/parser/skill-render.js +943 -0
  367. package/dist/parser/skill-render.js.map +1 -0
  368. package/dist/parser/traits.d.ts +3 -3
  369. package/dist/parser/traits.d.ts.map +1 -1
  370. package/dist/parser/traits.js +2 -2
  371. package/dist/parser/traits.js.map +1 -1
  372. package/dist/parser/validate-skills.d.ts +32 -0
  373. package/dist/parser/validate-skills.d.ts.map +1 -0
  374. package/dist/parser/validate-skills.js +202 -0
  375. package/dist/parser/validate-skills.js.map +1 -0
  376. package/dist/parser/validate.d.ts +45 -3
  377. package/dist/parser/validate.d.ts.map +1 -1
  378. package/dist/parser/validate.js +622 -105
  379. package/dist/parser/validate.js.map +1 -1
  380. package/dist/parser/yaml.d.ts +83 -19
  381. package/dist/parser/yaml.d.ts.map +1 -1
  382. package/dist/parser/yaml.js +478 -173
  383. package/dist/parser/yaml.js.map +1 -1
  384. package/dist/ralph/cli-renderer.d.ts +8 -1
  385. package/dist/ralph/cli-renderer.d.ts.map +1 -1
  386. package/dist/ralph/cli-renderer.js +105 -34
  387. package/dist/ralph/cli-renderer.js.map +1 -1
  388. package/dist/ralph/events.d.ts +10 -10
  389. package/dist/ralph/events.d.ts.map +1 -1
  390. package/dist/ralph/events.js +301 -98
  391. package/dist/ralph/events.js.map +1 -1
  392. package/dist/ralph/index.d.ts +5 -2
  393. package/dist/ralph/index.d.ts.map +1 -1
  394. package/dist/ralph/index.js +9 -3
  395. package/dist/ralph/index.js.map +1 -1
  396. package/dist/ralph/loop-errors.d.ts +83 -0
  397. package/dist/ralph/loop-errors.d.ts.map +1 -0
  398. package/dist/ralph/loop-errors.js +150 -0
  399. package/dist/ralph/loop-errors.js.map +1 -0
  400. package/dist/ralph/subagent.d.ts +94 -0
  401. package/dist/ralph/subagent.d.ts.map +1 -0
  402. package/dist/ralph/subagent.js +193 -0
  403. package/dist/ralph/subagent.js.map +1 -0
  404. package/dist/ralph/wrap-up.d.ts +125 -0
  405. package/dist/ralph/wrap-up.d.ts.map +1 -0
  406. package/dist/ralph/wrap-up.js +270 -0
  407. package/dist/ralph/wrap-up.js.map +1 -0
  408. package/dist/schema/batch.d.ts +97 -0
  409. package/dist/schema/batch.d.ts.map +1 -0
  410. package/dist/schema/batch.js +24 -0
  411. package/dist/schema/batch.js.map +1 -0
  412. package/dist/schema/common.d.ts +8 -2
  413. package/dist/schema/common.d.ts.map +1 -1
  414. package/dist/schema/common.js +42 -31
  415. package/dist/schema/common.js.map +1 -1
  416. package/dist/schema/inbox.d.ts +12 -12
  417. package/dist/schema/inbox.js +4 -4
  418. package/dist/schema/inbox.js.map +1 -1
  419. package/dist/schema/index.d.ts +8 -5
  420. package/dist/schema/index.d.ts.map +1 -1
  421. package/dist/schema/index.js +8 -5
  422. package/dist/schema/index.js.map +1 -1
  423. package/dist/schema/meta.d.ts +1454 -27
  424. package/dist/schema/meta.d.ts.map +1 -1
  425. package/dist/schema/meta.js +198 -21
  426. package/dist/schema/meta.js.map +1 -1
  427. package/dist/schema/plan.d.ts +285 -0
  428. package/dist/schema/plan.d.ts.map +1 -0
  429. package/dist/schema/plan.js +81 -0
  430. package/dist/schema/plan.js.map +1 -0
  431. package/dist/schema/spec.d.ts +72 -33
  432. package/dist/schema/spec.d.ts.map +1 -1
  433. package/dist/schema/spec.js +22 -9
  434. package/dist/schema/spec.js.map +1 -1
  435. package/dist/schema/task.d.ts +172 -161
  436. package/dist/schema/task.d.ts.map +1 -1
  437. package/dist/schema/task.js +21 -12
  438. package/dist/schema/task.js.map +1 -1
  439. package/dist/schema/triage.d.ts +266 -0
  440. package/dist/schema/triage.d.ts.map +1 -0
  441. package/dist/schema/triage.js +134 -0
  442. package/dist/schema/triage.js.map +1 -0
  443. package/dist/sessions/index.d.ts +2 -2
  444. package/dist/sessions/index.d.ts.map +1 -1
  445. package/dist/sessions/index.js +3 -3
  446. package/dist/sessions/index.js.map +1 -1
  447. package/dist/sessions/store.d.ts +241 -1
  448. package/dist/sessions/store.d.ts.map +1 -1
  449. package/dist/sessions/store.js +810 -31
  450. package/dist/sessions/store.js.map +1 -1
  451. package/dist/sessions/types.d.ts +10 -10
  452. package/dist/sessions/types.d.ts.map +1 -1
  453. package/dist/sessions/types.js +10 -9
  454. package/dist/sessions/types.js.map +1 -1
  455. package/dist/strings/errors.d.ts +55 -0
  456. package/dist/strings/errors.d.ts.map +1 -1
  457. package/dist/strings/errors.js +138 -106
  458. package/dist/strings/errors.js.map +1 -1
  459. package/dist/strings/guidance.d.ts.map +1 -1
  460. package/dist/strings/guidance.js +16 -16
  461. package/dist/strings/guidance.js.map +1 -1
  462. package/dist/strings/index.d.ts +4 -4
  463. package/dist/strings/index.d.ts.map +1 -1
  464. package/dist/strings/index.js +4 -4
  465. package/dist/strings/index.js.map +1 -1
  466. package/dist/strings/labels.d.ts +4 -0
  467. package/dist/strings/labels.d.ts.map +1 -1
  468. package/dist/strings/labels.js +45 -41
  469. package/dist/strings/labels.js.map +1 -1
  470. package/dist/strings/validation.d.ts.map +1 -1
  471. package/dist/strings/validation.js +71 -71
  472. package/dist/strings/validation.js.map +1 -1
  473. package/dist/triage/actions.d.ts +27 -0
  474. package/dist/triage/actions.d.ts.map +1 -0
  475. package/dist/triage/actions.js +95 -0
  476. package/dist/triage/actions.js.map +1 -0
  477. package/dist/triage/constants.d.ts +6 -0
  478. package/dist/triage/constants.d.ts.map +1 -0
  479. package/dist/triage/constants.js +7 -0
  480. package/dist/triage/constants.js.map +1 -0
  481. package/dist/triage/index.d.ts +3 -0
  482. package/dist/triage/index.d.ts.map +1 -0
  483. package/dist/triage/index.js +3 -0
  484. package/dist/triage/index.js.map +1 -0
  485. package/dist/utils/commit.d.ts +1 -1
  486. package/dist/utils/commit.d.ts.map +1 -1
  487. package/dist/utils/commit.js +28 -26
  488. package/dist/utils/commit.js.map +1 -1
  489. package/dist/utils/git.d.ts +1 -1
  490. package/dist/utils/git.d.ts.map +1 -1
  491. package/dist/utils/git.js +40 -38
  492. package/dist/utils/git.js.map +1 -1
  493. package/dist/utils/grep.js +11 -11
  494. package/dist/utils/grep.js.map +1 -1
  495. package/dist/utils/index.d.ts +7 -7
  496. package/dist/utils/index.d.ts.map +1 -1
  497. package/dist/utils/index.js +4 -4
  498. package/dist/utils/index.js.map +1 -1
  499. package/dist/utils/time.d.ts.map +1 -1
  500. package/dist/utils/time.js +10 -10
  501. package/dist/utils/time.js.map +1 -1
  502. package/package.json +28 -5
  503. package/plugin/.claude-plugin/marketplace.json +17 -0
  504. package/plugin/.claude-plugin/plugin.json +5 -0
  505. package/plugin/plugins/kspec/skills/create-workflow/SKILL.md +235 -0
  506. package/plugin/plugins/kspec/skills/help/SKILL.md +42 -0
  507. package/plugin/plugins/kspec/skills/observations/SKILL.md +143 -0
  508. package/plugin/plugins/kspec/skills/plan/SKILL.md +343 -0
  509. package/plugin/plugins/kspec/skills/reflect/SKILL.md +161 -0
  510. package/plugin/plugins/kspec/skills/review/SKILL.md +193 -0
  511. package/plugin/plugins/kspec/skills/task-work/SKILL.md +303 -0
  512. package/plugin/plugins/kspec/skills/triage/SKILL.md +206 -0
  513. package/plugin/plugins/kspec/skills/triage/docs/automation.md +120 -0
  514. package/plugin/plugins/kspec/skills/triage/docs/inbox.md +144 -0
  515. package/plugin/plugins/kspec/skills/triage/docs/observations.md +85 -0
  516. package/plugin/plugins/kspec/skills/triage-automation/SKILL.md +140 -0
  517. package/plugin/plugins/kspec/skills/triage-inbox/SKILL.md +232 -0
  518. package/plugin/plugins/kspec/skills/writing-specs/SKILL.md +340 -0
  519. package/templates/agents-sections/01-quick-start.md +22 -0
  520. package/templates/agents-sections/02-shadow-branch.md +34 -0
  521. package/templates/agents-sections/03-task-lifecycle.md +48 -0
  522. package/templates/agents-sections/04-pr-workflow.md +17 -0
  523. package/templates/agents-sections/05-commit-convention.md +27 -0
  524. package/templates/agents-sections/06-ralph-loop.md +45 -0
  525. package/templates/hooks/pre-commit +34 -0
  526. package/templates/skills/create-workflow/SKILL.md +228 -0
  527. package/templates/skills/help/SKILL.md +37 -0
  528. package/templates/skills/manifest.yaml +60 -0
  529. package/templates/skills/observations/SKILL.md +137 -0
  530. package/templates/skills/plan/SKILL.md +336 -0
  531. package/templates/skills/reflect/SKILL.md +155 -0
  532. package/templates/skills/review/SKILL.md +186 -0
  533. package/templates/skills/task-work/SKILL.md +296 -0
  534. package/templates/skills/triage/SKILL.md +199 -0
  535. package/templates/skills/triage/docs/automation.md +120 -0
  536. package/templates/skills/triage/docs/inbox.md +144 -0
  537. package/templates/skills/triage/docs/observations.md +85 -0
  538. package/templates/skills/triage-automation/SKILL.md +134 -0
  539. package/templates/skills/triage-inbox/SKILL.md +225 -0
  540. package/templates/skills/writing-specs/SKILL.md +333 -0
@@ -0,0 +1,228 @@
1
+ # Create Workflow
2
+
3
+ Formalize repeatable patterns into trackable kspec workflows. A meta-workflow for building new workflows with consistent structure.
4
+
5
+ ## When to Use
6
+
7
+ - Formalizing a repeated process into a trackable workflow
8
+ - Converting step-by-step documentation into executable steps
9
+ - Adding quality gates that are easy to skip without structure
10
+
11
+ **Not for:** Running existing workflows (use `kspec workflow start @id`), one-off processes, or tasks that don't repeat.
12
+
13
+ ## Identifying Good Candidates
14
+
15
+ Look for processes that are:
16
+
17
+ | Signal | Example |
18
+ |--------|---------|
19
+ | Step-by-step instructions in docs | "To release: bump version, tag, push, create release" |
20
+ | Checklists that get skipped | "Before merge: check CI, resolve threads, verify AC" |
21
+ | Repeated command sequences | "Start daemon, run tests, check output, stop daemon" |
22
+ | Quality gates with multiple criteria | "Review: AC coverage, test quality, code style, regressions" |
23
+
24
+ Good sources: AGENTS.md, existing skills, task notes, session reflections.
25
+
26
+ ## Workflow Structure
27
+
28
+ Every workflow has:
29
+
30
+ ```yaml
31
+ id: kebab-case-name
32
+ description: What this workflow does
33
+ trigger: when-it-starts
34
+ mode: interactive # or loop
35
+ steps:
36
+ - id: step-1
37
+ type: action # action, check, or decision
38
+ content: What to do in this step
39
+ ```
40
+
41
+ ### Triggers
42
+
43
+ | Trigger | When |
44
+ |---------|------|
45
+ | `manual` | Invoked explicitly |
46
+ | `session-start` | Beginning of work session |
47
+ | `session-end` | End of work session |
48
+ | `task-complete` | After completing a task |
49
+ | `behavior-change` | Before implementing changes |
50
+ | `pre-release` | Before creating a release |
51
+ | `pr-merge` | Before merging a PR |
52
+
53
+ ### Step Types
54
+
55
+ | Type | Purpose | Example |
56
+ |------|---------|---------|
57
+ | `action` | Do something | "Run tests and verify all pass" |
58
+ | `check` | Verify a condition | "All CI checks passing?" |
59
+ | `decision` | Choose a path | "Import or manual path?" |
60
+
61
+ ### Modes
62
+
63
+ - **interactive** — Pauses for user input at each step
64
+ - **loop** — Auto-resolves decisions, no user prompts (for automated agents)
65
+
66
+ Loop mode workflows typically have a `based_on` field referencing the interactive version.
67
+
68
+ ## Creating a Workflow
69
+
70
+ ### Step 1: Design the Steps
71
+
72
+ Before creating, outline your steps on paper:
73
+
74
+ 1. What's the trigger?
75
+ 2. What steps are needed?
76
+ 3. Which are actions vs checks vs decisions?
77
+ 4. What inputs does each step need?
78
+ 5. What's the exit criteria?
79
+
80
+ ### Step 2: Create the Workflow
81
+
82
+ ```bash
83
+ kspec meta add workflow \
84
+ --id my-workflow \
85
+ --trigger manual \
86
+ --description "Description of what this workflow does" \
87
+ --tag category \
88
+ --steps '[
89
+ {"id":"step-1","type":"action","content":"First action to take"},
90
+ {"id":"step-2","type":"check","content":"Verify the condition"},
91
+ {"id":"step-3","type":"decision","content":"Choose path A or B"}
92
+ ]'
93
+ ```
94
+
95
+ ### Step 3: Test the Workflow
96
+
97
+ Run through it end-to-end:
98
+
99
+ ```bash
100
+ kspec workflow start @my-workflow
101
+ kspec workflow next --notes "Testing step 1"
102
+ kspec workflow next --input decision="path-a" --notes "Chose A because..."
103
+ # Continue through all steps
104
+ kspec workflow show # Verify inputs and notes captured
105
+ ```
106
+
107
+ ### Step 4: Consider a Matching Skill
108
+
109
+ A workflow may benefit from a matching skill when:
110
+
111
+ | Create a skill when | Skip the skill when |
112
+ |---------------------|---------------------|
113
+ | Steps need detailed context | Workflow is self-contained |
114
+ | Multiple sub-documents help | Context exists elsewhere |
115
+ | Users need a `/command` entrypoint | Workflow is internal/automated |
116
+ | Complex decision logic | Simple sequential steps |
117
+
118
+ If creating a skill, write it to `templates/skills/<name>/SKILL.md` and add a manifest entry.
119
+
120
+ ### Step 5: Commit
121
+
122
+ ```bash
123
+ # Workflow definition auto-committed to shadow branch by kspec
124
+ # Skill files (if created) need manual commit to main branch
125
+ git add templates/skills/<name>/SKILL.md
126
+ git commit -m "feat: add <name> skill for workflow integration"
127
+ ```
128
+
129
+ ## Step Design Guidelines
130
+
131
+ ### Action Steps
132
+
133
+ Clear, specific instructions:
134
+
135
+ ```yaml
136
+ - id: run-tests
137
+ type: action
138
+ content: |
139
+ Run the full test suite. Fix any failures before proceeding.
140
+ Verify both unit and integration tests pass.
141
+ ```
142
+
143
+ ### Check Steps
144
+
145
+ Binary yes/no verification:
146
+
147
+ ```yaml
148
+ - id: ci-passing
149
+ type: check
150
+ content: |
151
+ Verify all CI checks are passing on the current HEAD.
152
+ If not, wait for CI or fix failures.
153
+ ```
154
+
155
+ ### Decision Steps
156
+
157
+ Clear options with guidance:
158
+
159
+ ```yaml
160
+ - id: choose-path
161
+ type: decision
162
+ content: |
163
+ Choose execution path:
164
+ - Import: 3+ specs, structured document, batch creation
165
+ - Manual: 1-2 specs, incremental, quick additions
166
+ ```
167
+
168
+ ### Tips
169
+
170
+ - Keep steps atomic — one action per step
171
+ - Include the "why" when it's not obvious
172
+ - Decision steps should list all options
173
+ - Check steps should describe what to do on failure
174
+ - Use `content` for detailed multi-line instructions
175
+
176
+ ## Loop Mode Variants
177
+
178
+ For automated agents, create a loop variant:
179
+
180
+ ```bash
181
+ kspec meta add workflow \
182
+ --id my-workflow-loop \
183
+ --trigger manual \
184
+ --mode loop \
185
+ --based-on @my-workflow \
186
+ --description "Automated variant of my-workflow" \
187
+ --steps '[...]'
188
+ ```
189
+
190
+ Loop variants typically:
191
+ - Auto-resolve decisions (pick the most common path)
192
+ - Skip user confirmation steps
193
+ - Add higher confidence thresholds
194
+ - Include automated exit conditions
195
+
196
+ ## Workflow Lifecycle
197
+
198
+ ```bash
199
+ # Create
200
+ kspec meta add workflow --id ... --steps '[...]'
201
+
202
+ # Run
203
+ kspec workflow start @id
204
+ kspec workflow next --notes "..."
205
+ kspec workflow next --input key=value
206
+
207
+ # Manage
208
+ kspec workflow show # Check progress
209
+ kspec workflow pause # Pause for later
210
+ kspec workflow resume # Resume paused run
211
+
212
+ # Update (edit the meta YAML)
213
+ kspec meta set workflow @id --steps '[...]'
214
+ ```
215
+
216
+ ## Regenerate Agent Instructions
217
+
218
+ After creating a workflow, regenerate agent instructions so the workflow appears in the available workflows list:
219
+
220
+ ```bash
221
+ kspec agents generate
222
+ ```
223
+
224
+ ## Integration
225
+
226
+ - **`/kspec:reflect`** — Session reflections surface patterns worth formalizing
227
+ - **`/kspec:observations`** — Friction observations may reveal missing workflows
228
+ - **`kspec agents generate`** — Regenerate after creating workflows
@@ -0,0 +1,37 @@
1
+ # kspec Help
2
+
3
+ Get help with kspec commands and workflows.
4
+
5
+ ## When to Use
6
+
7
+ Use this skill when:
8
+ - You need to understand kspec commands
9
+ - You want to learn about task and spec workflows
10
+ - You need help with CLI syntax
11
+
12
+ ## Quick Reference
13
+
14
+ ```bash
15
+ # Core commands
16
+ kspec help # Show all commands
17
+ kspec help <command> # Show command help
18
+ kspec task list # List tasks
19
+ kspec tasks ready # Show ready tasks
20
+ kspec item list # List spec items
21
+
22
+ # Task lifecycle
23
+ kspec task start @ref # Start working
24
+ kspec task note @ref "..." # Add note
25
+ kspec task submit @ref # Submit for review
26
+ kspec task complete @ref # Mark complete
27
+
28
+ # Spec management
29
+ kspec item add --title "..." # Create spec item
30
+ kspec item ac add @ref --given "..." --when "..." --then "..."
31
+ ```
32
+
33
+ ## Key Concepts
34
+
35
+ - **Spec items**: Define WHAT to build (requirements, features)
36
+ - **Tasks**: Track the WORK of building
37
+ - **Shadow branch**: Separate branch for spec/task state
@@ -0,0 +1,60 @@
1
+ # Core Skills Manifest
2
+ # This file defines the metadata for core skills shipped with kspec.
3
+ # The skill content is in ./<skill-id>/SKILL.md
4
+
5
+ skills:
6
+ - id: help
7
+ name: Kspec Help
8
+ description: Get help with kspec commands and workflows
9
+ platforms:
10
+ - claude-code
11
+ - id: observations
12
+ name: Observations
13
+ description: Capture and act on systemic patterns — friction, successes, questions, and ideas. The feedback loop that drives process improvement.
14
+ platforms:
15
+ - claude-code
16
+ - id: reflect
17
+ name: Session Reflection
18
+ description: Structured reflection at the end of work sessions. Identifies learnings, friction points, and improvements for system evolution.
19
+ platforms:
20
+ - claude-code
21
+ - id: triage
22
+ name: Triage
23
+ description: Triage inbox items systematically. Records decisions with audit trail, then executes actions. Supports inbox, observations, and automation eligibility triage.
24
+ platforms:
25
+ - claude-code
26
+ - id: triage-inbox
27
+ name: Inbox Triage
28
+ description: Process inbox items using the record-act pattern. Categorize, promote to spec/task, merge duplicates, defer, or delete stale items with full audit trail.
29
+ platforms:
30
+ - claude-code
31
+ - id: triage-automation
32
+ name: Automation Triage
33
+ description: Assess and prepare tasks for automation eligibility. Verify spec coverage, acceptance criteria, and task readiness for automated agents.
34
+ platforms:
35
+ - claude-code
36
+ - id: writing-specs
37
+ name: Writing Specs
38
+ description: Create and maintain specification items — modules, features, requirements, acceptance criteria, and traits. The source of truth for what to build.
39
+ platforms:
40
+ - claude-code
41
+ - id: plan
42
+ name: Plan to Spec
43
+ description: Translate approved plans into specs and tasks. Import structured documents or create incrementally. Plans persist as durable artifacts with audit trail.
44
+ platforms:
45
+ - claude-code
46
+ - id: task-work
47
+ name: Task Work
48
+ description: Structured task lifecycle — start, work, note, submit, complete. Fix cycle handling, scope management, loop mode for automation, and quality gates.
49
+ platforms:
50
+ - claude-code
51
+ - id: create-workflow
52
+ name: Create Workflow
53
+ description: Formalize repeatable patterns into trackable kspec workflows. Design steps, choose triggers, create loop variants, and integrate with skills.
54
+ platforms:
55
+ - claude-code
56
+ - id: review
57
+ name: Review
58
+ description: Kspec-specific review gates — spec alignment, own AC coverage, trait AC coverage, and validation integration. Building block for project-specific review workflows.
59
+ platforms:
60
+ - claude-code
@@ -0,0 +1,137 @@
1
+ # Observations
2
+
3
+ Capture and act on systemic patterns — friction, successes, questions, and ideas. Observations are the feedback loop that drives process improvement.
4
+
5
+ ## When to Use
6
+
7
+ - You hit friction (something harder than it should be)
8
+ - You notice a success worth replicating
9
+ - A systemic question arises (not session-specific)
10
+ - An improvement idea surfaces during work
11
+
12
+ **Not for:** Session-local questions (use `kspec meta question`), future work items (use `kspec inbox add`), or task-specific notes (use `kspec task note`).
13
+
14
+ ## Observation Types
15
+
16
+ | Type | When to use | Example |
17
+ |------|-------------|---------|
18
+ | `friction` | Something is harder than it should be | "Bulk updates require too many commands" |
19
+ | `success` | A pattern that worked well | "Dry-run before derive prevented duplicate tasks" |
20
+ | `question` | A systemic question about process | "When should agents use inbox vs tasks?" |
21
+ | `idea` | An improvement opportunity | "CLI could suggest next steps after task completion" |
22
+
23
+ ## Capturing Observations
24
+
25
+ Capture in the moment — don't wait until later. The value is in the raw context.
26
+
27
+ ```bash
28
+ # Friction: something was harder than it should be
29
+ kspec meta observe friction "Had to run 5 commands to update one spec field"
30
+
31
+ # Success: a pattern worth remembering
32
+ kspec meta observe success "Using --dry-run before derive prevented duplicate tasks"
33
+
34
+ # Question: systemic, not session-local
35
+ kspec meta observe question "When should agents enter plan mode vs just implement?"
36
+
37
+ # Idea: something that could improve the system
38
+ kspec meta observe idea "CLI could suggest next steps after task completion"
39
+
40
+ # Link to a workflow for context
41
+ kspec meta observe friction "Plan import dropped acceptance criteria" --workflow @spec-plan-import
42
+ ```
43
+
44
+ ## Reviewing Observations
45
+
46
+ ```bash
47
+ # All unresolved observations (default)
48
+ kspec meta observations
49
+
50
+ # Only those awaiting resolution
51
+ kspec meta observations --pending-resolution
52
+
53
+ # Filter by type
54
+ kspec meta observations --type friction
55
+ ```
56
+
57
+ ## Acting on Observations
58
+
59
+ ### Promote to Task
60
+
61
+ When an observation reveals clear, actionable work:
62
+
63
+ ```bash
64
+ kspec meta promote @ref --title "Add bulk AC command" --priority 2
65
+ ```
66
+
67
+ ### Resolve
68
+
69
+ When addressed, documented, or no longer relevant:
70
+
71
+ ```bash
72
+ # Single observation with resolution note
73
+ kspec meta resolve @ref "Fixed in PR #123"
74
+
75
+ # Batch resolve related observations
76
+ kspec meta resolve --refs @ref1 @ref2 @ref3 --resolution "All addressed by new workflow"
77
+ ```
78
+
79
+ ### Convert from Inbox
80
+
81
+ When an inbox item is really a pattern observation, not future work:
82
+
83
+ ```bash
84
+ kspec meta observe --from-inbox @inbox-ref
85
+ kspec meta observe --from-inbox @inbox-ref --type friction
86
+ ```
87
+
88
+ ## Decision Flow
89
+
90
+ ```
91
+ When you notice something during work:
92
+ ├── Is it future work?
93
+ │ └── Yes → kspec inbox add "..."
94
+ ├── Is it about THIS task only?
95
+ │ └── Yes → kspec task note @task "..."
96
+ └── Is it a systemic pattern?
97
+ └── Yes → kspec meta observe <type> "..."
98
+ ```
99
+
100
+ ```
101
+ For each pending observation:
102
+ ├── Still relevant?
103
+ │ ├── No → resolve with note
104
+ │ └── Yes → Needs action?
105
+ │ ├── No (just learning) → document and resolve
106
+ │ └── Yes → Scope clear?
107
+ │ ├── Yes → promote to task
108
+ │ └── No → add to inbox for later triage
109
+ ```
110
+
111
+ ## Where Observations Fit
112
+
113
+ | What you have | Where | Why |
114
+ |---------------|-------|-----|
115
+ | Vague idea for future | `inbox add` | Low-friction capture, triage later |
116
+ | Clear actionable work | `task add` | Ready to implement |
117
+ | Something was hard | `meta observe friction` | Informs process improvement |
118
+ | Something worked well | `meta observe success` | Worth replicating |
119
+ | Session-local question | `meta question add` | Track during current session |
120
+ | Systemic process question | `meta observe question` | Broader than one session |
121
+
122
+ ## Batch Capture
123
+
124
+ When capturing multiple observations at once (e.g., during reflection), use `kspec batch`:
125
+
126
+ ```bash
127
+ kspec batch --commands '[
128
+ {"command":"meta observe","args":{"type":"friction","content":"Bulk updates require too many commands"}},
129
+ {"command":"meta observe","args":{"type":"success","content":"Dry-run before derive prevented duplicates"}}
130
+ ]'
131
+ ```
132
+
133
+ ## Integration
134
+
135
+ - **`/kspec:triage observations`** — Processes pending observations during triage
136
+ - **`/kspec:reflect`** — Creates observations from session learnings
137
+ - **`kspec session start`** — Shows pending observation count