specweave 0.29.2 → 0.30.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/README.md +65 -16
- package/bin/specweave.js +16 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.js +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts +134 -0
- package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts.map +1 -0
- package/dist/plugins/specweave-ado/lib/conflict-resolver.js +423 -0
- package/dist/plugins/specweave-ado/lib/conflict-resolver.js.map +1 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +23 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js +95 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-commit-sync.d.ts +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-commit-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-commit-sync.js +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-commit-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.js +1 -1
- package/dist/plugins/specweave-github/lib/github-spec-content-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/types.d.ts +20 -0
- package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.js +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.d.ts +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.js +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +2 -2
- package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/setup-wizard.js +1 -1
- package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +1 -1
- package/dist/src/adapters/claude/adapter.js +1 -1
- package/dist/src/adapters/claude/adapter.js.map +1 -1
- package/dist/src/cli/commands/detect-project.js +1 -1
- package/dist/src/cli/commands/detect-project.js.map +1 -1
- package/dist/src/cli/commands/detect-specs.js +1 -1
- package/dist/src/cli/commands/detect-specs.js.map +1 -1
- package/dist/src/cli/commands/import-docs.js +1 -1
- package/dist/src/cli/commands/import-docs.js.map +1 -1
- package/dist/src/cli/commands/init-multiproject.js +1 -1
- package/dist/src/cli/commands/init-multiproject.js.map +1 -1
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +31 -1
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/jobs.js +15 -1
- package/dist/src/cli/commands/jobs.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/switch-project.js +1 -1
- package/dist/src/cli/commands/switch-project.js.map +1 -1
- package/dist/src/cli/commands/sync-scheduled.d.ts +38 -0
- package/dist/src/cli/commands/sync-scheduled.d.ts.map +1 -0
- package/dist/src/cli/commands/sync-scheduled.js +170 -0
- package/dist/src/cli/commands/sync-scheduled.js.map +1 -0
- package/dist/src/cli/helpers/init/external-import-grouping.d.ts +53 -0
- package/dist/src/cli/helpers/init/external-import-grouping.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/external-import-grouping.js +287 -0
- package/dist/src/cli/helpers/init/external-import-grouping.js.map +1 -0
- package/dist/src/cli/helpers/init/external-import.d.ts +1 -34
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +15 -486
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/living-docs-preflight.d.ts +58 -0
- package/dist/src/cli/helpers/init/living-docs-preflight.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/living-docs-preflight.js +290 -0
- package/dist/src/cli/helpers/init/living-docs-preflight.js.map +1 -0
- package/dist/src/cli/helpers/init/sync-profile-helpers.d.ts +48 -0
- package/dist/src/cli/helpers/init/sync-profile-helpers.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/sync-profile-helpers.js +238 -0
- package/dist/src/cli/helpers/init/sync-profile-helpers.js.map +1 -0
- package/dist/src/cli/helpers/init/types.d.ts +1 -0
- package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado.js +113 -3
- package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js +2 -287
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts +25 -0
- package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js +306 -0
- package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/types.d.ts +27 -0
- package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
- package/dist/src/cli/workers/living-docs-worker.d.ts +16 -0
- package/dist/src/cli/workers/living-docs-worker.d.ts.map +1 -0
- package/dist/src/cli/workers/living-docs-worker.js +395 -0
- package/dist/src/cli/workers/living-docs-worker.js.map +1 -0
- package/dist/src/core/background/job-dependency.d.ts +45 -0
- package/dist/src/core/background/job-dependency.d.ts.map +1 -0
- package/dist/src/core/background/job-dependency.js +144 -0
- package/dist/src/core/background/job-dependency.js.map +1 -0
- package/dist/src/core/background/job-launcher.d.ts +21 -1
- package/dist/src/core/background/job-launcher.d.ts.map +1 -1
- package/dist/src/core/background/job-launcher.js +93 -0
- package/dist/src/core/background/job-launcher.js.map +1 -1
- package/dist/src/core/background/types.d.ts +73 -2
- package/dist/src/core/background/types.d.ts.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/comment-builder.d.ts +1 -1
- package/dist/src/core/comment-builder.d.ts.map +1 -1
- package/dist/src/core/{cost-tracker.d.ts → cost/cost-tracker.d.ts} +2 -2
- package/dist/src/core/cost/cost-tracker.d.ts.map +1 -0
- package/dist/src/core/{cost-tracker.js → cost/cost-tracker.js} +2 -2
- package/dist/src/core/cost/cost-tracker.js.map +1 -0
- package/dist/src/core/credentials/credentials-manager.d.ts.map +1 -0
- package/dist/src/core/credentials/credentials-manager.js.map +1 -0
- package/dist/src/core/increment/discipline-checker.js +1 -1
- package/dist/src/core/increment/discipline-checker.js.map +1 -1
- package/dist/src/core/increment/increment-archiver.d.ts +9 -8
- package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
- package/dist/src/core/increment/increment-archiver.js +40 -42
- package/dist/src/core/increment/increment-archiver.js.map +1 -1
- package/dist/src/core/increment/increment-status.d.ts.map +1 -0
- package/dist/src/core/{increment-status.js → increment/increment-status.js} +1 -1
- package/dist/src/core/increment/increment-status.js.map +1 -0
- package/dist/src/core/increment/increment-utils.d.ts.map +1 -0
- package/dist/src/core/increment/increment-utils.js.map +1 -0
- 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/living-docs/checkpoint-manager.d.ts +120 -0
- package/dist/src/core/living-docs/checkpoint-manager.d.ts.map +1 -0
- package/dist/src/core/living-docs/checkpoint-manager.js +231 -0
- package/dist/src/core/living-docs/checkpoint-manager.js.map +1 -0
- package/dist/src/core/living-docs/discovery.d.ts +91 -0
- package/dist/src/core/living-docs/discovery.d.ts.map +1 -0
- package/dist/src/core/living-docs/discovery.js +656 -0
- package/dist/src/core/living-docs/discovery.js.map +1 -0
- package/dist/src/core/living-docs/feature-archiver.d.ts +23 -4
- package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -1
- package/dist/src/core/living-docs/feature-archiver.js +133 -30
- package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
- package/dist/src/core/living-docs/foundation-builder.d.ts +37 -0
- package/dist/src/core/living-docs/foundation-builder.d.ts.map +1 -0
- package/dist/src/core/living-docs/foundation-builder.js +357 -0
- package/dist/src/core/living-docs/foundation-builder.js.map +1 -0
- package/dist/src/core/living-docs/living-docs-sync.d.ts +58 -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 +204 -7
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
- package/dist/src/core/living-docs/module-analyzer.d.ts +97 -0
- package/dist/src/core/living-docs/module-analyzer.d.ts.map +1 -0
- package/dist/src/core/living-docs/module-analyzer.js +427 -0
- package/dist/src/core/living-docs/module-analyzer.js.map +1 -0
- package/dist/src/core/living-docs/suggestions-generator.d.ts +112 -0
- package/dist/src/core/living-docs/suggestions-generator.d.ts.map +1 -0
- package/dist/src/core/living-docs/suggestions-generator.js +362 -0
- package/dist/src/core/living-docs/suggestions-generator.js.map +1 -0
- package/dist/src/core/living-docs/workitem-matcher.d.ts +116 -0
- package/dist/src/core/living-docs/workitem-matcher.d.ts.map +1 -0
- package/dist/src/core/living-docs/workitem-matcher.js +356 -0
- package/dist/src/core/living-docs/workitem-matcher.js.map +1 -0
- package/dist/src/core/{plugin-loader.d.ts → plugins/plugin-loader.d.ts} +1 -1
- package/dist/src/core/plugins/plugin-loader.d.ts.map +1 -0
- package/dist/src/core/{plugin-loader.js → plugins/plugin-loader.js} +2 -2
- package/dist/src/core/plugins/plugin-loader.js.map +1 -0
- package/dist/src/core/{project-manager.d.ts → project/project-manager.d.ts} +1 -1
- package/dist/src/core/project/project-manager.d.ts.map +1 -0
- package/dist/src/core/{project-manager.js → project/project-manager.js} +3 -3
- package/dist/src/core/project/project-manager.js.map +1 -0
- package/dist/src/core/project/project-structure-detector.d.ts.map +1 -0
- package/dist/src/core/project/project-structure-detector.js.map +1 -0
- package/dist/src/core/{rfc-generator-v2.d.ts → rfc/rfc-generator-v2.d.ts} +1 -1
- package/dist/src/core/rfc/rfc-generator-v2.d.ts.map +1 -0
- package/dist/src/core/{rfc-generator-v2.js → rfc/rfc-generator-v2.js} +1 -1
- package/dist/src/core/rfc/rfc-generator-v2.js.map +1 -0
- package/dist/src/core/scheduler/index.d.ts +1 -0
- package/dist/src/core/scheduler/index.d.ts.map +1 -1
- package/dist/src/core/scheduler/index.js +1 -0
- package/dist/src/core/scheduler/index.js.map +1 -1
- package/dist/src/core/scheduler/scheduled-job.d.ts +1 -1
- package/dist/src/core/scheduler/scheduled-job.d.ts.map +1 -1
- package/dist/src/core/scheduler/scheduled-job.js.map +1 -1
- package/dist/src/core/scheduler/session-sync-executor.d.ts +138 -0
- package/dist/src/core/scheduler/session-sync-executor.d.ts.map +1 -0
- package/dist/src/core/scheduler/session-sync-executor.js +333 -0
- package/dist/src/core/scheduler/session-sync-executor.js.map +1 -0
- package/dist/src/core/{spec-content-sync.d.ts → specs/spec-content-sync.d.ts} +2 -2
- package/dist/src/core/specs/spec-content-sync.d.ts.map +1 -0
- package/dist/src/core/{spec-content-sync.js → specs/spec-content-sync.js} +1 -1
- package/dist/src/core/specs/spec-content-sync.js.map +1 -0
- package/dist/src/core/{spec-detector.d.ts → specs/spec-detector.d.ts} +1 -1
- package/dist/src/core/specs/spec-detector.d.ts.map +1 -0
- package/dist/src/core/{spec-detector.js → specs/spec-detector.js} +1 -1
- package/dist/src/core/specs/spec-detector.js.map +1 -0
- package/dist/src/core/{spec-identifier-detector.d.ts → specs/spec-identifier-detector.d.ts} +2 -2
- package/dist/src/core/specs/spec-identifier-detector.d.ts.map +1 -0
- package/dist/src/core/{spec-identifier-detector.js → specs/spec-identifier-detector.js} +1 -1
- package/dist/src/core/specs/spec-identifier-detector.js.map +1 -0
- package/dist/src/core/specs/spec-metadata-manager.js +1 -1
- package/dist/src/core/specs/spec-metadata-manager.js.map +1 -1
- package/dist/src/core/specs/spec-task-mapper.d.ts.map +1 -0
- package/dist/src/core/specs/spec-task-mapper.js.map +1 -0
- package/dist/src/core/sync/sync-audit-logger.d.ts +62 -0
- package/dist/src/core/sync/sync-audit-logger.d.ts.map +1 -1
- package/dist/src/core/sync/sync-audit-logger.js +59 -0
- package/dist/src/core/sync/sync-audit-logger.js.map +1 -1
- package/dist/src/importers/item-converter.d.ts +51 -27
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +219 -179
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/importers/markdown-generator.d.ts +75 -0
- package/dist/src/importers/markdown-generator.d.ts.map +1 -0
- package/dist/src/importers/markdown-generator.js +250 -0
- package/dist/src/importers/markdown-generator.js.map +1 -0
- package/dist/src/integrations/ado/ado-client.d.ts +93 -0
- package/dist/src/integrations/ado/ado-client.d.ts.map +1 -1
- package/dist/src/integrations/ado/ado-client.js +172 -1
- package/dist/src/integrations/ado/ado-client.js.map +1 -1
- package/dist/src/integrations/jira/jira-client.d.ts +44 -0
- package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-client.js +119 -1
- package/dist/src/integrations/jira/jira-client.js.map +1 -1
- package/dist/src/integrations/jira/jira-incremental-mapper.js +2 -2
- package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
- package/dist/src/integrations/jira/jira-mapper.js +1 -1
- package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
- package/dist/src/living-docs/epic-id-allocator.d.ts +177 -0
- package/dist/src/living-docs/epic-id-allocator.d.ts.map +1 -0
- package/dist/src/living-docs/epic-id-allocator.js +363 -0
- package/dist/src/living-docs/epic-id-allocator.js.map +1 -0
- package/dist/src/sync/external-change-puller.d.ts +94 -0
- package/dist/src/sync/external-change-puller.d.ts.map +1 -0
- package/dist/src/sync/external-change-puller.js +181 -0
- package/dist/src/sync/external-change-puller.js.map +1 -0
- package/dist/src/sync/index.d.ts +4 -0
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/index.js +2 -0
- package/dist/src/sync/index.js.map +1 -1
- package/dist/src/sync/living-docs-updater.d.ts +93 -0
- package/dist/src/sync/living-docs-updater.d.ts.map +1 -0
- package/dist/src/sync/living-docs-updater.js +218 -0
- package/dist/src/sync/living-docs-updater.js.map +1 -0
- package/dist/src/testing/test-generator.js +1 -1
- package/dist/src/testing/test-generator.js.map +1 -1
- package/dist/src/utils/cost-reporter.d.ts +1 -1
- package/dist/src/utils/cost-reporter.d.ts.map +1 -1
- package/dist/src/utils/model-selection.js +4 -4
- package/dist/src/utils/model-selection.js.map +1 -1
- package/dist/src/utils/pricing-constants.d.ts +2 -2
- package/dist/src/utils/pricing-constants.js +2 -2
- package/package.json +1 -1
- package/plugins/specweave/.claude-plugin/plugin.json +1 -28
- package/plugins/specweave/agents/code-standards-detective/AGENT.md +3 -3
- package/plugins/specweave/agents/infrastructure/AGENT.md +4 -0
- package/plugins/specweave/agents/performance/AGENT.md +2 -2
- package/plugins/specweave/agents/reflective-reviewer/AGENT.md +3 -3
- package/plugins/specweave/agents/translator/AGENT.md +2 -2
- package/plugins/specweave/commands/specweave-costs.md +2 -2
- package/plugins/specweave/commands/specweave-do.md +2 -2
- package/plugins/specweave/hooks/lib/scheduler-startup.sh +59 -8
- package/plugins/specweave/skills/code-reviewer/SKILL.md +1 -1
- package/plugins/specweave/skills/role-orchestrator/README.md +1 -1
- package/plugins/specweave-ado/agents/ado-manager/AGENT.md +8 -2
- package/plugins/specweave-ado/agents/ado-multi-project-mapper/AGENT.md +2 -2
- package/plugins/specweave-ado/agents/ado-sync-judge/AGENT.md +2 -2
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts +1 -1
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.js +1 -1
- package/plugins/specweave-ado/lib/ado-spec-commit-sync.ts +1 -1
- package/plugins/specweave-ado/lib/ado-spec-content-sync.js +1 -1
- package/plugins/specweave-ado/lib/ado-spec-content-sync.ts +1 -1
- package/plugins/specweave-ado/lib/conflict-resolver.js +87 -0
- package/plugins/specweave-ado/lib/conflict-resolver.ts +124 -0
- package/plugins/specweave-ado/skills/specweave-ado-mapper/SKILL.md +1 -1
- package/plugins/specweave-backend/agents/database-optimizer/AGENT.md +3 -3
- package/plugins/specweave-backend/skills/dotnet-backend/SKILL.md +1 -1
- package/plugins/specweave-backend/skills/nodejs-backend/SKILL.md +1 -1
- package/plugins/specweave-backend/skills/python-backend/SKILL.md +1 -1
- package/plugins/specweave-confluent/agents/confluent-architect/AGENT.md +6 -1
- package/plugins/specweave-diagrams/agents/diagrams-architect/AGENT.md +2 -2
- package/plugins/specweave-diagrams/skills/diagrams-architect/SKILL.md +1 -1
- package/plugins/specweave-frontend/agents/frontend-architect/AGENT.md +4 -0
- package/plugins/specweave-github/agents/github-manager/AGENT.md +1 -1
- package/plugins/specweave-github/agents/github-task-splitter/AGENT.md +11 -1
- package/plugins/specweave-github/agents/user-story-updater/AGENT.md +6 -1
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +90 -0
- package/plugins/specweave-github/lib/github-client-v2.js +97 -0
- package/plugins/specweave-github/lib/github-client-v2.ts +115 -1
- package/plugins/specweave-github/lib/github-spec-commit-sync.d.ts +1 -1
- package/plugins/specweave-github/lib/github-spec-commit-sync.js +1 -1
- package/plugins/specweave-github/lib/github-spec-commit-sync.ts +1 -1
- package/plugins/specweave-github/lib/github-spec-content-sync.js +1 -1
- package/plugins/specweave-github/lib/github-spec-content-sync.ts +1 -1
- package/plugins/specweave-github/lib/types.ts +21 -0
- package/plugins/specweave-infrastructure/agents/devops/AGENT.md +1 -1
- package/plugins/specweave-infrastructure/agents/network-engineer/AGENT.md +3 -3
- package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +2 -2
- package/plugins/specweave-infrastructure/agents/performance-engineer/AGENT.md +3 -3
- package/plugins/specweave-infrastructure/agents/sre/AGENT.md +2 -2
- package/plugins/specweave-jira/agents/jira-manager/AGENT.md +11 -1
- package/plugins/specweave-jira/commands/import-projects.js +1 -1
- package/plugins/specweave-jira/commands/import-projects.ts +1 -1
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts +1 -1
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.js +1 -1
- package/plugins/specweave-jira/lib/jira-spec-commit-sync.ts +1 -1
- package/plugins/specweave-jira/lib/jira-spec-content-sync.js +1 -1
- package/plugins/specweave-jira/lib/jira-spec-content-sync.ts +1 -1
- package/plugins/specweave-jira/lib/setup-wizard.js +2 -2
- package/plugins/specweave-jira/lib/setup-wizard.ts +2 -2
- package/plugins/specweave-jira/skills/specweave-jira-mapper/SKILL.md +1 -1
- package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +5 -1
- package/plugins/specweave-kafka/agents/kafka-devops/AGENT.md +6 -1
- package/plugins/specweave-kafka/agents/kafka-observability/AGENT.md +6 -1
- package/plugins/specweave-kubernetes/agents/kubernetes-architect/AGENT.md +3 -3
- package/plugins/specweave-ml/agents/data-scientist/AGENT.md +2 -1
- package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +2 -1
- package/plugins/specweave-ml/agents/mlops-engineer/AGENT.md +3 -3
- package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +6 -1
- package/plugins/specweave-payments/agents/payment-integration/AGENT.md +3 -3
- package/plugins/specweave-release/agents/release-manager/AGENT.md +6 -1
- package/plugins/specweave-release/commands/specweave-release-npm.md +8 -0
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +135 -0
- package/plugins/specweave-testing/agents/qa-engineer/AGENT.md +5 -0
- package/src/templates/AGENTS.md.template +97 -0
- package/dist/src/core/cost-tracker.d.ts.map +0 -1
- package/dist/src/core/cost-tracker.js.map +0 -1
- package/dist/src/core/credentials-manager.d.ts.map +0 -1
- package/dist/src/core/credentials-manager.js.map +0 -1
- package/dist/src/core/increment-status.d.ts.map +0 -1
- package/dist/src/core/increment-status.js.map +0 -1
- package/dist/src/core/increment-utils.d.ts.map +0 -1
- package/dist/src/core/increment-utils.js.map +0 -1
- package/dist/src/core/plugin-loader.d.ts.map +0 -1
- package/dist/src/core/plugin-loader.js.map +0 -1
- package/dist/src/core/project-manager.d.ts.map +0 -1
- package/dist/src/core/project-manager.js.map +0 -1
- package/dist/src/core/project-structure-detector.d.ts.map +0 -1
- package/dist/src/core/project-structure-detector.js.map +0 -1
- package/dist/src/core/rfc-generator-v2.d.ts.map +0 -1
- package/dist/src/core/rfc-generator-v2.js.map +0 -1
- package/dist/src/core/spec-content-sync.d.ts.map +0 -1
- package/dist/src/core/spec-content-sync.js.map +0 -1
- package/dist/src/core/spec-detector.d.ts.map +0 -1
- package/dist/src/core/spec-detector.js.map +0 -1
- package/dist/src/core/spec-identifier-detector.d.ts.map +0 -1
- package/dist/src/core/spec-identifier-detector.js.map +0 -1
- package/dist/src/core/spec-task-mapper.d.ts.map +0 -1
- package/dist/src/core/spec-task-mapper.js.map +0 -1
- package/dist/src/utils/spec-parser.d.ts +0 -145
- package/dist/src/utils/spec-parser.d.ts.map +0 -1
- package/dist/src/utils/spec-parser.js +0 -640
- package/dist/src/utils/spec-parser.js.map +0 -1
- package/plugins/specweave/agents/pm/AGENT.md.bak2 +0 -1754
- package/plugins/specweave/hooks/hooks.json.bak +0 -72
- package/plugins/specweave/hooks/hooks.json.v1-backup +0 -16
- package/plugins/specweave/hooks/v2/hooks.json +0 -16
- /package/dist/src/core/{credentials-manager.d.ts → credentials/credentials-manager.d.ts} +0 -0
- /package/dist/src/core/{credentials-manager.js → credentials/credentials-manager.js} +0 -0
- /package/dist/src/core/{increment-status.d.ts → increment/increment-status.d.ts} +0 -0
- /package/dist/src/core/{increment-utils.d.ts → increment/increment-utils.d.ts} +0 -0
- /package/dist/src/core/{increment-utils.js → increment/increment-utils.js} +0 -0
- /package/dist/src/core/{project-structure-detector.d.ts → project/project-structure-detector.d.ts} +0 -0
- /package/dist/src/core/{project-structure-detector.js → project/project-structure-detector.js} +0 -0
- /package/dist/src/core/{spec-task-mapper.d.ts → specs/spec-task-mapper.d.ts} +0 -0
- /package/dist/src/core/{spec-task-mapper.js → specs/spec-task-mapper.js} +0 -0
package/README.md
CHANGED
|
@@ -16,9 +16,10 @@
|
|
|
16
16
|
> **SpecWeave is 100% built using SpecWeave.** Every feature, every bug fix, every release — all spec-driven.
|
|
17
17
|
|
|
18
18
|
This isn't just a framework we made — it's the framework we use every day. Our entire development workflow runs on SpecWeave:
|
|
19
|
-
- **
|
|
20
|
-
- **Living docs** that auto-update
|
|
19
|
+
- **88+ completed increments** with full specs, plans, and tasks
|
|
20
|
+
- **Living docs** that auto-update via event-driven hooks
|
|
21
21
|
- **DORA metrics** tracking real delivery performance
|
|
22
|
+
- **Code-as-source-of-truth** discrepancy detection built-in
|
|
22
23
|
|
|
23
24
|
[](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
|
|
24
25
|
[](https://github.com/anton-abyzov/specweave/blob/develop/.specweave/docs/internal/delivery/dora-metrics.md)
|
|
@@ -114,11 +115,13 @@ Then in Claude Code:
|
|
|
114
115
|
|
|
115
116
|
- **Legacy to Enterprise** — 10-year-old monolith? Startup MVP? 50-team enterprise? Works on all.
|
|
116
117
|
- **Any AI, Your Choice** — Claude, GPT, Gemini, Copilot — your team uses whatever they prefer
|
|
117
|
-
- **Real Bidirectional Sync** — JIRA/GitHub/ADO
|
|
118
|
-
- **
|
|
118
|
+
- **Real Bidirectional Sync** — JIRA/GitHub/ADO sync on command with permission controls
|
|
119
|
+
- **Code = Source of Truth** — Discrepancy detection catches when docs drift from reality
|
|
120
|
+
- **Event-Driven Hooks** — Living docs update on lifecycle events (done, archived, reopened)
|
|
119
121
|
- **Multi-Project Mode** — Multiple repos, multiple teams, one source of truth
|
|
120
122
|
- **3-Gate Quality Validation** — Nothing ships without passing tasks, tests (60%+), and docs
|
|
121
123
|
- **70%+ Token Reduction** — Progressive loading means your AI stays fast and focused
|
|
124
|
+
- **Background Jobs** — Large imports and analysis run asynchronously while you work
|
|
122
125
|
|
|
123
126
|
---
|
|
124
127
|
|
|
@@ -137,6 +140,27 @@ SpecWeave keeps your project management tools in sync **automatically**:
|
|
|
137
140
|
| **Azure DevOps** | Work items, area paths, status sync |
|
|
138
141
|
| **Linear** | Coming Q1 2026 |
|
|
139
142
|
|
|
143
|
+
### Sync Orchestration (NEW)
|
|
144
|
+
|
|
145
|
+
SpecWeave includes **sync monitoring** to keep track of external tool state:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
/specweave:sync-progress # Push updates to GitHub/JIRA/ADO
|
|
149
|
+
/specweave:sync-monitor # Dashboard: sync status, notifications
|
|
150
|
+
/specweave:notifications # View/dismiss sync notifications
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Key principle: Code is the source of truth.** When your living docs describe one thing but code does another, SpecWeave detects the **discrepancy** and notifies you:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
📋 DISCREPANCIES DETECTED
|
|
157
|
+
|
|
158
|
+
DISC-0001 ⚠️ MAJOR function-signature getUserById params changed
|
|
159
|
+
DISC-0002 ✅ MINOR api-route New endpoint added
|
|
160
|
+
|
|
161
|
+
Use '/specweave:discrepancies accept DISC-0001' to update specs
|
|
162
|
+
```
|
|
163
|
+
|
|
140
164
|
---
|
|
141
165
|
|
|
142
166
|
## What You Get
|
|
@@ -144,10 +168,12 @@ SpecWeave keeps your project management tools in sync **automatically**:
|
|
|
144
168
|
| Before | After SpecWeave |
|
|
145
169
|
|--------|-----------------|
|
|
146
170
|
| Specs in chat history | **Permanent, searchable specs** |
|
|
147
|
-
| Manual JIRA/GitHub updates | **Auto-sync on
|
|
171
|
+
| Manual JIRA/GitHub updates | **Auto-sync on `/specweave:sync-progress`** |
|
|
148
172
|
| Tests? Maybe later... | **Tests embedded in tasks (60%+ enforced)** |
|
|
149
173
|
| Architecture in your head | **ADRs captured automatically** |
|
|
150
174
|
| "Ask John, he knows" | **Living docs, always current** |
|
|
175
|
+
| Docs drift from code | **Discrepancy detection alerts you** |
|
|
176
|
+
| Large imports block work | **Background jobs run async** |
|
|
151
177
|
| Onboarding: 2 weeks | **Onboarding: 1 day** |
|
|
152
178
|
|
|
153
179
|
---
|
|
@@ -209,13 +235,18 @@ SpecWeave's power isn't in Claude magic. It's in **structure**.
|
|
|
209
235
|
|
|
210
236
|
**Claude Code** gets the best experience (slash commands, hooks, skills). But any AI can participate.
|
|
211
237
|
|
|
212
|
-
### Living Documentation
|
|
238
|
+
### Living Documentation (Event-Driven)
|
|
239
|
+
|
|
240
|
+
Documentation updates **on lifecycle events** via hooks — not on every edit, but when it matters:
|
|
213
241
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
-
|
|
242
|
+
| Event | What Updates |
|
|
243
|
+
|-------|--------------|
|
|
244
|
+
| `increment.created` | New spec entry added to living docs |
|
|
245
|
+
| `increment.done` | Marked complete, archived if configured |
|
|
246
|
+
| `user-story.completed` | Status line refreshed, progress synced |
|
|
247
|
+
| `increment.reopened` | Restored from archive |
|
|
248
|
+
|
|
249
|
+
**No more stale docs.** The system detects when all tasks AND all ACs for a user story are complete, then fires the right hooks. Race conditions? Handled. Crashes? Graceful degradation.
|
|
219
250
|
|
|
220
251
|
### Quality Gates
|
|
221
252
|
|
|
@@ -258,20 +289,38 @@ Three gates before any increment closes:
|
|
|
258
289
|
|
|
259
290
|
## Commands Reference
|
|
260
291
|
|
|
292
|
+
**Core Workflow** (daily use):
|
|
261
293
|
| Command | Purpose |
|
|
262
294
|
|---------|---------|
|
|
263
295
|
| `/specweave:increment "feature"` | Plan new increment (PM → Architect → Tasks) |
|
|
264
296
|
| `/specweave:do` | Execute all tasks autonomously |
|
|
265
297
|
| `/specweave:done 0001` | Complete with quality gate validation |
|
|
298
|
+
| `/specweave:next` | Auto-close + suggest next work (one-click flow) |
|
|
266
299
|
| `/specweave:progress` | Show real-time status |
|
|
267
|
-
|
|
300
|
+
|
|
301
|
+
**Sync & Monitoring** (stay in sync):
|
|
302
|
+
| Command | Purpose |
|
|
303
|
+
|---------|---------|
|
|
268
304
|
| `/specweave:sync-progress` | Sync to GitHub/JIRA/ADO |
|
|
305
|
+
| `/specweave:sync-monitor` | Dashboard: jobs, notifications, activity |
|
|
306
|
+
| `/specweave:notifications` | View/dismiss sync alerts |
|
|
307
|
+
| `/specweave:discrepancies` | Code-to-spec drift detection |
|
|
308
|
+
|
|
309
|
+
**Brownfield** (legacy codebases):
|
|
310
|
+
| Command | Purpose |
|
|
311
|
+
|---------|---------|
|
|
312
|
+
| `/specweave:discrepancy-to-increment` | Convert doc gaps to increments |
|
|
313
|
+
| `/specweave:jobs` | Monitor background analysis/import |
|
|
314
|
+
| `/specweave:import-external` | Import from GitHub/JIRA/ADO |
|
|
315
|
+
|
|
316
|
+
**Quality** (ship with confidence):
|
|
317
|
+
| Command | Purpose |
|
|
318
|
+
|---------|---------|
|
|
319
|
+
| `/specweave:validate 0001` | Run quality checks |
|
|
269
320
|
| `/specweave:tdd-cycle` | Full red-green-refactor workflow |
|
|
270
|
-
| `/specweave:
|
|
271
|
-
| `/specweave:discrepancy-to-increment` | Convert gaps to actionable increments |
|
|
272
|
-
| `/specweave:jobs` | Monitor background jobs (analysis, import) |
|
|
321
|
+
| `/specweave:check-tests` | Validate test coverage |
|
|
273
322
|
|
|
274
|
-
**[Full Command Reference](https://spec-weave.com/docs/commands/overview)
|
|
323
|
+
**53 total commands** — [Full Command Reference](https://spec-weave.com/docs/commands/overview)
|
|
275
324
|
|
|
276
325
|
---
|
|
277
326
|
|
package/bin/specweave.js
CHANGED
|
@@ -304,6 +304,20 @@ program
|
|
|
304
304
|
await jobsCmd.parseAsync(['node', 'jobs', ...process.argv.slice(3)], { from: 'user' });
|
|
305
305
|
});
|
|
306
306
|
|
|
307
|
+
// Sync-scheduled command - Execute due scheduled sync jobs (for cron/CI)
|
|
308
|
+
program
|
|
309
|
+
.command('sync-scheduled')
|
|
310
|
+
.description('Execute due scheduled sync jobs (for cron/CI use)')
|
|
311
|
+
.option('--dry-run', 'Show what would run without executing')
|
|
312
|
+
.option('--force', 'Run all sync jobs regardless of schedule')
|
|
313
|
+
.option('--json', 'Output as JSON')
|
|
314
|
+
.option('--silent', 'Suppress output (for cron)')
|
|
315
|
+
.action(async (options) => {
|
|
316
|
+
const { createSyncScheduledCommand } = await import('../dist/src/cli/commands/sync-scheduled.js');
|
|
317
|
+
const syncCmd = createSyncScheduledCommand();
|
|
318
|
+
await syncCmd.parseAsync(['node', 'sync-scheduled', ...process.argv.slice(3)], { from: 'user' });
|
|
319
|
+
});
|
|
320
|
+
|
|
307
321
|
// Help text
|
|
308
322
|
program.on('--help', () => {
|
|
309
323
|
console.log('');
|
|
@@ -333,6 +347,8 @@ program.on('--help', () => {
|
|
|
333
347
|
console.log(' $ specweave jobs --follow <jobId> # Follow job progress live');
|
|
334
348
|
console.log(' $ specweave jobs --logs <jobId> # View worker logs');
|
|
335
349
|
console.log(' $ specweave jobs --resume <jobId> # Resume paused job');
|
|
350
|
+
console.log(' $ specweave sync-scheduled # Execute due sync jobs');
|
|
351
|
+
console.log(' $ specweave sync-scheduled --force # Force sync all jobs');
|
|
336
352
|
console.log(' $ specweave validate-jira --env .env.prod # Validate with custom .env file');
|
|
337
353
|
console.log('');
|
|
338
354
|
console.log('Supported AI Tools:');
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { AdoClientV2 } from './ado-client-v2.js';
|
|
8
8
|
import { GitCommit, GitRepository } from '../../../src/utils/git-utils.js';
|
|
9
|
-
import { UserStory } from '../../../src/core/spec-task-mapper.js';
|
|
9
|
+
import { UserStory } from '../../../src/core/specs/spec-task-mapper.js';
|
|
10
10
|
export interface SyncOptions {
|
|
11
11
|
incrementPath: string;
|
|
12
12
|
dryRun?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-spec-commit-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-commit-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAOL,SAAS,EACT,aAAa,EAEd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAIL,SAAS,EACV,MAAM,
|
|
1
|
+
{"version":3,"file":"ado-spec-commit-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-commit-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAOL,SAAS,EACT,aAAa,EAEd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAIL,SAAS,EACV,MAAM,6CAA6C,CAAC;AAYrD,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAoKrB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,SAAS,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,aAAa,EACnB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,OAAO,CAAC,CAoBlB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* This enables traceability from spec user stories to actual code changes.
|
|
6
6
|
*/
|
|
7
7
|
import { getRecentCommits, detectRepository, getCommitUrl, findPRForCommit, getLastSyncCommit, updateLastSyncCommit, } from '../../../src/utils/git-utils.js';
|
|
8
|
-
import { getSpecTaskMapping, getCompletedUserStories, } from '../../../src/core/spec-task-mapper.js';
|
|
8
|
+
import { getSpecTaskMapping, getCompletedUserStories, } from '../../../src/core/specs/spec-task-mapper.js';
|
|
9
9
|
import { buildUserStoryComment, buildCommitBatchComment, buildShortComment, generateSmartSummary, formatForAdo, } from '../../../src/core/comment-builder.js';
|
|
10
10
|
import path from 'path';
|
|
11
11
|
import fs from 'fs/promises';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-spec-commit-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-commit-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GAIrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GAGxB,MAAM,
|
|
1
|
+
{"version":3,"file":"ado-spec-commit-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-commit-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - State (New/Active/Resolved/Closed): ADO → SpecWeave (we read)
|
|
10
10
|
*/
|
|
11
11
|
import { AdoClientV2 } from './ado-client-v2.js';
|
|
12
|
-
import { ContentSyncResult } from '../../../src/core/spec-content-sync.js';
|
|
12
|
+
import { ContentSyncResult } from '../../../src/core/specs/spec-content-sync.js';
|
|
13
13
|
export interface AdoContentSyncOptions {
|
|
14
14
|
specPath: string;
|
|
15
15
|
client: AdoClientV2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-spec-content-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-content-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAOL,iBAAiB,EAClB,MAAM,
|
|
1
|
+
{"version":3,"file":"ado-spec-content-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-content-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAOL,iBAAiB,EAClB,MAAM,8CAA8C,CAAC;AAMtD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CA0C5B;AA6RD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAShF"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Title/Description: SpecWeave → ADO (we update)
|
|
9
9
|
* - State (New/Active/Resolved/Closed): ADO → SpecWeave (we read)
|
|
10
10
|
*/
|
|
11
|
-
import { parseSpecContent, detectContentChanges, hasExternalLink, updateSpecWithExternalLink, } from '../../../src/core/spec-content-sync.js';
|
|
11
|
+
import { parseSpecContent, detectContentChanges, hasExternalLink, updateSpecWithExternalLink, } from '../../../src/core/specs/spec-content-sync.js';
|
|
12
12
|
import { SpecIncrementMapper } from '../../../src/core/sync/spec-increment-mapper.js';
|
|
13
13
|
import * as path from 'path';
|
|
14
14
|
import * as fs from 'fs/promises';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ado-spec-content-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-content-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EAEpB,eAAe,EACf,0BAA0B,GAG3B,MAAM,
|
|
1
|
+
{"version":3,"file":"ado-spec-content-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-content-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conflict Resolver for Living Docs Synchronization
|
|
3
|
+
*
|
|
4
|
+
* CRITICAL PRINCIPLE: External tool status ALWAYS wins in conflicts!
|
|
5
|
+
* This ensures that QA and stakeholder decisions in external tools
|
|
6
|
+
* take precedence over local development status.
|
|
7
|
+
*/
|
|
8
|
+
export interface ConflictResolution {
|
|
9
|
+
field: string;
|
|
10
|
+
localValue: any;
|
|
11
|
+
externalValue: any;
|
|
12
|
+
resolution: 'external' | 'local';
|
|
13
|
+
resolvedValue: any;
|
|
14
|
+
reason: string;
|
|
15
|
+
timestamp: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Timestamp comparison result for pull sync (Increment 0089)
|
|
19
|
+
*/
|
|
20
|
+
export interface TimestampComparisonResult {
|
|
21
|
+
winner: 'local' | 'external' | 'none';
|
|
22
|
+
localTimestamp: string | null;
|
|
23
|
+
externalTimestamp: string;
|
|
24
|
+
timeDiffMs: number;
|
|
25
|
+
reason: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SpecMetadata {
|
|
28
|
+
id: string;
|
|
29
|
+
title: string;
|
|
30
|
+
status: SpecStatus;
|
|
31
|
+
priority?: Priority;
|
|
32
|
+
externalLinks?: {
|
|
33
|
+
ado?: {
|
|
34
|
+
featureId: number;
|
|
35
|
+
featureUrl: string;
|
|
36
|
+
syncedAt?: string;
|
|
37
|
+
lastExternalStatus?: string;
|
|
38
|
+
};
|
|
39
|
+
jira?: {
|
|
40
|
+
issueKey: string;
|
|
41
|
+
issueUrl: string;
|
|
42
|
+
syncedAt?: string;
|
|
43
|
+
lastExternalStatus?: string;
|
|
44
|
+
};
|
|
45
|
+
github?: {
|
|
46
|
+
issue: number;
|
|
47
|
+
url: string;
|
|
48
|
+
syncedAt?: string;
|
|
49
|
+
lastExternalStatus?: string;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export type SpecStatus = 'draft' | 'in-progress' | 'implemented' | 'in-qa' | 'complete' | 'blocked' | 'cancelled';
|
|
54
|
+
export type Priority = 'P0' | 'P1' | 'P2' | 'P3';
|
|
55
|
+
export interface ExternalStatus {
|
|
56
|
+
tool: 'ado' | 'jira' | 'github';
|
|
57
|
+
status: string;
|
|
58
|
+
mappedStatus: SpecStatus;
|
|
59
|
+
priority?: string;
|
|
60
|
+
lastModified: string;
|
|
61
|
+
}
|
|
62
|
+
export declare class ConflictResolver {
|
|
63
|
+
private resolutionLog;
|
|
64
|
+
/**
|
|
65
|
+
* Map external status to local SpecWeave status
|
|
66
|
+
*/
|
|
67
|
+
mapExternalStatus(tool: 'ado' | 'jira' | 'github', externalStatus: string): SpecStatus;
|
|
68
|
+
/**
|
|
69
|
+
* Map local status to external tool status
|
|
70
|
+
*/
|
|
71
|
+
mapLocalStatus(tool: 'ado' | 'jira' | 'github', localStatus: SpecStatus): string;
|
|
72
|
+
/**
|
|
73
|
+
* CRITICAL: Resolve status conflict - EXTERNAL ALWAYS WINS
|
|
74
|
+
*/
|
|
75
|
+
resolveStatusConflict(localStatus: SpecStatus, externalStatus: ExternalStatus): ConflictResolution;
|
|
76
|
+
/**
|
|
77
|
+
* Compare timestamps to determine winner (Increment 0089)
|
|
78
|
+
*
|
|
79
|
+
* For pull sync, we compare local lastModified vs external ChangedDate.
|
|
80
|
+
* The more recent timestamp wins.
|
|
81
|
+
*
|
|
82
|
+
* @param localTimestamp - Local file lastModified timestamp (ISO string or null)
|
|
83
|
+
* @param externalTimestamp - External tool ChangedDate (ISO string)
|
|
84
|
+
* @returns Comparison result with winner and reasoning
|
|
85
|
+
*/
|
|
86
|
+
compareTimestamps(localTimestamp: string | null, externalTimestamp: string): TimestampComparisonResult;
|
|
87
|
+
/**
|
|
88
|
+
* Resolve conflict using timestamp comparison (Increment 0089)
|
|
89
|
+
*
|
|
90
|
+
* Combines timestamp comparison with status conflict resolution.
|
|
91
|
+
* Used by ExternalChangePuller for pull sync.
|
|
92
|
+
*
|
|
93
|
+
* @param field - The field being compared (e.g., 'status')
|
|
94
|
+
* @param localValue - Current local value
|
|
95
|
+
* @param externalValue - Value from external tool
|
|
96
|
+
* @param localTimestamp - Local lastModified timestamp
|
|
97
|
+
* @param externalTimestamp - External ChangedDate
|
|
98
|
+
* @returns Conflict resolution result
|
|
99
|
+
*/
|
|
100
|
+
resolveWithTimestamp(field: string, localValue: any, externalValue: any, localTimestamp: string | null, externalTimestamp: string): ConflictResolution;
|
|
101
|
+
/**
|
|
102
|
+
* Resolve priority conflict - EXTERNAL WINS
|
|
103
|
+
*/
|
|
104
|
+
resolvePriorityConflict(localPriority: Priority | undefined, externalPriority: string | undefined): ConflictResolution;
|
|
105
|
+
/**
|
|
106
|
+
* Apply conflict resolutions to spec
|
|
107
|
+
*/
|
|
108
|
+
applyResolutions(specPath: string, resolutions: ConflictResolution[]): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Validate that external status wins in implementation
|
|
111
|
+
*/
|
|
112
|
+
validateImplementation(implementationCode: string): {
|
|
113
|
+
valid: boolean;
|
|
114
|
+
violations: string[];
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Get resolution history
|
|
118
|
+
*/
|
|
119
|
+
getResolutionLog(): ConflictResolution[];
|
|
120
|
+
/**
|
|
121
|
+
* Generate resolution report
|
|
122
|
+
*/
|
|
123
|
+
generateReport(): string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Load spec metadata from file
|
|
127
|
+
*/
|
|
128
|
+
export declare function loadSpecMetadata(specPath: string): Promise<SpecMetadata>;
|
|
129
|
+
/**
|
|
130
|
+
* Perform three-permission sync with conflict resolution
|
|
131
|
+
*/
|
|
132
|
+
export declare function performBidirectionalSync(specPath: string, externalStatus: ExternalStatus): Promise<void>;
|
|
133
|
+
export default ConflictResolver;
|
|
134
|
+
//# sourceMappingURL=conflict-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflict-resolver.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/conflict-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,GAAG,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE;QACd,GAAG,CAAC,EAAE;YACJ,SAAS,EAAE,MAAM,CAAC;YAClB,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC;QACF,IAAI,CAAC,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC;QACF,MAAM,CAAC,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;YACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,aAAa,GACb,aAAa,GACb,OAAO,GACP,UAAU,GACV,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAqED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAA4B;IAEjD;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAG,UAAU;IAK7F;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,EAAE,WAAW,EAAE,UAAU,GAAG,MAAM;IAKvF;;OAEG;IACI,qBAAqB,CAC1B,WAAW,EAAE,UAAU,EACvB,cAAc,EAAE,cAAc,GAC7B,kBAAkB;IAqBrB;;;;;;;;;OASG;IACI,iBAAiB,CACtB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,iBAAiB,EAAE,MAAM,GACxB,yBAAyB;IA2D5B;;;;;;;;;;;;OAYG;IACI,oBAAoB,CACzB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,GAAG,EAClB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,iBAAiB,EAAE,MAAM,GACxB,kBAAkB;IAsBrB;;OAEG;IACI,uBAAuB,CAC5B,aAAa,EAAE,QAAQ,GAAG,SAAS,EACnC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GACnC,kBAAkB;IAsBrB;;OAEG;IACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,kBAAkB,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC;IAkFhB;;OAEG;IACI,sBAAsB,CAC3B,kBAAkB,EAAE,MAAM,GACzB;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;IA6C3C;;OAEG;IACI,gBAAgB,IAAI,kBAAkB,EAAE;IAI/C;;OAEG;IACI,cAAc,IAAI,MAAM;CAsBhC;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAS9E;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAMD,eAAe,gBAAgB,CAAC"}
|