specweave 0.21.2 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +429 -10
- package/README.md +33 -3
- package/dist/plugins/specweave-github/lib/CodeValidator.d.ts +101 -0
- package/dist/plugins/specweave-github/lib/CodeValidator.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/CodeValidator.js +219 -0
- package/dist/plugins/specweave-github/lib/CodeValidator.js.map +1 -0
- package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts +98 -0
- package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/IssueStateManager.js +146 -0
- package/dist/plugins/specweave-github/lib/IssueStateManager.js.map +1 -0
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.d.ts +182 -0
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js +603 -0
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js.map +1 -0
- package/dist/plugins/specweave-github/lib/types.d.ts +34 -0
- package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +6 -0
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
- package/dist/src/cli/commands/check-hooks.d.ts +11 -0
- package/dist/src/cli/commands/check-hooks.d.ts.map +1 -0
- package/dist/src/cli/commands/check-hooks.js +144 -0
- package/dist/src/cli/commands/check-hooks.js.map +1 -0
- package/dist/src/cli/commands/cicd-monitor.js +3 -3
- package/dist/src/cli/commands/cicd-monitor.js.map +1 -1
- package/dist/src/cli/commands/import-docs.js +2 -2
- package/dist/src/cli/commands/import-docs.js.map +1 -1
- package/dist/src/cli/commands/init-multiproject.js +4 -4
- package/dist/src/cli/commands/init-multiproject.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +60 -5
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.js +3 -3
- package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
- package/dist/src/cli/commands/plan/agent-invoker.d.ts +79 -0
- package/dist/src/cli/commands/plan/agent-invoker.d.ts.map +1 -0
- package/dist/src/cli/commands/plan/agent-invoker.js +383 -0
- package/dist/src/cli/commands/plan/agent-invoker.js.map +1 -0
- package/dist/src/cli/commands/plan/increment-detector.d.ts +27 -0
- package/dist/src/cli/commands/plan/increment-detector.d.ts.map +1 -0
- package/dist/src/cli/commands/plan/increment-detector.js +159 -0
- package/dist/src/cli/commands/plan/increment-detector.js.map +1 -0
- package/dist/src/cli/commands/plan/plan-orchestrator.d.ts +45 -0
- package/dist/src/cli/commands/plan/plan-orchestrator.d.ts.map +1 -0
- package/dist/src/cli/commands/plan/plan-orchestrator.js +229 -0
- package/dist/src/cli/commands/plan/plan-orchestrator.js.map +1 -0
- package/dist/src/cli/commands/plan/plan-validator.d.ts +36 -0
- package/dist/src/cli/commands/plan/plan-validator.d.ts.map +1 -0
- package/dist/src/cli/commands/plan/plan-validator.js +174 -0
- package/dist/src/cli/commands/plan/plan-validator.js.map +1 -0
- package/dist/src/cli/commands/plan/types.d.ts +170 -0
- package/dist/src/cli/commands/plan/types.d.ts.map +1 -0
- package/dist/src/cli/commands/plan/types.js +42 -0
- package/dist/src/cli/commands/plan/types.js.map +1 -0
- package/dist/src/cli/commands/plan-command.d.ts +16 -0
- package/dist/src/cli/commands/plan-command.d.ts.map +1 -0
- package/dist/src/cli/commands/plan-command.js +127 -0
- package/dist/src/cli/commands/plan-command.js.map +1 -0
- package/dist/src/cli/commands/switch-project.js +3 -3
- package/dist/src/cli/commands/switch-project.js.map +1 -1
- package/dist/src/cli/commands/validate-parent-repo.js +1 -1
- package/dist/src/cli/commands/validate-parent-repo.js.map +1 -1
- package/dist/src/config/ConfigManager.d.ts +69 -0
- package/dist/src/config/ConfigManager.d.ts.map +1 -0
- package/dist/src/config/ConfigManager.js +130 -0
- package/dist/src/config/ConfigManager.js.map +1 -0
- package/dist/src/config/types.d.ts +1357 -0
- package/dist/src/config/types.d.ts.map +1 -0
- package/dist/src/config/types.js +67 -0
- package/dist/src/config/types.js.map +1 -0
- package/dist/src/core/brownfield/importer.d.ts +1 -1
- package/dist/src/core/brownfield/importer.d.ts.map +1 -1
- package/dist/src/core/brownfield/importer.js +3 -3
- package/dist/src/core/brownfield/importer.js.map +1 -1
- package/dist/src/core/cicd/config-loader.d.ts +1 -1
- package/dist/src/core/cicd/config-loader.d.ts.map +1 -1
- package/dist/src/core/cicd/index.d.ts +6 -6
- package/dist/src/core/cicd/index.d.ts.map +1 -1
- package/dist/src/core/cicd/index.js +6 -6
- package/dist/src/core/cicd/index.js.map +1 -1
- package/dist/src/core/cicd/monitor-service.d.ts +3 -3
- package/dist/src/core/cicd/monitor-service.d.ts.map +1 -1
- package/dist/src/core/cicd/monitor-service.js +3 -3
- package/dist/src/core/cicd/monitor-service.js.map +1 -1
- package/dist/src/core/cicd/notifier.d.ts +1 -1
- package/dist/src/core/cicd/notifier.d.ts.map +1 -1
- package/dist/src/core/cicd/state-manager.d.ts +1 -1
- package/dist/src/core/cicd/state-manager.d.ts.map +1 -1
- package/dist/src/core/cicd/state-manager.js +1 -1
- package/dist/src/core/cicd/state-manager.js.map +1 -1
- package/dist/src/core/cicd/workflow-monitor.d.ts +1 -1
- package/dist/src/core/cicd/workflow-monitor.d.ts.map +1 -1
- package/dist/src/core/cicd/workflow-monitor.js +1 -1
- package/dist/src/core/cicd/workflow-monitor.js.map +1 -1
- package/dist/src/core/cost-tracker.d.ts +2 -2
- package/dist/src/core/cost-tracker.d.ts.map +1 -1
- package/dist/src/core/cost-tracker.js +1 -1
- package/dist/src/core/cost-tracker.js.map +1 -1
- package/dist/src/core/hooks/HealthReporter.d.ts +55 -0
- package/dist/src/core/hooks/HealthReporter.d.ts.map +1 -0
- package/dist/src/core/hooks/HealthReporter.js +268 -0
- package/dist/src/core/hooks/HealthReporter.js.map +1 -0
- package/dist/src/core/hooks/HookAutoFixer.d.ts +41 -0
- package/dist/src/core/hooks/HookAutoFixer.d.ts.map +1 -0
- package/dist/src/core/hooks/HookAutoFixer.js +222 -0
- package/dist/src/core/hooks/HookAutoFixer.js.map +1 -0
- package/dist/src/core/hooks/HookExecutor.d.ts +57 -0
- package/dist/src/core/hooks/HookExecutor.d.ts.map +1 -0
- package/dist/src/core/hooks/HookExecutor.js +287 -0
- package/dist/src/core/hooks/HookExecutor.js.map +1 -0
- package/dist/src/core/hooks/HookHealthChecker.d.ts +51 -0
- package/dist/src/core/hooks/HookHealthChecker.d.ts.map +1 -0
- package/dist/src/core/hooks/HookHealthChecker.js +212 -0
- package/dist/src/core/hooks/HookHealthChecker.js.map +1 -0
- package/dist/src/core/hooks/HookScanner.d.ts +65 -0
- package/dist/src/core/hooks/HookScanner.d.ts.map +1 -0
- package/dist/src/core/hooks/HookScanner.js +214 -0
- package/dist/src/core/hooks/HookScanner.js.map +1 -0
- package/dist/src/core/hooks/types.d.ts +281 -0
- package/dist/src/core/hooks/types.d.ts.map +1 -0
- package/dist/src/core/hooks/types.js +10 -0
- package/dist/src/core/hooks/types.js.map +1 -0
- package/dist/src/core/iac/index.d.ts +10 -0
- package/dist/src/core/iac/index.d.ts.map +1 -0
- package/dist/src/core/iac/index.js +11 -0
- package/dist/src/core/iac/index.js.map +1 -0
- package/dist/src/core/iac/template-engine.d.ts +77 -0
- package/dist/src/core/iac/template-engine.d.ts.map +1 -0
- package/dist/src/core/iac/template-engine.js +182 -0
- package/dist/src/core/iac/template-engine.js.map +1 -0
- package/dist/src/core/increment/ac-status-manager.d.ts +115 -0
- package/dist/src/core/increment/ac-status-manager.d.ts.map +1 -0
- package/dist/src/core/increment/ac-status-manager.js +343 -0
- package/dist/src/core/increment/ac-status-manager.js.map +1 -0
- package/dist/src/core/increment/auto-transition-manager.d.ts +60 -0
- package/dist/src/core/increment/auto-transition-manager.d.ts.map +1 -0
- package/dist/src/core/increment/auto-transition-manager.js +192 -0
- package/dist/src/core/increment/auto-transition-manager.js.map +1 -0
- package/dist/src/core/increment/limits.d.ts +1 -1
- package/dist/src/core/increment/limits.d.ts.map +1 -1
- package/dist/src/core/increment/limits.js +2 -2
- package/dist/src/core/increment/limits.js.map +1 -1
- package/dist/src/core/increment/spec-sync-manager.d.ts +177 -0
- package/dist/src/core/increment/spec-sync-manager.d.ts.map +1 -0
- package/dist/src/core/increment/spec-sync-manager.js +496 -0
- package/dist/src/core/increment/spec-sync-manager.js.map +1 -0
- package/dist/src/core/increment/status-auto-transition.d.ts +46 -0
- package/dist/src/core/increment/status-auto-transition.d.ts.map +1 -0
- package/dist/src/core/increment/status-auto-transition.js +178 -0
- package/dist/src/core/increment/status-auto-transition.js.map +1 -0
- package/dist/src/core/increment/task-state-manager.d.ts +75 -0
- package/dist/src/core/increment/task-state-manager.d.ts.map +1 -0
- package/dist/src/core/increment/task-state-manager.js +117 -0
- package/dist/src/core/increment/task-state-manager.js.map +1 -0
- package/dist/src/core/living-docs/CodeValidator.d.ts +68 -0
- package/dist/src/core/living-docs/CodeValidator.d.ts.map +1 -0
- package/dist/src/core/living-docs/CodeValidator.js +160 -0
- package/dist/src/core/living-docs/CodeValidator.js.map +1 -0
- package/dist/src/core/living-docs/CompletionPropagator.d.ts +84 -0
- package/dist/src/core/living-docs/CompletionPropagator.d.ts.map +1 -0
- package/dist/src/core/living-docs/CompletionPropagator.js +206 -0
- package/dist/src/core/living-docs/CompletionPropagator.js.map +1 -0
- package/dist/src/core/living-docs/ProjectDetector.d.ts +29 -0
- package/dist/src/core/living-docs/ProjectDetector.d.ts.map +1 -0
- package/dist/src/core/living-docs/ProjectDetector.js +94 -0
- package/dist/src/core/living-docs/ProjectDetector.js.map +1 -0
- package/dist/src/core/living-docs/SpecDistributor.d.ts +60 -0
- package/dist/src/core/living-docs/SpecDistributor.d.ts.map +1 -0
- package/dist/src/core/living-docs/SpecDistributor.js +228 -0
- package/dist/src/core/living-docs/SpecDistributor.js.map +1 -0
- package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts +116 -0
- package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts.map +1 -0
- package/dist/src/core/living-docs/ThreeLayerSyncManager.js +356 -0
- package/dist/src/core/living-docs/ThreeLayerSyncManager.js.map +1 -0
- package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js +2 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
- package/dist/src/core/living-docs/index.d.ts +1 -1
- package/dist/src/core/living-docs/index.d.ts.map +1 -1
- package/dist/src/core/living-docs/index.js +5 -1
- package/dist/src/core/living-docs/index.js.map +1 -1
- package/dist/src/core/living-docs/project-detector.d.ts.map +1 -1
- package/dist/src/core/living-docs/project-detector.js +38 -0
- package/dist/src/core/living-docs/project-detector.js.map +1 -1
- package/dist/src/core/living-docs/types.d.ts +70 -300
- package/dist/src/core/living-docs/types.d.ts.map +1 -1
- package/dist/src/core/living-docs/types.js +2 -10
- package/dist/src/core/living-docs/types.js.map +1 -1
- package/dist/src/core/project-manager.d.ts +1 -1
- package/dist/src/core/project-manager.d.ts.map +1 -1
- package/dist/src/core/project-manager.js +2 -2
- package/dist/src/core/project-manager.js.map +1 -1
- package/dist/src/core/qa/quality-gate-decider.d.ts +1 -1
- package/dist/src/core/qa/quality-gate-decider.d.ts.map +1 -1
- package/dist/src/core/qa/risk-calculator.d.ts +1 -1
- package/dist/src/core/qa/risk-calculator.d.ts.map +1 -1
- package/dist/src/core/repo-structure/setup-summary.d.ts +1 -1
- package/dist/src/core/repo-structure/setup-summary.d.ts.map +1 -1
- package/dist/src/core/rfc-generator-v2.d.ts +1 -1
- package/dist/src/core/rfc-generator-v2.d.ts.map +1 -1
- package/dist/src/core/rfc-generator-v2.js +1 -1
- package/dist/src/core/rfc-generator-v2.js.map +1 -1
- package/dist/src/core/serverless/context-detector.d.ts +12 -0
- package/dist/src/core/serverless/context-detector.d.ts.map +1 -0
- package/dist/src/core/serverless/context-detector.js +213 -0
- package/dist/src/core/serverless/context-detector.js.map +1 -0
- package/dist/src/core/serverless/cost-comparison.d.ts +73 -0
- package/dist/src/core/serverless/cost-comparison.d.ts.map +1 -0
- package/dist/src/core/serverless/cost-comparison.js +198 -0
- package/dist/src/core/serverless/cost-comparison.js.map +1 -0
- package/dist/src/core/serverless/cost-estimator.d.ts +69 -0
- package/dist/src/core/serverless/cost-estimator.d.ts.map +1 -0
- package/dist/src/core/serverless/cost-estimator.js +127 -0
- package/dist/src/core/serverless/cost-estimator.js.map +1 -0
- package/dist/src/core/serverless/cost-optimizer.d.ts +57 -0
- package/dist/src/core/serverless/cost-optimizer.d.ts.map +1 -0
- package/dist/src/core/serverless/cost-optimizer.js +221 -0
- package/dist/src/core/serverless/cost-optimizer.js.map +1 -0
- package/dist/src/core/serverless/index.d.ts +20 -0
- package/dist/src/core/serverless/index.d.ts.map +1 -0
- package/dist/src/core/serverless/index.js +26 -0
- package/dist/src/core/serverless/index.js.map +1 -0
- package/dist/src/core/serverless/learning-path-recommender.d.ts +152 -0
- package/dist/src/core/serverless/learning-path-recommender.d.ts.map +1 -0
- package/dist/src/core/serverless/learning-path-recommender.js +389 -0
- package/dist/src/core/serverless/learning-path-recommender.js.map +1 -0
- package/dist/src/core/serverless/platform-data-loader.d.ts +22 -0
- package/dist/src/core/serverless/platform-data-loader.d.ts.map +1 -0
- package/dist/src/core/serverless/platform-data-loader.js +49 -0
- package/dist/src/core/serverless/platform-data-loader.js.map +1 -0
- package/dist/src/core/serverless/platform-selector.d.ts +20 -0
- package/dist/src/core/serverless/platform-selector.d.ts.map +1 -0
- package/dist/src/core/serverless/platform-selector.js +279 -0
- package/dist/src/core/serverless/platform-selector.js.map +1 -0
- package/dist/src/core/serverless/recommendation-formatter.d.ts +24 -0
- package/dist/src/core/serverless/recommendation-formatter.d.ts.map +1 -0
- package/dist/src/core/serverless/recommendation-formatter.js +70 -0
- package/dist/src/core/serverless/recommendation-formatter.js.map +1 -0
- package/dist/src/core/serverless/suitability-analyzer.d.ts +22 -0
- package/dist/src/core/serverless/suitability-analyzer.d.ts.map +1 -0
- package/dist/src/core/serverless/suitability-analyzer.js +262 -0
- package/dist/src/core/serverless/suitability-analyzer.js.map +1 -0
- package/dist/src/core/serverless/types.d.ts +96 -0
- package/dist/src/core/serverless/types.d.ts.map +1 -0
- package/dist/src/core/serverless/types.js +5 -0
- package/dist/src/core/serverless/types.js.map +1 -0
- package/dist/src/core/sync/bidirectional-engine.d.ts +1 -1
- package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -1
- package/dist/src/core/sync/enhanced-content-builder.d.ts +1 -1
- package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -1
- package/dist/src/core/sync/profile-manager.d.ts +1 -1
- package/dist/src/core/sync/profile-manager.d.ts.map +1 -1
- package/dist/src/core/sync/profile-selector.d.ts +1 -1
- package/dist/src/core/sync/profile-selector.d.ts.map +1 -1
- package/dist/src/core/sync/profile-selector.js +1 -1
- package/dist/src/core/sync/profile-selector.js.map +1 -1
- package/dist/src/core/sync/project-context.d.ts +1 -1
- package/dist/src/core/sync/project-context.d.ts.map +1 -1
- package/dist/src/core/sync/rate-limiter.d.ts +1 -1
- package/dist/src/core/sync/rate-limiter.d.ts.map +1 -1
- package/dist/src/core/sync/status-sync-engine.d.ts +2 -2
- package/dist/src/core/sync/status-sync-engine.d.ts.map +1 -1
- package/dist/src/core/sync/status-sync-engine.js +2 -2
- package/dist/src/core/sync/status-sync-engine.js.map +1 -1
- package/dist/src/core/sync/time-range-selector.d.ts +1 -1
- package/dist/src/core/sync/time-range-selector.d.ts.map +1 -1
- package/dist/src/core/sync/time-range-selector.js +1 -1
- package/dist/src/core/sync/time-range-selector.js.map +1 -1
- package/dist/src/core/types/config.d.ts +23 -0
- package/dist/src/core/types/config.d.ts.map +1 -1
- package/dist/src/core/types/config.js +10 -0
- package/dist/src/core/types/config.js.map +1 -1
- package/dist/src/core/types/increment-metadata.d.ts +27 -0
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
- package/dist/src/core/types/increment-metadata.js +45 -1
- package/dist/src/core/types/increment-metadata.js.map +1 -1
- package/dist/src/core/types/sync-profile.d.ts +2 -0
- package/dist/src/core/types/sync-profile.d.ts.map +1 -1
- package/dist/src/core/types/sync-profile.js.map +1 -1
- package/dist/src/core/validation/increment-structure-validator.d.ts +47 -0
- package/dist/src/core/validation/increment-structure-validator.d.ts.map +1 -0
- package/dist/src/core/validation/increment-structure-validator.js +187 -0
- package/dist/src/core/validation/increment-structure-validator.js.map +1 -0
- package/dist/src/core/validation/three-file-validator.d.ts +82 -0
- package/dist/src/core/validation/three-file-validator.d.ts.map +1 -0
- package/dist/src/core/validation/three-file-validator.js +320 -0
- package/dist/src/core/validation/three-file-validator.js.map +1 -0
- package/dist/src/core/workflow/phase-detector.d.ts +103 -0
- package/dist/src/core/workflow/phase-detector.d.ts.map +1 -0
- package/dist/src/core/workflow/phase-detector.js +704 -0
- package/dist/src/core/workflow/phase-detector.js.map +1 -0
- package/dist/src/core/workflow/types.d.ts +153 -0
- package/dist/src/core/workflow/types.d.ts.map +1 -0
- package/dist/src/core/workflow/types.js +47 -0
- package/dist/src/core/workflow/types.js.map +1 -0
- package/dist/src/init/ArchitecturePresenter.d.ts +47 -0
- package/dist/src/init/ArchitecturePresenter.d.ts.map +1 -0
- package/dist/src/init/ArchitecturePresenter.js +180 -0
- package/dist/src/init/ArchitecturePresenter.js.map +1 -0
- package/dist/src/init/InitFlow.d.ts +37 -0
- package/dist/src/init/InitFlow.d.ts.map +1 -0
- package/dist/src/init/InitFlow.js +238 -0
- package/dist/src/init/InitFlow.js.map +1 -0
- package/dist/src/init/architecture/ArchitectureDecisionEngine.d.ts +107 -0
- package/dist/src/init/architecture/ArchitectureDecisionEngine.d.ts.map +1 -0
- package/dist/src/init/architecture/ArchitectureDecisionEngine.js +405 -0
- package/dist/src/init/architecture/ArchitectureDecisionEngine.js.map +1 -0
- package/dist/src/init/architecture/CloudCreditsDatabase.d.ts +11 -0
- package/dist/src/init/architecture/CloudCreditsDatabase.d.ts.map +1 -0
- package/dist/src/init/architecture/CloudCreditsDatabase.js +92 -0
- package/dist/src/init/architecture/CloudCreditsDatabase.js.map +1 -0
- package/dist/src/init/architecture/CostEstimator.d.ts +52 -0
- package/dist/src/init/architecture/CostEstimator.d.ts.map +1 -0
- package/dist/src/init/architecture/CostEstimator.js +107 -0
- package/dist/src/init/architecture/CostEstimator.js.map +1 -0
- package/dist/src/init/architecture/InfrastructureMapper.d.ts +41 -0
- package/dist/src/init/architecture/InfrastructureMapper.d.ts.map +1 -0
- package/dist/src/init/architecture/InfrastructureMapper.js +140 -0
- package/dist/src/init/architecture/InfrastructureMapper.js.map +1 -0
- package/dist/src/init/architecture/ProjectGenerator.d.ts +44 -0
- package/dist/src/init/architecture/ProjectGenerator.d.ts.map +1 -0
- package/dist/src/init/architecture/ProjectGenerator.js +216 -0
- package/dist/src/init/architecture/ProjectGenerator.js.map +1 -0
- package/dist/src/init/architecture/types.d.ts +251 -0
- package/dist/src/init/architecture/types.d.ts.map +1 -0
- package/dist/src/init/architecture/types.js +54 -0
- package/dist/src/init/architecture/types.js.map +1 -0
- package/dist/src/init/compliance/ComplianceDetector.d.ts +17 -0
- package/dist/src/init/compliance/ComplianceDetector.d.ts.map +1 -0
- package/dist/src/init/compliance/ComplianceDetector.js +64 -0
- package/dist/src/init/compliance/ComplianceDetector.js.map +1 -0
- package/dist/src/init/compliance/standards-database.d.ts +48 -0
- package/dist/src/init/compliance/standards-database.d.ts.map +1 -0
- package/dist/src/init/compliance/standards-database.js +506 -0
- package/dist/src/init/compliance/standards-database.js.map +1 -0
- package/dist/src/init/compliance/types.d.ts +91 -0
- package/dist/src/init/compliance/types.d.ts.map +1 -0
- package/dist/src/init/compliance/types.js +43 -0
- package/dist/src/init/compliance/types.js.map +1 -0
- package/dist/src/init/repo/GitHubAPIClient.d.ts +51 -0
- package/dist/src/init/repo/GitHubAPIClient.d.ts.map +1 -0
- package/dist/src/init/repo/GitHubAPIClient.js +144 -0
- package/dist/src/init/repo/GitHubAPIClient.js.map +1 -0
- package/dist/src/init/repo/RepositorySelector.d.ts +45 -0
- package/dist/src/init/repo/RepositorySelector.d.ts.map +1 -0
- package/dist/src/init/repo/RepositorySelector.js +106 -0
- package/dist/src/init/repo/RepositorySelector.js.map +1 -0
- package/dist/src/init/repo/types.d.ts +95 -0
- package/dist/src/init/repo/types.d.ts.map +1 -0
- package/dist/src/init/repo/types.js +25 -0
- package/dist/src/init/repo/types.js.map +1 -0
- package/dist/src/init/research/CompetitorAnalyzer.d.ts +79 -0
- package/dist/src/init/research/CompetitorAnalyzer.d.ts.map +1 -0
- package/dist/src/init/research/CompetitorAnalyzer.js +265 -0
- package/dist/src/init/research/CompetitorAnalyzer.js.map +1 -0
- package/dist/src/init/research/MarketDetector.d.ts +62 -0
- package/dist/src/init/research/MarketDetector.d.ts.map +1 -0
- package/dist/src/init/research/MarketDetector.js +247 -0
- package/dist/src/init/research/MarketDetector.js.map +1 -0
- package/dist/src/init/research/OpportunityScorer.d.ts +58 -0
- package/dist/src/init/research/OpportunityScorer.d.ts.map +1 -0
- package/dist/src/init/research/OpportunityScorer.js +194 -0
- package/dist/src/init/research/OpportunityScorer.js.map +1 -0
- package/dist/src/init/research/QuestionGenerator.d.ts +68 -0
- package/dist/src/init/research/QuestionGenerator.d.ts.map +1 -0
- package/dist/src/init/research/QuestionGenerator.js +244 -0
- package/dist/src/init/research/QuestionGenerator.js.map +1 -0
- package/dist/src/init/research/ReportGenerator.d.ts +36 -0
- package/dist/src/init/research/ReportGenerator.d.ts.map +1 -0
- package/dist/src/init/research/ReportGenerator.js +125 -0
- package/dist/src/init/research/ReportGenerator.js.map +1 -0
- package/dist/src/init/research/VisionAnalyzer.d.ts +129 -0
- package/dist/src/init/research/VisionAnalyzer.d.ts.map +1 -0
- package/dist/src/init/research/VisionAnalyzer.js +212 -0
- package/dist/src/init/research/VisionAnalyzer.js.map +1 -0
- package/dist/src/init/research/keyword-extractor.d.ts +78 -0
- package/dist/src/init/research/keyword-extractor.d.ts.map +1 -0
- package/dist/src/init/research/keyword-extractor.js +230 -0
- package/dist/src/init/research/keyword-extractor.js.map +1 -0
- package/dist/src/init/research/src/config/ConfigManager.d.ts +14 -0
- package/dist/src/init/research/src/config/ConfigManager.d.ts.map +1 -0
- package/dist/src/init/research/src/config/ConfigManager.js +45 -0
- package/dist/src/init/research/src/config/ConfigManager.js.map +1 -0
- package/dist/src/init/research/src/config/types.d.ts +102 -0
- package/dist/src/init/research/src/config/types.d.ts.map +1 -0
- package/dist/src/init/research/src/config/types.js +24 -0
- package/dist/src/init/research/src/config/types.js.map +1 -0
- package/dist/src/init/research/types.d.ts +183 -0
- package/dist/src/init/research/types.d.ts.map +1 -0
- package/dist/src/init/research/types.js +65 -0
- package/dist/src/init/research/types.js.map +1 -0
- package/dist/src/init/team/ServerlessSavingsCalculator.d.ts +136 -0
- package/dist/src/init/team/ServerlessSavingsCalculator.d.ts.map +1 -0
- package/dist/src/init/team/ServerlessSavingsCalculator.js +360 -0
- package/dist/src/init/team/ServerlessSavingsCalculator.js.map +1 -0
- package/dist/src/init/team/TeamRecommender.d.ts +122 -0
- package/dist/src/init/team/TeamRecommender.d.ts.map +1 -0
- package/dist/src/init/team/TeamRecommender.js +405 -0
- package/dist/src/init/team/TeamRecommender.js.map +1 -0
- package/dist/src/init/team/types.d.ts +95 -0
- package/dist/src/init/team/types.d.ts.map +1 -0
- package/dist/src/init/team/types.js +23 -0
- package/dist/src/init/team/types.js.map +1 -0
- package/dist/src/integrations/jira/jira-mapper.d.ts +1 -1
- package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
- package/dist/src/types/cost-tracking.d.ts +1 -1
- package/dist/src/types/cost-tracking.d.ts.map +1 -1
- package/dist/src/utils/cost-reporter.d.ts +2 -2
- package/dist/src/utils/cost-reporter.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/config-generator.d.ts +1 -1
- package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/config-generator.js +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.js +4 -4
- package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
- package/dist/src/utils/docs-preview/index.d.ts +6 -6
- package/dist/src/utils/docs-preview/index.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/index.js +6 -6
- package/dist/src/utils/docs-preview/index.js.map +1 -1
- package/dist/src/utils/docs-preview/package-installer.d.ts +1 -1
- package/dist/src/utils/docs-preview/package-installer.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/package-installer.js +1 -1
- package/dist/src/utils/docs-preview/package-installer.js.map +1 -1
- package/dist/src/utils/docs-preview/server-manager.d.ts +1 -1
- package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/server-manager.js +1 -1
- package/dist/src/utils/docs-preview/server-manager.js.map +1 -1
- package/dist/src/utils/docs-preview/sidebar-builder.d.ts +1 -1
- package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +1 -1
- package/dist/src/utils/generate-skills-index.d.ts +1 -1
- package/dist/src/utils/generate-skills-index.js +1 -1
- package/dist/src/utils/project-detection.js +1 -1
- package/dist/src/utils/project-detection.js.map +1 -1
- package/package.json +17 -10
- package/plugins/specweave/agents/architect/AGENT.md +605 -0
- package/plugins/specweave/agents/infrastructure/AGENT.md +760 -0
- package/plugins/specweave/agents/pm/AGENT.md +14 -13
- package/plugins/specweave/commands/specweave-check-hooks.md +186 -0
- package/plugins/specweave/commands/specweave-plan.md +151 -0
- package/plugins/specweave/commands/specweave-sync-acs.md +342 -0
- package/plugins/specweave/commands/specweave-validate.md +60 -11
- package/plugins/specweave/hooks/lib/update-status-line.sh +8 -4
- package/plugins/specweave/hooks/post-increment-change.sh +4 -0
- package/plugins/specweave/hooks/post-increment-completion.sh +7 -1
- package/plugins/specweave/hooks/post-increment-planning.sh +4 -0
- package/plugins/specweave/hooks/post-increment-status-change.sh +4 -0
- package/plugins/specweave/hooks/user-prompt-submit.sh +78 -0
- package/plugins/specweave/iac-templates/aws-lambda/README.md.hbs +280 -0
- package/plugins/specweave/iac-templates/aws-lambda/defaults.json +118 -0
- package/plugins/specweave/iac-templates/aws-lambda/environments/dev.defaults.json +46 -0
- package/plugins/specweave/iac-templates/aws-lambda/environments/prod.defaults.json +67 -0
- package/plugins/specweave/iac-templates/aws-lambda/environments/staging.defaults.json +47 -0
- package/plugins/specweave/iac-templates/aws-lambda/main.tf.hbs +241 -0
- package/plugins/specweave/iac-templates/aws-lambda/outputs.tf.hbs +61 -0
- package/plugins/specweave/iac-templates/aws-lambda/provider.tf.hbs +15 -0
- package/plugins/specweave/iac-templates/aws-lambda/variables.tf.hbs +88 -0
- package/plugins/specweave/iac-templates/azure-functions/README.md.hbs +315 -0
- package/plugins/specweave/iac-templates/azure-functions/defaults.json +65 -0
- package/plugins/specweave/iac-templates/azure-functions/environments/dev.defaults.json +30 -0
- package/plugins/specweave/iac-templates/azure-functions/environments/prod.defaults.json +34 -0
- package/plugins/specweave/iac-templates/azure-functions/environments/staging.defaults.json +31 -0
- package/plugins/specweave/iac-templates/azure-functions/iam.tf.hbs +34 -0
- package/plugins/specweave/iac-templates/azure-functions/main.tf.hbs +247 -0
- package/plugins/specweave/iac-templates/azure-functions/outputs.tf.hbs +72 -0
- package/plugins/specweave/iac-templates/azure-functions/provider.tf.hbs +14 -0
- package/plugins/specweave/iac-templates/azure-functions/variables.tf.hbs +64 -0
- package/plugins/specweave/iac-templates/firebase/README.md.hbs +487 -0
- package/plugins/specweave/iac-templates/firebase/defaults.json +55 -0
- package/plugins/specweave/iac-templates/firebase/environments/dev.defaults.json +44 -0
- package/plugins/specweave/iac-templates/firebase/environments/prod.defaults.json +52 -0
- package/plugins/specweave/iac-templates/firebase/environments/staging.defaults.json +43 -0
- package/plugins/specweave/iac-templates/firebase/iam.tf.hbs +75 -0
- package/plugins/specweave/iac-templates/firebase/main.tf.hbs +297 -0
- package/plugins/specweave/iac-templates/firebase/outputs.tf.hbs +67 -0
- package/plugins/specweave/iac-templates/firebase/provider.tf.hbs +26 -0
- package/plugins/specweave/iac-templates/firebase/variables.tf.hbs +68 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/README.md.hbs +330 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/defaults.json +69 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/dev.defaults.json +33 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/prod.defaults.json +40 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/staging.defaults.json +33 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/iam.tf.hbs +54 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/main.tf.hbs +211 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/outputs.tf.hbs +44 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/provider.tf.hbs +14 -0
- package/plugins/specweave/iac-templates/gcp-cloud-functions/variables.tf.hbs +82 -0
- package/plugins/specweave/iac-templates/supabase/README.md.hbs +534 -0
- package/plugins/specweave/iac-templates/supabase/defaults.json +69 -0
- package/plugins/specweave/iac-templates/supabase/environments/dev.defaults.json +55 -0
- package/plugins/specweave/iac-templates/supabase/environments/prod.defaults.json +75 -0
- package/plugins/specweave/iac-templates/supabase/environments/staging.defaults.json +54 -0
- package/plugins/specweave/iac-templates/supabase/iam.tf.hbs +146 -0
- package/plugins/specweave/iac-templates/supabase/main.tf.hbs +310 -0
- package/plugins/specweave/iac-templates/supabase/outputs.tf.hbs +74 -0
- package/plugins/specweave/iac-templates/supabase/provider.tf.hbs +19 -0
- package/plugins/specweave/iac-templates/supabase/variables.tf.hbs +78 -0
- package/plugins/specweave/knowledge-base/serverless/FRESHNESS.md +69 -0
- package/plugins/specweave/knowledge-base/serverless/learning-paths.json +865 -0
- package/plugins/specweave/knowledge-base/serverless/platforms/aws-lambda.json +41 -0
- package/plugins/specweave/knowledge-base/serverless/platforms/azure-functions.json +41 -0
- package/plugins/specweave/knowledge-base/serverless/platforms/firebase.json +46 -0
- package/plugins/specweave/knowledge-base/serverless/platforms/gcp-cloud-functions.json +41 -0
- package/plugins/specweave/knowledge-base/serverless/platforms/supabase.json +41 -0
- package/plugins/specweave/knowledge-base/serverless/schema.json +155 -0
- package/plugins/specweave/lib/hooks/auto-transition.js +50 -0
- package/plugins/specweave/lib/hooks/auto-transition.ts +84 -0
- package/plugins/specweave/lib/hooks/invoke-translator-skill.js +1 -1
- package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +1 -1
- package/plugins/specweave/lib/hooks/sync-living-docs.js +4 -31
- package/plugins/specweave/lib/hooks/{sync-living-docs.ts → sync-living-docs.ts.DISABLED} +9 -48
- package/plugins/specweave/lib/hooks/translate-file.js +1 -1
- package/plugins/specweave/lib/hooks/translate-file.ts +1 -1
- package/plugins/specweave/lib/hooks/update-ac-status.js +24 -75
- package/plugins/specweave/lib/hooks/update-ac-status.ts +46 -135
- package/plugins/specweave/lib/hooks/update-tasks-md.js +115 -3
- package/plugins/specweave/lib/hooks/update-tasks-md.ts +182 -10
- package/plugins/specweave/lib/utils/validate-dev-setup.sh +133 -0
- package/plugins/specweave/skills/increment-planner/SKILL.md +25 -15
- package/plugins/specweave/skills/serverless-recommender/SKILL.md +368 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/iam.tf.hbs +137 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/main.tf.hbs +216 -0
- package/plugins/specweave-ado/lib/enhanced-ado-sync.js +170 -0
- package/plugins/specweave-github/lib/CodeValidator.js +195 -0
- package/plugins/specweave-github/lib/CodeValidator.ts +284 -0
- package/plugins/specweave-github/lib/IssueStateManager.js +117 -0
- package/plugins/specweave-github/lib/IssueStateManager.ts +231 -0
- package/plugins/specweave-github/lib/ThreeLayerSyncManager.js +545 -0
- package/plugins/specweave-github/lib/ThreeLayerSyncManager.ts +809 -0
- package/plugins/specweave-github/lib/types.ts +38 -0
- package/plugins/specweave-github/lib/user-story-issue-builder.js +7 -0
- package/plugins/specweave-github/lib/user-story-issue-builder.ts +11 -0
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +1200 -0
- package/plugins/specweave-ui/.mcp.json +0 -10
- package/plugins/specweave-ui/README.md +26 -26
- package/plugins/specweave-ui/skills/browser-automation/SKILL.md +31 -18
- package/src/templates/AGENTS.md.template +22 -1
- package/src/templates/tasks.md.template +51 -33
- package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
- package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
- package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
- package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
- package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
- package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
- package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
- package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
- package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
- package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
- package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
- package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
- package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
- package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
- package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
- package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
- package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -32
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -405
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
- package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
- package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
- package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
- package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
- package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
- package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts +0 -21
- package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/update-ac-status.js +0 -162
- package/dist/plugins/specweave/lib/hooks/update-ac-status.js.map +0 -1
- package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
- package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
- package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
- package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
- package/dist/src/core/living-docs/spec-distributor.d.ts +0 -180
- package/dist/src/core/living-docs/spec-distributor.d.ts.map +0 -1
- package/dist/src/core/living-docs/spec-distributor.js +0 -1840
- package/dist/src/core/living-docs/spec-distributor.js.map +0 -1
package/CLAUDE.md
CHANGED
|
@@ -24,21 +24,23 @@ Users receive a different CLAUDE.md via the template system.
|
|
|
24
24
|
/SESSION-SUMMARY-2025-10-28.md # NO! Goes to increment reports/
|
|
25
25
|
/ADR-006-DEEP-ANALYSIS.md # NO! Goes to .specweave/docs/internal/architecture/adr/
|
|
26
26
|
/ANALYSIS-MULTI-TOOL-COMPARISON.md # NO! Goes to increment reports/
|
|
27
|
+
/QUICK-START.md # NO! Goes to increment reports/
|
|
27
28
|
/migration-helper.sh # NO! Goes to increment scripts/
|
|
28
29
|
/execution.log # NO! Goes to increment logs/
|
|
29
30
|
|
|
30
31
|
✅ CORRECT - INCREMENT FOLDERS:
|
|
31
32
|
.specweave/increments/0004-plugin-architecture/
|
|
32
|
-
├── spec.md #
|
|
33
|
+
├── spec.md # ⚠️ ONLY THESE 3 FILES in root!
|
|
33
34
|
├── plan.md
|
|
34
35
|
├── tasks.md # Tasks with embedded tests
|
|
35
|
-
├── reports/ # ✅
|
|
36
|
+
├── reports/ # ✅ ALL REPORTS HERE!
|
|
36
37
|
│ ├── PLUGIN-MIGRATION-COMPLETE.md # ✅ Completion reports
|
|
37
38
|
│ ├── SESSION-SUMMARY.md # ✅ Session summaries
|
|
39
|
+
│ ├── QUICK-START.md # ✅ Quick start guides
|
|
38
40
|
│ └── ANALYSIS-*.md # ✅ Analysis files
|
|
39
|
-
├── scripts/ # ✅
|
|
41
|
+
├── scripts/ # ✅ ALL SCRIPTS HERE!
|
|
40
42
|
│ └── migration-helper.sh # ✅ Helper scripts
|
|
41
|
-
└── logs/ # ✅
|
|
43
|
+
└── logs/ # ✅ ALL LOGS HERE!
|
|
42
44
|
└── execution.log # ✅ Execution logs
|
|
43
45
|
|
|
44
46
|
.specweave/docs/internal/architecture/ # ✅ PUT ADRS/DIAGRAMS HERE!
|
|
@@ -48,6 +50,105 @@ Users receive a different CLAUDE.md via the template system.
|
|
|
48
50
|
|
|
49
51
|
**Before committing, ALWAYS check**: `git status` - If you see `.md` files in root, MOVE THEM!
|
|
50
52
|
|
|
53
|
+
### 📁 Increment Structure Rules (MANDATORY)
|
|
54
|
+
|
|
55
|
+
**ONLY 3 files allowed in increment root**:
|
|
56
|
+
1. ✅ `spec.md` - Specification
|
|
57
|
+
2. ✅ `plan.md` - Implementation plan
|
|
58
|
+
3. ✅ `tasks.md` - Tasks with embedded tests
|
|
59
|
+
|
|
60
|
+
**Everything else MUST be in subfolders**:
|
|
61
|
+
- `reports/` - Session summaries, completion reports, analysis files, quick-start guides
|
|
62
|
+
- `scripts/` - Helper scripts, migrations, utilities
|
|
63
|
+
- `logs/` - Execution logs, debug output, temp files
|
|
64
|
+
|
|
65
|
+
**Examples of files that belong in subfolders**:
|
|
66
|
+
- `QUICK-START.md` → `reports/QUICK-START.md`
|
|
67
|
+
- `SESSION-NOTES.md` → `reports/SESSION-NOTES.md`
|
|
68
|
+
- `ULTRATHINK-*.md` → `reports/ULTRATHINK-*.md`
|
|
69
|
+
- `validation.sh` → `scripts/validation.sh`
|
|
70
|
+
- `debug.log` → `logs/debug.log`
|
|
71
|
+
|
|
72
|
+
**Why this matters**:
|
|
73
|
+
- ✅ Clean, predictable structure
|
|
74
|
+
- ✅ Easy to find files by type
|
|
75
|
+
- ✅ No increment root clutter
|
|
76
|
+
- ✅ Consistent across all increments
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 🛡️ CRITICAL: NEVER DELETE .specweave/ DIRECTORIES!
|
|
81
|
+
|
|
82
|
+
**⛔ MASS DELETION PROTECTION IS ACTIVE ⛔**
|
|
83
|
+
|
|
84
|
+
**PROTECTED DIRECTORIES**:
|
|
85
|
+
- `.specweave/docs/` - All project documentation (internal + public)
|
|
86
|
+
- `.specweave/increments/` - All increment history and specifications
|
|
87
|
+
|
|
88
|
+
**WHAT THIS MEANS**:
|
|
89
|
+
- ❌ **NEVER** run `rm -rf .specweave/docs` or `rm -rf .specweave/increments`
|
|
90
|
+
- ❌ **NEVER** delete more than 50 files in these directories at once
|
|
91
|
+
- ✅ Pre-commit hook will **BLOCK** accidental mass deletions
|
|
92
|
+
- ✅ If intentional, bypass with `git commit --no-verify`
|
|
93
|
+
|
|
94
|
+
**WHY THIS EXISTS**:
|
|
95
|
+
On 2025-11-17, an accidental mass deletion occurred (1,200+ files). All files were recovered via `git restore`, but this protection prevents future incidents.
|
|
96
|
+
|
|
97
|
+
**IF YOU ACCIDENTALLY DELETE**:
|
|
98
|
+
```bash
|
|
99
|
+
# Immediately restore:
|
|
100
|
+
git restore .specweave/
|
|
101
|
+
|
|
102
|
+
# Verify restoration:
|
|
103
|
+
git status
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**See**: `.specweave/increments/0039/reports/ACCIDENTAL-DELETION-RECOVERY-2025-11-17.md`
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## ⚠️ CRITICAL: NEVER USE `specweave init . --force` FOR REINSTALLS!
|
|
111
|
+
|
|
112
|
+
**⛔ COMMON MISTAKE THAT DELETES ALL DATA ⛔**
|
|
113
|
+
|
|
114
|
+
**THE DANGER**:
|
|
115
|
+
```bash
|
|
116
|
+
# ❌ DANGEROUS (deletes ALL increments and docs):
|
|
117
|
+
specweave init . --force
|
|
118
|
+
|
|
119
|
+
# What --force actually does:
|
|
120
|
+
# 1. Skips all confirmation prompts
|
|
121
|
+
# 2. AUTOMATICALLY DELETES .specweave/ entirely
|
|
122
|
+
# 3. Loses all increments, docs, and history
|
|
123
|
+
# 4. No backup unless you create one manually
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**SAFE ALTERNATIVES**:
|
|
127
|
+
```bash
|
|
128
|
+
# ✅ SAFE - Update files, keep all data:
|
|
129
|
+
specweave init .
|
|
130
|
+
# When prompted, select: "Continue working"
|
|
131
|
+
|
|
132
|
+
# ✅ SAFE - Always interactive, never deletes:
|
|
133
|
+
npx specweave init .
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**WHY THIS MATTERS**:
|
|
137
|
+
- Documentation used to recommend `--force` for troubleshooting (FIXED in v0.21.4+)
|
|
138
|
+
- Users followed the docs and lost all their work
|
|
139
|
+
- Now `--force` has multiple safeguards:
|
|
140
|
+
- ⚠️ BIG RED WARNING before deletion
|
|
141
|
+
- ✅ ALWAYS requires confirmation (even in force mode)
|
|
142
|
+
- 📦 Automatic backup created before deletion
|
|
143
|
+
- 🔒 Pre-commit hook blocks accidental commits
|
|
144
|
+
|
|
145
|
+
**IF YOU NEED A FRESH START**:
|
|
146
|
+
1. Backup first: `cp -r .specweave .specweave.backup-$(date +%Y%m%d)`
|
|
147
|
+
2. Run: `specweave init .` (select "Fresh start" option)
|
|
148
|
+
3. Or: `specweave init . --force` (requires confirmation + creates auto-backup)
|
|
149
|
+
|
|
150
|
+
**NEVER use `--force` unless you want to DELETE EVERYTHING!**
|
|
151
|
+
|
|
51
152
|
---
|
|
52
153
|
|
|
53
154
|
## Tool Support
|
|
@@ -340,20 +441,338 @@ GitHub Issue (Checkable task list for stakeholders)
|
|
|
340
441
|
|
|
341
442
|
## Build & Test
|
|
342
443
|
|
|
444
|
+
### Build Commands
|
|
445
|
+
|
|
343
446
|
```bash
|
|
344
|
-
#
|
|
345
|
-
npm run build
|
|
447
|
+
# ALWAYS use clean build during development (prevents TS5055 errors)
|
|
448
|
+
npm run rebuild # Clean + build (RECOMMENDED)
|
|
346
449
|
|
|
347
|
-
#
|
|
348
|
-
npm
|
|
450
|
+
# Or manual steps:
|
|
451
|
+
npm run clean # Remove dist/ folder
|
|
452
|
+
npm run build # Compile TypeScript
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
### Testing
|
|
456
|
+
|
|
457
|
+
**Test Framework**: **Vitest** (migrated from Jest on 2025-11-17)
|
|
458
|
+
|
|
459
|
+
```bash
|
|
460
|
+
npm test # Smoke tests (quick validation)
|
|
461
|
+
npm run test:unit # Unit tests with Vitest
|
|
462
|
+
npm run test:integration # Integration tests with Vitest
|
|
349
463
|
npm run test:e2e # E2E tests (Playwright)
|
|
350
|
-
npm run test:
|
|
464
|
+
npm run test:all # All tests
|
|
465
|
+
npm run test:coverage # Coverage report
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
**Why Vitest?**
|
|
469
|
+
- ✅ ESM-native (no tsconfig hacks)
|
|
470
|
+
- ✅ Faster than Jest
|
|
471
|
+
- ✅ Better TypeScript integration
|
|
472
|
+
- ✅ Native import.meta.url support
|
|
473
|
+
- ✅ Modern, actively maintained
|
|
474
|
+
|
|
475
|
+
**Test Organization** (4 categories):
|
|
476
|
+
- `tests/unit/` - Pure logic tests (no I/O) - **Vitest**
|
|
477
|
+
- `tests/plugin-validation/` - Plugin structure contracts
|
|
478
|
+
- `tests/integration/` - 4 semantic categories - **Vitest**:
|
|
479
|
+
- `external-tools/` - GitHub, JIRA, ADO, Kafka sync
|
|
480
|
+
- `core/` - Core framework + workflows
|
|
481
|
+
- `generators/` - Code generation (frontend, backend, ML)
|
|
482
|
+
- `features/` - Feature plugins (Figma, i18n, diagrams, etc.)
|
|
483
|
+
- `tests/e2e/` - Full user scenarios - **Playwright**
|
|
484
|
+
|
|
485
|
+
**Writing Tests**:
|
|
486
|
+
```typescript
|
|
487
|
+
// Import from vitest (NOT jest)
|
|
488
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
489
|
+
|
|
490
|
+
// Mocking
|
|
491
|
+
vi.mock('fs/promises');
|
|
492
|
+
const mockFn = vi.fn();
|
|
493
|
+
vi.clearAllMocks();
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
**Details**: `.specweave/docs/internal/architecture/TEST-ORGANIZATION-PROPOSAL.md`
|
|
497
|
+
|
|
498
|
+
### Test Isolation (CRITICAL - Prevents .specweave/ Deletion!)
|
|
499
|
+
|
|
500
|
+
**🚨 MANDATORY FOR ALL TESTS creating .specweave/ structures:**
|
|
501
|
+
|
|
502
|
+
**THE PROBLEM**: Tests using `process.cwd()` can accidentally delete the project `.specweave/` folder containing all your work!
|
|
503
|
+
|
|
504
|
+
**CORRECT PATTERN** (ALWAYS use this):
|
|
505
|
+
```typescript
|
|
506
|
+
import * as os from 'os';
|
|
507
|
+
import * as path from 'path';
|
|
508
|
+
|
|
509
|
+
// ✅ SAFE: Uses isolated temp directory
|
|
510
|
+
const testRoot = path.join(os.tmpdir(), 'test-name-' + Date.now());
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
**DANGEROUS PATTERN** (NEVER use this):
|
|
514
|
+
```typescript
|
|
515
|
+
// ❌ DANGER: Creates directories in project root!
|
|
516
|
+
const testRoot = path.join(process.cwd(), '.test-something');
|
|
517
|
+
const testPath = path.join(__dirname, '..', '.specweave', 'increments');
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
**Why This Matters**:
|
|
521
|
+
1. Tests create mock `.specweave/` structures for testing
|
|
522
|
+
2. Cleanup uses `fs.rm(testRoot, { recursive: true })`
|
|
523
|
+
3. If `testRoot` points to project root → **DELETES REAL .specweave/!**
|
|
524
|
+
4. You lose all increments, docs, and history
|
|
525
|
+
|
|
526
|
+
**Use Test Utilities** (RECOMMENDED):
|
|
527
|
+
```typescript
|
|
528
|
+
import { createIsolatedTestDir, createSpecweaveStructure } from '../test-utils/isolated-test-dir';
|
|
529
|
+
|
|
530
|
+
test('my test', async () => {
|
|
531
|
+
const { testDir, cleanup } = await createIsolatedTestDir('my-test');
|
|
532
|
+
|
|
533
|
+
try {
|
|
534
|
+
// Setup .specweave structure in isolated directory
|
|
535
|
+
await createSpecweaveStructure(testDir);
|
|
536
|
+
|
|
537
|
+
// Test code here - NEVER touches project .specweave/
|
|
538
|
+
const incrementPath = path.join(testDir, '.specweave', 'increments', '0001-test');
|
|
539
|
+
// ...
|
|
540
|
+
} finally {
|
|
541
|
+
await cleanup(); // ALWAYS cleanup
|
|
542
|
+
}
|
|
543
|
+
});
|
|
351
544
|
```
|
|
352
545
|
|
|
353
|
-
**
|
|
546
|
+
**Protection Layers**:
|
|
547
|
+
1. ✅ **Pre-commit hook**: Blocks commits with dangerous test patterns
|
|
548
|
+
2. ✅ **Test utilities**: `tests/test-utils/isolated-test-dir.ts`
|
|
549
|
+
3. ✅ **Documentation**: This section
|
|
550
|
+
|
|
551
|
+
**Related Incident**: 2025-11-17 - Multiple `.specweave/` deletions traced to dangerous test patterns
|
|
552
|
+
**Root Cause Analysis**: `.specweave/increments/0037/reports/DELETION-ROOT-CAUSE-2025-11-17.md`
|
|
553
|
+
|
|
554
|
+
### Build Health Checks
|
|
555
|
+
|
|
556
|
+
**CRITICAL**: TypeScript ES Modules require specific practices:
|
|
557
|
+
|
|
558
|
+
1. **Always Import with .js Extensions**:
|
|
559
|
+
```typescript
|
|
560
|
+
// ❌ WRONG (will break at runtime):
|
|
561
|
+
import { foo } from './bar';
|
|
562
|
+
|
|
563
|
+
// ✅ CORRECT:
|
|
564
|
+
import { foo } from './bar.js';
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
2. **Fix Missing Extensions**:
|
|
568
|
+
```bash
|
|
569
|
+
# Auto-fix all missing .js extensions:
|
|
570
|
+
node scripts/fix-js-extensions.js
|
|
571
|
+
|
|
572
|
+
# Preview changes first:
|
|
573
|
+
node scripts/fix-js-extensions.js --dry-run
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
3. **Verify Build is Clean**:
|
|
577
|
+
```bash
|
|
578
|
+
# Check for polluted dist/ (TS5055 indicator):
|
|
579
|
+
find dist/src -name "*.ts" -not -name "*.d.ts"
|
|
580
|
+
# Should return NOTHING
|
|
581
|
+
|
|
582
|
+
# If files found, clean rebuild:
|
|
583
|
+
npm run rebuild
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
4. **Test Hook Execution**:
|
|
587
|
+
```bash
|
|
588
|
+
# Hooks must import correctly at runtime:
|
|
589
|
+
node plugins/specweave/lib/hooks/update-ac-status.js 0001
|
|
590
|
+
# Should execute without "Cannot find module" errors
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
5. **Install Git Hooks** (RECOMMENDED):
|
|
594
|
+
```bash
|
|
595
|
+
bash scripts/install-git-hooks.sh
|
|
596
|
+
# Verifies build health before every commit
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
### Common Build Errors & Fixes
|
|
600
|
+
|
|
601
|
+
**Error: TS5055 - Cannot write file (would overwrite input)**
|
|
602
|
+
```bash
|
|
603
|
+
# Cause: dist/ polluted with .ts source files
|
|
604
|
+
# Fix:
|
|
605
|
+
npm run clean && npm run build
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
**Error: Cannot find module 'src/...' (hook execution)**
|
|
609
|
+
```bash
|
|
610
|
+
# Cause: Hooks importing from src/ instead of dist/src/
|
|
611
|
+
# OR: Missing .js extensions in imports
|
|
612
|
+
# Fix:
|
|
613
|
+
node scripts/fix-js-extensions.js
|
|
614
|
+
npm run rebuild
|
|
615
|
+
```
|
|
616
|
+
|
|
617
|
+
**Error: Module import without .js extension**
|
|
618
|
+
```bash
|
|
619
|
+
# Cause: TypeScript ES modules REQUIRE .js in relative imports
|
|
620
|
+
# Fix:
|
|
621
|
+
node scripts/fix-js-extensions.js
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
### Build Architecture
|
|
625
|
+
|
|
626
|
+
SpecWeave uses **dual compilation**:
|
|
627
|
+
- `tsc`: Compiles `src/` → `dist/src/` (source files)
|
|
628
|
+
- `esbuild`: Compiles `plugins/**/lib/hooks/*.ts` → in-place `.js` (hooks only)
|
|
629
|
+
|
|
630
|
+
**Why?** Hooks must import from `dist/src/` (compiled), but TypeScript would try to compile them before `dist/` exists (chicken-and-egg). Solution: Exclude hooks from `tsconfig.json`, compile separately with esbuild.
|
|
631
|
+
|
|
632
|
+
### Increment Scripts vs Hooks
|
|
633
|
+
|
|
634
|
+
**CRITICAL DISTINCTION**: Increment scripts and hooks have different purposes and import patterns.
|
|
635
|
+
|
|
636
|
+
**Hooks** (`plugins/**/lib/hooks/*.ts`):
|
|
637
|
+
- **Purpose**: Production runtime executables (called by shell scripts)
|
|
638
|
+
- **Execution**: `#!/usr/bin/env node` (JavaScript runtime)
|
|
639
|
+
- **Imports**: MUST use `dist/src/` (compiled JavaScript)
|
|
640
|
+
- **Compilation**: esbuild (separate from main build)
|
|
641
|
+
- **Example**:
|
|
642
|
+
```typescript
|
|
643
|
+
#!/usr/bin/env node
|
|
644
|
+
import { ACStatusManager } from '../../../../dist/src/core/increment/ac-status-manager.js';
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
**Increment Scripts** (`.specweave/increments/####/scripts/*.ts`):
|
|
648
|
+
- **Purpose**: Development utilities (one-off tasks, migrations, analysis)
|
|
649
|
+
- **Execution**: `#!/usr/bin/env tsx` (TypeScript runtime with ESM support)
|
|
650
|
+
- **Imports**: MUST use `src/` (TypeScript source, NOT compiled)
|
|
651
|
+
- **Compilation**: None (tsx transpiles on-the-fly)
|
|
652
|
+
- **Example**:
|
|
653
|
+
```typescript
|
|
654
|
+
#!/usr/bin/env tsx
|
|
655
|
+
import { ACStatusManager } from '../../../../src/core/increment/ac-status-manager.js';
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
**Why Different Patterns?**
|
|
659
|
+
|
|
660
|
+
| Aspect | Hooks (dist/) | Increment Scripts (src/) |
|
|
661
|
+
|--------|---------------|-------------------------|
|
|
662
|
+
| **Context** | Production runtime | Development only |
|
|
663
|
+
| **Tooling** | Node.js only | TypeScript tooling (tsx) |
|
|
664
|
+
| **Build dependency** | Yes (requires dist/) | No (live source code) |
|
|
665
|
+
| **Live reload** | No (must rebuild) | Yes (tsx auto-transpiles) |
|
|
666
|
+
| **Purpose** | Permanent infrastructure | Temporary dev utilities |
|
|
667
|
+
|
|
668
|
+
**Common Mistake**: Copying hook import patterns to increment scripts.
|
|
669
|
+
|
|
670
|
+
```typescript
|
|
671
|
+
// ❌ WRONG (increment script importing from dist/):
|
|
672
|
+
#!/usr/bin/env tsx
|
|
673
|
+
import { ACStatusManager } from '../../../../dist/src/core/...';
|
|
674
|
+
// Issues:
|
|
675
|
+
// - Requires npm run build before execution
|
|
676
|
+
// - Stale code if src/ changes without rebuild
|
|
677
|
+
// - Semantic confusion (TS runtime + JS imports)
|
|
678
|
+
|
|
679
|
+
// ✅ CORRECT (increment script importing from src/):
|
|
680
|
+
#!/usr/bin/env tsx
|
|
681
|
+
import { ACStatusManager } from '../../../../src/core/...';
|
|
682
|
+
// Benefits:
|
|
683
|
+
// - No build dependency
|
|
684
|
+
// - Always uses latest source code
|
|
685
|
+
// - Clear dev script pattern
|
|
686
|
+
```
|
|
687
|
+
|
|
688
|
+
**Note**: Use `tsx` (not `ts-node`) for increment scripts - it has better ESM + TypeScript support.
|
|
689
|
+
|
|
690
|
+
### Running Increment Scripts
|
|
691
|
+
|
|
692
|
+
**CRITICAL**: Increment scripts use `#!/usr/bin/env tsx` shebang, which assumes tsx is in your PATH. This often fails in development environments.
|
|
693
|
+
|
|
694
|
+
**Recommended Execution Method** (Always Works):
|
|
695
|
+
```bash
|
|
696
|
+
# ✅ Use npx - finds tsx in node_modules/.bin/ automatically
|
|
697
|
+
npx tsx .specweave/increments/####/scripts/script-name.ts
|
|
698
|
+
|
|
699
|
+
# Example:
|
|
700
|
+
npx tsx .specweave/increments/0037-project-specific-tasks/scripts/validate-task-consistency.ts
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
**Why npx?**
|
|
704
|
+
- ✅ Works without global tsx installation
|
|
705
|
+
- ✅ Uses project's tsx version (consistent across team)
|
|
706
|
+
- ✅ No PATH configuration needed
|
|
707
|
+
- ✅ Same behavior in CI/CD and local dev
|
|
708
|
+
|
|
709
|
+
**Alternative Methods** (Less Recommended):
|
|
710
|
+
```bash
|
|
711
|
+
# Option 1: Direct execution (requires global tsx)
|
|
712
|
+
chmod +x script.ts
|
|
713
|
+
./script.ts
|
|
714
|
+
# ❌ Fails if tsx not globally installed
|
|
715
|
+
|
|
716
|
+
# Option 2: Install tsx globally (not recommended for teams)
|
|
717
|
+
npm install -g tsx
|
|
718
|
+
./script.ts
|
|
719
|
+
# ❌ Every contributor must install globally
|
|
720
|
+
# ❌ Version inconsistencies across team
|
|
721
|
+
|
|
722
|
+
# Option 3: Full path
|
|
723
|
+
./node_modules/.bin/tsx script.ts
|
|
724
|
+
# ✅ Works, but verbose
|
|
725
|
+
```
|
|
726
|
+
|
|
727
|
+
**Troubleshooting "command not found: tsx" (Exit Code 127)**:
|
|
728
|
+
|
|
729
|
+
This error means tsx isn't in your shell's PATH.
|
|
730
|
+
|
|
731
|
+
**Root Cause**:
|
|
732
|
+
- tsx is a **dev dependency** (installed in `node_modules/`)
|
|
733
|
+
- Shell can't find commands in `node_modules/.bin/` automatically
|
|
734
|
+
- npm scripts add `node_modules/.bin/` to PATH, but direct shell execution doesn't
|
|
735
|
+
|
|
736
|
+
**Fix**:
|
|
737
|
+
```bash
|
|
738
|
+
# Instead of:
|
|
739
|
+
tsx script.ts # ❌ Fails with error 127
|
|
740
|
+
|
|
741
|
+
# Use:
|
|
742
|
+
npx tsx script.ts # ✅ Always works
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
**Why This Happens "Sometimes"**:
|
|
746
|
+
- **npm scripts**: Work (PATH includes node_modules/.bin/)
|
|
747
|
+
- **Direct shell**: Fails (PATH doesn't include node_modules/.bin/)
|
|
748
|
+
- **Global tsx installed**: Works (tsx in system PATH)
|
|
749
|
+
- **CI/CD**: Depends on environment setup
|
|
750
|
+
|
|
751
|
+
**Execution Context Comparison**:
|
|
752
|
+
|
|
753
|
+
| Method | tsx in PATH? | Works? |
|
|
754
|
+
|--------|--------------|--------|
|
|
755
|
+
| `npm run script` | ✅ Yes (npm adds it) | ✅ Yes |
|
|
756
|
+
| `./script.ts` | ❌ No (unless global) | ❌ Usually fails |
|
|
757
|
+
| `tsx script.ts` | ❌ No (unless global) | ❌ Usually fails |
|
|
758
|
+
| `npx tsx script.ts` | ✅ Yes (npx finds it) | ✅ Always works |
|
|
759
|
+
|
|
760
|
+
**Best Practice for Contributors**:
|
|
761
|
+
- **Creating scripts**: Use `#!/usr/bin/env tsx` shebang (conventional)
|
|
762
|
+
- **Running scripts**: Always use `npx tsx script.ts` (reliable)
|
|
763
|
+
- **Documentation**: Show npx execution method in examples
|
|
764
|
+
|
|
765
|
+
### Coverage Requirements
|
|
766
|
+
|
|
354
767
|
- Critical paths: 90%+
|
|
355
768
|
- Overall: 80%+
|
|
356
769
|
|
|
770
|
+
### Related Documentation
|
|
771
|
+
|
|
772
|
+
- Build process details: `.github/CONTRIBUTING.md` → "Build Process & Best Practices"
|
|
773
|
+
- Ultrathink analysis: `.specweave/increments/0039/reports/HOOK-IMPORT-ERROR-ULTRATHINK-ANALYSIS.md`
|
|
774
|
+
- Build verification tests: `tests/integration/build/build-verification.test.ts`
|
|
775
|
+
|
|
357
776
|
---
|
|
358
777
|
|
|
359
778
|
## Common Tasks
|
package/README.md
CHANGED
|
@@ -232,8 +232,18 @@ Claude implements Task 1:
|
|
|
232
232
|
# Install SpecWeave
|
|
233
233
|
npm install -g specweave
|
|
234
234
|
|
|
235
|
-
# Initialize
|
|
235
|
+
# Initialize with Strategic Init (AI-powered research)
|
|
236
236
|
specweave init my-project
|
|
237
|
+
|
|
238
|
+
# Strategic Init guides you through 6 phases:
|
|
239
|
+
# Phase 1: Vision & Market Research
|
|
240
|
+
# Phase 2: Scaling & Performance Goals
|
|
241
|
+
# Phase 3: Data & Compliance Detection
|
|
242
|
+
# Phase 4: Budget & Cloud Credits
|
|
243
|
+
# Phase 5: Methodology & Organization
|
|
244
|
+
# Phase 6: Repository Selection (optional)
|
|
245
|
+
|
|
246
|
+
# Result: Architecture recommendation, team plan, cost estimates
|
|
237
247
|
cd my-project
|
|
238
248
|
|
|
239
249
|
# Start building
|
|
@@ -242,6 +252,15 @@ cd my-project
|
|
|
242
252
|
/specweave:done 0001 # Complete increment
|
|
243
253
|
```
|
|
244
254
|
|
|
255
|
+
### Multi-Project Setup
|
|
256
|
+
```bash
|
|
257
|
+
# Initialize with multiple projects
|
|
258
|
+
specweave init --projects backend,frontend,mobile
|
|
259
|
+
|
|
260
|
+
# Tasks automatically split by project keyword detection
|
|
261
|
+
# Each project gets its own user stories and GitHub issues
|
|
262
|
+
```
|
|
263
|
+
|
|
245
264
|
### Brownfield (Existing Project)
|
|
246
265
|
```bash
|
|
247
266
|
# Initialize SpecWeave in existing project
|
|
@@ -255,7 +274,7 @@ specweave init .
|
|
|
255
274
|
/specweave:increment "Add dark mode"
|
|
256
275
|
```
|
|
257
276
|
|
|
258
|
-
**[→ Complete Quickstart Guide](https://spec-weave.com/docs/guides/getting-started/quickstart)**
|
|
277
|
+
**[→ Complete Quickstart Guide](https://spec-weave.com/docs/guides/getting-started/quickstart)** | **[→ Strategic Init Guide](https://spec-weave.com/docs/guides/strategic-init)**
|
|
259
278
|
|
|
260
279
|
---
|
|
261
280
|
|
|
@@ -296,12 +315,23 @@ specweave init .
|
|
|
296
315
|
|
|
297
316
|
## Key Features
|
|
298
317
|
|
|
318
|
+
### Strategic Init - AI-Powered Architecture Planning (NEW!)
|
|
319
|
+
|
|
320
|
+
- 🎯 **Research-Driven Discovery** - Answer 6 phases of questions about your product
|
|
321
|
+
- 🏗️ **Architecture Recommendations** - Tech stack, scaling strategy, cost projections
|
|
322
|
+
- 🔒 **Compliance Detection** - Auto-detects 30+ standards (HIPAA, GDPR, SOC2, etc.)
|
|
323
|
+
- 👥 **Smart Team Planning** - Current and future team structure, hiring roadmap
|
|
324
|
+
- ☁️ **Cloud Credits Discovery** - AWS Activate, Azure Startup, GCP eligibility
|
|
325
|
+
- 📦 **Repository Selection** - Batch select 1-100+ repos with intelligent routing
|
|
326
|
+
|
|
327
|
+
### Production Features
|
|
328
|
+
|
|
299
329
|
- 🤖 **AI-Native Enterprise Sync** - Claude updates JIRA/GitHub/ADO automatically (bidirectional!)
|
|
300
330
|
- 📚 **Living Documentation** - Auto-updates after every task (no manual sync!)
|
|
301
331
|
- 🧪 **Test-Aware Planning** - Embedded tests in BDD format (Given/When/Then)
|
|
302
332
|
- 🎯 **Disciplined Progress** - Can't start increment N+1 until N is DONE
|
|
303
333
|
- ⏸️ **Intelligent Pausing** - Auto-detects blockers, pauses with context, resumes when ready
|
|
304
|
-
- 🔄 **Smart Reopen
|
|
334
|
+
- 🔄 **Smart Reopen** - Report "broken" → Auto-detects what to reopen, respects WIP limits
|
|
305
335
|
- 👥 **Multi-Project Tracking** - Unlimited JIRA/ADO/GitHub repos, intelligent routing
|
|
306
336
|
- 🤖 **AI Agents** - PM, Architect, Quality Judge guide your work
|
|
307
337
|
- 🔧 **CI/CD Auto-Fix** - Workflow failures auto-fixed by Claude (just mention `@claude`)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates that completed tasks have actual code implementation.
|
|
5
|
+
* Prevents marking tasks as complete when:
|
|
6
|
+
* - Files don't exist
|
|
7
|
+
* - Files are empty or have trivial content
|
|
8
|
+
* - Implementation is incomplete
|
|
9
|
+
*
|
|
10
|
+
* Used by ThreeLayerSyncManager to enforce code-completion discipline.
|
|
11
|
+
*
|
|
12
|
+
* @module CodeValidator
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* File validation result
|
|
16
|
+
*/
|
|
17
|
+
export interface FileValidationResult {
|
|
18
|
+
path: string;
|
|
19
|
+
exists: boolean;
|
|
20
|
+
hasContent: boolean;
|
|
21
|
+
lineCount: number;
|
|
22
|
+
reason?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Task validation result
|
|
26
|
+
*/
|
|
27
|
+
export interface TaskValidationResult {
|
|
28
|
+
taskId: string;
|
|
29
|
+
valid: boolean;
|
|
30
|
+
files: FileValidationResult[];
|
|
31
|
+
reason?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* CodeValidator options
|
|
35
|
+
*/
|
|
36
|
+
export interface CodeValidatorOptions {
|
|
37
|
+
minLines?: number;
|
|
38
|
+
minChars?: number;
|
|
39
|
+
projectRoot?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare class CodeValidator {
|
|
42
|
+
private options;
|
|
43
|
+
constructor(options?: CodeValidatorOptions);
|
|
44
|
+
/**
|
|
45
|
+
* Validate that code exists for a task
|
|
46
|
+
*
|
|
47
|
+
* Extracts file paths from task description and verifies:
|
|
48
|
+
* 1. Files exist
|
|
49
|
+
* 2. Files have meaningful content
|
|
50
|
+
* 3. Files are not just stubs
|
|
51
|
+
*
|
|
52
|
+
* @param taskDescription - Task description with file paths
|
|
53
|
+
* @param taskId - Task ID for error messages
|
|
54
|
+
* @returns Validation result
|
|
55
|
+
*/
|
|
56
|
+
validateTask(taskDescription: string, taskId: string): Promise<TaskValidationResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Validate a single file
|
|
59
|
+
*
|
|
60
|
+
* @param filePath - Path to file (relative or absolute)
|
|
61
|
+
* @returns File validation result
|
|
62
|
+
*/
|
|
63
|
+
validateFile(filePath: string): Promise<FileValidationResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Extract file paths from task description
|
|
66
|
+
*
|
|
67
|
+
* Supports multiple formats:
|
|
68
|
+
* - **Files**: src/foo.ts, src/bar.ts
|
|
69
|
+
* - **Files to create**: src/foo.ts
|
|
70
|
+
* - **Files to modify**: src/bar.ts
|
|
71
|
+
* - Inline code blocks with file paths
|
|
72
|
+
*
|
|
73
|
+
* @param description - Task description text
|
|
74
|
+
* @returns Array of file paths
|
|
75
|
+
*/
|
|
76
|
+
extractFilePaths(description: string): string[];
|
|
77
|
+
/**
|
|
78
|
+
* Batch validate multiple tasks
|
|
79
|
+
*
|
|
80
|
+
* @param tasks - Array of {taskId, description}
|
|
81
|
+
* @returns Array of validation results
|
|
82
|
+
*/
|
|
83
|
+
validateTasks(tasks: Array<{
|
|
84
|
+
taskId: string;
|
|
85
|
+
description: string;
|
|
86
|
+
}>): Promise<TaskValidationResult[]>;
|
|
87
|
+
/**
|
|
88
|
+
* Get summary of validation results
|
|
89
|
+
*
|
|
90
|
+
* @param results - Array of task validation results
|
|
91
|
+
* @returns Summary statistics
|
|
92
|
+
*/
|
|
93
|
+
summarizeResults(results: TaskValidationResult[]): {
|
|
94
|
+
total: number;
|
|
95
|
+
valid: number;
|
|
96
|
+
invalid: number;
|
|
97
|
+
noFiles: number;
|
|
98
|
+
invalidTasks: string[];
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=CodeValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeValidator.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/CodeValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAiC;gBAEpC,OAAO,GAAE,oBAAyB;IAQ9C;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsC1F;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4EnE;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAuC/C;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAS3G;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG;QACjD,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB;CAeF"}
|