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
|
@@ -22,8 +22,7 @@ This project uses **SpecWeave** - a specification-first AI development framework
|
|
|
22
22
|
.specweave/increments/0001-user-auth/
|
|
23
23
|
├── spec.md # Core spec files
|
|
24
24
|
├── plan.md
|
|
25
|
-
├── tasks.md
|
|
26
|
-
├── tests.md
|
|
25
|
+
├── tasks.md # Tasks with embedded tests (BDD format)
|
|
27
26
|
├── reports/ # ✅ PUT REPORTS HERE!
|
|
28
27
|
│ ├── SESSION-SUMMARY.md
|
|
29
28
|
│ └── ANALYSIS-REPORT.md
|
|
@@ -47,6 +46,48 @@ This project uses **SpecWeave** - a specification-first AI development framework
|
|
|
47
46
|
|
|
48
47
|
---
|
|
49
48
|
|
|
49
|
+
## 📋 Quick Reference Cards
|
|
50
|
+
|
|
51
|
+
### Daily Workflow
|
|
52
|
+
```
|
|
53
|
+
┌────────────────────────────────────────────────────────────┐
|
|
54
|
+
│ TASK → COMMAND │
|
|
55
|
+
├────────────────────────────────────────────────────────────┤
|
|
56
|
+
│ Plan new feature → /specweave:increment "feature" │
|
|
57
|
+
│ Execute tasks → /specweave:do │
|
|
58
|
+
│ Check progress → /specweave:progress │
|
|
59
|
+
│ Validate quality → /specweave:validate 0001 │
|
|
60
|
+
│ Close increment → /specweave:done 0001 │
|
|
61
|
+
│ Sync to GitHub → /specweave:github:sync │
|
|
62
|
+
│ Sync to Jira → /specweave:jira:sync │
|
|
63
|
+
└────────────────────────────────────────────────────────────┘
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### When to Use Which Command
|
|
67
|
+
| User Says... | Use Command |
|
|
68
|
+
|---------------------------|------------------------------------|
|
|
69
|
+
| "Let's build X" | `/specweave:increment "X"` |
|
|
70
|
+
| "Start implementing" | `/specweave:do` |
|
|
71
|
+
| "What's the status?" | `/specweave:progress` |
|
|
72
|
+
| "Is this ready?" | `/specweave:validate 0001` |
|
|
73
|
+
| "We're done" | `/specweave:done 0001` |
|
|
74
|
+
| "Sync to GitHub" | `/specweave:github:sync` |
|
|
75
|
+
| "Sync to Jira" | `/specweave:jira:sync` |
|
|
76
|
+
|
|
77
|
+
### File Organization Rules
|
|
78
|
+
```
|
|
79
|
+
┌────────────────────────────────────────────────────────────┐
|
|
80
|
+
│ NEVER in Root ↔ ALWAYS in Increment Folder │
|
|
81
|
+
├────────────────────────────────────────────────────────────┤
|
|
82
|
+
│ ❌ analysis.md ↔ ✅ .../0001/reports/analysis.md │
|
|
83
|
+
│ ❌ migration.py ↔ ✅ .../0001/scripts/migration.py │
|
|
84
|
+
│ ❌ execution.log ↔ ✅ .../0001/logs/execution.log │
|
|
85
|
+
│ ❌ session-notes.md ↔ ✅ .../0001/reports/session.md │
|
|
86
|
+
└────────────────────────────────────────────────────────────┘
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
50
91
|
## SpecWeave Workflow (Use These Commands!)
|
|
51
92
|
|
|
52
93
|
**How SpecWeave works**:
|
|
@@ -56,7 +97,7 @@ This project uses **SpecWeave** - a specification-first AI development framework
|
|
|
56
97
|
```
|
|
57
98
|
|
|
58
99
|
**1. Plan Feature** → `/specweave:increment "user authentication"`
|
|
59
|
-
- Creates spec.md (WHAT/WHY), plan.md (HOW), tasks.md
|
|
100
|
+
- Creates spec.md (WHAT/WHY), plan.md (HOW), tasks.md (with embedded tests)
|
|
60
101
|
- PM-led process with architect/security/QA review
|
|
61
102
|
- **Use when**: Starting any new feature or increment
|
|
62
103
|
|
|
@@ -69,9 +110,9 @@ This project uses **SpecWeave** - a specification-first AI development framework
|
|
|
69
110
|
- Shows task completion %, next action
|
|
70
111
|
- **Use when**: Want to see status
|
|
71
112
|
|
|
72
|
-
**4. Validate Quality** → `/specweave:validate 0001` or `/specweave:
|
|
73
|
-
- Rule-based validation (120 checks)
|
|
74
|
-
-
|
|
113
|
+
**4. Validate Quality** → `/specweave:validate 0001` or `/specweave:qa 0001`
|
|
114
|
+
- Rule-based validation (120 checks) or AI quality assessment with risk scoring
|
|
115
|
+
- Validates tasks, tests (embedded in tasks.md), and documentation
|
|
75
116
|
- **Use when**: Verify increment quality before completion
|
|
76
117
|
|
|
77
118
|
**5. Close Increment** → `/specweave:done 0001`
|
|
@@ -128,6 +169,26 @@ ls -1 .specweave/increments/ | grep -E "^[0-9]{4}-" | sort | tail -5
|
|
|
128
169
|
- Azure DevOps - Work item updates automatically
|
|
129
170
|
- **Configurable**: Set `external_tracker_sync: true` in `.specweave/config.json`
|
|
130
171
|
|
|
172
|
+
### 🏷️ GitHub Sync Mapping (Universal Hierarchy)
|
|
173
|
+
|
|
174
|
+
**SpecWeave follows strict hierarchy for GitHub sync:**
|
|
175
|
+
|
|
176
|
+
| SpecWeave Entity | GitHub Mapping | Example |
|
|
177
|
+
|------------------|----------------|---------|
|
|
178
|
+
| **Feature** (FS-XXX) | **Milestone** | `FS-031: External Tool Status Sync` |
|
|
179
|
+
| **User Story** (US-XXX) | **Issue** | `[FS-031][US-002] Task-Level Mapping` |
|
|
180
|
+
| **Task** (T-XXX) | **Checkbox** | `- [ ] T-001: Implement validator` |
|
|
181
|
+
|
|
182
|
+
**Key Principles**:
|
|
183
|
+
- ✅ **Features → Milestones** (container for all User Stories)
|
|
184
|
+
- ✅ **User Stories → Issues** (each US-* file = separate GitHub issue)
|
|
185
|
+
- ✅ **Tasks → Checkboxes** (listed in User Story issue body)
|
|
186
|
+
- ❌ **NEVER create Feature-level issues** (Features are Milestones!)
|
|
187
|
+
|
|
188
|
+
**⛔ DEPRECATED**:
|
|
189
|
+
- ❌ `[INC-XXXX]` - Old increment format (pre-v0.18.0)
|
|
190
|
+
- ❌ `[FS-XXX] Feature Title` as issue - Feature-level issues (pre-v0.19.0, wrong!)
|
|
191
|
+
|
|
131
192
|
3. **Sound Notifications**:
|
|
132
193
|
- Plays sound when tasks complete (helps you know when to review)
|
|
133
194
|
- Platform-specific: Glass.aiff (macOS), system sounds (Linux/Windows)
|
|
@@ -235,7 +296,7 @@ Both approaches work perfectly - use whichever feels more natural!
|
|
|
235
296
|
.specweave/increments/0001-user-auth/ # ⚠️ ID must be unique!
|
|
236
297
|
├── spec.md # WHAT & WHY
|
|
237
298
|
├── plan.md # HOW
|
|
238
|
-
├── tasks.md #
|
|
299
|
+
├── tasks.md # Tasks with embedded test plans (BDD format)
|
|
239
300
|
├── context-manifest.yaml # Selective context loading
|
|
240
301
|
├── logs/ # ✅ Execution logs, errors, AI sessions
|
|
241
302
|
├── scripts/ # ✅ Helper scripts, migrations, setup
|
|
@@ -309,6 +370,26 @@ project-root/
|
|
|
309
370
|
- ✅ **Automatic**: No manual linking needed
|
|
310
371
|
- ✅ **Multi-project aware**: Works with backend, frontend, mobile, etc.
|
|
311
372
|
- ✅ **Always in sync**: Links created during `/specweave:done`
|
|
373
|
+
- ✅ **NEW (v0.18.3+)**: User stories include project-specific checkable task lists
|
|
374
|
+
|
|
375
|
+
### Project-Specific Tasks (v0.18.3+)
|
|
376
|
+
|
|
377
|
+
**NEW**: User stories now have their OWN checkable task lists, not just links!
|
|
378
|
+
|
|
379
|
+
```markdown
|
|
380
|
+
## Tasks
|
|
381
|
+
|
|
382
|
+
- [ ] **T-001**: Setup API endpoint
|
|
383
|
+
- [x] **T-003**: Add DB migration (completed)
|
|
384
|
+
|
|
385
|
+
> **Note**: Tasks are project-specific. See increment tasks.md for full list
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
**Benefits**:
|
|
389
|
+
- **Project Isolation**: Backend tasks ≠ Frontend tasks
|
|
390
|
+
- **GitHub UX**: Checkable task lists in GitHub issues
|
|
391
|
+
- **Traceability**: Each user story explicitly lists its tasks
|
|
392
|
+
- **Completion Tracking**: Status synced from increment tasks.md
|
|
312
393
|
|
|
313
394
|
**For complete details**: Ask me about "bidirectional linking" or check `.specweave/docs/internal/specs/default/README.md`
|
|
314
395
|
|
|
@@ -421,86 +502,37 @@ Config: Auto-detected from project files
|
|
|
421
502
|
|
|
422
503
|
---
|
|
423
504
|
|
|
424
|
-
##
|
|
425
|
-
|
|
426
|
-
**SpecWeave uses Claude Code's native plugin system** for optional capabilities.
|
|
505
|
+
## Plugins
|
|
427
506
|
|
|
428
|
-
|
|
507
|
+
SpecWeave uses Claude Code's native plugin system. All plugins auto-install during `specweave init`.
|
|
429
508
|
|
|
430
|
-
**
|
|
431
|
-
- 9 core skills (increment-planner, tdd-workflow, context-loader, etc.)
|
|
432
|
-
- 3 core agents (PM, Architect, Tech Lead)
|
|
433
|
-
- 7 core commands (`/specweave:increment`, `/specweave:do`, etc.)
|
|
434
|
-
- ~12K tokens (lightweight!)
|
|
435
|
-
|
|
436
|
-
**Plugins** (opt-in based on your stack):
|
|
437
|
-
- Tech stacks: `specweave-frontend`, `specweave-backend`, `specweave-kubernetes`
|
|
438
|
-
- Integrations: `specweave-github`, `specweave-jira`
|
|
439
|
-
- Domains: `specweave-ml`, `specweave-payments`, `specweave-testing`
|
|
440
|
-
|
|
441
|
-
### Using Plugin Commands
|
|
442
|
-
|
|
443
|
-
**Core commands** (always available):
|
|
444
|
-
```bash
|
|
445
|
-
/specweave:increment "feature"
|
|
446
|
-
/specweave:do
|
|
447
|
-
/specweave:progress
|
|
448
|
-
```
|
|
449
|
-
|
|
450
|
-
**Plugin commands** (when plugin installed):
|
|
451
|
-
```bash
|
|
452
|
-
# GitHub plugin:
|
|
453
|
-
/specweave:github:sync # Sync increments to GitHub issues
|
|
454
|
-
/specweave:github:create-issue # Create new issue
|
|
455
|
-
/specweave:github:status # Check sync status
|
|
456
|
-
|
|
457
|
-
# Jira plugin:
|
|
458
|
-
/specweave:jira:sync # Sync to Jira
|
|
459
|
-
/specweave:jira:create-ticket # Create Jira ticket
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
**Plugin agents and skills activate automatically** based on your tech stack and context.
|
|
463
|
-
|
|
464
|
-
### Installing Plugins
|
|
509
|
+
**Enabled plugins**: {ENABLED_PLUGINS}
|
|
465
510
|
|
|
466
|
-
|
|
467
|
-
-
|
|
468
|
-
-
|
|
469
|
-
- Project files (K8s yamls → suggest kubernetes plugin)
|
|
511
|
+
**Plugin commands** (examples):
|
|
512
|
+
- `/specweave:github:sync` - Sync to GitHub
|
|
513
|
+
- `/specweave:jira:sync` - Sync to Jira
|
|
470
514
|
|
|
471
|
-
|
|
515
|
+
Skills/agents activate automatically based on context.
|
|
472
516
|
|
|
473
517
|
---
|
|
474
518
|
|
|
475
|
-
## Documentation
|
|
519
|
+
## Documentation Approach
|
|
476
520
|
|
|
477
521
|
**You chose**: {DOCUMENTATION_APPROACH}
|
|
478
522
|
|
|
479
523
|
{#IF_COMPREHENSIVE}
|
|
480
|
-
|
|
481
|
-
- Create complete specifications before coding (scope-appropriate detail)
|
|
482
|
-
- All ADRs documented in advance
|
|
483
|
-
- Best for: Enterprise, regulated industries, large teams, complex systems
|
|
484
|
-
- Spec size scales with project complexity (10-500+ pages depending on scope)
|
|
524
|
+
**Comprehensive** - Detailed specs upfront, best for enterprise/regulated industries.
|
|
485
525
|
{#ENDIF}
|
|
486
526
|
|
|
487
527
|
{#IF_INCREMENTAL}
|
|
488
|
-
|
|
489
|
-
- Start with overview (10-20 pages)
|
|
490
|
-
- Build documentation as you go
|
|
491
|
-
- Best for: Startups, MVPs, small teams
|
|
528
|
+
**Incremental** - Build docs as you go, best for startups/MVPs.
|
|
492
529
|
{#ENDIF}
|
|
493
530
|
|
|
494
531
|
---
|
|
495
532
|
|
|
496
|
-
##
|
|
533
|
+
## Quick Reference
|
|
497
534
|
|
|
498
|
-
**
|
|
499
|
-
|
|
500
|
-
### Quick Answers
|
|
501
|
-
- **Why specs in two locations?** Living Docs (permanent, complete feature) vs Increment Specs (temporary, current work)
|
|
502
|
-
- **When do I need living docs spec?** Major features (3+ increments), brownfield integration, or external PM tools
|
|
503
|
-
- **Can I delete increment specs?** YES, after completion. Living docs specs are NEVER deleted (permanent)
|
|
535
|
+
**Need help?** [SpecWeave Docs](https://spec-weave.com/docs)
|
|
504
536
|
- **Which spec is source of truth?** Living docs spec (when it exists), otherwise increment spec
|
|
505
537
|
|
|
506
538
|
### Key Topics Covered
|
|
@@ -519,11 +551,13 @@ Plugins are detected and suggested during `specweave init` based on:
|
|
|
519
551
|
## Testing
|
|
520
552
|
|
|
521
553
|
**Four Levels**:
|
|
522
|
-
1. **Specification** (`.specweave/docs/internal/strategy/`) - Acceptance criteria
|
|
523
|
-
2. **Feature** (`.specweave/increments/####/
|
|
554
|
+
1. **Specification** (`.specweave/docs/internal/strategy/`) - Acceptance criteria (AC-IDs)
|
|
555
|
+
2. **Feature** (`.specweave/increments/####/tasks.md`) - Test plans embedded in tasks (BDD format)
|
|
524
556
|
3. **Integration** (`tests/integration/` or `tests/specs/`) - Component/module tests
|
|
525
557
|
4. **Code** (`tests/`) - Automated tests (Unit, Integration, E2E)
|
|
526
558
|
|
|
559
|
+
**Test-Aware Planning**: Tests are embedded in tasks.md using BDD format (Given/When/Then), with AC-ID traceability and realistic coverage targets (80-90%).
|
|
560
|
+
|
|
527
561
|
**Requirements**:
|
|
528
562
|
- E2E tests when UI exists
|
|
529
563
|
- >80% coverage for critical paths
|
|
@@ -531,24 +565,6 @@ Plugins are detected and suggested during `specweave init` based on:
|
|
|
531
565
|
|
|
532
566
|
---
|
|
533
567
|
|
|
534
|
-
## Quick Reference Card
|
|
535
|
-
|
|
536
|
-
### When to Use Each Command
|
|
537
|
-
|
|
538
|
-
| User Says | Use Command | What It Does |
|
|
539
|
-
|-----------|-------------|--------------|
|
|
540
|
-
| "Let's build [feature]" | `/specweave:increment "[feature]"` | Plan new increment |
|
|
541
|
-
| "Start implementing" | `/specweave:do` | Execute tasks (smart resume) |
|
|
542
|
-
| "What's the status?" | `/specweave:progress` | Show task completion % |
|
|
543
|
-
| "Is this ready?" | `/specweave:validate 0001` | Validate increment quality |
|
|
544
|
-
| "We're done" | `/specweave:done 0001` | Close increment |
|
|
545
|
-
|
|
546
|
-
**Plugin Commands** (when installed):
|
|
547
|
-
| "Sync to GitHub" | `/specweave:github:sync` | Export to GitHub issues |
|
|
548
|
-
| "Sync to Jira" | `/specweave:jira:sync` | Export to Jira |
|
|
549
|
-
|
|
550
|
-
---
|
|
551
|
-
|
|
552
568
|
## Key SpecWeave Principles
|
|
553
569
|
|
|
554
570
|
1. **Specification-First**: Always start with `/specweave:increment` to create specs before coding
|
|
@@ -569,6 +585,90 @@ Plugins are detected and suggested during `specweave init` based on:
|
|
|
569
585
|
|
|
570
586
|
---
|
|
571
587
|
|
|
588
|
+
## 🆘 Troubleshooting
|
|
589
|
+
|
|
590
|
+
### Skills Not Activating
|
|
591
|
+
|
|
592
|
+
**Symptoms**: Expected skill didn't load automatically
|
|
593
|
+
|
|
594
|
+
**Solutions**:
|
|
595
|
+
1. Restart Claude Code (skills loaded at startup)
|
|
596
|
+
2. Check keywords: Skills activate based on description keywords
|
|
597
|
+
3. Verify plugin installed: Use `/plugin list --installed`
|
|
598
|
+
4. Manual check: Look in `.claude/skills/SKILLS-INDEX.md` for available skills
|
|
599
|
+
|
|
600
|
+
### Commands Not Found
|
|
601
|
+
|
|
602
|
+
**Symptoms**: `/specweave:increment` doesn't work
|
|
603
|
+
|
|
604
|
+
**Solutions**:
|
|
605
|
+
1. Verify plugin installed: `/plugin list --installed`
|
|
606
|
+
2. Check installed commands: `ls .claude/commands/`
|
|
607
|
+
3. Restart Claude Code
|
|
608
|
+
4. Re-run: `specweave init` if plugins missing
|
|
609
|
+
|
|
610
|
+
### Root Folder Polluted
|
|
611
|
+
|
|
612
|
+
**Symptoms**: `git status` shows `.md` files in project root
|
|
613
|
+
|
|
614
|
+
**Solutions**:
|
|
615
|
+
1. **Immediate fix**: Move files to increment folder
|
|
616
|
+
```bash
|
|
617
|
+
mv SESSION-NOTES.md .specweave/increments/0001/reports/
|
|
618
|
+
mv analysis.md .specweave/increments/0001/reports/
|
|
619
|
+
```
|
|
620
|
+
2. Check `.gitignore` is up to date
|
|
621
|
+
3. Commit cleaned structure:
|
|
622
|
+
```bash
|
|
623
|
+
git add .
|
|
624
|
+
git commit -m "fix: move reports to increment folder"
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
### Increment Numbers Not Unique
|
|
628
|
+
|
|
629
|
+
**Symptoms**: Multiple increments with same number (0001, 0001, etc.)
|
|
630
|
+
|
|
631
|
+
**Solutions**:
|
|
632
|
+
1. Check existing: `ls -1 .specweave/increments/ | grep -E "^[0-9]{4}-"`
|
|
633
|
+
2. Use next available number
|
|
634
|
+
3. If duplicates exist, run: `/specweave:fix-duplicates`
|
|
635
|
+
|
|
636
|
+
### External Tracker Not Syncing
|
|
637
|
+
|
|
638
|
+
**Symptoms**: GitHub/Jira not updating after task completion
|
|
639
|
+
|
|
640
|
+
**Solutions (Claude Code)**:
|
|
641
|
+
1. Check config: `.specweave/config.json` has `external_tracker_sync: true`
|
|
642
|
+
2. Verify hook exists: `ls plugins/specweave-github/hooks/post-task-completion.sh`
|
|
643
|
+
3. Check credentials: `gh auth status` or `jira config list`
|
|
644
|
+
4. Manual sync: `/specweave:github:sync 0001`
|
|
645
|
+
|
|
646
|
+
### Tasks.md Out of Sync
|
|
647
|
+
|
|
648
|
+
**Symptoms**: Progress shows 0/24 but many tasks done
|
|
649
|
+
|
|
650
|
+
**Solutions**:
|
|
651
|
+
1. Auto-sync from reality: `/specweave:sync-tasks`
|
|
652
|
+
2. Manual update: Edit tasks.md, change `[ ]` to `[x]`
|
|
653
|
+
3. Recalculate progress counters
|
|
654
|
+
|
|
655
|
+
### Can't Find Increment
|
|
656
|
+
|
|
657
|
+
**Symptoms**: Don't know which increment is active
|
|
658
|
+
|
|
659
|
+
**Solutions**:
|
|
660
|
+
1. Check status: `/specweave:status` (shows all increments)
|
|
661
|
+
2. Check progress: `/specweave:progress` (shows active increment)
|
|
662
|
+
3. View active: `cat .specweave/state/active-increment.json`
|
|
663
|
+
|
|
664
|
+
### More Help
|
|
665
|
+
|
|
666
|
+
**Documentation**: https://spec-weave.com/docs/troubleshooting
|
|
667
|
+
**GitHub Issues**: https://github.com/anton-abyzov/specweave/issues
|
|
668
|
+
**Discussions**: https://github.com/anton-abyzov/specweave/discussions
|
|
669
|
+
|
|
670
|
+
---
|
|
671
|
+
|
|
572
672
|
## Getting Started
|
|
573
673
|
|
|
574
674
|
**Create your first feature**:
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: specweave-ado-sync-spec
|
|
3
|
-
description: Sync SpecWeave spec to Azure DevOps Feature (bidirectional). Use when syncing .specweave/docs/internal/specs/spec-*.md files with ADO Features for permanent feature tracking.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Sync Spec to Azure DevOps Feature
|
|
7
|
-
|
|
8
|
-
**CORRECT ARCHITECTURE**: This command syncs `.specweave/docs/internal/specs/spec-*.md` files (PERMANENT living docs) to Azure DevOps Features, NOT increments to work items.
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
/specweave-ado:sync-spec <spec-id> [--direction <to-ado|from-ado|bidirectional>]
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## What It Does
|
|
17
|
-
|
|
18
|
-
**Architecture**:
|
|
19
|
-
- **Spec → ADO Feature** (not increment → work item!)
|
|
20
|
-
- **User Story → ADO User Story** (child of feature)
|
|
21
|
-
- **Acceptance Criteria → Checklist** (in user story description)
|
|
22
|
-
|
|
23
|
-
**Sync Process**:
|
|
24
|
-
|
|
25
|
-
1. **Load spec** from `.specweave/docs/internal/specs/spec-{id}.md`
|
|
26
|
-
2. **Load ADO configuration** from `.env` (organization, project, PAT)
|
|
27
|
-
3. **Create or update ADO Feature**:
|
|
28
|
-
- Title: `[SPEC-001] Feature Title`
|
|
29
|
-
- Description: Spec overview + progress (HTML)
|
|
30
|
-
- State: Matches spec status
|
|
31
|
-
4. **Sync user stories as ADO User Stories**:
|
|
32
|
-
- Create user stories for new user stories
|
|
33
|
-
- Update existing user stories
|
|
34
|
-
- Update state based on user story status
|
|
35
|
-
5. **Link spec to feature** (update frontmatter)
|
|
36
|
-
|
|
37
|
-
## Examples
|
|
38
|
-
|
|
39
|
-
### Sync spec to ADO (create or update)
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
/specweave-ado:sync-spec spec-001
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**Output**:
|
|
46
|
-
```
|
|
47
|
-
🔄 Syncing spec spec-001 to ADO Feature...
|
|
48
|
-
Creating new ADO Feature...
|
|
49
|
-
✅ Created ADO Feature #456: https://dev.azure.com/org/project/_workitems/edit/456
|
|
50
|
-
Syncing 35 user stories...
|
|
51
|
-
✅ Created US-001 → User Story #457
|
|
52
|
-
✅ Created US-002 → User Story #458
|
|
53
|
-
...
|
|
54
|
-
✅ Sync complete!
|
|
55
|
-
Created: 35 user stories
|
|
56
|
-
ADO Feature: https://dev.azure.com/org/project/_workitems/edit/456
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Sync FROM ADO to spec (bidirectional)
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
/specweave-ado:sync-spec spec-001 --direction from-ado
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
**Output**:
|
|
66
|
-
```
|
|
67
|
-
🔄 Syncing FROM ADO to spec spec-001...
|
|
68
|
-
Fetching ADO Feature #456...
|
|
69
|
-
⚠️ Detected 3 conflict(s)
|
|
70
|
-
🔄 Resolving: US-002 marked Closed in ADO (ADO wins)
|
|
71
|
-
🔄 Resolving: US-005 marked Active in ADO (ADO wins)
|
|
72
|
-
✅ Sync FROM ADO complete!
|
|
73
|
-
Updated: 3 user stories
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Arguments
|
|
77
|
-
|
|
78
|
-
- `<spec-id>` - Spec ID (e.g., `spec-001` or just `001`)
|
|
79
|
-
- `--direction <mode>` - Sync direction (default: `to-ado`)
|
|
80
|
-
- `to-ado` - Push local spec to ADO
|
|
81
|
-
- `from-ado` - Pull ADO state to spec
|
|
82
|
-
- `bidirectional` - Sync both ways (conflict resolution)
|
|
83
|
-
|
|
84
|
-
## Configuration
|
|
85
|
-
|
|
86
|
-
**Required `.env` variables**:
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
# Azure DevOps Configuration
|
|
90
|
-
ADO_ORGANIZATION=mycompany
|
|
91
|
-
ADO_PROJECT=MyProject
|
|
92
|
-
ADO_PERSONAL_ACCESS_TOKEN=your_pat_token_here
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
**How to get Personal Access Token (PAT)**:
|
|
96
|
-
1. Go to https://dev.azure.com/{organization}/_usersSettings/tokens
|
|
97
|
-
2. Click "New Token"
|
|
98
|
-
3. Set scopes:
|
|
99
|
-
- Work Items: Read, Write, & Manage
|
|
100
|
-
- Project: Read
|
|
101
|
-
4. Copy token to `.env`
|
|
102
|
-
|
|
103
|
-
## Conflict Resolution
|
|
104
|
-
|
|
105
|
-
When syncing FROM ADO, conflicts are resolved as follows:
|
|
106
|
-
|
|
107
|
-
**ADO wins** (default):
|
|
108
|
-
- User story state changes → update spec
|
|
109
|
-
- Acceptance criteria status → update spec
|
|
110
|
-
- Work item closure → mark user story done
|
|
111
|
-
|
|
112
|
-
**Local wins** (future):
|
|
113
|
-
- Spec changes take precedence
|
|
114
|
-
- Push to ADO
|
|
115
|
-
|
|
116
|
-
## Requirements
|
|
117
|
-
|
|
118
|
-
1. **Azure DevOps account** with project access
|
|
119
|
-
2. **Personal Access Token** (with Work Items: Read, Write, & Manage)
|
|
120
|
-
3. **Project permissions** (create features, create user stories)
|
|
121
|
-
4. **Spec file exists** at `.specweave/docs/internal/specs/spec-{id}.md`
|
|
122
|
-
|
|
123
|
-
## What Gets Synced
|
|
124
|
-
|
|
125
|
-
### Spec → ADO Feature
|
|
126
|
-
|
|
127
|
-
- ✅ Title: `[SPEC-001] Feature Area Title`
|
|
128
|
-
- ✅ Description: Overview + progress stats (HTML)
|
|
129
|
-
- ✅ Tags: `spec:spec-001`, `priority:P1`
|
|
130
|
-
- ✅ State: New/Active/Resolved/Closed based on spec
|
|
131
|
-
|
|
132
|
-
### User Story → ADO User Story
|
|
133
|
-
|
|
134
|
-
- ✅ Title: `[US-001] As a user, I want...`
|
|
135
|
-
- ✅ Description: User story + acceptance criteria checklist (HTML)
|
|
136
|
-
- ✅ Tags: `user-story`, `spec:spec-001`, `priority:P1`
|
|
137
|
-
- ✅ Parent: Links to feature work item
|
|
138
|
-
- ✅ State: New (todo) / Active (in-progress) / Closed (done)
|
|
139
|
-
|
|
140
|
-
### Acceptance Criteria → Checklist
|
|
141
|
-
|
|
142
|
-
```html
|
|
143
|
-
<h2>Acceptance Criteria</h2>
|
|
144
|
-
<ul>
|
|
145
|
-
<li>☑ User can log in with email/password</li>
|
|
146
|
-
<li>☐ Invalid credentials show error message</li>
|
|
147
|
-
<li>☐ Account locks after 5 failed attempts</li>
|
|
148
|
-
</ul>
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
*Note*: ADO uses HTML in descriptions, with ☑/☐ for checkboxes.
|
|
152
|
-
|
|
153
|
-
## Architecture
|
|
154
|
-
|
|
155
|
-
**Why This Architecture?**
|
|
156
|
-
|
|
157
|
-
✅ **Permanent tracking**: Specs never deleted, ADO links remain valid
|
|
158
|
-
✅ **Feature-level granularity**: One ADO Feature per feature (not per increment)
|
|
159
|
-
✅ **PM-friendly**: Stakeholders see progress in ADO board
|
|
160
|
-
✅ **Brownfield-ready**: Existing ADO features map to specs
|
|
161
|
-
|
|
162
|
-
**What's WRONG?**
|
|
163
|
-
|
|
164
|
-
❌ Increment → ADO Work Item (increments are temporary!)
|
|
165
|
-
❌ Tasks → ADO Tasks (too granular, implementation details)
|
|
166
|
-
❌ Multiple features per feature (split across increments)
|
|
167
|
-
|
|
168
|
-
## Metadata
|
|
169
|
-
|
|
170
|
-
After sync, spec frontmatter is updated:
|
|
171
|
-
|
|
172
|
-
```yaml
|
|
173
|
-
---
|
|
174
|
-
id: spec-001
|
|
175
|
-
title: Core Framework Architecture
|
|
176
|
-
status: in-progress
|
|
177
|
-
priority: P0
|
|
178
|
-
externalLinks:
|
|
179
|
-
ado:
|
|
180
|
-
featureId: 456
|
|
181
|
-
featureUrl: https://dev.azure.com/org/project/_workitems/edit/456
|
|
182
|
-
syncedAt: "2025-11-10T12:00:00Z"
|
|
183
|
-
organization: mycompany
|
|
184
|
-
project: MyProject
|
|
185
|
-
---
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Troubleshooting
|
|
189
|
-
|
|
190
|
-
**"ADO API authentication failed"**:
|
|
191
|
-
- Check `.env` has correct `ADO_ORGANIZATION`, `ADO_PROJECT`, `ADO_PERSONAL_ACCESS_TOKEN`
|
|
192
|
-
- Verify PAT is valid (not expired)
|
|
193
|
-
- Test authentication: `curl -u :{PAT} https://dev.azure.com/{org}/_apis/projects?api-version=7.0`
|
|
194
|
-
|
|
195
|
-
**"Spec not found"**:
|
|
196
|
-
- Check spec exists: `ls .specweave/docs/internal/specs/`
|
|
197
|
-
- Use correct ID: `spec-001` or `001`
|
|
198
|
-
|
|
199
|
-
**"Cannot create feature"**:
|
|
200
|
-
- Ensure you have permissions to create features in the project
|
|
201
|
-
- Check project name is correct in `.env`
|
|
202
|
-
|
|
203
|
-
**"Parent link failed"**:
|
|
204
|
-
- Ensure feature exists before creating user stories
|
|
205
|
-
- Check feature ID is correct
|
|
206
|
-
|
|
207
|
-
**"No user stories to sync"**:
|
|
208
|
-
- Add user stories to spec.md:
|
|
209
|
-
```markdown
|
|
210
|
-
**US-001**: As a user, I want...
|
|
211
|
-
- [ ] **AC-001-01**: Acceptance criteria 1
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
## Related
|
|
215
|
-
|
|
216
|
-
- `/specweave-github:sync-spec` - Sync to GitHub Project
|
|
217
|
-
- `/specweave-jira:sync-spec` - Sync to Jira Epic
|
|
218
|
-
- `/specweave:sync-docs` - Sync living docs from increments to specs
|
|
219
|
-
|
|
220
|
-
## Implementation
|
|
221
|
-
|
|
222
|
-
**File**: `plugins/specweave-ado/lib/ado-spec-sync.ts`
|
|
223
|
-
|
|
224
|
-
**Core Class**: `AdoSpecSync`
|
|
225
|
-
|
|
226
|
-
**Methods**:
|
|
227
|
-
- `syncSpecToAdo(specId)` - Push to ADO
|
|
228
|
-
- `syncFromAdo(specId)` - Pull from ADO
|
|
229
|
-
- `detectConflicts(spec, feature)` - Compare states
|
|
230
|
-
- `resolveConflicts(spec, conflicts)` - Apply resolution strategy
|
|
231
|
-
|
|
232
|
-
## Azure DevOps API Reference
|
|
233
|
-
|
|
234
|
-
**Endpoints used**:
|
|
235
|
-
- `POST /wit/workitems/$Feature` - Create feature
|
|
236
|
-
- `PATCH /wit/workitems/{id}` - Update work item
|
|
237
|
-
- `GET /wit/workitems/{id}` - Fetch work item
|
|
238
|
-
- `POST /wit/wiql` - Search for work items (WIQL query)
|
|
239
|
-
|
|
240
|
-
**Authentication**: Basic auth with empty username + Personal Access Token
|
|
241
|
-
|
|
242
|
-
**API Version**: 7.0
|
|
243
|
-
|
|
244
|
-
## Work Item States
|
|
245
|
-
|
|
246
|
-
**Feature States**:
|
|
247
|
-
- New → Spec status: draft
|
|
248
|
-
- Active → Spec status: in-progress
|
|
249
|
-
- Resolved → Spec status: complete
|
|
250
|
-
- Closed → Spec status: archived
|
|
251
|
-
|
|
252
|
-
**User Story States**:
|
|
253
|
-
- New → User story status: todo
|
|
254
|
-
- Active → User story status: in-progress
|
|
255
|
-
- Closed → User story status: done
|