jumbo-cli 2.0.1 → 2.0.3

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 (271) hide show
  1. package/LICENSE.txt +661 -661
  2. package/README.md +239 -239
  3. package/assets/claude-logo.svg +7 -7
  4. package/assets/codex-logo.svg +3 -3
  5. package/assets/cursor-logo.svg +31 -31
  6. package/assets/mistral-logo.svg +19 -19
  7. package/assets/skills/codify-jumbo-goal/SKILL.md +116 -116
  8. package/assets/skills/define-jumbo-goals/SKILL.md +193 -193
  9. package/assets/skills/refine-jumbo-goals/SKILL.md +156 -156
  10. package/assets/skills/reject-jumbo-goal/SKILL.md +58 -58
  11. package/assets/skills/review-jumbo-goal/SKILL.md +94 -94
  12. package/assets/skills/start-jumbo-goal/SKILL.md +86 -86
  13. package/assets/vscode-logo.svg +41 -41
  14. package/dist/domain/project/AgentFileReferenceContent.js +7 -7
  15. package/dist/domain/project/AgentsMdContent.js +74 -74
  16. package/dist/domain/project/CopilotInstructionsContent.js +38 -38
  17. package/dist/infrastructure/context/architecture/define/SqliteArchitectureDefinedProjector.js +5 -5
  18. package/dist/infrastructure/context/architecture/migrations/001-create-architecture-views.sql +16 -16
  19. package/dist/infrastructure/context/architecture/migrations/002-drop-dataflow-column.sql +4 -4
  20. package/dist/infrastructure/context/architecture/update/SqliteArchitectureUpdatedProjector.js +4 -4
  21. package/dist/infrastructure/context/audience-pains/add/SqliteAudiencePainAddedProjector.js +4 -4
  22. package/dist/infrastructure/context/audience-pains/migrations/001-create-audience-pain-views.sql +17 -17
  23. package/dist/infrastructure/context/audience-pains/update/SqliteAudiencePainUpdatedProjector.js +4 -4
  24. package/dist/infrastructure/context/audiences/add/SqliteAudienceAddedProjector.js +5 -5
  25. package/dist/infrastructure/context/audiences/migrations/001-create-audience-views.sql +17 -17
  26. package/dist/infrastructure/context/audiences/remove/SqliteAudienceRemovedProjector.js +6 -6
  27. package/dist/infrastructure/context/audiences/update/SqliteAudienceUpdatedProjector.js +4 -4
  28. package/dist/infrastructure/context/components/add/SqliteComponentAddedProjector.js +5 -5
  29. package/dist/infrastructure/context/components/deprecate/SqliteComponentDeprecatedProjector.js +7 -7
  30. package/dist/infrastructure/context/components/migrations/001-create-component-views.sql +21 -21
  31. package/dist/infrastructure/context/components/remove/SqliteComponentRemovedProjector.js +6 -6
  32. package/dist/infrastructure/context/components/rename/SqliteComponentRenamedProjector.js +4 -4
  33. package/dist/infrastructure/context/components/undeprecate/SqliteComponentUndeprecatedProjector.js +7 -7
  34. package/dist/infrastructure/context/components/update/SqliteComponentUpdatedProjector.js +4 -4
  35. package/dist/infrastructure/context/decisions/add/SqliteDecisionAddedProjector.js +6 -6
  36. package/dist/infrastructure/context/decisions/migrations/001-create-decision-views.sql +22 -22
  37. package/dist/infrastructure/context/decisions/restore/SqliteDecisionRestoredProjector.js +9 -9
  38. package/dist/infrastructure/context/decisions/reverse/SqliteDecisionReversedProjector.js +8 -8
  39. package/dist/infrastructure/context/decisions/supersede/SqliteDecisionSupersededProjector.js +7 -7
  40. package/dist/infrastructure/context/decisions/update/SqliteDecisionUpdatedProjector.js +10 -10
  41. package/dist/infrastructure/context/dependencies/add/SqliteDependencyAddedProjector.js +5 -5
  42. package/dist/infrastructure/context/dependencies/get/SqliteLegacyDependencyReader.js +5 -5
  43. package/dist/infrastructure/context/dependencies/migrations/001-create-dependency-views.sql +21 -21
  44. package/dist/infrastructure/context/dependencies/migrations/002-add-external-dependency-columns.sql +11 -11
  45. package/dist/infrastructure/context/dependencies/remove/SqliteDependencyRemovedProjector.js +8 -8
  46. package/dist/infrastructure/context/dependencies/update/SqliteDependencyUpdatedProjector.js +4 -4
  47. package/dist/infrastructure/context/goals/add/SqliteGoalAddedProjector.js +7 -7
  48. package/dist/infrastructure/context/goals/approve/SqliteGoalApprovedProjector.js +9 -9
  49. package/dist/infrastructure/context/goals/block/SqliteGoalBlockedProjector.js +7 -7
  50. package/dist/infrastructure/context/goals/close/SqliteGoalClosedProjector.js +9 -9
  51. package/dist/infrastructure/context/goals/codify/SqliteGoalCodifyingStartedProjector.js +9 -9
  52. package/dist/infrastructure/context/goals/commit/SqliteGoalCommittedProjector.js +9 -9
  53. package/dist/infrastructure/context/goals/complete/SqliteGoalCompletedProjector.js +9 -9
  54. package/dist/infrastructure/context/goals/migrate/SqliteGoalStatusMigratedProjector.js +7 -7
  55. package/dist/infrastructure/context/goals/migrations/001-create-goal-views.sql +20 -20
  56. package/dist/infrastructure/context/goals/migrations/002-add-embedded-context-columns.sql +11 -11
  57. package/dist/infrastructure/context/goals/migrations/003-add-next-goal-column.sql +4 -4
  58. package/dist/infrastructure/context/goals/migrations/004-add-claim-columns.sql +7 -7
  59. package/dist/infrastructure/context/goals/migrations/005-add-progress-column.sql +4 -4
  60. package/dist/infrastructure/context/goals/migrations/006-drop-boundaries-and-embedded-context-columns.sql +11 -11
  61. package/dist/infrastructure/context/goals/migrations/007-add-title-column.sql +2 -2
  62. package/dist/infrastructure/context/goals/migrations/008-add-prerequisite-goals-column.sql +1 -1
  63. package/dist/infrastructure/context/goals/migrations/009-add-review-issues-column.sql +1 -1
  64. package/dist/infrastructure/context/goals/pause/SqliteGoalPausedProjector.js +7 -7
  65. package/dist/infrastructure/context/goals/qualify/SqliteGoalQualifiedProjector.js +9 -9
  66. package/dist/infrastructure/context/goals/refine/SqliteGoalRefinedProjector.js +15 -15
  67. package/dist/infrastructure/context/goals/reject/SqliteGoalRejectedProjector.js +10 -10
  68. package/dist/infrastructure/context/goals/remove/SqliteGoalRemovedProjector.js +3 -3
  69. package/dist/infrastructure/context/goals/reset/SqliteGoalResetProjector.js +11 -11
  70. package/dist/infrastructure/context/goals/resume/SqliteGoalResumedProjector.js +10 -10
  71. package/dist/infrastructure/context/goals/review/SqliteGoalSubmittedForReviewProjector.js +9 -9
  72. package/dist/infrastructure/context/goals/start/SqliteGoalStartedProjector.js +9 -9
  73. package/dist/infrastructure/context/goals/submit/SqliteGoalSubmittedProjector.js +9 -9
  74. package/dist/infrastructure/context/goals/unblock/SqliteGoalUnblockedProjector.js +7 -7
  75. package/dist/infrastructure/context/goals/update/SqliteGoalUpdatedProjector.js +4 -4
  76. package/dist/infrastructure/context/goals/update-progress/SqliteGoalProgressUpdatedProjector.js +8 -8
  77. package/dist/infrastructure/context/guidelines/add/SqliteGuidelineAddedProjector.js +5 -5
  78. package/dist/infrastructure/context/guidelines/migrations/001-create-guideline-views.sql +22 -22
  79. package/dist/infrastructure/context/guidelines/remove/SqliteGuidelineRemovedProjector.js +8 -8
  80. package/dist/infrastructure/context/guidelines/update/SqliteGuidelineUpdatedProjector.js +4 -4
  81. package/dist/infrastructure/context/invariants/add/SqliteInvariantAddedProjector.js +5 -5
  82. package/dist/infrastructure/context/invariants/migrations/001-create-invariant-views.sql +16 -16
  83. package/dist/infrastructure/context/invariants/remove/SqliteInvariantRemovedProjector.js +2 -2
  84. package/dist/infrastructure/context/invariants/update/SqliteInvariantUpdatedProjector.js +9 -9
  85. package/dist/infrastructure/context/project/init/SqliteProjectInitializedProjector.js +5 -5
  86. package/dist/infrastructure/context/project/migrations/001-create-project-views.sql +13 -13
  87. package/dist/infrastructure/context/project/migrations/002-drop-boundaries-column.sql +4 -4
  88. package/dist/infrastructure/context/project/update/SqliteProjectUpdatedProjector.js +4 -4
  89. package/dist/infrastructure/context/relations/add/SqliteRelationAddedProjector.js +12 -12
  90. package/dist/infrastructure/context/relations/deactivate/SqliteRelationDeactivatedProjector.js +14 -14
  91. package/dist/infrastructure/context/relations/migrations/001-create-relation-views.sql +28 -28
  92. package/dist/infrastructure/context/relations/reactivate/SqliteRelationReactivatedProjector.js +14 -14
  93. package/dist/infrastructure/context/relations/remove/SqliteRelationRemovedProjector.js +14 -14
  94. package/dist/infrastructure/context/sessions/end/SqliteSessionEndedProjector.js +8 -8
  95. package/dist/infrastructure/context/sessions/migrations/001-create-session-views.sql +43 -43
  96. package/dist/infrastructure/context/sessions/migrations/002-add-goal-lifecycle-columns.sql +7 -7
  97. package/dist/infrastructure/context/sessions/migrations/003-remove-session-pause-status.sql +8 -8
  98. package/dist/infrastructure/context/sessions/migrations/004-drop-session-summary-views.sql +5 -5
  99. package/dist/infrastructure/context/sessions/start/SqliteSessionStartedProjector.js +5 -5
  100. package/dist/infrastructure/context/value-propositions/add/SqliteValuePropositionAddedProjector.js +5 -5
  101. package/dist/infrastructure/context/value-propositions/migrations/001-create-value-proposition-views.sql +19 -19
  102. package/dist/infrastructure/context/value-propositions/remove/SqliteValuePropositionRemovedProjector.js +2 -2
  103. package/dist/infrastructure/context/value-propositions/update/SqliteValuePropositionUpdatedProjector.js +4 -4
  104. package/dist/infrastructure/host/workers/migrations/001-create-workers.sql +12 -12
  105. package/dist/infrastructure/persistence/MigrationRunner.js +10 -10
  106. package/dist/infrastructure/settings/FsSettingsInitializer.js +25 -25
  107. package/dist/infrastructure/settings/FsSettingsReader.js +25 -25
  108. package/dist/infrastructure/telemetry/PostHogTelemetryClient.d.ts +1 -1
  109. package/dist/infrastructure/telemetry/PostHogTelemetryClient.d.ts.map +1 -1
  110. package/dist/infrastructure/telemetry/PostHogTelemetryClient.js +7 -1
  111. package/dist/infrastructure/telemetry/PostHogTelemetryClient.js.map +1 -1
  112. package/dist/infrastructure/telemetry/PostHogTelemetryConstants.d.ts +2 -2
  113. package/dist/infrastructure/telemetry/PostHogTelemetryConstants.d.ts.map +1 -1
  114. package/dist/infrastructure/telemetry/PostHogTelemetryConstants.js +2 -2
  115. package/dist/infrastructure/telemetry/PostHogTelemetryConstants.js.map +1 -1
  116. package/dist/presentation/cli/commands/project/init/project.init.d.ts.map +1 -1
  117. package/dist/presentation/cli/commands/project/init/project.init.js +4 -1
  118. package/dist/presentation/cli/commands/project/init/project.init.js.map +1 -1
  119. package/package.json +90 -89
  120. package/dist/application/context/goals/complete/CompleteGoalCommand.d.ts +0 -8
  121. package/dist/application/context/goals/complete/CompleteGoalCommand.d.ts.map +0 -1
  122. package/dist/application/context/goals/complete/CompleteGoalCommand.js +0 -3
  123. package/dist/application/context/goals/complete/CompleteGoalCommand.js.map +0 -1
  124. package/dist/application/context/goals/complete/CompleteGoalCommandHandler.d.ts +0 -27
  125. package/dist/application/context/goals/complete/CompleteGoalCommandHandler.d.ts.map +0 -1
  126. package/dist/application/context/goals/complete/CompleteGoalCommandHandler.js +0 -52
  127. package/dist/application/context/goals/complete/CompleteGoalCommandHandler.js.map +0 -1
  128. package/dist/application/context/goals/complete/CompleteGoalController.d.ts +0 -9
  129. package/dist/application/context/goals/complete/CompleteGoalController.d.ts.map +0 -1
  130. package/dist/application/context/goals/complete/CompleteGoalController.js +0 -13
  131. package/dist/application/context/goals/complete/CompleteGoalController.js.map +0 -1
  132. package/dist/application/context/goals/complete/CompleteGoalRequest.d.ts +0 -10
  133. package/dist/application/context/goals/complete/CompleteGoalRequest.d.ts.map +0 -1
  134. package/dist/application/context/goals/complete/CompleteGoalRequest.js +0 -3
  135. package/dist/application/context/goals/complete/CompleteGoalRequest.js.map +0 -1
  136. package/dist/application/context/goals/complete/CompleteGoalResponse.d.ts +0 -17
  137. package/dist/application/context/goals/complete/CompleteGoalResponse.d.ts.map +0 -1
  138. package/dist/application/context/goals/complete/CompleteGoalResponse.js +0 -3
  139. package/dist/application/context/goals/complete/CompleteGoalResponse.js.map +0 -1
  140. package/dist/application/context/goals/complete/ICompleteGoalGateway.d.ts +0 -6
  141. package/dist/application/context/goals/complete/ICompleteGoalGateway.d.ts.map +0 -1
  142. package/dist/application/context/goals/complete/ICompleteGoalGateway.js +0 -3
  143. package/dist/application/context/goals/complete/ICompleteGoalGateway.js.map +0 -1
  144. package/dist/application/context/goals/complete/LocalCompleteGoalGateway.d.ts +0 -16
  145. package/dist/application/context/goals/complete/LocalCompleteGoalGateway.d.ts.map +0 -1
  146. package/dist/application/context/goals/complete/LocalCompleteGoalGateway.js +0 -49
  147. package/dist/application/context/goals/complete/LocalCompleteGoalGateway.js.map +0 -1
  148. package/dist/application/context/project/init/IInitializationProtocol.d.ts +0 -44
  149. package/dist/application/context/project/init/IInitializationProtocol.d.ts.map +0 -1
  150. package/dist/application/context/project/init/IInitializationProtocol.js +0 -14
  151. package/dist/application/context/project/init/IInitializationProtocol.js.map +0 -1
  152. package/dist/application/context/project/init/InitializationProtocol.d.ts +0 -32
  153. package/dist/application/context/project/init/InitializationProtocol.d.ts.map +0 -1
  154. package/dist/application/context/project/init/InitializationProtocol.js +0 -51
  155. package/dist/application/context/project/init/InitializationProtocol.js.map +0 -1
  156. package/dist/application/context/relations/get/GetRelationsQueryHandler.d.ts +0 -14
  157. package/dist/application/context/relations/get/GetRelationsQueryHandler.d.ts.map +0 -1
  158. package/dist/application/context/relations/get/GetRelationsQueryHandler.js +0 -19
  159. package/dist/application/context/relations/get/GetRelationsQueryHandler.js.map +0 -1
  160. package/dist/application/context/value-propositions/list/ListValuePropositionsQueryHandler.d.ts +0 -27
  161. package/dist/application/context/value-propositions/list/ListValuePropositionsQueryHandler.d.ts.map +0 -1
  162. package/dist/application/context/value-propositions/list/ListValuePropositionsQueryHandler.js +0 -32
  163. package/dist/application/context/value-propositions/list/ListValuePropositionsQueryHandler.js.map +0 -1
  164. package/dist/application/maintenance/repair/IRepairMaintenanceGateway.d.ts +0 -6
  165. package/dist/application/maintenance/repair/IRepairMaintenanceGateway.d.ts.map +0 -1
  166. package/dist/application/maintenance/repair/IRepairMaintenanceGateway.js +0 -3
  167. package/dist/application/maintenance/repair/IRepairMaintenanceGateway.js.map +0 -1
  168. package/dist/application/maintenance/repair/LocalRepairMaintenanceGateway.d.ts +0 -16
  169. package/dist/application/maintenance/repair/LocalRepairMaintenanceGateway.d.ts.map +0 -1
  170. package/dist/application/maintenance/repair/LocalRepairMaintenanceGateway.js +0 -90
  171. package/dist/application/maintenance/repair/LocalRepairMaintenanceGateway.js.map +0 -1
  172. package/dist/application/maintenance/repair/RepairMaintenanceController.d.ts +0 -9
  173. package/dist/application/maintenance/repair/RepairMaintenanceController.d.ts.map +0 -1
  174. package/dist/application/maintenance/repair/RepairMaintenanceController.js +0 -13
  175. package/dist/application/maintenance/repair/RepairMaintenanceController.js.map +0 -1
  176. package/dist/application/maintenance/repair/RepairMaintenanceRequest.d.ts +0 -6
  177. package/dist/application/maintenance/repair/RepairMaintenanceRequest.d.ts.map +0 -1
  178. package/dist/application/maintenance/repair/RepairMaintenanceRequest.js +0 -3
  179. package/dist/application/maintenance/repair/RepairMaintenanceRequest.js.map +0 -1
  180. package/dist/application/maintenance/repair/RepairMaintenanceResponse.d.ts +0 -9
  181. package/dist/application/maintenance/repair/RepairMaintenanceResponse.d.ts.map +0 -1
  182. package/dist/application/maintenance/repair/RepairMaintenanceResponse.js +0 -3
  183. package/dist/application/maintenance/repair/RepairMaintenanceResponse.js.map +0 -1
  184. package/dist/application/repair/IRepairGateway.d.ts +0 -6
  185. package/dist/application/repair/IRepairGateway.d.ts.map +0 -1
  186. package/dist/application/repair/IRepairGateway.js +0 -3
  187. package/dist/application/repair/IRepairGateway.js.map +0 -1
  188. package/dist/application/repair/LocalRepairGateway.d.ts +0 -16
  189. package/dist/application/repair/LocalRepairGateway.d.ts.map +0 -1
  190. package/dist/application/repair/LocalRepairGateway.js +0 -90
  191. package/dist/application/repair/LocalRepairGateway.js.map +0 -1
  192. package/dist/application/repair/RepairController.d.ts +0 -9
  193. package/dist/application/repair/RepairController.d.ts.map +0 -1
  194. package/dist/application/repair/RepairController.js +0 -13
  195. package/dist/application/repair/RepairController.js.map +0 -1
  196. package/dist/application/repair/RepairRequest.d.ts +0 -6
  197. package/dist/application/repair/RepairRequest.d.ts.map +0 -1
  198. package/dist/application/repair/RepairRequest.js +0 -3
  199. package/dist/application/repair/RepairRequest.js.map +0 -1
  200. package/dist/application/repair/RepairResponse.d.ts +0 -9
  201. package/dist/application/repair/RepairResponse.d.ts.map +0 -1
  202. package/dist/application/repair/RepairResponse.js +0 -3
  203. package/dist/application/repair/RepairResponse.js.map +0 -1
  204. package/dist/domain/project/AgentInstructions.d.ts +0 -67
  205. package/dist/domain/project/AgentInstructions.d.ts.map +0 -1
  206. package/dist/domain/project/AgentInstructions.js +0 -261
  207. package/dist/domain/project/AgentInstructions.js.map +0 -1
  208. package/dist/infrastructure/context/goals/claims/FsGoalClaimStore.d.ts +0 -33
  209. package/dist/infrastructure/context/goals/claims/FsGoalClaimStore.d.ts.map +0 -1
  210. package/dist/infrastructure/context/goals/claims/FsGoalClaimStore.js +0 -66
  211. package/dist/infrastructure/context/goals/claims/FsGoalClaimStore.js.map +0 -1
  212. package/dist/infrastructure/context/goals/get/LocalGetGoalsGateway.d.ts +0 -10
  213. package/dist/infrastructure/context/goals/get/LocalGetGoalsGateway.d.ts.map +0 -1
  214. package/dist/infrastructure/context/goals/get/LocalGetGoalsGateway.js +0 -36
  215. package/dist/infrastructure/context/goals/get/LocalGetGoalsGateway.js.map +0 -1
  216. package/dist/infrastructure/context/goals/get/LocalShowGoalGateway.d.ts +0 -10
  217. package/dist/infrastructure/context/goals/get/LocalShowGoalGateway.d.ts.map +0 -1
  218. package/dist/infrastructure/context/goals/get/LocalShowGoalGateway.js +0 -14
  219. package/dist/infrastructure/context/goals/get/LocalShowGoalGateway.js.map +0 -1
  220. package/dist/infrastructure/context/relations/get/LocalGetRelationsGateway.d.ts +0 -10
  221. package/dist/infrastructure/context/relations/get/LocalGetRelationsGateway.d.ts.map +0 -1
  222. package/dist/infrastructure/context/relations/get/LocalGetRelationsGateway.js +0 -18
  223. package/dist/infrastructure/context/relations/get/LocalGetRelationsGateway.js.map +0 -1
  224. package/dist/infrastructure/context/sessions/get/LocalGetSessionsGateway.d.ts +0 -10
  225. package/dist/infrastructure/context/sessions/get/LocalGetSessionsGateway.d.ts.map +0 -1
  226. package/dist/infrastructure/context/sessions/get/LocalGetSessionsGateway.js +0 -14
  227. package/dist/infrastructure/context/sessions/get/LocalGetSessionsGateway.js.map +0 -1
  228. package/dist/presentation/cli/commands/goals/complete/GoalCompleteOutputBuilder.d.ts +0 -29
  229. package/dist/presentation/cli/commands/goals/complete/GoalCompleteOutputBuilder.d.ts.map +0 -1
  230. package/dist/presentation/cli/commands/goals/complete/GoalCompleteOutputBuilder.js +0 -105
  231. package/dist/presentation/cli/commands/goals/complete/GoalCompleteOutputBuilder.js.map +0 -1
  232. package/dist/presentation/cli/commands/goals/complete/goal.complete.d.ts +0 -20
  233. package/dist/presentation/cli/commands/goals/complete/goal.complete.d.ts.map +0 -1
  234. package/dist/presentation/cli/commands/goals/complete/goal.complete.js +0 -58
  235. package/dist/presentation/cli/commands/goals/complete/goal.complete.js.map +0 -1
  236. package/dist/presentation/cli/commands/maintenance/db/rebuild/db.rebuild.d.ts +0 -26
  237. package/dist/presentation/cli/commands/maintenance/db/rebuild/db.rebuild.d.ts.map +0 -1
  238. package/dist/presentation/cli/commands/maintenance/db/rebuild/db.rebuild.js +0 -68
  239. package/dist/presentation/cli/commands/maintenance/db/rebuild/db.rebuild.js.map +0 -1
  240. package/dist/presentation/cli/commands/maintenance/migrate-dependencies/MigrateDependenciesOutputBuilder.d.ts +0 -14
  241. package/dist/presentation/cli/commands/maintenance/migrate-dependencies/MigrateDependenciesOutputBuilder.d.ts.map +0 -1
  242. package/dist/presentation/cli/commands/maintenance/migrate-dependencies/MigrateDependenciesOutputBuilder.js +0 -61
  243. package/dist/presentation/cli/commands/maintenance/migrate-dependencies/MigrateDependenciesOutputBuilder.js.map +0 -1
  244. package/dist/presentation/cli/commands/maintenance/migrate-dependencies/dependency.migrate.d.ts +0 -23
  245. package/dist/presentation/cli/commands/maintenance/migrate-dependencies/dependency.migrate.d.ts.map +0 -1
  246. package/dist/presentation/cli/commands/maintenance/migrate-dependencies/dependency.migrate.js +0 -59
  247. package/dist/presentation/cli/commands/maintenance/migrate-dependencies/dependency.migrate.js.map +0 -1
  248. package/dist/presentation/cli/commands/maintenance/repair/RepairOutputBuilder.d.ts +0 -24
  249. package/dist/presentation/cli/commands/maintenance/repair/RepairOutputBuilder.d.ts.map +0 -1
  250. package/dist/presentation/cli/commands/maintenance/repair/RepairOutputBuilder.js +0 -49
  251. package/dist/presentation/cli/commands/maintenance/repair/RepairOutputBuilder.js.map +0 -1
  252. package/dist/presentation/cli/commands/maintenance/repair/maintenance.repair.d.ts +0 -27
  253. package/dist/presentation/cli/commands/maintenance/repair/maintenance.repair.d.ts.map +0 -1
  254. package/dist/presentation/cli/commands/maintenance/repair/maintenance.repair.js +0 -85
  255. package/dist/presentation/cli/commands/maintenance/repair/maintenance.repair.js.map +0 -1
  256. package/dist/presentation/cli/commands/maintenance/upgrade/UpgradeOutputBuilder.d.ts +0 -16
  257. package/dist/presentation/cli/commands/maintenance/upgrade/UpgradeOutputBuilder.d.ts.map +0 -1
  258. package/dist/presentation/cli/commands/maintenance/upgrade/UpgradeOutputBuilder.js +0 -40
  259. package/dist/presentation/cli/commands/maintenance/upgrade/UpgradeOutputBuilder.js.map +0 -1
  260. package/dist/presentation/cli/commands/maintenance/upgrade/db.upgrade.d.ts +0 -26
  261. package/dist/presentation/cli/commands/maintenance/upgrade/db.upgrade.d.ts.map +0 -1
  262. package/dist/presentation/cli/commands/maintenance/upgrade/db.upgrade.js +0 -64
  263. package/dist/presentation/cli/commands/maintenance/upgrade/db.upgrade.js.map +0 -1
  264. package/dist/presentation/cli/commands/repair/RepairOutputBuilder.d.ts +0 -24
  265. package/dist/presentation/cli/commands/repair/RepairOutputBuilder.d.ts.map +0 -1
  266. package/dist/presentation/cli/commands/repair/RepairOutputBuilder.js +0 -50
  267. package/dist/presentation/cli/commands/repair/RepairOutputBuilder.js.map +0 -1
  268. package/dist/presentation/cli/commands/repair/repair.d.ts +0 -31
  269. package/dist/presentation/cli/commands/repair/repair.d.ts.map +0 -1
  270. package/dist/presentation/cli/commands/repair/repair.js +0 -88
  271. package/dist/presentation/cli/commands/repair/repair.js.map +0 -1
