specweave 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +229 -1817
- package/README.md +68 -0
- package/bin/specweave.js +62 -6
- package/dist/locales/de/.gitkeep +0 -0
- package/dist/locales/de/cli.json +108 -0
- package/dist/locales/en/cli.json +287 -0
- package/dist/locales/en/errors.json +7 -0
- package/dist/locales/en/templates.json +6 -0
- package/dist/locales/es/.gitkeep +0 -0
- package/dist/locales/es/cli.json +41 -0
- package/dist/locales/fr/.gitkeep +0 -0
- package/dist/locales/fr/cli.json +108 -0
- package/dist/locales/ja/.gitkeep +0 -0
- package/dist/locales/ja/cli.json +108 -0
- package/dist/locales/ko/.gitkeep +0 -0
- package/dist/locales/ko/cli.json +108 -0
- package/dist/locales/pt/.gitkeep +0 -0
- package/dist/locales/pt/cli.json +108 -0
- package/dist/locales/ru/.gitkeep +0 -0
- package/dist/locales/ru/cli.json +269 -0
- package/dist/locales/zh/.gitkeep +0 -0
- package/dist/locales/zh/cli.json +108 -0
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +1 -1
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +3 -0
- package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +1 -1
- package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts +21 -0
- package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts.map +1 -0
- package/dist/plugins/specweave/lib/hooks/update-ac-status.js +162 -0
- package/dist/plugins/specweave/lib/hooks/update-ac-status.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js +65 -6
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts +25 -0
- package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js +191 -0
- package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/completion-calculator.d.ts +112 -0
- package/dist/plugins/specweave-github/lib/completion-calculator.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/completion-calculator.js +301 -0
- package/dist/plugins/specweave-github/lib/completion-calculator.js.map +1 -0
- package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts +3 -3
- package/dist/plugins/specweave-github/lib/duplicate-detector.js +3 -3
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts +70 -0
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/epic-content-builder.js +258 -0
- package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +14 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js +51 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts +2 -2
- package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-epic-sync.js +20 -5
- package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +87 -0
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/github-feature-sync.js +412 -0
- package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.js +64 -13
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/progress-comment-builder.d.ts +78 -0
- package/dist/plugins/specweave-github/lib/progress-comment-builder.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/progress-comment-builder.js +237 -0
- package/dist/plugins/specweave-github/lib/progress-comment-builder.js.map +1 -0
- package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts +97 -0
- package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/user-story-content-builder.js +301 -0
- package/dist/plugins/specweave-github/lib/user-story-content-builder.js.map +1 -0
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts +83 -0
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -0
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +386 -0
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -0
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts +28 -0
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +1 -0
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +156 -0
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +1 -0
- package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.d.ts +57 -0
- package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.d.ts.map +1 -0
- package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.js +248 -0
- package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.js.map +1 -0
- package/dist/plugins/specweave-kafka/lib/cli/types.d.ts +82 -0
- package/dist/plugins/specweave-kafka/lib/cli/types.d.ts.map +1 -0
- package/dist/plugins/specweave-kafka/lib/cli/types.js +13 -0
- package/dist/plugins/specweave-kafka/lib/cli/types.js.map +1 -0
- package/dist/plugins/specweave-kafka/lib/mcp/detector.d.ts +49 -0
- package/dist/plugins/specweave-kafka/lib/mcp/detector.d.ts.map +1 -0
- package/dist/plugins/specweave-kafka/lib/mcp/detector.js +316 -0
- package/dist/plugins/specweave-kafka/lib/mcp/detector.js.map +1 -0
- package/dist/plugins/specweave-kafka/lib/mcp/types.d.ts +70 -0
- package/dist/plugins/specweave-kafka/lib/mcp/types.d.ts.map +1 -0
- package/dist/plugins/specweave-kafka/lib/mcp/types.js +23 -0
- package/dist/plugins/specweave-kafka/lib/mcp/types.js.map +1 -0
- package/dist/plugins/specweave-kafka/lib/utils/partitioning.d.ts +85 -0
- package/dist/plugins/specweave-kafka/lib/utils/partitioning.d.ts.map +1 -0
- package/dist/plugins/specweave-kafka/lib/utils/partitioning.js +281 -0
- package/dist/plugins/specweave-kafka/lib/utils/partitioning.js.map +1 -0
- package/dist/plugins/specweave-kafka/lib/utils/sizing.d.ts +75 -0
- package/dist/plugins/specweave-kafka/lib/utils/sizing.d.ts.map +1 -0
- package/dist/plugins/specweave-kafka/lib/utils/sizing.js +238 -0
- package/dist/plugins/specweave-kafka/lib/utils/sizing.js.map +1 -0
- package/dist/spec-parser.js +629 -0
- package/dist/src/cli/commands/import-docs.js +4 -4
- package/dist/src/cli/commands/import-docs.js.map +1 -1
- package/dist/src/cli/commands/init-multiproject.d.ts.map +1 -1
- package/dist/src/cli/commands/init-multiproject.js +17 -18
- package/dist/src/cli/commands/init-multiproject.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +107 -3
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.js +8 -4
- package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
- package/dist/src/cli/commands/switch-project.d.ts.map +1 -1
- package/dist/src/cli/commands/switch-project.js +9 -26
- package/dist/src/cli/commands/switch-project.js.map +1 -1
- package/dist/src/cli/commands/sync-spec-content.js +3 -0
- package/dist/src/cli/commands/sync-spec-content.js.map +1 -1
- package/dist/src/core/deduplication/command-deduplicator.d.ts +166 -0
- package/dist/src/core/deduplication/command-deduplicator.d.ts.map +1 -0
- package/dist/src/core/deduplication/command-deduplicator.js +254 -0
- package/dist/src/core/deduplication/command-deduplicator.js.map +1 -0
- package/dist/src/core/increment/active-increment-manager.d.ts +42 -15
- package/dist/src/core/increment/active-increment-manager.d.ts.map +1 -1
- package/dist/src/core/increment/active-increment-manager.js +113 -46
- package/dist/src/core/increment/active-increment-manager.js.map +1 -1
- package/dist/src/core/increment/conflict-resolver.d.ts +40 -0
- package/dist/src/core/increment/conflict-resolver.d.ts.map +1 -0
- package/dist/src/core/increment/conflict-resolver.js +219 -0
- package/dist/src/core/increment/conflict-resolver.js.map +1 -0
- package/dist/src/core/increment/discipline-checker.d.ts.map +1 -1
- package/dist/src/core/increment/discipline-checker.js +7 -1
- package/dist/src/core/increment/discipline-checker.js.map +1 -1
- package/dist/src/core/increment/duplicate-detector.d.ts +52 -0
- package/dist/src/core/increment/duplicate-detector.d.ts.map +1 -0
- package/dist/src/core/increment/duplicate-detector.js +276 -0
- package/dist/src/core/increment/duplicate-detector.js.map +1 -0
- package/dist/src/core/increment/increment-archiver.d.ts +90 -0
- package/dist/src/core/increment/increment-archiver.d.ts.map +1 -0
- package/dist/src/core/increment/increment-archiver.js +368 -0
- package/dist/src/core/increment/increment-archiver.js.map +1 -0
- package/dist/src/core/increment/increment-reopener.d.ts +165 -0
- package/dist/src/core/increment/increment-reopener.d.ts.map +1 -0
- package/dist/src/core/increment/increment-reopener.js +390 -0
- package/dist/src/core/increment/increment-reopener.js.map +1 -0
- package/dist/src/core/increment/metadata-manager.d.ts +26 -1
- package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
- package/dist/src/core/increment/metadata-manager.js +143 -5
- package/dist/src/core/increment/metadata-manager.js.map +1 -1
- package/dist/src/core/increment/recent-work-scanner.d.ts +121 -0
- package/dist/src/core/increment/recent-work-scanner.d.ts.map +1 -0
- package/dist/src/core/increment/recent-work-scanner.js +303 -0
- package/dist/src/core/increment/recent-work-scanner.js.map +1 -0
- package/dist/src/core/increment/types.d.ts +1 -0
- package/dist/src/core/increment/types.d.ts.map +1 -1
- package/dist/src/core/increment-utils.d.ts +112 -0
- package/dist/src/core/increment-utils.d.ts.map +1 -0
- package/dist/src/core/increment-utils.js +210 -0
- package/dist/src/core/increment-utils.js.map +1 -0
- package/dist/src/core/living-docs/ac-project-specific-generator.d.ts +65 -0
- package/dist/src/core/living-docs/ac-project-specific-generator.d.ts.map +1 -0
- package/dist/src/core/living-docs/ac-project-specific-generator.js +175 -0
- package/dist/src/core/living-docs/ac-project-specific-generator.js.map +1 -0
- package/dist/src/core/living-docs/feature-archiver.d.ts +130 -0
- package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -0
- package/dist/src/core/living-docs/feature-archiver.js +549 -0
- package/dist/src/core/living-docs/feature-archiver.js.map +1 -0
- package/dist/src/core/living-docs/feature-id-manager.d.ts +81 -0
- package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -0
- package/dist/src/core/living-docs/feature-id-manager.js +339 -0
- package/dist/src/core/living-docs/feature-id-manager.js.map +1 -0
- package/dist/src/core/living-docs/hierarchy-mapper.d.ts +144 -83
- package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js +488 -270
- package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
- package/dist/src/core/living-docs/index.d.ts +6 -0
- package/dist/src/core/living-docs/index.d.ts.map +1 -1
- package/dist/src/core/living-docs/index.js +6 -0
- package/dist/src/core/living-docs/index.js.map +1 -1
- package/dist/src/core/living-docs/project-detector.d.ts +6 -0
- package/dist/src/core/living-docs/project-detector.d.ts.map +1 -1
- package/dist/src/core/living-docs/project-detector.js +35 -1
- package/dist/src/core/living-docs/project-detector.js.map +1 -1
- package/dist/src/core/living-docs/spec-distributor.d.ts +100 -26
- package/dist/src/core/living-docs/spec-distributor.d.ts.map +1 -1
- package/dist/src/core/living-docs/spec-distributor.js +1275 -258
- package/dist/src/core/living-docs/spec-distributor.js.map +1 -1
- package/dist/src/core/living-docs/task-project-specific-generator.d.ts +109 -0
- package/dist/src/core/living-docs/task-project-specific-generator.d.ts.map +1 -0
- package/dist/src/core/living-docs/task-project-specific-generator.js +221 -0
- package/dist/src/core/living-docs/task-project-specific-generator.js.map +1 -0
- package/dist/src/core/living-docs/types.d.ts +143 -0
- package/dist/src/core/living-docs/types.d.ts.map +1 -1
- package/dist/src/core/project-manager.d.ts +2 -17
- package/dist/src/core/project-manager.d.ts.map +1 -1
- package/dist/src/core/project-manager.js +68 -48
- package/dist/src/core/project-manager.js.map +1 -1
- package/dist/src/core/spec-content-sync.d.ts +1 -1
- package/dist/src/core/spec-content-sync.d.ts.map +1 -1
- package/dist/src/core/sync/enhanced-content-builder.d.ts +32 -54
- package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -1
- package/dist/src/core/sync/enhanced-content-builder.js +142 -138
- package/dist/src/core/sync/enhanced-content-builder.js.map +1 -1
- package/dist/src/core/sync/performance-optimizer.d.ts +153 -0
- package/dist/src/core/sync/performance-optimizer.d.ts.map +1 -0
- package/dist/src/core/sync/performance-optimizer.js +220 -0
- package/dist/src/core/sync/performance-optimizer.js.map +1 -0
- package/dist/src/core/sync/retry-handler.d.ts +98 -0
- package/dist/src/core/sync/retry-handler.d.ts.map +1 -0
- package/dist/src/core/sync/retry-handler.js +196 -0
- package/dist/src/core/sync/retry-handler.js.map +1 -0
- package/dist/src/core/sync/spec-content-sync.d.ts +88 -0
- package/dist/src/core/sync/spec-content-sync.d.ts.map +1 -0
- package/dist/src/core/sync/spec-content-sync.js +5 -0
- package/dist/src/core/sync/spec-content-sync.js.map +1 -0
- package/dist/src/core/sync/types.d.ts +52 -0
- package/dist/src/core/sync/types.d.ts.map +1 -0
- package/dist/src/core/sync/types.js +5 -0
- package/dist/src/core/sync/types.js.map +1 -0
- package/dist/src/core/types/config.d.ts +125 -0
- package/dist/src/core/types/config.d.ts.map +1 -1
- package/dist/src/core/types/config.js +25 -0
- package/dist/src/core/types/config.js.map +1 -1
- package/dist/src/core/types/increment-metadata.d.ts +10 -0
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
- package/dist/src/core/types/increment-metadata.js +10 -1
- package/dist/src/core/types/increment-metadata.js.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.js +4 -8
- package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
- package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-mapper.js +4 -8
- package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +1 -1
- package/plugins/specweave/COMMANDS.md +13 -4
- package/plugins/specweave/agents/pm/AGENT.md +159 -12
- package/plugins/specweave/commands/specweave-abandon.md +22 -20
- package/plugins/specweave/commands/specweave-archive-features.md +121 -0
- package/plugins/specweave/commands/specweave-archive-increments.md +82 -0
- package/plugins/specweave/commands/specweave-archive.md +363 -0
- package/plugins/specweave/commands/specweave-backlog.md +211 -0
- package/plugins/specweave/commands/specweave-fix-duplicates.md +517 -0
- package/plugins/specweave/commands/specweave-increment.md +4 -3
- package/plugins/specweave/commands/specweave-progress.md +176 -27
- package/plugins/specweave/commands/specweave-reopen.md +391 -0
- package/plugins/specweave/commands/specweave-restore-feature.md +90 -0
- package/plugins/specweave/commands/specweave-restore.md +309 -0
- package/plugins/specweave/commands/specweave-resume.md +51 -23
- package/plugins/specweave/commands/specweave-status.md +41 -7
- package/plugins/specweave/commands/specweave-sync-specs.md +425 -0
- package/plugins/specweave/commands/specweave.md +70 -405
- package/plugins/specweave/hooks/hooks.json +4 -0
- package/plugins/specweave/hooks/lib/sync-spec-content.sh +2 -2
- package/plugins/specweave/hooks/post-increment-planning.sh +26 -2
- package/plugins/specweave/hooks/post-task-completion.sh +39 -0
- package/plugins/specweave/hooks/pre-command-deduplication.sh +83 -0
- package/plugins/specweave/hooks/user-prompt-submit.sh +1 -1
- package/plugins/specweave/lib/hooks/sync-living-docs.js +2 -0
- package/plugins/specweave/lib/hooks/sync-living-docs.ts +4 -0
- package/plugins/specweave/lib/hooks/update-ac-status.js +102 -0
- package/plugins/specweave/lib/hooks/update-ac-status.ts +192 -0
- package/plugins/specweave/skills/archive-increments/SKILL.md +198 -0
- package/plugins/specweave/skills/increment-planner/scripts/feature-utils.js +14 -0
- package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +244 -0
- package/plugins/specweave-ado/lib/ado-spec-content-sync.js +49 -5
- package/plugins/specweave-ado/lib/ado-spec-content-sync.ts +72 -6
- package/plugins/specweave-ado/lib/enhanced-ado-sync.js +170 -0
- package/plugins/specweave-confluent/.claude-plugin/plugin.json +23 -0
- package/plugins/specweave-confluent/README.md +375 -0
- package/plugins/specweave-confluent/agents/confluent-architect/AGENT.md +306 -0
- package/plugins/specweave-confluent/skills/confluent-kafka-connect/SKILL.md +453 -0
- package/plugins/specweave-confluent/skills/confluent-ksqldb/SKILL.md +470 -0
- package/plugins/specweave-confluent/skills/confluent-schema-registry/SKILL.md +316 -0
- package/plugins/specweave-github/agents/github-task-splitter/AGENT.md +2 -2
- package/plugins/specweave-github/agents/user-story-updater/AGENT.md +148 -0
- package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +1 -1
- package/plugins/specweave-github/commands/specweave-github-update-user-story.md +156 -0
- package/plugins/specweave-github/hooks/post-task-completion.sh +42 -9
- package/plugins/specweave-github/lib/completion-calculator.js +262 -0
- package/plugins/specweave-github/lib/completion-calculator.ts +434 -0
- package/plugins/specweave-github/lib/duplicate-detector.js +3 -3
- package/plugins/specweave-github/lib/duplicate-detector.ts +4 -4
- package/plugins/specweave-github/lib/epic-content-builder.js +265 -0
- package/plugins/specweave-github/lib/epic-content-builder.ts +376 -0
- package/plugins/specweave-github/lib/github-client-v2.js +49 -0
- package/plugins/specweave-github/lib/github-client-v2.ts +59 -0
- package/plugins/specweave-github/lib/github-epic-sync.js +23 -24
- package/plugins/specweave-github/lib/github-epic-sync.ts +30 -5
- package/plugins/specweave-github/lib/github-feature-sync.js +381 -0
- package/plugins/specweave-github/lib/github-feature-sync.ts +568 -0
- package/plugins/specweave-github/lib/github-spec-content-sync.js +40 -10
- package/plugins/specweave-github/lib/github-spec-content-sync.ts +82 -14
- package/plugins/specweave-github/lib/progress-comment-builder.js +229 -0
- package/plugins/specweave-github/lib/progress-comment-builder.ts +324 -0
- package/plugins/specweave-github/lib/user-story-content-builder.js +299 -0
- package/plugins/specweave-github/lib/user-story-content-builder.ts +413 -0
- package/plugins/specweave-github/lib/user-story-issue-builder.js +344 -0
- package/plugins/specweave-github/lib/user-story-issue-builder.ts +543 -0
- package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +189 -0
- package/plugins/specweave-jira/lib/enhanced-jira-sync.js +134 -0
- package/plugins/specweave-jira/lib/{enhanced-jira-sync.ts.disabled → enhanced-jira-sync.ts} +26 -52
- package/plugins/specweave-kafka/.claude-plugin/plugin.json +26 -0
- package/plugins/specweave-kafka/IMPLEMENTATION-COMPLETE.md +483 -0
- package/plugins/specweave-kafka/README.md +242 -0
- package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +235 -0
- package/plugins/specweave-kafka/agents/kafka-devops/AGENT.md +209 -0
- package/plugins/specweave-kafka/agents/kafka-observability/AGENT.md +266 -0
- package/plugins/specweave-kafka/commands/deploy.md +99 -0
- package/plugins/specweave-kafka/commands/dev-env.md +176 -0
- package/plugins/specweave-kafka/commands/mcp-configure.md +101 -0
- package/plugins/specweave-kafka/commands/monitor-setup.md +96 -0
- package/plugins/specweave-kafka/docker/kafka-local/docker-compose.yml +187 -0
- package/plugins/specweave-kafka/docker/redpanda/docker-compose.yml +199 -0
- package/plugins/specweave-kafka/docker/templates/consumer-nodejs.js +225 -0
- package/plugins/specweave-kafka/docker/templates/consumer-python.py +220 -0
- package/plugins/specweave-kafka/docker/templates/producer-nodejs.js +168 -0
- package/plugins/specweave-kafka/docker/templates/producer-python.py +167 -0
- package/plugins/specweave-kafka/lib/adapters/apache-kafka-adapter.js +438 -0
- package/plugins/specweave-kafka/lib/adapters/apache-kafka-adapter.ts +541 -0
- package/plugins/specweave-kafka/lib/adapters/platform-adapter.js +47 -0
- package/plugins/specweave-kafka/lib/adapters/platform-adapter.ts +343 -0
- package/plugins/specweave-kafka/lib/cli/kcat-wrapper.js +258 -0
- package/plugins/specweave-kafka/lib/cli/kcat-wrapper.ts +298 -0
- package/plugins/specweave-kafka/lib/cli/types.js +10 -0
- package/plugins/specweave-kafka/lib/cli/types.ts +92 -0
- package/plugins/specweave-kafka/lib/connectors/connector-catalog.js +305 -0
- package/plugins/specweave-kafka/lib/connectors/connector-catalog.ts +528 -0
- package/plugins/specweave-kafka/lib/documentation/diagram-generator.js +114 -0
- package/plugins/specweave-kafka/lib/documentation/diagram-generator.ts +195 -0
- package/plugins/specweave-kafka/lib/documentation/exporter.js +210 -0
- package/plugins/specweave-kafka/lib/documentation/exporter.ts +338 -0
- package/plugins/specweave-kafka/lib/documentation/schema-catalog-generator.js +60 -0
- package/plugins/specweave-kafka/lib/documentation/schema-catalog-generator.ts +130 -0
- package/plugins/specweave-kafka/lib/documentation/topology-generator.js +143 -0
- package/plugins/specweave-kafka/lib/documentation/topology-generator.ts +290 -0
- package/plugins/specweave-kafka/lib/mcp/detector.js +298 -0
- package/plugins/specweave-kafka/lib/mcp/detector.ts +352 -0
- package/plugins/specweave-kafka/lib/mcp/types.js +21 -0
- package/plugins/specweave-kafka/lib/mcp/types.ts +77 -0
- package/plugins/specweave-kafka/lib/multi-cluster/cluster-config-manager.js +193 -0
- package/plugins/specweave-kafka/lib/multi-cluster/cluster-config-manager.ts +362 -0
- package/plugins/specweave-kafka/lib/multi-cluster/cluster-switcher.js +188 -0
- package/plugins/specweave-kafka/lib/multi-cluster/cluster-switcher.ts +359 -0
- package/plugins/specweave-kafka/lib/multi-cluster/health-aggregator.js +195 -0
- package/plugins/specweave-kafka/lib/multi-cluster/health-aggregator.ts +380 -0
- package/plugins/specweave-kafka/lib/observability/opentelemetry-kafka.js +209 -0
- package/plugins/specweave-kafka/lib/observability/opentelemetry-kafka.ts +358 -0
- package/plugins/specweave-kafka/lib/patterns/advanced-ksqldb-patterns.js +354 -0
- package/plugins/specweave-kafka/lib/patterns/advanced-ksqldb-patterns.ts +563 -0
- package/plugins/specweave-kafka/lib/patterns/circuit-breaker-resilience.js +259 -0
- package/plugins/specweave-kafka/lib/patterns/circuit-breaker-resilience.ts +516 -0
- package/plugins/specweave-kafka/lib/patterns/dead-letter-queue.js +233 -0
- package/plugins/specweave-kafka/lib/patterns/dead-letter-queue.ts +423 -0
- package/plugins/specweave-kafka/lib/patterns/exactly-once-semantics.js +266 -0
- package/plugins/specweave-kafka/lib/patterns/exactly-once-semantics.ts +445 -0
- package/plugins/specweave-kafka/lib/patterns/flink-kafka-integration.js +312 -0
- package/plugins/specweave-kafka/lib/patterns/flink-kafka-integration.ts +561 -0
- package/plugins/specweave-kafka/lib/patterns/multi-dc-replication.js +289 -0
- package/plugins/specweave-kafka/lib/patterns/multi-dc-replication.ts +607 -0
- package/plugins/specweave-kafka/lib/patterns/rate-limiting-backpressure.js +264 -0
- package/plugins/specweave-kafka/lib/patterns/rate-limiting-backpressure.ts +498 -0
- package/plugins/specweave-kafka/lib/patterns/stream-processing-optimization.js +263 -0
- package/plugins/specweave-kafka/lib/patterns/stream-processing-optimization.ts +549 -0
- package/plugins/specweave-kafka/lib/patterns/tiered-storage-compaction.js +205 -0
- package/plugins/specweave-kafka/lib/patterns/tiered-storage-compaction.ts +399 -0
- package/plugins/specweave-kafka/lib/performance/performance-optimizer.js +249 -0
- package/plugins/specweave-kafka/lib/performance/performance-optimizer.ts +427 -0
- package/plugins/specweave-kafka/lib/security/kafka-security.js +252 -0
- package/plugins/specweave-kafka/lib/security/kafka-security.ts +494 -0
- package/plugins/specweave-kafka/lib/utils/capacity-planner.js +203 -0
- package/plugins/specweave-kafka/lib/utils/capacity-planner.ts +469 -0
- package/plugins/specweave-kafka/lib/utils/config-validator.js +419 -0
- package/plugins/specweave-kafka/lib/utils/config-validator.ts +564 -0
- package/plugins/specweave-kafka/lib/utils/partitioning.js +329 -0
- package/plugins/specweave-kafka/lib/utils/partitioning.ts +473 -0
- package/plugins/specweave-kafka/lib/utils/sizing.js +221 -0
- package/plugins/specweave-kafka/lib/utils/sizing.ts +374 -0
- package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-broker-metrics.json +628 -0
- package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-cluster-overview.json +564 -0
- package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-consumer-lag.json +509 -0
- package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-jvm-metrics.json +674 -0
- package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-topic-metrics.json +578 -0
- package/plugins/specweave-kafka/monitoring/grafana/provisioning/dashboards/kafka.yml +17 -0
- package/plugins/specweave-kafka/monitoring/grafana/provisioning/datasources/prometheus.yml +17 -0
- package/plugins/specweave-kafka/monitoring/prometheus/kafka-alerts.yml +415 -0
- package/plugins/specweave-kafka/monitoring/prometheus/kafka-jmx-exporter.yml +256 -0
- package/plugins/specweave-kafka/package.json +41 -0
- package/plugins/specweave-kafka/skills/kafka-architecture/SKILL.md +647 -0
- package/plugins/specweave-kafka/skills/kafka-cli-tools/SKILL.md +433 -0
- package/plugins/specweave-kafka/skills/kafka-iac-deployment/SKILL.md +449 -0
- package/plugins/specweave-kafka/skills/kafka-kubernetes/SKILL.md +667 -0
- package/plugins/specweave-kafka/skills/kafka-mcp-integration/SKILL.md +273 -0
- package/plugins/specweave-kafka/skills/kafka-observability/SKILL.md +576 -0
- package/plugins/specweave-kafka/templates/config/broker-production.properties +254 -0
- package/plugins/specweave-kafka/templates/config/consumer-low-latency.properties +112 -0
- package/plugins/specweave-kafka/templates/config/producer-high-throughput.properties +120 -0
- package/plugins/specweave-kafka/templates/migration/mirrormaker2-config.properties +234 -0
- package/plugins/specweave-kafka/templates/monitoring/grafana/multi-cluster-dashboard.json +686 -0
- package/plugins/specweave-kafka/terraform/apache-kafka/main.tf +347 -0
- package/plugins/specweave-kafka/terraform/apache-kafka/outputs.tf +107 -0
- package/plugins/specweave-kafka/terraform/apache-kafka/templates/kafka-broker-init.sh.tpl +216 -0
- package/plugins/specweave-kafka/terraform/apache-kafka/variables.tf +156 -0
- package/plugins/specweave-kafka/terraform/aws-msk/main.tf +362 -0
- package/plugins/specweave-kafka/terraform/aws-msk/outputs.tf +93 -0
- package/plugins/specweave-kafka/terraform/aws-msk/templates/server.properties.tpl +32 -0
- package/plugins/specweave-kafka/terraform/aws-msk/variables.tf +235 -0
- package/plugins/specweave-kafka/terraform/azure-event-hubs/main.tf +281 -0
- package/plugins/specweave-kafka/terraform/azure-event-hubs/outputs.tf +118 -0
- package/plugins/specweave-kafka/terraform/azure-event-hubs/variables.tf +148 -0
- package/plugins/specweave-kafka/tsconfig.json +21 -0
- package/plugins/specweave-kafka-streams/.claude-plugin/plugin.json +23 -0
- package/plugins/specweave-kafka-streams/README.md +310 -0
- package/plugins/specweave-kafka-streams/skills/kafka-streams-topology/SKILL.md +539 -0
- package/plugins/specweave-n8n/.claude-plugin/plugin.json +22 -0
- package/plugins/specweave-n8n/README.md +354 -0
- package/plugins/specweave-n8n/skills/n8n-kafka-workflows/SKILL.md +504 -0
- package/plugins/specweave-release/commands/specweave-release-platform.md +1 -1
- package/plugins/specweave-release/hooks/post-task-completion.sh +2 -2
- package/src/templates/AGENTS.md.template +601 -7
- package/src/templates/CLAUDE.md.template +188 -88
- package/plugins/specweave-ado/commands/specweave-ado-sync-spec.md +0 -255
- package/plugins/specweave-github/commands/specweave-github-sync-epic.md +0 -248
- package/plugins/specweave-github/commands/specweave-github-sync-from.md +0 -147
- package/plugins/specweave-github/commands/specweave-github-sync-spec.md +0 -208
- package/plugins/specweave-github/commands/specweave-github-sync-tasks.md +0 -530
- package/plugins/specweave-jira/commands/specweave-jira-sync-epic.md +0 -267
- package/plugins/specweave-jira/commands/specweave-jira-sync-spec.md +0 -240
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specweave:sync-specs
|
|
3
|
+
description: Sync only specs folder to living docs - distributes increment specs into hierarchical user stories without updating architecture, operations, or other docs
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Sync Specs Only
|
|
7
|
+
|
|
8
|
+
You are executing the SpecWeave specs-only sync command. This distributes increment specs specifically into the living docs specs folder using the Universal Hierarchy (Epic → Feature → User Story → Task), without touching other documentation areas.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## STEP 1: Parse Arguments
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Arguments provided: [user's arguments]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Parse the input**:
|
|
19
|
+
- Check for increment ID: `0001`, `0002`, etc.
|
|
20
|
+
- If no increment ID: find the most recent increment
|
|
21
|
+
- Check for options: `--force`, `--dry-run`
|
|
22
|
+
|
|
23
|
+
**Find increment**:
|
|
24
|
+
```bash
|
|
25
|
+
if [[ -z "$INCREMENT_ID" ]]; then
|
|
26
|
+
# Find most recent increment
|
|
27
|
+
INCREMENT_ID=$(ls -1 .specweave/increments/ | grep -E '^[0-9]{4}-' | sort -r | head -1)
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# Verify increment exists
|
|
31
|
+
INCREMENT_PATH=".specweave/increments/$INCREMENT_ID"
|
|
32
|
+
if [[ ! -d "$INCREMENT_PATH" ]]; then
|
|
33
|
+
echo "❌ Error: Increment $INCREMENT_ID not found"
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Output**:
|
|
39
|
+
```
|
|
40
|
+
🎯 Target increment: {increment_id}
|
|
41
|
+
📁 Increment path: .specweave/increments/{increment_id}
|
|
42
|
+
🔄 Mode: Specs-only sync (Universal Hierarchy)
|
|
43
|
+
|
|
44
|
+
Processing...
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## STEP 2: Check Prerequisites
|
|
50
|
+
|
|
51
|
+
### 2.1 Verify Spec File Exists
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
SPEC_FILE="$INCREMENT_PATH/spec.md"
|
|
55
|
+
if [[ ! -f "$SPEC_FILE" ]]; then
|
|
56
|
+
echo "❌ Error: No spec.md found in increment $INCREMENT_ID"
|
|
57
|
+
echo " Cannot sync specs without a spec file"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2.2 Check Tasks File (for bidirectional linking)
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
TASKS_FILE="$INCREMENT_PATH/tasks.md"
|
|
66
|
+
HAS_TASKS=false
|
|
67
|
+
if [[ -f "$TASKS_FILE" ]]; then
|
|
68
|
+
HAS_TASKS=true
|
|
69
|
+
echo "✅ Found tasks.md - will create bidirectional links"
|
|
70
|
+
else
|
|
71
|
+
echo "⚠️ No tasks.md - spec will sync without task links"
|
|
72
|
+
fi
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 2.3 Read Metadata for External Links
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
METADATA_FILE="$INCREMENT_PATH/metadata.json"
|
|
79
|
+
if [[ -f "$METADATA_FILE" ]]; then
|
|
80
|
+
echo "✅ Found metadata.json - will include external links"
|
|
81
|
+
else
|
|
82
|
+
echo "⚠️ No metadata.json - no external tool links available"
|
|
83
|
+
fi
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## STEP 3: Execute Spec Distribution
|
|
89
|
+
|
|
90
|
+
### 3.1 Run SpecDistributor
|
|
91
|
+
|
|
92
|
+
**Execute the distribution using Node.js**:
|
|
93
|
+
|
|
94
|
+
```javascript
|
|
95
|
+
// Direct execution via Node.js
|
|
96
|
+
node -e "
|
|
97
|
+
import('./dist/src/core/living-docs/spec-distributor.js').then(async ({ SpecDistributor }) => {
|
|
98
|
+
const distributor = new SpecDistributor(process.cwd());
|
|
99
|
+
|
|
100
|
+
console.log('🚀 Starting spec distribution...');
|
|
101
|
+
console.log(' 📄 Reading spec.md from increment ${INCREMENT_ID}');
|
|
102
|
+
|
|
103
|
+
try {
|
|
104
|
+
const result = await distributor.distribute('${INCREMENT_ID}');
|
|
105
|
+
|
|
106
|
+
console.log('');
|
|
107
|
+
console.log('✅ Distribution successful!');
|
|
108
|
+
console.log(' 📊 Total stories: ' + result.totalStories);
|
|
109
|
+
console.log(' 📁 Total files created: ' + result.totalFiles);
|
|
110
|
+
console.log(' 🎯 Feature ID: ' + result.specId);
|
|
111
|
+
|
|
112
|
+
if (result.epicPath) {
|
|
113
|
+
console.log(' 📂 Feature path: ' + result.epicPath);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (result.userStoryPaths && result.userStoryPaths.length > 0) {
|
|
117
|
+
console.log(' 📝 User stories created:');
|
|
118
|
+
result.userStoryPaths.forEach(p => console.log(' • ' + p));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (result.warnings && result.warnings.length > 0) {
|
|
122
|
+
console.log('');
|
|
123
|
+
console.log('⚠️ Warnings:');
|
|
124
|
+
result.warnings.forEach(w => console.log(' • ' + w));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Update acceptance criteria status based on completed tasks
|
|
128
|
+
console.log('');
|
|
129
|
+
console.log('📊 Updating acceptance criteria status...');
|
|
130
|
+
await distributor.updateAcceptanceCriteriaStatus('${INCREMENT_ID}');
|
|
131
|
+
|
|
132
|
+
} catch (error) {
|
|
133
|
+
console.error('❌ Distribution failed:', error.message);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## STEP 4: Report Distribution Results
|
|
143
|
+
|
|
144
|
+
### 4.1 Show What Was Created
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
═══════════════════════════════════════════════════════
|
|
148
|
+
✅ SPECS-ONLY SYNC COMPLETE
|
|
149
|
+
═══════════════════════════════════════════════════════
|
|
150
|
+
|
|
151
|
+
Increment: {increment_id}
|
|
152
|
+
Title: {title from spec.md}
|
|
153
|
+
|
|
154
|
+
───────────────────────────────────────────────────────
|
|
155
|
+
📊 UNIVERSAL HIERARCHY CREATED
|
|
156
|
+
───────────────────────────────────────────────────────
|
|
157
|
+
|
|
158
|
+
📁 Epic (Optional):
|
|
159
|
+
{if created}
|
|
160
|
+
Path: .specweave/docs/internal/specs/_epics/{EPIC-ID}/EPIC.md
|
|
161
|
+
Status: Created/Updated
|
|
162
|
+
|
|
163
|
+
📁 Feature (Required):
|
|
164
|
+
Path: .specweave/docs/internal/specs/_features/{FS-ID}/FEATURE.md
|
|
165
|
+
Status: Created/Updated
|
|
166
|
+
Projects: {list of projects}
|
|
167
|
+
|
|
168
|
+
📁 Project Contexts:
|
|
169
|
+
{for each project}
|
|
170
|
+
• {project}: .specweave/docs/internal/specs/{project}/{FS-ID}/README.md
|
|
171
|
+
|
|
172
|
+
📝 User Stories:
|
|
173
|
+
{for each project}
|
|
174
|
+
{project}:
|
|
175
|
+
{for each story}
|
|
176
|
+
• {story-id}: {story-title}
|
|
177
|
+
Path: .specweave/docs/internal/specs/{project}/{FS-ID}/{us-id}.md
|
|
178
|
+
|
|
179
|
+
───────────────────────────────────────────────────────
|
|
180
|
+
🔗 BIDIRECTIONAL LINKING
|
|
181
|
+
───────────────────────────────────────────────────────
|
|
182
|
+
|
|
183
|
+
{if tasks.md exists}
|
|
184
|
+
✅ Task → User Story Links:
|
|
185
|
+
Updated tasks.md with user story references
|
|
186
|
+
Each task now links to its parent user story
|
|
187
|
+
|
|
188
|
+
✅ User Story → Task Links:
|
|
189
|
+
Each user story shows implementing tasks
|
|
190
|
+
Tasks linked back to increment #{increment_id}
|
|
191
|
+
{else}
|
|
192
|
+
⚠️ No tasks.md found - stories created without task links
|
|
193
|
+
{/if}
|
|
194
|
+
|
|
195
|
+
───────────────────────────────────────────────────────
|
|
196
|
+
📂 FILE STRUCTURE
|
|
197
|
+
───────────────────────────────────────────────────────
|
|
198
|
+
|
|
199
|
+
.specweave/docs/internal/specs/
|
|
200
|
+
├── _epics/ {if epic created}
|
|
201
|
+
│ └── {EPIC-ID}/
|
|
202
|
+
│ └── EPIC.md
|
|
203
|
+
├── _features/
|
|
204
|
+
│ └── {FS-ID}/
|
|
205
|
+
│ └── FEATURE.md ← Cross-project feature
|
|
206
|
+
└── {project}/ ← Per-project stories
|
|
207
|
+
└── {FS-ID}/
|
|
208
|
+
├── README.md ← Project context
|
|
209
|
+
├── us-001-{title}.md ← User story 1
|
|
210
|
+
├── us-002-{title}.md ← User story 2
|
|
211
|
+
└── ...
|
|
212
|
+
|
|
213
|
+
───────────────────────────────────────────────────────
|
|
214
|
+
🎯 WHAT THIS SYNC DID
|
|
215
|
+
───────────────────────────────────────────────────────
|
|
216
|
+
|
|
217
|
+
✅ Parsed increment spec.md
|
|
218
|
+
✅ Detected Epic mapping (if applicable)
|
|
219
|
+
✅ Detected Feature mapping (FS-YY-MM-DD pattern)
|
|
220
|
+
✅ Classified content by project
|
|
221
|
+
✅ Generated hierarchical structure
|
|
222
|
+
✅ Created bidirectional links (if tasks.md exists)
|
|
223
|
+
✅ Preserved external tool links (GitHub/Jira/ADO)
|
|
224
|
+
|
|
225
|
+
❌ DID NOT UPDATE:
|
|
226
|
+
• Architecture decisions (ADRs)
|
|
227
|
+
• Operations docs (runbooks, deployment)
|
|
228
|
+
• Delivery docs (CI/CD, testing)
|
|
229
|
+
• Governance docs (security, compliance)
|
|
230
|
+
• Strategy docs (PRDs, roadmaps)
|
|
231
|
+
|
|
232
|
+
This command ONLY syncs specs folder content!
|
|
233
|
+
|
|
234
|
+
═══════════════════════════════════════════════════════
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## STEP 5: Next Steps Guidance
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
🎯 NEXT STEPS
|
|
243
|
+
───────────────────────────────────────────────────────
|
|
244
|
+
|
|
245
|
+
1. Review generated specs:
|
|
246
|
+
cd .specweave/docs/internal/specs/
|
|
247
|
+
ls -la {project}/{FS-ID}/
|
|
248
|
+
|
|
249
|
+
2. Verify bidirectional links (if applicable):
|
|
250
|
+
• Check tasks.md has "User Story:" links
|
|
251
|
+
• Check user stories have "Implementation:" sections
|
|
252
|
+
|
|
253
|
+
3. Sync to external tools (if configured):
|
|
254
|
+
{if GitHub configured}
|
|
255
|
+
• GitHub: /specweave-github:sync-spec
|
|
256
|
+
{/if}
|
|
257
|
+
{if Jira configured}
|
|
258
|
+
• Jira: /specweave-jira:sync-spec
|
|
259
|
+
{/if}
|
|
260
|
+
{if ADO configured}
|
|
261
|
+
• Azure DevOps: /specweave-ado:sync-spec
|
|
262
|
+
{/if}
|
|
263
|
+
|
|
264
|
+
4. Update other docs (if needed):
|
|
265
|
+
• Full sync: /specweave:sync-docs
|
|
266
|
+
• Architecture only: Update ADRs manually
|
|
267
|
+
• Operations only: Update runbooks manually
|
|
268
|
+
|
|
269
|
+
5. Commit changes:
|
|
270
|
+
git add .specweave/docs/internal/specs/
|
|
271
|
+
git commit -m "docs: sync specs from increment {increment_id}"
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## ERROR HANDLING
|
|
277
|
+
|
|
278
|
+
### Error: Increment Not Found
|
|
279
|
+
```
|
|
280
|
+
❌ Error: Increment '{increment_id}' not found
|
|
281
|
+
|
|
282
|
+
Available increments:
|
|
283
|
+
{list .specweave/increments/*/}
|
|
284
|
+
|
|
285
|
+
Usage: /specweave:sync-specs [increment_id] [--dry-run]
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Error: No Spec File
|
|
289
|
+
```
|
|
290
|
+
❌ Error: No spec.md in increment '{increment_id}'
|
|
291
|
+
|
|
292
|
+
The increment must have a spec.md file to sync specs.
|
|
293
|
+
Check: .specweave/increments/{increment_id}/spec.md
|
|
294
|
+
|
|
295
|
+
Cannot proceed with specs sync.
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Error: Distribution Failed
|
|
299
|
+
```
|
|
300
|
+
❌ Error: Failed to distribute specs
|
|
301
|
+
|
|
302
|
+
Reason: {error message}
|
|
303
|
+
|
|
304
|
+
Common causes:
|
|
305
|
+
• Invalid spec.md format
|
|
306
|
+
• Missing user stories
|
|
307
|
+
• Corrupted YAML frontmatter
|
|
308
|
+
|
|
309
|
+
Try: /specweave:validate {increment_id}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## OPTIONS
|
|
315
|
+
|
|
316
|
+
### --dry-run
|
|
317
|
+
Show what would be synced without making changes:
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
/specweave:sync-specs 0031 --dry-run
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Output:
|
|
324
|
+
```
|
|
325
|
+
🔍 DRY RUN MODE - No files will be modified
|
|
326
|
+
|
|
327
|
+
Would create/update:
|
|
328
|
+
• Epic: _epics/EPIC-2025-Q1/EPIC.md
|
|
329
|
+
• Feature: _features/FS-25-11-14/FEATURE.md
|
|
330
|
+
• Project context: backend/FS-25-11-14/README.md
|
|
331
|
+
• User story: backend/FS-25-11-14/us-001-api-sync.md
|
|
332
|
+
• User story: backend/FS-25-11-14/us-002-status-mapping.md
|
|
333
|
+
• Tasks.md: Would add 5 user story links
|
|
334
|
+
|
|
335
|
+
Total: 6 files would be affected
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### --force
|
|
339
|
+
Overwrite existing files without prompting:
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
/specweave:sync-specs 0031 --force
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## EXAMPLES
|
|
348
|
+
|
|
349
|
+
### Example 1: Sync Current Increment
|
|
350
|
+
```
|
|
351
|
+
User: /specweave:sync-specs
|
|
352
|
+
|
|
353
|
+
Output:
|
|
354
|
+
🎯 Target increment: 0031-external-tool-status-sync
|
|
355
|
+
📁 Increment path: .specweave/increments/0031-external-tool-status-sync
|
|
356
|
+
🔄 Mode: Specs-only sync (Universal Hierarchy)
|
|
357
|
+
|
|
358
|
+
Processing...
|
|
359
|
+
✅ Distribution successful!
|
|
360
|
+
📊 Total stories: 7
|
|
361
|
+
📁 Total files created: 10
|
|
362
|
+
🎯 Feature ID: FS-25-11-14-external-tool-status-sync
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### Example 2: Sync Specific Increment
|
|
366
|
+
```
|
|
367
|
+
User: /specweave:sync-specs 0025
|
|
368
|
+
|
|
369
|
+
Output:
|
|
370
|
+
🎯 Target increment: 0025-per-project-resource-config
|
|
371
|
+
📁 Increment path: .specweave/increments/0025-per-project-resource-config
|
|
372
|
+
🔄 Mode: Specs-only sync (Universal Hierarchy)
|
|
373
|
+
|
|
374
|
+
Processing...
|
|
375
|
+
✅ Distribution successful!
|
|
376
|
+
📊 Total stories: 3
|
|
377
|
+
📁 Total files created: 5
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### Example 3: Dry Run
|
|
381
|
+
```
|
|
382
|
+
User: /specweave:sync-specs 0031 --dry-run
|
|
383
|
+
|
|
384
|
+
Output:
|
|
385
|
+
🔍 DRY RUN MODE - No files will be modified
|
|
386
|
+
|
|
387
|
+
Would sync increment: 0031-external-tool-status-sync
|
|
388
|
+
Would create feature: FS-25-11-14-external-tool-status-sync
|
|
389
|
+
Would affect 2 projects: backend, frontend
|
|
390
|
+
Would create 7 user stories
|
|
391
|
+
Would update tasks.md with bidirectional links
|
|
392
|
+
|
|
393
|
+
No changes made (dry run mode)
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## IMPORTANT NOTES
|
|
399
|
+
|
|
400
|
+
1. **Specs-only**: This command ONLY updates `.specweave/docs/internal/specs/` folder
|
|
401
|
+
2. **Universal Hierarchy**: Uses Epic → Feature → User Story → Task structure
|
|
402
|
+
3. **Bidirectional Links**: Automatically creates if tasks.md exists
|
|
403
|
+
4. **Project-aware**: Distributes stories to correct project folders
|
|
404
|
+
5. **Non-destructive**: Creates backups before overwriting (unless --force)
|
|
405
|
+
6. **External Links**: Preserves GitHub/Jira/ADO links from metadata.json
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## WHEN TO USE THIS COMMAND
|
|
410
|
+
|
|
411
|
+
✅ **Use `/specweave:sync-specs` when**:
|
|
412
|
+
- You only want to update user stories and features
|
|
413
|
+
- You've made changes to spec.md and want them in living docs
|
|
414
|
+
- You want to preserve existing architecture/operations docs
|
|
415
|
+
- You need quick spec sync without full documentation update
|
|
416
|
+
|
|
417
|
+
❌ **Use `/specweave:sync-docs` instead when**:
|
|
418
|
+
- You want to update ALL documentation areas
|
|
419
|
+
- You have new architecture decisions (ADRs)
|
|
420
|
+
- You updated operations/deployment docs
|
|
421
|
+
- You need comprehensive documentation sync
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
**You are now ready to execute this specs-only sync command. Follow the steps above precisely.**
|