light-plan 0.0.0-stage → 0.1.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 (963) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3181 -2
  3. package/assets/README.md +111 -0
  4. package/assets/agents/lpm-developer.md +468 -0
  5. package/assets/agents/lpm-planner.md +532 -0
  6. package/assets/harnesses/claude.yml +43 -0
  7. package/assets/harnesses/copilot.yml +54 -0
  8. package/assets/harnesses/reasonix.yml +49 -0
  9. package/assets/hcm/light-plan.yml +45 -0
  10. package/assets/skills/lpm-board-health.md +243 -0
  11. package/assets/skills/lpm-board-setup.md +354 -0
  12. package/assets/skills/lpm-delivery.md +344 -0
  13. package/assets/skills/lpm-planning.md +411 -0
  14. package/assets/skills/lpm-templates.md +144 -0
  15. package/assets/skills/lpm.md +267 -0
  16. package/dist/cli/agent-view.d.ts +27 -0
  17. package/dist/cli/agent-view.js +247 -0
  18. package/dist/cli/agent-view.js.map +1 -0
  19. package/dist/cli/commands/agent/assets.d.ts +64 -0
  20. package/dist/cli/commands/agent/assets.js +106 -0
  21. package/dist/cli/commands/agent/assets.js.map +1 -0
  22. package/dist/cli/commands/agent/glob.d.ts +25 -0
  23. package/dist/cli/commands/agent/glob.js +82 -0
  24. package/dist/cli/commands/agent/glob.js.map +1 -0
  25. package/dist/cli/commands/agent/index.d.ts +11 -0
  26. package/dist/cli/commands/agent/index.js +284 -0
  27. package/dist/cli/commands/agent/index.js.map +1 -0
  28. package/dist/cli/commands/agent/install.d.ts +59 -0
  29. package/dist/cli/commands/agent/install.js +131 -0
  30. package/dist/cli/commands/agent/install.js.map +1 -0
  31. package/dist/cli/commands/agent/mapping.d.ts +175 -0
  32. package/dist/cli/commands/agent/mapping.js +256 -0
  33. package/dist/cli/commands/agent/mapping.js.map +1 -0
  34. package/dist/cli/commands/check.d.ts +2 -0
  35. package/dist/cli/commands/check.js +81 -0
  36. package/dist/cli/commands/check.js.map +1 -0
  37. package/dist/cli/commands/comment.d.ts +2 -0
  38. package/dist/cli/commands/comment.js +104 -0
  39. package/dist/cli/commands/comment.js.map +1 -0
  40. package/dist/cli/commands/convert.d.ts +2 -0
  41. package/dist/cli/commands/convert.js +115 -0
  42. package/dist/cli/commands/convert.js.map +1 -0
  43. package/dist/cli/commands/copy.d.ts +2 -0
  44. package/dist/cli/commands/copy.js +69 -0
  45. package/dist/cli/commands/copy.js.map +1 -0
  46. package/dist/cli/commands/export.d.ts +11 -0
  47. package/dist/cli/commands/export.js +226 -0
  48. package/dist/cli/commands/export.js.map +1 -0
  49. package/dist/cli/commands/flag.d.ts +2 -0
  50. package/dist/cli/commands/flag.js +172 -0
  51. package/dist/cli/commands/flag.js.map +1 -0
  52. package/dist/cli/commands/git.d.ts +11 -0
  53. package/dist/cli/commands/git.js +357 -0
  54. package/dist/cli/commands/git.js.map +1 -0
  55. package/dist/cli/commands/hcm/bundle.d.ts +60 -0
  56. package/dist/cli/commands/hcm/bundle.js +166 -0
  57. package/dist/cli/commands/hcm/bundle.js.map +1 -0
  58. package/dist/cli/commands/hcm/index.d.ts +11 -0
  59. package/dist/cli/commands/hcm/index.js +162 -0
  60. package/dist/cli/commands/hcm/index.js.map +1 -0
  61. package/dist/cli/commands/init.d.ts +2 -0
  62. package/dist/cli/commands/init.js +81 -0
  63. package/dist/cli/commands/init.js.map +1 -0
  64. package/dist/cli/commands/insert.d.ts +2 -0
  65. package/dist/cli/commands/insert.js +70 -0
  66. package/dist/cli/commands/insert.js.map +1 -0
  67. package/dist/cli/commands/instructions.d.ts +7 -0
  68. package/dist/cli/commands/instructions.js +256 -0
  69. package/dist/cli/commands/instructions.js.map +1 -0
  70. package/dist/cli/commands/link.d.ts +2 -0
  71. package/dist/cli/commands/link.js +121 -0
  72. package/dist/cli/commands/link.js.map +1 -0
  73. package/dist/cli/commands/mcp/config.d.ts +71 -0
  74. package/dist/cli/commands/mcp/config.js +119 -0
  75. package/dist/cli/commands/mcp/config.js.map +1 -0
  76. package/dist/cli/commands/mcp/index.d.ts +9 -0
  77. package/dist/cli/commands/mcp/index.js +92 -0
  78. package/dist/cli/commands/mcp/index.js.map +1 -0
  79. package/dist/cli/commands/mcp/serve.d.ts +1 -0
  80. package/dist/cli/commands/mcp/serve.js +76 -0
  81. package/dist/cli/commands/mcp/serve.js.map +1 -0
  82. package/dist/cli/commands/mcp/setup.d.ts +1 -0
  83. package/dist/cli/commands/mcp/setup.js +83 -0
  84. package/dist/cli/commands/mcp/setup.js.map +1 -0
  85. package/dist/cli/commands/me.d.ts +2 -0
  86. package/dist/cli/commands/me.js +85 -0
  87. package/dist/cli/commands/me.js.map +1 -0
  88. package/dist/cli/commands/move.d.ts +2 -0
  89. package/dist/cli/commands/move.js +81 -0
  90. package/dist/cli/commands/move.js.map +1 -0
  91. package/dist/cli/commands/new.d.ts +2 -0
  92. package/dist/cli/commands/new.js +222 -0
  93. package/dist/cli/commands/new.js.map +1 -0
  94. package/dist/cli/commands/open.d.ts +2 -0
  95. package/dist/cli/commands/open.js +43 -0
  96. package/dist/cli/commands/open.js.map +1 -0
  97. package/dist/cli/commands/period.d.ts +10 -0
  98. package/dist/cli/commands/period.js +165 -0
  99. package/dist/cli/commands/period.js.map +1 -0
  100. package/dist/cli/commands/profile.d.ts +2 -0
  101. package/dist/cli/commands/profile.js +133 -0
  102. package/dist/cli/commands/profile.js.map +1 -0
  103. package/dist/cli/commands/queue.d.ts +2 -0
  104. package/dist/cli/commands/queue.js +582 -0
  105. package/dist/cli/commands/queue.js.map +1 -0
  106. package/dist/cli/commands/remote.d.ts +10 -0
  107. package/dist/cli/commands/remote.js +3142 -0
  108. package/dist/cli/commands/remote.js.map +1 -0
  109. package/dist/cli/commands/rm.d.ts +2 -0
  110. package/dist/cli/commands/rm.js +63 -0
  111. package/dist/cli/commands/rm.js.map +1 -0
  112. package/dist/cli/commands/set.d.ts +2 -0
  113. package/dist/cli/commands/set.js +139 -0
  114. package/dist/cli/commands/set.js.map +1 -0
  115. package/dist/cli/commands/split.d.ts +2 -0
  116. package/dist/cli/commands/split.js +90 -0
  117. package/dist/cli/commands/split.js.map +1 -0
  118. package/dist/cli/commands/task.d.ts +2 -0
  119. package/dist/cli/commands/task.js +298 -0
  120. package/dist/cli/commands/task.js.map +1 -0
  121. package/dist/cli/commands/team.d.ts +2 -0
  122. package/dist/cli/commands/team.js +114 -0
  123. package/dist/cli/commands/team.js.map +1 -0
  124. package/dist/cli/commands/template.d.ts +2 -0
  125. package/dist/cli/commands/template.js +338 -0
  126. package/dist/cli/commands/template.js.map +1 -0
  127. package/dist/cli/commands/ui.d.ts +2 -0
  128. package/dist/cli/commands/ui.js +98 -0
  129. package/dist/cli/commands/ui.js.map +1 -0
  130. package/dist/cli/commands/upstream.d.ts +2 -0
  131. package/dist/cli/commands/upstream.js +218 -0
  132. package/dist/cli/commands/upstream.js.map +1 -0
  133. package/dist/cli/context.d.ts +24 -0
  134. package/dist/cli/context.js +52 -0
  135. package/dist/cli/context.js.map +1 -0
  136. package/dist/cli/index.d.ts +2 -0
  137. package/dist/cli/index.js +208 -0
  138. package/dist/cli/index.js.map +1 -0
  139. package/dist/cli/live.d.ts +71 -0
  140. package/dist/cli/live.js +182 -0
  141. package/dist/cli/live.js.map +1 -0
  142. package/dist/cli/plan.d.ts +28 -0
  143. package/dist/cli/plan.js +76 -0
  144. package/dist/cli/plan.js.map +1 -0
  145. package/dist/cli/prompt.d.ts +60 -0
  146. package/dist/cli/prompt.js +185 -0
  147. package/dist/cli/prompt.js.map +1 -0
  148. package/dist/cli/ui.d.ts +65 -0
  149. package/dist/cli/ui.js +79 -0
  150. package/dist/cli/ui.js.map +1 -0
  151. package/dist/core/board/dependency-rollup.d.ts +54 -0
  152. package/dist/core/board/dependency-rollup.js +72 -0
  153. package/dist/core/board/dependency-rollup.js.map +1 -0
  154. package/dist/core/board/flag-rollup.d.ts +33 -0
  155. package/dist/core/board/flag-rollup.js +56 -0
  156. package/dist/core/board/flag-rollup.js.map +1 -0
  157. package/dist/core/board/index.d.ts +21 -0
  158. package/dist/core/board/index.js +22 -0
  159. package/dist/core/board/index.js.map +1 -0
  160. package/dist/core/board/load/cache.d.ts +52 -0
  161. package/dist/core/board/load/cache.js +105 -0
  162. package/dist/core/board/load/cache.js.map +1 -0
  163. package/dist/core/board/load/fields.d.ts +33 -0
  164. package/dist/core/board/load/fields.js +154 -0
  165. package/dist/core/board/load/fields.js.map +1 -0
  166. package/dist/core/board/load/scan.d.ts +39 -0
  167. package/dist/core/board/load/scan.js +88 -0
  168. package/dist/core/board/load/scan.js.map +1 -0
  169. package/dist/core/board/load/tree.d.ts +10 -0
  170. package/dist/core/board/load/tree.js +114 -0
  171. package/dist/core/board/load/tree.js.map +1 -0
  172. package/dist/core/board/load.d.ts +69 -0
  173. package/dist/core/board/load.js +204 -0
  174. package/dist/core/board/load.js.map +1 -0
  175. package/dist/core/board/query.d.ts +126 -0
  176. package/dist/core/board/query.js +291 -0
  177. package/dist/core/board/query.js.map +1 -0
  178. package/dist/core/board/registry.d.ts +51 -0
  179. package/dist/core/board/registry.js +98 -0
  180. package/dist/core/board/registry.js.map +1 -0
  181. package/dist/core/board/remote-scopes.d.ts +71 -0
  182. package/dist/core/board/remote-scopes.js +103 -0
  183. package/dist/core/board/remote-scopes.js.map +1 -0
  184. package/dist/core/board/rollup.d.ts +32 -0
  185. package/dist/core/board/rollup.js +67 -0
  186. package/dist/core/board/rollup.js.map +1 -0
  187. package/dist/core/board/scope.d.ts +81 -0
  188. package/dist/core/board/scope.js +134 -0
  189. package/dist/core/board/scope.js.map +1 -0
  190. package/dist/core/board/simulate.d.ts +138 -0
  191. package/dist/core/board/simulate.js +141 -0
  192. package/dist/core/board/simulate.js.map +1 -0
  193. package/dist/core/board/tasks/index.d.ts +25 -0
  194. package/dist/core/board/tasks/index.js +26 -0
  195. package/dist/core/board/tasks/index.js.map +1 -0
  196. package/dist/core/board/tasks/ranking.d.ts +155 -0
  197. package/dist/core/board/tasks/ranking.js +374 -0
  198. package/dist/core/board/tasks/ranking.js.map +1 -0
  199. package/dist/core/board/tasks/roster.d.ts +42 -0
  200. package/dist/core/board/tasks/roster.js +82 -0
  201. package/dist/core/board/tasks/roster.js.map +1 -0
  202. package/dist/core/board/tasks.d.ts +1 -0
  203. package/dist/core/board/tasks.js +2 -0
  204. package/dist/core/board/tasks.js.map +1 -0
  205. package/dist/core/config/index.d.ts +9 -0
  206. package/dist/core/config/index.js +10 -0
  207. package/dist/core/config/index.js.map +1 -0
  208. package/dist/core/config/lookup.d.ts +114 -0
  209. package/dist/core/config/lookup.js +221 -0
  210. package/dist/core/config/lookup.js.map +1 -0
  211. package/dist/core/config/remote-blocks.d.ts +17 -0
  212. package/dist/core/config/remote-blocks.js +47 -0
  213. package/dist/core/config/remote-blocks.js.map +1 -0
  214. package/dist/core/config/schema.d.ts +10 -0
  215. package/dist/core/config/schema.js +451 -0
  216. package/dist/core/config/schema.js.map +1 -0
  217. package/dist/core/errors.d.ts +23 -0
  218. package/dist/core/errors.js +31 -0
  219. package/dist/core/errors.js.map +1 -0
  220. package/dist/core/gitsync/hosts.d.ts +40 -0
  221. package/dist/core/gitsync/hosts.js +115 -0
  222. package/dist/core/gitsync/hosts.js.map +1 -0
  223. package/dist/core/gitsync/index.d.ts +25 -0
  224. package/dist/core/gitsync/index.js +25 -0
  225. package/dist/core/gitsync/index.js.map +1 -0
  226. package/dist/core/gitsync/integrate.d.ts +72 -0
  227. package/dist/core/gitsync/integrate.js +115 -0
  228. package/dist/core/gitsync/integrate.js.map +1 -0
  229. package/dist/core/gitsync/repo.d.ts +61 -0
  230. package/dist/core/gitsync/repo.js +213 -0
  231. package/dist/core/gitsync/repo.js.map +1 -0
  232. package/dist/core/gitsync/run.d.ts +58 -0
  233. package/dist/core/gitsync/run.js +102 -0
  234. package/dist/core/gitsync/run.js.map +1 -0
  235. package/dist/core/gitsync/status.d.ts +59 -0
  236. package/dist/core/gitsync/status.js +81 -0
  237. package/dist/core/gitsync/status.js.map +1 -0
  238. package/dist/core/gitsync/sync.d.ts +111 -0
  239. package/dist/core/gitsync/sync.js +275 -0
  240. package/dist/core/gitsync/sync.js.map +1 -0
  241. package/dist/core/index.d.ts +31 -0
  242. package/dist/core/index.js +32 -0
  243. package/dist/core/index.js.map +1 -0
  244. package/dist/core/instructions/analyze.d.ts +70 -0
  245. package/dist/core/instructions/analyze.js +275 -0
  246. package/dist/core/instructions/analyze.js.map +1 -0
  247. package/dist/core/instructions/builtin.d.ts +21 -0
  248. package/dist/core/instructions/builtin.js +133 -0
  249. package/dist/core/instructions/builtin.js.map +1 -0
  250. package/dist/core/instructions/context.d.ts +155 -0
  251. package/dist/core/instructions/context.js +209 -0
  252. package/dist/core/instructions/context.js.map +1 -0
  253. package/dist/core/instructions/index.d.ts +29 -0
  254. package/dist/core/instructions/index.js +30 -0
  255. package/dist/core/instructions/index.js.map +1 -0
  256. package/dist/core/instructions/instructions.d.ts +90 -0
  257. package/dist/core/instructions/instructions.js +179 -0
  258. package/dist/core/instructions/instructions.js.map +1 -0
  259. package/dist/core/instructions/template.d.ts +108 -0
  260. package/dist/core/instructions/template.js +252 -0
  261. package/dist/core/instructions/template.js.map +1 -0
  262. package/dist/core/model/attributes.d.ts +16 -0
  263. package/dist/core/model/attributes.js +119 -0
  264. package/dist/core/model/attributes.js.map +1 -0
  265. package/dist/core/model/index.d.ts +10 -0
  266. package/dist/core/model/index.js +11 -0
  267. package/dist/core/model/index.js.map +1 -0
  268. package/dist/core/model/links.d.ts +34 -0
  269. package/dist/core/model/links.js +114 -0
  270. package/dist/core/model/links.js.map +1 -0
  271. package/dist/core/model/profile.d.ts +31 -0
  272. package/dist/core/model/profile.js +8 -0
  273. package/dist/core/model/profile.js.map +1 -0
  274. package/dist/core/model/types.d.ts +441 -0
  275. package/dist/core/model/types.js +167 -0
  276. package/dist/core/model/types.js.map +1 -0
  277. package/dist/core/model/zod.d.ts +6 -0
  278. package/dist/core/model/zod.js +11 -0
  279. package/dist/core/model/zod.js.map +1 -0
  280. package/dist/core/operations/board-index.d.ts +45 -0
  281. package/dist/core/operations/board-index.js +147 -0
  282. package/dist/core/operations/board-index.js.map +1 -0
  283. package/dist/core/operations/claim.d.ts +69 -0
  284. package/dist/core/operations/claim.js +115 -0
  285. package/dist/core/operations/claim.js.map +1 -0
  286. package/dist/core/operations/comment.d.ts +30 -0
  287. package/dist/core/operations/comment.js +46 -0
  288. package/dist/core/operations/comment.js.map +1 -0
  289. package/dist/core/operations/create.d.ts +82 -0
  290. package/dist/core/operations/create.js +306 -0
  291. package/dist/core/operations/create.js.map +1 -0
  292. package/dist/core/operations/flag.d.ts +58 -0
  293. package/dist/core/operations/flag.js +95 -0
  294. package/dist/core/operations/flag.js.map +1 -0
  295. package/dist/core/operations/git-sync.d.ts +148 -0
  296. package/dist/core/operations/git-sync.js +341 -0
  297. package/dist/core/operations/git-sync.js.map +1 -0
  298. package/dist/core/operations/index.d.ts +44 -0
  299. package/dist/core/operations/index.js +45 -0
  300. package/dist/core/operations/index.js.map +1 -0
  301. package/dist/core/operations/init.d.ts +25 -0
  302. package/dist/core/operations/init.js +122 -0
  303. package/dist/core/operations/init.js.map +1 -0
  304. package/dist/core/operations/link.d.ts +40 -0
  305. package/dist/core/operations/link.js +131 -0
  306. package/dist/core/operations/link.js.map +1 -0
  307. package/dist/core/operations/move.d.ts +43 -0
  308. package/dist/core/operations/move.js +103 -0
  309. package/dist/core/operations/move.js.map +1 -0
  310. package/dist/core/operations/profile.d.ts +23 -0
  311. package/dist/core/operations/profile.js +26 -0
  312. package/dist/core/operations/profile.js.map +1 -0
  313. package/dist/core/operations/remotes-off.d.ts +12 -0
  314. package/dist/core/operations/remotes-off.js +67 -0
  315. package/dist/core/operations/remotes-off.js.map +1 -0
  316. package/dist/core/operations/remove.d.ts +18 -0
  317. package/dist/core/operations/remove.js +114 -0
  318. package/dist/core/operations/remove.js.map +1 -0
  319. package/dist/core/operations/retype.d.ts +25 -0
  320. package/dist/core/operations/retype.js +59 -0
  321. package/dist/core/operations/retype.js.map +1 -0
  322. package/dist/core/operations/rollup.d.ts +74 -0
  323. package/dist/core/operations/rollup.js +121 -0
  324. package/dist/core/operations/rollup.js.map +1 -0
  325. package/dist/core/operations/shared.d.ts +133 -0
  326. package/dist/core/operations/shared.js +383 -0
  327. package/dist/core/operations/shared.js.map +1 -0
  328. package/dist/core/operations/update.d.ts +43 -0
  329. package/dist/core/operations/update.js +161 -0
  330. package/dist/core/operations/update.js.map +1 -0
  331. package/dist/core/operations/user.d.ts +27 -0
  332. package/dist/core/operations/user.js +68 -0
  333. package/dist/core/operations/user.js.map +1 -0
  334. package/dist/core/profile/current.d.ts +35 -0
  335. package/dist/core/profile/current.js +31 -0
  336. package/dist/core/profile/current.js.map +1 -0
  337. package/dist/core/profile/index.d.ts +14 -0
  338. package/dist/core/profile/index.js +15 -0
  339. package/dist/core/profile/index.js.map +1 -0
  340. package/dist/core/profile/schema.d.ts +9 -0
  341. package/dist/core/profile/schema.js +100 -0
  342. package/dist/core/profile/schema.js.map +1 -0
  343. package/dist/core/storage/activity.d.ts +78 -0
  344. package/dist/core/storage/activity.js +131 -0
  345. package/dist/core/storage/activity.js.map +1 -0
  346. package/dist/core/storage/atomic.d.ts +34 -0
  347. package/dist/core/storage/atomic.js +117 -0
  348. package/dist/core/storage/atomic.js.map +1 -0
  349. package/dist/core/storage/comments.d.ts +39 -0
  350. package/dist/core/storage/comments.js +88 -0
  351. package/dist/core/storage/comments.js.map +1 -0
  352. package/dist/core/storage/document.d.ts +16 -0
  353. package/dist/core/storage/document.js +98 -0
  354. package/dist/core/storage/document.js.map +1 -0
  355. package/dist/core/storage/frontmatter.d.ts +16 -0
  356. package/dist/core/storage/frontmatter.js +33 -0
  357. package/dist/core/storage/frontmatter.js.map +1 -0
  358. package/dist/core/storage/git.d.ts +8 -0
  359. package/dist/core/storage/git.js +48 -0
  360. package/dist/core/storage/git.js.map +1 -0
  361. package/dist/core/storage/index.d.ts +27 -0
  362. package/dist/core/storage/index.js +28 -0
  363. package/dist/core/storage/index.js.map +1 -0
  364. package/dist/core/storage/local.d.ts +57 -0
  365. package/dist/core/storage/local.js +133 -0
  366. package/dist/core/storage/local.js.map +1 -0
  367. package/dist/core/storage/lock.d.ts +85 -0
  368. package/dist/core/storage/lock.js +364 -0
  369. package/dist/core/storage/lock.js.map +1 -0
  370. package/dist/core/storage/paths.d.ts +125 -0
  371. package/dist/core/storage/paths.js +202 -0
  372. package/dist/core/storage/paths.js.map +1 -0
  373. package/dist/core/storage/state.d.ts +32 -0
  374. package/dist/core/storage/state.js +71 -0
  375. package/dist/core/storage/state.js.map +1 -0
  376. package/dist/core/storage/templates.d.ts +29 -0
  377. package/dist/core/storage/templates.js +62 -0
  378. package/dist/core/storage/templates.js.map +1 -0
  379. package/dist/core/storage/views.d.ts +18 -0
  380. package/dist/core/storage/views.js +62 -0
  381. package/dist/core/storage/views.js.map +1 -0
  382. package/dist/core/validation/check.d.ts +4 -0
  383. package/dist/core/validation/check.js +22 -0
  384. package/dist/core/validation/check.js.map +1 -0
  385. package/dist/core/validation/checks/collection.d.ts +4 -0
  386. package/dist/core/validation/checks/collection.js +152 -0
  387. package/dist/core/validation/checks/collection.js.map +1 -0
  388. package/dist/core/validation/checks/counters.d.ts +3 -0
  389. package/dist/core/validation/checks/counters.js +23 -0
  390. package/dist/core/validation/checks/counters.js.map +1 -0
  391. package/dist/core/validation/checks/dependencies.d.ts +3 -0
  392. package/dist/core/validation/checks/dependencies.js +58 -0
  393. package/dist/core/validation/checks/dependencies.js.map +1 -0
  394. package/dist/core/validation/checks/gitignore.d.ts +10 -0
  395. package/dist/core/validation/checks/gitignore.js +22 -0
  396. package/dist/core/validation/checks/gitignore.js.map +1 -0
  397. package/dist/core/validation/checks/index-file.d.ts +8 -0
  398. package/dist/core/validation/checks/index-file.js +26 -0
  399. package/dist/core/validation/checks/index-file.js.map +1 -0
  400. package/dist/core/validation/checks/index.d.ts +20 -0
  401. package/dist/core/validation/checks/index.js +21 -0
  402. package/dist/core/validation/checks/index.js.map +1 -0
  403. package/dist/core/validation/checks/issues.d.ts +3 -0
  404. package/dist/core/validation/checks/issues.js +152 -0
  405. package/dist/core/validation/checks/issues.js.map +1 -0
  406. package/dist/core/validation/checks/periods.d.ts +3 -0
  407. package/dist/core/validation/checks/periods.js +89 -0
  408. package/dist/core/validation/checks/periods.js.map +1 -0
  409. package/dist/core/validation/checks/remotes.d.ts +20 -0
  410. package/dist/core/validation/checks/remotes.js +42 -0
  411. package/dist/core/validation/checks/remotes.js.map +1 -0
  412. package/dist/core/validation/checks/resources.d.ts +3 -0
  413. package/dist/core/validation/checks/resources.js +77 -0
  414. package/dist/core/validation/checks/resources.js.map +1 -0
  415. package/dist/core/validation/checks/rollup.d.ts +27 -0
  416. package/dist/core/validation/checks/rollup.js +53 -0
  417. package/dist/core/validation/checks/rollup.js.map +1 -0
  418. package/dist/core/validation/checks/squads.d.ts +3 -0
  419. package/dist/core/validation/checks/squads.js +42 -0
  420. package/dist/core/validation/checks/squads.js.map +1 -0
  421. package/dist/core/validation/checks/templates.d.ts +14 -0
  422. package/dist/core/validation/checks/templates.js +119 -0
  423. package/dist/core/validation/checks/templates.js.map +1 -0
  424. package/dist/core/validation/fix.d.ts +7 -0
  425. package/dist/core/validation/fix.js +273 -0
  426. package/dist/core/validation/fix.js.map +1 -0
  427. package/dist/core/validation/index.d.ts +7 -0
  428. package/dist/core/validation/index.js +8 -0
  429. package/dist/core/validation/index.js.map +1 -0
  430. package/dist/core/validation/shared.d.ts +47 -0
  431. package/dist/core/validation/shared.js +66 -0
  432. package/dist/core/validation/shared.js.map +1 -0
  433. package/dist/mcp/context.d.ts +70 -0
  434. package/dist/mcp/context.js +110 -0
  435. package/dist/mcp/context.js.map +1 -0
  436. package/dist/mcp/index.d.ts +49 -0
  437. package/dist/mcp/index.js +90 -0
  438. package/dist/mcp/index.js.map +1 -0
  439. package/dist/mcp/reply.d.ts +28 -0
  440. package/dist/mcp/reply.js +34 -0
  441. package/dist/mcp/reply.js.map +1 -0
  442. package/dist/mcp/tools/plan/create.d.ts +3 -0
  443. package/dist/mcp/tools/plan/create.js +128 -0
  444. package/dist/mcp/tools/plan/create.js.map +1 -0
  445. package/dist/mcp/tools/plan/delete.d.ts +3 -0
  446. package/dist/mcp/tools/plan/delete.js +35 -0
  447. package/dist/mcp/tools/plan/delete.js.map +1 -0
  448. package/dist/mcp/tools/plan/graph.d.ts +3 -0
  449. package/dist/mcp/tools/plan/graph.js +53 -0
  450. package/dist/mcp/tools/plan/graph.js.map +1 -0
  451. package/dist/mcp/tools/plan/index.d.ts +15 -0
  452. package/dist/mcp/tools/plan/index.js +16 -0
  453. package/dist/mcp/tools/plan/index.js.map +1 -0
  454. package/dist/mcp/tools/plan/link.d.ts +3 -0
  455. package/dist/mcp/tools/plan/link.js +46 -0
  456. package/dist/mcp/tools/plan/link.js.map +1 -0
  457. package/dist/mcp/tools/plan/registrar.d.ts +10 -0
  458. package/dist/mcp/tools/plan/registrar.js +24 -0
  459. package/dist/mcp/tools/plan/registrar.js.map +1 -0
  460. package/dist/mcp/tools/plan/reshape.d.ts +3 -0
  461. package/dist/mcp/tools/plan/reshape.js +95 -0
  462. package/dist/mcp/tools/plan/reshape.js.map +1 -0
  463. package/dist/mcp/tools/plan/timeline.d.ts +3 -0
  464. package/dist/mcp/tools/plan/timeline.js +68 -0
  465. package/dist/mcp/tools/plan/timeline.js.map +1 -0
  466. package/dist/mcp/tools/plan/upstream.d.ts +14 -0
  467. package/dist/mcp/tools/plan/upstream.js +69 -0
  468. package/dist/mcp/tools/plan/upstream.js.map +1 -0
  469. package/dist/mcp/tools/plan.d.ts +1 -0
  470. package/dist/mcp/tools/plan.js +2 -0
  471. package/dist/mcp/tools/plan.js.map +1 -0
  472. package/dist/mcp/tools/read.d.ts +3 -0
  473. package/dist/mcp/tools/read.js +339 -0
  474. package/dist/mcp/tools/read.js.map +1 -0
  475. package/dist/mcp/tools/remote.d.ts +3 -0
  476. package/dist/mcp/tools/remote.js +254 -0
  477. package/dist/mcp/tools/remote.js.map +1 -0
  478. package/dist/mcp/tools/templates.d.ts +12 -0
  479. package/dist/mcp/tools/templates.js +165 -0
  480. package/dist/mcp/tools/templates.js.map +1 -0
  481. package/dist/mcp/tools/work.d.ts +16 -0
  482. package/dist/mcp/tools/work.js +359 -0
  483. package/dist/mcp/tools/work.js.map +1 -0
  484. package/dist/remote/accounts.d.ts +158 -0
  485. package/dist/remote/accounts.js +207 -0
  486. package/dist/remote/accounts.js.map +1 -0
  487. package/dist/remote/adopt.d.ts +139 -0
  488. package/dist/remote/adopt.js +181 -0
  489. package/dist/remote/adopt.js.map +1 -0
  490. package/dist/remote/anchor.d.ts +35 -0
  491. package/dist/remote/anchor.js +53 -0
  492. package/dist/remote/anchor.js.map +1 -0
  493. package/dist/remote/attributes.d.ts +103 -0
  494. package/dist/remote/attributes.js +245 -0
  495. package/dist/remote/attributes.js.map +1 -0
  496. package/dist/remote/audit.d.ts +112 -0
  497. package/dist/remote/audit.js +215 -0
  498. package/dist/remote/audit.js.map +1 -0
  499. package/dist/remote/capabilities.d.ts +267 -0
  500. package/dist/remote/capabilities.js +225 -0
  501. package/dist/remote/capabilities.js.map +1 -0
  502. package/dist/remote/check.d.ts +49 -0
  503. package/dist/remote/check.js +356 -0
  504. package/dist/remote/check.js.map +1 -0
  505. package/dist/remote/comments.d.ts +86 -0
  506. package/dist/remote/comments.js +87 -0
  507. package/dist/remote/comments.js.map +1 -0
  508. package/dist/remote/config-file.d.ts +237 -0
  509. package/dist/remote/config-file.js +640 -0
  510. package/dist/remote/config-file.js.map +1 -0
  511. package/dist/remote/conflicts.d.ts +110 -0
  512. package/dist/remote/conflicts.js +188 -0
  513. package/dist/remote/conflicts.js.map +1 -0
  514. package/dist/remote/connection-catalogue.d.ts +65 -0
  515. package/dist/remote/connection-catalogue.js +66 -0
  516. package/dist/remote/connection-catalogue.js.map +1 -0
  517. package/dist/remote/connection.d.ts +84 -0
  518. package/dist/remote/connection.js +229 -0
  519. package/dist/remote/connection.js.map +1 -0
  520. package/dist/remote/coverage.d.ts +65 -0
  521. package/dist/remote/coverage.js +244 -0
  522. package/dist/remote/coverage.js.map +1 -0
  523. package/dist/remote/credentials.d.ts +95 -0
  524. package/dist/remote/credentials.js +210 -0
  525. package/dist/remote/credentials.js.map +1 -0
  526. package/dist/remote/execute.d.ts +178 -0
  527. package/dist/remote/execute.js +1245 -0
  528. package/dist/remote/execute.js.map +1 -0
  529. package/dist/remote/fingerprint.d.ts +172 -0
  530. package/dist/remote/fingerprint.js +337 -0
  531. package/dist/remote/fingerprint.js.map +1 -0
  532. package/dist/remote/fixtures.d.ts +176 -0
  533. package/dist/remote/fixtures.js +432 -0
  534. package/dist/remote/fixtures.js.map +1 -0
  535. package/dist/remote/guard.d.ts +90 -0
  536. package/dist/remote/guard.js +83 -0
  537. package/dist/remote/guard.js.map +1 -0
  538. package/dist/remote/hierarchy.d.ts +141 -0
  539. package/dist/remote/hierarchy.js +129 -0
  540. package/dist/remote/hierarchy.js.map +1 -0
  541. package/dist/remote/index.d.ts +145 -0
  542. package/dist/remote/index.js +146 -0
  543. package/dist/remote/index.js.map +1 -0
  544. package/dist/remote/inspect.d.ts +103 -0
  545. package/dist/remote/inspect.js +152 -0
  546. package/dist/remote/inspect.js.map +1 -0
  547. package/dist/remote/labels.d.ts +75 -0
  548. package/dist/remote/labels.js +137 -0
  549. package/dist/remote/labels.js.map +1 -0
  550. package/dist/remote/ladder.d.ts +145 -0
  551. package/dist/remote/ladder.js +387 -0
  552. package/dist/remote/ladder.js.map +1 -0
  553. package/dist/remote/ledger.d.ts +97 -0
  554. package/dist/remote/ledger.js +148 -0
  555. package/dist/remote/ledger.js.map +1 -0
  556. package/dist/remote/lifecycle.d.ts +175 -0
  557. package/dist/remote/lifecycle.js +274 -0
  558. package/dist/remote/lifecycle.js.map +1 -0
  559. package/dist/remote/links.d.ts +411 -0
  560. package/dist/remote/links.js +748 -0
  561. package/dist/remote/links.js.map +1 -0
  562. package/dist/remote/managed-block.d.ts +182 -0
  563. package/dist/remote/managed-block.js +406 -0
  564. package/dist/remote/managed-block.js.map +1 -0
  565. package/dist/remote/managed-comment.d.ts +104 -0
  566. package/dist/remote/managed-comment.js +92 -0
  567. package/dist/remote/managed-comment.js.map +1 -0
  568. package/dist/remote/mapping.d.ts +282 -0
  569. package/dist/remote/mapping.js +336 -0
  570. package/dist/remote/mapping.js.map +1 -0
  571. package/dist/remote/merge.d.ts +172 -0
  572. package/dist/remote/merge.js +221 -0
  573. package/dist/remote/merge.js.map +1 -0
  574. package/dist/remote/periods.d.ts +209 -0
  575. package/dist/remote/periods.js +224 -0
  576. package/dist/remote/periods.js.map +1 -0
  577. package/dist/remote/plan.d.ts +671 -0
  578. package/dist/remote/plan.js +1210 -0
  579. package/dist/remote/plan.js.map +1 -0
  580. package/dist/remote/policy.d.ts +67 -0
  581. package/dist/remote/policy.js +67 -0
  582. package/dist/remote/policy.js.map +1 -0
  583. package/dist/remote/preflight.d.ts +112 -0
  584. package/dist/remote/preflight.js +342 -0
  585. package/dist/remote/preflight.js.map +1 -0
  586. package/dist/remote/prerequisites.d.ts +113 -0
  587. package/dist/remote/prerequisites.js +161 -0
  588. package/dist/remote/prerequisites.js.map +1 -0
  589. package/dist/remote/provider.d.ts +802 -0
  590. package/dist/remote/provider.js +27 -0
  591. package/dist/remote/provider.js.map +1 -0
  592. package/dist/remote/providers/github/config.d.ts +84 -0
  593. package/dist/remote/providers/github/config.js +161 -0
  594. package/dist/remote/providers/github/config.js.map +1 -0
  595. package/dist/remote/providers/github/connector.d.ts +33 -0
  596. package/dist/remote/providers/github/connector.js +774 -0
  597. package/dist/remote/providers/github/connector.js.map +1 -0
  598. package/dist/remote/providers/github/edges.d.ts +29 -0
  599. package/dist/remote/providers/github/edges.js +56 -0
  600. package/dist/remote/providers/github/edges.js.map +1 -0
  601. package/dist/remote/providers/github/hierarchy.d.ts +21 -0
  602. package/dist/remote/providers/github/hierarchy.js +46 -0
  603. package/dist/remote/providers/github/hierarchy.js.map +1 -0
  604. package/dist/remote/providers/github/index.d.ts +26 -0
  605. package/dist/remote/providers/github/index.js +69 -0
  606. package/dist/remote/providers/github/index.js.map +1 -0
  607. package/dist/remote/providers/github/project-iteration.d.ts +71 -0
  608. package/dist/remote/providers/github/project-iteration.js +203 -0
  609. package/dist/remote/providers/github/project-iteration.js.map +1 -0
  610. package/dist/remote/providers/github/project-provision.d.ts +130 -0
  611. package/dist/remote/providers/github/project-provision.js +247 -0
  612. package/dist/remote/providers/github/project-provision.js.map +1 -0
  613. package/dist/remote/providers/github/project-status.d.ts +115 -0
  614. package/dist/remote/providers/github/project-status.js +317 -0
  615. package/dist/remote/providers/github/project-status.js.map +1 -0
  616. package/dist/remote/providers/github/projects.d.ts +181 -0
  617. package/dist/remote/providers/github/projects.js +481 -0
  618. package/dist/remote/providers/github/projects.js.map +1 -0
  619. package/dist/remote/providers/github/translator.d.ts +103 -0
  620. package/dist/remote/providers/github/translator.js +400 -0
  621. package/dist/remote/providers/github/translator.js.map +1 -0
  622. package/dist/remote/providers/jira/config.d.ts +96 -0
  623. package/dist/remote/providers/jira/config.js +200 -0
  624. package/dist/remote/providers/jira/config.js.map +1 -0
  625. package/dist/remote/providers/jira/connector.d.ts +42 -0
  626. package/dist/remote/providers/jira/connector.js +1688 -0
  627. package/dist/remote/providers/jira/connector.js.map +1 -0
  628. package/dist/remote/providers/jira/fields.d.ts +292 -0
  629. package/dist/remote/providers/jira/fields.js +463 -0
  630. package/dist/remote/providers/jira/fields.js.map +1 -0
  631. package/dist/remote/providers/jira/hierarchy.d.ts +28 -0
  632. package/dist/remote/providers/jira/hierarchy.js +60 -0
  633. package/dist/remote/providers/jira/hierarchy.js.map +1 -0
  634. package/dist/remote/providers/jira/index.d.ts +29 -0
  635. package/dist/remote/providers/jira/index.js +100 -0
  636. package/dist/remote/providers/jira/index.js.map +1 -0
  637. package/dist/remote/providers/jira/links.d.ts +41 -0
  638. package/dist/remote/providers/jira/links.js +102 -0
  639. package/dist/remote/providers/jira/links.js.map +1 -0
  640. package/dist/remote/providers/jira/sprints.d.ts +80 -0
  641. package/dist/remote/providers/jira/sprints.js +107 -0
  642. package/dist/remote/providers/jira/sprints.js.map +1 -0
  643. package/dist/remote/providers/jira/translator.d.ts +61 -0
  644. package/dist/remote/providers/jira/translator.js +382 -0
  645. package/dist/remote/providers/jira/translator.js.map +1 -0
  646. package/dist/remote/providers/jira/types.d.ts +112 -0
  647. package/dist/remote/providers/jira/types.js +160 -0
  648. package/dist/remote/providers/jira/types.js.map +1 -0
  649. package/dist/remote/providers/jira/vocabulary.d.ts +55 -0
  650. package/dist/remote/providers/jira/vocabulary.js +91 -0
  651. package/dist/remote/providers/jira/vocabulary.js.map +1 -0
  652. package/dist/remote/providers/jsonfile/config.d.ts +61 -0
  653. package/dist/remote/providers/jsonfile/config.js +83 -0
  654. package/dist/remote/providers/jsonfile/config.js.map +1 -0
  655. package/dist/remote/providers/jsonfile/connector.d.ts +34 -0
  656. package/dist/remote/providers/jsonfile/connector.js +251 -0
  657. package/dist/remote/providers/jsonfile/connector.js.map +1 -0
  658. package/dist/remote/providers/jsonfile/index.d.ts +38 -0
  659. package/dist/remote/providers/jsonfile/index.js +90 -0
  660. package/dist/remote/providers/jsonfile/index.js.map +1 -0
  661. package/dist/remote/providers/jsonfile/store.d.ts +59 -0
  662. package/dist/remote/providers/jsonfile/store.js +48 -0
  663. package/dist/remote/providers/jsonfile/store.js.map +1 -0
  664. package/dist/remote/providers/jsonfile/translator.d.ts +54 -0
  665. package/dist/remote/providers/jsonfile/translator.js +199 -0
  666. package/dist/remote/providers/jsonfile/translator.js.map +1 -0
  667. package/dist/remote/providers/linear/config.d.ts +83 -0
  668. package/dist/remote/providers/linear/config.js +140 -0
  669. package/dist/remote/providers/linear/config.js.map +1 -0
  670. package/dist/remote/providers/linear/connector.d.ts +36 -0
  671. package/dist/remote/providers/linear/connector.js +438 -0
  672. package/dist/remote/providers/linear/connector.js.map +1 -0
  673. package/dist/remote/providers/linear/estimate.d.ts +63 -0
  674. package/dist/remote/providers/linear/estimate.js +112 -0
  675. package/dist/remote/providers/linear/estimate.js.map +1 -0
  676. package/dist/remote/providers/linear/index.d.ts +31 -0
  677. package/dist/remote/providers/linear/index.js +75 -0
  678. package/dist/remote/providers/linear/index.js.map +1 -0
  679. package/dist/remote/providers/linear/labels.d.ts +51 -0
  680. package/dist/remote/providers/linear/labels.js +129 -0
  681. package/dist/remote/providers/linear/labels.js.map +1 -0
  682. package/dist/remote/providers/linear/states.d.ts +97 -0
  683. package/dist/remote/providers/linear/states.js +124 -0
  684. package/dist/remote/providers/linear/states.js.map +1 -0
  685. package/dist/remote/providers/linear/translator.d.ts +48 -0
  686. package/dist/remote/providers/linear/translator.js +343 -0
  687. package/dist/remote/providers/linear/translator.js.map +1 -0
  688. package/dist/remote/providers/linear/vocabulary.d.ts +27 -0
  689. package/dist/remote/providers/linear/vocabulary.js +42 -0
  690. package/dist/remote/providers/linear/vocabulary.js.map +1 -0
  691. package/dist/remote/provision.d.ts +45 -0
  692. package/dist/remote/provision.js +81 -0
  693. package/dist/remote/provision.js.map +1 -0
  694. package/dist/remote/pull.d.ts +52 -0
  695. package/dist/remote/pull.js +116 -0
  696. package/dist/remote/pull.js.map +1 -0
  697. package/dist/remote/readiness.d.ts +67 -0
  698. package/dist/remote/readiness.js +336 -0
  699. package/dist/remote/readiness.js.map +1 -0
  700. package/dist/remote/rebase.d.ts +157 -0
  701. package/dist/remote/rebase.js +255 -0
  702. package/dist/remote/rebase.js.map +1 -0
  703. package/dist/remote/reconcile.d.ts +115 -0
  704. package/dist/remote/reconcile.js +140 -0
  705. package/dist/remote/reconcile.js.map +1 -0
  706. package/dist/remote/redact.d.ts +70 -0
  707. package/dist/remote/redact.js +132 -0
  708. package/dist/remote/redact.js.map +1 -0
  709. package/dist/remote/registry.d.ts +32 -0
  710. package/dist/remote/registry.js +54 -0
  711. package/dist/remote/registry.js.map +1 -0
  712. package/dist/remote/remotes.d.ts +94 -0
  713. package/dist/remote/remotes.js +182 -0
  714. package/dist/remote/remotes.js.map +1 -0
  715. package/dist/remote/render.d.ts +147 -0
  716. package/dist/remote/render.js +683 -0
  717. package/dist/remote/render.js.map +1 -0
  718. package/dist/remote/report.d.ts +63 -0
  719. package/dist/remote/report.js +345 -0
  720. package/dist/remote/report.js.map +1 -0
  721. package/dist/remote/resolutions.d.ts +115 -0
  722. package/dist/remote/resolutions.js +217 -0
  723. package/dist/remote/resolutions.js.map +1 -0
  724. package/dist/remote/scaffold.d.ts +134 -0
  725. package/dist/remote/scaffold.js +370 -0
  726. package/dist/remote/scaffold.js.map +1 -0
  727. package/dist/remote/scope.d.ts +57 -0
  728. package/dist/remote/scope.js +91 -0
  729. package/dist/remote/scope.js.map +1 -0
  730. package/dist/remote/selection.d.ts +38 -0
  731. package/dist/remote/selection.js +50 -0
  732. package/dist/remote/selection.js.map +1 -0
  733. package/dist/remote/shape.d.ts +141 -0
  734. package/dist/remote/shape.js +220 -0
  735. package/dist/remote/shape.js.map +1 -0
  736. package/dist/remote/status.d.ts +104 -0
  737. package/dist/remote/status.js +238 -0
  738. package/dist/remote/status.js.map +1 -0
  739. package/dist/remote/sync.d.ts +182 -0
  740. package/dist/remote/sync.js +523 -0
  741. package/dist/remote/sync.js.map +1 -0
  742. package/dist/remote/transport/budget.d.ts +48 -0
  743. package/dist/remote/transport/budget.js +68 -0
  744. package/dist/remote/transport/budget.js.map +1 -0
  745. package/dist/remote/transport/connector.d.ts +115 -0
  746. package/dist/remote/transport/connector.js +21 -0
  747. package/dist/remote/transport/connector.js.map +1 -0
  748. package/dist/remote/transport/error.d.ts +88 -0
  749. package/dist/remote/transport/error.js +196 -0
  750. package/dist/remote/transport/error.js.map +1 -0
  751. package/dist/remote/transport/gh.d.ts +20 -0
  752. package/dist/remote/transport/gh.js +41 -0
  753. package/dist/remote/transport/gh.js.map +1 -0
  754. package/dist/remote/transport/graphql.d.ts +25 -0
  755. package/dist/remote/transport/graphql.js +81 -0
  756. package/dist/remote/transport/graphql.js.map +1 -0
  757. package/dist/remote/transport/http.d.ts +47 -0
  758. package/dist/remote/transport/http.js +195 -0
  759. package/dist/remote/transport/http.js.map +1 -0
  760. package/dist/remote/transport/index.d.ts +18 -0
  761. package/dist/remote/transport/index.js +19 -0
  762. package/dist/remote/transport/index.js.map +1 -0
  763. package/dist/remote/transport/process.d.ts +39 -0
  764. package/dist/remote/transport/process.js +121 -0
  765. package/dist/remote/transport/process.js.map +1 -0
  766. package/dist/remote/transport/rest.d.ts +22 -0
  767. package/dist/remote/transport/rest.js +57 -0
  768. package/dist/remote/transport/rest.js.map +1 -0
  769. package/dist/remote/transport/retry.d.ts +91 -0
  770. package/dist/remote/transport/retry.js +138 -0
  771. package/dist/remote/transport/retry.js.map +1 -0
  772. package/dist/remote/transport-error.d.ts +19 -0
  773. package/dist/remote/transport-error.js +22 -0
  774. package/dist/remote/transport-error.js.map +1 -0
  775. package/dist/remote/vocabulary.d.ts +126 -0
  776. package/dist/remote/vocabulary.js +57 -0
  777. package/dist/remote/vocabulary.js.map +1 -0
  778. package/dist/runner/config.d.ts +7 -0
  779. package/dist/runner/config.js +61 -0
  780. package/dist/runner/config.js.map +1 -0
  781. package/dist/runner/git.d.ts +19 -0
  782. package/dist/runner/git.js +26 -0
  783. package/dist/runner/git.js.map +1 -0
  784. package/dist/runner/index.d.ts +20 -0
  785. package/dist/runner/index.js +21 -0
  786. package/dist/runner/index.js.map +1 -0
  787. package/dist/runner/loop.d.ts +46 -0
  788. package/dist/runner/loop.js +243 -0
  789. package/dist/runner/loop.js.map +1 -0
  790. package/dist/runner/pi.d.ts +39 -0
  791. package/dist/runner/pi.js +276 -0
  792. package/dist/runner/pi.js.map +1 -0
  793. package/dist/runner/shell.d.ts +44 -0
  794. package/dist/runner/shell.js +174 -0
  795. package/dist/runner/shell.js.map +1 -0
  796. package/dist/runner/stats.d.ts +19 -0
  797. package/dist/runner/stats.js +58 -0
  798. package/dist/runner/stats.js.map +1 -0
  799. package/dist/runner/types.d.ts +218 -0
  800. package/dist/runner/types.js +37 -0
  801. package/dist/runner/types.js.map +1 -0
  802. package/dist/server/git.d.ts +8 -0
  803. package/dist/server/git.js +50 -0
  804. package/dist/server/git.js.map +1 -0
  805. package/dist/server/http/respond.d.ts +13 -0
  806. package/dist/server/http/respond.js +59 -0
  807. package/dist/server/http/respond.js.map +1 -0
  808. package/dist/server/http/router.d.ts +27 -0
  809. package/dist/server/http/router.js +48 -0
  810. package/dist/server/http/router.js.map +1 -0
  811. package/dist/server/http/static.d.ts +14 -0
  812. package/dist/server/http/static.js +55 -0
  813. package/dist/server/http/static.js.map +1 -0
  814. package/dist/server/index.d.ts +58 -0
  815. package/dist/server/index.js +124 -0
  816. package/dist/server/index.js.map +1 -0
  817. package/dist/server/routes/board.d.ts +8 -0
  818. package/dist/server/routes/board.js +19 -0
  819. package/dist/server/routes/board.js.map +1 -0
  820. package/dist/server/routes/comments.d.ts +13 -0
  821. package/dist/server/routes/comments.js +36 -0
  822. package/dist/server/routes/comments.js.map +1 -0
  823. package/dist/server/routes/flags.d.ts +16 -0
  824. package/dist/server/routes/flags.js +37 -0
  825. package/dist/server/routes/flags.js.map +1 -0
  826. package/dist/server/routes/git.d.ts +13 -0
  827. package/dist/server/routes/git.js +84 -0
  828. package/dist/server/routes/git.js.map +1 -0
  829. package/dist/server/routes/remotes.d.ts +36 -0
  830. package/dist/server/routes/remotes.js +749 -0
  831. package/dist/server/routes/remotes.js.map +1 -0
  832. package/dist/server/routes/views.d.ts +10 -0
  833. package/dist/server/routes/views.js +63 -0
  834. package/dist/server/routes/views.js.map +1 -0
  835. package/dist/server/views/schema.d.ts +2 -0
  836. package/dist/server/views/schema.js +121 -0
  837. package/dist/server/views/schema.js.map +1 -0
  838. package/dist/server/views/store.d.ts +17 -0
  839. package/dist/server/views/store.js +67 -0
  840. package/dist/server/views/store.js.map +1 -0
  841. package/dist/shared/adf.d.ts +83 -0
  842. package/dist/shared/adf.js +795 -0
  843. package/dist/shared/adf.js.map +1 -0
  844. package/dist/shared/blocking.d.ts +130 -0
  845. package/dist/shared/blocking.js +179 -0
  846. package/dist/shared/blocking.js.map +1 -0
  847. package/dist/shared/changes.d.ts +100 -0
  848. package/dist/shared/changes.js +112 -0
  849. package/dist/shared/changes.js.map +1 -0
  850. package/dist/shared/cohesion.d.ts +75 -0
  851. package/dist/shared/cohesion.js +132 -0
  852. package/dist/shared/cohesion.js.map +1 -0
  853. package/dist/shared/dependency-rollup.d.ts +91 -0
  854. package/dist/shared/dependency-rollup.js +132 -0
  855. package/dist/shared/dependency-rollup.js.map +1 -0
  856. package/dist/shared/errors.d.ts +23 -0
  857. package/dist/shared/errors.js +24 -0
  858. package/dist/shared/errors.js.map +1 -0
  859. package/dist/shared/flag-rollup.d.ts +88 -0
  860. package/dist/shared/flag-rollup.js +119 -0
  861. package/dist/shared/flag-rollup.js.map +1 -0
  862. package/dist/shared/git-sync.d.ts +90 -0
  863. package/dist/shared/git-sync.js +9 -0
  864. package/dist/shared/git-sync.js.map +1 -0
  865. package/dist/shared/index.d.ts +40 -0
  866. package/dist/shared/index.js +41 -0
  867. package/dist/shared/index.js.map +1 -0
  868. package/dist/shared/model.d.ts +218 -0
  869. package/dist/shared/model.js +95 -0
  870. package/dist/shared/model.js.map +1 -0
  871. package/dist/shared/period-query.d.ts +21 -0
  872. package/dist/shared/period-query.js +26 -0
  873. package/dist/shared/period-query.js.map +1 -0
  874. package/dist/shared/period-stance.d.ts +45 -0
  875. package/dist/shared/period-stance.js +50 -0
  876. package/dist/shared/period-stance.js.map +1 -0
  877. package/dist/shared/plans/breakdown.d.ts +66 -0
  878. package/dist/shared/plans/breakdown.js +186 -0
  879. package/dist/shared/plans/breakdown.js.map +1 -0
  880. package/dist/shared/plans/index.d.ts +21 -0
  881. package/dist/shared/plans/index.js +22 -0
  882. package/dist/shared/plans/index.js.map +1 -0
  883. package/dist/shared/plans/instantiate.d.ts +61 -0
  884. package/dist/shared/plans/instantiate.js +184 -0
  885. package/dist/shared/plans/instantiate.js.map +1 -0
  886. package/dist/shared/plans/reading.d.ts +79 -0
  887. package/dist/shared/plans/reading.js +149 -0
  888. package/dist/shared/plans/reading.js.map +1 -0
  889. package/dist/shared/plans/reparent.d.ts +54 -0
  890. package/dist/shared/plans/reparent.js +217 -0
  891. package/dist/shared/plans/reparent.js.map +1 -0
  892. package/dist/shared/plans/timeline.d.ts +93 -0
  893. package/dist/shared/plans/timeline.js +224 -0
  894. package/dist/shared/plans/timeline.js.map +1 -0
  895. package/dist/shared/plans/upstream.d.ts +67 -0
  896. package/dist/shared/plans/upstream.js +73 -0
  897. package/dist/shared/plans/upstream.js.map +1 -0
  898. package/dist/shared/remote-api.d.ts +413 -0
  899. package/dist/shared/remote-api.js +11 -0
  900. package/dist/shared/remote-api.js.map +1 -0
  901. package/dist/shared/remote-coverage.d.ts +120 -0
  902. package/dist/shared/remote-coverage.js +98 -0
  903. package/dist/shared/remote-coverage.js.map +1 -0
  904. package/dist/shared/remote-readiness.d.ts +162 -0
  905. package/dist/shared/remote-readiness.js +49 -0
  906. package/dist/shared/remote-readiness.js.map +1 -0
  907. package/dist/shared/remote-status.d.ts +268 -0
  908. package/dist/shared/remote-status.js +79 -0
  909. package/dist/shared/remote-status.js.map +1 -0
  910. package/dist/shared/rollup.d.ts +90 -0
  911. package/dist/shared/rollup.js +119 -0
  912. package/dist/shared/rollup.js.map +1 -0
  913. package/dist/shared/static.d.ts +65 -0
  914. package/dist/shared/static.js +107 -0
  915. package/dist/shared/static.js.map +1 -0
  916. package/dist/shared/template-params.d.ts +80 -0
  917. package/dist/shared/template-params.js +141 -0
  918. package/dist/shared/template-params.js.map +1 -0
  919. package/dist/shared/view.d.ts +105 -0
  920. package/dist/shared/view.js +44 -0
  921. package/dist/shared/view.js.map +1 -0
  922. package/dist/shared/work-unit.d.ts +34 -0
  923. package/dist/shared/work-unit.js +47 -0
  924. package/dist/shared/work-unit.js.map +1 -0
  925. package/dist/sync/apply.d.ts +21 -0
  926. package/dist/sync/apply.js +149 -0
  927. package/dist/sync/apply.js.map +1 -0
  928. package/dist/sync/dto.d.ts +9 -0
  929. package/dist/sync/dto.js +162 -0
  930. package/dist/sync/dto.js.map +1 -0
  931. package/dist/sync/index.d.ts +24 -0
  932. package/dist/sync/index.js +25 -0
  933. package/dist/sync/index.js.map +1 -0
  934. package/dist/sync/patch.d.ts +13 -0
  935. package/dist/sync/patch.js +212 -0
  936. package/dist/sync/patch.js.map +1 -0
  937. package/dist/sync/session.d.ts +31 -0
  938. package/dist/sync/session.js +55 -0
  939. package/dist/sync/session.js.map +1 -0
  940. package/dist/sync/static.d.ts +11 -0
  941. package/dist/sync/static.js +33 -0
  942. package/dist/sync/static.js.map +1 -0
  943. package/package.json +95 -4
  944. package/templates/blank.yml +71 -0
  945. package/templates/context/bug.md +107 -0
  946. package/templates/context/default.md +119 -0
  947. package/templates/context/epic.md +81 -0
  948. package/templates/context/feature.md +91 -0
  949. package/templates/context/research.md +87 -0
  950. package/templates/context/review.md +81 -0
  951. package/templates/context/story.md +94 -0
  952. package/templates/context/sub_task.md +108 -0
  953. package/templates/context/task.md +86 -0
  954. package/templates/context/test.md +73 -0
  955. package/templates/context/user_story.md +147 -0
  956. package/templates/kanban.yml +226 -0
  957. package/templates/scrum.yml +567 -0
  958. package/web/dist/assets/index-D0j8OnHq.js +35 -0
  959. package/web/dist/assets/index-DFL7v8aP.css +1 -0
  960. package/web/dist/index.html +13 -0
  961. package/web/dist-viewer/assets/index-Bcns6OuC.css +1 -0
  962. package/web/dist-viewer/assets/index-vVXzeiFo.js +7 -0
  963. package/web/dist-viewer/index.html +14 -0
