specweave 0.18.1 → 0.20.1
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/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-ado/lib/enhanced-ado-sync.js → specweave-jira/lib/enhanced-jira-sync.js} +25 -61
- 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/dist/locales/de/.gitkeep +0 -0
- package/dist/locales/de/cli.json +0 -108
- package/dist/locales/en/cli.json +0 -287
- package/dist/locales/en/errors.json +0 -7
- package/dist/locales/en/templates.json +0 -6
- package/dist/locales/es/.gitkeep +0 -0
- package/dist/locales/es/cli.json +0 -41
- package/dist/locales/fr/.gitkeep +0 -0
- package/dist/locales/fr/cli.json +0 -108
- package/dist/locales/ja/.gitkeep +0 -0
- package/dist/locales/ja/cli.json +0 -108
- package/dist/locales/ko/.gitkeep +0 -0
- package/dist/locales/ko/cli.json +0 -108
- package/dist/locales/pt/.gitkeep +0 -0
- package/dist/locales/pt/cli.json +0 -108
- package/dist/locales/ru/.gitkeep +0 -0
- package/dist/locales/ru/cli.json +0 -269
- package/dist/locales/zh/.gitkeep +0 -0
- package/dist/locales/zh/cli.json +0 -108
- package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts +0 -25
- package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts.map +0 -1
- package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -191
- package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js.map +0 -1
- package/dist/spec-parser.js +0 -629
- package/dist/src/core/sync/spec-content-sync.d.ts +0 -88
- package/dist/src/core/sync/spec-content-sync.d.ts.map +0 -1
- package/dist/src/core/sync/spec-content-sync.js +0 -5
- package/dist/src/core/sync/spec-content-sync.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- 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,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for spec content synchronization with external tools
|
|
3
|
-
*/
|
|
4
|
-
export interface SpecIdentifier {
|
|
5
|
-
/** Compact format: SPEC-0031 */
|
|
6
|
-
compact: string;
|
|
7
|
-
/** Full format: spec-0031-external-tool-status-sync */
|
|
8
|
-
full: string;
|
|
9
|
-
}
|
|
10
|
-
export interface AcceptanceCriterion {
|
|
11
|
-
/** AC identifier: AC-US1-01 */
|
|
12
|
-
id: string;
|
|
13
|
-
/** Description of the acceptance criterion */
|
|
14
|
-
description: string;
|
|
15
|
-
/** Priority: P1, P2, P3 */
|
|
16
|
-
priority?: string;
|
|
17
|
-
/** Whether this criterion is testable */
|
|
18
|
-
testable?: boolean;
|
|
19
|
-
}
|
|
20
|
-
export interface UserStory {
|
|
21
|
-
/** User story ID: 001, 002, etc. */
|
|
22
|
-
id: string;
|
|
23
|
-
/** Title of the user story */
|
|
24
|
-
title: string;
|
|
25
|
-
/** As a... (role) */
|
|
26
|
-
asA: string;
|
|
27
|
-
/** I want... (action) */
|
|
28
|
-
iWant: string;
|
|
29
|
-
/** So that... (benefit) */
|
|
30
|
-
soThat: string;
|
|
31
|
-
/** Acceptance criteria for this user story */
|
|
32
|
-
acceptanceCriteria: AcceptanceCriterion[];
|
|
33
|
-
}
|
|
34
|
-
export interface Task {
|
|
35
|
-
/** Task ID: T-001, T-002, etc. */
|
|
36
|
-
id: string;
|
|
37
|
-
/** Title of the task */
|
|
38
|
-
title: string;
|
|
39
|
-
/** User stories this task implements */
|
|
40
|
-
userStories: string[];
|
|
41
|
-
/** GitHub issue number (if synced) */
|
|
42
|
-
githubIssue?: number;
|
|
43
|
-
}
|
|
44
|
-
export interface TaskMapping {
|
|
45
|
-
/** Increment ID this mapping belongs to */
|
|
46
|
-
incrementId: string;
|
|
47
|
-
/** Tasks from the increment */
|
|
48
|
-
tasks: Task[];
|
|
49
|
-
/** URL to tasks.md file */
|
|
50
|
-
tasksUrl: string;
|
|
51
|
-
}
|
|
52
|
-
export interface ArchitectureDoc {
|
|
53
|
-
/** Type of architecture document */
|
|
54
|
-
type: 'adr' | 'hld' | 'diagram';
|
|
55
|
-
/** Path to the document */
|
|
56
|
-
path: string;
|
|
57
|
-
/** Title/description of the document */
|
|
58
|
-
title: string;
|
|
59
|
-
}
|
|
60
|
-
export interface SourceLinks {
|
|
61
|
-
/** Link to spec.md */
|
|
62
|
-
spec?: string;
|
|
63
|
-
/** Link to plan.md */
|
|
64
|
-
plan?: string;
|
|
65
|
-
/** Link to tasks.md */
|
|
66
|
-
tasks?: string;
|
|
67
|
-
}
|
|
68
|
-
export interface SpecContent {
|
|
69
|
-
/** Spec identifier */
|
|
70
|
-
identifier: SpecIdentifier;
|
|
71
|
-
/** Title of the spec */
|
|
72
|
-
title: string;
|
|
73
|
-
/** Project this spec belongs to */
|
|
74
|
-
project: string;
|
|
75
|
-
/** Executive summary */
|
|
76
|
-
summary: string;
|
|
77
|
-
/** User stories */
|
|
78
|
-
userStories: UserStory[];
|
|
79
|
-
/** Metadata (priority, etc.) */
|
|
80
|
-
metadata: Record<string, any>;
|
|
81
|
-
/** Task mapping (optional) */
|
|
82
|
-
taskMapping?: TaskMapping;
|
|
83
|
-
/** Architecture documents (optional) */
|
|
84
|
-
architectureDocs?: ArchitectureDoc[];
|
|
85
|
-
/** Source links (optional) */
|
|
86
|
-
sourceLinks?: SourceLinks;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=spec-content-sync.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spec-content-sync.d.ts","sourceRoot":"","sources":["../../../../src/core/sync/spec-content-sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,IAAI;IACnB,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IAChC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,8BAA8B;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,8BAA8B;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spec-content-sync.js","sourceRoot":"","sources":["../../../../src/core/sync/spec-content-sync.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"root":["../src/adapters/adapter-base.ts","../src/adapters/adapter-interface.ts","../src/adapters/adapter-loader.ts","../src/adapters/agents-md-generator.ts","../src/adapters/claude-md-generator.ts","../src/adapters/doc-generator.ts","../src/adapters/claude/adapter.ts","../src/adapters/codex/adapter.ts","../src/adapters/cursor/adapter.ts","../src/adapters/gemini/adapter.ts","../src/adapters/generic/adapter.ts","../src/cli/commands/abandon.ts","../src/cli/commands/check-discipline.ts","../src/cli/commands/cicd-monitor.ts","../src/cli/commands/detect-project.ts","../src/cli/commands/detect-specs.ts","../src/cli/commands/import-docs.ts","../src/cli/commands/init-multiproject.ts","../src/cli/commands/init.ts","../src/cli/commands/install.ts","../src/cli/commands/list.ts","../src/cli/commands/migrate-to-multiproject.ts","../src/cli/commands/migrate-to-profiles.ts","../src/cli/commands/pause.ts","../src/cli/commands/qa.ts","../src/cli/commands/resume.ts","../src/cli/commands/revert-wip-limit.ts","../src/cli/commands/status-line.ts","../src/cli/commands/status.ts","../src/cli/commands/switch-project.ts","../src/cli/commands/sync-spec-commits.ts","../src/cli/commands/sync-spec-content.ts","../src/cli/commands/validate-jira.ts","../src/cli/commands/validate-parent-repo.ts","../src/cli/commands/validate-plugins.ts","../src/cli/helpers/github/increment-profile-selector.ts","../src/cli/helpers/github/profile-manager.ts","../src/cli/helpers/issue-tracker/ado.ts","../src/cli/helpers/issue-tracker/github-multi-repo.ts","../src/cli/helpers/issue-tracker/github.ts","../src/cli/helpers/issue-tracker/index.ts","../src/cli/helpers/issue-tracker/jira.ts","../src/cli/helpers/issue-tracker/types.ts","../src/cli/helpers/issue-tracker/utils.ts","../src/core/comment-builder.ts","../src/core/config-manager.ts","../src/core/cost-tracker.ts","../src/core/credentials-manager.ts","../src/core/increment-status.ts","../src/core/plugin-loader.ts","../src/core/project-manager.ts","../src/core/project-structure-detector.ts","../src/core/rfc-generator-v2.ts","../src/core/spec-content-sync.ts","../src/core/spec-detector.ts","../src/core/spec-identifier-detector.ts","../src/core/spec-task-mapper.ts","../src/core/brownfield/analyzer.ts","../src/core/brownfield/importer.ts","../src/core/cicd/config-loader.ts","../src/core/cicd/index.ts","../src/core/cicd/monitor-service.ts","../src/core/cicd/notifier.ts","../src/core/cicd/parent-repo-validator.ts","../src/core/cicd/state-manager.ts","../src/core/cicd/types.ts","../src/core/cicd/workflow-monitor.ts","../src/core/i18n/language-detector.ts","../src/core/i18n/language-manager.ts","../src/core/i18n/language-registry.ts","../src/core/i18n/locale-manager.ts","../src/core/i18n/system-prompt-injector.ts","../src/core/i18n/types.ts","../src/core/increment/active-increment-manager.ts","../src/core/increment/discipline-checker.ts","../src/core/increment/limits.ts","../src/core/increment/metadata-manager.ts","../src/core/increment/metadata-validator.ts","../src/core/increment/status-commands.ts","../src/core/increment/types.ts","../src/core/living-docs/content-classifier.ts","../src/core/living-docs/content-distributor.ts","../src/core/living-docs/content-parser.ts","../src/core/living-docs/cross-linker.ts","../src/core/living-docs/index.ts","../src/core/living-docs/project-detector.ts","../src/core/living-docs/spec-distributor.ts","../src/core/living-docs/types.ts","../src/core/qa/qa-runner.ts","../src/core/qa/quality-gate-decider.ts","../src/core/qa/risk-calculator.ts","../src/core/qa/types.ts","../src/core/repo-structure/folder-detector.ts","../src/core/repo-structure/github-validator.ts","../src/core/repo-structure/prompt-consolidator.ts","../src/core/repo-structure/repo-id-generator.ts","../src/core/repo-structure/repo-structure-manager.ts","../src/core/repo-structure/setup-state-manager.ts","../src/core/repo-structure/setup-summary.ts","../src/core/specs/spec-metadata-manager.ts","../src/core/specs/spec-parser.ts","../src/core/status-line/status-line-manager.ts","../src/core/status-line/types.ts","../src/core/sync/bidirectional-engine.ts","../src/core/sync/conflict-resolver.ts","../src/core/sync/enhanced-content-builder.ts","../src/core/sync/folder-mapper.ts","../src/core/sync/profile-manager.ts","../src/core/sync/profile-selector.ts","../src/core/sync/profile-validator.ts","../src/core/sync/project-context.ts","../src/core/sync/rate-limiter.ts","../src/core/sync/retry-logic.ts","../src/core/sync/spec-increment-mapper.ts","../src/core/sync/status-cache.ts","../src/core/sync/status-mapper.ts","../src/core/sync/status-sync-engine.ts","../src/core/sync/sync-event-logger.ts","../src/core/sync/time-range-selector.ts","../src/core/sync/workflow-detector.ts","../src/core/types/config.ts","../src/core/types/increment-metadata.ts","../src/core/types/plugin.ts","../src/core/types/spec-identifier.ts","../src/core/types/spec-metadata.ts","../src/core/types/sync-profile.ts","../src/integrations/ado/ado-client.ts","../src/integrations/jira/jira-client.ts","../src/integrations/jira/jira-incremental-mapper.ts","../src/integrations/jira/jira-mapper.ts","../src/metrics/dora-calculator.ts","../src/metrics/github-client.ts","../src/metrics/report-generator.ts","../src/metrics/types.ts","../src/metrics/calculators/change-failure-rate.ts","../src/metrics/calculators/deployment-frequency.ts","../src/metrics/calculators/lead-time.ts","../src/metrics/calculators/mttr.ts","../src/metrics/utils/percentile.ts","../src/metrics/utils/tier-classifier.ts","../src/testing/test-generator.ts","../src/types/cost-tracking.ts","../src/types/model-selection.ts","../src/utils/agents-md-compiler.ts","../src/utils/auth-helpers.ts","../src/utils/auto-install.ts","../src/utils/claude-cli-detector.ts","../src/utils/cost-reporter.ts","../src/utils/env-file-generator.ts","../src/utils/env-file.ts","../src/utils/env-multi-project-parser.ts","../src/utils/esm-helpers.ts","../src/utils/execfilenothrow.ts","../src/utils/external-resource-validator.ts","../src/utils/generate-skills-index.ts","../src/utils/git-detector.ts","../src/utils/git-utils.ts","../src/utils/model-selection.ts","../src/utils/plugin-validator.ts","../src/utils/pricing-constants.ts","../src/utils/project-detection.ts","../src/utils/project-mapper.ts","../src/utils/project-validator.ts","../src/utils/spec-parser.ts","../src/utils/spec-splitter.ts","../src/utils/string-utils.ts","../src/utils/translation.ts","../src/utils/docs-preview/config-generator.ts","../src/utils/docs-preview/docusaurus-setup.ts","../src/utils/docs-preview/index.ts","../src/utils/docs-preview/package-installer.ts","../src/utils/docs-preview/server-manager.ts","../src/utils/docs-preview/sidebar-builder.ts","../src/utils/docs-preview/types.ts","../plugins/specweave/lib/hooks/git-diff-analyzer.ts","../plugins/specweave/lib/hooks/invoke-translator-skill.ts","../plugins/specweave/lib/hooks/prepare-reflection-context.ts","../plugins/specweave/lib/hooks/reflection-config-loader.ts","../plugins/specweave/lib/hooks/reflection-parser.ts","../plugins/specweave/lib/hooks/reflection-prompt-builder.ts","../plugins/specweave/lib/hooks/reflection-storage.ts","../plugins/specweave/lib/hooks/run-self-reflection.ts","../plugins/specweave/lib/hooks/sync-living-docs.ts","../plugins/specweave/lib/hooks/translate-file.ts","../plugins/specweave/lib/hooks/translate-living-docs.ts","../plugins/specweave/lib/hooks/update-tasks-md.ts","../plugins/specweave/lib/hooks/types/reflection-types.ts","../plugins/specweave-ado/lib/ado-board-resolver.d.ts","../plugins/specweave-ado/lib/ado-client-v2.ts","../plugins/specweave-ado/lib/ado-client.ts","../plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts","../plugins/specweave-ado/lib/ado-spec-commit-sync.ts","../plugins/specweave-ado/lib/ado-spec-content-sync.ts","../plugins/specweave-ado/lib/ado-spec-sync.ts","../plugins/specweave-ado/lib/ado-status-sync.ts","../plugins/specweave-ado/lib/enhanced-ado-sync.ts","../plugins/specweave-ado/lib/project-selector.d.ts","../plugins/specweave-github/lib/cli-sync-increment-changes.ts","../plugins/specweave-github/lib/enhanced-github-sync.ts","../plugins/specweave-github/lib/github-board-resolver.d.ts","../plugins/specweave-github/lib/github-client-v2.ts","../plugins/specweave-github/lib/github-client.ts","../plugins/specweave-github/lib/github-epic-sync.ts","../plugins/specweave-github/lib/github-hierarchical-sync.d.ts","../plugins/specweave-github/lib/github-issue-updater.ts","../plugins/specweave-github/lib/github-spec-commit-sync.ts","../plugins/specweave-github/lib/github-spec-content-sync.ts","../plugins/specweave-github/lib/github-spec-sync.ts","../plugins/specweave-github/lib/github-status-sync.ts","../plugins/specweave-github/lib/github-sync-bidirectional.ts","../plugins/specweave-github/lib/github-sync-increment-changes.ts","../plugins/specweave-github/lib/index.ts","../plugins/specweave-github/lib/repo-selector.d.ts","../plugins/specweave-github/lib/subtask-sync.ts","../plugins/specweave-github/lib/task-parser.ts","../plugins/specweave-github/lib/task-sync.ts","../plugins/specweave-github/lib/types.ts","../plugins/specweave-jira/lib/enhanced-jira-sync.ts","../plugins/specweave-jira/lib/jira-board-resolver.d.ts","../plugins/specweave-jira/lib/jira-epic-sync.ts","../plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts","../plugins/specweave-jira/lib/jira-spec-commit-sync.ts","../plugins/specweave-jira/lib/jira-spec-content-sync.ts","../plugins/specweave-jira/lib/jira-spec-sync.ts","../plugins/specweave-jira/lib/jira-status-sync.ts","../plugins/specweave-jira/lib/project-selector.d.ts","../plugins/specweave-jira/lib/reorganization-detector.ts","../plugins/specweave-jira/lib/setup-wizard.ts","../plugins/specweave-release/lib/dashboard-generator.ts","../plugins/specweave-release/lib/dora-tracker.ts"],"errors":true,"version":"5.9.3"}
|
|
@@ -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
|
|
@@ -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
|