specweave 0.33.4 → 0.33.6
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-plugin/README.md +13 -13
- package/.claude-plugin/marketplace.json +26 -37
- package/CLAUDE.md +445 -80
- package/README.md +34 -31
- package/bin/fix-marketplace-errors.sh +1 -1
- package/bin/install-commands.sh +2 -2
- package/bin/specweave.js +58 -1
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.d.ts +5 -0
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js +14 -4
- package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js.map +1 -1
- package/dist/plugins/specweave-github/lib/completion-calculator.d.ts +1 -0
- package/dist/plugins/specweave-github/lib/completion-calculator.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/completion-calculator.js +2 -0
- package/dist/plugins/specweave-github/lib/completion-calculator.js.map +1 -1
- package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/duplicate-detector.js +20 -6
- package/dist/plugins/specweave-github/lib/duplicate-detector.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +9 -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 +31 -18
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +7 -0
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.js +47 -11
- package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +39 -13
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-issue-updater.js +15 -3
- package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +7 -0
- package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-sync.js +17 -4
- package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +13 -3
- package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +14 -4
- package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.map +1 -1
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js +24 -8
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -1
- package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/user-story-content-builder.js +21 -18
- package/dist/plugins/specweave-github/lib/user-story-content-builder.js.map +1 -1
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts +3 -0
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +20 -19
- package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
- package/dist/src/cli/cleanup-zombies.js +34 -18
- package/dist/src/cli/cleanup-zombies.js.map +1 -1
- package/dist/src/cli/commands/discrepancies.js +6 -6
- package/dist/src/cli/commands/discrepancies.js.map +1 -1
- package/dist/src/cli/commands/docs.js +1 -1
- package/dist/src/cli/commands/docs.js.map +1 -1
- package/dist/src/cli/commands/import-docs.d.ts +1 -1
- package/dist/src/cli/commands/import-docs.js +2 -2
- package/dist/src/cli/commands/import-docs.js.map +1 -1
- package/dist/src/cli/commands/import-external.d.ts +1 -1
- package/dist/src/cli/commands/import-external.js +1 -1
- package/dist/src/cli/commands/init-multiproject.d.ts +1 -1
- package/dist/src/cli/commands/init-multiproject.js +3 -3
- package/dist/src/cli/commands/init-multiproject.js.map +1 -1
- package/dist/src/cli/commands/init.js +2 -2
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/jobs.js +19 -2
- package/dist/src/cli/commands/jobs.js.map +1 -1
- package/dist/src/cli/commands/living-docs.d.ts +1 -0
- package/dist/src/cli/commands/living-docs.d.ts.map +1 -1
- package/dist/src/cli/commands/living-docs.js +19 -3
- package/dist/src/cli/commands/living-docs.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.js +1 -1
- package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-profiles.js +1 -1
- package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -1
- package/dist/src/cli/commands/next-command.d.ts +1 -1
- package/dist/src/cli/commands/next-command.js +9 -9
- package/dist/src/cli/commands/next-command.js.map +1 -1
- package/dist/src/cli/commands/notifications.js +3 -3
- package/dist/src/cli/commands/notifications.js.map +1 -1
- package/dist/src/cli/commands/plan/increment-detector.js +2 -2
- package/dist/src/cli/commands/plan/increment-detector.js.map +1 -1
- package/dist/src/cli/commands/plan/plan-orchestrator.d.ts +2 -2
- package/dist/src/cli/commands/plan/plan-orchestrator.js +2 -2
- package/dist/src/cli/commands/plan/plan-validator.js +2 -2
- package/dist/src/cli/commands/plan/plan-validator.js.map +1 -1
- package/dist/src/cli/commands/plan/types.d.ts +1 -1
- package/dist/src/cli/commands/plan/types.js +1 -1
- package/dist/src/cli/commands/plan-command.d.ts +3 -3
- package/dist/src/cli/commands/plan-command.js +12 -12
- package/dist/src/cli/commands/plan-command.js.map +1 -1
- package/dist/src/cli/commands/project.d.ts +77 -0
- package/dist/src/cli/commands/project.d.ts.map +1 -0
- package/dist/src/cli/commands/project.js +526 -0
- package/dist/src/cli/commands/project.js.map +1 -0
- package/dist/src/cli/commands/save.d.ts +49 -0
- package/dist/src/cli/commands/save.d.ts.map +1 -0
- package/dist/src/cli/commands/save.js +583 -0
- package/dist/src/cli/commands/save.js.map +1 -0
- package/dist/src/cli/commands/sync-spec-commits.js +15 -6
- package/dist/src/cli/commands/sync-spec-commits.js.map +1 -1
- package/dist/src/cli/commands/sync-spec-content.js +15 -6
- package/dist/src/cli/commands/sync-spec-content.js.map +1 -1
- package/dist/src/cli/helpers/init/ado-repo-cloning.js +2 -2
- package/dist/src/cli/helpers/init/ado-repo-cloning.js.map +1 -1
- package/dist/src/cli/helpers/init/bitbucket-repo-cloning.d.ts +1 -1
- package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js +3 -3
- package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js.map +1 -1
- package/dist/src/cli/helpers/init/brownfield-analysis.js +18 -18
- package/dist/src/cli/helpers/init/brownfield-analysis.js.map +1 -1
- package/dist/src/cli/helpers/init/directory-structure.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/directory-structure.js +3 -0
- package/dist/src/cli/helpers/init/directory-structure.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import-grouping.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import-grouping.js +11 -7
- package/dist/src/cli/helpers/init/external-import-grouping.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +18 -18
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/github-repo-cloning.d.ts +1 -1
- package/dist/src/cli/helpers/init/github-repo-cloning.js +3 -3
- package/dist/src/cli/helpers/init/github-repo-cloning.js.map +1 -1
- package/dist/src/cli/helpers/init/initial-increment-generator.js +12 -12
- package/dist/src/cli/helpers/init/living-docs-preflight.js +5 -5
- package/dist/src/cli/helpers/init/living-docs-preflight.js.map +1 -1
- package/dist/src/cli/helpers/init/next-steps.js +9 -9
- package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
- package/dist/src/cli/helpers/init/plugin-installer.js +3 -3
- package/dist/src/cli/helpers/init/plugin-installer.js.map +1 -1
- package/dist/src/cli/helpers/init/translation-config.js +9 -9
- package/dist/src/cli/helpers/init/translation-config.js.map +1 -1
- package/dist/src/cli/helpers/init/types.d.ts +1 -1
- package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado.js +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/github.js +1 -1
- package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js +2 -2
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/jira.js +1 -1
- package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -1
- package/dist/src/cli/update-status-line.js +1 -1
- package/dist/src/cli/update-status-line.js.map +1 -1
- package/dist/src/cli/workers/brownfield-worker.js +1 -1
- package/dist/src/cli/workers/brownfield-worker.js.map +1 -1
- package/dist/src/cli/workers/clone-worker.js +22 -5
- package/dist/src/cli/workers/clone-worker.js.map +1 -1
- package/dist/src/cli/workers/import-worker.js +1 -1
- package/dist/src/cli/workers/import-worker.js.map +1 -1
- package/dist/src/core/background/brownfield-launcher.js +4 -4
- package/dist/src/core/background/brownfield-launcher.js.map +1 -1
- package/dist/src/core/background/index.d.ts +3 -3
- package/dist/src/core/background/index.js +3 -3
- package/dist/src/core/background/job-dependency.d.ts.map +1 -1
- package/dist/src/core/background/job-dependency.js +1 -0
- package/dist/src/core/background/job-dependency.js.map +1 -1
- package/dist/src/core/background/job-launcher.d.ts +1 -1
- package/dist/src/core/background/job-launcher.js +5 -5
- package/dist/src/core/background/job-launcher.js.map +1 -1
- package/dist/src/core/background/job-manager.d.ts +8 -0
- package/dist/src/core/background/job-manager.d.ts.map +1 -1
- package/dist/src/core/background/job-manager.js +19 -1
- package/dist/src/core/background/job-manager.js.map +1 -1
- package/dist/src/core/background/types.d.ts +9 -1
- package/dist/src/core/background/types.d.ts.map +1 -1
- package/dist/src/core/background/types.js +8 -1
- package/dist/src/core/background/types.js.map +1 -1
- package/dist/src/core/brownfield/importer.js +1 -1
- package/dist/src/core/brownfield/importer.js.map +1 -1
- package/dist/src/core/config/config-manager.d.ts +7 -1
- package/dist/src/core/config/config-manager.d.ts.map +1 -1
- package/dist/src/core/config/config-manager.js +24 -2
- package/dist/src/core/config/config-manager.js.map +1 -1
- package/dist/src/core/config/single-project-migrator.d.ts +110 -0
- package/dist/src/core/config/single-project-migrator.d.ts.map +1 -0
- package/dist/src/core/config/single-project-migrator.js +179 -0
- package/dist/src/core/config/single-project-migrator.js.map +1 -0
- package/dist/src/core/config/types.d.ts +3 -3
- package/dist/src/core/credentials/credentials-manager.d.ts +25 -4
- package/dist/src/core/credentials/credentials-manager.d.ts.map +1 -1
- package/dist/src/core/credentials/credentials-manager.js +54 -15
- package/dist/src/core/credentials/credentials-manager.js.map +1 -1
- package/dist/src/core/deduplication/command-deduplicator.d.ts +4 -4
- package/dist/src/core/deduplication/command-deduplicator.d.ts.map +1 -1
- package/dist/src/core/deduplication/command-deduplicator.js +3 -3
- package/dist/src/core/external-tools/external-items-counter.d.ts +4 -4
- package/dist/src/core/external-tools/external-items-counter.js +4 -4
- package/dist/src/core/external-tools/external-items-display.js +4 -4
- package/dist/src/core/external-tools/external-items-display.js.map +1 -1
- package/dist/src/core/increment/completion-validator.js +3 -3
- package/dist/src/core/increment/completion-validator.js.map +1 -1
- package/dist/src/core/increment/conflict-resolver.js +2 -2
- package/dist/src/core/increment/conflict-resolver.js.map +1 -1
- package/dist/src/core/increment/desync-detector.d.ts +1 -1
- package/dist/src/core/increment/desync-detector.js +3 -3
- package/dist/src/core/increment/desync-detector.js.map +1 -1
- package/dist/src/core/increment/discipline-checker.js +2 -2
- package/dist/src/core/increment/discipline-checker.js.map +1 -1
- package/dist/src/core/increment/increment-archiver.js +4 -4
- package/dist/src/core/increment/increment-archiver.js.map +1 -1
- package/dist/src/core/increment/increment-utils.d.ts +53 -2
- package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
- package/dist/src/core/increment/increment-utils.js +78 -7
- package/dist/src/core/increment/increment-utils.js.map +1 -1
- package/dist/src/core/increment/metadata-manager.js +6 -6
- package/dist/src/core/increment/metadata-manager.js.map +1 -1
- package/dist/src/core/increment/metadata-validator.js +1 -1
- package/dist/src/core/increment/metadata-validator.js.map +1 -1
- package/dist/src/core/increment/recent-work-scanner.js +2 -2
- package/dist/src/core/increment/recent-work-scanner.js.map +1 -1
- package/dist/src/core/increment/spec-sync-manager.js +1 -1
- package/dist/src/core/increment/spec-sync-manager.js.map +1 -1
- package/dist/src/core/increment/status-auto-transition.d.ts +68 -1
- package/dist/src/core/increment/status-auto-transition.d.ts.map +1 -1
- package/dist/src/core/increment/status-auto-transition.js +141 -1
- package/dist/src/core/increment/status-auto-transition.js.map +1 -1
- package/dist/src/core/increment/status-change-sync-trigger.d.ts +1 -1
- package/dist/src/core/increment/status-change-sync-trigger.js +3 -3
- package/dist/src/core/increment/status-change-sync-trigger.js.map +1 -1
- package/dist/src/core/living-docs/cross-project-sync.d.ts +12 -0
- package/dist/src/core/living-docs/cross-project-sync.d.ts.map +1 -1
- package/dist/src/core/living-docs/cross-project-sync.js +33 -0
- package/dist/src/core/living-docs/cross-project-sync.js.map +1 -1
- package/dist/src/core/living-docs/feature-archiver.d.ts +3 -3
- package/dist/src/core/living-docs/feature-archiver.js +3 -3
- package/dist/src/core/living-docs/feature-consistency-validator.js +1 -1
- package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
- package/dist/src/core/living-docs/feature-id-manager.d.ts +5 -0
- package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -1
- package/dist/src/core/living-docs/feature-id-manager.js +19 -1
- package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
- package/dist/src/core/living-docs/governance/standards-generator.js +1 -1
- package/dist/src/core/living-docs/governance/standards-generator.js.map +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.d.ts +5 -0
- package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
- package/dist/src/core/living-docs/hierarchy-mapper.js +22 -2
- package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.d.ts +1 -0
- package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.js +77 -8
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
- package/dist/src/core/living-docs/project-detector.d.ts +9 -0
- package/dist/src/core/living-docs/project-detector.d.ts.map +1 -1
- package/dist/src/core/living-docs/project-detector.js +38 -3
- package/dist/src/core/living-docs/project-detector.js.map +1 -1
- package/dist/src/core/living-docs/suggestions-generator.js +1 -1
- package/dist/src/core/living-docs/suggestions-generator.js.map +1 -1
- package/dist/src/core/notifications/command-integration.js +1 -1
- package/dist/src/core/notifications/command-integration.js.map +1 -1
- package/dist/src/core/project/adapters/ado-project-adapter.d.ts +73 -0
- package/dist/src/core/project/adapters/ado-project-adapter.d.ts.map +1 -0
- package/dist/src/core/project/adapters/ado-project-adapter.js +304 -0
- package/dist/src/core/project/adapters/ado-project-adapter.js.map +1 -0
- package/dist/src/core/project/adapters/github-project-adapter.d.ts +76 -0
- package/dist/src/core/project/adapters/github-project-adapter.d.ts.map +1 -0
- package/dist/src/core/project/adapters/github-project-adapter.js +315 -0
- package/dist/src/core/project/adapters/github-project-adapter.js.map +1 -0
- package/dist/src/core/project/adapters/jira-project-adapter.d.ts +69 -0
- package/dist/src/core/project/adapters/jira-project-adapter.d.ts.map +1 -0
- package/dist/src/core/project/adapters/jira-project-adapter.js +241 -0
- package/dist/src/core/project/adapters/jira-project-adapter.js.map +1 -0
- package/dist/src/core/project/project-event-bus.d.ts +72 -0
- package/dist/src/core/project/project-event-bus.d.ts.map +1 -0
- package/dist/src/core/project/project-event-bus.js +150 -0
- package/dist/src/core/project/project-event-bus.js.map +1 -0
- package/dist/src/core/project/project-manager.d.ts +0 -22
- package/dist/src/core/project/project-manager.d.ts.map +1 -1
- package/dist/src/core/project/project-manager.js +5 -275
- package/dist/src/core/project/project-manager.js.map +1 -1
- package/dist/src/core/project/project-registry.d.ts +93 -0
- package/dist/src/core/project/project-registry.d.ts.map +1 -0
- package/dist/src/core/project/project-registry.js +448 -0
- package/dist/src/core/project/project-registry.js.map +1 -0
- package/dist/src/core/project/project-resolution.d.ts +229 -0
- package/dist/src/core/project/project-resolution.d.ts.map +1 -0
- package/dist/src/core/project/project-resolution.js +633 -0
- package/dist/src/core/project/project-resolution.js.map +1 -0
- package/dist/src/core/project/types/project-types.d.ts +214 -0
- package/dist/src/core/project/types/project-types.d.ts.map +1 -0
- package/dist/src/core/project/types/project-types.js +9 -0
- package/dist/src/core/project/types/project-types.js.map +1 -0
- package/dist/src/core/repo-structure/setup-summary.js +2 -2
- package/dist/src/core/repo-structure/setup-summary.js.map +1 -1
- package/dist/src/core/specs/spec-identifier-detector.d.ts.map +1 -1
- package/dist/src/core/specs/spec-identifier-detector.js +8 -5
- package/dist/src/core/specs/spec-identifier-detector.js.map +1 -1
- package/dist/src/core/status-line/status-line-updater.js +1 -1
- package/dist/src/core/status-line/status-line-updater.js.map +1 -1
- package/dist/src/core/types/increment-metadata.d.ts +3 -3
- package/dist/src/core/types/increment-metadata.js +3 -3
- package/dist/src/core/types/increment-metadata.js.map +1 -1
- package/dist/src/core/types/sync-profile.d.ts +1 -0
- package/dist/src/core/types/sync-profile.d.ts.map +1 -1
- package/dist/src/core/types/sync-profile.js.map +1 -1
- package/dist/src/core/validators/ac-presence-validator.d.ts +4 -4
- package/dist/src/core/validators/ac-presence-validator.js +3 -3
- package/dist/src/core/validators/ac-presence-validator.js.map +1 -1
- package/dist/src/core/workflow/backlog-scanner.d.ts +5 -0
- package/dist/src/core/workflow/backlog-scanner.d.ts.map +1 -1
- package/dist/src/core/workflow/backlog-scanner.js +14 -2
- package/dist/src/core/workflow/backlog-scanner.js.map +1 -1
- package/dist/src/core/workflow/phase-detector.js +17 -17
- package/dist/src/core/workflow/phase-detector.js.map +1 -1
- package/dist/src/core/workflow/types.d.ts +1 -1
- package/dist/src/core/workflow/types.d.ts.map +1 -1
- package/dist/src/core/workflow/workflow-orchestrator.d.ts +1 -1
- package/dist/src/core/workflow/workflow-orchestrator.js +9 -9
- package/dist/src/core/workflow/workflow-orchestrator.js.map +1 -1
- package/dist/src/hooks/scheduler-startup.js +1 -1
- package/dist/src/hooks/scheduler-startup.js.map +1 -1
- package/dist/src/importers/external-importer.d.ts +26 -5
- package/dist/src/importers/external-importer.d.ts.map +1 -1
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +19 -2
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/importers/jira-importer.d.ts.map +1 -1
- package/dist/src/importers/jira-importer.js +15 -1
- package/dist/src/importers/jira-importer.js.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +17 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.js +20 -12
- package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
- package/dist/src/integrations/jira/jira-mapper.d.ts +17 -1
- package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-mapper.js +13 -5
- package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
- package/dist/src/living-docs/enterprise-analyzer.js +1 -1
- package/dist/src/living-docs/enterprise-analyzer.js.map +1 -1
- package/dist/src/living-docs/smart-doc-organizer.js +1 -1
- package/dist/src/living-docs/smart-doc-organizer.js.map +1 -1
- package/dist/src/sync/ado-reconciler.d.ts +5 -0
- package/dist/src/sync/ado-reconciler.d.ts.map +1 -1
- package/dist/src/sync/ado-reconciler.js +16 -4
- package/dist/src/sync/ado-reconciler.js.map +1 -1
- package/dist/src/sync/jira-reconciler.d.ts +3 -0
- package/dist/src/sync/jira-reconciler.d.ts.map +1 -1
- package/dist/src/sync/jira-reconciler.js +12 -5
- package/dist/src/sync/jira-reconciler.js.map +1 -1
- package/dist/src/types/dashboard-cache.d.ts +4 -2
- package/dist/src/types/dashboard-cache.d.ts.map +1 -1
- package/dist/src/types/dashboard-cache.js +1 -1
- package/dist/src/types/dashboard-cache.js.map +1 -1
- package/dist/src/utils/ac-embedder.d.ts +1 -1
- package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/config-generator.js +4 -0
- package/dist/src/utils/docs-preview/config-generator.js.map +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.js +2 -2
- package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
- package/dist/src/utils/docs-preview/sidebar-builder.js +1 -1
- package/dist/src/utils/env-multi-project-parser.d.ts +17 -0
- package/dist/src/utils/env-multi-project-parser.d.ts.map +1 -1
- package/dist/src/utils/env-multi-project-parser.js +26 -1
- package/dist/src/utils/env-multi-project-parser.js.map +1 -1
- package/dist/src/utils/external-tool-drift-detector.d.ts +2 -2
- package/dist/src/utils/external-tool-drift-detector.js +6 -6
- package/dist/src/utils/external-tool-drift-detector.js.map +1 -1
- package/dist/src/utils/notification-constants.d.ts +8 -6
- package/dist/src/utils/notification-constants.d.ts.map +1 -1
- package/dist/src/utils/notification-constants.js +10 -8
- package/dist/src/utils/notification-constants.js.map +1 -1
- package/dist/src/utils/notification-manager.d.ts +36 -3
- package/dist/src/utils/notification-manager.d.ts.map +1 -1
- package/dist/src/utils/notification-manager.js +80 -49
- package/dist/src/utils/notification-manager.js.map +1 -1
- package/dist/src/utils/platform-utils.d.ts +12 -3
- package/dist/src/utils/platform-utils.d.ts.map +1 -1
- package/dist/src/utils/platform-utils.js +35 -16
- package/dist/src/utils/platform-utils.js.map +1 -1
- package/dist/src/utils/plugin-validator.js +11 -11
- package/dist/src/utils/plugin-validator.js.map +1 -1
- package/dist/src/validators/ac-coverage-validator.d.ts +1 -1
- package/dist/src/validators/ac-coverage-validator.js +1 -1
- package/package.json +3 -1
- package/plugins/PLUGINS-INDEX.md +1 -2
- package/plugins/specweave/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave/COMMANDS.md +49 -49
- package/plugins/specweave/agents/pm/AGENT.md +18 -18
- package/plugins/specweave/agents/test-aware-planner/AGENT.md +7 -7
- package/plugins/specweave/agents/translator/AGENT.md +2 -2
- package/plugins/specweave/commands/{specweave-abandon.md → abandon.md} +20 -20
- package/plugins/specweave/commands/{specweave-analyze-standards.sh → analyze-standards.sh} +4 -4
- package/plugins/specweave/commands/{specweave-archive-features.md → archive-features.md} +7 -7
- package/plugins/specweave/commands/{specweave-archive.md → archive.md} +36 -36
- package/plugins/specweave/commands/{specweave-backlog.md → backlog.md} +24 -24
- package/plugins/specweave/commands/{specweave-check-hooks.md → check-hooks.md} +10 -10
- package/plugins/specweave/commands/{specweave-check-tests.md → check-tests.md} +14 -14
- package/plugins/specweave/commands/{specweave-costs.md → costs.md} +8 -8
- package/plugins/specweave/commands/{specweave-discrepancies.md → discrepancies.md} +15 -15
- package/plugins/specweave/commands/{specweave-discrepancy-to-increment.md → discrepancy-to-increment.md} +10 -10
- package/plugins/specweave/commands/{specweave-do.md → do.md} +37 -39
- package/plugins/specweave/commands/{specweave-done.md → done.md} +23 -23
- package/plugins/specweave/commands/{specweave-embed-acs.md → embed-acs.md} +21 -21
- package/plugins/specweave/commands/{specweave-external.md → external.md} +11 -11
- package/plugins/specweave/commands/{specweave-fix-duplicates.md → fix-duplicates.md} +16 -16
- package/plugins/specweave/commands/{specweave-import-docs.md → import-docs.md} +7 -7
- package/plugins/specweave/commands/{specweave-import-external.md → import-external.md} +9 -9
- package/plugins/specweave/commands/{specweave-increment.md → increment.md} +17 -17
- package/plugins/specweave/commands/{specweave-jobs.md → jobs.md} +28 -28
- package/plugins/specweave/commands/judge-llm.md +296 -0
- package/plugins/specweave/commands/{specweave-living-docs.md → living-docs.md} +72 -29
- package/plugins/specweave/commands/migrate-config.md +2 -2
- package/plugins/specweave/commands/{specweave-next.md → next.md} +20 -20
- package/plugins/specweave/commands/{specweave-notifications.md → notifications.md} +11 -11
- package/plugins/specweave/commands/{specweave-organize-docs.md → organize-docs.md} +9 -9
- package/plugins/specweave/commands/{specweave-pause.md → pause.md} +19 -19
- package/plugins/specweave/commands/{specweave-plan.md → plan.md} +19 -19
- package/plugins/specweave/commands/{specweave-progress.md → progress.md} +6 -6
- package/plugins/specweave/commands/{specweave-qa.md → qa.md} +15 -15
- package/plugins/specweave/commands/{specweave-reopen.md → reopen.md} +41 -41
- package/plugins/specweave/commands/{specweave-restore-feature.md → restore-feature.md} +6 -6
- package/plugins/specweave/commands/{specweave-restore.md → restore.md} +26 -26
- package/plugins/specweave/commands/{specweave-resume.md → resume.md} +33 -33
- package/plugins/specweave/commands/revert-wip-limit.md +4 -4
- package/plugins/specweave/commands/{specweave-save.md → save.md} +34 -34
- package/plugins/specweave/commands/{specweave-status.md → status.md} +29 -29
- package/plugins/specweave/commands/{specweave.md → sw.md} +28 -28
- package/plugins/specweave/commands/{specweave-sync-acs.md → sync-acs.md} +12 -12
- package/plugins/specweave/commands/sync-diagnostics.md +5 -5
- package/plugins/specweave/commands/{specweave-sync-docs.md → sync-docs.md} +7 -7
- package/plugins/specweave/commands/{specweave-sync-logs.md → sync-logs.md} +14 -14
- package/plugins/specweave/commands/{specweave-sync-monitor.md → sync-monitor.md} +5 -5
- package/plugins/specweave/commands/{specweave-sync-progress.md → sync-progress.md} +38 -38
- package/plugins/specweave/commands/{specweave-sync-specs.md → sync-specs.md} +17 -17
- package/plugins/specweave/commands/{specweave-sync-status.md → sync-status.md} +16 -16
- package/plugins/specweave/commands/{specweave-sync-tasks.md → sync-tasks.md} +13 -13
- package/plugins/specweave/commands/{specweave-tdd-cycle.md → tdd-cycle.md} +1 -1
- package/plugins/specweave/commands/{specweave-tdd-green.md → tdd-green.md} +1 -1
- package/plugins/specweave/commands/{specweave-tdd-red.md → tdd-red.md} +1 -1
- package/plugins/specweave/commands/{specweave-tdd-refactor.md → tdd-refactor.md} +1 -1
- package/plugins/specweave/commands/{specweave-translate.md → translate.md} +17 -17
- package/plugins/specweave/commands/{specweave-update-scope.md → update-scope.md} +8 -8
- package/plugins/specweave/commands/{specweave-update-status.md → update-status.md} +6 -6
- package/plugins/specweave/commands/{specweave-validate-features.md → validate-features.md} +8 -8
- package/plugins/specweave/commands/{specweave-validate.md → validate.md} +20 -20
- package/plugins/specweave/commands/{specweave-workflow.md → workflow.md} +40 -40
- package/plugins/specweave/hooks/README.md +5 -5
- package/plugins/specweave/hooks/config-env-separator.sh +99 -0
- package/plugins/specweave/hooks/github-metadata-guard.sh +73 -0
- package/plugins/specweave/hooks/hooks.json +41 -1
- package/plugins/specweave/hooks/post-first-increment.sh +2 -2
- package/plugins/specweave/hooks/post-increment-completion.sh +7 -7
- package/plugins/specweave/hooks/post-increment-planning.sh +11 -11
- package/plugins/specweave/hooks/post-increment-status-change.sh +1 -1
- package/plugins/specweave/hooks/post-metadata-change.sh +1 -1
- package/plugins/specweave/hooks/post-spec-update.sh +2 -2
- package/plugins/specweave/hooks/post-task-completion.sh +2 -2
- package/plugins/specweave/hooks/pre-increment-start.sh +7 -7
- package/plugins/specweave/hooks/project-folder-guard.sh +272 -0
- package/plugins/specweave/hooks/spec-project-validator.sh +68 -47
- package/plugins/specweave/hooks/user-prompt-submit.sh +27 -27
- package/plugins/specweave/hooks/v2/guards/completion-guard.sh +2 -2
- package/plugins/specweave/hooks/v2/guards/metadata-json-guard.sh +87 -0
- package/plugins/specweave/hooks/v2/guards/metadata-json-guard.test.sh +302 -0
- package/plugins/specweave/hooks/v2/guards/per-us-project-validator.sh +72 -18
- package/plugins/specweave/hooks/v2/guards/per-us-project-validator.test.sh +406 -0
- package/plugins/specweave/hooks/v2/handlers/github-sync-handler.sh +1 -1
- package/plugins/specweave/lib/hooks/consolidated-sync.js +35 -5
- package/plugins/specweave/lib/hooks/invoke-translator-skill.js +2 -2
- package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +2 -2
- package/plugins/specweave/lib/hooks/prepare-reflection-context.js +1 -1
- package/plugins/specweave/lib/hooks/prepare-reflection-context.ts +1 -1
- package/plugins/specweave/lib/hooks/sync-living-docs.js +5 -5
- package/plugins/specweave/lib/hooks/translate-file.d.ts +1 -1
- package/plugins/specweave/lib/hooks/translate-file.js +2 -2
- package/plugins/specweave/lib/hooks/translate-file.ts +3 -3
- package/plugins/specweave/lib/hooks/us-completion-orchestrator.js +1 -1
- package/plugins/specweave/lib/hooks/us-completion-orchestrator.ts +2 -2
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +6 -6
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
- package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.d.ts +113 -0
- package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js +318 -0
- package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js.map +1 -0
- package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +3 -3
- package/plugins/specweave/lib/vendor/core/types/increment-metadata.js +3 -3
- package/plugins/specweave/lib/vendor/core/types/increment-metadata.js.map +1 -1
- package/plugins/specweave/scripts/README.md +9 -9
- package/plugins/specweave/scripts/cleanup-state.sh +1 -1
- package/plugins/specweave/scripts/jobs.js +2 -2
- package/plugins/specweave/scripts/progress.js +6 -6
- package/plugins/specweave/scripts/read-costs.sh +3 -3
- package/plugins/specweave/scripts/read-jobs.sh +8 -8
- package/plugins/specweave/scripts/read-progress.sh +17 -10
- package/plugins/specweave/scripts/read-status.sh +7 -7
- package/plugins/specweave/scripts/read-workflow.sh +18 -18
- package/plugins/specweave/scripts/rebuild-dashboard-cache.sh +6 -5
- package/plugins/specweave/scripts/session-watchdog.sh +14 -8
- package/plugins/specweave/scripts/status.js +7 -7
- package/plugins/specweave/scripts/update-dashboard-cache.sh +28 -10
- package/plugins/specweave/skills/SKILLS-INDEX.md +4 -4
- package/plugins/specweave/skills/archive-increments/SKILL.md +15 -15
- package/plugins/specweave/skills/brownfield-analyzer/SKILL.md +5 -5
- package/plugins/specweave/skills/code-standards-analyzer/SKILL.md +4 -4
- package/plugins/specweave/skills/context-loader/SKILL.md +1 -1
- package/plugins/specweave/skills/{specweave-detector → detector}/SKILL.md +5 -5
- package/plugins/specweave/skills/discrepancy-viewer.md +4 -4
- package/plugins/specweave/skills/external-sync-wizard/SKILL.md +24 -24
- package/plugins/specweave/skills/{specweave-framework → framework}/SKILL.md +33 -33
- package/plugins/specweave/skills/increment-planner/SKILL.md +25 -24
- package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +6 -16
- package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +6 -12
- package/plugins/specweave/skills/increment-quality-judge-v2/SKILL.md +6 -6
- package/plugins/specweave/skills/increment-work-router/SKILL.md +23 -23
- package/plugins/specweave/skills/instant-status/SKILL.md +7 -7
- package/plugins/specweave/skills/plugin-validator/SKILL.md +9 -9
- package/plugins/specweave/skills/pm-closure-validation/SKILL.md +4 -4
- package/plugins/specweave/skills/progress-sync/SKILL.md +51 -51
- package/plugins/specweave/skills/project-kickstarter/SKILL.md +11 -11
- package/plugins/specweave/skills/role-orchestrator/README.md +1 -1
- package/plugins/specweave/skills/role-orchestrator/SKILL.md +4 -4
- package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +17 -17
- package/plugins/specweave/skills/spec-generator/SKILL.md +6 -6
- package/plugins/specweave/skills/tdd-workflow/SKILL.md +21 -21
- package/plugins/specweave/skills/translator/SKILL.md +4 -4
- package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +5 -5
- package/plugins/specweave-ado/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-ado/agents/ado-manager/AGENT.md +4 -4
- package/plugins/specweave-ado/agents/ado-sync-judge/AGENT.md +4 -4
- package/plugins/specweave-ado/commands/cleanup-duplicates.md +9 -9
- package/plugins/specweave-ado/commands/clone.md +17 -17
- package/plugins/specweave-ado/commands/close.md +10 -10
- package/plugins/specweave-ado/commands/create.md +8 -8
- package/plugins/specweave-ado/commands/import-areas.md +15 -15
- package/plugins/specweave-ado/commands/import-projects.md +12 -12
- package/plugins/specweave-ado/commands/pull.md +25 -25
- package/plugins/specweave-ado/commands/push.md +20 -20
- package/plugins/specweave-ado/commands/reconcile.md +7 -7
- package/plugins/specweave-ado/commands/status.md +7 -7
- package/plugins/specweave-ado/commands/sync.md +17 -17
- package/plugins/specweave-ado/hooks/post-living-docs-update.sh +2 -2
- package/plugins/specweave-ado/lib/ado-project-detector.js +1 -1
- package/plugins/specweave-ado/lib/ado-project-detector.ts +1 -1
- package/plugins/specweave-ado/skills/{specweave-ado-mapper → ado-mapper}/SKILL.md +2 -2
- package/plugins/specweave-ado/skills/ado-multi-project/SKILL.md +6 -6
- package/plugins/specweave-ado/skills/ado-resource-validator/SKILL.md +5 -5
- package/plugins/specweave-ado/skills/ado-sync/SKILL.md +19 -19
- package/plugins/specweave-alternatives/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-alternatives/commands/alternatives-analyze.md +14 -14
- package/plugins/specweave-backend/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-confluent/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-cost-optimizer/commands/cost-analyze.md +1 -1
- package/plugins/specweave-cost-optimizer/commands/cost-optimize.md +1 -1
- package/plugins/specweave-diagrams/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-diagrams/commands/diagrams-generate.md +1 -1
- package/plugins/specweave-docs/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-docs/commands/build.md +9 -9
- package/plugins/specweave-docs/commands/generate.md +22 -22
- package/plugins/specweave-docs/commands/health.md +10 -10
- package/plugins/specweave-docs/commands/init.md +9 -9
- package/plugins/specweave-docs/commands/organize.md +10 -10
- package/plugins/specweave-docs/commands/validate.md +9 -9
- package/plugins/specweave-docs/commands/view.md +391 -0
- package/plugins/specweave-docs/skills/preview/SKILL.md +60 -21
- package/plugins/specweave-figma/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-figma/commands/figma-import.md +1 -1
- package/plugins/specweave-figma/commands/figma-to-react.md +1 -1
- package/plugins/specweave-figma/commands/figma-tokens.md +1 -1
- package/plugins/specweave-frontend/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-frontend/agents/frontend-architect/README.md +5 -5
- package/plugins/specweave-frontend/commands/component-generate.md +1 -1
- package/plugins/specweave-frontend/commands/design-system-init.md +1 -1
- package/plugins/specweave-frontend/commands/frontend-scaffold.md +1 -1
- package/plugins/specweave-frontend/commands/nextjs-setup.md +1 -1
- package/plugins/specweave-github/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-github/MULTI-PROJECT-SYNC-ARCHITECTURE.md +4 -4
- package/plugins/specweave-github/SYNC-ARCHITECTURE-FIX-SUMMARY.md +18 -18
- package/plugins/specweave-github/agents/github-manager/AGENT.md +8 -8
- package/plugins/specweave-github/commands/cleanup-duplicates.md +8 -8
- package/plugins/specweave-github/commands/close.md +25 -25
- package/plugins/specweave-github/commands/create.md +17 -17
- package/plugins/specweave-github/commands/pull.md +12 -12
- package/plugins/specweave-github/commands/push.md +12 -12
- package/plugins/specweave-github/commands/reconcile.md +7 -7
- package/plugins/specweave-github/commands/status.md +24 -24
- package/plugins/specweave-github/commands/sync.md +34 -34
- package/plugins/specweave-github/commands/update-user-story.md +6 -6
- package/plugins/specweave-github/hooks/README.md +8 -8
- package/plugins/specweave-github/hooks/post-task-completion.sh +2 -2
- package/plugins/specweave-github/lib/ThreeLayerSyncManager.js +12 -4
- package/plugins/specweave-github/lib/ThreeLayerSyncManager.ts +16 -4
- package/plugins/specweave-github/lib/completion-calculator.js +3 -1
- package/plugins/specweave-github/lib/completion-calculator.ts +6 -0
- package/plugins/specweave-github/lib/duplicate-detector.js +12 -6
- package/plugins/specweave-github/lib/duplicate-detector.ts +22 -6
- package/plugins/specweave-github/lib/github-board-resolver.js +7 -2
- package/plugins/specweave-github/lib/github-board-resolver.ts +13 -2
- package/plugins/specweave-github/lib/github-client-v2.js +29 -18
- package/plugins/specweave-github/lib/github-client-v2.ts +33 -18
- package/plugins/specweave-github/lib/github-feature-sync.js +41 -11
- package/plugins/specweave-github/lib/github-feature-sync.ts +52 -11
- package/plugins/specweave-github/lib/github-hierarchical-sync.js +6 -1
- package/plugins/specweave-github/lib/github-hierarchical-sync.ts +12 -1
- package/plugins/specweave-github/lib/github-increment-sync-cli.js +35 -17
- package/plugins/specweave-github/lib/github-increment-sync-cli.ts +44 -16
- package/plugins/specweave-github/lib/github-issue-updater.js +8 -3
- package/plugins/specweave-github/lib/github-issue-updater.ts +16 -3
- package/plugins/specweave-github/lib/github-spec-sync.js +14 -4
- package/plugins/specweave-github/lib/github-spec-sync.ts +19 -4
- package/plugins/specweave-github/lib/github-sync-bidirectional.js +8 -3
- package/plugins/specweave-github/lib/github-sync-bidirectional.ts +14 -3
- package/plugins/specweave-github/lib/github-sync-increment-changes.js +9 -4
- package/plugins/specweave-github/lib/github-sync-increment-changes.ts +15 -4
- package/plugins/specweave-github/lib/increment-issue-builder.js +23 -10
- package/plugins/specweave-github/lib/increment-issue-builder.ts +29 -11
- package/plugins/specweave-github/lib/user-story-content-builder.js +19 -16
- package/plugins/specweave-github/lib/user-story-content-builder.ts +24 -19
- package/plugins/specweave-github/lib/user-story-issue-builder.js +10 -13
- package/plugins/specweave-github/lib/user-story-issue-builder.ts +20 -19
- package/plugins/specweave-github/reference/github-specweave-mapping.md +1 -1
- package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +3 -3
- package/plugins/specweave-github/skills/github-issue-tracker/SKILL.md +8 -8
- package/plugins/specweave-github/skills/github-sync/SKILL.md +14 -14
- package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-infrastructure/commands/{specweave-infrastructure-monitor-setup.md → monitor-setup.md} +1 -1
- package/plugins/specweave-infrastructure/commands/{specweave-infrastructure-slo-implement.md → slo-implement.md} +1 -1
- package/plugins/specweave-jira/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-jira/agents/jira-sync-judge/AGENT.md +3 -3
- package/plugins/specweave-jira/commands/cleanup-duplicates.md +9 -9
- package/plugins/specweave-jira/commands/close.md +13 -13
- package/plugins/specweave-jira/commands/create.md +8 -8
- package/plugins/specweave-jira/commands/import-boards.md +15 -15
- package/plugins/specweave-jira/commands/import-projects-full.md +15 -15
- package/plugins/specweave-jira/commands/import-projects.md +10 -10
- package/plugins/specweave-jira/commands/pull.md +10 -10
- package/plugins/specweave-jira/commands/push.md +11 -11
- package/plugins/specweave-jira/commands/reconcile.md +7 -7
- package/plugins/specweave-jira/commands/status.md +16 -16
- package/plugins/specweave-jira/commands/sync.md +27 -27
- package/plugins/specweave-jira/skills/{specweave-jira-mapper → jira-mapper}/SKILL.md +2 -2
- package/plugins/specweave-jira/skills/jira-resource-validator/SKILL.md +4 -4
- package/plugins/specweave-jira/skills/jira-sync/SKILL.md +5 -5
- package/plugins/specweave-kafka/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-kafka/IMPLEMENTATION-COMPLETE.md +10 -10
- package/plugins/specweave-kafka/README.md +12 -12
- package/plugins/specweave-kafka/commands/deploy.md +5 -5
- package/plugins/specweave-kafka/commands/dev-env.md +2 -2
- package/plugins/specweave-kafka/commands/mcp-configure.md +3 -3
- package/plugins/specweave-kafka/commands/monitor-setup.md +3 -3
- package/plugins/specweave-kafka/skills/kafka-architecture/SKILL.md +4 -4
- package/plugins/specweave-kafka/skills/kafka-cli-tools/SKILL.md +5 -5
- package/plugins/specweave-kafka/skills/kafka-mcp-integration/SKILL.md +6 -6
- package/plugins/specweave-kafka-streams/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-kafka-streams/commands/topology.md +4 -4
- package/plugins/specweave-kubernetes/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-ml/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-ml/README.md +9 -9
- package/plugins/specweave-ml/commands/{specweave-ml-deploy.md → deploy.md} +1 -1
- package/plugins/specweave-ml/commands/{specweave-ml-evaluate.md → evaluate.md} +1 -1
- package/plugins/specweave-ml/commands/{specweave-ml-explain.md → explain.md} +1 -1
- package/plugins/specweave-ml/commands/{specweave-ml-pipeline.md → pipeline.md} +1 -1
- package/plugins/specweave-ml/skills/automl-optimizer/SKILL.md +1 -1
- package/plugins/specweave-ml/skills/data-visualizer/SKILL.md +1 -1
- package/plugins/specweave-ml/skills/experiment-tracker/SKILL.md +4 -4
- package/plugins/specweave-ml/skills/feature-engineer/SKILL.md +1 -1
- package/plugins/specweave-ml/skills/ml-deployment-helper/SKILL.md +2 -2
- package/plugins/specweave-ml/skills/ml-pipeline-orchestrator/SKILL.md +10 -10
- package/plugins/specweave-ml/skills/model-registry/SKILL.md +1 -1
- package/plugins/specweave-ml/skills/time-series-forecaster/SKILL.md +1 -1
- package/plugins/specweave-mobile/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-mobile/README.md +2 -2
- package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +2 -2
- package/plugins/specweave-mobile/skills/react-native-setup/SKILL.md +1 -1
- package/plugins/specweave-n8n/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-n8n/commands/workflow-template.md +4 -4
- package/plugins/specweave-payments/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-payments/commands/stripe-setup.md +1 -1
- package/plugins/specweave-payments/commands/subscription-flow.md +1 -1
- package/plugins/specweave-plugin-dev/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-plugin-dev/commands/plugin-create.md +1 -1
- package/plugins/specweave-plugin-dev/commands/plugin-publish.md +1 -1
- package/plugins/specweave-plugin-dev/commands/plugin-test.md +1 -1
- package/plugins/specweave-release/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-release/IMPLEMENTATION.md +14 -14
- package/plugins/specweave-release/README.md +33 -33
- package/plugins/specweave-release/agents/release-manager/AGENT.md +18 -18
- package/plugins/specweave-release/commands/{specweave-release-align.md → align.md} +19 -19
- package/plugins/specweave-release/commands/{specweave-release-init.md → init.md} +19 -19
- package/plugins/specweave-release/commands/{specweave-release-npm.md → npm.md} +14 -14
- package/plugins/specweave-release/commands/{specweave-release-platform.md → platform.md} +17 -17
- package/plugins/specweave-release/commands/{specweave-release-rc.md → rc.md} +37 -37
- package/plugins/specweave-release/hooks/post-task-completion.sh +1 -1
- package/plugins/specweave-release/skills/rc-manager/SKILL.md +12 -12
- package/plugins/specweave-release/skills/release-coordinator/SKILL.md +11 -11
- package/plugins/specweave-release/skills/release-strategy-advisor/SKILL.md +4 -4
- package/plugins/specweave-release/skills/version-aligner/SKILL.md +7 -7
- package/plugins/specweave-testing/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-testing/agents/qa-engineer/README.md +5 -5
- package/plugins/specweave-testing/commands/e2e-setup.md +1 -1
- package/plugins/specweave-testing/commands/test-coverage.md +1 -1
- package/plugins/specweave-testing/commands/test-generate.md +1 -1
- package/plugins/specweave-testing/commands/test-init.md +1 -1
- package/plugins/specweave-tooling/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-tooling/commands/{specweave-tooling-skill-create.md → skill-create.md} +1 -1
- package/plugins/specweave-tooling/commands/{specweave-tooling-skill-package.md → skill-package.md} +1 -1
- package/plugins/specweave-tooling/commands/{specweave-tooling-skill-validate.md → skill-validate.md} +1 -1
- package/plugins/specweave-ui/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-ui/commands/ui-automate.md +9 -9
- package/plugins/specweave-ui/commands/ui-inspect.md +6 -6
- package/src/templates/AGENTS.md.template +73 -77
- package/src/templates/CLAUDE.md.template +23 -19
- package/dist/src/cli/commands/switch-project.d.ts +0 -13
- package/dist/src/cli/commands/switch-project.d.ts.map +0 -1
- package/dist/src/cli/commands/switch-project.js +0 -78
- package/dist/src/cli/commands/switch-project.js.map +0 -1
- package/plugins/specweave/commands/specweave-init-multiproject.md +0 -146
- package/plugins/specweave/commands/specweave-judge.md +0 -276
- package/plugins/specweave-core/.claude-plugin/plugin.json +0 -21
- package/plugins/specweave-core/commands/architecture-review.md +0 -288
- package/plugins/specweave-core/commands/code-review.md +0 -213
- package/plugins/specweave-core/commands/refactor-plan.md +0 -249
- package/plugins/specweave-core/skills/code-quality/SKILL.md +0 -158
- package/plugins/specweave-core/skills/design-patterns/SKILL.md +0 -245
- package/plugins/specweave-core/skills/software-architecture/SKILL.md +0 -84
- package/plugins/specweave-docs/commands/preview.md +0 -274
- /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-1-increment-naming.yaml +0 -0
- /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-2-source-of-truth.yaml +0 -0
- /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-3-increment-discipline.yaml +0 -0
- /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-4-file-placement.yaml +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: sw-github:status
|
|
3
3
|
description: Check GitHub sync status for SpecWeave increment. Shows issue number, sync state, progress, last update, and any sync issues. Useful for troubleshooting and monitoring.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -10,7 +10,7 @@ Display the current GitHub sync status for a SpecWeave increment.
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
/
|
|
13
|
+
/sw:github:status [increment-id] [options]
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
## Arguments
|
|
@@ -28,22 +28,22 @@ Display the current GitHub sync status for a SpecWeave increment.
|
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
30
|
# Check current increment
|
|
31
|
-
/
|
|
31
|
+
/sw:github:status
|
|
32
32
|
|
|
33
33
|
# Check specific increment
|
|
34
|
-
/
|
|
34
|
+
/sw:github:status 0004
|
|
35
35
|
|
|
36
36
|
# Check all increments
|
|
37
|
-
/
|
|
37
|
+
/sw:github:status --all
|
|
38
38
|
|
|
39
39
|
# Verbose output with full details
|
|
40
|
-
/
|
|
40
|
+
/sw:github:status 0004 --verbose
|
|
41
41
|
|
|
42
42
|
# JSON output for scripting
|
|
43
|
-
/
|
|
43
|
+
/sw:github:status 0004 --json
|
|
44
44
|
|
|
45
45
|
# Health check
|
|
46
|
-
/
|
|
46
|
+
/sw:github:status --check-health
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
## Output Format
|
|
@@ -238,7 +238,7 @@ Summary:
|
|
|
238
238
|
- Closed Issues: 2
|
|
239
239
|
|
|
240
240
|
Issues:
|
|
241
|
-
⚠️ Increment 0005: Not synced to GitHub (run /
|
|
241
|
+
⚠️ Increment 0005: Not synced to GitHub (run /sw:github:create-issue 0005)
|
|
242
242
|
```
|
|
243
243
|
|
|
244
244
|
### JSON Output
|
|
@@ -359,7 +359,7 @@ plugins:
|
|
|
359
359
|
### 1. Quick Progress Check
|
|
360
360
|
|
|
361
361
|
```bash
|
|
362
|
-
/
|
|
362
|
+
/sw:github:status 0004
|
|
363
363
|
```
|
|
364
364
|
|
|
365
365
|
See current sync state, progress, and last update time.
|
|
@@ -367,7 +367,7 @@ See current sync state, progress, and last update time.
|
|
|
367
367
|
### 2. Troubleshooting Sync Issues
|
|
368
368
|
|
|
369
369
|
```bash
|
|
370
|
-
/
|
|
370
|
+
/sw:github:status 0004 --verbose
|
|
371
371
|
```
|
|
372
372
|
|
|
373
373
|
Get detailed sync information to diagnose problems.
|
|
@@ -375,7 +375,7 @@ Get detailed sync information to diagnose problems.
|
|
|
375
375
|
### 3. Monitoring All Increments
|
|
376
376
|
|
|
377
377
|
```bash
|
|
378
|
-
/
|
|
378
|
+
/sw:github:status --all
|
|
379
379
|
```
|
|
380
380
|
|
|
381
381
|
Dashboard view of all increments and their sync state.
|
|
@@ -383,7 +383,7 @@ Dashboard view of all increments and their sync state.
|
|
|
383
383
|
### 4. CI/CD Integration
|
|
384
384
|
|
|
385
385
|
```bash
|
|
386
|
-
/
|
|
386
|
+
/sw:github:status 0004 --json | jq '.sync.status'
|
|
387
387
|
```
|
|
388
388
|
|
|
389
389
|
Check sync status in scripts/automation.
|
|
@@ -391,7 +391,7 @@ Check sync status in scripts/automation.
|
|
|
391
391
|
### 5. Health Monitoring
|
|
392
392
|
|
|
393
393
|
```bash
|
|
394
|
-
/
|
|
394
|
+
/sw:github:status --check-health
|
|
395
395
|
```
|
|
396
396
|
|
|
397
397
|
Verify all sync components are working correctly.
|
|
@@ -419,7 +419,7 @@ Local changes not synced to GitHub:
|
|
|
419
419
|
- Task T-008 completed (1 hour ago)
|
|
420
420
|
- Task T-009 started (30 minutes ago)
|
|
421
421
|
|
|
422
|
-
Action: Run /
|
|
422
|
+
Action: Run /sw:github:sync 0004
|
|
423
423
|
```
|
|
424
424
|
|
|
425
425
|
**Sync Failed**:
|
|
@@ -439,7 +439,7 @@ Action: Wait for rate limit reset, then retry
|
|
|
439
439
|
No GitHub issue found for increment 0004.
|
|
440
440
|
|
|
441
441
|
Action: Create issue first
|
|
442
|
-
/
|
|
442
|
+
/sw:github:create-issue 0004
|
|
443
443
|
```
|
|
444
444
|
|
|
445
445
|
## Requirements
|
|
@@ -450,14 +450,14 @@ Action: Create issue first
|
|
|
450
450
|
|
|
451
451
|
## Related Commands
|
|
452
452
|
|
|
453
|
-
- `/
|
|
454
|
-
- `/
|
|
455
|
-
- `/
|
|
456
|
-
- `/
|
|
453
|
+
- `/sw:github:create-issue`: Create GitHub issue
|
|
454
|
+
- `/sw:github:sync`: Sync increment with GitHub
|
|
455
|
+
- `/sw:github:close-issue`: Close GitHub issue
|
|
456
|
+
- `/sw:progress`: Check increment progress (local only)
|
|
457
457
|
|
|
458
458
|
## Tips
|
|
459
459
|
|
|
460
|
-
1. **Quick Check**: Run `/
|
|
460
|
+
1. **Quick Check**: Run `/sw:github:status` before syncing to see if sync is needed
|
|
461
461
|
|
|
462
462
|
2. **Verbose Mode**: Use `--verbose` when troubleshooting sync issues
|
|
463
463
|
|
|
@@ -475,7 +475,7 @@ Monitor sync status in real-time:
|
|
|
475
475
|
|
|
476
476
|
```bash
|
|
477
477
|
# Refresh every 30 seconds
|
|
478
|
-
watch -n 30 '/
|
|
478
|
+
watch -n 30 '/sw:github:status 0004'
|
|
479
479
|
```
|
|
480
480
|
|
|
481
481
|
### Custom Health Checks
|
|
@@ -520,13 +520,13 @@ plugins:
|
|
|
520
520
|
Generate HTML dashboard:
|
|
521
521
|
|
|
522
522
|
```bash
|
|
523
|
-
/
|
|
523
|
+
/sw:github:status --all --format html > status.html
|
|
524
524
|
open status.html
|
|
525
525
|
```
|
|
526
526
|
|
|
527
527
|
---
|
|
528
528
|
|
|
529
|
-
**Command**: `/
|
|
529
|
+
**Command**: `/sw:github:status`
|
|
530
530
|
**Plugin**: specweave-github
|
|
531
531
|
**Agent**: github-manager
|
|
532
532
|
**Version**: 1.0.0
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: sw-github:sync
|
|
3
3
|
description: Synchronize SpecWeave increment with GitHub issue (Multi-Project Support). Select profile, configure time range, and sync with rate limit protection.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -67,7 +67,7 @@ Synchronize the current state of a SpecWeave increment with its GitHub issue acr
|
|
|
67
67
|
## Usage
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
|
-
/
|
|
70
|
+
/sw-github:sync <increment-id> [options]
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
## Arguments
|
|
@@ -112,36 +112,36 @@ SpecWeave syncs changes in **both directions** by default:
|
|
|
112
112
|
**Override if needed:**
|
|
113
113
|
```bash
|
|
114
114
|
# Push only (one-way to GitHub)
|
|
115
|
-
/
|
|
115
|
+
/sw-github:sync 0004 --direction to-github
|
|
116
116
|
|
|
117
117
|
# Pull only (one-way from GitHub)
|
|
118
|
-
/
|
|
118
|
+
/sw-github:sync 0004 --direction from-github
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
## Examples
|
|
122
122
|
|
|
123
123
|
```bash
|
|
124
124
|
# Interactive two-way sync (default - both directions)
|
|
125
|
-
/
|
|
125
|
+
/sw-github:sync 0004
|
|
126
126
|
|
|
127
127
|
# Use specific profile (still two-way by default)
|
|
128
|
-
/
|
|
128
|
+
/sw-github:sync 0004 --profile specweave-dev
|
|
129
129
|
|
|
130
130
|
# Specify time range (two-way)
|
|
131
|
-
/
|
|
131
|
+
/sw-github:sync 0004 --time-range 1M
|
|
132
132
|
|
|
133
133
|
# Full two-way sync with all options
|
|
134
|
-
/
|
|
134
|
+
/sw-github:sync 0004 --profile main --time-range 1M --tasks --labels
|
|
135
135
|
|
|
136
136
|
# One-way sync examples (override default)
|
|
137
|
-
/
|
|
138
|
-
/
|
|
137
|
+
/sw-github:sync 0004 --direction to-github # Push only
|
|
138
|
+
/sw-github:sync 0004 --direction from-github # Pull only
|
|
139
139
|
|
|
140
140
|
# Dry run to preview changes
|
|
141
|
-
/
|
|
141
|
+
/sw-github:sync 0004 --dry-run
|
|
142
142
|
|
|
143
143
|
# Force sync all increments (two-way)
|
|
144
|
-
/
|
|
144
|
+
/sw-github:sync --all --force
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
## Interactive Workflow
|
|
@@ -431,8 +431,8 @@ Available profiles:
|
|
|
431
431
|
• specweave-dev (GitHub: anton-abyzov/specweave)
|
|
432
432
|
• another-repo (GitHub: myorg/another-project)
|
|
433
433
|
|
|
434
|
-
Create profile: /
|
|
435
|
-
List profiles: /
|
|
434
|
+
Create profile: /sw:sync-profile create
|
|
435
|
+
List profiles: /sw:sync-profile list
|
|
436
436
|
```
|
|
437
437
|
|
|
438
438
|
### No Profiles Configured
|
|
@@ -441,7 +441,7 @@ List profiles: /specweave:sync-profile list
|
|
|
441
441
|
❌ Error: No GitHub sync profiles configured
|
|
442
442
|
|
|
443
443
|
Create your first profile:
|
|
444
|
-
/
|
|
444
|
+
/sw:sync-profile create
|
|
445
445
|
|
|
446
446
|
Or migrate from old configuration:
|
|
447
447
|
specweave migrate-to-profiles
|
|
@@ -459,7 +459,7 @@ Rate limit resets: 2025-11-04 15:00:00 (12 minutes)
|
|
|
459
459
|
What would you like to do?
|
|
460
460
|
|
|
461
461
|
1. Wait and resume (auto-resume in 12 min)
|
|
462
|
-
2. Resume manually later (/
|
|
462
|
+
2. Resume manually later (/sw-github:sync 0004 --resume)
|
|
463
463
|
3. Cancel sync (partial data saved)
|
|
464
464
|
|
|
465
465
|
Your choice: [1]
|
|
@@ -518,8 +518,8 @@ Output:
|
|
|
518
518
|
✅ Migration completed successfully!
|
|
519
519
|
|
|
520
520
|
Next steps:
|
|
521
|
-
1. Review profiles: /
|
|
522
|
-
2. Test sync: /
|
|
521
|
+
1. Review profiles: /sw:sync-profile list
|
|
522
|
+
2. Test sync: /sw-github:sync 0004
|
|
523
523
|
3. Keep backup: .specweave/config.json.backup (until confirmed working)
|
|
524
524
|
```
|
|
525
525
|
|
|
@@ -529,7 +529,7 @@ If automatic profile creation fails:
|
|
|
529
529
|
|
|
530
530
|
1. Create profile manually:
|
|
531
531
|
```bash
|
|
532
|
-
/
|
|
532
|
+
/sw:sync-profile create
|
|
533
533
|
```
|
|
534
534
|
|
|
535
535
|
2. Update increment metadata:
|
|
@@ -544,7 +544,7 @@ If automatic profile creation fails:
|
|
|
544
544
|
|
|
545
545
|
3. Test sync:
|
|
546
546
|
```bash
|
|
547
|
-
/
|
|
547
|
+
/sw-github:sync 0004
|
|
548
548
|
```
|
|
549
549
|
|
|
550
550
|
## Simpler Alternatives
|
|
@@ -553,21 +553,21 @@ For most use cases, use the git-style commands:
|
|
|
553
553
|
|
|
554
554
|
| Command | Purpose |
|
|
555
555
|
|---------|---------|
|
|
556
|
-
| `/
|
|
557
|
-
| `/
|
|
556
|
+
| `/sw-github:pull` | Pull changes from GitHub (read-only) |
|
|
557
|
+
| `/sw-github:push` | Push progress to GitHub |
|
|
558
558
|
|
|
559
|
-
Use `/
|
|
559
|
+
Use `/sw-github:sync` for advanced operations with time ranges and rate limit control.
|
|
560
560
|
|
|
561
561
|
## Related Commands
|
|
562
562
|
|
|
563
563
|
| Command | Purpose |
|
|
564
564
|
|---------|---------|
|
|
565
|
-
| `/
|
|
566
|
-
| `/
|
|
567
|
-
| `/
|
|
568
|
-
| `/
|
|
569
|
-
| `/
|
|
570
|
-
| `/
|
|
565
|
+
| `/sw-github:pull` | Pull from GitHub (git-style) |
|
|
566
|
+
| `/sw-github:push` | Push to GitHub (git-style) |
|
|
567
|
+
| `/sw-github:create` | Create GitHub issue |
|
|
568
|
+
| `/sw-github:close` | Close GitHub issue |
|
|
569
|
+
| `/sw-github:status` | Check sync status |
|
|
570
|
+
| `/sw:sync-profile create` | Create new sync profile |
|
|
571
571
|
|
|
572
572
|
## Tips & Best Practices
|
|
573
573
|
|
|
@@ -632,7 +632,7 @@ For active development:
|
|
|
632
632
|
|
|
633
633
|
Before large syncs:
|
|
634
634
|
```bash
|
|
635
|
-
/
|
|
635
|
+
/sw-github:sync 0004 --dry-run --time-range 6M
|
|
636
636
|
```
|
|
637
637
|
|
|
638
638
|
This shows what would happen without actually executing.
|
|
@@ -643,10 +643,10 @@ This shows what would happen without actually executing.
|
|
|
643
643
|
|
|
644
644
|
```bash
|
|
645
645
|
# Sync all active increments (respects rate limits)
|
|
646
|
-
/
|
|
646
|
+
/sw-github:sync --all --time-range 1M
|
|
647
647
|
|
|
648
648
|
# Sync specific increments
|
|
649
|
-
/
|
|
649
|
+
/sw-github:sync 0001,0002,0003 --time-range 2W
|
|
650
650
|
```
|
|
651
651
|
|
|
652
652
|
### Custom Rate Limit Thresholds
|
|
@@ -671,7 +671,7 @@ Override default thresholds:
|
|
|
671
671
|
|
|
672
672
|
If sync fails mid-operation:
|
|
673
673
|
```bash
|
|
674
|
-
/
|
|
674
|
+
/sw-github:sync 0004 --resume
|
|
675
675
|
```
|
|
676
676
|
|
|
677
677
|
System will:
|
|
@@ -681,7 +681,7 @@ System will:
|
|
|
681
681
|
|
|
682
682
|
---
|
|
683
683
|
|
|
684
|
-
**Command**: `/
|
|
684
|
+
**Command**: `/sw-github:sync`
|
|
685
685
|
**Plugin**: specweave-github
|
|
686
686
|
**Version**: 1.0.0 (Multi-Project)
|
|
687
687
|
**Last Updated**: 2025-11-05
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: sw-github:update-user-story
|
|
3
3
|
description: Update GitHub issue for user story with proper ACs and tasks
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -12,7 +12,7 @@ description: Update GitHub issue for user story with proper ACs and tasks
|
|
|
12
12
|
|
|
13
13
|
**Usage**:
|
|
14
14
|
```bash
|
|
15
|
-
/
|
|
15
|
+
/sw-github:update-user-story FS-031 US-004
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
**What It Does**:
|
|
@@ -35,7 +35,7 @@ description: Update GitHub issue for user story with proper ACs and tasks
|
|
|
35
35
|
**Example**:
|
|
36
36
|
```bash
|
|
37
37
|
# Update US-004 in FS-031
|
|
38
|
-
/
|
|
38
|
+
/sw-github:update-user-story FS-031 US-004
|
|
39
39
|
|
|
40
40
|
# Output:
|
|
41
41
|
# 🔍 Finding user story: FS-031/US-004
|
|
@@ -109,9 +109,9 @@ Progress: 3/6 tasks complete (50%)
|
|
|
109
109
|
- ✅ When you want to refresh issue content from living docs
|
|
110
110
|
|
|
111
111
|
**Related Commands**:
|
|
112
|
-
- `/
|
|
113
|
-
- `/
|
|
114
|
-
- `/
|
|
112
|
+
- `/sw-github:sync-epic FS-031` - Sync entire epic (all user stories)
|
|
113
|
+
- `/sw-github:create-issue 0031` - Create issue for increment
|
|
114
|
+
- `/sw-github:sync 0031` - Two-way sync for increment
|
|
115
115
|
|
|
116
116
|
---
|
|
117
117
|
|
|
@@ -71,7 +71,7 @@ Log: "[GitHub] ✅ GitHub sync complete"
|
|
|
71
71
|
- Created performance overhead and duplicate executions
|
|
72
72
|
|
|
73
73
|
**New behavior (v0.26.0+)**:
|
|
74
|
-
- Hook must be invoked manually via `/
|
|
74
|
+
- Hook must be invoked manually via `/sw-github:sync`
|
|
75
75
|
- OR triggered on increment completion (not task completion)
|
|
76
76
|
- Reduces API calls by 90%+
|
|
77
77
|
- Eliminates duplicate hook executions
|
|
@@ -81,16 +81,16 @@ Log: "[GitHub] ✅ GitHub sync complete"
|
|
|
81
81
|
**Manual Sync** (recommended workflow):
|
|
82
82
|
```bash
|
|
83
83
|
# After completing several tasks, sync progress to GitHub
|
|
84
|
-
/
|
|
84
|
+
/sw-github:sync
|
|
85
85
|
|
|
86
86
|
# Or sync specific feature
|
|
87
|
-
/
|
|
87
|
+
/sw-github:sync FS-048
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
**Automatic Sync Options**:
|
|
91
91
|
1. **On Increment Completion**: Add hook to specweave plugin's post-increment-completion
|
|
92
92
|
2. **Periodic Sync**: Set up cron job or CI/CD trigger
|
|
93
|
-
3. **On Demand**: Call `/
|
|
93
|
+
3. **On Demand**: Call `/sw-github:sync` when needed
|
|
94
94
|
|
|
95
95
|
### Metadata Format
|
|
96
96
|
|
|
@@ -149,10 +149,10 @@ bash -n plugins/specweave-github/hooks/post-task-completion.sh
|
|
|
149
149
|
|
|
150
150
|
### Test with GitHub Issue
|
|
151
151
|
|
|
152
|
-
1. Create increment: `/
|
|
153
|
-
2. Create GitHub issue: `/
|
|
152
|
+
1. Create increment: `/sw:increment "test feature"`
|
|
153
|
+
2. Create GitHub issue: `/sw-github:create-issue 0001`
|
|
154
154
|
3. Complete several tasks via TodoWrite
|
|
155
|
-
4. **Manually trigger sync**: `/
|
|
155
|
+
4. **Manually trigger sync**: `/sw-github:sync`
|
|
156
156
|
5. Check GitHub issue for updates
|
|
157
157
|
|
|
158
158
|
---
|
|
@@ -258,7 +258,7 @@ tail -f .specweave/logs/hooks-debug.log | grep '\[GitHub\]'
|
|
|
258
258
|
```
|
|
259
259
|
|
|
260
260
|
**Common issues**:
|
|
261
|
-
- ❌ No `metadata.json`: Create GitHub issue via `/
|
|
261
|
+
- ❌ No `metadata.json`: Create GitHub issue via `/sw-github:create-issue`
|
|
262
262
|
- ❌ Not authenticated: Run `gh auth login`
|
|
263
263
|
- ❌ Invalid issue number: Check `metadata.json` has correct issue ID
|
|
264
264
|
- ❌ Network error: Check internet connection
|
|
@@ -259,7 +259,7 @@ fi
|
|
|
259
259
|
# ⚠️ DEPRECATED: SpecWeave now syncs ONLY at User Story level.
|
|
260
260
|
#
|
|
261
261
|
# Feature/Epic-level issues are no longer updated.
|
|
262
|
-
# Use /
|
|
262
|
+
# Use /sw-github:sync instead to sync User Story issues.
|
|
263
263
|
#
|
|
264
264
|
# To re-enable (NOT recommended):
|
|
265
265
|
# export SPECWEAVE_ENABLE_EPIC_SYNC=true
|
|
@@ -288,7 +288,7 @@ if [ "$SPECWEAVE_ENABLE_EPIC_SYNC" = "true" ]; then
|
|
|
288
288
|
if [ -f "$PROJECT_ROOT/scripts/update-epic-github-issue.sh" ]; then
|
|
289
289
|
echo "[$(date)] [GitHub] 🚀 Updating Epic GitHub issue (DEPRECATED)..." >> "$DEBUG_LOG" 2>/dev/null || true
|
|
290
290
|
"$PROJECT_ROOT/scripts/update-epic-github-issue.sh" "$ACTIVE_INCREMENT" >> "$DEBUG_LOG" 2>&1 || true
|
|
291
|
-
echo "[$(date)] [GitHub] ⚠️ Epic sync is deprecated. Use /
|
|
291
|
+
echo "[$(date)] [GitHub] ⚠️ Epic sync is deprecated. Use /sw-github:sync instead." >> "$DEBUG_LOG" 2>/dev/null || true
|
|
292
292
|
else
|
|
293
293
|
echo "[$(date)] [GitHub] ⚠️ Epic sync script not found, skipping" >> "$DEBUG_LOG" 2>/dev/null || true
|
|
294
294
|
fi
|
|
@@ -2,11 +2,19 @@ import * as fs from "../../../src/utils/fs-native.js";
|
|
|
2
2
|
import path from "path";
|
|
3
3
|
import { execFileNoThrow } from "../../../src/utils/execFileNoThrow.js";
|
|
4
4
|
import { CodeValidator } from "./CodeValidator.js";
|
|
5
|
+
import { getGitHubAuthFromProject } from "../../../src/utils/auth-helpers.js";
|
|
5
6
|
class ThreeLayerSyncManager {
|
|
6
7
|
constructor(projectRoot = process.cwd()) {
|
|
7
8
|
this.userStoryFileCache = /* @__PURE__ */ new Map();
|
|
8
9
|
this.projectRoot = projectRoot;
|
|
9
10
|
this.codeValidator = new CodeValidator({ projectRoot });
|
|
11
|
+
this.token = getGitHubAuthFromProject(projectRoot).token;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get environment object with GH_TOKEN for gh CLI commands.
|
|
15
|
+
*/
|
|
16
|
+
getGhEnv() {
|
|
17
|
+
return this.token ? { ...process.env, GH_TOKEN: this.token } : process.env;
|
|
10
18
|
}
|
|
11
19
|
/**
|
|
12
20
|
* Clear User Story file cache
|
|
@@ -180,7 +188,7 @@ class ThreeLayerSyncManager {
|
|
|
180
188
|
String(issueNumber),
|
|
181
189
|
"--json",
|
|
182
190
|
"body,state"
|
|
183
|
-
]);
|
|
191
|
+
], { env: this.getGhEnv() });
|
|
184
192
|
if (result.stderr) {
|
|
185
193
|
throw new Error(`Failed to fetch GitHub issue: ${result.stderr}`);
|
|
186
194
|
}
|
|
@@ -506,7 +514,7 @@ $2`);
|
|
|
506
514
|
String(issueNumber),
|
|
507
515
|
"--json",
|
|
508
516
|
"body"
|
|
509
|
-
]);
|
|
517
|
+
], { env: this.getGhEnv() });
|
|
510
518
|
const { body } = JSON.parse(result.stdout);
|
|
511
519
|
let updatedBody = body;
|
|
512
520
|
for (const ac of acs) {
|
|
@@ -525,7 +533,7 @@ $2`);
|
|
|
525
533
|
String(issueNumber),
|
|
526
534
|
"--body",
|
|
527
535
|
updatedBody
|
|
528
|
-
]);
|
|
536
|
+
], { env: this.getGhEnv() });
|
|
529
537
|
}
|
|
530
538
|
/**
|
|
531
539
|
* Add comment to GitHub issue
|
|
@@ -537,7 +545,7 @@ $2`);
|
|
|
537
545
|
String(issueNumber),
|
|
538
546
|
"--body",
|
|
539
547
|
comment
|
|
540
|
-
]);
|
|
548
|
+
], { env: this.getGhEnv() });
|
|
541
549
|
}
|
|
542
550
|
}
|
|
543
551
|
export {
|
|
@@ -22,6 +22,7 @@ import * as fs from '../../../src/utils/fs-native.js';
|
|
|
22
22
|
import path from 'path';
|
|
23
23
|
import { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
|
|
24
24
|
import { CodeValidator, type TaskValidationResult } from './CodeValidator.js';
|
|
25
|
+
import { getGitHubAuthFromProject } from '../../../src/utils/auth-helpers.js';
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
28
|
* Acceptance Criterion with completion state
|
|
@@ -74,10 +75,21 @@ export class ThreeLayerSyncManager {
|
|
|
74
75
|
private codeValidator: CodeValidator;
|
|
75
76
|
private userStoryFileCache: Map<string, string | null> = new Map();
|
|
76
77
|
private projectRoot: string;
|
|
78
|
+
private token?: string;
|
|
77
79
|
|
|
78
80
|
constructor(projectRoot: string = process.cwd()) {
|
|
79
81
|
this.projectRoot = projectRoot;
|
|
80
82
|
this.codeValidator = new CodeValidator({ projectRoot });
|
|
83
|
+
this.token = getGitHubAuthFromProject(projectRoot).token;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Get environment object with GH_TOKEN for gh CLI commands.
|
|
88
|
+
*/
|
|
89
|
+
private getGhEnv(): NodeJS.ProcessEnv {
|
|
90
|
+
return this.token
|
|
91
|
+
? { ...process.env, GH_TOKEN: this.token }
|
|
92
|
+
: process.env;
|
|
81
93
|
}
|
|
82
94
|
|
|
83
95
|
/**
|
|
@@ -334,7 +346,7 @@ export class ThreeLayerSyncManager {
|
|
|
334
346
|
String(issueNumber),
|
|
335
347
|
'--json',
|
|
336
348
|
'body,state'
|
|
337
|
-
]);
|
|
349
|
+
], { env: this.getGhEnv() });
|
|
338
350
|
|
|
339
351
|
if (result.stderr) {
|
|
340
352
|
throw new Error(`Failed to fetch GitHub issue: ${result.stderr}`);
|
|
@@ -765,7 +777,7 @@ export class ThreeLayerSyncManager {
|
|
|
765
777
|
String(issueNumber),
|
|
766
778
|
'--json',
|
|
767
779
|
'body'
|
|
768
|
-
]);
|
|
780
|
+
], { env: this.getGhEnv() });
|
|
769
781
|
|
|
770
782
|
const { body } = JSON.parse(result.stdout);
|
|
771
783
|
|
|
@@ -791,7 +803,7 @@ export class ThreeLayerSyncManager {
|
|
|
791
803
|
String(issueNumber),
|
|
792
804
|
'--body',
|
|
793
805
|
updatedBody
|
|
794
|
-
]);
|
|
806
|
+
], { env: this.getGhEnv() });
|
|
795
807
|
}
|
|
796
808
|
|
|
797
809
|
/**
|
|
@@ -804,6 +816,6 @@ export class ThreeLayerSyncManager {
|
|
|
804
816
|
String(issueNumber),
|
|
805
817
|
'--body',
|
|
806
818
|
comment
|
|
807
|
-
]);
|
|
819
|
+
], { env: this.getGhEnv() });
|
|
808
820
|
}
|
|
809
821
|
}
|
|
@@ -34,7 +34,9 @@ class CompletionCalculator {
|
|
|
34
34
|
tasksPercentage: tasks.length > 0 ? tasksCompleted / tasks.length * 100 : 0,
|
|
35
35
|
overallComplete,
|
|
36
36
|
blockingAcs: acs.filter((ac) => !ac.completed).map((ac) => ac.id),
|
|
37
|
-
blockingTasks: tasks.filter((t) => !t.completed).map((t) => t.id)
|
|
37
|
+
blockingTasks: tasks.filter((t) => !t.completed).map((t) => t.id),
|
|
38
|
+
// v0.35.1: Include frontmatter status for external-origin USs fallback
|
|
39
|
+
frontmatterStatus: frontmatter.status
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
@@ -62,6 +62,10 @@ export interface CompletionStatus {
|
|
|
62
62
|
// Blocking items (for reopen)
|
|
63
63
|
blockingAcs: string[]; // List of incomplete AC-IDs
|
|
64
64
|
blockingTasks: string[]; // List of incomplete Task-IDs
|
|
65
|
+
|
|
66
|
+
// Frontmatter status (fallback for external-origin USs without ACs/tasks)
|
|
67
|
+
// v0.35.1: Used when acsTotal=0 AND tasksTotal=0 to determine label
|
|
68
|
+
frontmatterStatus?: 'complete' | 'completed' | 'active' | 'planning' | 'not-started' | string;
|
|
65
69
|
}
|
|
66
70
|
|
|
67
71
|
/**
|
|
@@ -128,6 +132,8 @@ export class CompletionCalculator {
|
|
|
128
132
|
overallComplete,
|
|
129
133
|
blockingAcs: acs.filter((ac) => !ac.completed).map((ac) => ac.id),
|
|
130
134
|
blockingTasks: tasks.filter((t) => !t.completed).map((t) => t.id),
|
|
135
|
+
// v0.35.1: Include frontmatter status for external-origin USs fallback
|
|
136
|
+
frontmatterStatus: frontmatter.status,
|
|
131
137
|
};
|
|
132
138
|
}
|
|
133
139
|
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { execFileSync } from "child_process";
|
|
2
|
+
import { getGitHubAuthFromProject } from "../../../src/utils/auth-helpers.js";
|
|
3
|
+
function getGhEnv() {
|
|
4
|
+
const { token } = getGitHubAuthFromProject(process.cwd());
|
|
5
|
+
return token ? { ...process.env, GH_TOKEN: token } : process.env;
|
|
6
|
+
}
|
|
2
7
|
class DuplicateDetector {
|
|
3
8
|
/**
|
|
4
9
|
* PHASE 1: Detection (Before Creating Issue)
|
|
@@ -30,7 +35,7 @@ class DuplicateDetector {
|
|
|
30
35
|
if (repo) {
|
|
31
36
|
args.push("--repo", repo);
|
|
32
37
|
}
|
|
33
|
-
const output = execFileSync("gh", args, { encoding: "utf-8" });
|
|
38
|
+
const output = execFileSync("gh", args, { encoding: "utf-8", env: getGhEnv() });
|
|
34
39
|
const issues = JSON.parse(output);
|
|
35
40
|
if (issues.length === 0) {
|
|
36
41
|
console.log(" \u2705 No existing issues found (safe to create)");
|
|
@@ -76,6 +81,7 @@ class DuplicateDetector {
|
|
|
76
81
|
static async verifyAfterCreate(titlePattern, expectedCount = 1, repo) {
|
|
77
82
|
console.log(`
|
|
78
83
|
\u{1F50D} VERIFICATION: Checking issue count for pattern: ${titlePattern}`);
|
|
84
|
+
await new Promise((resolve) => setTimeout(resolve, 2e3));
|
|
79
85
|
try {
|
|
80
86
|
const args = [
|
|
81
87
|
"issue",
|
|
@@ -92,7 +98,7 @@ class DuplicateDetector {
|
|
|
92
98
|
if (repo) {
|
|
93
99
|
args.push("--repo", repo);
|
|
94
100
|
}
|
|
95
|
-
const output = execFileSync("gh", args, { encoding: "utf-8" });
|
|
101
|
+
const output = execFileSync("gh", args, { encoding: "utf-8", env: getGhEnv() });
|
|
96
102
|
const issues = JSON.parse(output);
|
|
97
103
|
const exactMatches = issues.filter(
|
|
98
104
|
(issue) => issue.title.includes(titlePattern)
|
|
@@ -193,7 +199,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
|
|
|
193
199
|
if (repo) {
|
|
194
200
|
commentArgs.push("--repo", repo);
|
|
195
201
|
}
|
|
196
|
-
execFileSync("gh", commentArgs, { encoding: "utf-8" });
|
|
202
|
+
execFileSync("gh", commentArgs, { encoding: "utf-8", env: getGhEnv() });
|
|
197
203
|
const closeArgs = [
|
|
198
204
|
"issue",
|
|
199
205
|
"close",
|
|
@@ -202,7 +208,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
|
|
|
202
208
|
if (repo) {
|
|
203
209
|
closeArgs.push("--repo", repo);
|
|
204
210
|
}
|
|
205
|
-
execFileSync("gh", closeArgs, { encoding: "utf-8" });
|
|
211
|
+
execFileSync("gh", closeArgs, { encoding: "utf-8", env: getGhEnv() });
|
|
206
212
|
console.log(` \u2705 Closed #${duplicate.number}`);
|
|
207
213
|
closed++;
|
|
208
214
|
} catch (error) {
|
|
@@ -286,7 +292,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
|
|
|
286
292
|
assignees.forEach((assignee) => {
|
|
287
293
|
args.push("--assignee", assignee);
|
|
288
294
|
});
|
|
289
|
-
const output = execFileSync("gh", args, { encoding: "utf-8" });
|
|
295
|
+
const output = execFileSync("gh", args, { encoding: "utf-8", env: getGhEnv() });
|
|
290
296
|
const match = output.match(/\/issues\/(\d+)/);
|
|
291
297
|
if (!match) {
|
|
292
298
|
throw new Error("Could not extract issue number from gh CLI output");
|
|
@@ -358,7 +364,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
|
|
|
358
364
|
*/
|
|
359
365
|
static checkGitHubCLI() {
|
|
360
366
|
try {
|
|
361
|
-
execFileSync("gh", ["auth", "status"], { encoding: "utf-8" });
|
|
367
|
+
execFileSync("gh", ["auth", "status"], { encoding: "utf-8", env: getGhEnv() });
|
|
362
368
|
return true;
|
|
363
369
|
} catch {
|
|
364
370
|
return false;
|