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,276 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: specweave:judge
|
|
3
|
-
description: Validate completed work using LLM-as-Judge pattern. Works on any files, not just increments.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /specweave:judge - Work Validation via Judge LLM
|
|
7
|
-
|
|
8
|
-
Validate any completed work using the LLM-as-Judge pattern with deep reasoning.
|
|
9
|
-
|
|
10
|
-
## Purpose
|
|
11
|
-
|
|
12
|
-
Use when you've completed work (files, git changes, any code) and want AI-powered validation:
|
|
13
|
-
- Works on **any files** (not just SpecWeave increments)
|
|
14
|
-
- Uses **chain-of-thought reasoning** for thorough analysis
|
|
15
|
-
- Returns **clear verdict** with detailed reasoning
|
|
16
|
-
|
|
17
|
-
## Usage
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# Validate specific files
|
|
21
|
-
/specweave:judge src/file.ts
|
|
22
|
-
/specweave:judge "src/**/*.ts"
|
|
23
|
-
|
|
24
|
-
# Validate git changes
|
|
25
|
-
/specweave:judge --staged # Staged changes
|
|
26
|
-
/specweave:judge --last-commit # Last commit
|
|
27
|
-
/specweave:judge --diff main # Diff vs branch
|
|
28
|
-
|
|
29
|
-
# Validation modes
|
|
30
|
-
/specweave:judge src/file.ts --quick # Fast (~10s)
|
|
31
|
-
/specweave:judge src/file.ts --deep # Thorough (~60s)
|
|
32
|
-
/specweave:judge src/file.ts --strict # Fail on any concern
|
|
33
|
-
|
|
34
|
-
# Additional options
|
|
35
|
-
/specweave:judge src/file.ts --fix # Include fix suggestions
|
|
36
|
-
/specweave:judge src/file.ts --export # Export report to markdown
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## How It Works
|
|
40
|
-
|
|
41
|
-
When you invoke `/specweave:judge`, Claude will:
|
|
42
|
-
|
|
43
|
-
### Step 1: Gather Input
|
|
44
|
-
|
|
45
|
-
Determine what to validate:
|
|
46
|
-
- If file paths provided → read those files
|
|
47
|
-
- If `--staged` → get staged git changes
|
|
48
|
-
- If `--last-commit` → get files from last commit
|
|
49
|
-
- If `--diff <branch>` → get diff against branch
|
|
50
|
-
|
|
51
|
-
### Step 2: Analyze with Judge LLM Pattern
|
|
52
|
-
|
|
53
|
-
Use chain-of-thought reasoning to evaluate:
|
|
54
|
-
|
|
55
|
-
```markdown
|
|
56
|
-
<thinking>
|
|
57
|
-
1. **Read**: Understand what the code does
|
|
58
|
-
2. **Analyze**: Check for issues across dimensions:
|
|
59
|
-
- Correctness: Does it work as intended?
|
|
60
|
-
- Completeness: Are edge cases handled?
|
|
61
|
-
- Security: Any vulnerabilities?
|
|
62
|
-
- Performance: Any obvious issues?
|
|
63
|
-
- Maintainability: Is it clean and clear?
|
|
64
|
-
3. **Evaluate**: Weigh findings by severity
|
|
65
|
-
4. **Decide**: Form verdict based on analysis
|
|
66
|
-
</thinking>
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Step 3: Return Verdict
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
73
|
-
JUDGE VERDICT: APPROVED | CONCERNS | REJECTED
|
|
74
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
75
|
-
|
|
76
|
-
Confidence: 0.XX
|
|
77
|
-
Files Analyzed: N
|
|
78
|
-
|
|
79
|
-
REASONING:
|
|
80
|
-
[Chain-of-thought explanation of findings]
|
|
81
|
-
|
|
82
|
-
ISSUES (if any):
|
|
83
|
-
🔴 CRITICAL: [title]
|
|
84
|
-
[description]
|
|
85
|
-
📍 [file:line]
|
|
86
|
-
💡 [suggestion]
|
|
87
|
-
|
|
88
|
-
🟡 HIGH: [title]
|
|
89
|
-
...
|
|
90
|
-
|
|
91
|
-
🟢 LOW: [title]
|
|
92
|
-
...
|
|
93
|
-
|
|
94
|
-
VERDICT: [summary sentence]
|
|
95
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Verdict Meanings
|
|
99
|
-
|
|
100
|
-
| Verdict | Meaning | Action |
|
|
101
|
-
|---------|---------|--------|
|
|
102
|
-
| **APPROVED** | Work looks good, no significant issues | Safe to proceed |
|
|
103
|
-
| **CONCERNS** | Some issues found, worth addressing | Review and fix if time permits |
|
|
104
|
-
| **REJECTED** | Critical issues found | Must fix before proceeding |
|
|
105
|
-
|
|
106
|
-
## Validation Modes
|
|
107
|
-
|
|
108
|
-
### Quick Mode (`--quick`)
|
|
109
|
-
- Fast validation (~10 seconds)
|
|
110
|
-
- Focuses on obvious issues
|
|
111
|
-
- Good for frequent checks during development
|
|
112
|
-
- Cost: ~$0.02-0.05
|
|
113
|
-
|
|
114
|
-
### Default Mode
|
|
115
|
-
- Balanced validation (~30 seconds)
|
|
116
|
-
- Thorough analysis of all dimensions
|
|
117
|
-
- Good for pre-commit validation
|
|
118
|
-
- Cost: ~$0.05-0.10
|
|
119
|
-
|
|
120
|
-
### Deep Mode (`--deep`)
|
|
121
|
-
- Most thorough validation (~60 seconds)
|
|
122
|
-
- Extended thinking for complex reasoning
|
|
123
|
-
- Good for critical code or security review
|
|
124
|
-
- Cost: ~$0.10-0.20
|
|
125
|
-
|
|
126
|
-
### Strict Mode (`--strict`)
|
|
127
|
-
- Any concern results in REJECTED
|
|
128
|
-
- Use for critical paths, security code, or CI gates
|
|
129
|
-
|
|
130
|
-
## Examples
|
|
131
|
-
|
|
132
|
-
### Example 1: Validate a new feature
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
User: /specweave:judge src/core/auth/login.ts
|
|
136
|
-
|
|
137
|
-
Claude:
|
|
138
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
139
|
-
JUDGE VERDICT: APPROVED
|
|
140
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
141
|
-
|
|
142
|
-
Confidence: 0.85
|
|
143
|
-
Files Analyzed: 1
|
|
144
|
-
|
|
145
|
-
REASONING:
|
|
146
|
-
The login implementation follows security best practices:
|
|
147
|
-
- Password hashing uses bcrypt with appropriate cost factor
|
|
148
|
-
- Rate limiting is implemented (5 attempts, 15 min lockout)
|
|
149
|
-
- Input validation prevents injection attacks
|
|
150
|
-
- Error messages don't leak user existence
|
|
151
|
-
|
|
152
|
-
No critical or high-severity issues found.
|
|
153
|
-
|
|
154
|
-
VERDICT: Implementation is solid and ready for use.
|
|
155
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Example 2: Validate staged changes
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
User: /specweave:judge --staged
|
|
162
|
-
|
|
163
|
-
Claude:
|
|
164
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
165
|
-
JUDGE VERDICT: CONCERNS
|
|
166
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
167
|
-
|
|
168
|
-
Confidence: 0.78
|
|
169
|
-
Files Analyzed: 3
|
|
170
|
-
|
|
171
|
-
REASONING:
|
|
172
|
-
Changes add new API endpoint but have some issues:
|
|
173
|
-
- Missing input validation on user-provided data
|
|
174
|
-
- Error messages could leak internal paths
|
|
175
|
-
- No rate limiting on new endpoint
|
|
176
|
-
|
|
177
|
-
🟡 HIGH: Missing Input Validation
|
|
178
|
-
User input passed directly to database query
|
|
179
|
-
📍 src/api/users.ts:45
|
|
180
|
-
💡 Add Zod schema validation before processing
|
|
181
|
-
|
|
182
|
-
🟡 HIGH: Information Disclosure
|
|
183
|
-
Stack traces exposed in error responses
|
|
184
|
-
📍 src/api/users.ts:62
|
|
185
|
-
💡 Use production error handler that sanitizes output
|
|
186
|
-
|
|
187
|
-
VERDICT: Address the input validation before merging.
|
|
188
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Example 3: Deep validation with fixes
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
User: /specweave:judge src/payments/checkout.ts --deep --fix
|
|
195
|
-
|
|
196
|
-
Claude:
|
|
197
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
198
|
-
JUDGE VERDICT: REJECTED
|
|
199
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
200
|
-
|
|
201
|
-
Confidence: 0.92
|
|
202
|
-
Files Analyzed: 1
|
|
203
|
-
|
|
204
|
-
REASONING:
|
|
205
|
-
Critical security issue found in payment processing:
|
|
206
|
-
- API key hardcoded in source file
|
|
207
|
-
- No HTTPS enforcement for payment requests
|
|
208
|
-
- Missing idempotency key handling
|
|
209
|
-
|
|
210
|
-
🔴 CRITICAL: Hardcoded API Key
|
|
211
|
-
Stripe API key exposed in source code
|
|
212
|
-
📍 src/payments/checkout.ts:12
|
|
213
|
-
💡 Move to environment variable:
|
|
214
|
-
```typescript
|
|
215
|
-
// Before (INSECURE)
|
|
216
|
-
const stripe = new Stripe('sk_live_xxx...');
|
|
217
|
-
|
|
218
|
-
// After (SECURE)
|
|
219
|
-
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
🔴 CRITICAL: No HTTPS Enforcement
|
|
223
|
-
Payment requests may go over HTTP
|
|
224
|
-
📍 src/payments/checkout.ts:34
|
|
225
|
-
💡 Add protocol check:
|
|
226
|
-
```typescript
|
|
227
|
-
if (process.env.NODE_ENV === 'production' && !req.secure) {
|
|
228
|
-
return res.status(403).json({ error: 'HTTPS required' });
|
|
229
|
-
}
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
VERDICT: MUST FIX before deployment - security critical.
|
|
233
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
## Difference from /specweave:qa
|
|
237
|
-
|
|
238
|
-
| Aspect | `/specweave:qa` | `/specweave:judge` |
|
|
239
|
-
|--------|-----------------|-------------------|
|
|
240
|
-
| **Scope** | Increments only | Any files |
|
|
241
|
-
| **Input** | Increment ID | Files, git diff |
|
|
242
|
-
| **Pattern** | 7-dimension scoring | Judge LLM reasoning |
|
|
243
|
-
| **Focus** | Spec quality, risks | Code correctness |
|
|
244
|
-
| **When** | Before increment close | After any work |
|
|
245
|
-
|
|
246
|
-
## Best Practices
|
|
247
|
-
|
|
248
|
-
1. **Use frequently**: Run during development, not just at the end
|
|
249
|
-
2. **Use `--staged`**: Validate before committing
|
|
250
|
-
3. **Use `--strict` for critical code**: Payment, auth, security
|
|
251
|
-
4. **Fix CRITICAL issues immediately**: Never ignore these
|
|
252
|
-
5. **Address CONCERNS before release**: They matter
|
|
253
|
-
6. **Use after bug fixes**: Especially effective when work has definitive expected behavior
|
|
254
|
-
|
|
255
|
-
**Simplest workflow** - just mention "llm judge" in your prompt:
|
|
256
|
-
```
|
|
257
|
-
"llm judge my fix"
|
|
258
|
-
"use llm judge on this"
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
Claude will automatically gather context and apply the pattern - no need to specify files.
|
|
262
|
-
|
|
263
|
-
This follows the [LLM-as-Judge pattern](https://www.anthropic.com/engineering/multi-agent-research-system) - single LLM call with structured evaluation proves more consistent than multiple validation passes.
|
|
264
|
-
|
|
265
|
-
## Limitations
|
|
266
|
-
|
|
267
|
-
- ❌ Doesn't execute tests (use test runners)
|
|
268
|
-
- ❌ Doesn't auto-apply fixes (only suggests)
|
|
269
|
-
- ❌ May miss domain-specific issues
|
|
270
|
-
- ❌ Not a replacement for human review
|
|
271
|
-
|
|
272
|
-
## Related
|
|
273
|
-
|
|
274
|
-
- `/specweave:qa` - Increment-bound quality assessment
|
|
275
|
-
- `/specweave-core:code-review` - Prompt-based code review
|
|
276
|
-
- `ado-sync-judge` agent - Uses judge pattern for sync validation
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "specweave-core",
|
|
3
|
-
"description": "Core software engineering practices including code review, refactoring, architecture design, design patterns, SOLID principles, clean code, technical debt management, and software craftsmanship.",
|
|
4
|
-
"version": "0.24.0",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "Anton Abyzov",
|
|
7
|
-
"email": "anton.abyzov@gmail.com"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://spec-weave.com",
|
|
10
|
-
"repository": "https://github.com/anton-abyzov/specweave",
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
"code-review",
|
|
14
|
-
"refactoring",
|
|
15
|
-
"architecture",
|
|
16
|
-
"design-patterns",
|
|
17
|
-
"clean-code",
|
|
18
|
-
"solid",
|
|
19
|
-
"specweave"
|
|
20
|
-
]
|
|
21
|
-
}
|
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
# /specweave-core:architecture-review
|
|
2
|
-
|
|
3
|
-
Review software architecture for scalability, maintainability, security, and alignment with best practices.
|
|
4
|
-
|
|
5
|
-
You are an expert software architect who evaluates system design and architecture decisions.
|
|
6
|
-
|
|
7
|
-
## Your Task
|
|
8
|
-
|
|
9
|
-
Perform comprehensive architecture reviews covering design patterns, scalability, security, and technical debt.
|
|
10
|
-
|
|
11
|
-
### 1. Architecture Review Framework
|
|
12
|
-
|
|
13
|
-
**Evaluation Dimensions**:
|
|
14
|
-
- ✅ Scalability: Can it handle 10x growth?
|
|
15
|
-
- ✅ Maintainability: Can new developers understand it?
|
|
16
|
-
- ✅ Security: Defense in depth, least privilege
|
|
17
|
-
- ✅ Performance: Meets latency/throughput requirements
|
|
18
|
-
- ✅ Reliability: Fault tolerance, disaster recovery
|
|
19
|
-
- ✅ Cost: Infrastructure and operational costs
|
|
20
|
-
- ✅ Observability: Logging, monitoring, tracing
|
|
21
|
-
|
|
22
|
-
### 2. Architecture Patterns Assessment
|
|
23
|
-
|
|
24
|
-
**Microservices vs Monolith**:
|
|
25
|
-
```yaml
|
|
26
|
-
Monolith (Start Here):
|
|
27
|
-
Pros:
|
|
28
|
-
- Simple deployment
|
|
29
|
-
- Easy local development
|
|
30
|
-
- No distributed system complexity
|
|
31
|
-
- Lower operational overhead
|
|
32
|
-
Cons:
|
|
33
|
-
- Scaling entire app (not individual services)
|
|
34
|
-
- Slower build times as codebase grows
|
|
35
|
-
- Technology lock-in
|
|
36
|
-
|
|
37
|
-
Best for:
|
|
38
|
-
- Startups, MVPs
|
|
39
|
-
- Small teams (< 10 engineers)
|
|
40
|
-
- Well-defined domain
|
|
41
|
-
|
|
42
|
-
Microservices (Migrate When Needed):
|
|
43
|
-
Pros:
|
|
44
|
-
- Independent scaling
|
|
45
|
-
- Technology diversity
|
|
46
|
-
- Team autonomy
|
|
47
|
-
- Fault isolation
|
|
48
|
-
Cons:
|
|
49
|
-
- Distributed system complexity
|
|
50
|
-
- Higher operational overhead
|
|
51
|
-
- Network latency
|
|
52
|
-
- Data consistency challenges
|
|
53
|
-
|
|
54
|
-
Best for:
|
|
55
|
-
- Large teams (> 20 engineers)
|
|
56
|
-
- Clear service boundaries
|
|
57
|
-
- Different scaling needs per service
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
**Event-Driven Architecture**:
|
|
61
|
-
```typescript
|
|
62
|
-
// Use when:
|
|
63
|
-
// - Decoupling producers/consumers
|
|
64
|
-
// - Async processing
|
|
65
|
-
// - Event sourcing
|
|
66
|
-
// - CQRS pattern
|
|
67
|
-
|
|
68
|
-
interface EventBus {
|
|
69
|
-
publish(event: DomainEvent): Promise<void>;
|
|
70
|
-
subscribe<T>(eventType: string, handler: (event: T) => Promise<void>): void;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Example: Order processing
|
|
74
|
-
await eventBus.publish({
|
|
75
|
-
type: 'OrderPlaced',
|
|
76
|
-
orderId: '123',
|
|
77
|
-
userId: 'user-456',
|
|
78
|
-
total: 99.99,
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
// Multiple subscribers (inventory, email, analytics)
|
|
82
|
-
eventBus.subscribe('OrderPlaced', inventoryService.reserve);
|
|
83
|
-
eventBus.subscribe('OrderPlaced', emailService.sendConfirmation);
|
|
84
|
-
eventBus.subscribe('OrderPlaced', analyticsService.track);
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
**CQRS (Command Query Responsibility Segregation)**:
|
|
88
|
-
```typescript
|
|
89
|
-
// Separate read and write models
|
|
90
|
-
|
|
91
|
-
// Command (Write)
|
|
92
|
-
class CreateUserCommand {
|
|
93
|
-
execute(data: UserData) {
|
|
94
|
-
// Validate
|
|
95
|
-
// Save to write database (normalized)
|
|
96
|
-
// Publish UserCreatedEvent
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// Query (Read)
|
|
101
|
-
class GetUserProfile {
|
|
102
|
-
execute(userId: string) {
|
|
103
|
-
// Read from read database (denormalized, optimized for reads)
|
|
104
|
-
// May use cache, different DB tech (e.g., Elasticsearch)
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### 3. Scalability Review
|
|
110
|
-
|
|
111
|
-
**Horizontal vs Vertical Scaling**:
|
|
112
|
-
```yaml
|
|
113
|
-
Horizontal Scaling (Add More Machines):
|
|
114
|
-
Requires:
|
|
115
|
-
- Stateless application servers
|
|
116
|
-
- Shared session store (Redis, database)
|
|
117
|
-
- Load balancer
|
|
118
|
-
- Database replication/sharding
|
|
119
|
-
|
|
120
|
-
Benefits:
|
|
121
|
-
- No single point of failure
|
|
122
|
-
- Cost-effective with cloud auto-scaling
|
|
123
|
-
- Unlimited scaling potential
|
|
124
|
-
|
|
125
|
-
Vertical Scaling (Bigger Machine):
|
|
126
|
-
Requires:
|
|
127
|
-
- Downtime for upgrades
|
|
128
|
-
- Eventually hits hardware limits
|
|
129
|
-
|
|
130
|
-
Benefits:
|
|
131
|
-
- Simpler (no distributed system)
|
|
132
|
-
- No code changes needed
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
**Database Scaling Strategies**:
|
|
136
|
-
```yaml
|
|
137
|
-
Read Replicas:
|
|
138
|
-
- Offload read traffic (analytics, reports)
|
|
139
|
-
- Eventual consistency acceptable
|
|
140
|
-
- 80% reads, 20% writes
|
|
141
|
-
|
|
142
|
-
Sharding:
|
|
143
|
-
- Partition data across multiple databases
|
|
144
|
-
- Shard key: user_id, tenant_id, region
|
|
145
|
-
- Complexity: cross-shard queries, rebalancing
|
|
146
|
-
|
|
147
|
-
Caching:
|
|
148
|
-
- Redis for hot data (user sessions, product catalog)
|
|
149
|
-
- CDN for static assets
|
|
150
|
-
- Application-level caching
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### 4. Security Architecture Review
|
|
154
|
-
|
|
155
|
-
**Defense in Depth**:
|
|
156
|
-
```yaml
|
|
157
|
-
Network Layer:
|
|
158
|
-
- VPC with private subnets
|
|
159
|
-
- Security groups (whitelist)
|
|
160
|
-
- WAF for DDoS protection
|
|
161
|
-
|
|
162
|
-
Application Layer:
|
|
163
|
-
- Input validation and sanitization
|
|
164
|
-
- Output encoding (XSS prevention)
|
|
165
|
-
- Parameterized queries (SQL injection)
|
|
166
|
-
- CSRF tokens
|
|
167
|
-
- Rate limiting
|
|
168
|
-
|
|
169
|
-
Data Layer:
|
|
170
|
-
- Encryption at rest (database, S3)
|
|
171
|
-
- Encryption in transit (TLS)
|
|
172
|
-
- Secrets management (AWS Secrets Manager, Vault)
|
|
173
|
-
- Database access control (least privilege)
|
|
174
|
-
|
|
175
|
-
Authentication/Authorization:
|
|
176
|
-
- Multi-factor authentication
|
|
177
|
-
- OAuth 2.0 / OpenID Connect
|
|
178
|
-
- JWT with short expiration
|
|
179
|
-
- Role-based access control (RBAC)
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
**Threat Modeling**:
|
|
183
|
-
```markdown
|
|
184
|
-
## STRIDE Analysis
|
|
185
|
-
|
|
186
|
-
**Spoofing**: Can attacker impersonate user?
|
|
187
|
-
- Mitigation: MFA, session management
|
|
188
|
-
|
|
189
|
-
**Tampering**: Can attacker modify data?
|
|
190
|
-
- Mitigation: Data integrity checks, audit logs
|
|
191
|
-
|
|
192
|
-
**Repudiation**: Can user deny actions?
|
|
193
|
-
- Mitigation: Comprehensive audit trail
|
|
194
|
-
|
|
195
|
-
**Information Disclosure**: Can attacker access sensitive data?
|
|
196
|
-
- Mitigation: Encryption, access control
|
|
197
|
-
|
|
198
|
-
**Denial of Service**: Can attacker make system unavailable?
|
|
199
|
-
- Mitigation: Rate limiting, auto-scaling, WAF
|
|
200
|
-
|
|
201
|
-
**Elevation of Privilege**: Can attacker gain admin access?
|
|
202
|
-
- Mitigation: Least privilege, input validation
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
### 5. Observability Review
|
|
206
|
-
|
|
207
|
-
**Three Pillars**:
|
|
208
|
-
```yaml
|
|
209
|
-
Logging:
|
|
210
|
-
- Structured logging (JSON)
|
|
211
|
-
- Centralized (ELK, CloudWatch Logs)
|
|
212
|
-
- Request IDs for tracing
|
|
213
|
-
- Log levels: ERROR, WARN, INFO, DEBUG
|
|
214
|
-
|
|
215
|
-
Metrics:
|
|
216
|
-
- RED: Rate, Errors, Duration
|
|
217
|
-
- USE: Utilization, Saturation, Errors
|
|
218
|
-
- Business metrics (orders/min, revenue)
|
|
219
|
-
- Infrastructure metrics (CPU, memory, disk)
|
|
220
|
-
|
|
221
|
-
Tracing:
|
|
222
|
-
- Distributed tracing (OpenTelemetry, Jaeger)
|
|
223
|
-
- End-to-end request flow
|
|
224
|
-
- Performance bottleneck identification
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
### 6. Architecture Decision Records (ADRs)
|
|
228
|
-
|
|
229
|
-
```markdown
|
|
230
|
-
# ADR-001: Use PostgreSQL for Primary Database
|
|
231
|
-
|
|
232
|
-
## Status
|
|
233
|
-
Accepted
|
|
234
|
-
|
|
235
|
-
## Context
|
|
236
|
-
Need persistent storage for user data, transactions, and analytics.
|
|
237
|
-
|
|
238
|
-
## Decision
|
|
239
|
-
Use PostgreSQL as primary database.
|
|
240
|
-
|
|
241
|
-
## Consequences
|
|
242
|
-
|
|
243
|
-
**Pros**:
|
|
244
|
-
- ACID compliance (strong consistency)
|
|
245
|
-
- Rich query capabilities (joins, aggregations)
|
|
246
|
-
- Mature ecosystem, wide adoption
|
|
247
|
-
- JSON support for semi-structured data
|
|
248
|
-
|
|
249
|
-
**Cons**:
|
|
250
|
-
- Vertical scaling limits (mitigated with read replicas)
|
|
251
|
-
- Complex sharding if needed
|
|
252
|
-
- Higher cost than NoSQL for massive scale
|
|
253
|
-
|
|
254
|
-
**Alternatives Considered**:
|
|
255
|
-
- MongoDB: Less mature for transactions, eventual consistency
|
|
256
|
-
- DynamoDB: Lock-in to AWS, limited query flexibility
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### 7. Technical Debt Assessment
|
|
260
|
-
|
|
261
|
-
**Debt Quadrant** (Martin Fowler):
|
|
262
|
-
```yaml
|
|
263
|
-
Reckless + Deliberate:
|
|
264
|
-
"We don't have time for design"
|
|
265
|
-
Priority: HIGH - Fix immediately
|
|
266
|
-
|
|
267
|
-
Prudent + Deliberate:
|
|
268
|
-
"We must ship now, will refactor later"
|
|
269
|
-
Priority: MEDIUM - Plan refactoring sprint
|
|
270
|
-
|
|
271
|
-
Reckless + Inadvertent:
|
|
272
|
-
"What's layering?"
|
|
273
|
-
Priority: HIGH - Training + mentorship
|
|
274
|
-
|
|
275
|
-
Prudent + Inadvertent:
|
|
276
|
-
"Now we know how we should have done it"
|
|
277
|
-
Priority: LOW - Document for next time
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
## When to Use
|
|
281
|
-
|
|
282
|
-
- Pre-launch architecture review
|
|
283
|
-
- Quarterly architecture health checks
|
|
284
|
-
- Scaling preparation (before 10x growth)
|
|
285
|
-
- Post-incident architecture analysis
|
|
286
|
-
- Acquisition due diligence
|
|
287
|
-
|
|
288
|
-
Evaluate architecture like a principal engineer!
|