specweave 0.18.1 → 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/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-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 +7 -0
- package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/epic-content-builder.js +42 -0
- package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +1 -1
- 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.js +1 -1
- 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 +8 -6
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +78 -117
- package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +1 -1
- 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/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/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.map +1 -1
- package/dist/src/core/sync/enhanced-content-builder.js +2 -1
- 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/types/config.d.ts +94 -0
- package/dist/src/core/types/config.d.ts.map +1 -1
- package/dist/src/core/types/config.js +16 -0
- package/dist/src/core/types/config.js.map +1 -1
- package/dist/src/core/types/increment-metadata.d.ts +6 -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/package.json +1 -1
- package/plugins/specweave/COMMANDS.md +13 -4
- 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/hooks/hooks.json +4 -0
- package/plugins/specweave/hooks/lib/sync-spec-content.sh +2 -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-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 +10 -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 +38 -0
- package/plugins/specweave-github/lib/epic-content-builder.ts +59 -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.ts +1 -1
- 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
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: specweave-github-sync-epic
|
|
3
|
-
description: Sync SpecWeave Epic folder to GitHub (Milestone + Issues). Implements Universal Hierarchy architecture - Epic → Milestone, Increments → Issues.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Sync Epic to GitHub (Universal Hierarchy)
|
|
7
|
-
|
|
8
|
-
**Architecture**: Hierarchical sync using Epic folder structure
|
|
9
|
-
|
|
10
|
-
- **Epic (FS-001)** → **GitHub Milestone**
|
|
11
|
-
- **Increment (0001-core-framework)** → **GitHub Issue** (linked to Milestone)
|
|
12
|
-
|
|
13
|
-
## Usage
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
/specweave-github:sync-epic <epic-id>
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## What It Does
|
|
20
|
-
|
|
21
|
-
**Hierarchical Sync Process**:
|
|
22
|
-
|
|
23
|
-
1. **Load Epic folder** from `.specweave/docs/internal/specs/FS-XXX-name/`
|
|
24
|
-
2. **Parse Epic README.md** to get Epic metadata (title, increments, status)
|
|
25
|
-
3. **Create or update GitHub Milestone**:
|
|
26
|
-
- Title: `[FS-001] Epic Title`
|
|
27
|
-
- Description: Epic overview + progress stats
|
|
28
|
-
- State: Open (active/planning) or Closed (complete)
|
|
29
|
-
4. **Sync each increment as GitHub Issue**:
|
|
30
|
-
- Title: `[INC-0001-core-framework] Title`
|
|
31
|
-
- Body: Increment overview + link to tasks.md
|
|
32
|
-
- Milestone: Linked to Epic Milestone
|
|
33
|
-
- Labels: `increment`, `epic-sync`
|
|
34
|
-
5. **Update frontmatter** in Epic README.md and increment files
|
|
35
|
-
|
|
36
|
-
## Examples
|
|
37
|
-
|
|
38
|
-
### Sync Epic FS-001 (Core Framework Architecture)
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
/specweave-github:sync-epic FS-001
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**Output**:
|
|
45
|
-
```
|
|
46
|
-
🔄 Syncing Epic FS-001 to GitHub...
|
|
47
|
-
📦 Epic: Core Framework Architecture
|
|
48
|
-
📊 Increments: 4
|
|
49
|
-
🚀 Creating GitHub Milestone...
|
|
50
|
-
✅ Created Milestone #10
|
|
51
|
-
|
|
52
|
-
📝 Syncing 4 increments...
|
|
53
|
-
✅ Created Issue #130 for 0001-core-framework
|
|
54
|
-
✅ Created Issue #131 for 0002-core-enhancements
|
|
55
|
-
✅ Created Issue #132 for 0004-plugin-architecture
|
|
56
|
-
✅ Created Issue #133 for 0005-cross-platform-cli
|
|
57
|
-
|
|
58
|
-
✅ Epic sync complete!
|
|
59
|
-
Milestone: https://github.com/owner/repo/milestone/10
|
|
60
|
-
Issues created: 4
|
|
61
|
-
Issues updated: 0
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Sync Epic with short ID
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
/specweave-github:sync-epic 031
|
|
68
|
-
# Resolves to FS-031
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Re-sync Epic (updates existing Milestone/Issues)
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
/specweave-github:sync-epic FS-001
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**Output**:
|
|
78
|
-
```
|
|
79
|
-
🔄 Syncing Epic FS-001 to GitHub...
|
|
80
|
-
♻️ Updating existing Milestone #10...
|
|
81
|
-
✅ Updated Milestone #10
|
|
82
|
-
|
|
83
|
-
📝 Syncing 4 increments...
|
|
84
|
-
♻️ Updated Issue #130 for 0001-core-framework
|
|
85
|
-
♻️ Updated Issue #131 for 0002-core-enhancements
|
|
86
|
-
♻️ Updated Issue #132 for 0004-plugin-architecture
|
|
87
|
-
♻️ Updated Issue #133 for 0005-cross-platform-cli
|
|
88
|
-
|
|
89
|
-
✅ Epic sync complete!
|
|
90
|
-
Milestone: https://github.com/owner/repo/milestone/10
|
|
91
|
-
Issues created: 0
|
|
92
|
-
Issues updated: 4
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## Arguments
|
|
96
|
-
|
|
97
|
-
- `<epic-id>` - Epic ID (e.g., `FS-001` or just `001`)
|
|
98
|
-
|
|
99
|
-
## What Gets Created
|
|
100
|
-
|
|
101
|
-
### GitHub Milestone (Epic-level)
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
Title: [FS-001] Core Framework Architecture
|
|
105
|
-
Description:
|
|
106
|
-
Epic: Core Framework Architecture
|
|
107
|
-
|
|
108
|
-
Progress: 4/4 increments (100%)
|
|
109
|
-
|
|
110
|
-
Priority: P0
|
|
111
|
-
Status: complete
|
|
112
|
-
|
|
113
|
-
State: Closed (if complete) or Open (if active/planning)
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### GitHub Issues (Increment-level)
|
|
117
|
-
|
|
118
|
-
```markdown
|
|
119
|
-
Title: [INC-0001-core-framework] Core Framework
|
|
120
|
-
|
|
121
|
-
# Core Framework
|
|
122
|
-
|
|
123
|
-
Foundation framework with CLI, plugin system, and agent architecture...
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
**Increment**: 0001-core-framework
|
|
128
|
-
**Milestone**: See milestone for Epic progress
|
|
129
|
-
|
|
130
|
-
🤖 Auto-created by SpecWeave Epic Sync
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
**Labels**: `increment`, `epic-sync`
|
|
134
|
-
**Milestone**: Linked to Epic Milestone
|
|
135
|
-
|
|
136
|
-
## Frontmatter Updates
|
|
137
|
-
|
|
138
|
-
### Epic README.md (after sync)
|
|
139
|
-
|
|
140
|
-
```yaml
|
|
141
|
-
---
|
|
142
|
-
id: FS-001
|
|
143
|
-
title: "Core Framework Architecture"
|
|
144
|
-
external_tools:
|
|
145
|
-
github:
|
|
146
|
-
type: milestone
|
|
147
|
-
id: 10 # ← Added
|
|
148
|
-
url: https://github.com/.../milestone/10 # ← Added
|
|
149
|
-
increments:
|
|
150
|
-
- id: 0001-core-framework
|
|
151
|
-
external:
|
|
152
|
-
github: 130 # ← Added
|
|
153
|
-
- id: 0002-core-enhancements
|
|
154
|
-
external:
|
|
155
|
-
github: 131 # ← Added
|
|
156
|
-
---
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Increment file (0001-core-framework.md)
|
|
160
|
-
|
|
161
|
-
```yaml
|
|
162
|
-
---
|
|
163
|
-
id: 0001-core-framework
|
|
164
|
-
epic: FS-001
|
|
165
|
-
external:
|
|
166
|
-
github:
|
|
167
|
-
issue: 130 # ← Added
|
|
168
|
-
url: https://github.com/.../issues/130 # ← Added
|
|
169
|
-
---
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## Benefits
|
|
173
|
-
|
|
174
|
-
✅ **Hierarchical tracking**: GitHub Milestones group related increments
|
|
175
|
-
✅ **Epic-level progress**: See completion percentage in Milestone
|
|
176
|
-
✅ **Automatic linking**: All Issues linked to Milestone
|
|
177
|
-
✅ **Idempotent**: Safe to re-run (updates existing Milestone/Issues)
|
|
178
|
-
✅ **Brownfield-ready**: Links existing GitHub Milestones/Issues
|
|
179
|
-
|
|
180
|
-
## Requirements
|
|
181
|
-
|
|
182
|
-
1. **GitHub CLI** (`gh`) installed and authenticated
|
|
183
|
-
2. **Git repository** with GitHub remote
|
|
184
|
-
3. **Write access** to repository (for creating Milestones/Issues)
|
|
185
|
-
4. **Epic folder exists** at `.specweave/docs/internal/specs/FS-XXX-name/`
|
|
186
|
-
|
|
187
|
-
## Architecture: Why Milestones?
|
|
188
|
-
|
|
189
|
-
**GitHub's Hierarchy**:
|
|
190
|
-
- GitHub Milestones = Epic-level grouping
|
|
191
|
-
- GitHub Issues = Increment-level work items
|
|
192
|
-
- GitHub Projects = Optional (cross-Epic tracking)
|
|
193
|
-
|
|
194
|
-
**Comparison with JIRA/ADO**:
|
|
195
|
-
- JIRA: Epic → Epic, Increment → Story (with Epic Link field)
|
|
196
|
-
- ADO: Epic → Feature, Increment → User Story (with Parent link)
|
|
197
|
-
- GitHub: Epic → Milestone, Increment → Issue (with Milestone link)
|
|
198
|
-
|
|
199
|
-
All three implement the same Universal Hierarchy, just with different terminology.
|
|
200
|
-
|
|
201
|
-
## Troubleshooting
|
|
202
|
-
|
|
203
|
-
**"Epic FS-001 not found"**:
|
|
204
|
-
- Check Epic folder exists: `ls .specweave/docs/internal/specs/`
|
|
205
|
-
- Verify Epic ID format: `FS-001-epic-name/`
|
|
206
|
-
|
|
207
|
-
**"Epic README.md missing YAML frontmatter"**:
|
|
208
|
-
- Ensure Epic was migrated with `migrate-to-epic-folders.ts`
|
|
209
|
-
- Frontmatter must start with `---` on line 1
|
|
210
|
-
|
|
211
|
-
**"Failed to create GitHub Milestone"**:
|
|
212
|
-
- Check GitHub CLI auth: `gh auth status`
|
|
213
|
-
- Verify write access: `gh repo view`
|
|
214
|
-
- Check rate limits: `gh api rate_limit`
|
|
215
|
-
|
|
216
|
-
**"Could not extract issue number"**:
|
|
217
|
-
- GitHub CLI output format may have changed
|
|
218
|
-
- Check CLI version: `gh --version` (need v2.0.0+)
|
|
219
|
-
|
|
220
|
-
## Related Commands
|
|
221
|
-
|
|
222
|
-
- `/specweave-github:sync-spec` - OLD (flat spec → project) - DEPRECATED for Epic architecture
|
|
223
|
-
- `/specweave-jira:sync-epic` - Sync to JIRA Epic + Stories
|
|
224
|
-
- `/specweave-ado:sync-epic` - Sync to ADO Feature + User Stories
|
|
225
|
-
|
|
226
|
-
## Implementation
|
|
227
|
-
|
|
228
|
-
**File**: `plugins/specweave-github/lib/github-epic-sync.ts`
|
|
229
|
-
|
|
230
|
-
**Core Class**: `GitHubEpicSync`
|
|
231
|
-
|
|
232
|
-
**Methods**:
|
|
233
|
-
- `syncEpicToGitHub(epicId)` - Main sync logic
|
|
234
|
-
- `createMilestone(epic)` - Create GitHub Milestone
|
|
235
|
-
- `updateMilestone(number, epic)` - Update existing Milestone
|
|
236
|
-
- `createIssue(increment, milestone)` - Create GitHub Issue
|
|
237
|
-
- `updateIssue(number, increment, milestone)` - Update existing Issue
|
|
238
|
-
- `updateEpicReadme(path, github)` - Update frontmatter
|
|
239
|
-
- `updateIncrementExternalLink(...)` - Update increment frontmatter
|
|
240
|
-
|
|
241
|
-
## Next Steps
|
|
242
|
-
|
|
243
|
-
After syncing Epic to GitHub:
|
|
244
|
-
|
|
245
|
-
1. **View Milestone progress**: `gh milestone view 10`
|
|
246
|
-
2. **List Issues in Milestone**: `gh issue list --milestone 10`
|
|
247
|
-
3. **Track completion**: GitHub automatically calculates Milestone progress
|
|
248
|
-
4. **Close Milestone**: When all increments complete, Milestone auto-closes
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: specweave-github:sync-from
|
|
3
|
-
description: Sync state from GitHub to SpecWeave (bidirectional sync). Fetches issue state, comments, and detects conflicts.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Sync from GitHub to SpecWeave
|
|
7
|
-
|
|
8
|
-
Bidirectional sync - pull changes from GitHub issue back to SpecWeave increment.
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
/specweave-github:sync-from <incrementId>
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## What It Does
|
|
17
|
-
|
|
18
|
-
1. **Fetches GitHub Issue State**:
|
|
19
|
-
- Issue status (open/closed)
|
|
20
|
-
- Comments
|
|
21
|
-
- Labels, assignees, milestones
|
|
22
|
-
- Last updated timestamp
|
|
23
|
-
|
|
24
|
-
2. **Detects Conflicts**:
|
|
25
|
-
- GitHub closed but SpecWeave active
|
|
26
|
-
- SpecWeave completed but GitHub open
|
|
27
|
-
- GitHub abandoned but issue open
|
|
28
|
-
|
|
29
|
-
3. **Syncs Comments**:
|
|
30
|
-
- Saves GitHub comments to `.specweave/increments/<id>/logs/github-comments.md`
|
|
31
|
-
- Only syncs new comments (tracks IDs)
|
|
32
|
-
|
|
33
|
-
4. **Updates Metadata**:
|
|
34
|
-
- Updates `metadata.json` with latest GitHub state
|
|
35
|
-
- Tracks last sync timestamp
|
|
36
|
-
|
|
37
|
-
## Examples
|
|
38
|
-
|
|
39
|
-
### Basic Sync
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
/specweave-github:sync-from 0015-hierarchical-sync
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**Output**:
|
|
46
|
-
```
|
|
47
|
-
🔄 Syncing from GitHub for increment: 0015-hierarchical-sync
|
|
48
|
-
Syncing from anton-abyzov/specweave#29
|
|
49
|
-
✅ No conflicts - GitHub and SpecWeave in sync
|
|
50
|
-
📝 Syncing 3 new comment(s)
|
|
51
|
-
✅ Comments saved to: logs/github-comments.md
|
|
52
|
-
✅ Metadata updated
|
|
53
|
-
✅ Bidirectional sync complete
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### Conflict Detection
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
/specweave-github:sync-from 0015-hierarchical-sync
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**Output**:
|
|
63
|
-
```
|
|
64
|
-
🔄 Syncing from GitHub for increment: 0015-hierarchical-sync
|
|
65
|
-
Syncing from anton-abyzov/specweave#29
|
|
66
|
-
⚠️ Detected 1 conflict(s)
|
|
67
|
-
|
|
68
|
-
⚠️ Conflict detected: status
|
|
69
|
-
GitHub: closed
|
|
70
|
-
SpecWeave: active
|
|
71
|
-
|
|
72
|
-
⚠️ **CONFLICT**: GitHub issue closed but SpecWeave increment still active!
|
|
73
|
-
Recommendation: Run /specweave:done 0015-hierarchical-sync to close increment
|
|
74
|
-
Or reopen issue on GitHub if work is not complete
|
|
75
|
-
|
|
76
|
-
✅ Bidirectional sync complete
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## When to Use
|
|
80
|
-
|
|
81
|
-
Use this command when:
|
|
82
|
-
- ✅ Someone closed/reopened the GitHub issue
|
|
83
|
-
- ✅ Comments were added on GitHub (want to import them)
|
|
84
|
-
- ✅ Want to check if GitHub and SpecWeave are in sync
|
|
85
|
-
- ✅ Resolving conflicts between GitHub and SpecWeave state
|
|
86
|
-
|
|
87
|
-
## Requirements
|
|
88
|
-
|
|
89
|
-
- GitHub CLI (`gh`) installed and authenticated
|
|
90
|
-
- GitHub issue linked in metadata.json
|
|
91
|
-
- Repository has GitHub remote configured
|
|
92
|
-
|
|
93
|
-
## Conflict Resolution
|
|
94
|
-
|
|
95
|
-
### GitHub Closed, SpecWeave Active
|
|
96
|
-
|
|
97
|
-
**Resolution**: Close SpecWeave increment
|
|
98
|
-
```bash
|
|
99
|
-
/specweave:done 0015-hierarchical-sync
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**Or**: Reopen GitHub issue if work not complete
|
|
103
|
-
```bash
|
|
104
|
-
gh issue reopen 29
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### SpecWeave Completed, GitHub Open
|
|
108
|
-
|
|
109
|
-
**Resolution**: Close GitHub issue
|
|
110
|
-
```bash
|
|
111
|
-
gh issue close 29 --comment "Increment completed in SpecWeave"
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### SpecWeave Abandoned, GitHub Open
|
|
115
|
-
|
|
116
|
-
**Resolution**: Close GitHub issue with reason
|
|
117
|
-
```bash
|
|
118
|
-
gh issue close 29 --comment "Increment abandoned: Requirements changed"
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Files Modified
|
|
122
|
-
|
|
123
|
-
- `.specweave/increments/<id>/logs/github-comments.md` - GitHub comments
|
|
124
|
-
- `.specweave/increments/<id>/metadata.json` - Sync metadata
|
|
125
|
-
|
|
126
|
-
## Related Commands
|
|
127
|
-
|
|
128
|
-
- `/specweave-github:sync` - One-way sync (SpecWeave → GitHub)
|
|
129
|
-
- `/specweave-github:create-issue` - Create GitHub issue
|
|
130
|
-
- `/specweave-github:close-issue` - Close GitHub issue
|
|
131
|
-
- `/specweave-github:status` - Check sync status
|
|
132
|
-
|
|
133
|
-
## Automation
|
|
134
|
-
|
|
135
|
-
For automatic bidirectional sync, add to cron or CI/CD:
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
# Sync all active increments hourly
|
|
139
|
-
0 * * * * cd /path/to/project && \
|
|
140
|
-
for inc in $(ls .specweave/increments/ | grep -v _backlog); do \
|
|
141
|
-
/specweave-github:sync-from $inc; \
|
|
142
|
-
done
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## Implementation
|
|
146
|
-
|
|
147
|
-
Invokes `github-sync-bidirectional` agent with conflict detection and resolution logic.
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: specweave-github-sync-spec
|
|
3
|
-
description: Sync SpecWeave spec to GitHub Project (bidirectional). Use when syncing .specweave/docs/internal/specs/spec-*.md files with GitHub Projects for permanent feature tracking.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Sync Spec to GitHub Project
|
|
7
|
-
|
|
8
|
-
**CORRECT ARCHITECTURE**: This command syncs `.specweave/docs/internal/specs/spec-*.md` files (PERMANENT living docs) to GitHub Projects, NOT increments to issues.
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
/specweave-github:sync-spec <spec-id> [--direction <to-github|from-github|bidirectional>]
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## What It Does
|
|
17
|
-
|
|
18
|
-
**Architecture**:
|
|
19
|
-
- **Spec → GitHub Project** (not increment → issue!)
|
|
20
|
-
- **User Story → GitHub Issue** (linked to project)
|
|
21
|
-
- **Acceptance Criteria → Checklist** (in issue body)
|
|
22
|
-
|
|
23
|
-
**Sync Process**:
|
|
24
|
-
|
|
25
|
-
1. **Load spec** from `.specweave/docs/internal/specs/spec-{id}.md`
|
|
26
|
-
2. **Detect repository** from git remote
|
|
27
|
-
3. **Create or update GitHub Project**:
|
|
28
|
-
- Title: `[SPEC-001] Feature Title`
|
|
29
|
-
- Description: Spec overview + progress
|
|
30
|
-
- Status: Matches spec status
|
|
31
|
-
4. **Sync user stories as issues**:
|
|
32
|
-
- Create issues for new user stories
|
|
33
|
-
- Update existing issues
|
|
34
|
-
- Close issues for completed user stories
|
|
35
|
-
5. **Link spec to project** (update frontmatter)
|
|
36
|
-
|
|
37
|
-
## Examples
|
|
38
|
-
|
|
39
|
-
### Sync spec to GitHub (create or update)
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
/specweave-github:sync-spec spec-001
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**Output**:
|
|
46
|
-
```
|
|
47
|
-
🔄 Syncing spec spec-001 to GitHub Project...
|
|
48
|
-
Creating new GitHub Project...
|
|
49
|
-
✅ Created GitHub Project #5: https://github.com/owner/repo/projects/5
|
|
50
|
-
Syncing 35 user stories...
|
|
51
|
-
✅ Created US-001 → Issue #130
|
|
52
|
-
✅ Created US-002 → Issue #131
|
|
53
|
-
...
|
|
54
|
-
✅ Sync complete!
|
|
55
|
-
Created: 35 user stories
|
|
56
|
-
GitHub Project: https://github.com/owner/repo/projects/5
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Sync FROM GitHub to spec (bidirectional)
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
/specweave-github:sync-spec spec-001 --direction from-github
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
**Output**:
|
|
66
|
-
```
|
|
67
|
-
🔄 Syncing FROM GitHub to spec spec-001...
|
|
68
|
-
Fetching GitHub Project #5...
|
|
69
|
-
⚠️ Detected 3 conflict(s)
|
|
70
|
-
🔄 Resolving: US-002 marked done in GitHub (GitHub wins)
|
|
71
|
-
🔄 Resolving: US-005 marked in-progress in GitHub (GitHub wins)
|
|
72
|
-
✅ Sync FROM GitHub complete!
|
|
73
|
-
Updated: 3 user stories
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Bidirectional sync (default)
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
/specweave-github:sync-spec spec-001 --direction bidirectional
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Arguments
|
|
83
|
-
|
|
84
|
-
- `<spec-id>` - Spec ID (e.g., `spec-001` or just `001`)
|
|
85
|
-
- `--direction <mode>` - Sync direction (default: `to-github`)
|
|
86
|
-
- `to-github` - Push local spec to GitHub
|
|
87
|
-
- `from-github` - Pull GitHub state to spec
|
|
88
|
-
- `bidirectional` - Sync both ways (conflict resolution)
|
|
89
|
-
|
|
90
|
-
## Conflict Resolution
|
|
91
|
-
|
|
92
|
-
When syncing FROM GitHub, conflicts are resolved as follows:
|
|
93
|
-
|
|
94
|
-
**GitHub wins** (default):
|
|
95
|
-
- User story status changes → update spec
|
|
96
|
-
- Acceptance criteria status → update spec
|
|
97
|
-
- Issue closure → mark user story done
|
|
98
|
-
|
|
99
|
-
**Local wins** (future):
|
|
100
|
-
- Spec changes take precedence
|
|
101
|
-
- Push to GitHub
|
|
102
|
-
|
|
103
|
-
## Requirements
|
|
104
|
-
|
|
105
|
-
1. **GitHub CLI** (`gh`) installed and authenticated
|
|
106
|
-
2. **Git repository** with GitHub remote
|
|
107
|
-
3. **Write access** to repository (for creating projects/issues)
|
|
108
|
-
4. **Spec file exists** at `.specweave/docs/internal/specs/spec-{id}.md`
|
|
109
|
-
|
|
110
|
-
## What Gets Synced
|
|
111
|
-
|
|
112
|
-
### Spec → GitHub Project
|
|
113
|
-
|
|
114
|
-
- ✅ Title: `[SPEC-001] Feature Area Title`
|
|
115
|
-
- ✅ Description: Overview + progress stats
|
|
116
|
-
- ✅ Status: Open/Closed based on spec completion
|
|
117
|
-
|
|
118
|
-
### User Story → GitHub Issue
|
|
119
|
-
|
|
120
|
-
- ✅ Title: `[US-001] As a user, I want...`
|
|
121
|
-
- ✅ Body: User story + acceptance criteria checklist
|
|
122
|
-
- ✅ Labels: `user-story`, `spec:spec-001`, `priority:P1`
|
|
123
|
-
- ✅ State: Open (todo/in-progress) or Closed (done)
|
|
124
|
-
|
|
125
|
-
### Acceptance Criteria → Checklist
|
|
126
|
-
|
|
127
|
-
```markdown
|
|
128
|
-
## Acceptance Criteria
|
|
129
|
-
|
|
130
|
-
- [x] User can log in with email/password
|
|
131
|
-
- [ ] Invalid credentials show error message
|
|
132
|
-
- [ ] Account locks after 5 failed attempts
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## Architecture
|
|
136
|
-
|
|
137
|
-
**Why This Architecture?**
|
|
138
|
-
|
|
139
|
-
✅ **Permanent tracking**: Specs never deleted, GitHub links remain valid
|
|
140
|
-
✅ **Feature-level granularity**: One GitHub Project per feature (not per increment)
|
|
141
|
-
✅ **PM-friendly**: Stakeholders see progress in GitHub Projects
|
|
142
|
-
✅ **Brownfield-ready**: Existing GitHub Projects map to specs
|
|
143
|
-
|
|
144
|
-
**What's WRONG?**
|
|
145
|
-
|
|
146
|
-
❌ Increment → GitHub Issue (increments are temporary!)
|
|
147
|
-
❌ Tasks → GitHub Issues (too granular, implementation details)
|
|
148
|
-
❌ Multiple issues per feature (split across increments)
|
|
149
|
-
|
|
150
|
-
## Metadata
|
|
151
|
-
|
|
152
|
-
After sync, spec frontmatter is updated:
|
|
153
|
-
|
|
154
|
-
```yaml
|
|
155
|
-
---
|
|
156
|
-
id: spec-001
|
|
157
|
-
title: Core Framework Architecture
|
|
158
|
-
status: in-progress
|
|
159
|
-
priority: P0
|
|
160
|
-
externalLinks:
|
|
161
|
-
github:
|
|
162
|
-
projectId: 5
|
|
163
|
-
projectUrl: https://github.com/owner/repo/projects/5
|
|
164
|
-
syncedAt: "2025-11-10T12:00:00Z"
|
|
165
|
-
owner: owner
|
|
166
|
-
repo: repo
|
|
167
|
-
---
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
## Troubleshooting
|
|
171
|
-
|
|
172
|
-
**"Could not detect GitHub repository"**:
|
|
173
|
-
- Ensure you're in a git repo with GitHub remote
|
|
174
|
-
- Run: `git remote -v` to check
|
|
175
|
-
|
|
176
|
-
**"Spec not found"**:
|
|
177
|
-
- Check spec exists: `ls .specweave/docs/internal/specs/`
|
|
178
|
-
- Use correct ID: `spec-001` or `001`
|
|
179
|
-
|
|
180
|
-
**"GraphQL query failed"**:
|
|
181
|
-
- Check GitHub CLI auth: `gh auth status`
|
|
182
|
-
- Re-authenticate: `gh auth login`
|
|
183
|
-
|
|
184
|
-
**"No user stories to sync"**:
|
|
185
|
-
- Add user stories to spec.md:
|
|
186
|
-
```markdown
|
|
187
|
-
**US-001**: As a user, I want...
|
|
188
|
-
- [ ] **AC-001-01**: Acceptance criteria 1
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
## Related
|
|
192
|
-
|
|
193
|
-
- `/specweave-github:sync` - OLD command (increment-based, DEPRECATED)
|
|
194
|
-
- `/specweave-jira:sync-spec` - Sync to Jira Epic
|
|
195
|
-
- `/specweave-ado:sync-spec` - Sync to Azure DevOps Feature
|
|
196
|
-
- `/specweave:sync-docs` - Sync living docs from increments to specs
|
|
197
|
-
|
|
198
|
-
## Implementation
|
|
199
|
-
|
|
200
|
-
**File**: `plugins/specweave-github/lib/github-spec-sync.ts`
|
|
201
|
-
|
|
202
|
-
**Core Class**: `GitHubSpecSync`
|
|
203
|
-
|
|
204
|
-
**Methods**:
|
|
205
|
-
- `syncSpecToGitHub(specId)` - Push to GitHub
|
|
206
|
-
- `syncFromGitHub(specId)` - Pull from GitHub
|
|
207
|
-
- `detectConflicts(spec, project)` - Compare states
|
|
208
|
-
- `resolveConflicts(spec, conflicts)` - Apply resolution strategy
|