specweave 0.24.13 → 0.26.2
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 +586 -18
- package/bin/specweave.js +14 -0
- package/dist/plugins/specweave-github/lib/CodeValidator.js +2 -2
- package/dist/plugins/specweave-github/lib/CodeValidator.js.map +1 -1
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js +1 -1
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js +17 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-issue-updater.js +1 -1
- package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.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 +7 -6
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-epic-sync.js +1 -1
- package/dist/plugins/specweave-jira/lib/jira-epic-sync.js.map +1 -1
- package/dist/src/adapters/adapter-base.js +1 -1
- package/dist/src/adapters/adapter-base.js.map +1 -1
- package/dist/src/adapters/adapter-loader.js +1 -1
- package/dist/src/adapters/adapter-loader.js.map +1 -1
- package/dist/src/adapters/agents-md-generator.js +1 -1
- package/dist/src/adapters/agents-md-generator.js.map +1 -1
- package/dist/src/adapters/claude/adapter.js +1 -1
- package/dist/src/adapters/claude/adapter.js.map +1 -1
- package/dist/src/adapters/claude-md-generator.js +1 -1
- package/dist/src/adapters/claude-md-generator.js.map +1 -1
- package/dist/src/adapters/codex/adapter.js +1 -1
- package/dist/src/adapters/codex/adapter.js.map +1 -1
- package/dist/src/adapters/cursor/adapter.js +1 -1
- package/dist/src/adapters/cursor/adapter.js.map +1 -1
- package/dist/src/adapters/doc-generator.js +1 -1
- package/dist/src/adapters/doc-generator.js.map +1 -1
- package/dist/src/adapters/gemini/adapter.js +1 -1
- package/dist/src/adapters/gemini/adapter.js.map +1 -1
- package/dist/src/adapters/generic/adapter.js +1 -1
- package/dist/src/adapters/generic/adapter.js.map +1 -1
- package/dist/src/cli/commands/cicd-monitor.js +1 -1
- package/dist/src/cli/commands/cicd-monitor.js.map +1 -1
- package/dist/src/cli/commands/delete-feature.d.ts +14 -0
- package/dist/src/cli/commands/delete-feature.d.ts.map +1 -0
- package/dist/src/cli/commands/delete-feature.js +87 -0
- package/dist/src/cli/commands/delete-feature.js.map +1 -0
- package/dist/src/cli/commands/detect-specs.js +1 -1
- package/dist/src/cli/commands/detect-specs.js.map +1 -1
- package/dist/src/cli/commands/import-external.js +1 -1
- package/dist/src/cli/commands/import-external.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +39 -49
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/install.js +1 -1
- package/dist/src/cli/commands/install.js.map +1 -1
- package/dist/src/cli/commands/list.js +1 -1
- package/dist/src/cli/commands/list.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.js +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-profiles.js +1 -1
- package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -1
- package/dist/src/cli/commands/plan/agent-invoker.js +1 -1
- package/dist/src/cli/commands/repair-status-desync.js +1 -1
- package/dist/src/cli/commands/repair-status-desync.js.map +1 -1
- package/dist/src/cli/commands/revert-wip-limit.js +1 -1
- package/dist/src/cli/commands/revert-wip-limit.js.map +1 -1
- package/dist/src/cli/commands/sync-specs.js +1 -1
- package/dist/src/cli/commands/sync-specs.js.map +1 -1
- package/dist/src/cli/helpers/init/initial-increment-generator.js +1 -1
- package/dist/src/cli/helpers/init/initial-increment-generator.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +13 -46
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js +12 -31
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/types.d.ts +6 -1
- package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
- package/dist/src/config/import-config.js +1 -1
- package/dist/src/config/import-config.js.map +1 -1
- package/dist/src/config/types.d.ts +203 -1208
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/core/ac-test-validator-cli.js +1 -1
- package/dist/src/core/ac-test-validator-cli.js.map +1 -1
- package/dist/src/core/ac-test-validator.js +1 -1
- package/dist/src/core/ac-test-validator.js.map +1 -1
- package/dist/src/core/brownfield/analyzer.js +1 -1
- package/dist/src/core/brownfield/analyzer.js.map +1 -1
- package/dist/src/core/brownfield/importer.js +1 -1
- package/dist/src/core/brownfield/importer.js.map +1 -1
- package/dist/src/core/cicd/config-loader.js +1 -1
- package/dist/src/core/cicd/config-loader.js.map +1 -1
- package/dist/src/core/cicd/notifier.js +1 -1
- package/dist/src/core/cicd/notifier.js.map +1 -1
- package/dist/src/core/cicd/parent-repo-validator.js +1 -1
- package/dist/src/core/cicd/parent-repo-validator.js.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/config-manager.js +1 -1
- package/dist/src/core/config-manager.js.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/deduplication/command-deduplicator.js +1 -1
- package/dist/src/core/deduplication/command-deduplicator.js.map +1 -1
- package/dist/src/core/feature-deleter/audit-logger.d.ts +30 -0
- package/dist/src/core/feature-deleter/audit-logger.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/audit-logger.js +77 -0
- package/dist/src/core/feature-deleter/audit-logger.js.map +1 -0
- package/dist/src/core/feature-deleter/confirmation-manager.d.ts +39 -0
- package/dist/src/core/feature-deleter/confirmation-manager.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/confirmation-manager.js +89 -0
- package/dist/src/core/feature-deleter/confirmation-manager.js.map +1 -0
- package/dist/src/core/feature-deleter/deletion-transaction.d.ts +51 -0
- package/dist/src/core/feature-deleter/deletion-transaction.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/deletion-transaction.js +185 -0
- package/dist/src/core/feature-deleter/deletion-transaction.js.map +1 -0
- package/dist/src/core/feature-deleter/git-service.d.ts +43 -0
- package/dist/src/core/feature-deleter/git-service.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/git-service.js +127 -0
- package/dist/src/core/feature-deleter/git-service.js.map +1 -0
- package/dist/src/core/feature-deleter/github-service.d.ts +36 -0
- package/dist/src/core/feature-deleter/github-service.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/github-service.js +102 -0
- package/dist/src/core/feature-deleter/github-service.js.map +1 -0
- package/dist/src/core/feature-deleter/index.d.ts +35 -0
- package/dist/src/core/feature-deleter/index.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/index.js +199 -0
- package/dist/src/core/feature-deleter/index.js.map +1 -0
- package/dist/src/core/feature-deleter/types.d.ts +179 -0
- package/dist/src/core/feature-deleter/types.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/types.js +7 -0
- package/dist/src/core/feature-deleter/types.js.map +1 -0
- package/dist/src/core/feature-deleter/validator.d.ts +46 -0
- package/dist/src/core/feature-deleter/validator.d.ts.map +1 -0
- package/dist/src/core/feature-deleter/validator.js +231 -0
- package/dist/src/core/feature-deleter/validator.js.map +1 -0
- package/dist/src/core/hooks/HealthReporter.js +1 -1
- package/dist/src/core/hooks/HealthReporter.js.map +1 -1
- package/dist/src/core/hooks/HookAutoFixer.js +1 -1
- package/dist/src/core/hooks/HookAutoFixer.js.map +1 -1
- package/dist/src/core/hooks/HookScanner.js +1 -1
- package/dist/src/core/hooks/HookScanner.js.map +1 -1
- package/dist/src/core/i18n/language-manager.js +1 -1
- package/dist/src/core/i18n/language-manager.js.map +1 -1
- package/dist/src/core/i18n/locale-manager.js +1 -1
- package/dist/src/core/i18n/locale-manager.js.map +1 -1
- package/dist/src/core/i18n/system-prompt-injector.js +1 -1
- package/dist/src/core/i18n/system-prompt-injector.js.map +1 -1
- package/dist/src/core/increment/ac-status-manager.d.ts.map +1 -1
- package/dist/src/core/increment/ac-status-manager.js +18 -4
- package/dist/src/core/increment/ac-status-manager.js.map +1 -1
- package/dist/src/core/increment/active-increment-manager.js +1 -1
- package/dist/src/core/increment/active-increment-manager.js.map +1 -1
- package/dist/src/core/increment/completion-validator.js +1 -1
- package/dist/src/core/increment/completion-validator.js.map +1 -1
- package/dist/src/core/increment/conflict-resolver.js +1 -1
- package/dist/src/core/increment/conflict-resolver.js.map +1 -1
- package/dist/src/core/increment/desync-detector.js +1 -1
- package/dist/src/core/increment/desync-detector.js.map +1 -1
- package/dist/src/core/increment/discipline-checker.js +1 -1
- package/dist/src/core/increment/discipline-checker.js.map +1 -1
- package/dist/src/core/increment/duplicate-detector.js +1 -1
- package/dist/src/core/increment/duplicate-detector.js.map +1 -1
- package/dist/src/core/increment/increment-archiver.js +1 -1
- package/dist/src/core/increment/increment-archiver.js.map +1 -1
- package/dist/src/core/increment/increment-reopener.js +1 -1
- package/dist/src/core/increment/increment-reopener.js.map +1 -1
- package/dist/src/core/increment/metadata-manager.js +1 -1
- package/dist/src/core/increment/metadata-manager.js.map +1 -1
- package/dist/src/core/increment/metadata-validator.js +1 -1
- package/dist/src/core/increment/metadata-validator.js.map +1 -1
- package/dist/src/core/increment/recent-work-scanner.js +1 -1
- package/dist/src/core/increment/recent-work-scanner.js.map +1 -1
- package/dist/src/core/increment/spec-frontmatter-updater.js +1 -1
- package/dist/src/core/increment/spec-frontmatter-updater.js.map +1 -1
- package/dist/src/core/increment/status-auto-transition.js +1 -1
- package/dist/src/core/increment/status-auto-transition.js.map +1 -1
- package/dist/src/core/increment-status.js +1 -1
- package/dist/src/core/increment-status.js.map +1 -1
- package/dist/src/core/living-docs/content-distributor.js +1 -1
- package/dist/src/core/living-docs/content-distributor.js.map +1 -1
- package/dist/src/core/living-docs/cross-linker.js +1 -1
- package/dist/src/core/living-docs/cross-linker.js.map +1 -1
- package/dist/src/core/living-docs/feature-archiver.js +1 -1
- package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
- package/dist/src/core/living-docs/feature-id-manager.js +1 -1
- package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.d.ts +14 -0
- package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.js +72 -13
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
- package/dist/src/core/living-docs/project-detector.js +1 -1
- package/dist/src/core/living-docs/project-detector.js.map +1 -1
- package/dist/src/core/living-docs/task-project-specific-generator.js +1 -1
- package/dist/src/core/living-docs/task-project-specific-generator.js.map +1 -1
- package/dist/src/core/logging/prompt-logger.js +1 -1
- package/dist/src/core/logging/prompt-logger.js.map +1 -1
- package/dist/src/core/plugin-loader.js +1 -1
- package/dist/src/core/plugin-loader.js.map +1 -1
- package/dist/src/core/project-manager.js +1 -1
- package/dist/src/core/project-manager.js.map +1 -1
- package/dist/src/core/qa/qa-runner.js +1 -1
- package/dist/src/core/qa/qa-runner.js.map +1 -1
- package/dist/src/core/repo-structure/folder-detector.js +1 -1
- package/dist/src/core/repo-structure/folder-detector.js.map +1 -1
- package/dist/src/core/repo-structure/setup-state-manager.js +1 -1
- package/dist/src/core/repo-structure/setup-state-manager.js.map +1 -1
- package/dist/src/core/spec-detector.js +1 -1
- package/dist/src/core/spec-detector.js.map +1 -1
- package/dist/src/core/specs/spec-metadata-manager.js +1 -1
- package/dist/src/core/specs/spec-metadata-manager.js.map +1 -1
- package/dist/src/core/status-line/status-line-updater.js +1 -1
- package/dist/src/core/status-line/status-line-updater.js.map +1 -1
- package/dist/src/core/status-line-validator.js +1 -1
- package/dist/src/core/status-line-validator.js.map +1 -1
- package/dist/src/core/sync/bidirectional-engine.js +1 -1
- package/dist/src/core/sync/bidirectional-engine.js.map +1 -1
- package/dist/src/core/sync/profile-manager.js +1 -1
- package/dist/src/core/sync/profile-manager.js.map +1 -1
- package/dist/src/core/sync/project-context.js +1 -1
- package/dist/src/core/sync/project-context.js.map +1 -1
- package/dist/src/core/sync/sync-event-logger.js +1 -1
- package/dist/src/core/sync/sync-event-logger.js.map +1 -1
- package/dist/src/core/types/config.js +1 -1
- package/dist/src/core/types/config.js.map +1 -1
- package/dist/src/core/us-completion-detector.d.ts +124 -0
- package/dist/src/core/us-completion-detector.d.ts.map +1 -0
- package/dist/src/core/us-completion-detector.js +270 -0
- package/dist/src/core/us-completion-detector.js.map +1 -0
- package/dist/src/core/utils/permission-checker.js +1 -1
- package/dist/src/core/utils/permission-checker.js.map +1 -1
- package/dist/src/core/workflow/autonomous-executor.js +1 -1
- package/dist/src/core/workflow/autonomous-executor.js.map +1 -1
- package/dist/src/core/workflow/backlog-scanner.js +1 -1
- package/dist/src/core/workflow/backlog-scanner.js.map +1 -1
- package/dist/src/core/workflow/cost-estimator.js +1 -1
- package/dist/src/core/workflow/cost-estimator.js.map +1 -1
- package/dist/src/core/workflow/state-manager.js +1 -1
- package/dist/src/core/workflow/state-manager.js.map +1 -1
- package/dist/src/importers/duplicate-detector.js +1 -1
- package/dist/src/importers/duplicate-detector.js.map +1 -1
- package/dist/src/importers/item-converter.js +1 -1
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/init/architecture/types.d.ts +33 -140
- package/dist/src/init/architecture/types.d.ts.map +1 -1
- package/dist/src/init/compliance/types.d.ts +30 -27
- package/dist/src/init/compliance/types.d.ts.map +1 -1
- package/dist/src/init/repo/types.d.ts +11 -34
- package/dist/src/init/repo/types.d.ts.map +1 -1
- package/dist/src/init/research/src/config/types.d.ts +15 -82
- package/dist/src/init/research/src/config/types.d.ts.map +1 -1
- package/dist/src/init/research/types.d.ts +38 -93
- package/dist/src/init/research/types.d.ts.map +1 -1
- package/dist/src/init/team/types.d.ts +4 -42
- package/dist/src/init/team/types.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.js +3 -3
- package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +1 -1
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/dist/src/living-docs/id-registry.js +1 -1
- package/dist/src/living-docs/id-registry.js.map +1 -1
- package/dist/src/sync/external-item-sync-service.js +1 -1
- package/dist/src/sync/external-item-sync-service.js.map +1 -1
- package/dist/src/sync/sync-metadata.js +1 -1
- package/dist/src/sync/sync-metadata.js.map +1 -1
- package/dist/src/utils/agents-md-compiler.js +1 -1
- package/dist/src/utils/agents-md-compiler.js.map +1 -1
- package/dist/src/utils/auto-install.js +1 -1
- package/dist/src/utils/auto-install.js.map +1 -1
- package/dist/src/utils/cost-reporter.js +1 -1
- package/dist/src/utils/cost-reporter.js.map +1 -1
- package/dist/src/utils/docs-preview/config-generator.js +1 -1
- package/dist/src/utils/docs-preview/config-generator.js.map +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.js +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.js.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/sidebar-builder.js +1 -1
- package/dist/src/utils/docs-preview/sidebar-builder.js.map +1 -1
- package/dist/src/utils/env-file-generator.js +1 -1
- package/dist/src/utils/env-file-generator.js.map +1 -1
- package/dist/src/utils/external-resource-validator.js +1 -1
- package/dist/src/utils/external-resource-validator.js.map +1 -1
- package/dist/src/utils/fs-native.d.ts +51 -5
- package/dist/src/utils/fs-native.d.ts.map +1 -1
- package/dist/src/utils/fs-native.js +100 -5
- package/dist/src/utils/fs-native.js.map +1 -1
- package/dist/src/utils/plugin-validator.js +1 -1
- package/dist/src/utils/plugin-validator.js.map +1 -1
- package/dist/src/utils/project-detection.js +1 -1
- package/dist/src/utils/project-detection.js.map +1 -1
- package/dist/src/utils/project-validator.js +1 -1
- package/dist/src/utils/project-validator.js.map +1 -1
- package/dist/src/utils/spec-parser.js +1 -1
- package/dist/src/utils/spec-parser.js.map +1 -1
- package/dist/src/utils/spec-splitter.js +1 -1
- package/dist/src/utils/spec-splitter.js.map +1 -1
- package/dist/src/validators/ac-coverage-validator.js +1 -1
- package/dist/src/validators/ac-coverage-validator.js.map +1 -1
- package/package.json +5 -6
- package/plugins/specweave/agents/code-standards-detective/AGENT.md +47 -0
- package/plugins/specweave/agents/docs-writer/AGENT.md +134 -1
- package/plugins/specweave/agents/increment-quality-judge-v2/AGENT.md +1 -0
- package/plugins/specweave/agents/infrastructure/AGENT.md +48 -1
- package/plugins/specweave/agents/performance/AGENT.md +46 -0
- package/plugins/specweave/agents/pm/AGENT.md +115 -3
- package/plugins/specweave/agents/qa-lead/AGENT.md +40 -1
- package/plugins/specweave/agents/reflective-reviewer/AGENT.md +5 -0
- package/plugins/specweave/agents/security/AGENT.md +45 -0
- package/plugins/specweave/agents/tdd-orchestrator/AGENT.md +128 -1
- package/plugins/specweave/agents/tech-lead/AGENT.md +138 -1
- package/plugins/specweave/agents/translator/AGENT.md +132 -0
- package/plugins/specweave/commands/specweave-sync-progress.md +616 -0
- package/plugins/specweave/hooks/hooks.json +0 -9
- package/plugins/specweave/hooks/post-increment-completion.sh +133 -0
- package/plugins/specweave/hooks/post-metadata-change.sh +28 -23
- package/plugins/specweave/hooks/post-task-completion.sh +7 -0
- package/plugins/specweave/hooks/pre-edit-write-consolidated.sh +44 -7
- package/plugins/specweave/hooks/shared/bulk-operation-detector.sh +167 -0
- package/plugins/specweave/lib/hooks/consolidated-sync.js +19 -2
- package/plugins/specweave/lib/hooks/us-completion-orchestrator.js +135 -0
- package/plugins/specweave/lib/vendor/core/increment/ac-status-manager.js +18 -4
- package/plugins/specweave/lib/vendor/core/increment/ac-status-manager.js.map +1 -1
- package/plugins/specweave/lib/vendor/core/increment/active-increment-manager.js +1 -1
- package/plugins/specweave/lib/vendor/core/increment/active-increment-manager.js.map +1 -1
- package/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js +1 -1
- package/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js.map +1 -1
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +1 -1
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
- package/plugins/specweave/skills/code-reviewer/SKILL.md +1 -1
- package/plugins/specweave/skills/progress-sync/SKILL.md +405 -0
- package/plugins/specweave-ado/lib/ado-project-detector.js +1 -1
- package/plugins/specweave-ado/lib/ado-project-detector.ts +1 -1
- package/plugins/specweave-ado/lib/conflict-resolver.js +1 -1
- package/plugins/specweave-ado/lib/conflict-resolver.ts +1 -1
- package/plugins/specweave-backend/agents/database-optimizer/AGENT.md +1 -1
- package/plugins/specweave-frontend/agents/frontend-architect/AGENT.md +5 -0
- package/plugins/specweave-github/.claude-plugin/plugin.json +1 -15
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +186 -0
- package/plugins/specweave-github/hooks/README.md +34 -25
- package/plugins/specweave-github/lib/CodeValidator.js +1 -1
- package/plugins/specweave-github/lib/CodeValidator.ts +2 -2
- package/plugins/specweave-github/lib/ThreeLayerSyncManager.js +1 -1
- package/plugins/specweave-github/lib/ThreeLayerSyncManager.ts +1 -1
- package/plugins/specweave-github/lib/github-client-v2.js +13 -1
- package/plugins/specweave-github/lib/github-client-v2.ts +17 -1
- package/plugins/specweave-github/lib/github-issue-updater.js +1 -1
- package/plugins/specweave-github/lib/github-issue-updater.ts +1 -1
- package/plugins/specweave-github/lib/github-sync-bidirectional.js +1 -1
- package/plugins/specweave-github/lib/github-sync-bidirectional.ts +1 -1
- package/plugins/specweave-github/lib/github-sync-increment-changes.js +1 -1
- package/plugins/specweave-github/lib/github-sync-increment-changes.ts +1 -1
- package/plugins/specweave-github/lib/user-story-issue-builder.js +4 -4
- package/plugins/specweave-github/lib/user-story-issue-builder.ts +7 -6
- package/plugins/specweave-infrastructure/agents/devops/AGENT.md +48 -1
- package/plugins/specweave-infrastructure/agents/network-engineer/AGENT.md +6 -1
- package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +6 -1
- package/plugins/specweave-infrastructure/agents/performance-engineer/AGENT.md +6 -1
- package/plugins/specweave-infrastructure/agents/sre/AGENT.md +5 -0
- package/plugins/specweave-jira/lib/jira-epic-sync.js +1 -1
- package/plugins/specweave-jira/lib/jira-epic-sync.ts +1 -1
- package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +5 -0
- package/plugins/specweave-kubernetes/agents/kubernetes-architect/AGENT.md +47 -2
- package/plugins/specweave-ml/agents/data-scientist/AGENT.md +1 -1
- package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +5 -0
- package/plugins/specweave-ml/agents/mlops-engineer/AGENT.md +6 -1
- package/plugins/specweave-payments/agents/payment-integration/AGENT.md +1 -1
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +138 -0
- package/plugins/specweave-ado/hooks/hooks.json +0 -15
- package/plugins/specweave-github/hooks/hooks.json +0 -15
- package/plugins/specweave-jira/hooks/hooks.json +0 -15
- package/plugins/specweave-release/hooks/hooks.json +0 -15
|
@@ -0,0 +1,616 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specweave:sync-progress
|
|
3
|
+
description: Comprehensive progress sync - tasks.md → living docs → external tools (GitHub/JIRA/ADO). Updates all systems with latest task completion status.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Sync Progress (Comprehensive Multi-System Sync)
|
|
7
|
+
|
|
8
|
+
You are executing the SpecWeave comprehensive progress synchronization command. This orchestrates the complete flow:
|
|
9
|
+
|
|
10
|
+
**tasks.md (source of truth) → living docs (ACs, user stories) → external tools (GitHub, JIRA, ADO)**
|
|
11
|
+
|
|
12
|
+
This is the **"single button"** to sync all progress across the entire SpecWeave ecosystem.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## STEP 1: Parse Arguments and Detect Active Increment
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Arguments provided: [user's arguments]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Parse the input**:
|
|
23
|
+
- Check for increment ID: `0053`, `0001`, etc., or none (auto-detect from active state)
|
|
24
|
+
- Check for flags: `--dry-run`, `--no-github`, `--no-jira`, `--no-ado`, `--force`
|
|
25
|
+
|
|
26
|
+
**Auto-detect active increment**:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Read active increment from state file
|
|
30
|
+
ACTIVE_STATE=".specweave/state/active-increment.json"
|
|
31
|
+
if [ -f "$ACTIVE_STATE" ]; then
|
|
32
|
+
INCREMENT_ID=$(jq -r '.ids[0]' "$ACTIVE_STATE" 2>/dev/null)
|
|
33
|
+
|
|
34
|
+
if [ "$INCREMENT_ID" != "null" ] && [ -n "$INCREMENT_ID" ]; then
|
|
35
|
+
echo "🔍 Auto-detected active increment: $INCREMENT_ID"
|
|
36
|
+
fi
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# If no increment ID found, prompt user
|
|
40
|
+
if [ -z "$INCREMENT_ID" ]; then
|
|
41
|
+
echo "❌ No active increment found."
|
|
42
|
+
echo "Usage: /specweave:sync-progress <increment-id>"
|
|
43
|
+
echo " or: /specweave:sync-progress (auto-detects active increment)"
|
|
44
|
+
exit 1
|
|
45
|
+
fi
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Validate increment exists**:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
INCREMENT_DIR=".specweave/increments/$INCREMENT_ID"
|
|
52
|
+
if [ ! -d "$INCREMENT_DIR" ]; then
|
|
53
|
+
echo "❌ Increment $INCREMENT_ID not found at $INCREMENT_DIR"
|
|
54
|
+
exit 1
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
echo "✅ Found increment: $INCREMENT_ID"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Output**:
|
|
61
|
+
```
|
|
62
|
+
🔍 Auto-detected active increment: 0053-safe-feature-deletion
|
|
63
|
+
✅ Found increment: 0053-safe-feature-deletion
|
|
64
|
+
|
|
65
|
+
📊 Starting comprehensive progress sync...
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## STEP 2: Sync Tasks → Living Docs (ACs and User Stories)
|
|
71
|
+
|
|
72
|
+
**Purpose**: Update living docs with task completion status
|
|
73
|
+
|
|
74
|
+
### 2.1: Sync Acceptance Criteria (ACs)
|
|
75
|
+
|
|
76
|
+
Use the existing AC sync mechanism (post-task-completion hook logic):
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
echo "📝 Step 1/4: Syncing ACs from tasks.md to spec.md..."
|
|
80
|
+
|
|
81
|
+
# Run AC sync (same logic as post-task-completion.sh hook)
|
|
82
|
+
bash plugins/specweave/hooks/post-task-completion.sh "$INCREMENT_DIR"
|
|
83
|
+
|
|
84
|
+
if [ $? -eq 0 ]; then
|
|
85
|
+
echo " ✅ AC sync complete"
|
|
86
|
+
else
|
|
87
|
+
echo " ⚠️ AC sync had warnings (check logs)"
|
|
88
|
+
fi
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**What this does**:
|
|
92
|
+
- Parses tasks.md to find completed tasks
|
|
93
|
+
- Finds linked ACs (via `**Satisfies ACs**: AC-US1-01, AC-US1-02`)
|
|
94
|
+
- Updates spec.md to mark ACs as complete: `- [ ]` → `- [x]`
|
|
95
|
+
- Updates metadata.json with AC completion count
|
|
96
|
+
|
|
97
|
+
### 2.2: Sync to Living Docs (User Stories)
|
|
98
|
+
|
|
99
|
+
Call the existing `/specweave:sync-specs` command:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
echo "📚 Step 2/4: Syncing increment to living docs..."
|
|
103
|
+
|
|
104
|
+
# Sync increment specs to living docs structure
|
|
105
|
+
npx specweave sync-specs "$INCREMENT_ID"
|
|
106
|
+
|
|
107
|
+
if [ $? -eq 0 ]; then
|
|
108
|
+
echo " ✅ Living docs sync complete"
|
|
109
|
+
else
|
|
110
|
+
echo " ❌ Living docs sync failed"
|
|
111
|
+
exit 1
|
|
112
|
+
fi
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**What this does**:
|
|
116
|
+
- Syncs spec.md → living docs user stories
|
|
117
|
+
- Updates user story completion status
|
|
118
|
+
- Generates/updates feature ID if needed
|
|
119
|
+
- Updates README.md in feature folder
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## STEP 3: Detect External Tool Configuration
|
|
124
|
+
|
|
125
|
+
**Check which external tools are configured**:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
echo "🔧 Step 3/4: Detecting external tool configuration..."
|
|
129
|
+
|
|
130
|
+
CONFIG_FILE=".specweave/config.json"
|
|
131
|
+
EXTERNAL_TOOLS=()
|
|
132
|
+
|
|
133
|
+
# Check GitHub
|
|
134
|
+
if grep -q '"provider":\s*"github"' "$CONFIG_FILE" 2>/dev/null; then
|
|
135
|
+
EXTERNAL_TOOLS+=("github")
|
|
136
|
+
echo " ✅ GitHub integration detected"
|
|
137
|
+
fi
|
|
138
|
+
|
|
139
|
+
# Check JIRA
|
|
140
|
+
if grep -q '"provider":\s*"jira"' "$CONFIG_FILE" 2>/dev/null; then
|
|
141
|
+
EXTERNAL_TOOLS+=("jira")
|
|
142
|
+
echo " ✅ JIRA integration detected"
|
|
143
|
+
fi
|
|
144
|
+
|
|
145
|
+
# Check Azure DevOps
|
|
146
|
+
if grep -q '"provider":\s*"azure-devops"' "$CONFIG_FILE" 2>/dev/null; then
|
|
147
|
+
EXTERNAL_TOOLS+=("ado")
|
|
148
|
+
echo " ✅ Azure DevOps integration detected"
|
|
149
|
+
fi
|
|
150
|
+
|
|
151
|
+
if [ ${#EXTERNAL_TOOLS[@]} -eq 0 ]; then
|
|
152
|
+
echo " ℹ️ No external tools configured (skip external sync)"
|
|
153
|
+
fi
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Output**:
|
|
157
|
+
```
|
|
158
|
+
🔧 Step 3/4: Detecting external tool configuration...
|
|
159
|
+
✅ GitHub integration detected
|
|
160
|
+
ℹ️ No JIRA integration
|
|
161
|
+
ℹ️ No Azure DevOps integration
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## STEP 4: Sync to External Tools
|
|
167
|
+
|
|
168
|
+
**For each detected external tool, sync progress**:
|
|
169
|
+
|
|
170
|
+
### 4.1: Sync to GitHub (if enabled)
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
if [[ " ${EXTERNAL_TOOLS[@]} " =~ " github " ]] && [ "$NO_GITHUB" != "true" ]; then
|
|
174
|
+
echo "🔗 Step 4/4: Syncing to GitHub..."
|
|
175
|
+
|
|
176
|
+
# Run GitHub sync command
|
|
177
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
178
|
+
echo " [DRY-RUN] Would sync to GitHub"
|
|
179
|
+
else
|
|
180
|
+
/specweave-github:sync "$INCREMENT_ID"
|
|
181
|
+
|
|
182
|
+
if [ $? -eq 0 ]; then
|
|
183
|
+
echo " ✅ GitHub sync complete"
|
|
184
|
+
else
|
|
185
|
+
echo " ⚠️ GitHub sync had warnings (check logs)"
|
|
186
|
+
fi
|
|
187
|
+
fi
|
|
188
|
+
else
|
|
189
|
+
echo "🔗 Step 4/4: Skipping GitHub sync (--no-github or not configured)"
|
|
190
|
+
fi
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**What GitHub sync does**:
|
|
194
|
+
- Reads completed user stories from living docs
|
|
195
|
+
- Closes GitHub issues for completed user stories
|
|
196
|
+
- Updates epic issue checklist with task progress
|
|
197
|
+
- Posts completion comments with stats
|
|
198
|
+
- Updates issue labels (in-progress → completed)
|
|
199
|
+
|
|
200
|
+
### 4.2: Sync to JIRA (if enabled)
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
if [[ " ${EXTERNAL_TOOLS[@]} " =~ " jira " ]] && [ "$NO_JIRA" != "true" ]; then
|
|
204
|
+
echo "🔗 Syncing to JIRA..."
|
|
205
|
+
|
|
206
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
207
|
+
echo " [DRY-RUN] Would sync to JIRA"
|
|
208
|
+
else
|
|
209
|
+
/specweave-jira:sync "$INCREMENT_ID"
|
|
210
|
+
|
|
211
|
+
if [ $? -eq 0 ]; then
|
|
212
|
+
echo " ✅ JIRA sync complete"
|
|
213
|
+
else
|
|
214
|
+
echo " ⚠️ JIRA sync had warnings"
|
|
215
|
+
fi
|
|
216
|
+
fi
|
|
217
|
+
fi
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### 4.3: Sync to Azure DevOps (if enabled)
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
if [[ " ${EXTERNAL_TOOLS[@]} " =~ " ado " ]] && [ "$NO_ADO" != "true" ]; then
|
|
224
|
+
echo "🔗 Syncing to Azure DevOps..."
|
|
225
|
+
|
|
226
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
227
|
+
echo " [DRY-RUN] Would sync to ADO"
|
|
228
|
+
else
|
|
229
|
+
/specweave-ado:sync "$INCREMENT_ID"
|
|
230
|
+
|
|
231
|
+
if [ $? -eq 0 ]; then
|
|
232
|
+
echo " ✅ ADO sync complete"
|
|
233
|
+
else
|
|
234
|
+
echo " ⚠️ ADO sync had warnings"
|
|
235
|
+
fi
|
|
236
|
+
fi
|
|
237
|
+
fi
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## STEP 5: Update Status Line Cache
|
|
243
|
+
|
|
244
|
+
**Refresh status line with latest completion data**:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
echo "📊 Updating status line cache..."
|
|
248
|
+
|
|
249
|
+
# Force update status line cache
|
|
250
|
+
/specweave:update-status
|
|
251
|
+
|
|
252
|
+
echo " ✅ Status line updated"
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## STEP 6: Generate Comprehensive Report
|
|
258
|
+
|
|
259
|
+
**Show detailed sync summary**:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
echo ""
|
|
263
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
264
|
+
echo " ✅ PROGRESS SYNC COMPLETE"
|
|
265
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
266
|
+
echo ""
|
|
267
|
+
echo "📦 Increment: $INCREMENT_ID"
|
|
268
|
+
echo ""
|
|
269
|
+
echo "✅ Synced:"
|
|
270
|
+
echo " • Tasks → ACs (spec.md)"
|
|
271
|
+
echo " • Spec → Living docs (user stories)"
|
|
272
|
+
if [[ " ${EXTERNAL_TOOLS[@]} " =~ " github " ]]; then
|
|
273
|
+
echo " • Living docs → GitHub issues"
|
|
274
|
+
fi
|
|
275
|
+
if [[ " ${EXTERNAL_TOOLS[@]} " =~ " jira " ]]; then
|
|
276
|
+
echo " • Living docs → JIRA stories"
|
|
277
|
+
fi
|
|
278
|
+
if [[ " ${EXTERNAL_TOOLS[@]} " =~ " ado " ]]; then
|
|
279
|
+
echo " • Living docs → Azure DevOps work items"
|
|
280
|
+
fi
|
|
281
|
+
echo " • Status line cache"
|
|
282
|
+
echo ""
|
|
283
|
+
|
|
284
|
+
# Show completion stats
|
|
285
|
+
METADATA="$INCREMENT_DIR/metadata.json"
|
|
286
|
+
if [ -f "$METADATA" ]; then
|
|
287
|
+
TOTAL_ACS=$(jq -r '.total_acs // 0' "$METADATA")
|
|
288
|
+
COMPLETED_ACS=$(jq -r '.completed_acs // 0' "$METADATA")
|
|
289
|
+
PERCENTAGE=0
|
|
290
|
+
|
|
291
|
+
if [ "$TOTAL_ACS" -gt 0 ]; then
|
|
292
|
+
PERCENTAGE=$((COMPLETED_ACS * 100 / TOTAL_ACS))
|
|
293
|
+
fi
|
|
294
|
+
|
|
295
|
+
echo "📊 Completion:"
|
|
296
|
+
echo " • ACs: $COMPLETED_ACS/$TOTAL_ACS ($PERCENTAGE%)"
|
|
297
|
+
fi
|
|
298
|
+
|
|
299
|
+
echo ""
|
|
300
|
+
echo "Next steps:"
|
|
301
|
+
echo " • Review status line for updated progress"
|
|
302
|
+
echo " • Check external tools (GitHub/JIRA/ADO) for synced updates"
|
|
303
|
+
echo " • Run /specweave:validate $INCREMENT_ID to validate quality"
|
|
304
|
+
echo " • Run /specweave:done $INCREMENT_ID when ready to close"
|
|
305
|
+
echo ""
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Example Output**:
|
|
309
|
+
|
|
310
|
+
```
|
|
311
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
312
|
+
✅ PROGRESS SYNC COMPLETE
|
|
313
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
314
|
+
|
|
315
|
+
📦 Increment: 0053-safe-feature-deletion
|
|
316
|
+
|
|
317
|
+
✅ Synced:
|
|
318
|
+
• Tasks → ACs (spec.md)
|
|
319
|
+
• Spec → Living docs (user stories)
|
|
320
|
+
• Living docs → GitHub issues
|
|
321
|
+
• Status line cache
|
|
322
|
+
|
|
323
|
+
📊 Completion:
|
|
324
|
+
• ACs: 70/70 (100%)
|
|
325
|
+
|
|
326
|
+
Next steps:
|
|
327
|
+
• Review status line for updated progress
|
|
328
|
+
• Check external tools (GitHub/JIRA/ADO) for synced updates
|
|
329
|
+
• Run /specweave:validate 0053 to validate quality
|
|
330
|
+
• Run /specweave:done 0053 when ready to close
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## STEP 7: Dry-Run Mode (If --dry-run flag)
|
|
336
|
+
|
|
337
|
+
**If dry-run mode is enabled, show what WOULD be synced without executing**:
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
341
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
342
|
+
echo " 🔍 DRY-RUN MODE (No changes made)"
|
|
343
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
344
|
+
echo ""
|
|
345
|
+
echo "📦 Increment: $INCREMENT_ID"
|
|
346
|
+
echo ""
|
|
347
|
+
echo "Would sync:"
|
|
348
|
+
echo " • 37 completed tasks → 70 ACs in spec.md"
|
|
349
|
+
echo " • spec.md → 6 user stories in living docs"
|
|
350
|
+
echo " • Living docs → 6 GitHub issues (would close completed)"
|
|
351
|
+
echo " • Status line cache (would update completion %)"
|
|
352
|
+
echo ""
|
|
353
|
+
echo "Run without --dry-run to execute sync."
|
|
354
|
+
exit 0
|
|
355
|
+
fi
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Error Handling
|
|
361
|
+
|
|
362
|
+
**Graceful error handling at each step**:
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
# If any critical step fails, show error and exit
|
|
366
|
+
handle_error() {
|
|
367
|
+
local step="$1"
|
|
368
|
+
local error_msg="$2"
|
|
369
|
+
|
|
370
|
+
echo "❌ Error in $step: $error_msg"
|
|
371
|
+
echo ""
|
|
372
|
+
echo "Sync aborted. Manual recovery may be needed."
|
|
373
|
+
echo "Check logs for details."
|
|
374
|
+
exit 1
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
# Non-critical errors (external tools) → log warning, continue
|
|
378
|
+
handle_warning() {
|
|
379
|
+
local step="$1"
|
|
380
|
+
local warning_msg="$2"
|
|
381
|
+
|
|
382
|
+
echo "⚠️ Warning in $step: $warning_msg"
|
|
383
|
+
echo " Continuing with sync..."
|
|
384
|
+
}
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Examples**:
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
# Critical error (blocks sync)
|
|
391
|
+
if ! sync_acs; then
|
|
392
|
+
handle_error "AC sync" "Failed to update spec.md"
|
|
393
|
+
fi
|
|
394
|
+
|
|
395
|
+
# Non-critical error (logs warning, continues)
|
|
396
|
+
if ! sync_github; then
|
|
397
|
+
handle_warning "GitHub sync" "Rate limit exceeded, some issues not closed"
|
|
398
|
+
fi
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## Flags
|
|
404
|
+
|
|
405
|
+
**Supported flags**:
|
|
406
|
+
|
|
407
|
+
- `--dry-run`: Preview sync without executing (shows what would be synced)
|
|
408
|
+
- `--no-github`: Skip GitHub sync (even if configured)
|
|
409
|
+
- `--no-jira`: Skip JIRA sync (even if configured)
|
|
410
|
+
- `--no-ado`: Skip Azure DevOps sync (even if configured)
|
|
411
|
+
- `--force`: Force sync even if validation fails (use with caution)
|
|
412
|
+
|
|
413
|
+
**Examples**:
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
# Dry-run mode (preview only)
|
|
417
|
+
/specweave:sync-progress 0053 --dry-run
|
|
418
|
+
|
|
419
|
+
# Skip GitHub sync
|
|
420
|
+
/specweave:sync-progress 0053 --no-github
|
|
421
|
+
|
|
422
|
+
# Skip all external tools
|
|
423
|
+
/specweave:sync-progress 0053 --no-github --no-jira --no-ado
|
|
424
|
+
|
|
425
|
+
# Auto-detect active increment
|
|
426
|
+
/specweave:sync-progress
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## Use Cases
|
|
432
|
+
|
|
433
|
+
### Use Case 1: After Completing Tasks
|
|
434
|
+
|
|
435
|
+
**Scenario**: You've completed 5 tasks and marked them as done in tasks.md. Now you want to sync progress everywhere.
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
# Single command syncs everything
|
|
439
|
+
/specweave:sync-progress
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
**What happens**:
|
|
443
|
+
1. ✅ ACs in spec.md marked complete (based on completed tasks)
|
|
444
|
+
2. ✅ Living docs user stories updated
|
|
445
|
+
3. ✅ GitHub issues closed for completed user stories
|
|
446
|
+
4. ✅ Epic issue checklist updated with task progress
|
|
447
|
+
5. ✅ Status line shows updated completion %
|
|
448
|
+
|
|
449
|
+
### Use Case 2: Before Closing Increment
|
|
450
|
+
|
|
451
|
+
**Scenario**: All tasks complete, ready to close increment. Want to ensure all systems are in sync.
|
|
452
|
+
|
|
453
|
+
```bash
|
|
454
|
+
# Final sync before /specweave:done
|
|
455
|
+
/specweave:sync-progress 0053
|
|
456
|
+
|
|
457
|
+
# Then close increment
|
|
458
|
+
/specweave:done 0053
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Use Case 3: Preview Sync (Dry-Run)
|
|
462
|
+
|
|
463
|
+
**Scenario**: Want to see what will be synced before executing.
|
|
464
|
+
|
|
465
|
+
```bash
|
|
466
|
+
# Preview mode
|
|
467
|
+
/specweave:sync-progress 0053 --dry-run
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
**Output**:
|
|
471
|
+
```
|
|
472
|
+
🔍 DRY-RUN MODE (No changes made)
|
|
473
|
+
|
|
474
|
+
Would sync:
|
|
475
|
+
• 37 completed tasks → 70 ACs in spec.md
|
|
476
|
+
• spec.md → 6 user stories in living docs
|
|
477
|
+
• Living docs → 6 GitHub issues (would close completed)
|
|
478
|
+
• Status line cache (would update completion %)
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
### Use Case 4: Local-Only Sync (No External Tools)
|
|
482
|
+
|
|
483
|
+
**Scenario**: Want to sync tasks → docs but NOT to GitHub/JIRA (offline work).
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
# Skip all external tools
|
|
487
|
+
/specweave:sync-progress 0053 --no-github --no-jira --no-ado
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
---
|
|
491
|
+
|
|
492
|
+
## Architecture
|
|
493
|
+
|
|
494
|
+
**Multi-System Sync Flow**:
|
|
495
|
+
|
|
496
|
+
```
|
|
497
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
498
|
+
│ /specweave:sync-progress │
|
|
499
|
+
│ (Single Orchestrator Command) │
|
|
500
|
+
└────────────────────────┬────────────────────────────────────┘
|
|
501
|
+
│
|
|
502
|
+
┌───────────────┼───────────────┐
|
|
503
|
+
│ │ │
|
|
504
|
+
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
|
|
505
|
+
│ Tasks │ │ Living │ │ External│
|
|
506
|
+
│ → ACs │ │ Docs │ │ Tools │
|
|
507
|
+
│(spec.md)│ │(stories)│ │ (sync) │
|
|
508
|
+
└────┬────┘ └────┬────┘ └────┬────┘
|
|
509
|
+
│ │ │
|
|
510
|
+
│ │ ┌──────┼──────┐
|
|
511
|
+
│ │ │ │ │
|
|
512
|
+
│ │ ┌────▼─┐ ┌─▼──┐ ┌─▼──┐
|
|
513
|
+
│ │ │GitHub│ │JIRA│ │ADO │
|
|
514
|
+
│ │ └──────┘ └────┘ └────┘
|
|
515
|
+
│ │
|
|
516
|
+
┌────▼───────────────▼────┐
|
|
517
|
+
│ Status Line Cache │
|
|
518
|
+
│ (Auto-Update Display) │
|
|
519
|
+
└─────────────────────────┘
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
**Key Design Principles**:
|
|
523
|
+
|
|
524
|
+
1. **Single Command, Multi-System**: One command orchestrates all sync operations
|
|
525
|
+
2. **Graceful Degradation**: External tool failures don't block core sync
|
|
526
|
+
3. **Dry-Run Support**: Preview changes before executing
|
|
527
|
+
4. **Selective Sync**: Flags to skip specific external tools
|
|
528
|
+
5. **Auto-Detection**: Finds active increment automatically
|
|
529
|
+
6. **Comprehensive Reporting**: Shows exactly what was synced
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
## Integration with Existing Commands
|
|
534
|
+
|
|
535
|
+
**How this relates to other sync commands**:
|
|
536
|
+
|
|
537
|
+
| Command | Purpose | Scope |
|
|
538
|
+
|---------|---------|-------|
|
|
539
|
+
| `/specweave:sync-acs` | Sync tasks → ACs (spec.md) | Tasks to spec only |
|
|
540
|
+
| `/specweave:sync-specs` | Sync spec → living docs | Spec to docs only |
|
|
541
|
+
| `/specweave:sync-tasks` | Sync GitHub → tasks | External to tasks |
|
|
542
|
+
| `/specweave-github:sync` | Sync to GitHub | Living docs to GitHub |
|
|
543
|
+
| **`/specweave:sync-progress`** | **Comprehensive multi-system sync** | **Tasks → Docs → External** |
|
|
544
|
+
|
|
545
|
+
**When to use each**:
|
|
546
|
+
|
|
547
|
+
- Use `/specweave:sync-acs` when you only want to update ACs in spec.md
|
|
548
|
+
- Use `/specweave:sync-specs` when you only want to sync to living docs
|
|
549
|
+
- Use `/specweave-github:sync` when you only want to sync to GitHub
|
|
550
|
+
- **Use `/specweave:sync-progress` for complete end-to-end sync** ✅ (Recommended!)
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
## Troubleshooting
|
|
555
|
+
|
|
556
|
+
### Issue: AC sync warnings
|
|
557
|
+
|
|
558
|
+
**Error**:
|
|
559
|
+
```
|
|
560
|
+
⚠️ AC sync had warnings: 5 ACs not found in spec.md
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
**Fix**:
|
|
564
|
+
```bash
|
|
565
|
+
# Embed ACs from living docs into spec.md
|
|
566
|
+
/specweave:embed-acs 0053
|
|
567
|
+
|
|
568
|
+
# Then retry sync
|
|
569
|
+
/specweave:sync-progress 0053
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
### Issue: GitHub sync failed (rate limit)
|
|
573
|
+
|
|
574
|
+
**Error**:
|
|
575
|
+
```
|
|
576
|
+
⚠️ GitHub sync had warnings: Rate limit exceeded
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
**Fix**: GitHub sync is non-critical, increment still synced to docs. Retry later when rate limit resets, or manually close issues.
|
|
580
|
+
|
|
581
|
+
### Issue: No active increment found
|
|
582
|
+
|
|
583
|
+
**Error**:
|
|
584
|
+
```
|
|
585
|
+
❌ No active increment found
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
**Fix**:
|
|
589
|
+
```bash
|
|
590
|
+
# Provide increment ID explicitly
|
|
591
|
+
/specweave:sync-progress 0053
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
---
|
|
595
|
+
|
|
596
|
+
## Next Steps After Sync
|
|
597
|
+
|
|
598
|
+
**After successful sync, typical workflow**:
|
|
599
|
+
|
|
600
|
+
```bash
|
|
601
|
+
# 1. Sync progress (this command)
|
|
602
|
+
/specweave:sync-progress 0053
|
|
603
|
+
|
|
604
|
+
# 2. Validate quality
|
|
605
|
+
/specweave:validate 0053 --quality
|
|
606
|
+
|
|
607
|
+
# 3. Close increment (PM validation)
|
|
608
|
+
/specweave:done 0053
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
**See**:
|
|
614
|
+
- ADR-0032 (Universal Hierarchy Mapping)
|
|
615
|
+
- Increment 0050 (External Tool Import Phase 1b)
|
|
616
|
+
- Increment 0051 (Automatic GitHub Sync)
|
|
@@ -15,15 +15,6 @@
|
|
|
15
15
|
}
|
|
16
16
|
],
|
|
17
17
|
"PostToolUse": [
|
|
18
|
-
{
|
|
19
|
-
"matcher": "TodoWrite",
|
|
20
|
-
"hooks": [
|
|
21
|
-
{
|
|
22
|
-
"type": "command",
|
|
23
|
-
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/post-task-completion.sh"
|
|
24
|
-
}
|
|
25
|
-
]
|
|
26
|
-
},
|
|
27
18
|
{
|
|
28
19
|
"matcher": "Write",
|
|
29
20
|
"matcher_content": "\\.specweave/increments/[0-9]{4}-.+/(spec|plan|tasks)\\.md",
|