@@ -1,116 +1,116 @@
1
- ---
2
- name: codify-jumbo-goal
3
- description: Use when a Jumbo goal has been approved by QA review and needs architectural reconciliation before closing. Captures new learnings, updates stale entities, and ensures documentation reflects the work performed.
4
- ---
5
-
6
- # Codify Jumbo Goal
7
-
8
- **Prompt:** Perform architectural reconciliation for an approved Jumbo goal — capture new learnings, review registered entities for staleness, update documentation, then close the goal.
9
-
10
- ## Why Codification Matters
11
-
12
- After a goal passes QA review, the codebase has changed but the project's registered knowledge may not reflect those changes. Codification is the checkpoint where new invariants, decisions, components, and guidelines discovered during implementation get captured. Skipping codification causes knowledge drift — future agents operate with stale or incomplete context.
13
-
14
- ## Protocol
15
-
16
- ### 1. Initiate Codification
17
-
18
- ```bash
19
- jumbo goal codify --id <goal-id>
20
- ```
21
-
22
- Review the goal's objective and status. The goal must be in a reviewable state.
23
-
24
- ### 2. Capture New Learnings
25
-
26
- Reflect on the implementation interaction with the user during this goal. Ask:
27
-
28
- - Did it surface any **NEW** invariants, guidelines, decisions, components, dependencies, or architectural patterns not yet captured?
29
- - Were you corrected in a way that reveals a missing rule?
30
-
31
- Only propose additions that are:
32
- - **Universal** (applicable beyond this specific goal)
33
- - **Dense** (one sentence, no examples unless the example IS the rule)
34
- - **Actionable** (changes how code is written or decisions are made)
35
-
36
- If nothing qualifies, say so. Avoid restating what's already captured.
37
-
38
- Use `jumbo --help` for command details on registering new entities.
39
-
40
- ### 3. Review Registered Entities for Staleness
41
-
42
- The goal may have changed the codebase in ways that affect registered entities. For each entity type below, consider whether any existing registrations need updating based on the work performed.
43
-
44
- #### Components
45
- Did any component descriptions, responsibilities, or paths change? Were any components deprecated or removed?
46
- ```bash
47
- jumbo component update --id <id> --description "..." --responsibility "..."
48
- jumbo component deprecate --id <id> --reason "..."
49
- jumbo component add --name "..." --type "..." --description "..." --responsibility "..." --path "..."
50
- ```
51
-
52
- #### Decisions
53
- Were any architectural decisions made, superseded, or invalidated by this work?
54
- ```bash
55
- jumbo decision add --title "..." --context "..." --rationale "..."
56
- jumbo decision update --id <id> --rationale "..."
57
- jumbo decision supersede --id <id> --new-decision-id <new-id>
58
- ```
59
-
60
- #### Invariants
61
- Were any invariants introduced, weakened, strengthened, or made obsolete?
62
- ```bash
63
- jumbo invariant add --title "..." --description "..." --enforcement "..."
64
- jumbo invariant update --id <id> --description "..." --enforcement "..."
65
- jumbo invariant remove --id <id>
66
- ```
67
-
68
- #### Guidelines
69
- Were any coding, testing, or documentation guidelines introduced or changed?
70
- ```bash
71
- jumbo guideline add --category "..." --title "..." --description "..."
72
- jumbo guideline update --guideline-id <id> --description "..."
73
- jumbo guideline remove --guideline-id <id>
74
- ```
75
-
76
- #### Dependencies
77
- Were any dependencies added, removed, or changed?
78
- ```bash
79
- jumbo dependency add --consumer-id <id> --provider-id <id> --contract "..."
80
- jumbo dependency update --id <id> --contract "..."
81
- jumbo dependency remove --id <id>
82
- ```
83
-
84
- #### Architecture
85
- Did this work change the architecture style, principles, or patterns?
86
- ```bash
87
- jumbo architecture update --style "..." --principles "..."
88
- ```
89
-
90
- #### Relations
91
- Should any new relations be established between entities touched by this goal?
92
- ```bash
93
- jumbo relation add --from-type <type> --from-id <id> --to-type <type> --to-id <id> --type <type> --strength <level>
94
- ```
95
-
96
- ### 4. Update Documentation
97
-
98
- Evaluate whether changes should be reflected in user documentation:
99
- - Did the changes introduce any new features, modify existing behavior, or fix bugs that users should be aware of?
100
- - If yes, propose updates to `~/docs/*` and update the `CHANGELOG.md`.
101
-
102
- ### 5. Close the Goal
103
-
104
- After completing the reconciliation above, close the goal:
105
-
106
- ```bash
107
- jumbo goal close --id <goal-id>
108
- ```
109
-
110
- ## Rules
111
-
112
- 1. **Never skip entity review.** Every entity category must be evaluated for staleness after implementation.
113
- 2. **Only capture universal learnings.** Do not register goal-specific observations as project-wide invariants or guidelines.
114
- 3. **Keep additions dense.** One sentence per entity. No examples unless the example IS the rule.
115
- 4. **Always check documentation impact.** Implementation changes that affect user-facing behavior must be documented.
116
- 5. **Close the goal last.** Only run `jumbo goal close` after all reconciliation steps are complete.
1
+ ---
2
+ name: codify-jumbo-goal
3
+ description: Use when a Jumbo goal has been approved by QA review and needs architectural reconciliation before closing. Captures new learnings, updates stale entities, and ensures documentation reflects the work performed.
4
+ ---
5
+
6
+ # Codify Jumbo Goal
7
+
8
+ **Prompt:** Perform architectural reconciliation for an approved Jumbo goal — capture new learnings, review registered entities for staleness, update documentation, then close the goal.
9
+
10
+ ## Why Codification Matters
11
+
12
+ After a goal passes QA review, the codebase has changed but the project's registered knowledge may not reflect those changes. Codification is the checkpoint where new invariants, decisions, components, and guidelines discovered during implementation get captured. Skipping codification causes knowledge drift — future agents operate with stale or incomplete context.
13
+
14
+ ## Protocol
15
+
16
+ ### 1. Initiate Codification
17
+
18
+ ```bash
19
+ jumbo goal codify --id <goal-id>
20
+ ```
21
+
22
+ Review the goal's objective and status. The goal must be in a reviewable state.
23
+
24
+ ### 2. Capture New Learnings
25
+
26
+ Reflect on the implementation interaction with the user during this goal. Ask:
27
+
28
+ - Did it surface any **NEW** invariants, guidelines, decisions, components, dependencies, or architectural patterns not yet captured?
29
+ - Were you corrected in a way that reveals a missing rule?
30
+
31
+ Only propose additions that are:
32
+ - **Universal** (applicable beyond this specific goal)
33
+ - **Dense** (one sentence, no examples unless the example IS the rule)
34
+ - **Actionable** (changes how code is written or decisions are made)
35
+
36
+ If nothing qualifies, say so. Avoid restating what's already captured.
37
+
38
+ Use `jumbo --help` for command details on registering new entities.
39
+
40
+ ### 3. Review Registered Entities for Staleness
41
+
42
+ The goal may have changed the codebase in ways that affect registered entities. For each entity type below, consider whether any existing registrations need updating based on the work performed.
43
+
44
+ #### Components
45
+ Did any component descriptions, responsibilities, or paths change? Were any components deprecated or removed?
46
+ ```bash
47
+ jumbo component update --id <id> --description "..." --responsibility "..."
48
+ jumbo component deprecate --id <id> --reason "..."
49
+ jumbo component add --name "..." --type "..." --description "..." --responsibility "..." --path "..."
50
+ ```
51
+
52
+ #### Decisions
53
+ Were any architectural decisions made, superseded, or invalidated by this work?
54
+ ```bash
55
+ jumbo decision add --title "..." --context "..." --rationale "..."
56
+ jumbo decision update --id <id> --rationale "..."
57
+ jumbo decision supersede --id <id> --new-decision-id <new-id>
58
+ ```
59
+
60
+ #### Invariants
61
+ Were any invariants introduced, weakened, strengthened, or made obsolete?
62
+ ```bash
63
+ jumbo invariant add --title "..." --description "..." --enforcement "..."
64
+ jumbo invariant update --id <id> --description "..." --enforcement "..."
65
+ jumbo invariant remove --id <id>
66
+ ```
67
+
68
+ #### Guidelines
69
+ Were any coding, testing, or documentation guidelines introduced or changed?
70
+ ```bash
71
+ jumbo guideline add --category "..." --title "..." --description "..."
72
+ jumbo guideline update --guideline-id <id> --description "..."
73
+ jumbo guideline remove --guideline-id <id>
74
+ ```
75
+
76
+ #### Dependencies
77
+ Were any dependencies added, removed, or changed?
78
+ ```bash
79
+ jumbo dependency add --consumer-id <id> --provider-id <id> --contract "..."
80
+ jumbo dependency update --id <id> --contract "..."
81
+ jumbo dependency remove --id <id>
82
+ ```
83
+
84
+ #### Architecture
85
+ Did this work change the architecture style, principles, or patterns?
86
+ ```bash
87
+ jumbo architecture update --style "..." --principles "..."
88
+ ```
89
+
90
+ #### Relations
91
+ Should any new relations be established between entities touched by this goal?
92
+ ```bash
93
+ jumbo relation add --from-type <type> --from-id <id> --to-type <type> --to-id <id> --type <type> --strength <level>
94
+ ```
95
+
96
+ ### 4. Update Documentation
97
+
98
+ Evaluate whether changes should be reflected in user documentation:
99
+ - Did the changes introduce any new features, modify existing behavior, or fix bugs that users should be aware of?
100
+ - If yes, propose updates to `~/docs/*` and update the `CHANGELOG.md`.
101
+
102
+ ### 5. Close the Goal
103
+
104
+ After completing the reconciliation above, close the goal:
105
+
106
+ ```bash
107
+ jumbo goal close --id <goal-id>
108
+ ```
109
+
110
+ ## Rules
111
+
112
+ 1. **Never skip entity review.** Every entity category must be evaluated for staleness after implementation.
113
+ 2. **Only capture universal learnings.** Do not register goal-specific observations as project-wide invariants or guidelines.
114
+ 3. **Keep additions dense.** One sentence per entity. No examples unless the example IS the rule.
115
+ 4. **Always check documentation impact.** Implementation changes that affect user-facing behavior must be documented.
116
+ 5. **Close the goal last.** Only run `jumbo goal close` after all reconciliation steps are complete.
@@ -1,193 +1,193 @@
1
- ---
2
- name: define-jumbo-goals
3
- description: Use when defining new Jumbo goals from user requests. Guides discovery, decomposition, and goal authoring to produce goals with explicit implementation instructions that minimize token usage during autonomous execution.
4
- ---
5
-
6
- # Define Jumbo Goals
7
-
8
- **Prompt:** Analyze a user request, discover the architectural context required, decompose the work into right-sized goals, and author each goal with precise objectives, verifiable criteria, and explicit scope — so that refinement and implementation proceed with minimal exploration overhead.
9
-
10
- ## Why Definition Quality Matters
11
-
12
- A goal's definition determines everything downstream. During refinement, the agent registers relations based on the objective and criteria. During implementation, `jumbo goal start` assembles context from those relations into an implementation prompt. Vague objectives produce vague relations. Vague relations produce bloated or incomplete context. The implementing agent then wastes tokens exploring what should have been stated upfront, or worse, builds the wrong thing.
13
-
14
- **The goal definition is the spec.** Treat it with the rigor of a technical specification, not a backlog item.
15
-
16
- ## Protocol
17
-
18
- ### 1. Understand the Request
19
-
20
- Extract the user's intent through conversation. Identify:
21
-
22
- - **What** needs to change (feature, fix, refactor, infrastructure)
23
- - **Why** it needs to change (user problem, tech debt, prerequisite for other work)
24
- - **Constraints** the user cares about (performance, compatibility, patterns to follow)
25
-
26
- If the request is ambiguous, ask clarifying questions before proceeding. Do not guess intent.
27
-
28
- ### 2. Discover Architectural Context
29
-
30
- Before writing any goal, survey the project to understand what exists:
31
-
32
- ```bash
33
- jumbo architecture view
34
- jumbo components search --query "<relevant domain terms>"
35
- jumbo components search --type <likely-type>
36
- jumbo invariants list
37
- jumbo guidelines list
38
- jumbo decisions list
39
- jumbo dependencies list
40
- ```
41
-
42
- This discovery serves two purposes:
43
- - **Inform decomposition**: Understanding the system's boundaries, patterns, and constraints reveals the natural seams along which to split work.
44
- - **Inform criteria**: Existing invariants, decisions, and patterns dictate what "correct" looks like.
45
-
46
- Also explore the codebase directly to understand current implementation:
47
-
48
- ```bash
49
- # Find relevant source files
50
- # Read key files to understand existing patterns
51
- # Identify integration points and boundaries
52
- ```
53
-
54
- ### 3. Decompose into Right-Sized Goals
55
-
56
- A goal is **right-sized** when:
57
-
58
- - It produces a **shippable increment** — the codebase is better after this goal alone, even if later goals are never started.
59
- - It can be **implemented in a single session** — an agent can start and complete it without context compaction.
60
- - It has a **clear boundary** — scope-in and scope-out can be stated without hedging.
61
- - It touches **one architectural concern** — avoid goals that mix, e.g., domain modeling with UI work with infrastructure changes.
62
-
63
- **Decomposition heuristics:**
64
-
65
- | Signal | Action |
66
- |--------|--------|
67
- | Work spans multiple bounded contexts or layers | Split by context/layer |
68
- | Work requires a new abstraction before feature code | Split: abstraction goal first, feature goal second |
69
- | Work has independent sub-deliverables | Split into parallel goals (no prerequisite chain) |
70
- | Work has sequential dependencies | Split into chained goals (use `--previous-goal` / `--next-goal`) |
71
- | Work is a single focused change | Keep as one goal |
72
-
73
- **Sequencing tools:**
74
-
75
- - `--prerequisite-goals <ids>`: Hard dependency — goal cannot start until prerequisites are complete.
76
- - `--previous-goal <id>` / `--next-goal <id>`: Suggested ordering — chains goals for sequential flow.
77
-
78
- ### 4. Author Each Goal
79
-
80
- For each goal, compose the three pillars: **objective**, **criteria**, and **scope**.
81
-
82
- #### Objective
83
-
84
- The objective is a single sentence that answers: "What is being built or changed, and why?"
85
-
86
- | Quality | Example |
87
- |---------|---------|
88
- | BAD | "Implement telemetry" |
89
- | BAD | "Add PostHog integration for tracking" |
90
- | GOOD | "Add anonymous usage telemetry to the CLI using PostHog so we can understand which commands are used and where failures occur" |
91
-
92
- Rules:
93
- - State the **what** and the **why** in one sentence.
94
- - Name specific technologies, patterns, or components when known.
95
- - Do not describe how — that belongs in criteria.
96
-
97
- #### Success Criteria
98
-
99
- Each criterion is a **verifiable statement** that the reviewing agent can confirm by reading code or running tests. Criteria are the implementation instructions in disguise.
100
-
101
- | Quality | Example |
102
- |---------|---------|
103
- | BAD | "Telemetry works" |
104
- | BAD | "Good test coverage" |
105
- | GOOD | "Application layer defines a TelemetryPort interface with `trackEvent(name, properties)` and `identify(anonymousId)` methods" |
106
- | GOOD | "Infrastructure adapter implements TelemetryPort using PostHog Node SDK with fire-and-forget sends that never block the CLI event loop" |
107
- | GOOD | "First-run consent prompt stores preference in `~/.config/jumbo/telemetry.json` with schema `{ enabled: boolean, promptedAt: string }`" |
108
-
109
- Rules:
110
- - Each criterion describes a **single verifiable outcome**.
111
- - Name specific types, methods, file locations, schemas, or behaviors.
112
- - Make criteria **architecture-aware** — reference the project's patterns (ports/adapters, event sourcing, CQRS) when the implementation must conform.
113
- - Order criteria from foundational to dependent — the implementing agent reads them top to bottom.
114
- - Include a testing criterion — specify what tests exist and what they verify.
115
- - If a refactoring skill applies, add `skill:<skill-name>` as a criterion.
116
-
117
- **Criteria count guidance:**
118
- - Trivial goal (rename, config change): 2-3 criteria
119
- - Standard goal (new feature, refactor): 5-8 criteria
120
- - Complex goal (cross-cutting concern): 8-12 criteria
121
-
122
- #### Scope
123
-
124
- Scope tells the implementing agent where to work and where not to touch.
125
-
126
- ```bash
127
- --scope-in "src/application/telemetry/" "src/infrastructure/posthog/" "src/cli/commands/config.ts"
128
- --scope-out "src/domain/" "src/infrastructure/persistence/"
129
- ```
130
-
131
- Rules:
132
- - Use **file paths or directory prefixes**, not abstract descriptions.
133
- - `scope-in` lists files/directories that WILL be created or modified.
134
- - `scope-out` lists files/directories that MUST NOT be modified (protects unrelated code).
135
- - When creating new files, include the intended path in scope-in even though it does not exist yet.
136
- - Scope-out is especially valuable for goals that touch shared infrastructure — it prevents the agent from "fixing" unrelated code.
137
-
138
- ### 5. Register the Goal
139
-
140
- Run `jumbo goal add --help` to confirm current flags and syntax before registering. Pass the objective, criteria, scope, and sequencing flags composed in the previous steps.
141
-
142
- For multi-goal decompositions, register goals in dependency order so that sequencing flags can reference already-created IDs.
143
-
144
- #### Goal Chaining with Previous/Next Goals
145
-
146
- The `--previous-goal` and `--next-goal` flags create a **chain** — an ordered sequence of goals that an agent works through end-to-end. Chaining is distinct from prerequisites:
147
-
148
- - **Prerequisites** (`--prerequisite-goals`) are hard gates — a goal cannot start until its prerequisites are complete.
149
- - **Chains** (`--previous-goal` / `--next-goal`) are navigational — when the agent finishes one goal, the chain tells it what to pick up next without the user intervening.
150
-
151
- Chaining is the primary mechanism for **long-running autonomous sessions without context rot.** Each goal in the chain carries its own focused context assembled at start time. When the agent completes goal A and transitions to goal B, `jumbo goal start` assembles fresh, relevant context for B — discarding the accumulated noise from A's implementation. The agent effectively gets a clean context window scoped precisely to the next unit of work, without losing the benefits of sequential execution.
152
-
153
- **When to chain:**
154
- - Work decomposes into ordered steps where each builds on the prior (e.g., "define port abstraction" → "implement adapter" → "wire into CLI").
155
- - The user wants to hand off a multi-goal workstream and return when it is all done.
156
- - The combined work would exceed comfortable context limits if attempted as a single goal.
157
-
158
- **When NOT to chain:**
159
- - Goals are independent and can be worked in any order — leave them unchained so the agent (or user) can prioritize freely.
160
- - Goals have hard dependencies where failure of one invalidates the next — use `--prerequisite-goals` instead, which enforces completion before start.
161
-
162
- ### 6. Verify Before Handing Off
163
-
164
- After all goals are registered, verify:
165
-
166
- - [ ] Every goal has a clear, specific objective with what + why
167
- - [ ] Every goal has criteria that an agent can verify by reading code
168
- - [ ] Every goal has scope-in that matches the files it will touch
169
- - [ ] Scope-out protects areas adjacent to scope-in that should not change
170
- - [ ] Goal sequencing reflects actual dependencies (not just aesthetic ordering)
171
- - [ ] No single goal is so large it risks context compaction during implementation
172
- - [ ] No goal duplicates work from another goal
173
- - [ ] The full set of goals covers the user's original request completely
174
-
175
- ## Anti-Patterns
176
-
177
- | Anti-Pattern | Problem | Fix |
178
- |--------------|---------|-----|
179
- | "Implement feature X" as sole criterion | Agent has no spec, explores and guesses | Break into 5-8 specific verifiable outcomes |
180
- | Scope-in says "src/" | Everything is in scope, nothing is protected | List specific directories and files |
181
- | No scope-out | Agent may refactor neighboring code | Explicitly exclude adjacent areas |
182
- | Goal mixes domain + infrastructure + tests | Too broad, risks compaction | Split by architectural layer |
183
- | Criteria reference "should" or "ideally" | Ambiguous — pass or fail? | Rewrite as binary verifiable statements |
184
- | 15+ criteria on one goal | Goal is too large | Decompose into multiple goals |
185
- | No testing criterion | Agent skips tests | Always include what tests must exist |
186
-
187
- ## Rules
188
-
189
- 1. **Never register a goal without discovery.** Always explore the architecture, components, and constraints before writing objectives and criteria. Definition without context produces goals that fight the architecture.
190
- 2. **Never write criteria the reviewing agent cannot verify.** If a criterion requires subjective judgment ("clean code", "good performance"), replace it with a measurable statement ("no function exceeds 30 lines", "response time under 200ms for 1000 records").
191
- 3. **Never skip scope.** Every goal must have scope-in. Most goals should have scope-out. Unbounded scope invites unbounded implementation.
192
- 4. **Always decompose before defining.** Resist the urge to create one large goal. Think in shippable increments.
193
- 5. **Always verify goal coverage.** The union of all goals must fully address the user's request. Gaps between goals are gaps in delivery.
1
+ ---
2
+ name: define-jumbo-goals
3
+ description: Use when defining new Jumbo goals from user requests. Guides discovery, decomposition, and goal authoring to produce goals with explicit implementation instructions that minimize token usage during autonomous execution.
4
+ ---
5
+
6
+ # Define Jumbo Goals
7
+
8
+ **Prompt:** Analyze a user request, discover the architectural context required, decompose the work into right-sized goals, and author each goal with precise objectives, verifiable criteria, and explicit scope — so that refinement and implementation proceed with minimal exploration overhead.
9
+
10
+ ## Why Definition Quality Matters
11
+
12
+ A goal's definition determines everything downstream. During refinement, the agent registers relations based on the objective and criteria. During implementation, `jumbo goal start` assembles context from those relations into an implementation prompt. Vague objectives produce vague relations. Vague relations produce bloated or incomplete context. The implementing agent then wastes tokens exploring what should have been stated upfront, or worse, builds the wrong thing.
13
+
14
+ **The goal definition is the spec.** Treat it with the rigor of a technical specification, not a backlog item.
15
+
16
+ ## Protocol
17
+
18
+ ### 1. Understand the Request
19
+
20
+ Extract the user's intent through conversation. Identify:
21
+
22
+ - **What** needs to change (feature, fix, refactor, infrastructure)
23
+ - **Why** it needs to change (user problem, tech debt, prerequisite for other work)
24
+ - **Constraints** the user cares about (performance, compatibility, patterns to follow)
25
+
26
+ If the request is ambiguous, ask clarifying questions before proceeding. Do not guess intent.
27
+
28
+ ### 2. Discover Architectural Context
29
+
30
+ Before writing any goal, survey the project to understand what exists:
31
+
32
+ ```bash
33
+ jumbo architecture view
34
+ jumbo components search --query "<relevant domain terms>"
35
+ jumbo components search --type <likely-type>
36
+ jumbo invariants list
37
+ jumbo guidelines list
38
+ jumbo decisions list
39
+ jumbo dependencies list
40
+ ```
41
+
42
+ This discovery serves two purposes:
43
+ - **Inform decomposition**: Understanding the system's boundaries, patterns, and constraints reveals the natural seams along which to split work.
44
+ - **Inform criteria**: Existing invariants, decisions, and patterns dictate what "correct" looks like.
45
+
46
+ Also explore the codebase directly to understand current implementation:
47
+
48
+ ```bash
49
+ # Find relevant source files
50
+ # Read key files to understand existing patterns
51
+ # Identify integration points and boundaries
52
+ ```
53
+
54
+ ### 3. Decompose into Right-Sized Goals
55
+
56
+ A goal is **right-sized** when:
57
+
58
+ - It produces a **shippable increment** — the codebase is better after this goal alone, even if later goals are never started.
59
+ - It can be **implemented in a single session** — an agent can start and complete it without context compaction.
60
+ - It has a **clear boundary** — scope-in and scope-out can be stated without hedging.
61
+ - It touches **one architectural concern** — avoid goals that mix, e.g., domain modeling with UI work with infrastructure changes.
62
+
63
+ **Decomposition heuristics:**
64
+
65
+ | Signal | Action |
66
+ |--------|--------|
67
+ | Work spans multiple bounded contexts or layers | Split by context/layer |
68
+ | Work requires a new abstraction before feature code | Split: abstraction goal first, feature goal second |
69
+ | Work has independent sub-deliverables | Split into parallel goals (no prerequisite chain) |
70
+ | Work has sequential dependencies | Split into chained goals (use `--previous-goal` / `--next-goal`) |
71
+ | Work is a single focused change | Keep as one goal |
72
+
73
+ **Sequencing tools:**
74
+
75
+ - `--prerequisite-goals <ids>`: Hard dependency — goal cannot start until prerequisites are complete.
76
+ - `--previous-goal <id>` / `--next-goal <id>`: Suggested ordering — chains goals for sequential flow.
77
+
78
+ ### 4. Author Each Goal
79
+
80
+ For each goal, compose the three pillars: **objective**, **criteria**, and **scope**.
81
+
82
+ #### Objective
83
+
84
+ The objective is a single sentence that answers: "What is being built or changed, and why?"
85
+
86
+ | Quality | Example |
87
+ |---------|---------|
88
+ | BAD | "Implement telemetry" |
89
+ | BAD | "Add PostHog integration for tracking" |
90
+ | GOOD | "Add anonymous usage telemetry to the CLI using PostHog so we can understand which commands are used and where failures occur" |
91
+
92
+ Rules:
93
+ - State the **what** and the **why** in one sentence.
94
+ - Name specific technologies, patterns, or components when known.
95
+ - Do not describe how — that belongs in criteria.
96
+
97
+ #### Success Criteria
98
+
99
+ Each criterion is a **verifiable statement** that the reviewing agent can confirm by reading code or running tests. Criteria are the implementation instructions in disguise.
100
+
101
+ | Quality | Example |
102
+ |---------|---------|
103
+ | BAD | "Telemetry works" |
104
+ | BAD | "Good test coverage" |
105
+ | GOOD | "Application layer defines a TelemetryPort interface with `trackEvent(name, properties)` and `identify(anonymousId)` methods" |
106
+ | GOOD | "Infrastructure adapter implements TelemetryPort using PostHog Node SDK with fire-and-forget sends that never block the CLI event loop" |
107
+ | GOOD | "First-run consent prompt stores preference in `~/.config/jumbo/telemetry.json` with schema `{ enabled: boolean, promptedAt: string }`" |
108
+
109
+ Rules:
110
+ - Each criterion describes a **single verifiable outcome**.
111
+ - Name specific types, methods, file locations, schemas, or behaviors.
112
+ - Make criteria **architecture-aware** — reference the project's patterns (ports/adapters, event sourcing, CQRS) when the implementation must conform.
113
+ - Order criteria from foundational to dependent — the implementing agent reads them top to bottom.
114
+ - Include a testing criterion — specify what tests exist and what they verify.
115
+ - If a refactoring skill applies, add `skill:<skill-name>` as a criterion.
116
+
117
+ **Criteria count guidance:**
118
+ - Trivial goal (rename, config change): 2-3 criteria
119
+ - Standard goal (new feature, refactor): 5-8 criteria
120
+ - Complex goal (cross-cutting concern): 8-12 criteria
121
+
122
+ #### Scope
123
+
124
+ Scope tells the implementing agent where to work and where not to touch.
125
+
126
+ ```bash
127
+ --scope-in "src/application/telemetry/" "src/infrastructure/posthog/" "src/cli/commands/config.ts"
128
+ --scope-out "src/domain/" "src/infrastructure/persistence/"
129
+ ```
130
+
131
+ Rules:
132
+ - Use **file paths or directory prefixes**, not abstract descriptions.
133
+ - `scope-in` lists files/directories that WILL be created or modified.
134
+ - `scope-out` lists files/directories that MUST NOT be modified (protects unrelated code).
135
+ - When creating new files, include the intended path in scope-in even though it does not exist yet.
136
+ - Scope-out is especially valuable for goals that touch shared infrastructure — it prevents the agent from "fixing" unrelated code.
137
+
138
+ ### 5. Register the Goal
139
+
140
+ Run `jumbo goal add --help` to confirm current flags and syntax before registering. Pass the objective, criteria, scope, and sequencing flags composed in the previous steps.
141
+
142
+ For multi-goal decompositions, register goals in dependency order so that sequencing flags can reference already-created IDs.
143
+
144
+ #### Goal Chaining with Previous/Next Goals
145
+
146
+ The `--previous-goal` and `--next-goal` flags create a **chain** — an ordered sequence of goals that an agent works through end-to-end. Chaining is distinct from prerequisites:
147
+
148
+ - **Prerequisites** (`--prerequisite-goals`) are hard gates — a goal cannot start until its prerequisites are complete.
149
+ - **Chains** (`--previous-goal` / `--next-goal`) are navigational — when the agent finishes one goal, the chain tells it what to pick up next without the user intervening.
150
+
151
+ Chaining is the primary mechanism for **long-running autonomous sessions without context rot.** Each goal in the chain carries its own focused context assembled at start time. When the agent completes goal A and transitions to goal B, `jumbo goal start` assembles fresh, relevant context for B — discarding the accumulated noise from A's implementation. The agent effectively gets a clean context window scoped precisely to the next unit of work, without losing the benefits of sequential execution.
152
+
153
+ **When to chain:**
154
+ - Work decomposes into ordered steps where each builds on the prior (e.g., "define port abstraction" → "implement adapter" → "wire into CLI").
155
+ - The user wants to hand off a multi-goal workstream and return when it is all done.
156
+ - The combined work would exceed comfortable context limits if attempted as a single goal.
157
+
158
+ **When NOT to chain:**
159
+ - Goals are independent and can be worked in any order — leave them unchained so the agent (or user) can prioritize freely.
160
+ - Goals have hard dependencies where failure of one invalidates the next — use `--prerequisite-goals` instead, which enforces completion before start.
161
+
162
+ ### 6. Verify Before Handing Off
163
+
164
+ After all goals are registered, verify:
165
+
166
+ - [ ] Every goal has a clear, specific objective with what + why
167
+ - [ ] Every goal has criteria that an agent can verify by reading code
168
+ - [ ] Every goal has scope-in that matches the files it will touch
169
+ - [ ] Scope-out protects areas adjacent to scope-in that should not change
170
+ - [ ] Goal sequencing reflects actual dependencies (not just aesthetic ordering)
171
+ - [ ] No single goal is so large it risks context compaction during implementation
172
+ - [ ] No goal duplicates work from another goal
173
+ - [ ] The full set of goals covers the user's original request completely
174
+
175
+ ## Anti-Patterns
176
+
177
+ | Anti-Pattern | Problem | Fix |
178
+ |--------------|---------|-----|
179
+ | "Implement feature X" as sole criterion | Agent has no spec, explores and guesses | Break into 5-8 specific verifiable outcomes |
180
+ | Scope-in says "src/" | Everything is in scope, nothing is protected | List specific directories and files |
181
+ | No scope-out | Agent may refactor neighboring code | Explicitly exclude adjacent areas |
182
+ | Goal mixes domain + infrastructure + tests | Too broad, risks compaction | Split by architectural layer |
183
+ | Criteria reference "should" or "ideally" | Ambiguous — pass or fail? | Rewrite as binary verifiable statements |
184
+ | 15+ criteria on one goal | Goal is too large | Decompose into multiple goals |
185
+ | No testing criterion | Agent skips tests | Always include what tests must exist |
186
+
187
+ ## Rules
188
+
189
+ 1. **Never register a goal without discovery.** Always explore the architecture, components, and constraints before writing objectives and criteria. Definition without context produces goals that fight the architecture.
190
+ 2. **Never write criteria the reviewing agent cannot verify.** If a criterion requires subjective judgment ("clean code", "good performance"), replace it with a measurable statement ("no function exceeds 30 lines", "response time under 200ms for 1000 records").
191
+ 3. **Never skip scope.** Every goal must have scope-in. Most goals should have scope-out. Unbounded scope invites unbounded implementation.
192
+ 4. **Always decompose before defining.** Resist the urge to create one large goal. Think in shippable increments.
193
+ 5. **Always verify goal coverage.** The union of all goals must fully address the user's request. Gaps between goals are gaps in delivery.