specweave 0.21.2 → 0.21.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +232 -5
- 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/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/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 +205 -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 +55 -0
- package/dist/src/core/living-docs/SpecDistributor.d.ts.map +1 -0
- package/dist/src/core/living-docs/SpecDistributor.js +216 -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/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/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/InitFlow.d.ts +37 -0
- package/dist/src/init/InitFlow.d.ts.map +1 -0
- package/dist/src/init/InitFlow.js +209 -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/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 +9 -3
- 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-github/lib/IssueStateManager.js +117 -0
- package/plugins/specweave-github/lib/IssueStateManager.ts +231 -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-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/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
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* SpecWeave Living Docs Auto-Sync
|
|
4
|
-
*
|
|
5
|
-
* Automatically syncs living documentation after task completion.
|
|
6
|
-
*
|
|
7
|
-
* Supports two modes:
|
|
8
|
-
* 1. Simple mode: Copy spec.md to living docs (legacy)
|
|
9
|
-
* 2. Intelligent mode: Parse, classify, and distribute content (v0.18.0+)
|
|
10
|
-
*
|
|
11
|
-
* Usage:
|
|
12
|
-
* node dist/hooks/lib/sync-living-docs.js <incrementId>
|
|
13
|
-
*
|
|
14
|
-
* Example:
|
|
15
|
-
* node dist/hooks/lib/sync-living-docs.js 0006-llm-native-i18n
|
|
16
|
-
*
|
|
17
|
-
* What it does:
|
|
18
|
-
* 1. Checks if sync_living_docs enabled in config
|
|
19
|
-
* 2. Detects sync mode (simple or intelligent)
|
|
20
|
-
* 3. Runs appropriate sync strategy
|
|
21
|
-
* 4. Syncs to external tools (GitHub/Jira/ADO)
|
|
22
|
-
* 5. Logs sync actions
|
|
23
|
-
*
|
|
24
|
-
* @author SpecWeave Team
|
|
25
|
-
* @version 2.0.0
|
|
26
|
-
*/
|
|
27
|
-
import fs from 'fs-extra';
|
|
28
|
-
import path from 'path';
|
|
29
|
-
import { execSync } from 'child_process';
|
|
30
|
-
/**
|
|
31
|
-
* Main function - sync living docs for given increment
|
|
32
|
-
*/
|
|
33
|
-
async function syncLivingDocs(incrementId) {
|
|
34
|
-
try {
|
|
35
|
-
console.log(`\n📚 Checking living docs sync for increment: ${incrementId}`);
|
|
36
|
-
// 1. Load config
|
|
37
|
-
const configPath = path.join(process.cwd(), '.specweave', 'config.json');
|
|
38
|
-
let config = {};
|
|
39
|
-
if (fs.existsSync(configPath)) {
|
|
40
|
-
config = JSON.parse(await fs.readFile(configPath, 'utf-8'));
|
|
41
|
-
}
|
|
42
|
-
// 2. Check if sync enabled
|
|
43
|
-
const syncEnabled = config.hooks?.post_task_completion?.sync_living_docs ?? false;
|
|
44
|
-
if (!syncEnabled) {
|
|
45
|
-
console.log('ℹ️ Living docs sync disabled in config');
|
|
46
|
-
console.log(' To enable: Set hooks.post_task_completion.sync_living_docs = true');
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
console.log('✅ Living docs sync enabled');
|
|
50
|
-
// 3. Determine sync mode (simple or intelligent)
|
|
51
|
-
const intelligentEnabled = config.livingDocs?.intelligent?.enabled ?? false;
|
|
52
|
-
let specCopied = false;
|
|
53
|
-
let changedDocs = [];
|
|
54
|
-
if (intelligentEnabled) {
|
|
55
|
-
// Intelligent mode: Parse, classify, and distribute
|
|
56
|
-
console.log('🧠 Using intelligent sync mode (v0.18.0+)');
|
|
57
|
-
const result = await intelligentSyncLivingDocs(incrementId, config);
|
|
58
|
-
specCopied = result.success;
|
|
59
|
-
changedDocs = result.changedFiles;
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
// Hierarchical distribution mode: Epic + User Stories (v2.1)
|
|
63
|
-
console.log('📊 Using hierarchical distribution mode (v2.1 - Epic + User Stories)');
|
|
64
|
-
const result = await hierarchicalDistribution(incrementId);
|
|
65
|
-
specCopied = result.success;
|
|
66
|
-
changedDocs = result.changedFiles;
|
|
67
|
-
}
|
|
68
|
-
if (changedDocs.length === 0 && !specCopied) {
|
|
69
|
-
console.log('ℹ️ No living docs changed');
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
console.log(`📄 Changed/created ${changedDocs.length} file(s)`);
|
|
73
|
-
// 4. Sync to GitHub if configured
|
|
74
|
-
await syncToGitHub(incrementId, changedDocs);
|
|
75
|
-
console.log('✅ Living docs sync complete\n');
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
console.error('❌ Error syncing living docs:', error);
|
|
79
|
-
// Don't exit with error - this is best-effort
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Intelligent sync using the new architecture (v0.18.0+)
|
|
84
|
-
*
|
|
85
|
-
* NOTE: syncIncrement not yet implemented, fallback to hierarchical distribution
|
|
86
|
-
*/
|
|
87
|
-
async function intelligentSyncLivingDocs(incrementId, config) {
|
|
88
|
-
console.log(' ⚠️ Intelligent sync not yet fully implemented');
|
|
89
|
-
console.log(' Falling back to hierarchical distribution mode...');
|
|
90
|
-
// Fallback to hierarchical distribution
|
|
91
|
-
return await hierarchicalDistribution(incrementId);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Hierarchical distribution using new architecture (v2.1 - Epic + User Stories)
|
|
95
|
-
*
|
|
96
|
-
* Distributes increment spec into hierarchical structure:
|
|
97
|
-
* - Epic file (SPEC-###.md) - High-level summary (50-80 lines)
|
|
98
|
-
* - User story files (us-###.md) - Detailed requirements (80-120 lines each)
|
|
99
|
-
* - Links to tasks.md for implementation details
|
|
100
|
-
*/
|
|
101
|
-
async function hierarchicalDistribution(incrementId) {
|
|
102
|
-
try {
|
|
103
|
-
// Dynamic import to avoid circular dependencies
|
|
104
|
-
const { SpecDistributor } = await import('../../../../src/core/living-docs/index.js');
|
|
105
|
-
console.log(' 📊 Parsing and distributing spec into hierarchical structure...');
|
|
106
|
-
const projectRoot = process.cwd();
|
|
107
|
-
const distributor = new SpecDistributor(projectRoot, {
|
|
108
|
-
overwriteExisting: false,
|
|
109
|
-
createBackups: true,
|
|
110
|
-
});
|
|
111
|
-
const result = await distributor.distribute(incrementId);
|
|
112
|
-
if (!result.success) {
|
|
113
|
-
console.error(` ❌ Distribution failed with errors:`);
|
|
114
|
-
for (const error of result.errors) {
|
|
115
|
-
console.error(` - ${error}`);
|
|
116
|
-
}
|
|
117
|
-
return { success: false, changedFiles: [] };
|
|
118
|
-
}
|
|
119
|
-
// Log summary
|
|
120
|
-
console.log(` ✅ Hierarchical distribution complete:`);
|
|
121
|
-
console.log(` Epic ID: ${result.specId}`);
|
|
122
|
-
console.log(` User Stories: ${result.totalStories}`);
|
|
123
|
-
console.log(` Files created: ${result.totalFiles}`);
|
|
124
|
-
console.log(` Epic: ${path.basename(result.epicPath)}`);
|
|
125
|
-
console.log(` User story files: ${result.userStoryPaths.length}`);
|
|
126
|
-
if (result.warnings.length > 0) {
|
|
127
|
-
console.log(` ⚠️ Warnings:`);
|
|
128
|
-
for (const warning of result.warnings) {
|
|
129
|
-
console.log(` - ${warning}`);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
// Update acceptance criteria status based on completed tasks
|
|
133
|
-
console.log(' 📊 Updating acceptance criteria status from completed tasks...');
|
|
134
|
-
await distributor.updateAcceptanceCriteriaStatus(incrementId);
|
|
135
|
-
// Collect changed file paths
|
|
136
|
-
const changedFiles = [result.epicPath, ...result.userStoryPaths];
|
|
137
|
-
return {
|
|
138
|
-
success: true,
|
|
139
|
-
changedFiles,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
console.error(` ❌ Hierarchical distribution failed: ${error}`);
|
|
144
|
-
console.error(error.stack);
|
|
145
|
-
// Fallback to simple mode
|
|
146
|
-
console.error(' Falling back to simple sync mode...');
|
|
147
|
-
const copied = await copyIncrementSpecToLivingDocs(incrementId);
|
|
148
|
-
return {
|
|
149
|
-
success: copied,
|
|
150
|
-
changedFiles: copied ? [path.join(process.cwd(), '.specweave', 'docs', 'internal', 'specs', `spec-${incrementId}.md`)] : [],
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Extract and merge living docs (v2.0 - NO DUPLICATION!)
|
|
156
|
-
*
|
|
157
|
-
* NEW ARCHITECTURE:
|
|
158
|
-
* - Living docs = Permanent EPIC (GitHub Project, Jira Epic, ADO Feature)
|
|
159
|
-
* - Increment spec = Temporary ITERATION (GitHub Issue, Jira Story, ADO User Story)
|
|
160
|
-
*
|
|
161
|
-
* What this does:
|
|
162
|
-
* 1. Parse increment spec (extract user stories ONLY)
|
|
163
|
-
* 2. Check if living docs spec exists
|
|
164
|
-
* 3. If exists: Merge new user stories (avoid duplicates)
|
|
165
|
-
* 4. If not: Create new living docs spec
|
|
166
|
-
* 5. Generate links to architecture/ADRs (NO duplication!)
|
|
167
|
-
* 6. Update implementation history
|
|
168
|
-
*
|
|
169
|
-
* What this DOESN'T do:
|
|
170
|
-
* - ❌ Copy architecture details (those live in architecture/)
|
|
171
|
-
* - ❌ Copy ADR content (those live in architecture/adr/)
|
|
172
|
-
* - ❌ Copy success metrics (those live in increment reports)
|
|
173
|
-
* - ❌ Copy future enhancements (those live in roadmap)
|
|
174
|
-
*
|
|
175
|
-
* Returns true if living docs updated, false if skipped
|
|
176
|
-
*/
|
|
177
|
-
async function extractAndMergeLivingDocs(incrementId) {
|
|
178
|
-
try {
|
|
179
|
-
// Import parser utilities
|
|
180
|
-
const { parseIncrementSpec, parseLivingDocsSpec, extractSpecId, mergeUserStories, generateRelatedDocsLinks, writeLivingDocsSpec, } = await import('../../../../src/utils/spec-parser.js');
|
|
181
|
-
const projectRoot = process.cwd();
|
|
182
|
-
const incrementSpecPath = path.join(projectRoot, '.specweave', 'increments', incrementId, 'spec.md');
|
|
183
|
-
// Check if increment spec exists
|
|
184
|
-
if (!fs.existsSync(incrementSpecPath)) {
|
|
185
|
-
console.log(`⚠️ Increment spec not found: ${incrementSpecPath}`);
|
|
186
|
-
return false;
|
|
187
|
-
}
|
|
188
|
-
console.log(` 📖 Parsing increment spec: ${incrementId}`);
|
|
189
|
-
// 1. Parse increment spec (extract user stories)
|
|
190
|
-
const incrementSpec = await parseIncrementSpec(incrementSpecPath);
|
|
191
|
-
if (incrementSpec.userStories.length === 0) {
|
|
192
|
-
console.log(`ℹ️ No user stories found in increment spec, skipping sync`);
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
console.log(` ✅ Found ${incrementSpec.userStories.length} user stories in increment`);
|
|
196
|
-
// 2. Determine living docs spec ID
|
|
197
|
-
const specId = incrementSpec.implementsSpec || extractSpecId(incrementId);
|
|
198
|
-
const livingDocsDir = path.join(projectRoot, '.specweave', 'docs', 'internal', 'specs', 'default');
|
|
199
|
-
const livingDocsPath = path.join(livingDocsDir, `${specId}-${incrementId.replace(/^\d+-/, '')}.md`);
|
|
200
|
-
// 3. Check if living docs spec exists
|
|
201
|
-
const livingDocsExists = fs.existsSync(livingDocsPath);
|
|
202
|
-
if (livingDocsExists) {
|
|
203
|
-
console.log(` 📚 Living docs spec exists, merging user stories...`);
|
|
204
|
-
// MERGE MODE: Add new user stories to existing spec
|
|
205
|
-
const livingSpec = await parseLivingDocsSpec(livingDocsPath);
|
|
206
|
-
// Merge user stories (adds new, updates existing)
|
|
207
|
-
const mergedStories = mergeUserStories(livingSpec.userStories, incrementSpec.userStories, incrementId);
|
|
208
|
-
const newStoriesCount = mergedStories.length - livingSpec.userStories.length;
|
|
209
|
-
// Update implementation history
|
|
210
|
-
const existingEntry = livingSpec.implementationHistory.find(e => e.increment === incrementId);
|
|
211
|
-
if (!existingEntry) {
|
|
212
|
-
livingSpec.implementationHistory.push({
|
|
213
|
-
increment: incrementId,
|
|
214
|
-
stories: incrementSpec.userStories.map(s => s.id),
|
|
215
|
-
status: 'complete',
|
|
216
|
-
date: new Date().toISOString().split('T')[0],
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
// Update existing entry
|
|
221
|
-
existingEntry.status = 'complete';
|
|
222
|
-
existingEntry.date = new Date().toISOString().split('T')[0];
|
|
223
|
-
}
|
|
224
|
-
// Update user stories
|
|
225
|
-
livingSpec.userStories = mergedStories;
|
|
226
|
-
// Update last_updated
|
|
227
|
-
livingSpec.lastUpdated = new Date().toISOString().split('T')[0];
|
|
228
|
-
// Write updated spec
|
|
229
|
-
await writeLivingDocsSpec(livingDocsPath, livingSpec);
|
|
230
|
-
console.log(` ✅ Merged ${newStoriesCount} new user stories into living docs`);
|
|
231
|
-
console.log(` ✅ Updated implementation history for ${incrementId}`);
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
console.log(` 📝 Creating new living docs spec: ${specId}`);
|
|
235
|
-
// CREATE MODE: First increment for this spec
|
|
236
|
-
const relatedDocs = generateRelatedDocsLinks(incrementSpec, projectRoot);
|
|
237
|
-
const livingSpec = {
|
|
238
|
-
id: specId,
|
|
239
|
-
title: incrementSpec.title,
|
|
240
|
-
featureArea: extractFeatureArea(incrementSpec.title),
|
|
241
|
-
overview: incrementSpec.overview,
|
|
242
|
-
userStories: incrementSpec.userStories.map(story => ({
|
|
243
|
-
...story,
|
|
244
|
-
implementedIn: incrementId,
|
|
245
|
-
status: 'complete',
|
|
246
|
-
})),
|
|
247
|
-
implementationHistory: [
|
|
248
|
-
{
|
|
249
|
-
increment: incrementId,
|
|
250
|
-
stories: incrementSpec.userStories.map(s => s.id),
|
|
251
|
-
status: 'complete',
|
|
252
|
-
date: new Date().toISOString().split('T')[0],
|
|
253
|
-
},
|
|
254
|
-
],
|
|
255
|
-
relatedDocs,
|
|
256
|
-
externalLinks: {},
|
|
257
|
-
priority: incrementSpec.priority,
|
|
258
|
-
status: 'active',
|
|
259
|
-
created: new Date().toISOString().split('T')[0],
|
|
260
|
-
lastUpdated: new Date().toISOString().split('T')[0],
|
|
261
|
-
};
|
|
262
|
-
// Ensure directory exists
|
|
263
|
-
await fs.ensureDir(livingDocsDir);
|
|
264
|
-
// Write new spec
|
|
265
|
-
await writeLivingDocsSpec(livingDocsPath, livingSpec);
|
|
266
|
-
console.log(` ✅ Created new living docs spec: ${specId}`);
|
|
267
|
-
console.log(` ✅ Added ${incrementSpec.userStories.length} user stories`);
|
|
268
|
-
console.log(` ✅ Generated links to ${relatedDocs.architecture.length} architecture docs`);
|
|
269
|
-
console.log(` ✅ Generated links to ${relatedDocs.adrs.length} ADRs`);
|
|
270
|
-
}
|
|
271
|
-
return true;
|
|
272
|
-
}
|
|
273
|
-
catch (error) {
|
|
274
|
-
console.error(`❌ Error extracting/merging living docs: ${error}`);
|
|
275
|
-
console.error(error.stack);
|
|
276
|
-
return false;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Extract feature area from title
|
|
281
|
-
*/
|
|
282
|
-
function extractFeatureArea(title) {
|
|
283
|
-
// Simple heuristic: Use title as feature area
|
|
284
|
-
// Can be customized later based on keywords
|
|
285
|
-
return title.replace(/^(Increment \d+:\s*)?/, '').trim();
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Copy increment spec to living docs (DEPRECATED - use extractAndMergeLivingDocs instead)
|
|
289
|
-
* Returns true if spec was copied, false if skipped
|
|
290
|
-
*/
|
|
291
|
-
async function copyIncrementSpecToLivingDocs(incrementId) {
|
|
292
|
-
console.warn('⚠️ Using deprecated copyIncrementSpecToLivingDocs (simple mode)');
|
|
293
|
-
console.warn(' Consider enabling intelligent mode to avoid duplication');
|
|
294
|
-
try {
|
|
295
|
-
const incrementSpecPath = path.join(process.cwd(), '.specweave', 'increments', incrementId, 'spec.md');
|
|
296
|
-
const livingDocsPath = path.join(process.cwd(), '.specweave', 'docs', 'internal', 'specs', `spec-${incrementId}.md`);
|
|
297
|
-
// Check if increment spec exists
|
|
298
|
-
if (!fs.existsSync(incrementSpecPath)) {
|
|
299
|
-
console.log(`⚠️ Increment spec not found: ${incrementSpecPath}`);
|
|
300
|
-
return false;
|
|
301
|
-
}
|
|
302
|
-
// Check if living docs spec already exists and is identical
|
|
303
|
-
if (fs.existsSync(livingDocsPath)) {
|
|
304
|
-
const incrementContent = await fs.readFile(incrementSpecPath, 'utf-8');
|
|
305
|
-
const livingDocsContent = await fs.readFile(livingDocsPath, 'utf-8');
|
|
306
|
-
if (incrementContent === livingDocsContent) {
|
|
307
|
-
console.log(`ℹ️ Living docs spec already up-to-date: spec-${incrementId}.md`);
|
|
308
|
-
return false;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
// Ensure target directory exists
|
|
312
|
-
await fs.ensureDir(path.dirname(livingDocsPath));
|
|
313
|
-
// Copy spec to living docs
|
|
314
|
-
await fs.copy(incrementSpecPath, livingDocsPath);
|
|
315
|
-
console.log(`✅ Copied increment spec to living docs: spec-${incrementId}.md`);
|
|
316
|
-
return true;
|
|
317
|
-
}
|
|
318
|
-
catch (error) {
|
|
319
|
-
console.error(`❌ Error copying increment spec: ${error}`);
|
|
320
|
-
return false;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Detect changed documentation files via git diff
|
|
325
|
-
*/
|
|
326
|
-
function detectChangedDocs() {
|
|
327
|
-
try {
|
|
328
|
-
// Get changed files in .specweave/docs/
|
|
329
|
-
const output = execSync('git diff --name-only .specweave/docs/ 2>/dev/null || true', {
|
|
330
|
-
encoding: 'utf-8',
|
|
331
|
-
cwd: process.cwd(),
|
|
332
|
-
}).trim();
|
|
333
|
-
if (!output) {
|
|
334
|
-
return [];
|
|
335
|
-
}
|
|
336
|
-
// Filter to only .md files
|
|
337
|
-
const files = output
|
|
338
|
-
.split('\n')
|
|
339
|
-
.filter((f) => f.endsWith('.md'))
|
|
340
|
-
.filter((f) => f.length > 0);
|
|
341
|
-
return files;
|
|
342
|
-
}
|
|
343
|
-
catch (error) {
|
|
344
|
-
console.warn('⚠️ Could not detect git changes:', error);
|
|
345
|
-
return [];
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* Sync changed docs to GitHub
|
|
350
|
-
*/
|
|
351
|
-
async function syncToGitHub(incrementId, changedDocs) {
|
|
352
|
-
try {
|
|
353
|
-
console.log('\n🔄 Syncing to GitHub...');
|
|
354
|
-
// Dynamic import to avoid circular dependencies
|
|
355
|
-
const { loadIncrementMetadata, detectRepo, collectLivingDocs, updateIssueLivingDocs, postArchitectureComment } = await import('../../../specweave-github/lib/github-issue-updater.js');
|
|
356
|
-
// 1. Load metadata
|
|
357
|
-
const metadata = await loadIncrementMetadata(incrementId);
|
|
358
|
-
if (!metadata?.github?.issue) {
|
|
359
|
-
console.log('ℹ️ No GitHub issue linked, skipping GitHub sync');
|
|
360
|
-
return;
|
|
361
|
-
}
|
|
362
|
-
// 2. Detect repository
|
|
363
|
-
const repoInfo = await detectRepo();
|
|
364
|
-
if (!repoInfo) {
|
|
365
|
-
console.log('⚠️ Could not detect GitHub repository, skipping GitHub sync');
|
|
366
|
-
return;
|
|
367
|
-
}
|
|
368
|
-
const { owner, repo } = repoInfo;
|
|
369
|
-
const issueNumber = metadata.github.issue;
|
|
370
|
-
console.log(` Syncing to ${owner}/${repo}#${issueNumber}`);
|
|
371
|
-
// 3. Collect all living docs
|
|
372
|
-
const livingDocs = await collectLivingDocs(incrementId);
|
|
373
|
-
// 4. Update issue with living docs section
|
|
374
|
-
if (livingDocs.specs.length > 0 || livingDocs.architecture.length > 0 || livingDocs.diagrams.length > 0) {
|
|
375
|
-
await updateIssueLivingDocs(issueNumber, livingDocs, owner, repo);
|
|
376
|
-
}
|
|
377
|
-
// 5. Post comments for newly created architecture docs
|
|
378
|
-
for (const docPath of changedDocs) {
|
|
379
|
-
if (docPath.includes('/architecture/')) {
|
|
380
|
-
await postArchitectureComment(issueNumber, docPath, owner, repo);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
console.log('✅ GitHub sync complete');
|
|
384
|
-
}
|
|
385
|
-
catch (error) {
|
|
386
|
-
console.error('❌ Error syncing to GitHub:', error);
|
|
387
|
-
console.error(' (Non-blocking - continuing...)');
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
// CLI entry point
|
|
391
|
-
const isMainModule = import.meta.url === `file://${process.argv[1]}`;
|
|
392
|
-
if (isMainModule) {
|
|
393
|
-
const incrementId = process.argv[2];
|
|
394
|
-
if (!incrementId) {
|
|
395
|
-
console.error('❌ Usage: sync-living-docs <incrementId>');
|
|
396
|
-
console.error(' Example: sync-living-docs 0006-llm-native-i18n');
|
|
397
|
-
process.exit(1);
|
|
398
|
-
}
|
|
399
|
-
syncLivingDocs(incrementId).catch((error) => {
|
|
400
|
-
console.error('❌ Fatal error:', error);
|
|
401
|
-
// Don't exit with error code - best-effort sync
|
|
402
|
-
});
|
|
403
|
-
}
|
|
404
|
-
export { syncLivingDocs };
|
|
405
|
-
//# sourceMappingURL=sync-living-docs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-living-docs.js","sourceRoot":"","sources":["../../../../../plugins/specweave/lib/hooks/sync-living-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* File Translation CLI Utility
|
|
3
|
-
*
|
|
4
|
-
* Translates a single file from detected source language to target language
|
|
5
|
-
* using the translation utilities and LLM invocation.
|
|
6
|
-
*
|
|
7
|
-
* This script is called from:
|
|
8
|
-
* - Post-increment-planning hook (auto-translate spec.md, plan.md, tasks.md)
|
|
9
|
-
* - Post-task-completion hook (auto-translate living docs)
|
|
10
|
-
* - Manual /specweave:translate command
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
* node translate-file.js <file-path> [--target-lang en] [--preview]
|
|
14
|
-
*
|
|
15
|
-
* @see src/utils/translation.ts
|
|
16
|
-
* @see .specweave/increments/0006-llm-native-i18n/reports/DESIGN-POST-GENERATION-TRANSLATION.md
|
|
17
|
-
*/
|
|
18
|
-
import { type SupportedLanguage } from '../../../../src/utils/translation.js';
|
|
19
|
-
/**
|
|
20
|
-
* CLI options
|
|
21
|
-
*/
|
|
22
|
-
interface CLIOptions {
|
|
23
|
-
filePath: string;
|
|
24
|
-
targetLang: SupportedLanguage;
|
|
25
|
-
preview: boolean;
|
|
26
|
-
verbose: boolean;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Translation result
|
|
30
|
-
*/
|
|
31
|
-
interface FileTranslationResult {
|
|
32
|
-
success: boolean;
|
|
33
|
-
filePath: string;
|
|
34
|
-
sourceLanguage: SupportedLanguage;
|
|
35
|
-
targetLanguage: SupportedLanguage;
|
|
36
|
-
warnings: string[];
|
|
37
|
-
cost: number;
|
|
38
|
-
tokensUsed: number;
|
|
39
|
-
preview?: string;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Main translation function
|
|
43
|
-
*
|
|
44
|
-
* @param options - CLI options
|
|
45
|
-
* @returns Translation result
|
|
46
|
-
*/
|
|
47
|
-
export declare function translateFile(options: CLIOptions): Promise<FileTranslationResult>;
|
|
48
|
-
/**
|
|
49
|
-
* Batch translate multiple files
|
|
50
|
-
*
|
|
51
|
-
* @param filePaths - Array of file paths to translate
|
|
52
|
-
* @param targetLang - Target language
|
|
53
|
-
* @param preview - Preview mode
|
|
54
|
-
* @param verbose - Verbose output
|
|
55
|
-
* @returns Array of translation results
|
|
56
|
-
*/
|
|
57
|
-
export declare function batchTranslateFiles(filePaths: string[], targetLang?: SupportedLanguage, preview?: boolean, verbose?: boolean): Promise<FileTranslationResult[]>;
|
|
58
|
-
export {};
|
|
59
|
-
//# sourceMappingURL=translate-file.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"translate-file.d.ts","sourceRoot":"","sources":["../../../../../plugins/specweave/lib/hooks/translate-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,iBAAiB,CAAC;IAClC,cAAc,EAAE,iBAAiB,CAAC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqHvF;AAyGD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,GAAE,iBAAwB,EACpC,OAAO,GAAE,OAAe,EACxB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA6ClC"}
|