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.
- package/LICENSE.txt +661 -661
- package/README.md +239 -239
- package/assets/claude-logo.svg +7 -7
- package/assets/codex-logo.svg +3 -3
- package/assets/cursor-logo.svg +31 -31
- package/assets/mistral-logo.svg +19 -19
- package/assets/skills/codify-jumbo-goal/SKILL.md +116 -116
- package/assets/skills/define-jumbo-goals/SKILL.md +193 -193
- package/assets/skills/refine-jumbo-goals/SKILL.md +156 -156
- package/assets/skills/reject-jumbo-goal/SKILL.md +58 -58
- package/assets/skills/review-jumbo-goal/SKILL.md +94 -94
- package/assets/skills/start-jumbo-goal/SKILL.md +86 -86
- package/assets/vscode-logo.svg +41 -41
- package/dist/domain/project/AgentFileReferenceContent.js +7 -7
- package/dist/domain/project/AgentsMdContent.js +74 -74
- package/dist/domain/project/CopilotInstructionsContent.js +38 -38
- package/dist/infrastructure/context/architecture/define/SqliteArchitectureDefinedProjector.js +5 -5
- package/dist/infrastructure/context/architecture/migrations/001-create-architecture-views.sql +16 -16
- package/dist/infrastructure/context/architecture/migrations/002-drop-dataflow-column.sql +4 -4
- package/dist/infrastructure/context/architecture/update/SqliteArchitectureUpdatedProjector.js +4 -4
- package/dist/infrastructure/context/audience-pains/add/SqliteAudiencePainAddedProjector.js +4 -4
- package/dist/infrastructure/context/audience-pains/migrations/001-create-audience-pain-views.sql +17 -17
- package/dist/infrastructure/context/audience-pains/update/SqliteAudiencePainUpdatedProjector.js +4 -4
- package/dist/infrastructure/context/audiences/add/SqliteAudienceAddedProjector.js +5 -5
- package/dist/infrastructure/context/audiences/migrations/001-create-audience-views.sql +17 -17
- package/dist/infrastructure/context/audiences/remove/SqliteAudienceRemovedProjector.js +6 -6
- package/dist/infrastructure/context/audiences/update/SqliteAudienceUpdatedProjector.js +4 -4
- package/dist/infrastructure/context/components/add/SqliteComponentAddedProjector.js +5 -5
- package/dist/infrastructure/context/components/deprecate/SqliteComponentDeprecatedProjector.js +7 -7
- package/dist/infrastructure/context/components/migrations/001-create-component-views.sql +21 -21
- package/dist/infrastructure/context/components/remove/SqliteComponentRemovedProjector.js +6 -6
- package/dist/infrastructure/context/components/rename/SqliteComponentRenamedProjector.js +4 -4
- package/dist/infrastructure/context/components/undeprecate/SqliteComponentUndeprecatedProjector.js +7 -7
- package/dist/infrastructure/context/components/update/SqliteComponentUpdatedProjector.js +4 -4
- package/dist/infrastructure/context/decisions/add/SqliteDecisionAddedProjector.js +6 -6
- package/dist/infrastructure/context/decisions/migrations/001-create-decision-views.sql +22 -22
- package/dist/infrastructure/context/decisions/restore/SqliteDecisionRestoredProjector.js +9 -9
- package/dist/infrastructure/context/decisions/reverse/SqliteDecisionReversedProjector.js +8 -8
- package/dist/infrastructure/context/decisions/supersede/SqliteDecisionSupersededProjector.js +7 -7
- package/dist/infrastructure/context/decisions/update/SqliteDecisionUpdatedProjector.js +10 -10
- package/dist/infrastructure/context/dependencies/add/SqliteDependencyAddedProjector.js +5 -5
- package/dist/infrastructure/context/dependencies/get/SqliteLegacyDependencyReader.js +5 -5
- package/dist/infrastructure/context/dependencies/migrations/001-create-dependency-views.sql +21 -21
- package/dist/infrastructure/context/dependencies/migrations/002-add-external-dependency-columns.sql +11 -11
- package/dist/infrastructure/context/dependencies/remove/SqliteDependencyRemovedProjector.js +8 -8
- package/dist/infrastructure/context/dependencies/update/SqliteDependencyUpdatedProjector.js +4 -4
- package/dist/infrastructure/context/goals/add/SqliteGoalAddedProjector.js +7 -7
- package/dist/infrastructure/context/goals/approve/SqliteGoalApprovedProjector.js +9 -9
- package/dist/infrastructure/context/goals/block/SqliteGoalBlockedProjector.js +7 -7
- package/dist/infrastructure/context/goals/close/SqliteGoalClosedProjector.js +9 -9
- package/dist/infrastructure/context/goals/codify/SqliteGoalCodifyingStartedProjector.js +9 -9
- package/dist/infrastructure/context/goals/commit/SqliteGoalCommittedProjector.js +9 -9
- package/dist/infrastructure/context/goals/complete/SqliteGoalCompletedProjector.js +9 -9
- package/dist/infrastructure/context/goals/migrate/SqliteGoalStatusMigratedProjector.js +7 -7
- package/dist/infrastructure/context/goals/migrations/001-create-goal-views.sql +20 -20
- package/dist/infrastructure/context/goals/migrations/002-add-embedded-context-columns.sql +11 -11
- package/dist/infrastructure/context/goals/migrations/003-add-next-goal-column.sql +4 -4
- package/dist/infrastructure/context/goals/migrations/004-add-claim-columns.sql +7 -7
- package/dist/infrastructure/context/goals/migrations/005-add-progress-column.sql +4 -4
- package/dist/infrastructure/context/goals/migrations/006-drop-boundaries-and-embedded-context-columns.sql +11 -11
- package/dist/infrastructure/context/goals/migrations/007-add-title-column.sql +2 -2
- package/dist/infrastructure/context/goals/migrations/008-add-prerequisite-goals-column.sql +1 -1
- package/dist/infrastructure/context/goals/migrations/009-add-review-issues-column.sql +1 -1
- package/dist/infrastructure/context/goals/pause/SqliteGoalPausedProjector.js +7 -7
- package/dist/infrastructure/context/goals/qualify/SqliteGoalQualifiedProjector.js +9 -9
- package/dist/infrastructure/context/goals/refine/SqliteGoalRefinedProjector.js +15 -15
- package/dist/infrastructure/context/goals/reject/SqliteGoalRejectedProjector.js +10 -10
- package/dist/infrastructure/context/goals/remove/SqliteGoalRemovedProjector.js +3 -3
- package/dist/infrastructure/context/goals/reset/SqliteGoalResetProjector.js +11 -11
- package/dist/infrastructure/context/goals/resume/SqliteGoalResumedProjector.js +10 -10
- package/dist/infrastructure/context/goals/review/SqliteGoalSubmittedForReviewProjector.js +9 -9
- package/dist/infrastructure/context/goals/start/SqliteGoalStartedProjector.js +9 -9
- package/dist/infrastructure/context/goals/submit/SqliteGoalSubmittedProjector.js +9 -9
- package/dist/infrastructure/context/goals/unblock/SqliteGoalUnblockedProjector.js +7 -7
- package/dist/infrastructure/context/goals/update/SqliteGoalUpdatedProjector.js +4 -4
- package/dist/infrastructure/context/goals/update-progress/SqliteGoalProgressUpdatedProjector.js +8 -8
- package/dist/infrastructure/context/guidelines/add/SqliteGuidelineAddedProjector.js +5 -5
- package/dist/infrastructure/context/guidelines/migrations/001-create-guideline-views.sql +22 -22
- package/dist/infrastructure/context/guidelines/remove/SqliteGuidelineRemovedProjector.js +8 -8
- package/dist/infrastructure/context/guidelines/update/SqliteGuidelineUpdatedProjector.js +4 -4
- package/dist/infrastructure/context/invariants/add/SqliteInvariantAddedProjector.js +5 -5
- package/dist/infrastructure/context/invariants/migrations/001-create-invariant-views.sql +16 -16
- package/dist/infrastructure/context/invariants/remove/SqliteInvariantRemovedProjector.js +2 -2
- package/dist/infrastructure/context/invariants/update/SqliteInvariantUpdatedProjector.js +9 -9
- package/dist/infrastructure/context/project/init/SqliteProjectInitializedProjector.js +5 -5
- package/dist/infrastructure/context/project/migrations/001-create-project-views.sql +13 -13
- package/dist/infrastructure/context/project/migrations/002-drop-boundaries-column.sql +4 -4
- package/dist/infrastructure/context/project/update/SqliteProjectUpdatedProjector.js +4 -4
- package/dist/infrastructure/context/relations/add/SqliteRelationAddedProjector.js +12 -12
- package/dist/infrastructure/context/relations/deactivate/SqliteRelationDeactivatedProjector.js +14 -14
- package/dist/infrastructure/context/relations/migrations/001-create-relation-views.sql +28 -28
- package/dist/infrastructure/context/relations/reactivate/SqliteRelationReactivatedProjector.js +14 -14
- package/dist/infrastructure/context/relations/remove/SqliteRelationRemovedProjector.js +14 -14
- package/dist/infrastructure/context/sessions/end/SqliteSessionEndedProjector.js +8 -8
- package/dist/infrastructure/context/sessions/migrations/001-create-session-views.sql +43 -43
- package/dist/infrastructure/context/sessions/migrations/002-add-goal-lifecycle-columns.sql +7 -7
- package/dist/infrastructure/context/sessions/migrations/003-remove-session-pause-status.sql +8 -8
- package/dist/infrastructure/context/sessions/migrations/004-drop-session-summary-views.sql +5 -5
- package/dist/infrastructure/context/sessions/start/SqliteSessionStartedProjector.js +5 -5
- package/dist/infrastructure/context/value-propositions/add/SqliteValuePropositionAddedProjector.js +5 -5
- package/dist/infrastructure/context/value-propositions/migrations/001-create-value-proposition-views.sql +19 -19
- package/dist/infrastructure/context/value-propositions/remove/SqliteValuePropositionRemovedProjector.js +2 -2
- package/dist/infrastructure/context/value-propositions/update/SqliteValuePropositionUpdatedProjector.js +4 -4
- package/dist/infrastructure/host/workers/migrations/001-create-workers.sql +12 -12
- package/dist/infrastructure/persistence/MigrationRunner.js +10 -10
- package/dist/infrastructure/settings/FsSettingsInitializer.js +25 -25
- package/dist/infrastructure/settings/FsSettingsReader.js +25 -25
- package/dist/infrastructure/telemetry/PostHogTelemetryClient.d.ts +1 -1
- package/dist/infrastructure/telemetry/PostHogTelemetryClient.d.ts.map +1 -1
- package/dist/infrastructure/telemetry/PostHogTelemetryClient.js +7 -1
- package/dist/infrastructure/telemetry/PostHogTelemetryClient.js.map +1 -1
- package/dist/infrastructure/telemetry/PostHogTelemetryConstants.d.ts +2 -2
- package/dist/infrastructure/telemetry/PostHogTelemetryConstants.d.ts.map +1 -1
- package/dist/infrastructure/telemetry/PostHogTelemetryConstants.js +2 -2
- package/dist/infrastructure/telemetry/PostHogTelemetryConstants.js.map +1 -1
- package/dist/presentation/cli/commands/project/init/project.init.d.ts.map +1 -1
- package/dist/presentation/cli/commands/project/init/project.init.js +4 -1
- package/dist/presentation/cli/commands/project/init/project.init.js.map +1 -1
- package/package.json +90 -89
- package/dist/application/context/goals/complete/CompleteGoalCommand.d.ts +0 -8
- package/dist/application/context/goals/complete/CompleteGoalCommand.d.ts.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalCommand.js +0 -3
- package/dist/application/context/goals/complete/CompleteGoalCommand.js.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalCommandHandler.d.ts +0 -27
- package/dist/application/context/goals/complete/CompleteGoalCommandHandler.d.ts.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalCommandHandler.js +0 -52
- package/dist/application/context/goals/complete/CompleteGoalCommandHandler.js.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalController.d.ts +0 -9
- package/dist/application/context/goals/complete/CompleteGoalController.d.ts.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalController.js +0 -13
- package/dist/application/context/goals/complete/CompleteGoalController.js.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalRequest.d.ts +0 -10
- package/dist/application/context/goals/complete/CompleteGoalRequest.d.ts.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalRequest.js +0 -3
- package/dist/application/context/goals/complete/CompleteGoalRequest.js.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalResponse.d.ts +0 -17
- package/dist/application/context/goals/complete/CompleteGoalResponse.d.ts.map +0 -1
- package/dist/application/context/goals/complete/CompleteGoalResponse.js +0 -3
- package/dist/application/context/goals/complete/CompleteGoalResponse.js.map +0 -1
- package/dist/application/context/goals/complete/ICompleteGoalGateway.d.ts +0 -6
- package/dist/application/context/goals/complete/ICompleteGoalGateway.d.ts.map +0 -1
- package/dist/application/context/goals/complete/ICompleteGoalGateway.js +0 -3
- package/dist/application/context/goals/complete/ICompleteGoalGateway.js.map +0 -1
- package/dist/application/context/goals/complete/LocalCompleteGoalGateway.d.ts +0 -16
- package/dist/application/context/goals/complete/LocalCompleteGoalGateway.d.ts.map +0 -1
- package/dist/application/context/goals/complete/LocalCompleteGoalGateway.js +0 -49
- package/dist/application/context/goals/complete/LocalCompleteGoalGateway.js.map +0 -1
- package/dist/application/context/project/init/IInitializationProtocol.d.ts +0 -44
- package/dist/application/context/project/init/IInitializationProtocol.d.ts.map +0 -1
- package/dist/application/context/project/init/IInitializationProtocol.js +0 -14
- package/dist/application/context/project/init/IInitializationProtocol.js.map +0 -1
- package/dist/application/context/project/init/InitializationProtocol.d.ts +0 -32
- package/dist/application/context/project/init/InitializationProtocol.d.ts.map +0 -1
- package/dist/application/context/project/init/InitializationProtocol.js +0 -51
- package/dist/application/context/project/init/InitializationProtocol.js.map +0 -1
- package/dist/application/context/relations/get/GetRelationsQueryHandler.d.ts +0 -14
- package/dist/application/context/relations/get/GetRelationsQueryHandler.d.ts.map +0 -1
- package/dist/application/context/relations/get/GetRelationsQueryHandler.js +0 -19
- package/dist/application/context/relations/get/GetRelationsQueryHandler.js.map +0 -1
- package/dist/application/context/value-propositions/list/ListValuePropositionsQueryHandler.d.ts +0 -27
- package/dist/application/context/value-propositions/list/ListValuePropositionsQueryHandler.d.ts.map +0 -1
- package/dist/application/context/value-propositions/list/ListValuePropositionsQueryHandler.js +0 -32
- package/dist/application/context/value-propositions/list/ListValuePropositionsQueryHandler.js.map +0 -1
- package/dist/application/maintenance/repair/IRepairMaintenanceGateway.d.ts +0 -6
- package/dist/application/maintenance/repair/IRepairMaintenanceGateway.d.ts.map +0 -1
- package/dist/application/maintenance/repair/IRepairMaintenanceGateway.js +0 -3
- package/dist/application/maintenance/repair/IRepairMaintenanceGateway.js.map +0 -1
- package/dist/application/maintenance/repair/LocalRepairMaintenanceGateway.d.ts +0 -16
- package/dist/application/maintenance/repair/LocalRepairMaintenanceGateway.d.ts.map +0 -1
- package/dist/application/maintenance/repair/LocalRepairMaintenanceGateway.js +0 -90
- package/dist/application/maintenance/repair/LocalRepairMaintenanceGateway.js.map +0 -1
- package/dist/application/maintenance/repair/RepairMaintenanceController.d.ts +0 -9
- package/dist/application/maintenance/repair/RepairMaintenanceController.d.ts.map +0 -1
- package/dist/application/maintenance/repair/RepairMaintenanceController.js +0 -13
- package/dist/application/maintenance/repair/RepairMaintenanceController.js.map +0 -1
- package/dist/application/maintenance/repair/RepairMaintenanceRequest.d.ts +0 -6
- package/dist/application/maintenance/repair/RepairMaintenanceRequest.d.ts.map +0 -1
- package/dist/application/maintenance/repair/RepairMaintenanceRequest.js +0 -3
- package/dist/application/maintenance/repair/RepairMaintenanceRequest.js.map +0 -1
- package/dist/application/maintenance/repair/RepairMaintenanceResponse.d.ts +0 -9
- package/dist/application/maintenance/repair/RepairMaintenanceResponse.d.ts.map +0 -1
- package/dist/application/maintenance/repair/RepairMaintenanceResponse.js +0 -3
- package/dist/application/maintenance/repair/RepairMaintenanceResponse.js.map +0 -1
- package/dist/application/repair/IRepairGateway.d.ts +0 -6
- package/dist/application/repair/IRepairGateway.d.ts.map +0 -1
- package/dist/application/repair/IRepairGateway.js +0 -3
- package/dist/application/repair/IRepairGateway.js.map +0 -1
- package/dist/application/repair/LocalRepairGateway.d.ts +0 -16
- package/dist/application/repair/LocalRepairGateway.d.ts.map +0 -1
- package/dist/application/repair/LocalRepairGateway.js +0 -90
- package/dist/application/repair/LocalRepairGateway.js.map +0 -1
- package/dist/application/repair/RepairController.d.ts +0 -9
- package/dist/application/repair/RepairController.d.ts.map +0 -1
- package/dist/application/repair/RepairController.js +0 -13
- package/dist/application/repair/RepairController.js.map +0 -1
- package/dist/application/repair/RepairRequest.d.ts +0 -6
- package/dist/application/repair/RepairRequest.d.ts.map +0 -1
- package/dist/application/repair/RepairRequest.js +0 -3
- package/dist/application/repair/RepairRequest.js.map +0 -1
- package/dist/application/repair/RepairResponse.d.ts +0 -9
- package/dist/application/repair/RepairResponse.d.ts.map +0 -1
- package/dist/application/repair/RepairResponse.js +0 -3
- package/dist/application/repair/RepairResponse.js.map +0 -1
- package/dist/domain/project/AgentInstructions.d.ts +0 -67
- package/dist/domain/project/AgentInstructions.d.ts.map +0 -1
- package/dist/domain/project/AgentInstructions.js +0 -261
- package/dist/domain/project/AgentInstructions.js.map +0 -1
- package/dist/infrastructure/context/goals/claims/FsGoalClaimStore.d.ts +0 -33
- package/dist/infrastructure/context/goals/claims/FsGoalClaimStore.d.ts.map +0 -1
- package/dist/infrastructure/context/goals/claims/FsGoalClaimStore.js +0 -66
- package/dist/infrastructure/context/goals/claims/FsGoalClaimStore.js.map +0 -1
- package/dist/infrastructure/context/goals/get/LocalGetGoalsGateway.d.ts +0 -10
- package/dist/infrastructure/context/goals/get/LocalGetGoalsGateway.d.ts.map +0 -1
- package/dist/infrastructure/context/goals/get/LocalGetGoalsGateway.js +0 -36
- package/dist/infrastructure/context/goals/get/LocalGetGoalsGateway.js.map +0 -1
- package/dist/infrastructure/context/goals/get/LocalShowGoalGateway.d.ts +0 -10
- package/dist/infrastructure/context/goals/get/LocalShowGoalGateway.d.ts.map +0 -1
- package/dist/infrastructure/context/goals/get/LocalShowGoalGateway.js +0 -14
- package/dist/infrastructure/context/goals/get/LocalShowGoalGateway.js.map +0 -1
- package/dist/infrastructure/context/relations/get/LocalGetRelationsGateway.d.ts +0 -10
- package/dist/infrastructure/context/relations/get/LocalGetRelationsGateway.d.ts.map +0 -1
- package/dist/infrastructure/context/relations/get/LocalGetRelationsGateway.js +0 -18
- package/dist/infrastructure/context/relations/get/LocalGetRelationsGateway.js.map +0 -1
- package/dist/infrastructure/context/sessions/get/LocalGetSessionsGateway.d.ts +0 -10
- package/dist/infrastructure/context/sessions/get/LocalGetSessionsGateway.d.ts.map +0 -1
- package/dist/infrastructure/context/sessions/get/LocalGetSessionsGateway.js +0 -14
- package/dist/infrastructure/context/sessions/get/LocalGetSessionsGateway.js.map +0 -1
- package/dist/presentation/cli/commands/goals/complete/GoalCompleteOutputBuilder.d.ts +0 -29
- package/dist/presentation/cli/commands/goals/complete/GoalCompleteOutputBuilder.d.ts.map +0 -1
- package/dist/presentation/cli/commands/goals/complete/GoalCompleteOutputBuilder.js +0 -105
- package/dist/presentation/cli/commands/goals/complete/GoalCompleteOutputBuilder.js.map +0 -1
- package/dist/presentation/cli/commands/goals/complete/goal.complete.d.ts +0 -20
- package/dist/presentation/cli/commands/goals/complete/goal.complete.d.ts.map +0 -1
- package/dist/presentation/cli/commands/goals/complete/goal.complete.js +0 -58
- package/dist/presentation/cli/commands/goals/complete/goal.complete.js.map +0 -1
- package/dist/presentation/cli/commands/maintenance/db/rebuild/db.rebuild.d.ts +0 -26
- package/dist/presentation/cli/commands/maintenance/db/rebuild/db.rebuild.d.ts.map +0 -1
- package/dist/presentation/cli/commands/maintenance/db/rebuild/db.rebuild.js +0 -68
- package/dist/presentation/cli/commands/maintenance/db/rebuild/db.rebuild.js.map +0 -1
- package/dist/presentation/cli/commands/maintenance/migrate-dependencies/MigrateDependenciesOutputBuilder.d.ts +0 -14
- package/dist/presentation/cli/commands/maintenance/migrate-dependencies/MigrateDependenciesOutputBuilder.d.ts.map +0 -1
- package/dist/presentation/cli/commands/maintenance/migrate-dependencies/MigrateDependenciesOutputBuilder.js +0 -61
- package/dist/presentation/cli/commands/maintenance/migrate-dependencies/MigrateDependenciesOutputBuilder.js.map +0 -1
- package/dist/presentation/cli/commands/maintenance/migrate-dependencies/dependency.migrate.d.ts +0 -23
- package/dist/presentation/cli/commands/maintenance/migrate-dependencies/dependency.migrate.d.ts.map +0 -1
- package/dist/presentation/cli/commands/maintenance/migrate-dependencies/dependency.migrate.js +0 -59
- package/dist/presentation/cli/commands/maintenance/migrate-dependencies/dependency.migrate.js.map +0 -1
- package/dist/presentation/cli/commands/maintenance/repair/RepairOutputBuilder.d.ts +0 -24
- package/dist/presentation/cli/commands/maintenance/repair/RepairOutputBuilder.d.ts.map +0 -1
- package/dist/presentation/cli/commands/maintenance/repair/RepairOutputBuilder.js +0 -49
- package/dist/presentation/cli/commands/maintenance/repair/RepairOutputBuilder.js.map +0 -1
- package/dist/presentation/cli/commands/maintenance/repair/maintenance.repair.d.ts +0 -27
- package/dist/presentation/cli/commands/maintenance/repair/maintenance.repair.d.ts.map +0 -1
- package/dist/presentation/cli/commands/maintenance/repair/maintenance.repair.js +0 -85
- package/dist/presentation/cli/commands/maintenance/repair/maintenance.repair.js.map +0 -1
- package/dist/presentation/cli/commands/maintenance/upgrade/UpgradeOutputBuilder.d.ts +0 -16
- package/dist/presentation/cli/commands/maintenance/upgrade/UpgradeOutputBuilder.d.ts.map +0 -1
- package/dist/presentation/cli/commands/maintenance/upgrade/UpgradeOutputBuilder.js +0 -40
- package/dist/presentation/cli/commands/maintenance/upgrade/UpgradeOutputBuilder.js.map +0 -1
- package/dist/presentation/cli/commands/maintenance/upgrade/db.upgrade.d.ts +0 -26
- package/dist/presentation/cli/commands/maintenance/upgrade/db.upgrade.d.ts.map +0 -1
- package/dist/presentation/cli/commands/maintenance/upgrade/db.upgrade.js +0 -64
- package/dist/presentation/cli/commands/maintenance/upgrade/db.upgrade.js.map +0 -1
- package/dist/presentation/cli/commands/repair/RepairOutputBuilder.d.ts +0 -24
- package/dist/presentation/cli/commands/repair/RepairOutputBuilder.d.ts.map +0 -1
- package/dist/presentation/cli/commands/repair/RepairOutputBuilder.js +0 -50
- package/dist/presentation/cli/commands/repair/RepairOutputBuilder.js.map +0 -1
- package/dist/presentation/cli/commands/repair/repair.d.ts +0 -31
- package/dist/presentation/cli/commands/repair/repair.d.ts.map +0 -1
- package/dist/presentation/cli/commands/repair/repair.js +0 -88
- 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.
|