@taskforcehq/taskforce 0.3.168
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/README.md +241 -0
- package/dist/Taskforce.d.ts +3 -0
- package/dist/Taskforce.js +3 -0
- package/dist/Taskforce.module.css +7587 -0
- package/dist/TaskforceCore.CategoryFallback.test.d.ts +1 -0
- package/dist/TaskforceCore.CategoryFallback.test.js +98 -0
- package/dist/TaskforceCore.d.ts +12 -0
- package/dist/TaskforceCore.js +729 -0
- package/dist/TaskforceCore.test.d.ts +1 -0
- package/dist/TaskforceCore.test.js +2132 -0
- package/dist/TaskforceScreenshot.d.ts +11 -0
- package/dist/TaskforceScreenshot.js +113 -0
- package/dist/TaskforceWidget.d.ts +6 -0
- package/dist/TaskforceWidget.js +101 -0
- package/dist/TaskforceWidget.test.d.ts +1 -0
- package/dist/TaskforceWidget.test.js +92 -0
- package/dist/UnsavedChangesRelaxed.test.d.ts +1 -0
- package/dist/UnsavedChangesRelaxed.test.js +16 -0
- package/dist/__tests__/localizationCatalogs.test.d.ts +1 -0
- package/dist/__tests__/localizationCatalogs.test.js +37 -0
- package/dist/__tests__/planParser.test.d.ts +1 -0
- package/dist/__tests__/planParser.test.js +183 -0
- package/dist/__tests__/releaseVersion.test.d.ts +1 -0
- package/dist/__tests__/releaseVersion.test.js +32 -0
- package/dist/__tests__/structuredCommentValidation.test.d.ts +1 -0
- package/dist/__tests__/structuredCommentValidation.test.js +31 -0
- package/dist/__tests__/structuredDocValidation.test.d.ts +1 -0
- package/dist/__tests__/structuredDocValidation.test.js +30 -0
- package/dist/__tests__/templateEngine.test.d.ts +1 -0
- package/dist/__tests__/templateEngine.test.js +150 -0
- package/dist/__tests__/templates.test.d.ts +1 -0
- package/dist/__tests__/templates.test.js +45 -0
- package/dist/__tests__/workflowDocumentFixtures.test.d.ts +1 -0
- package/dist/__tests__/workflowDocumentFixtures.test.js +78 -0
- package/dist/__tests__/workflowExportMatrix.test.d.ts +1 -0
- package/dist/__tests__/workflowExportMatrix.test.js +113 -0
- package/dist/__tests__/workflowExportSnapshots.test.d.ts +1 -0
- package/dist/__tests__/workflowExportSnapshots.test.js +28 -0
- package/dist/__tests__/workflowGeneration.test.d.ts +1 -0
- package/dist/__tests__/workflowGeneration.test.js +12 -0
- package/dist/__tests__/workflowSimulation.test.d.ts +1 -0
- package/dist/__tests__/workflowSimulation.test.js +113 -0
- package/dist/__tests__/workflowV2Policy.test.d.ts +1 -0
- package/dist/__tests__/workflowV2Policy.test.js +80 -0
- package/dist/api.d.ts +30 -0
- package/dist/api.js +85 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +217 -0
- package/dist/compat/priorityCompat.d.ts +2 -0
- package/dist/compat/priorityCompat.js +24 -0
- package/dist/components/features/DocumentGenerateModal.d.ts +9 -0
- package/dist/components/features/DocumentGenerateModal.js +114 -0
- package/dist/components/features/DocumentIndex.d.ts +19 -0
- package/dist/components/features/DocumentIndex.js +51 -0
- package/dist/components/features/DocumentViewer.d.ts +9 -0
- package/dist/components/features/DocumentViewer.js +253 -0
- package/dist/components/features/DocumentWorkspace.d.ts +21 -0
- package/dist/components/features/DocumentWorkspace.js +88 -0
- package/dist/components/features/TaskSettings.d.ts +209 -0
- package/dist/components/features/TaskSettings.js +500 -0
- package/dist/components/features/TaskSettings.test.d.ts +1 -0
- package/dist/components/features/TaskSettings.test.js +308 -0
- package/dist/components/features/settings/CategoryManager.d.ts +19 -0
- package/dist/components/features/settings/CategoryManager.js +113 -0
- package/dist/components/features/settings/TaxonomyEditor.d.ts +8 -0
- package/dist/components/features/settings/TaxonomyEditor.js +98 -0
- package/dist/components/features/settings/TaxonomyManager 2.d.ts +52 -0
- package/dist/components/features/settings/TaxonomyManager 2.js +75 -0
- package/dist/components/features/settings/TaxonomyManager.d.ts +54 -0
- package/dist/components/features/settings/TaxonomyManager.js +77 -0
- package/dist/components/features/settings/TypeManager.d.ts +10 -0
- package/dist/components/features/settings/TypeManager.js +50 -0
- package/dist/components/features/settings/WorkflowEditorPrototype.d.ts +15 -0
- package/dist/components/features/settings/WorkflowEditorPrototype.js +245 -0
- package/dist/components/task/TaskActionHeader.d.ts +20 -0
- package/dist/components/task/TaskActionHeader.js +13 -0
- package/dist/components/task/TaskCard.d.ts +47 -0
- package/dist/components/task/TaskCard.js +326 -0
- package/dist/components/task/TaskCard.test.d.ts +1 -0
- package/dist/components/task/TaskCard.test.js +95 -0
- package/dist/components/task/TaskContextUpload.d.ts +12 -0
- package/dist/components/task/TaskContextUpload.js +393 -0
- package/dist/components/task/TaskContextUpload.test.d.ts +1 -0
- package/dist/components/task/TaskContextUpload.test.js +189 -0
- package/dist/components/task/TaskForm.d.ts +105 -0
- package/dist/components/task/TaskForm.js +241 -0
- package/dist/components/task/TaskForm.test.d.ts +1 -0
- package/dist/components/task/TaskForm.test.js +288 -0
- package/dist/components/task/TaskKanban 2.d.ts +76 -0
- package/dist/components/task/TaskKanban 2.js +1004 -0
- package/dist/components/task/TaskKanban.d.ts +76 -0
- package/dist/components/task/TaskKanban.empty-column-drop.test.d.ts +1 -0
- package/dist/components/task/TaskKanban.empty-column-drop.test.js +66 -0
- package/dist/components/task/TaskKanban.js +1026 -0
- package/dist/components/task/TaskKanban.test.d.ts +1 -0
- package/dist/components/task/TaskKanban.test.js +46 -0
- package/dist/components/task/TaskList.d.ts +74 -0
- package/dist/components/task/TaskList.js +38 -0
- package/dist/components/task/TaskList.test.d.ts +1 -0
- package/dist/components/task/TaskList.test.js +270 -0
- package/dist/components/task/TaskScreenshotSection.d.ts +15 -0
- package/dist/components/task/TaskScreenshotSection.js +22 -0
- package/dist/components/ui/LevelSelector.d.ts +13 -0
- package/dist/components/ui/LevelSelector.js +25 -0
- package/dist/components/ui/LevelSelector.test.d.ts +1 -0
- package/dist/components/ui/LevelSelector.test.js +55 -0
- package/dist/components/ui/Markdown.d.ts +6 -0
- package/dist/components/ui/Markdown.js +94 -0
- package/dist/components/ui/Markdown.test.d.ts +1 -0
- package/dist/components/ui/Markdown.test.js +38 -0
- package/dist/components/ui/Modal.d.ts +16 -0
- package/dist/components/ui/Modal.js +49 -0
- package/dist/components/ui/MultiSelectFilter.d.ts +10 -0
- package/dist/components/ui/MultiSelectFilter.js +71 -0
- package/dist/components/ui/MultiSelectFilter.test.d.ts +1 -0
- package/dist/components/ui/MultiSelectFilter.test.js +74 -0
- package/dist/components/ui/TaxonomyDropdown.d.ts +17 -0
- package/dist/components/ui/TaxonomyDropdown.js +145 -0
- package/dist/components/ui/TaxonomyDropdown.test.d.ts +1 -0
- package/dist/components/ui/TaxonomyDropdown.test.js +130 -0
- package/dist/components/views/StandaloneLayout 2.d.ts +8 -0
- package/dist/components/views/StandaloneLayout 2.js +1660 -0
- package/dist/components/views/StandaloneLayout.d.ts +8 -0
- package/dist/components/views/StandaloneLayout.js +2117 -0
- package/dist/components/views/WidgetView.d.ts +8 -0
- package/dist/components/views/WidgetView.js +221 -0
- package/dist/config/envSchema.d.ts +28 -0
- package/dist/config/envSchema.js +374 -0
- package/dist/config/envSchema.test.d.ts +1 -0
- package/dist/config/envSchema.test.js +97 -0
- package/dist/config/surfaceBase.d.ts +2 -0
- package/dist/config/surfaceBase.js +8 -0
- package/dist/core/BulkUpdateFieldsPreview.test.d.ts +1 -0
- package/dist/core/BulkUpdateFieldsPreview.test.js +62 -0
- package/dist/core/CompletedAt.test.d.ts +1 -0
- package/dist/core/CompletedAt.test.js +44 -0
- package/dist/core/CreatedBy.test.d.ts +1 -0
- package/dist/core/CreatedBy.test.js +60 -0
- package/dist/core/EntitlementsPolicy.test.d.ts +1 -0
- package/dist/core/EntitlementsPolicy.test.js +145 -0
- package/dist/core/InitiativeTemplates.test.d.ts +1 -0
- package/dist/core/InitiativeTemplates.test.js +50 -0
- package/dist/core/ParentLifecycle.test.d.ts +1 -0
- package/dist/core/ParentLifecycle.test.js +98 -0
- package/dist/core/ScheduleFields.test.d.ts +1 -0
- package/dist/core/ScheduleFields.test.js +197 -0
- package/dist/core/SetupState.test.d.ts +1 -0
- package/dist/core/SetupState.test.js +113 -0
- package/dist/core/SystemAdmin.test.d.ts +1 -0
- package/dist/core/SystemAdmin.test.js +295 -0
- package/dist/core/TaskTaxonomyValidation.test.d.ts +1 -0
- package/dist/core/TaskTaxonomyValidation.test.js +64 -0
- package/dist/core/Taskforce.d.ts +1063 -0
- package/dist/core/Taskforce.ids.test.d.ts +1 -0
- package/dist/core/Taskforce.ids.test.js +168 -0
- package/dist/core/Taskforce.js +5981 -0
- package/dist/core/Taskforce.realtimeMutation.test.d.ts +1 -0
- package/dist/core/Taskforce.realtimeMutation.test.js +76 -0
- package/dist/core/WorkspaceDelete.test.d.ts +1 -0
- package/dist/core/WorkspaceDelete.test.js +140 -0
- package/dist/core/WorkspacePermissions.test.d.ts +1 -0
- package/dist/core/WorkspacePermissions.test.js +151 -0
- package/dist/core/WorkspacePlanMode.test.d.ts +1 -0
- package/dist/core/WorkspacePlanMode.test.js +104 -0
- package/dist/hooks/authGuardPolicy.d.ts +26 -0
- package/dist/hooks/authGuardPolicy.js +32 -0
- package/dist/hooks/authGuardPolicy.test.d.ts +1 -0
- package/dist/hooks/authGuardPolicy.test.js +76 -0
- package/dist/hooks/useDraggable.d.ts +12 -0
- package/dist/hooks/useDraggable.js +65 -0
- package/dist/hooks/useRealtimeSync.d.ts +24 -0
- package/dist/hooks/useRealtimeSync.js +275 -0
- package/dist/hooks/useRealtimeSync.test.d.ts +1 -0
- package/dist/hooks/useRealtimeSync.test.js +284 -0
- package/dist/hooks/useSyncOrchestrator.d.ts +164 -0
- package/dist/hooks/useSyncOrchestrator.js +1427 -0
- package/dist/hooks/useSyncOrchestrator.retry-closure.test.d.ts +1 -0
- package/dist/hooks/useSyncOrchestrator.retry-closure.test.js +367 -0
- package/dist/hooks/useTaskforce.d.ts +727 -0
- package/dist/hooks/useTaskforce.js +4396 -0
- package/dist/hooks/useTaskforce.priority-filters.test.d.ts +1 -0
- package/dist/hooks/useTaskforce.priority-filters.test.js +33 -0
- package/dist/hooks/useWorkspaceSyncController.d.ts +80 -0
- package/dist/hooks/useWorkspaceSyncController.js +598 -0
- package/dist/hooks/useWorkspaceSyncController.test.d.ts +1 -0
- package/dist/hooks/useWorkspaceSyncController.test.js +236 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +11 -0
- package/dist/localization/index.d.ts +8 -0
- package/dist/localization/index.js +81 -0
- package/dist/localization/locales/en-US.d.ts +151 -0
- package/dist/localization/locales/en-US.js +150 -0
- package/dist/localization/locales/es-419.d.ts +2 -0
- package/dist/localization/locales/es-419.js +150 -0
- package/dist/localization/locales/pt-BR.d.ts +2 -0
- package/dist/localization/locales/pt-BR.js +150 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +33 -0
- package/dist/mcp/optionResolution.d.ts +14 -0
- package/dist/mcp/optionResolution.js +126 -0
- package/dist/mcp/optionResolution.test.d.ts +1 -0
- package/dist/mcp/optionResolution.test.js +39 -0
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +1793 -0
- package/dist/mcp/structuredCommentValidation.d.ts +6 -0
- package/dist/mcp/structuredCommentValidation.js +56 -0
- package/dist/mcp/structuredDocValidation.d.ts +6 -0
- package/dist/mcp/structuredDocValidation.js +75 -0
- package/dist/migrations/billingSchemaParity.test.d.ts +1 -0
- package/dist/migrations/billingSchemaParity.test.js +46 -0
- package/dist/migrations/clientMigrations.d.ts +9 -0
- package/dist/migrations/clientMigrations.js +74 -0
- package/dist/migrations/flags.d.ts +6 -0
- package/dist/migrations/flags.js +8 -0
- package/dist/migrations/taskMigrations.d.ts +71 -0
- package/dist/migrations/taskMigrations.js +236 -0
- package/dist/migrations/taskMigrations.test.d.ts +1 -0
- package/dist/migrations/taskMigrations.test.js +34 -0
- package/dist/migrations/taskSchemaMigrations.d.ts +11 -0
- package/dist/migrations/taskSchemaMigrations.js +453 -0
- package/dist/plugins/index.d.ts +10 -0
- package/dist/plugins/index.js +10 -0
- package/dist/plugins/vite.d.ts +19 -0
- package/dist/plugins/vite.js +271 -0
- package/dist/public/android-chrome-192x192.png +0 -0
- package/dist/public/android-chrome-512x512.png +0 -0
- package/dist/public/apple-touch-icon.png +0 -0
- package/dist/public/favicon-16x16.png +0 -0
- package/dist/public/favicon-32x32.png +0 -0
- package/dist/public/favicon.ico +0 -0
- package/dist/public/favicon.png +0 -0
- package/dist/public/site.webmanifest +1 -0
- package/dist/public/taskforce.png +0 -0
- package/dist/resources/templates/WORKFLOW_V2_POLICY.md +55 -0
- package/dist/resources/templates/environments/aider.yaml +14 -0
- package/dist/resources/templates/environments/antigravity.yaml +10 -0
- package/dist/resources/templates/environments/claude.yaml +10 -0
- package/dist/resources/templates/environments/cline.yaml +10 -0
- package/dist/resources/templates/environments/codex.yaml +13 -0
- package/dist/resources/templates/environments/copilot.yaml +10 -0
- package/dist/resources/templates/environments/cursor.yaml +9 -0
- package/dist/resources/templates/environments/gemini.yaml +9 -0
- package/dist/resources/templates/environments/windsurf.yaml +10 -0
- package/dist/resources/templates/workflow-sources/README.md +9 -0
- package/dist/resources/templates/workflow-sources/workflowDocs.mjs +520 -0
- package/dist/resources/templates/workflow-sources/workflowEditorOverrides.json +1 -0
- package/dist/resources/templates/workflows/collaborate.yaml +104 -0
- package/dist/resources/templates/workflows/do.yaml +82 -0
- package/dist/resources/templates/workflows/evaluate.yaml +111 -0
- package/dist/resources/templates/workflows/execute.yaml +142 -0
- package/dist/resources/templates/workflows/plan.yaml +112 -0
- package/dist/resources/templates/workflows/review.yaml +109 -0
- package/dist/runtime/capabilities.d.ts +8 -0
- package/dist/runtime/capabilities.js +16 -0
- package/dist/security/virusScan.d.ts +16 -0
- package/dist/security/virusScan.js +83 -0
- package/dist/server/auth.d.ts +51 -0
- package/dist/server/auth.js +266 -0
- package/dist/server/auth.test.d.ts +1 -0
- package/dist/server/auth.test.js +111 -0
- package/dist/server/buildInfo.d.ts +7 -0
- package/dist/server/buildInfo.js +100 -0
- package/dist/server/buildInfo.test.d.ts +1 -0
- package/dist/server/buildInfo.test.js +29 -0
- package/dist/server/cors.d.ts +7 -0
- package/dist/server/cors.js +76 -0
- package/dist/server/cors.test.d.ts +1 -0
- package/dist/server/cors.test.js +71 -0
- package/dist/server/email.d.ts +28 -0
- package/dist/server/email.js +138 -0
- package/dist/server/email.test.d.ts +1 -0
- package/dist/server/email.test.js +113 -0
- package/dist/server/index.cookieProxy.test.d.ts +1 -0
- package/dist/server/index.cookieProxy.test.js +19 -0
- package/dist/server/index.d.ts +17 -0
- package/dist/server/index.js +757 -0
- package/dist/server/index.rateLimit.test.d.ts +1 -0
- package/dist/server/index.rateLimit.test.js +13 -0
- package/dist/server/index.test.d.ts +1 -0
- package/dist/server/index.test.js +19 -0
- package/dist/server/rateLimit.d.ts +29 -0
- package/dist/server/rateLimit.js +99 -0
- package/dist/server/rateLimit.test.d.ts +1 -0
- package/dist/server/rateLimit.test.js +107 -0
- package/dist/server/realtimeSync.auth.test.d.ts +1 -0
- package/dist/server/realtimeSync.auth.test.js +62 -0
- package/dist/server/realtimeSync.replay.test.d.ts +1 -0
- package/dist/server/realtimeSync.replay.test.js +192 -0
- package/dist/server/realtimeSync.workspaceIsolation.test.d.ts +1 -0
- package/dist/server/realtimeSync.workspaceIsolation.test.js +101 -0
- package/dist/server/realtimeSyncWs.d.ts +30 -0
- package/dist/server/realtimeSyncWs.js +257 -0
- package/dist/server/routes.billing.d.ts +15 -0
- package/dist/server/routes.billing.js +991 -0
- package/dist/server/routes.billing.test.d.ts +1 -0
- package/dist/server/routes.billing.test.js +387 -0
- package/dist/server/routes.d.ts +72 -0
- package/dist/server/routes.js +4820 -0
- package/dist/server/routes.sync.d.ts +17 -0
- package/dist/server/routes.sync.integration.test.d.ts +1 -0
- package/dist/server/routes.sync.integration.test.js +470 -0
- package/dist/server/routes.sync.js +1141 -0
- package/dist/server/routes.test.d.ts +1 -0
- package/dist/server/routes.test.js +4945 -0
- package/dist/server/runtimeMode.d.ts +4 -0
- package/dist/server/runtimeMode.js +25 -0
- package/dist/server/runtimeMode.test.d.ts +1 -0
- package/dist/server/runtimeMode.test.js +26 -0
- package/dist/server/securityHeaders.d.ts +3 -0
- package/dist/server/securityHeaders.js +25 -0
- package/dist/server/securityHeaders.test.d.ts +1 -0
- package/dist/server/securityHeaders.test.js +32 -0
- package/dist/server/smtpTransport.d.ts +21 -0
- package/dist/server/smtpTransport.js +11 -0
- package/dist/server/start.d.ts +1 -0
- package/dist/server/start.js +17 -0
- package/dist/services/formatTransformers.d.ts +29 -0
- package/dist/services/formatTransformers.js +56 -0
- package/dist/services/templateEngine.d.ts +46 -0
- package/dist/services/templateEngine.js +148 -0
- package/dist/shared/runtimeContract.d.ts +12 -0
- package/dist/shared/runtimeContract.js +23 -0
- package/dist/shared/runtimeContract.test.d.ts +1 -0
- package/dist/shared/runtimeContract.test.js +23 -0
- package/dist/soak/preflight.cli.d.ts +1 -0
- package/dist/soak/preflight.cli.js +28 -0
- package/dist/soak/preflight.d.ts +26 -0
- package/dist/soak/preflight.js +113 -0
- package/dist/soak/preflight.test.d.ts +1 -0
- package/dist/soak/preflight.test.js +39 -0
- package/dist/soak/syncSoakHarness.d.ts +6 -0
- package/dist/soak/syncSoakHarness.js +10 -0
- package/dist/storage/createDatabaseAdapter.d.ts +2 -0
- package/dist/storage/createDatabaseAdapter.js +9 -0
- package/dist/storage/databaseAdapter.d.ts +22 -0
- package/dist/storage/databaseAdapter.js +1 -0
- package/dist/storage/documentIntegrity.d.ts +28 -0
- package/dist/storage/documentIntegrity.js +103 -0
- package/dist/storage/documentPurge.d.ts +14 -0
- package/dist/storage/documentPurge.js +46 -0
- package/dist/storage/documentRegistry.d.ts +39 -0
- package/dist/storage/documentRegistry.js +115 -0
- package/dist/storage/integritySchedule.d.ts +17 -0
- package/dist/storage/integritySchedule.js +62 -0
- package/dist/storage/objectStorage.d.ts +20 -0
- package/dist/storage/objectStorage.js +15 -0
- package/dist/storage/objectStorageClient.d.ts +18 -0
- package/dist/storage/objectStorageClient.js +301 -0
- package/dist/storage/objectStorageConfig.d.ts +2 -0
- package/dist/storage/objectStorageConfig.js +45 -0
- package/dist/storage/postgresAdapter.d.ts +20 -0
- package/dist/storage/postgresAdapter.js +204 -0
- package/dist/storage/postgresWorker.d.ts +1 -0
- package/dist/storage/postgresWorker.js +110 -0
- package/dist/storage/providerConfig.d.ts +6 -0
- package/dist/storage/providerConfig.js +11 -0
- package/dist/storage/sqliteAdapter.d.ts +14 -0
- package/dist/storage/sqliteAdapter.js +28 -0
- package/dist/storage/taskAssetStore.d.ts +56 -0
- package/dist/storage/taskAssetStore.js +297 -0
- package/dist/sync/cloudSyncApi.d.ts +47 -0
- package/dist/sync/cloudSyncApi.js +138 -0
- package/dist/sync/cloudSyncApi.test.d.ts +1 -0
- package/dist/sync/cloudSyncApi.test.js +54 -0
- package/dist/sync/encryptionService.d.ts +11 -0
- package/dist/sync/encryptionService.js +61 -0
- package/dist/sync/encryptionService.test.d.ts +1 -0
- package/dist/sync/encryptionService.test.js +52 -0
- package/dist/sync/realtimeFeature.d.ts +6 -0
- package/dist/sync/realtimeFeature.js +20 -0
- package/dist/sync/realtimeFeature.test.d.ts +1 -0
- package/dist/sync/realtimeFeature.test.js +30 -0
- package/dist/sync/realtimeReconcile.d.ts +30 -0
- package/dist/sync/realtimeReconcile.js +90 -0
- package/dist/sync/realtimeReconcile.test.d.ts +1 -0
- package/dist/sync/realtimeReconcile.test.js +43 -0
- package/dist/sync/syncService.d.ts +96 -0
- package/dist/sync/syncService.js +423 -0
- package/dist/sync/syncService.test.d.ts +1 -0
- package/dist/sync/syncService.test.js +484 -0
- package/dist/sync/workspaceSyncModel.d.ts +61 -0
- package/dist/sync/workspaceSyncModel.js +136 -0
- package/dist/sync/workspaceSyncModel.test.d.ts +1 -0
- package/dist/sync/workspaceSyncModel.test.js +73 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/test/setup.js +15 -0
- package/dist/types.d.ts +157 -0
- package/dist/types.js +41 -0
- package/dist/ui/assets/RussoOne-Regular-C3BxZIj7.ttf +0 -0
- package/dist/ui/assets/index-0W5vyCpn.css +1 -0
- package/dist/ui/assets/index-MCZuNNfn.js +23 -0
- package/dist/ui/assets/logo_white_01-0Vx-iIIv.png +0 -0
- package/dist/ui/assets/taskforce-BxLPokNB.png +0 -0
- package/dist/ui/assets/vendor-dnd-BI1K77C1.js +5 -0
- package/dist/ui/assets/vendor-icons-ZFG3SGwo.js +1 -0
- package/dist/ui/assets/vendor-markdown-CKYkQHfj.js +29 -0
- package/dist/ui/assets/vendor-react-DdIDsh7f.js +9 -0
- package/dist/ui/assets/vendor-router-BtiNU7Dl.js +3 -0
- package/dist/ui/branding/logos/logo_black_01.png +0 -0
- package/dist/ui/branding/logos/logo_black_02.png +0 -0
- package/dist/ui/branding/logos/logo_white_01.png +0 -0
- package/dist/ui/branding/logos/logo_white_02.png +0 -0
- package/dist/ui/favicon/android-chrome-192x192.png +0 -0
- package/dist/ui/favicon/android-chrome-512x512.png +0 -0
- package/dist/ui/favicon/apple-touch-icon.png +0 -0
- package/dist/ui/favicon/favicon-16x16.png +0 -0
- package/dist/ui/favicon/favicon-32x32.png +0 -0
- package/dist/ui/favicon/favicon.ico +0 -0
- package/dist/ui/favicon/favicon.png +0 -0
- package/dist/ui/favicon/site.webmanifest +1 -0
- package/dist/ui/fonts/RussoOne-Regular.ttf +0 -0
- package/dist/ui/images/taskforce.png +0 -0
- package/dist/ui/index.html +19 -0
- package/dist/utils/checklistMarkdown.d.ts +9 -0
- package/dist/utils/checklistMarkdown.js +46 -0
- package/dist/utils/constants.d.ts +21 -0
- package/dist/utils/constants.icons.test.d.ts +1 -0
- package/dist/utils/constants.icons.test.js +40 -0
- package/dist/utils/constants.js +100 -0
- package/dist/utils/contextFiles.d.ts +8 -0
- package/dist/utils/contextFiles.js +54 -0
- package/dist/utils/formatting.d.ts +5 -0
- package/dist/utils/formatting.js +30 -0
- package/dist/utils/planParser.d.ts +22 -0
- package/dist/utils/planParser.js +151 -0
- package/dist/utils/taskDragZones.d.ts +8 -0
- package/dist/utils/taskDragZones.js +14 -0
- package/dist/utils/taskDragZones.test.d.ts +1 -0
- package/dist/utils/taskDragZones.test.js +14 -0
- package/dist/utils/taskHierarchy.d.ts +4 -0
- package/dist/utils/taskHierarchy.js +69 -0
- package/dist/utils/taskHierarchy.test.d.ts +1 -0
- package/dist/utils/taskHierarchy.test.js +38 -0
- package/dist/utils/taskParenting.d.ts +3 -0
- package/dist/utils/taskParenting.js +24 -0
- package/dist/utils/taskParenting.test.d.ts +1 -0
- package/dist/utils/taskParenting.test.js +21 -0
- package/dist/utils/taskRelations.d.ts +6 -0
- package/dist/utils/taskRelations.js +24 -0
- package/dist/utils/taskRelations.test.d.ts +1 -0
- package/dist/utils/taskRelations.test.js +34 -0
- package/dist/utils/taskUtils.d.ts +2 -0
- package/dist/utils/taskUtils.js +20 -0
- package/dist/utils/taskforceApiClient.d.ts +7 -0
- package/dist/utils/taskforceApiClient.js +42 -0
- package/dist/utils/workspaceIdentity.d.ts +8 -0
- package/dist/utils/workspaceIdentity.js +47 -0
- package/dist/utils/workspaceIdentity.test.d.ts +1 -0
- package/dist/utils/workspaceIdentity.test.js +32 -0
- package/dist/utils/workspaceLifecycle.d.ts +26 -0
- package/dist/utils/workspaceLifecycle.js +69 -0
- package/dist/utils/workspaceLifecycle.test.d.ts +1 -0
- package/dist/utils/workspaceLifecycle.test.js +64 -0
- package/package.json +133 -0
- package/scripts/check-compat-boundaries.js +48 -0
- package/scripts/check-env.ts +24 -0
- package/scripts/check-localization-strings.mjs +49 -0
- package/scripts/check-runtime-boundaries.mjs +44 -0
- package/scripts/debug-global.mjs +34 -0
- package/scripts/debug-server.mjs +36 -0
- package/scripts/export-sqlite-to-postgres.mjs +125 -0
- package/scripts/generate-env-example.ts +8 -0
- package/scripts/generate-workflow-templates.mjs +134 -0
- package/scripts/mcp-stdio-adapter.mjs +160 -0
- package/scripts/postinstall.js +60 -0
- package/scripts/release-version-lib.mjs +88 -0
- package/scripts/release-version.mjs +72 -0
- package/scripts/run-dev-proxy.sh +49 -0
- package/scripts/run-e2e-realtime.sh +16 -0
- package/scripts/run-smoke.sh +23 -0
- package/scripts/run-soak.sh +29 -0
- package/scripts/test-global.js +143 -0
- package/scripts/update-homebrew-formula.sh +38 -0
- package/src/resources/templates/WORKFLOW_V2_POLICY.md +55 -0
- package/src/resources/templates/environments/aider.yaml +14 -0
- package/src/resources/templates/environments/antigravity.yaml +10 -0
- package/src/resources/templates/environments/claude.yaml +10 -0
- package/src/resources/templates/environments/cline.yaml +10 -0
- package/src/resources/templates/environments/codex.yaml +13 -0
- package/src/resources/templates/environments/copilot.yaml +10 -0
- package/src/resources/templates/environments/cursor.yaml +9 -0
- package/src/resources/templates/environments/gemini.yaml +9 -0
- package/src/resources/templates/environments/windsurf.yaml +10 -0
- package/src/resources/templates/workflow-sources/README.md +9 -0
- package/src/resources/templates/workflow-sources/workflowDocs.mjs +520 -0
- package/src/resources/templates/workflow-sources/workflowEditorOverrides.json +1 -0
- package/src/resources/templates/workflows/collaborate.yaml +104 -0
- package/src/resources/templates/workflows/do.yaml +82 -0
- package/src/resources/templates/workflows/evaluate.yaml +111 -0
- package/src/resources/templates/workflows/execute.yaml +142 -0
- package/src/resources/templates/workflows/plan.yaml +112 -0
- package/src/resources/templates/workflows/review.yaml +109 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
name: do
|
|
3
|
+
description: Dispatcher workflow that routes to specialized workflows based on slash command and approach.
|
|
4
|
+
type: workflow
|
|
5
|
+
metadata:
|
|
6
|
+
alwaysApply: true
|
|
7
|
+
dispatch:
|
|
8
|
+
aliases:
|
|
9
|
+
- /do
|
|
10
|
+
- "-d"
|
|
11
|
+
routeByApproach: true
|
|
12
|
+
approachMap:
|
|
13
|
+
evaluate: evaluate
|
|
14
|
+
collaborate: collaborate
|
|
15
|
+
plan: plan
|
|
16
|
+
review: review
|
|
17
|
+
implement: execute
|
|
18
|
+
default: execute
|
|
19
|
+
compat:
|
|
20
|
+
minTaskforceVersion: 0.3.13-beta.2
|
|
21
|
+
requiredToolsCritical:
|
|
22
|
+
- "{{MCP_PREFIX}}get_task"
|
|
23
|
+
requiredToolsOptional:
|
|
24
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
25
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
26
|
+
- "{{MCP_PREFIX}}attach_context_file"
|
|
27
|
+
- "{{MCP_PREFIX}}save_task_attachment"
|
|
28
|
+
toolPolicy:
|
|
29
|
+
requiredToolsPolicy:
|
|
30
|
+
critical: strict-fail
|
|
31
|
+
nonCritical: warn-and-fallback
|
|
32
|
+
criticalTools:
|
|
33
|
+
- "{{MCP_PREFIX}}get_task"
|
|
34
|
+
statusTransitions:
|
|
35
|
+
allowedStatuses:
|
|
36
|
+
- task
|
|
37
|
+
- on-hold
|
|
38
|
+
- in-progress
|
|
39
|
+
- review
|
|
40
|
+
forbiddenStatuses:
|
|
41
|
+
- done
|
|
42
|
+
- cancelled
|
|
43
|
+
contextPolicy:
|
|
44
|
+
sourcePriority:
|
|
45
|
+
- mcp
|
|
46
|
+
mcp:
|
|
47
|
+
knownTaskIdTool: "{{MCP_PREFIX}}get_task"
|
|
48
|
+
unknownTaskIdTools:
|
|
49
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
50
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
51
|
+
mcpUnavailableAction: stop-and-request-user-action
|
|
52
|
+
prompts:
|
|
53
|
+
startupChecklist: |-
|
|
54
|
+
1. [ ] **Task Loaded**: [ID] (Status: [Status])
|
|
55
|
+
2. [ ] **Dispatch Target**: [evaluate | collaborate | plan | review | execute]
|
|
56
|
+
handoffChecklist: |-
|
|
57
|
+
- [ ] Dispatch target selected per slash-command precedence
|
|
58
|
+
- [ ] Routed to target workflow and exited dispatcher
|
|
59
|
+
content:
|
|
60
|
+
default: |-
|
|
61
|
+
# Taskforce Do Dispatcher (v2)
|
|
62
|
+
|
|
63
|
+
> **DISPATCH protocol**:
|
|
64
|
+
> 1. **MCP-first load**:
|
|
65
|
+
> - If task ID is known, call `{{MCP_PREFIX}}get_task`.
|
|
66
|
+
> - If task ID is unknown, use `{{MCP_PREFIX}}list_tasks` / `{{MCP_PREFIX}}search_tasks` to identify it.
|
|
67
|
+
> - If MCP is unavailable, stop and request user action.
|
|
68
|
+
> 2. Print `prompts.startupChecklist`.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Routing Rules
|
|
73
|
+
1. Slash command wins over approach routing.
|
|
74
|
+
2. If user explicitly invokes:
|
|
75
|
+
- `/evaluate` -> route to `evaluate`
|
|
76
|
+
- `/collaborate` -> route to `collaborate`
|
|
77
|
+
- `/plan` -> route to `plan`
|
|
78
|
+
- `/review` -> route to `review`
|
|
79
|
+
- `/execute` -> route to `execute`
|
|
80
|
+
3. If user invokes `/do`, route by `dispatch.approachMap` when task approach is mapped.
|
|
81
|
+
4. If no mapped approach exists, route to `dispatch.default` (`execute`).
|
|
82
|
+
5. After routing, print `prompts.handoffChecklist` and stop. Do not run execution phases in this workflow.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
name: evaluate
|
|
3
|
+
description: Evaluation workflow for strategic analysis, scoring, and recommendation.
|
|
4
|
+
type: workflow
|
|
5
|
+
metadata:
|
|
6
|
+
alwaysApply: false
|
|
7
|
+
dispatch:
|
|
8
|
+
aliases:
|
|
9
|
+
- /evaluate
|
|
10
|
+
- "-e"
|
|
11
|
+
default: evaluate
|
|
12
|
+
compat:
|
|
13
|
+
minTaskforceVersion: 0.3.13-beta.2
|
|
14
|
+
requiredToolsCritical:
|
|
15
|
+
- "{{MCP_PREFIX}}get_task"
|
|
16
|
+
- "{{MCP_PREFIX}}update_task"
|
|
17
|
+
- "{{MCP_PREFIX}}add_comment"
|
|
18
|
+
requiredToolsOptional:
|
|
19
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
20
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
21
|
+
- "{{MCP_PREFIX}}get_config"
|
|
22
|
+
- "{{MCP_PREFIX}}attach_context_file"
|
|
23
|
+
- "{{MCP_PREFIX}}save_task_attachment"
|
|
24
|
+
toolPolicy:
|
|
25
|
+
requiredToolsPolicy:
|
|
26
|
+
critical: strict-fail
|
|
27
|
+
nonCritical: warn-and-fallback
|
|
28
|
+
criticalTools:
|
|
29
|
+
- "{{MCP_PREFIX}}get_task"
|
|
30
|
+
- "{{MCP_PREFIX}}update_task"
|
|
31
|
+
- "{{MCP_PREFIX}}add_comment"
|
|
32
|
+
forbiddenTools:
|
|
33
|
+
- "{{MCP_PREFIX}}archive_task"
|
|
34
|
+
statusTransitions:
|
|
35
|
+
allowedStatuses:
|
|
36
|
+
- task
|
|
37
|
+
- on-hold
|
|
38
|
+
- in-progress
|
|
39
|
+
- review
|
|
40
|
+
forbiddenStatuses:
|
|
41
|
+
- done
|
|
42
|
+
- cancelled
|
|
43
|
+
artifacts:
|
|
44
|
+
evaluationReport:
|
|
45
|
+
path: .taskforce/task-data/{taskId}/attachments/evaluation.md
|
|
46
|
+
required: false
|
|
47
|
+
savePolicy: ask-before-save
|
|
48
|
+
contextPolicy:
|
|
49
|
+
sourcePriority:
|
|
50
|
+
- mcp
|
|
51
|
+
mcp:
|
|
52
|
+
knownTaskIdTool: "{{MCP_PREFIX}}get_task"
|
|
53
|
+
unknownTaskIdTools:
|
|
54
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
55
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
56
|
+
mcpUnavailableAction: stop-and-request-user-action
|
|
57
|
+
prompts:
|
|
58
|
+
startupChecklist: |-
|
|
59
|
+
1. [ ] **Task Loaded**: [ID] (Status: [Status])
|
|
60
|
+
2. [ ] **Mode**: [evaluate]
|
|
61
|
+
3. [ ] **Specialists Loaded**: [List names or 'None']
|
|
62
|
+
optionalArtifactPrompt: I prepared the evaluation in-screen. Save as `{path}` and attach it to this task context?
|
|
63
|
+
content:
|
|
64
|
+
default: |-
|
|
65
|
+
# Taskforce Evaluate Workflow (v2)
|
|
66
|
+
|
|
67
|
+
> **EVALUATION protocol**:
|
|
68
|
+
> 1. **MCP-first load**:
|
|
69
|
+
> - If task ID is known, call `{{MCP_PREFIX}}get_task`.
|
|
70
|
+
> - If task ID is unknown, use `{{MCP_PREFIX}}list_tasks` / `{{MCP_PREFIX}}search_tasks` to identify it.
|
|
71
|
+
> - If MCP is unavailable, stop and request user action.
|
|
72
|
+
> 2. Print `prompts.startupChecklist`.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 1. Strategic Analysis
|
|
77
|
+
|
|
78
|
+
1. Validate the problem and business/user impact.
|
|
79
|
+
2. Evaluate alternatives and opportunity cost.
|
|
80
|
+
3. Score value and risk with explicit reasoning.
|
|
81
|
+
4. Recommend: Proceed, Pivot, or Kill.
|
|
82
|
+
|
|
83
|
+
## 2. Task Updates
|
|
84
|
+
|
|
85
|
+
1. Use `{{MCP_PREFIX}}update_task` to adjust priority/status only within allowed statuses.
|
|
86
|
+
- If setting status to `task` or `on-hold`, add explicit comment justification using `{{MCP_PREFIX}}add_comment`.
|
|
87
|
+
2. Present a structured evaluation in-screen using this exact structure:
|
|
88
|
+
- `## Evaluation Summary`
|
|
89
|
+
- `### Recommendation (Proceed | Pivot | Kill)`
|
|
90
|
+
- `### Value Score (1-5)`
|
|
91
|
+
- `### Risk Score (1-5)`
|
|
92
|
+
- `### Alternatives Considered`
|
|
93
|
+
- `### Key Tradeoffs`
|
|
94
|
+
- `### Next Step`
|
|
95
|
+
3. Add a concise evaluation summary comment via `{{MCP_PREFIX}}add_comment` using this exact structure:
|
|
96
|
+
- `## Evaluation Summary`
|
|
97
|
+
- `### Recommendation (Proceed | Pivot | Kill)`
|
|
98
|
+
- `### Value Score (1-5)`
|
|
99
|
+
- `### Risk Score (1-5)`
|
|
100
|
+
- `### Next Step`
|
|
101
|
+
4. Ask whether to save as `{artifacts.evaluationReport.path}`.
|
|
102
|
+
5. If user confirms, persist task-specific content via `{{MCP_PREFIX}}save_task_attachment` using `filename: "evaluation.md"`.
|
|
103
|
+
- Use `{{MCP_PREFIX}}attach_context_file` only for linking existing files/URLs (for example, shared docs under `docs/`).
|
|
104
|
+
6. Never set `done` or `cancelled`, and never call `{{MCP_PREFIX}}archive_task`, unless explicitly instructed by the user.
|
|
105
|
+
|
|
106
|
+
## 3. Optional Report Artifact
|
|
107
|
+
|
|
108
|
+
1. Use report files only when user opts in.
|
|
109
|
+
2. Save to `.taskforce/task-data/{taskId}/attachments/evaluation.md` and attach to task context when approved.
|
|
110
|
+
- If the document is not task-specific, store it under `docs/` and optionally link it with `{{MCP_PREFIX}}attach_context_file`.
|
|
111
|
+
3. Stop.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
name: execute
|
|
3
|
+
description: Implementation workflow with MCP-first loading and status safety constraints.
|
|
4
|
+
type: workflow
|
|
5
|
+
metadata:
|
|
6
|
+
alwaysApply: true
|
|
7
|
+
dispatch:
|
|
8
|
+
aliases:
|
|
9
|
+
- /execute
|
|
10
|
+
- "-x"
|
|
11
|
+
routeByApproach: false
|
|
12
|
+
default: execute
|
|
13
|
+
compat:
|
|
14
|
+
minTaskforceVersion: 0.3.13-beta.2
|
|
15
|
+
requiredToolsCritical:
|
|
16
|
+
- "{{MCP_PREFIX}}get_task"
|
|
17
|
+
- "{{MCP_PREFIX}}update_task"
|
|
18
|
+
- "{{MCP_PREFIX}}add_comment"
|
|
19
|
+
requiredToolsOptional:
|
|
20
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
21
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
22
|
+
- "{{MCP_PREFIX}}get_config"
|
|
23
|
+
- "{{MCP_PREFIX}}create_task"
|
|
24
|
+
- "{{MCP_PREFIX}}attach_context_file"
|
|
25
|
+
- "{{MCP_PREFIX}}save_task_attachment"
|
|
26
|
+
toolPolicy:
|
|
27
|
+
requiredToolsPolicy:
|
|
28
|
+
critical: strict-fail
|
|
29
|
+
nonCritical: warn-and-fallback
|
|
30
|
+
criticalTools:
|
|
31
|
+
- "{{MCP_PREFIX}}get_task"
|
|
32
|
+
- "{{MCP_PREFIX}}update_task"
|
|
33
|
+
- "{{MCP_PREFIX}}add_comment"
|
|
34
|
+
forbiddenTools:
|
|
35
|
+
- "{{MCP_PREFIX}}archive_task"
|
|
36
|
+
statusTransitions:
|
|
37
|
+
allowedStatuses:
|
|
38
|
+
- task
|
|
39
|
+
- on-hold
|
|
40
|
+
- in-progress
|
|
41
|
+
- review
|
|
42
|
+
forbiddenStatuses:
|
|
43
|
+
- done
|
|
44
|
+
- cancelled
|
|
45
|
+
artifacts:
|
|
46
|
+
walkthrough:
|
|
47
|
+
path: walkthrough.md
|
|
48
|
+
required: true
|
|
49
|
+
contextPolicy:
|
|
50
|
+
sourcePriority:
|
|
51
|
+
- mcp
|
|
52
|
+
mcp:
|
|
53
|
+
knownTaskIdTool: "{{MCP_PREFIX}}get_task"
|
|
54
|
+
unknownTaskIdTools:
|
|
55
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
56
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
57
|
+
mcpUnavailableAction: stop-and-request-user-action
|
|
58
|
+
prompts:
|
|
59
|
+
startupChecklist: |-
|
|
60
|
+
1. [ ] **Task Loaded**: [ID] (Status: [Status])
|
|
61
|
+
2. [ ] **Mode**: [execute]
|
|
62
|
+
3. [ ] **Specialists Loaded**: [List names or 'None']
|
|
63
|
+
handoffChecklist: |-
|
|
64
|
+
- [ ] Status set to `review` unless user explicitly requested another allowed status
|
|
65
|
+
- [ ] Summary comment added with `{{MCP_PREFIX}}add_comment`
|
|
66
|
+
- [ ] `walkthrough.md` updated
|
|
67
|
+
- [ ] Parent/child links changed only when explicitly requested
|
|
68
|
+
- [ ] Did NOT call `{{MCP_PREFIX}}archive_task`
|
|
69
|
+
- [ ] Did NOT set `done` or `cancelled` unless explicitly instructed
|
|
70
|
+
content:
|
|
71
|
+
default: |-
|
|
72
|
+
# Taskforce Execute Workflow (v2)
|
|
73
|
+
|
|
74
|
+
> **EXECUTION protocol**:
|
|
75
|
+
> 1. **MCP-first load**:
|
|
76
|
+
> - If task ID is known, call `{{MCP_PREFIX}}get_task`.
|
|
77
|
+
> - If task ID is unknown, use `{{MCP_PREFIX}}list_tasks` / `{{MCP_PREFIX}}search_tasks` to identify it.
|
|
78
|
+
> - If MCP is unavailable, stop and request user action.
|
|
79
|
+
> 2. Print `prompts.startupChecklist`.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 1. Startup (Mandatory)
|
|
84
|
+
|
|
85
|
+
1. **Load specialists**:
|
|
86
|
+
- Read the task `specialists` array.
|
|
87
|
+
- Read specialist instructions exported for the active environment.
|
|
88
|
+
- Acknowledge specialist constraints before implementation.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 2. Execute Mode
|
|
93
|
+
**Goal**: Execute and verify changes safely.
|
|
94
|
+
|
|
95
|
+
### Phase A: Preparation
|
|
96
|
+
1. **Complexity gate**:
|
|
97
|
+
- If task complexity is `3` to `5`, create or refresh `implementation_plan.md` before major code edits.
|
|
98
|
+
- If complexity is below `3`, planning is optional.
|
|
99
|
+
2. **Task management mode gate (required before task mutations)**:
|
|
100
|
+
- Choose exactly one mode and state it explicitly: `checklist_mode` or `decompose_mode`.
|
|
101
|
+
- Default to `checklist_mode` for linear/short execution.
|
|
102
|
+
- Use `decompose_mode` only when at least one is true:
|
|
103
|
+
- multi-system or multi-owner work
|
|
104
|
+
- meaningful parallelization
|
|
105
|
+
- expected duration > 1 day
|
|
106
|
+
- explicit dependency/risk tracking is needed
|
|
107
|
+
- user explicitly asks for subtasks
|
|
108
|
+
3. **Owner strategy gate (required before task creation/update)**:
|
|
109
|
+
- Set ownership explicitly with `owner` (alias of `assignee`): `user`, `agent`, or `unassigned`.
|
|
110
|
+
- If user console/credential action is required, set `owner=user`.
|
|
111
|
+
- If AI can execute independently, set `owner=agent`.
|
|
112
|
+
- If unclear, set `owner=unassigned` and add a clarification note.
|
|
113
|
+
4. **Preflight confirmation gate (required before creating multiple tasks)**:
|
|
114
|
+
- Confirm mode: `checklist_mode` vs `decompose_mode`.
|
|
115
|
+
- Confirm owner default: `user` / `agent` / `mixed`.
|
|
116
|
+
- Confirm whether assignment should be set immediately.
|
|
117
|
+
5. **Config gate**:
|
|
118
|
+
- Before setting category/type/priority/approach/status/complexity, call `{{MCP_PREFIX}}get_config`.
|
|
119
|
+
6. **Set active state**:
|
|
120
|
+
- Set status to `in-progress` with `{{MCP_PREFIX}}update_task`.
|
|
121
|
+
|
|
122
|
+
### Phase B: Execution
|
|
123
|
+
1. Implement code changes.
|
|
124
|
+
2. Run validation steps (automated tests + manual checks as needed).
|
|
125
|
+
3. If user requests relationship work:
|
|
126
|
+
- Link/unlink/re-parent using `{{MCP_PREFIX}}update_task` (`parentTaskId`).
|
|
127
|
+
- Create child tasks using `{{MCP_PREFIX}}create_task` with `parentTaskId` set.
|
|
128
|
+
- Every created child task must include explicit `owner`/`assignee`.
|
|
129
|
+
- Re-parent only after explicit user confirmation.
|
|
130
|
+
4. If blocked, switch to Collaborate mode and capture blocker context.
|
|
131
|
+
|
|
132
|
+
### Phase C: Handover
|
|
133
|
+
1. Update `walkthrough.md` with:
|
|
134
|
+
- What changed
|
|
135
|
+
- Validation evidence
|
|
136
|
+
- Remaining risks
|
|
137
|
+
2. Add summary comment with `{{MCP_PREFIX}}add_comment`.
|
|
138
|
+
3. Set status to `review` via `{{MCP_PREFIX}}update_task` unless user explicitly requests another allowed status (`task`, `on-hold`, `in-progress`, `review`).
|
|
139
|
+
- If setting status to `task` or `on-hold`, add explicit comment justification using `{{MCP_PREFIX}}add_comment`.
|
|
140
|
+
4. Never set `done` or `cancelled`, and never call `{{MCP_PREFIX}}archive_task`, unless explicitly instructed by the user.
|
|
141
|
+
5. Do not auto-set parent tasks to `done` or `cancelled` due to child changes; only do so if user explicitly instructs.
|
|
142
|
+
6. Print `prompts.handoffChecklist` and stop.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
name: plan
|
|
3
|
+
description: Planning workflow for implementation strategy and verification design.
|
|
4
|
+
type: workflow
|
|
5
|
+
metadata:
|
|
6
|
+
alwaysApply: false
|
|
7
|
+
dispatch:
|
|
8
|
+
aliases:
|
|
9
|
+
- /plan
|
|
10
|
+
- "-p"
|
|
11
|
+
default: plan
|
|
12
|
+
compat:
|
|
13
|
+
minTaskforceVersion: 0.3.13-beta.2
|
|
14
|
+
requiredToolsCritical:
|
|
15
|
+
- "{{MCP_PREFIX}}get_task"
|
|
16
|
+
- "{{MCP_PREFIX}}update_task"
|
|
17
|
+
- "{{MCP_PREFIX}}add_comment"
|
|
18
|
+
requiredToolsOptional:
|
|
19
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
20
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
21
|
+
- "{{MCP_PREFIX}}get_config"
|
|
22
|
+
- "{{MCP_PREFIX}}attach_context_file"
|
|
23
|
+
- "{{MCP_PREFIX}}save_task_attachment"
|
|
24
|
+
toolPolicy:
|
|
25
|
+
requiredToolsPolicy:
|
|
26
|
+
critical: strict-fail
|
|
27
|
+
nonCritical: warn-and-fallback
|
|
28
|
+
criticalTools:
|
|
29
|
+
- "{{MCP_PREFIX}}get_task"
|
|
30
|
+
- "{{MCP_PREFIX}}update_task"
|
|
31
|
+
- "{{MCP_PREFIX}}add_comment"
|
|
32
|
+
forbiddenTools:
|
|
33
|
+
- "{{MCP_PREFIX}}archive_task"
|
|
34
|
+
statusTransitions:
|
|
35
|
+
allowedStatuses:
|
|
36
|
+
- task
|
|
37
|
+
- on-hold
|
|
38
|
+
- in-progress
|
|
39
|
+
- review
|
|
40
|
+
forbiddenStatuses:
|
|
41
|
+
- done
|
|
42
|
+
- cancelled
|
|
43
|
+
artifacts:
|
|
44
|
+
implementationPlan:
|
|
45
|
+
path: .taskforce/task-data/{taskId}/attachments/implementation-plan.md
|
|
46
|
+
required: false
|
|
47
|
+
savePolicy: ask-before-save
|
|
48
|
+
contextPolicy:
|
|
49
|
+
sourcePriority:
|
|
50
|
+
- mcp
|
|
51
|
+
mcp:
|
|
52
|
+
knownTaskIdTool: "{{MCP_PREFIX}}get_task"
|
|
53
|
+
unknownTaskIdTools:
|
|
54
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
55
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
56
|
+
mcpUnavailableAction: stop-and-request-user-action
|
|
57
|
+
prompts:
|
|
58
|
+
startupChecklist: |-
|
|
59
|
+
1. [ ] **Task Loaded**: [ID] (Status: [Status])
|
|
60
|
+
2. [ ] **Mode**: [plan]
|
|
61
|
+
3. [ ] **Specialists Loaded**: [List names or 'None']
|
|
62
|
+
optionalArtifactPrompt: I prepared the implementation plan in-screen. Save as `{path}` and attach it to this task context?
|
|
63
|
+
handoffPrompt: Planning complete. Review the in-screen plan, then run `/do <id>` to execute.
|
|
64
|
+
content:
|
|
65
|
+
default: |-
|
|
66
|
+
# Taskforce Plan Workflow (v2)
|
|
67
|
+
|
|
68
|
+
> **PLANNING protocol**:
|
|
69
|
+
> 1. **MCP-first load**:
|
|
70
|
+
> - If task ID is known, call `{{MCP_PREFIX}}get_task`.
|
|
71
|
+
> - If task ID is unknown, use `{{MCP_PREFIX}}list_tasks` / `{{MCP_PREFIX}}search_tasks` to identify it.
|
|
72
|
+
> - If MCP is unavailable, stop and request user action.
|
|
73
|
+
> 2. Print `prompts.startupChecklist`.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 1. Startup (Mandatory)
|
|
78
|
+
|
|
79
|
+
1. Call `{{MCP_PREFIX}}get_config` before setting category/type/priority/approach/status/complexity.
|
|
80
|
+
2. Set status to `in-progress` via `{{MCP_PREFIX}}update_task`.
|
|
81
|
+
3. Load specialist instructions for the active environment and acknowledge constraints.
|
|
82
|
+
4. Load all relevant context sources tied to the task.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 2. Planning Deliverable
|
|
87
|
+
|
|
88
|
+
0. Choose and record task management mode for follow-on execution:
|
|
89
|
+
- `checklist_mode` (single parent + in-task checklist) for linear short work.
|
|
90
|
+
- `decompose_mode` (child tasks) only when dependencies/parallelism/risk tracking justify decomposition.
|
|
91
|
+
- Record owner strategy: `user`, `agent`, or `mixed`.
|
|
92
|
+
|
|
93
|
+
1. Define file-level change plan (exact files and intended changes).
|
|
94
|
+
2. Identify compatibility and regression risks.
|
|
95
|
+
3. Define automated and manual verification steps.
|
|
96
|
+
4. Present the implementation plan in-screen using this exact structure:
|
|
97
|
+
- `## Implementation Plan`
|
|
98
|
+
- `### Goal`
|
|
99
|
+
- `### Change Plan`
|
|
100
|
+
- `### Risk Analysis`
|
|
101
|
+
- `### Verification Checklist`
|
|
102
|
+
5. Add a concise planning summary comment via `{{MCP_PREFIX}}add_comment` using this exact structure:
|
|
103
|
+
- `## Plan Summary`
|
|
104
|
+
- `### Goal`
|
|
105
|
+
- `### Scope`
|
|
106
|
+
- `### Next Action`
|
|
107
|
+
6. Ask whether to save as `{artifacts.implementationPlan.path}`.
|
|
108
|
+
7. If user confirms, persist task-specific content via `{{MCP_PREFIX}}save_task_attachment` using `filename: "implementation-plan.md"`.
|
|
109
|
+
- Use `{{MCP_PREFIX}}attach_context_file` only for linking existing files/URLs (for example, shared docs under `docs/`).
|
|
110
|
+
8. If setting status to `task` or `on-hold`, add explicit comment justification using `{{MCP_PREFIX}}add_comment`.
|
|
111
|
+
9. Never set `done` or `cancelled`, and never call `{{MCP_PREFIX}}archive_task`, unless explicitly instructed by the user.
|
|
112
|
+
10. Print `prompts.handoffPrompt` and stop.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
name: review
|
|
3
|
+
description: Review workflow for QA analysis and pass/warn/fail handoff.
|
|
4
|
+
type: workflow
|
|
5
|
+
metadata:
|
|
6
|
+
alwaysApply: false
|
|
7
|
+
dispatch:
|
|
8
|
+
aliases:
|
|
9
|
+
- /review
|
|
10
|
+
- "-r"
|
|
11
|
+
default: review
|
|
12
|
+
compat:
|
|
13
|
+
minTaskforceVersion: 0.3.13-beta.2
|
|
14
|
+
requiredToolsCritical:
|
|
15
|
+
- "{{MCP_PREFIX}}get_task"
|
|
16
|
+
- "{{MCP_PREFIX}}add_comment"
|
|
17
|
+
requiredToolsOptional:
|
|
18
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
19
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
20
|
+
- "{{MCP_PREFIX}}update_task"
|
|
21
|
+
- "{{MCP_PREFIX}}attach_context_file"
|
|
22
|
+
- "{{MCP_PREFIX}}save_task_attachment"
|
|
23
|
+
toolPolicy:
|
|
24
|
+
requiredToolsPolicy:
|
|
25
|
+
critical: strict-fail
|
|
26
|
+
nonCritical: warn-and-fallback
|
|
27
|
+
criticalTools:
|
|
28
|
+
- "{{MCP_PREFIX}}get_task"
|
|
29
|
+
- "{{MCP_PREFIX}}add_comment"
|
|
30
|
+
forbiddenTools:
|
|
31
|
+
- "{{MCP_PREFIX}}archive_task"
|
|
32
|
+
statusTransitions:
|
|
33
|
+
allowedStatuses:
|
|
34
|
+
- task
|
|
35
|
+
- on-hold
|
|
36
|
+
- in-progress
|
|
37
|
+
- review
|
|
38
|
+
forbiddenStatuses:
|
|
39
|
+
- done
|
|
40
|
+
- cancelled
|
|
41
|
+
artifacts:
|
|
42
|
+
reviewReport:
|
|
43
|
+
path: .taskforce/task-data/{taskId}/attachments/review.md
|
|
44
|
+
required: false
|
|
45
|
+
savePolicy: ask-before-save
|
|
46
|
+
contextPolicy:
|
|
47
|
+
sourcePriority:
|
|
48
|
+
- mcp
|
|
49
|
+
mcp:
|
|
50
|
+
knownTaskIdTool: "{{MCP_PREFIX}}get_task"
|
|
51
|
+
unknownTaskIdTools:
|
|
52
|
+
- "{{MCP_PREFIX}}list_tasks"
|
|
53
|
+
- "{{MCP_PREFIX}}search_tasks"
|
|
54
|
+
mcpUnavailableAction: stop-and-request-user-action
|
|
55
|
+
prompts:
|
|
56
|
+
startupChecklist: |-
|
|
57
|
+
1. [ ] **Task Loaded**: [ID] (Status: [Status])
|
|
58
|
+
2. [ ] **Mode**: [review]
|
|
59
|
+
3. [ ] **Specialists Loaded**: [List names or 'None']
|
|
60
|
+
optionalArtifactPrompt: I prepared the review in-screen. Save as `{path}` and attach it to this task context?
|
|
61
|
+
content:
|
|
62
|
+
default: |-
|
|
63
|
+
# Taskforce Review Workflow (v2)
|
|
64
|
+
|
|
65
|
+
> **REVIEW protocol**:
|
|
66
|
+
> 1. **MCP-first load**:
|
|
67
|
+
> - If task ID is known, call `{{MCP_PREFIX}}get_task`.
|
|
68
|
+
> - If task ID is unknown, use `{{MCP_PREFIX}}list_tasks` / `{{MCP_PREFIX}}search_tasks` to identify it.
|
|
69
|
+
> - If MCP is unavailable, stop and request user action.
|
|
70
|
+
> 2. Print `prompts.startupChecklist`.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 1. Review Analysis
|
|
75
|
+
|
|
76
|
+
1. Identify the review target (plan, code, docs, or mixed artifacts).
|
|
77
|
+
2. Perform QA pass:
|
|
78
|
+
- risk and safety check
|
|
79
|
+
- regression check
|
|
80
|
+
- standards compliance
|
|
81
|
+
3. Produce verdict: PASS / WARN / FAIL with actionable findings.
|
|
82
|
+
|
|
83
|
+
## 2. Task Updates
|
|
84
|
+
|
|
85
|
+
1. Present a structured review in-screen using this exact structure:
|
|
86
|
+
- `## Review Verdict`
|
|
87
|
+
- `### Verdict (PASS | WARN | FAIL)`
|
|
88
|
+
- `### Findings`
|
|
89
|
+
- `### Regression Risks`
|
|
90
|
+
- `### Required Fixes`
|
|
91
|
+
- `### Recommended Next Status`
|
|
92
|
+
2. Add a concise review summary comment via `{{MCP_PREFIX}}add_comment` using this exact structure:
|
|
93
|
+
- `## Review Summary`
|
|
94
|
+
- `### Verdict (PASS | WARN | FAIL)`
|
|
95
|
+
- `### Findings`
|
|
96
|
+
- `### Next Status`
|
|
97
|
+
3. Ask whether to save as `{artifacts.reviewReport.path}`.
|
|
98
|
+
4. If user confirms, persist task-specific content via `{{MCP_PREFIX}}save_task_attachment` using `filename: "review.md"`.
|
|
99
|
+
- Use `{{MCP_PREFIX}}attach_context_file` only for linking existing files/URLs (for example, shared docs under `docs/`).
|
|
100
|
+
5. Keep status within allowed statuses (`task`, `on-hold`, `in-progress`, `review`) unless user explicitly instructs otherwise.
|
|
101
|
+
- If setting status to `task` or `on-hold`, add explicit comment justification using `{{MCP_PREFIX}}add_comment`.
|
|
102
|
+
6. Never set `done` or `cancelled`, and never call `{{MCP_PREFIX}}archive_task`, unless explicitly instructed by the user.
|
|
103
|
+
|
|
104
|
+
## 3. Optional Report Artifact
|
|
105
|
+
|
|
106
|
+
1. Use report files only when user opts in.
|
|
107
|
+
2. Save to `.taskforce/task-data/{taskId}/attachments/review.md` and attach to task context when approved.
|
|
108
|
+
- If the document is not task-specific, store it under `docs/` and optionally link it with `{{MCP_PREFIX}}attach_context_file`.
|
|
109
|
+
3. Stop.
|