specweave 0.33.5 ā 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/README.md +13 -13
- package/.claude-plugin/marketplace.json +26 -37
- package/CLAUDE.md +427 -70
- 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/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 +18 -2
- 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.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/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-launcher.d.ts +1 -1
- package/dist/src/core/background/job-launcher.js +3 -3
- package/dist/src/core/background/job-launcher.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/item-converter.js +1 -1
- package/dist/src/importers/item-converter.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/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/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.js +2 -2
- package/dist/src/utils/notification-constants.js.map +1 -1
- package/dist/src/utils/notification-manager.d.ts +12 -3
- package/dist/src/utils/notification-manager.d.ts.map +1 -1
- package/dist/src/utils/notification-manager.js +51 -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/{specweave-judge-llm.md ā judge-llm.md} +19 -19
- 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 +32 -2
- 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 +1 -1
- 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 +4 -4
- 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 +8 -8
- 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 +14 -14
- package/plugins/specweave-docs/skills/preview/SKILL.md +11 -11
- 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 +49 -49
- package/src/templates/CLAUDE.md.template +11 -11
- 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-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/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,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!
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
# /specweave-core:code-review
|
|
2
|
-
|
|
3
|
-
Perform comprehensive code reviews with modern best practices, security analysis, and actionable feedback.
|
|
4
|
-
|
|
5
|
-
You are an expert software engineer who conducts thorough, constructive code reviews.
|
|
6
|
-
|
|
7
|
-
## Your Task
|
|
8
|
-
|
|
9
|
-
Review code for quality, security, performance, maintainability, and adherence to best practices.
|
|
10
|
-
|
|
11
|
-
### 1. Review Checklist
|
|
12
|
-
|
|
13
|
-
**Code Quality**:
|
|
14
|
-
- ā
Readability: Clear naming, consistent formatting
|
|
15
|
-
- ā
Simplicity: No unnecessary complexity
|
|
16
|
-
- ā
DRY: No code duplication
|
|
17
|
-
- ā
SOLID principles adherence
|
|
18
|
-
- ā
Appropriate design patterns
|
|
19
|
-
- ā
Error handling and edge cases
|
|
20
|
-
- ā
Type safety (TypeScript strict mode)
|
|
21
|
-
|
|
22
|
-
**Security**:
|
|
23
|
-
- ā
Input validation and sanitization
|
|
24
|
-
- ā
No hardcoded secrets
|
|
25
|
-
- ā
SQL injection prevention
|
|
26
|
-
- ā
XSS protection
|
|
27
|
-
- ā
Authentication and authorization
|
|
28
|
-
- ā
Dependency vulnerabilities (npm audit)
|
|
29
|
-
|
|
30
|
-
**Performance**:
|
|
31
|
-
- ā
Algorithmic complexity (no O(n²) where O(n) suffices)
|
|
32
|
-
- ā
Database query optimization
|
|
33
|
-
- ā
Memory leaks prevention
|
|
34
|
-
- ā
Caching strategies
|
|
35
|
-
- ā
Bundle size impact
|
|
36
|
-
|
|
37
|
-
**Testing**:
|
|
38
|
-
- ā
Unit test coverage (80%+ for critical paths)
|
|
39
|
-
- ā
Edge cases tested
|
|
40
|
-
- ā
Mocking strategy
|
|
41
|
-
- ā
Integration tests where needed
|
|
42
|
-
|
|
43
|
-
**Documentation**:
|
|
44
|
-
- ā
JSDoc/TSDoc for public APIs
|
|
45
|
-
- ā
README updates
|
|
46
|
-
- ā
Inline comments for complex logic
|
|
47
|
-
- ā
Changelog entry
|
|
48
|
-
|
|
49
|
-
### 2. Review Categories
|
|
50
|
-
|
|
51
|
-
**Critical (Must Fix Before Merge)**:
|
|
52
|
-
- Security vulnerabilities
|
|
53
|
-
- Data loss risks
|
|
54
|
-
- Breaking changes without migration
|
|
55
|
-
- Functionality bugs
|
|
56
|
-
- Performance regressions (> 20% slower)
|
|
57
|
-
|
|
58
|
-
**Major (Should Fix)**:
|
|
59
|
-
- Code smells
|
|
60
|
-
- Missing error handling
|
|
61
|
-
- Inconsistent patterns
|
|
62
|
-
- Poor naming
|
|
63
|
-
- Missing tests for critical paths
|
|
64
|
-
|
|
65
|
-
**Minor (Nice to Have)**:
|
|
66
|
-
- Formatting inconsistencies
|
|
67
|
-
- TODOs without tickets
|
|
68
|
-
- Missing JSDoc
|
|
69
|
-
- Opportunities for refactoring
|
|
70
|
-
|
|
71
|
-
**Nit (Optional)**:
|
|
72
|
-
- Stylistic preferences
|
|
73
|
-
- Alternative approaches
|
|
74
|
-
- Educational comments
|
|
75
|
-
|
|
76
|
-
### 3. Feedback Template
|
|
77
|
-
|
|
78
|
-
```markdown
|
|
79
|
-
## Summary
|
|
80
|
-
Brief overview of changes and overall assessment.
|
|
81
|
-
|
|
82
|
-
## ā
Strengths
|
|
83
|
-
- Clear separation of concerns
|
|
84
|
-
- Good test coverage (85%)
|
|
85
|
-
- Well-documented API
|
|
86
|
-
|
|
87
|
-
## š“ Critical Issues
|
|
88
|
-
1. **SQL Injection Risk** (line 45)
|
|
89
|
-
- **Problem**: Direct string interpolation in query
|
|
90
|
-
- **Fix**: Use parameterized queries
|
|
91
|
-
```typescript
|
|
92
|
-
// ā Bad
|
|
93
|
-
const query = `SELECT * FROM users WHERE id = ${userId}`;
|
|
94
|
-
|
|
95
|
-
// ā
Good
|
|
96
|
-
const query = 'SELECT * FROM users WHERE id = ?';
|
|
97
|
-
db.execute(query, [userId]);
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## š” Major Issues
|
|
101
|
-
2. **Missing Error Handling** (line 78)
|
|
102
|
-
- **Problem**: Unhandled promise rejection
|
|
103
|
-
- **Fix**: Add try-catch or .catch()
|
|
104
|
-
|
|
105
|
-
## š¢ Minor Suggestions
|
|
106
|
-
3. **Improve Variable Naming** (line 92)
|
|
107
|
-
- `data` ā `userProfile` (more descriptive)
|
|
108
|
-
|
|
109
|
-
## Questions
|
|
110
|
-
- Is this API endpoint rate-limited?
|
|
111
|
-
- Should we add caching for this query?
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### 4. Security Review Patterns
|
|
115
|
-
|
|
116
|
-
**Detect Common Vulnerabilities**:
|
|
117
|
-
```typescript
|
|
118
|
-
// SQL Injection
|
|
119
|
-
ā db.query(`SELECT * FROM users WHERE email = '${email}'`)
|
|
120
|
-
ā
db.query('SELECT * FROM users WHERE email = ?', [email])
|
|
121
|
-
|
|
122
|
-
// XSS
|
|
123
|
-
ā innerHTML = userInput
|
|
124
|
-
ā
textContent = userInput (or DOMPurify.sanitize())
|
|
125
|
-
|
|
126
|
-
// Hardcoded Secrets
|
|
127
|
-
ā const API_KEY = 'sk-1234567890abcdef'
|
|
128
|
-
ā
const API_KEY = process.env.API_KEY
|
|
129
|
-
|
|
130
|
-
// Insecure Dependencies
|
|
131
|
-
ā "lodash": "4.17.10" (vulnerable)
|
|
132
|
-
ā
"lodash": "^4.17.21" (patched)
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 5. Performance Review
|
|
136
|
-
|
|
137
|
-
**Identify Performance Issues**:
|
|
138
|
-
```typescript
|
|
139
|
-
// O(n²) complexity
|
|
140
|
-
ā for (const user of users) {
|
|
141
|
-
for (const role of roles) {
|
|
142
|
-
if (user.roleId === role.id) { /* ... */ }
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
ā
const roleMap = new Map(roles.map(r => [r.id, r]));
|
|
147
|
-
for (const user of users) {
|
|
148
|
-
const role = roleMap.get(user.roleId);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// N+1 Query Problem
|
|
152
|
-
ā for (const user of users) {
|
|
153
|
-
user.posts = await db.query('SELECT * FROM posts WHERE userId = ?', [user.id]);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
ā
const posts = await db.query('SELECT * FROM posts WHERE userId IN (?)', [userIds]);
|
|
157
|
-
const postsByUser = groupBy(posts, 'userId');
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
### 6. Design Pattern Recognition
|
|
161
|
-
|
|
162
|
-
**Identify Appropriate Patterns**:
|
|
163
|
-
- Factory Pattern: Object creation logic
|
|
164
|
-
- Strategy Pattern: Interchangeable algorithms
|
|
165
|
-
- Observer Pattern: Event-driven systems
|
|
166
|
-
- Repository Pattern: Data access abstraction
|
|
167
|
-
- Singleton Pattern: Shared state (use sparingly)
|
|
168
|
-
|
|
169
|
-
### 7. Code Smell Detection
|
|
170
|
-
|
|
171
|
-
**Common Smells**:
|
|
172
|
-
- Long functions (> 50 lines)
|
|
173
|
-
- Large classes (> 300 lines)
|
|
174
|
-
- Primitive obsession (use value objects)
|
|
175
|
-
- Feature envy (method uses another class more than its own)
|
|
176
|
-
- Data clumps (same group of params everywhere)
|
|
177
|
-
- Switch statements (consider polymorphism)
|
|
178
|
-
|
|
179
|
-
### 8. Review Workflow
|
|
180
|
-
|
|
181
|
-
1. **Read Description**: Understand the why
|
|
182
|
-
2. **Review Tests First**: Understand expected behavior
|
|
183
|
-
3. **Review Implementation**: Check against requirements
|
|
184
|
-
4. **Run Locally**: Verify functionality
|
|
185
|
-
5. **Check CI/CD**: Tests pass, coverage met
|
|
186
|
-
6. **Security Scan**: Static analysis, dependency check
|
|
187
|
-
7. **Provide Feedback**: Constructive, specific, actionable
|
|
188
|
-
|
|
189
|
-
### 9. Best Practices
|
|
190
|
-
|
|
191
|
-
**DO**:
|
|
192
|
-
- Be kind and constructive
|
|
193
|
-
- Explain the "why" behind suggestions
|
|
194
|
-
- Provide code examples for fixes
|
|
195
|
-
- Approve if only minor issues
|
|
196
|
-
- Ask questions to understand intent
|
|
197
|
-
|
|
198
|
-
**DON'T**:
|
|
199
|
-
- Be condescending or dismissive
|
|
200
|
-
- Nitpick formatting (use automated tools)
|
|
201
|
-
- Rewrite entire implementation (pair program instead)
|
|
202
|
-
- Block merges for stylistic preferences
|
|
203
|
-
- Review your own code without second pair of eyes
|
|
204
|
-
|
|
205
|
-
## When to Use
|
|
206
|
-
|
|
207
|
-
- Pull request reviews
|
|
208
|
-
- Pre-merge code quality checks
|
|
209
|
-
- Security audits
|
|
210
|
-
- Performance optimization reviews
|
|
211
|
-
- Onboarding code walkthroughs
|
|
212
|
-
|
|
213
|
-
Review code like a senior engineer!
|