@@ -0,0 +1,532 @@
1
+ ---
2
+ name: lpm-planner
3
+ description: Scrum master / product manager for a light-plan board. Use when the task is to populate or reshape the plan rather than implement it — "write an epic for X", "break this feature into stories", "plan the sprint", "assign this work", "turn this brief into tickets", "why is nobody being offered work". Writes epics, features and stories with real requirements and a definition of done, sequences them with dependencies, and assigns them so they actually reach the team.
4
+ roles:
5
+ - pm
6
+ tools:
7
+ - Read
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - TodoWrite
12
+ - mcp__light-plan__board_overview
13
+ - mcp__light-plan__list_documents
14
+ - mcp__light-plan__get_document
15
+ - mcp__light-plan__check_board
16
+ - mcp__light-plan__list_templates
17
+ - mcp__light-plan__get_template
18
+ - mcp__light-plan__instantiate_template
19
+ - mcp__light-plan__create_document
20
+ - mcp__light-plan__update_document
21
+ - mcp__light-plan__convert_document
22
+ - mcp__light-plan__split_issue
23
+ - mcp__light-plan__insert_between
24
+ - mcp__light-plan__copy_documents
25
+ - mcp__light-plan__delete_document
26
+ - mcp__light-plan__link_issues
27
+ - mcp__light-plan__next_tasks
28
+ - mcp__light-plan__current_tasks
29
+ - mcp__light-plan__team_load
30
+ - mcp__light-plan__add_comment
31
+ - mcp__light-plan__list_comments
32
+ - mcp__light-plan__flagged_issues
33
+ - mcp__light-plan__clear_flag
34
+ ---
35
+
36
+ You are the scrum master and product manager for a distributed team whose plan
37
+ lives in a **light-plan** board — a `.lpm` folder of markdown, versioned with git.
38
+ You turn intent into work that a developer, or an agent, can pick up and finish
39
+ without asking you anything.
40
+
41
+ Your output is not documents. It is **a board that routes**: every ticket lands in
42
+ front of the right person at the right time, carrying enough context to be started
43
+ cold. A beautifully written epic that nobody is ever offered is a failure.
44
+
45
+ ## The board defines its own vocabulary — read it first
46
+
47
+ **Always call `board_overview` before anything else.** There is no universal
48
+ "epic", "story" or "done". It returns:
49
+
50
+ - `types` and `hierarchy` — the document types and the exact nesting they allow;
51
+ - `statuses`, with which are `active` and which `terminal`;
52
+ - `priorityAttribute` and `effortAttribute` — the two user-defined attributes the
53
+ engine actually reads, to rank work and to add up load;
54
+ - each type's `attributes`, with their types and allowed enum values;
55
+ - whether the board has periods and resources at all.
56
+
57
+ Use those names exactly. Never invent a type, status or attribute.
58
+
59
+ **The hierarchy is not advice.** A type's position in the list *is* the folder
60
+ depth it must sit at. If the hierarchy is `program > epic > feature > user_story`,
61
+ a `user_story` needs a `feature` parent — creating one under an epic is rejected.
62
+ Check the hierarchy before you plan the shape of anything.
63
+
64
+ ## Check the registry before you write anything
65
+
66
+ **Call `list_templates` as soon as you have called `board_overview`.** The board's
67
+ registry holds reusable pieces of plan this team has already worked out: a
68
+ feature with the three stories it always needs, the sequence a migration has to
69
+ follow, the checklist a release goes through.
70
+
71
+ Two questions of what it returns:
72
+
73
+ - **Does one cover what I am about to write?** Then `instantiate_template` it,
74
+ with the parameters filled in. Typing the same shape by hand is slower and
75
+ produces something subtly different from every other one on the board.
76
+ - **Does one describe a *process* my work falls under?** A template named
77
+ "Database migration" is this team saying "this is how we do those". Follow it
78
+ even when the work looks small enough to skip a step — skipping it is a
79
+ decision, and it is not yours to make silently.
80
+
81
+ `get_template` first: it lists the parameters and the whole tree that would
82
+ land, and a template dropped under the wrong parent is refused rather than
83
+ guessed at. An empty registry is a fine answer; an unread one is not.
84
+
85
+ When you have created the same shape by hand for the third time, say so and
86
+ offer to add it to the registry. `lpm-templates` is the reference for writing one.
87
+
88
+ ## The one mechanic everything depends on
89
+
90
+ Work reaches a developer through `next_tasks`, and it offers an issue only when
91
+ **all** of these hold:
92
+
93
+ 1. it is a **work unit** — it has no children, or its type is declared `atomic`
94
+ and it is taken whole (in which case nothing inside it is offered);
95
+ 2. its status is neither terminal nor already active;
96
+ 3. it is assigned to that person, **or** parked in a generic pool they cover;
97
+ 4. every issue in its `depends_on` is finished.
98
+
99
+ Four consequences you must plan around:
100
+
101
+ - **Assigning an epic assigns nothing.** Containers are never offered — the work
102
+ units under them carry the work. Assign those.
103
+ - **A dependency is a gate, not a note.** `depends_on` is the only thing that
104
+ sequences a distributed team. Use it deliberately; every edge you add is work
105
+ someone cannot start yet.
106
+ - **A pool with no coverage is a dead end.** Work parked in a generic resource
107
+ nobody covers can never be picked up. `team_load` reports these as `uncovered`.
108
+ - **Unassigned work is invisible by default.** It reaches people only when they
109
+ pass `includeUnassigned`. Deliberate backlog, fine; accidental, and it sits
110
+ there forever.
111
+
112
+ ## Writing a ticket
113
+
114
+ A ticket is startable when someone who has never met you can read it and know what
115
+ to build, why, and when to stop. That is the bar. Judge every ticket you write
116
+ against it.
117
+
118
+ ### Titles
119
+
120
+ A capability, in the user's language, specific enough to be unambiguous in a list
121
+ of forty. `Guest checkout` is a topic. `Let a signed-out shopper complete a
122
+ purchase with an email address` is a ticket.
123
+
124
+ ### Bodies
125
+
126
+ Each type carries a template from `.lpm/config.yml` — creating a document without
127
+ a `body` pre-populates it. **Prefer filling in that template** to inventing your
128
+ own shape, so every ticket on the board reads alike. If you supply `body`, it
129
+ replaces the template entirely, so keep the same headings.
130
+
131
+ **Every body you write is read as part of a brief, not on its own.** A developer
132
+ picking a story up calls `get_instructions` (`lpm instructions <id>`), which
133
+ stacks the titles and bodies of the whole ancestry above the story: your
134
+ programme, then your epic, then your feature, then the story. Two things follow.
135
+
136
+ - **Do not repeat the level above.** The developer already has it, in order,
137
+ immediately before yours. Restating the epic's goal in every story makes the
138
+ brief long and the real requirement hard to find.
139
+ - **A thin epic is a thin brief for every story under it.** The epic body is
140
+ where "why" lives, and it is the only place a developer will find it. Write it
141
+ once, properly, and let the stories be specific.
142
+
143
+ `lpm instructions <id>` on a ticket you just wrote is the cheapest review there
144
+ is: it shows you exactly what the developer will be handed.
145
+
146
+ A story that is ready to start answers four things:
147
+
148
+ ```markdown
149
+ ## Context
150
+ Why this exists, in two or three sentences. The user problem or the technical
151
+ force behind it. What breaks or stays broken if it is not done. Link the epic's
152
+ goal rather than restating it.
153
+
154
+ ## Requirements
155
+ - Specific, testable statements. Each one independently checkable.
156
+ - Name the real constraints: the endpoint, the format, the limit, the error case.
157
+ - Say what happens when it goes wrong, not only when it goes right.
158
+
159
+ ## Definition of done
160
+ - [ ] The observable outcome, in terms someone can verify without you.
161
+ - [ ] Tests: which cases, at which level.
162
+ - [ ] Docs / config / migration touched, if any.
163
+ - [ ] Anything that must be true for the *next* ticket in the chain to start.
164
+
165
+ ## Out of scope
166
+ What a reasonable developer might otherwise pull in. This is the section that
167
+ prevents scope creep, and the one most often omitted.
168
+
169
+ ## Notes
170
+ Where to start looking (`src/…`), prior art, links, the decision already made
171
+ so nobody re-litigates it.
172
+ ```
173
+
174
+ Adapt the headings to the board's own templates. Drop sections that would be
175
+ empty — but **never** drop *Definition of done*. A ticket without it cannot be
176
+ finished, only abandoned; the developer will guess, and you will not like the
177
+ guess.
178
+
179
+ ### The failure modes to check yourself against
180
+
181
+ | Smell | Why it fails | Fix |
182
+ | --- | --- | --- |
183
+ | "Improve error handling" | Nothing to verify; never finishable | Name the errors and the expected behaviour for each |
184
+ | "Also update the docs" bolted on | Two units of work, one status | Separate ticket, or an explicit DoD line |
185
+ | Requirements that restate the title | Adds no information | Delete, or write the actual constraints |
186
+ | No *Out of scope* on anything vague | Scope creep is the default | Add it |
187
+ | A story a developer must interpret | Ten developers, ten features | Make it testable |
188
+ | Implementation steps as requirements | Prescribes the how, forecloses better designs | State the outcome; put suggestions in *Notes* |
189
+
190
+ ### Point every ticket at the files it is about
191
+
192
+ `relatedFiles` is a list of paths, written on the issue, that a developer's brief
193
+ prints under *Files this is about* — the first thing they will open. Fill it in
194
+ when you know it:
195
+
196
+ ```
197
+ create_document {
198
+ type: "user_story",
199
+ title: "Let a signed-out shopper complete a purchase with an email address",
200
+ parent: "LP-14",
201
+ relatedFiles: ["docs/prd.md#L120-L164", "src/checkout/session.ts"],
202
+ …
203
+ }
204
+ ```
205
+
206
+ Two kinds of entry are worth more than the rest:
207
+
208
+ - **The requirement you wrote the ticket from**, with a line range if you have
209
+ one: `docs/prd.md#L120-L164`. This is the difference between a developer reading
210
+ your paraphrase of the PRD and reading the PRD. Your summary in *Context* is
211
+ still worth writing — it says which part matters — but it should not be the only
212
+ copy of the requirement they can reach.
213
+ - **The code you already know has to change**, when you know it. If you do not,
214
+ leave it empty rather than guessing: a wrong path costs the reader more than a
215
+ missing one, and the developer will add the real ones as they go.
216
+
217
+ Nothing is checked against the filesystem, so naming a file that does not exist
218
+ yet is fine and often exactly right — it is how you say "create this here".
219
+
220
+ The payoff is on the *next* ticket. Where issue B depends on issue A, B's brief
221
+ lists the files A named, under *what that work touched*. Sequencing tickets and
222
+ naming their files is what turns a dependency edge from "wait for that" into
223
+ "read that first, here is where it landed".
224
+
225
+ ### Attributes
226
+
227
+ Set the board's `priorityAttribute` and `effortAttribute` on every leaf — they are
228
+ not decoration. Priority drives the order of `next_tasks`; effort drives
229
+ `team_load` and `split --splitEffort`. Enum attributes only accept the values
230
+ `board_overview` lists.
231
+
232
+ ```
233
+ create_document {
234
+ type: "user_story",
235
+ title: "Let a signed-out shopper complete a purchase with an email address",
236
+ parent: "LP-14",
237
+ attributes: { story_points: 5, priority: "high" },
238
+ body: "## Context\n…"
239
+ }
240
+ ```
241
+
242
+ ## Breaking work down
243
+
244
+ Aim for leaves that are **one developer, a few days, one reviewable change**.
245
+ Smaller than that and the dependency graph costs more than it buys; larger and the
246
+ ticket stalls, hides risk, and cannot be reviewed.
247
+
248
+ ### Split along seams that can be finished separately
249
+
250
+ Good seams: a layer (schema → API → UI), a user-visible slice (read-only view →
251
+ editing → bulk edit), a risk boundary (spike out the unknown first, then build on
252
+ the answer). Bad seams: "part 1 / part 2", or anything where the first piece
253
+ cannot be merged and left alone.
254
+
255
+ ### The reshaping tools
256
+
257
+ These go through the same planners as the CLI and the web canvas, so the graph is
258
+ rewired for you — whatever blocked the original blocks the first piece, and
259
+ whatever waited on it waits on the last. Never rebuild that by hand.
260
+
261
+ ```
262
+ split_issue { id, titles: ["Schema", "API", "UI"], mode: "children" }
263
+ ```
264
+ Nests the pieces inside the original, which becomes a container. Use when the
265
+ parent is a meaningful unit — a feature that stays on the board.
266
+
267
+ ```
268
+ split_issue { id, titles: [...], mode: "replace", splitEffort: true }
269
+ ```
270
+ Puts the pieces where it stood and deletes it. Use when the original was simply
271
+ too big to be one thing. `splitEffort` divides the effort attribute across them.
272
+
273
+ `chain` defaults to **true**: each piece depends on the one before it. That is
274
+ right for a layered split and wrong for independent work — pass `chain: false`
275
+ when the pieces really are parallel, or you will serialise your whole team by
276
+ accident.
277
+
278
+ ```
279
+ insert_between { source: "LP-4", target: "LP-7", title: "Validate the payload" }
280
+ ```
281
+ Something must happen in the middle of an existing dependency. The edge is
282
+ *replaced*: `LP-4 → LP-7` becomes `LP-4 → new → LP-7`.
283
+
284
+ ```
285
+ convert_document { id, under: "LP-9" } # demote to fit a new parent
286
+ convert_document { id, type: "feature" } # change what it is
287
+ convert_document { id, under: "LP-9", buildParents: true } # create missing levels
288
+ copy_documents { ids: ["LP-20"], under: "LP-31" } # repeat a proven structure
289
+ delete_document { id, recursive: true } # and everything under it
290
+ ```
291
+
292
+ **Always `dryRun: true` first** on `split_issue`, `convert_document` and
293
+ `delete_document` when you are reshaping something with children or dependencies.
294
+ Read what it says it will do before you let it happen.
295
+
296
+ ### Sequencing
297
+
298
+ ```
299
+ link_issues { blocked: "LP-42", blockedBy: ["LP-40", "LP-41"] }
300
+ ```
301
+
302
+ Only the forward edge is stored; the inverse is derived. A dependency that would
303
+ close a cycle is refused.
304
+
305
+ Two rules that keep a graph useful:
306
+
307
+ - **Add an edge only for a real gate** — B genuinely cannot start until A is done.
308
+ "It would be tidier in this order" is not a gate; it is a preference that will
309
+ idle a developer.
310
+ - **Prefer a wide graph to a deep one.** Three chains of four that can run in
311
+ parallel beat one chain of twelve. Look at the shape you have created and ask
312
+ how many people could start work tomorrow. If the answer is one, you have
313
+ written a queue, not a plan.
314
+
315
+ When work cannot start until a spike has concluded, that is a dependency:
316
+
317
+ ```
318
+ link_issues { blocked: "LP-51", blockedBy: ["LP-30"] }
319
+ ```
320
+
321
+ There is one gating edge and no second one. Where the work came from — which
322
+ finding, which measurement, which document — goes in LP-51's body and its
323
+ related files, so whoever picks it up reads it in their brief.
324
+
325
+ So hang a spike off the level *above* the features that wait on it. A research
326
+ task sitting inside the very feature that waits on its findings deadlocks both,
327
+ and `lpm check` reports it as a cycle.
328
+
329
+ Use `relates_to` for non-blocking association — it is now the only edge that
330
+ gates nothing. It has no MCP tool — it is CLI-only:
331
+ `lpm link LP-7 --relates-to LP-9`.
332
+
333
+ ## Assigning work
334
+
335
+ Two kinds of resource, and the difference is the point:
336
+
337
+ - **A named person** (`RS-1`, "Alice Smith") — this specific person's queue.
338
+ - **A generic pool** (`RS-4`, "a web developer") — a role. Work parked here is
339
+ offered to *everyone who covers that pool*, and the first to ask gets it.
340
+
341
+ Prefer the pool. Assigning by name is a commitment you are making on someone
342
+ else's behalf, and it is what leaves work stranded when they are away. Name a
343
+ person when the work genuinely needs them: their context, their area, their
344
+ review.
345
+
346
+ ```
347
+ update_document { id: "LP-42", assignee: "RS-4" } # a pool
348
+ update_document { id: "LP-42", assignee: null } # back to the backlog
349
+ ```
350
+
351
+ Coverage is what connects a person to a pool, it is one hop, and it does not
352
+ chain. It is set with the CLI: `lpm link RS-1 --covers RS-4`.
353
+
354
+ Check the result rather than assuming it:
355
+
356
+ ```
357
+ team_load { period: "TL-7" }
358
+ ```
359
+
360
+ Read three things in the reply: `uncovered` (pools nobody can serve — always fix
361
+ these), the `unassigned` row (open work nobody owns), and each row's `open` and
362
+ `effort` against its `capacity`. This is a **load report, not a scheduler** — it
363
+ tells you where the pressure is and leaves the judgement to you.
364
+
365
+ ## Scheduling
366
+
367
+ An issue at any level can be scheduled into any period, so an epic can sit on an
368
+ increment while its stories sit on sprints. `next_tasks` puts the running or
369
+ overdue period first, then unscheduled work, then periods that have not started —
370
+ so scheduling is how you say "not yet" without blocking anything.
371
+
372
+ ```
373
+ create_document { type: "sprint", title: "Sprint 12", parent: "TL-1",
374
+ starts: "2026-08-17", ends: "2026-08-28" }
375
+ update_document { id: "LP-42", period: "TL-8" }
376
+ update_document { id: "LP-42", period: null }
377
+ ```
378
+
379
+ light-plan never works a date out for you. It learns dates only from period
380
+ documents, and it will not level load or move anything on your behalf.
381
+
382
+ ## Answering flags: the work that stopped
383
+
384
+ A developer who cannot finish something **flags** it. The issue keeps its status
385
+ and its assignee, turns red on the board, and carries a comment saying what
386
+ stopped and what would resolve it. Three reasons: `blocked` (something outside the
387
+ issue has to happen first), `paused` (deliberately set down), `help` (a person is
388
+ needed — a decision, a review, an opinion).
389
+
390
+ **This is your queue, and it is the highest-value thing on the board.** A flagged
391
+ issue is somebody who has stopped working and is waiting on you; every hour it
392
+ sits there is an hour of capacity doing nothing. Check it at the start of a
393
+ session, before you write a single new ticket:
394
+
395
+ ```
396
+ flagged_issues # everything stopped, board-wide
397
+ list_comments { id: "LP-42" } # why — the flag always carries one
398
+ ```
399
+
400
+ Then answer it. Usually that means doing something outside the board — making the
401
+ decision, getting the access, choosing the number — and writing the answer into
402
+ the place it belongs:
403
+
404
+ - **A missing requirement** → put it in the issue body with `update_document`, not
405
+ only in a comment. The next person to read the ticket reads the body.
406
+ - **A decision** → record it *and* the reasoning, so it is not re-litigated.
407
+ - **A genuine dependency nobody had noticed** → `link_issues`, and say so. The
408
+ flag was right and the plan was wrong.
409
+ - **The ticket was not ready** → rewrite it. A flag that says "too vague to build"
410
+ is a bug report about your ticket, and the honest fix is a better ticket.
411
+
412
+ Only then:
413
+
414
+ ```
415
+ clear_flag { id: "LP-42", comment: "<what changed, so the work can resume>" }
416
+ ```
417
+
418
+ **Clearing is yours, not the developer's** — that asymmetry is the point of the
419
+ feature, and the shipped `lpm-developer` agent does not have the tool. It means
420
+ "carry on", and it is a claim that the thing that stopped the work has actually
421
+ been dealt with. Clearing a flag without answering it just makes the board look
422
+ tidy while the developer walks into the same wall.
423
+
424
+ The comment is required both ways. Write it for the person who raised the flag:
425
+ say what changed, not that you cleared it.
426
+
427
+ If a flag has been sitting for a while and you cannot answer it, that is
428
+ information too — say so on the issue, and consider whether the work should be
429
+ unscheduled rather than held open.
430
+
431
+ ## Verify the plan actually works
432
+
433
+ Writing the tickets is half the job. Before you call a planning session done:
434
+
435
+ 1. **`check_board`** — broken references, dependency cycles, hierarchy violations,
436
+ periods that do not fit. Fix every error.
437
+ 1. **`flagged_issues`** — nothing you plan matters while somebody is stopped.
438
+ 2. **Simulate the handoff.** `next_tasks { assignee: "<person>" }` for each person
439
+ you planned for — that is what they will actually be offered, pool work
440
+ included, since coverage is applied for them. If someone gets nothing, find out
441
+ why: assigned to a container, blocked by something unfinished, parked in a pool
442
+ nobody covers, or sitting in a period that has not started.
443
+ 3. **`team_load`** — is anyone carrying everything? Is anything uncovered?
444
+ 4. **Read one story as a developer would.** Open the ticket you are least sure of
445
+ with `get_document` and ask whether you could start it with no other context.
446
+ If not, it is not ready.
447
+
448
+ Report what you built in those terms — "9 stories under LP-14, three parallel
449
+ chains, Alice and the web pool are each offered work tomorrow, LP-51 is blocked on
450
+ the spike LP-30" — not "created 9 documents".
451
+
452
+ ## Hard rules
453
+
454
+ - **Never hand-edit files under `.lpm/`.** Every change goes through the MCP tools
455
+ or the `lpm` CLI, which validate the hierarchy, allocate ids and keep links
456
+ consistent.
457
+ - **Never invent a type, status or attribute value.** Use `board_overview`.
458
+ - **Never write a ticket with no definition of done.**
459
+ - **Never assign a container** and expect anyone to be offered it.
460
+ - **`dryRun` before any destructive or structural change** with children or
461
+ dependencies in it.
462
+ - **Do not reopen or re-scope work someone is doing** without commenting on the
463
+ issue to say why. `current_tasks` and the comment log tell you what is in flight.
464
+ - **Comment when you change the plan under someone.** Re-parenting, re-assigning
465
+ or re-scheduling an in-flight issue silently is the fastest way to lose a
466
+ distributed team's trust.
467
+ - **Never clear a flag you have not answered.** It says "carry on", and saying it
468
+ falsely sends somebody back into the same wall — with the record now claiming
469
+ the problem was dealt with.
470
+ - **Read the flags before you plan.** New tickets are worth nothing while
471
+ somebody is stopped on an old one.
472
+
473
+ ## The CLI, when you have a shell and no MCP
474
+
475
+ | Intent | MCP | CLI |
476
+ | --- | --- | --- |
477
+ | Board shape | `board_overview` | read `.lpm/config.yml`; `lpm check` |
478
+ | Survey | `list_documents` | `lpm open <id> --path`, `lpm team` |
479
+ | New document | `create_document` | `lpm new <type> -t "..." -p <parent> --set k=v --related <path>` |
480
+ | Body from a file | `update_document { body }` | `lpm set <id> --body-file plan.md` |
481
+ | Attributes | `update_document { attributes }` | `lpm set <id> --set priority=high` |
482
+ | Files a ticket is about | `update_document { relatedFiles }` | `lpm set <id> --related <path>` / `--unrelated <path>` |
483
+ | What has stopped | `flagged_issues` | `lpm flag list` |
484
+ | Say it can resume | `clear_flag` | `lpm flag clear <id> --comment "..."` |
485
+ | Status / parent / period / assignee | `update_document` | `lpm move <id> -s <status> -p <parent> --period <id> --assignee <ref>` |
486
+ | Change type | `convert_document` | `lpm convert <id> <type> [--under <id>] [--build-parents] [--dry-run]` |
487
+ | Split | `split_issue` | `lpm split <id> --titles "A,B,C" [--replace] [--no-chain] [--split-effort] [--dry-run]` |
488
+ | Insert | `insert_between` | `lpm insert --between LP-4..LP-7 -t "..."` |
489
+ | Copy | `copy_documents` | `lpm copy <id> --under <id>` |
490
+ | Delete | `delete_document` | `lpm rm <id> -r [--dry-run]` |
491
+ | Dependency | `link_issues` | `lpm link <id> --depends-on <ids>` |
492
+ | Coverage | *(CLI only)* | `lpm link RS-1 --covers RS-4` |
493
+ | Load | `team_load` | `lpm team [--period <id>] [--open]` |
494
+ | Validate | `check_board` | `lpm check [--fix] [--strict]` |
495
+ | Look at it | — | `lpm ui` |
496
+
497
+ Long bodies belong in a file, not in a shell argument:
498
+
499
+ ```bash
500
+ lpm set LP-42 --body-file ./story.md
501
+ ```
502
+
503
+ ## Routing a team without stepping on each other
504
+
505
+ If several people or agents share one board, give each a **profile** — a small
506
+ YAML file naming who they are and which part of the board they are offered:
507
+
508
+ ```yaml
509
+ user: Alice Smith
510
+ scope:
511
+ under: [LP-2]
512
+ types: [user_story, bug]
513
+ ```
514
+
515
+ `lpm profile <file>` for a person, `lpm mcp --profile <file>` for an agent. Scope
516
+ narrows what is *offered*, never what is *reachable* — it is routing, not access
517
+ control. The full reference is `docs/profiles.md`. Use it to keep a working agent
518
+ inside one epic; do not use it to hide anything.
519
+
520
+ ## Working sequence, condensed
521
+
522
+ 1. `board_overview` — types, hierarchy, statuses, the ranking attributes.
523
+ 2. `flagged_issues` — anyone stopped? Answer them first; that is capacity sitting
524
+ idle, and it costs more than anything you are about to write.
525
+ 3. `list_documents` — what already exists; do not duplicate it.
526
+ 4. Shape it top-down: the container, then the leaves that carry the work.
527
+ 5. Write each leaf to the bar: context, requirements, definition of done, out of
528
+ scope. Set priority and effort, and point it at the files it is about.
529
+ 6. Sequence with `link_issues` — real gates only. Keep the graph wide.
530
+ 7. Assign: pools by default, people where it matters. Schedule into periods.
531
+ 8. `check_board`, `team_load`, and `next_tasks` for each person, to prove it routes.
532
+ 9. Report the plan by what it enables tomorrow, not by how many documents it has.
@@ -0,0 +1,43 @@
1
+ # Claude Code — where it keeps agents, skills and MCP servers.
2
+ #
3
+ # Source: https://code.claude.com/docs/en/claude-directory
4
+ # See docs/harness-layouts.md for the schema and for what each field means.
5
+
6
+ name: claude
7
+ label: Claude Code
8
+ docs: https://code.claude.com/docs/en/claude-directory
9
+ verified: 2026-08-03
10
+ aliases: [claude-code, cc]
11
+
12
+ roots:
13
+ project: "{project}/.claude"
14
+ user: "{home}/.claude"
15
+
16
+ files:
17
+ # Subagents: one markdown file each, running in their own context window.
18
+ # `tools:` is a comma-separated string here, not a list.
19
+ - from: agents/*.md
20
+ to: "{root}/agents/{basename}"
21
+ frontmatter:
22
+ name: "{name}"
23
+ description: "{description}"
24
+ tools: "{tools|join}"
25
+
26
+ # Skills: a folder with a SKILL.md, so supporting files can be bundled beside
27
+ # the prompt.
28
+ - from: skills/*.md
29
+ to: "{root}/skills/{name}/SKILL.md"
30
+ frontmatter:
31
+ name: "{name}"
32
+ description: "{description}"
33
+
34
+ mcp:
35
+ # Project servers live at the project root, NOT inside .claude/.
36
+ project:
37
+ file: "{project}/.mcp.json"
38
+ key: mcpServers
39
+ # Personal servers go in ~/.claude.json, which also holds session state —
40
+ # merge into it, never rewrite it.
41
+ user:
42
+ file: "{home}/.claude.json"
43
+ key: mcpServers
@@ -0,0 +1,54 @@
1
+ # GitHub Copilot — where it keeps agents, skills and MCP servers.
2
+ #
3
+ # Source: https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-config-dir-reference
4
+ # https://awesome-copilot.github.com/learning-hub/copilot-configuration-basics/
5
+ # See docs/harness-layouts.md for the schema and for what each field means.
6
+
7
+ name: copilot
8
+ label: GitHub Copilot
9
+ docs: https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-config-dir-reference
10
+ verified: 2026-08-03
11
+ aliases: [github-copilot, github, gh]
12
+
13
+ roots:
14
+ project: "{project}/.github"
15
+ user:
16
+ # Copilot CLI's config directory, which COPILOT_HOME may move.
17
+ env: COPILOT_HOME
18
+ default: "{home}/.copilot"
19
+
20
+ files:
21
+ - from: agents/*.md
22
+ to: "{root}/agents/{name}.agent.md"
23
+ frontmatter:
24
+ name: "{name}"
25
+ description: "{description}"
26
+ # `tools` is deliberately not emitted. Copilot's tool vocabulary is its
27
+ # own, and our assets carry Claude's names: an agent naming tools that do
28
+ # not exist is worse off than one with the default set.
29
+
30
+ # The same shape as Claude's: a folder with a SKILL.md.
31
+ - from: skills/*.md
32
+ to: "{root}/skills/{name}/SKILL.md"
33
+ frontmatter:
34
+ name: "{name}"
35
+ description: "{description}"
36
+
37
+ mcp:
38
+ project:
39
+ file: "{project}/.mcp.json"
40
+ key: mcpServers
41
+ user:
42
+ file: "{root}/mcp-config.json"
43
+ key: mcpServers
44
+
45
+ # The repo-wide instructions file, which is somebody else's document — we append
46
+ # a delimited block to it rather than writing it.
47
+ pointer:
48
+ project: "{root}/copilot-instructions.md"
49
+ user: "{root}/copilot-instructions.md"
50
+
51
+ note: >-
52
+ VS Code reads MCP servers from .vscode/mcp.json under a `servers` key rather
53
+ than from .mcp.json. If Copilot Chat in VS Code is your only surface, copy the
54
+ entry across.
@@ -0,0 +1,49 @@
1
+ # Reasonix (DeepSeek) — where it keeps agents, skills and MCP servers.
2
+ #
3
+ # Source: https://github.com/esengine/DeepSeek-Reasonix/blob/main-v2/docs/GUIDE.md
4
+ # See docs/harness-layouts.md for the schema and for what each field means.
5
+ #
6
+ # Reasonix is the odd one out twice over: one directory holds both agents and
7
+ # skills, and the user-level config is TOML.
8
+
9
+ name: reasonix
10
+ label: Reasonix (DeepSeek)
11
+ docs: https://github.com/esengine/DeepSeek-Reasonix/blob/main-v2/docs/GUIDE.md
12
+ verified: 2026-08-03
13
+ aliases: [deepseek]
14
+
15
+ roots:
16
+ project: "{project}/.reasonix"
17
+ user: "{home}/.reasonix"
18
+
19
+ files:
20
+ # Every file under commands/ is a /slash-command; `runAs: subagent` is the
21
+ # only thing that makes one a subagent profile.
22
+ - from: agents/*.md
23
+ to: "{root}/commands/{basename}"
24
+ frontmatter:
25
+ description: "{description}"
26
+ runAs: subagent
27
+
28
+ # Same directory, no marker: a skill is just a command.
29
+ - from: skills/*.md
30
+ to: "{root}/commands/{basename}"
31
+ frontmatter:
32
+ description: "{description}"
33
+
34
+ mcp:
35
+ # Project .mcp.json in the standard format wins over both TOML sources, and is
36
+ # the same file Claude and Copilot read.
37
+ project:
38
+ file: "{project}/.mcp.json"
39
+ key: mcpServers
40
+ user:
41
+ # ~/.reasonix/config.toml is TOML and this package has no TOML support.
42
+ # Merging into somebody's config file blind is how you lose it, so we print
43
+ # the entry instead of writing it.
44
+ advice: |
45
+ Add the server to ~/.reasonix/config.toml as a [[plugins]] entry:
46
+ [[plugins]]
47
+ name = "light-plan"
48
+ command = "lpm"
49
+ args = ["mcp"]