@seanmars/tospec 0.19.0-beta.0 → 0.19.0-beta.13
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/CHANGELOG.md +578 -0
- package/README.md +71 -77
- package/assets/dashboard/app.js +14 -3
- package/assets/dashboard/style.css +7 -0
- package/assets/metrics/app.js +22 -0
- package/assets/metrics/style.css +8 -0
- package/assets/rules/tospec/decision.md +3 -0
- package/assets/rules/tospec/single-source-of-truth.md +19 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +266 -82
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/config.d.ts +9 -17
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +374 -95
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/dashboard.d.ts +64 -81
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +350 -218
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/decision.d.ts +41 -19
- package/dist/commands/decision.d.ts.map +1 -1
- package/dist/commands/decision.js +400 -70
- package/dist/commands/decision.js.map +1 -1
- package/dist/commands/metrics.d.ts +34 -48
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +74 -84
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/shared-output.d.ts +24 -10
- package/dist/commands/shared-output.d.ts.map +1 -1
- package/dist/commands/shared-output.js +62 -11
- package/dist/commands/shared-output.js.map +1 -1
- package/dist/commands/show.d.ts +7 -0
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +39 -8
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/validate.d.ts +47 -30
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +282 -108
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/workflow/index.d.ts +6 -10
- package/dist/commands/workflow/index.d.ts.map +1 -1
- package/dist/commands/workflow/index.js +6 -10
- package/dist/commands/workflow/index.js.map +1 -1
- package/dist/commands/workflow/instructions.d.ts +21 -8
- package/dist/commands/workflow/instructions.d.ts.map +1 -1
- package/dist/commands/workflow/instructions.js +254 -95
- package/dist/commands/workflow/instructions.js.map +1 -1
- package/dist/commands/workflow/new-change.d.ts +4 -5
- package/dist/commands/workflow/new-change.d.ts.map +1 -1
- package/dist/commands/workflow/new-change.js +90 -25
- package/dist/commands/workflow/new-change.js.map +1 -1
- package/dist/commands/workflow/schemas.d.ts +3 -5
- package/dist/commands/workflow/schemas.d.ts.map +1 -1
- package/dist/commands/workflow/schemas.js +37 -11
- package/dist/commands/workflow/schemas.js.map +1 -1
- package/dist/commands/workflow/shared.d.ts +48 -21
- package/dist/commands/workflow/shared.d.ts.map +1 -1
- package/dist/commands/workflow/shared.js +36 -33
- package/dist/commands/workflow/shared.js.map +1 -1
- package/dist/commands/workflow/status.d.ts +10 -6
- package/dist/commands/workflow/status.d.ts.map +1 -1
- package/dist/commands/workflow/status.js +84 -42
- package/dist/commands/workflow/status.js.map +1 -1
- package/dist/commands/workflow/templates.d.ts +10 -3
- package/dist/commands/workflow/templates.d.ts.map +1 -1
- package/dist/commands/workflow/templates.js +39 -40
- package/dist/commands/workflow/templates.js.map +1 -1
- package/dist/core/archive.d.ts +26 -21
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +415 -201
- package/dist/core/archive.js.map +1 -1
- package/dist/core/artifact-graph/graph.d.ts +29 -36
- package/dist/core/artifact-graph/graph.d.ts.map +1 -1
- package/dist/core/artifact-graph/graph.js +50 -58
- package/dist/core/artifact-graph/graph.js.map +1 -1
- package/dist/core/artifact-graph/index.d.ts +2 -2
- package/dist/core/artifact-graph/index.d.ts.map +1 -1
- package/dist/core/artifact-graph/index.js +2 -2
- package/dist/core/artifact-graph/index.js.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts +105 -100
- package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.js +176 -110
- package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
- package/dist/core/artifact-graph/outputs.d.ts +13 -6
- package/dist/core/artifact-graph/outputs.d.ts.map +1 -1
- package/dist/core/artifact-graph/outputs.js +146 -8
- package/dist/core/artifact-graph/outputs.js.map +1 -1
- package/dist/core/artifact-graph/resolver.d.ts +44 -63
- package/dist/core/artifact-graph/resolver.d.ts.map +1 -1
- package/dist/core/artifact-graph/resolver.js +85 -86
- package/dist/core/artifact-graph/resolver.js.map +1 -1
- package/dist/core/artifact-graph/schema.d.ts +0 -6
- package/dist/core/artifact-graph/schema.d.ts.map +1 -1
- package/dist/core/artifact-graph/schema.js +7 -32
- package/dist/core/artifact-graph/schema.js.map +1 -1
- package/dist/core/artifact-graph/state.d.ts +1 -8
- package/dist/core/artifact-graph/state.d.ts.map +1 -1
- package/dist/core/artifact-graph/state.js +2 -17
- package/dist/core/artifact-graph/state.js.map +1 -1
- package/dist/core/artifact-graph/stub-detection.d.ts +12 -0
- package/dist/core/artifact-graph/stub-detection.d.ts.map +1 -0
- package/dist/core/artifact-graph/stub-detection.js +39 -0
- package/dist/core/artifact-graph/stub-detection.js.map +1 -0
- package/dist/core/artifact-graph/types.d.ts +4 -0
- package/dist/core/artifact-graph/types.d.ts.map +1 -1
- package/dist/core/artifact-graph/types.js +30 -10
- package/dist/core/artifact-graph/types.js.map +1 -1
- package/dist/core/available-tools.d.ts +3 -12
- package/dist/core/available-tools.d.ts.map +1 -1
- package/dist/core/available-tools.js +4 -13
- package/dist/core/available-tools.js.map +1 -1
- package/dist/core/change-metadata/schema.d.ts +1 -1
- package/dist/core/change-metadata/schema.d.ts.map +1 -1
- package/dist/core/change-metadata/schema.js +10 -7
- package/dist/core/change-metadata/schema.js.map +1 -1
- package/dist/core/change-presenter.d.ts +23 -18
- package/dist/core/change-presenter.d.ts.map +1 -1
- package/dist/core/change-presenter.js +102 -43
- package/dist/core/change-presenter.js.map +1 -1
- package/dist/core/change-status-policy.d.ts +8 -1
- package/dist/core/change-status-policy.d.ts.map +1 -1
- package/dist/core/change-status-policy.js +25 -1
- package/dist/core/change-status-policy.js.map +1 -1
- package/dist/core/codex-metrics.d.ts +25 -45
- package/dist/core/codex-metrics.d.ts.map +1 -1
- package/dist/core/codex-metrics.js +44 -88
- package/dist/core/codex-metrics.js.map +1 -1
- package/dist/core/codex-residue.d.ts +22 -0
- package/dist/core/codex-residue.d.ts.map +1 -0
- package/dist/core/codex-residue.js +61 -0
- package/dist/core/codex-residue.js.map +1 -0
- package/dist/core/command-generation/adapters/claude.d.ts +2 -9
- package/dist/core/command-generation/adapters/claude.d.ts.map +1 -1
- package/dist/core/command-generation/adapters/claude.js +2 -12
- package/dist/core/command-generation/adapters/claude.js.map +1 -1
- package/dist/core/command-generation/adapters/index.d.ts +1 -9
- package/dist/core/command-generation/adapters/index.d.ts.map +1 -1
- package/dist/core/command-generation/adapters/index.js +1 -9
- package/dist/core/command-generation/adapters/index.js.map +1 -1
- package/dist/core/command-generation/generator.d.ts +0 -17
- package/dist/core/command-generation/generator.d.ts.map +1 -1
- package/dist/core/command-generation/generator.js +0 -17
- package/dist/core/command-generation/generator.js.map +1 -1
- package/dist/core/command-generation/index.d.ts +2 -5
- package/dist/core/command-generation/index.d.ts.map +1 -1
- package/dist/core/command-generation/index.js +0 -9
- package/dist/core/command-generation/index.js.map +1 -1
- package/dist/core/command-generation/types.d.ts +10 -36
- package/dist/core/command-generation/types.d.ts.map +1 -1
- package/dist/core/command-generation/types.js +0 -6
- package/dist/core/command-generation/types.js.map +1 -1
- package/dist/core/command-generation/yaml.d.ts +3 -18
- package/dist/core/command-generation/yaml.d.ts.map +1 -1
- package/dist/core/command-generation/yaml.js +5 -23
- package/dist/core/command-generation/yaml.js.map +1 -1
- package/dist/core/config-prompts.d.ts +2 -4
- package/dist/core/config-prompts.d.ts.map +1 -1
- package/dist/core/config-prompts.js +2 -7
- package/dist/core/config-prompts.js.map +1 -1
- package/dist/core/config-schema.d.ts +8 -53
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +49 -62
- package/dist/core/config-schema.js.map +1 -1
- package/dist/core/config.d.ts +56 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +73 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/converters/json-converter.d.ts.map +1 -1
- package/dist/core/dashboard-activity.d.ts +7 -9
- package/dist/core/dashboard-activity.d.ts.map +1 -1
- package/dist/core/dashboard-activity.js +26 -24
- package/dist/core/dashboard-activity.js.map +1 -1
- package/dist/core/dashboard-data.d.ts +40 -22
- package/dist/core/dashboard-data.d.ts.map +1 -1
- package/dist/core/dashboard-data.js +84 -68
- package/dist/core/dashboard-data.js.map +1 -1
- package/dist/core/global-config.d.ts +24 -53
- package/dist/core/global-config.d.ts.map +1 -1
- package/dist/core/global-config.js +43 -62
- package/dist/core/global-config.js.map +1 -1
- package/dist/core/init.d.ts +29 -11
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +232 -164
- package/dist/core/init.js.map +1 -1
- package/dist/core/list.d.ts +1 -1
- package/dist/core/list.d.ts.map +1 -1
- package/dist/core/list.js +121 -28
- package/dist/core/list.js.map +1 -1
- package/dist/core/local-server.d.ts +63 -39
- package/dist/core/local-server.d.ts.map +1 -1
- package/dist/core/local-server.js +99 -53
- package/dist/core/local-server.js.map +1 -1
- package/dist/core/markdown-render.d.ts +25 -0
- package/dist/core/markdown-render.d.ts.map +1 -0
- package/dist/core/markdown-render.js +94 -0
- package/dist/core/markdown-render.js.map +1 -0
- package/dist/core/migrate.d.ts +32 -15
- package/dist/core/migrate.d.ts.map +1 -1
- package/dist/core/migrate.js +220 -108
- package/dist/core/migrate.js.map +1 -1
- package/dist/core/parsers/change-parser.d.ts +7 -10
- package/dist/core/parsers/change-parser.d.ts.map +1 -1
- package/dist/core/parsers/change-parser.js +48 -56
- package/dist/core/parsers/change-parser.js.map +1 -1
- package/dist/core/parsers/markdown-parser.d.ts +8 -9
- package/dist/core/parsers/markdown-parser.d.ts.map +1 -1
- package/dist/core/parsers/markdown-parser.js +31 -22
- package/dist/core/parsers/markdown-parser.js.map +1 -1
- package/dist/core/parsers/requirement-blocks.d.ts +53 -11
- package/dist/core/parsers/requirement-blocks.d.ts.map +1 -1
- package/dist/core/parsers/requirement-blocks.js +200 -60
- package/dist/core/parsers/requirement-blocks.js.map +1 -1
- package/dist/core/parsers/requirement-text.d.ts +73 -79
- package/dist/core/parsers/requirement-text.d.ts.map +1 -1
- package/dist/core/parsers/requirement-text.js +137 -79
- package/dist/core/parsers/requirement-text.js.map +1 -1
- package/dist/core/parsers/spec-structure.d.ts +1 -1
- package/dist/core/parsers/spec-structure.d.ts.map +1 -1
- package/dist/core/parsers/spec-structure.js +30 -3
- package/dist/core/parsers/spec-structure.js.map +1 -1
- package/dist/core/planning-home.js.map +1 -1
- package/dist/core/profiles.d.ts +3 -10
- package/dist/core/profiles.d.ts.map +1 -1
- package/dist/core/profiles.js +5 -12
- package/dist/core/profiles.js.map +1 -1
- package/dist/core/project-config.d.ts +43 -44
- package/dist/core/project-config.d.ts.map +1 -1
- package/dist/core/project-config.js +107 -82
- package/dist/core/project-config.js.map +1 -1
- package/dist/core/project-layout.d.ts +10 -18
- package/dist/core/project-layout.d.ts.map +1 -1
- package/dist/core/project-layout.js +16 -26
- package/dist/core/project-layout.js.map +1 -1
- package/dist/core/root-selection.d.ts +11 -7
- package/dist/core/root-selection.d.ts.map +1 -1
- package/dist/core/root-selection.js +7 -8
- package/dist/core/root-selection.js.map +1 -1
- package/dist/core/rules.d.ts +10 -0
- package/dist/core/rules.d.ts.map +1 -0
- package/dist/core/rules.js +43 -0
- package/dist/core/rules.js.map +1 -0
- package/dist/core/schema-names.d.ts +16 -0
- package/dist/core/schema-names.d.ts.map +1 -0
- package/dist/core/schema-names.js +16 -0
- package/dist/core/schema-names.js.map +1 -0
- package/dist/core/schemas/base.schema.d.ts +3 -0
- package/dist/core/schemas/base.schema.d.ts.map +1 -1
- package/dist/core/schemas/base.schema.js +22 -6
- package/dist/core/schemas/base.schema.js.map +1 -1
- package/dist/core/schemas/change.schema.d.ts +16 -0
- package/dist/core/schemas/change.schema.d.ts.map +1 -1
- package/dist/core/schemas/change.schema.js +41 -10
- package/dist/core/schemas/change.schema.js.map +1 -1
- package/dist/core/schemas/spec.schema.d.ts +2 -0
- package/dist/core/schemas/spec.schema.d.ts.map +1 -1
- package/dist/core/shared/index.d.ts +3 -8
- package/dist/core/shared/index.d.ts.map +1 -1
- package/dist/core/shared/index.js +3 -8
- package/dist/core/shared/index.js.map +1 -1
- package/dist/core/shared/rules-generation.d.ts +27 -8
- package/dist/core/shared/rules-generation.d.ts.map +1 -1
- package/dist/core/shared/rules-generation.js +151 -16
- package/dist/core/shared/rules-generation.js.map +1 -1
- package/dist/core/shared/skill-generation.d.ts +38 -53
- package/dist/core/shared/skill-generation.d.ts.map +1 -1
- package/dist/core/shared/skill-generation.js +82 -51
- package/dist/core/shared/skill-generation.js.map +1 -1
- package/dist/core/shared/tool-detection.d.ts +40 -62
- package/dist/core/shared/tool-detection.d.ts.map +1 -1
- package/dist/core/shared/tool-detection.js +88 -80
- package/dist/core/shared/tool-detection.js.map +1 -1
- package/dist/core/skill-metrics.d.ts +36 -63
- package/dist/core/skill-metrics.d.ts.map +1 -1
- package/dist/core/skill-metrics.js +34 -73
- package/dist/core/skill-metrics.js.map +1 -1
- package/dist/core/spec-presenter.d.ts.map +1 -1
- package/dist/core/spec-presenter.js +6 -6
- package/dist/core/spec-presenter.js.map +1 -1
- package/dist/core/specs-apply.d.ts +24 -23
- package/dist/core/specs-apply.d.ts.map +1 -1
- package/dist/core/specs-apply.js +188 -173
- package/dist/core/specs-apply.js.map +1 -1
- package/dist/core/templates/fragments/interview.d.ts +2 -6
- package/dist/core/templates/fragments/interview.d.ts.map +1 -1
- package/dist/core/templates/fragments/interview.js +2 -6
- package/dist/core/templates/fragments/interview.js.map +1 -1
- package/dist/core/templates/fragments/next-step.d.ts +4 -8
- package/dist/core/templates/fragments/next-step.d.ts.map +1 -1
- package/dist/core/templates/fragments/next-step.js +4 -8
- package/dist/core/templates/fragments/next-step.js.map +1 -1
- package/dist/core/templates/fragments/verify.d.ts +9 -12
- package/dist/core/templates/fragments/verify.d.ts.map +1 -1
- package/dist/core/templates/fragments/verify.js +9 -12
- package/dist/core/templates/fragments/verify.js.map +1 -1
- package/dist/core/templates/index.d.ts +0 -6
- package/dist/core/templates/index.d.ts.map +1 -1
- package/dist/core/templates/index.js +0 -7
- package/dist/core/templates/index.js.map +1 -1
- package/dist/core/templates/skill-templates.d.ts +1 -5
- package/dist/core/templates/skill-templates.d.ts.map +1 -1
- package/dist/core/templates/skill-templates.js +0 -5
- package/dist/core/templates/skill-templates.js.map +1 -1
- package/dist/core/templates/types.d.ts +3 -7
- package/dist/core/templates/types.d.ts.map +1 -1
- package/dist/core/templates/types.js +0 -3
- package/dist/core/templates/types.js.map +1 -1
- package/dist/core/templates/workflows/apply.d.ts +3 -9
- package/dist/core/templates/workflows/apply.d.ts.map +1 -1
- package/dist/core/templates/workflows/apply.js +9 -12
- package/dist/core/templates/workflows/apply.js.map +1 -1
- package/dist/core/templates/workflows/archive.d.ts +0 -6
- package/dist/core/templates/workflows/archive.d.ts.map +1 -1
- package/dist/core/templates/workflows/archive.js +7 -5
- package/dist/core/templates/workflows/archive.js.map +1 -1
- package/dist/core/templates/workflows/decision.js +4 -4
- package/dist/core/templates/workflows/decision.js.map +1 -1
- package/dist/core/templates/workflows/explore.js +1 -1
- package/dist/core/templates/workflows/grill.d.ts.map +1 -1
- package/dist/core/templates/workflows/grill.js +0 -2
- package/dist/core/templates/workflows/grill.js.map +1 -1
- package/dist/core/templates/workflows/issue.d.ts +0 -6
- package/dist/core/templates/workflows/issue.d.ts.map +1 -1
- package/dist/core/templates/workflows/issue.js +3 -0
- package/dist/core/templates/workflows/issue.js.map +1 -1
- package/dist/core/templates/workflows/propose.d.ts +0 -6
- package/dist/core/templates/workflows/propose.d.ts.map +1 -1
- package/dist/core/templates/workflows/propose.js +0 -1
- package/dist/core/templates/workflows/propose.js.map +1 -1
- package/dist/core/templates/workflows/sync.d.ts +2 -8
- package/dist/core/templates/workflows/sync.d.ts.map +1 -1
- package/dist/core/templates/workflows/sync.js +2 -2
- package/dist/core/templates/workflows/sync.js.map +1 -1
- package/dist/core/templates/workflows/update.d.ts +0 -6
- package/dist/core/templates/workflows/update.d.ts.map +1 -1
- package/dist/core/templates/workflows/update.js.map +1 -1
- package/dist/core/update.d.ts +26 -21
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +165 -116
- package/dist/core/update.js.map +1 -1
- package/dist/core/user-state-migration.d.ts +13 -15
- package/dist/core/user-state-migration.d.ts.map +1 -1
- package/dist/core/user-state-migration.js +16 -20
- package/dist/core/user-state-migration.js.map +1 -1
- package/dist/core/validation/constants.d.ts +19 -25
- package/dist/core/validation/constants.d.ts.map +1 -1
- package/dist/core/validation/constants.js +25 -20
- package/dist/core/validation/constants.js.map +1 -1
- package/dist/core/validation/prose-length.d.ts +15 -0
- package/dist/core/validation/prose-length.d.ts.map +1 -0
- package/dist/core/validation/prose-length.js +29 -0
- package/dist/core/validation/prose-length.js.map +1 -0
- package/dist/core/validation/purpose-placeholder.d.ts +9 -16
- package/dist/core/validation/purpose-placeholder.d.ts.map +1 -1
- package/dist/core/validation/purpose-placeholder.js +30 -44
- package/dist/core/validation/purpose-placeholder.js.map +1 -1
- package/dist/core/validation/section-validator.d.ts +4 -4
- package/dist/core/validation/section-validator.d.ts.map +1 -1
- package/dist/core/validation/section-validator.js +43 -7
- package/dist/core/validation/section-validator.js.map +1 -1
- package/dist/core/validation/task-numbering.d.ts +6 -3
- package/dist/core/validation/task-numbering.d.ts.map +1 -1
- package/dist/core/validation/task-numbering.js +23 -11
- package/dist/core/validation/task-numbering.js.map +1 -1
- package/dist/core/validation/types.d.ts +18 -0
- package/dist/core/validation/types.d.ts.map +1 -1
- package/dist/core/validation/types.js +12 -1
- package/dist/core/validation/types.js.map +1 -1
- package/dist/core/validation/validator.d.ts +50 -51
- package/dist/core/validation/validator.d.ts.map +1 -1
- package/dist/core/validation/validator.js +486 -263
- package/dist/core/validation/validator.js.map +1 -1
- package/dist/prompts/searchable-multi-select.d.ts +3 -8
- package/dist/prompts/searchable-multi-select.d.ts.map +1 -1
- package/dist/prompts/searchable-multi-select.js +16 -39
- package/dist/prompts/searchable-multi-select.js.map +1 -1
- package/dist/utils/change-metadata.d.ts +11 -50
- package/dist/utils/change-metadata.d.ts.map +1 -1
- package/dist/utils/change-metadata.js +48 -67
- package/dist/utils/change-metadata.js.map +1 -1
- package/dist/utils/change-utils.d.ts +31 -54
- package/dist/utils/change-utils.d.ts.map +1 -1
- package/dist/utils/change-utils.js +143 -100
- package/dist/utils/change-utils.js.map +1 -1
- package/dist/utils/file-lock.d.ts +39 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +149 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/file-system.d.ts +12 -32
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +16 -40
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +7 -11
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +11 -11
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/interactive.d.ts +4 -9
- package/dist/utils/interactive.d.ts.map +1 -1
- package/dist/utils/interactive.js +2 -4
- package/dist/utils/interactive.js.map +1 -1
- package/dist/utils/item-discovery.d.ts +15 -10
- package/dist/utils/item-discovery.d.ts.map +1 -1
- package/dist/utils/item-discovery.js +42 -47
- package/dist/utils/item-discovery.js.map +1 -1
- package/dist/utils/link.d.ts +13 -4
- package/dist/utils/link.d.ts.map +1 -1
- package/dist/utils/link.js +13 -4
- package/dist/utils/link.js.map +1 -1
- package/dist/utils/match.js.map +1 -1
- package/dist/utils/requirement-diff.d.ts +13 -23
- package/dist/utils/requirement-diff.d.ts.map +1 -1
- package/dist/utils/requirement-diff.js +13 -23
- package/dist/utils/requirement-diff.js.map +1 -1
- package/dist/utils/spec-files.d.ts +10 -11
- package/dist/utils/spec-files.d.ts.map +1 -1
- package/dist/utils/spec-files.js +31 -22
- package/dist/utils/spec-files.js.map +1 -1
- package/dist/utils/task-progress.d.ts +11 -9
- package/dist/utils/task-progress.d.ts.map +1 -1
- package/dist/utils/task-progress.js +53 -32
- package/dist/utils/task-progress.js.map +1 -1
- package/dist/utils/timestamp.d.ts +5 -8
- package/dist/utils/timestamp.d.ts.map +1 -1
- package/dist/utils/timestamp.js +5 -8
- package/dist/utils/timestamp.js.map +1 -1
- package/package.json +9 -10
- package/schemas/decision/templates/decision.md +3 -1
- package/schemas/decision/templates/index.md +2 -2
- package/schemas/issue/schema.yaml +11 -2
- package/schemas/issue/templates/spec.md +37 -3
- package/schemas/sdd/schema.yaml +24 -1
- package/schemas/sdd/templates/spec.md +37 -3
package/dist/core/migrate.js
CHANGED
|
@@ -2,7 +2,12 @@ import { promises as fs } from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
4
4
|
import { moveDirectory, moveFile } from './archive.js';
|
|
5
|
+
import { serializeConfig } from './config-prompts.js';
|
|
5
6
|
import { formatLocalDate } from '../utils/timestamp.js';
|
|
7
|
+
import { buildCodeFenceMask, normalizeDocument } from './parsers/requirement-text.js';
|
|
8
|
+
import { parseDeltaSpec, parseRequirementBlocks } from './parsers/requirement-blocks.js';
|
|
9
|
+
import { emitSuccess } from '../commands/shared-output.js';
|
|
10
|
+
import { isMissingPathError } from '../utils/file-system.js';
|
|
6
11
|
/**
|
|
7
12
|
* `tospec migrate [openspec-dir]` — one-shot conversion of an OpenSpec project
|
|
8
13
|
* layout into the tospec layout, written to `<cwd>/tospec`.
|
|
@@ -17,7 +22,8 @@ import { formatLocalDate } from '../utils/timestamp.js';
|
|
|
17
22
|
* level) or headerless (bare `### Requirement:` list) are rebuilt into the
|
|
18
23
|
* `# <name> Specification / ## Purpose / ## Requirements` shape tospec
|
|
19
24
|
* validates. MODIFIED blocks are kept (they carry the full updated text),
|
|
20
|
-
* REMOVED
|
|
25
|
+
* REMOVED requirements are dropped and RENAMED ones are renamed, both
|
|
26
|
+
* through the project's own delta parser and both reported.
|
|
21
27
|
*
|
|
22
28
|
* The source directory is never modified.
|
|
23
29
|
*/
|
|
@@ -26,21 +32,33 @@ const METADATA_TARGET = '.tospec.yaml';
|
|
|
26
32
|
const TARGET_SCHEMA = 'sdd';
|
|
27
33
|
const PURPOSE_STUB = 'TBD - migrated from OpenSpec; refine this purpose statement.';
|
|
28
34
|
const DELTA_HEADER = /^## (ADDED|MODIFIED|REMOVED|RENAMED) Requirements\s*$/;
|
|
29
|
-
const
|
|
35
|
+
const PURPOSE_HEADER = /^## Purpose\s*$/;
|
|
36
|
+
/** Any Markdown heading — what ends the `## Purpose` body. */
|
|
37
|
+
const ANY_HEADER = /^#{1,6}\s/;
|
|
30
38
|
const ARCHIVE_DATE_PREFIX = /^(\d{4})-(\d{2})-(\d{2})-(.+)$/;
|
|
39
|
+
/** The `--json` null-shape; mirrors the success payload with `migrate` nulled. */
|
|
40
|
+
export const MIGRATE_FAILURE_PAYLOAD = { migrate: null, root: null };
|
|
31
41
|
export class MigrateError extends Error {
|
|
42
|
+
/**
|
|
43
|
+
* A full `CommandDiagnostic`: `asStatus` recognises one by `typeof
|
|
44
|
+
* diagnostic.code === 'string'`, so a bare `{ fix }` is dropped.
|
|
45
|
+
*/
|
|
32
46
|
diagnostic;
|
|
33
|
-
constructor(message,
|
|
47
|
+
constructor(message, options) {
|
|
34
48
|
super(message);
|
|
35
|
-
this.diagnostic = diagnostic;
|
|
36
49
|
this.name = 'MigrateError';
|
|
50
|
+
this.diagnostic = {
|
|
51
|
+
severity: 'error',
|
|
52
|
+
code: options?.code ?? 'migrate_error',
|
|
53
|
+
message,
|
|
54
|
+
...(options?.fix ? { fix: options.fix } : {}),
|
|
55
|
+
};
|
|
37
56
|
}
|
|
38
57
|
}
|
|
39
58
|
/**
|
|
40
59
|
* Converts an OpenSpec archive dir name (`YYYY-MM-DD-<name>`) to the tospec
|
|
41
|
-
* stamp form (`YYYYMMDD_000000-<name>`). OpenSpec only recorded the date, so
|
|
42
|
-
*
|
|
43
|
-
* unchanged (they already parse as `<stamp>-<name>` no worse than before).
|
|
60
|
+
* stamp form (`YYYYMMDD_000000-<name>`). OpenSpec only recorded the date, so the
|
|
61
|
+
* time part is zero-filled. Names without the date prefix pass through.
|
|
44
62
|
*/
|
|
45
63
|
export function convertArchiveDirName(dirName) {
|
|
46
64
|
const match = dirName.match(ARCHIVE_DATE_PREFIX);
|
|
@@ -56,101 +74,69 @@ export function convertArchiveDirName(dirName) {
|
|
|
56
74
|
* well-formed main spec (has `## Purpose` and no top-level delta headers).
|
|
57
75
|
*/
|
|
58
76
|
export function normalizeMainSpec(content, capabilityName) {
|
|
59
|
-
const
|
|
77
|
+
const document = normalizeDocument(content);
|
|
78
|
+
const lines = document.split('\n');
|
|
79
|
+
const fenceMask = buildCodeFenceMask(lines);
|
|
60
80
|
let hasDelta = false;
|
|
61
81
|
let hasPurpose = false;
|
|
62
|
-
let
|
|
63
|
-
|
|
64
|
-
if (/^\s*(```|~~~)/.test(line)) {
|
|
65
|
-
inFence = !inFence;
|
|
82
|
+
for (let i = 0; i < lines.length; i++) {
|
|
83
|
+
if (fenceMask[i])
|
|
66
84
|
continue;
|
|
67
|
-
|
|
68
|
-
if (inFence)
|
|
69
|
-
continue;
|
|
70
|
-
if (DELTA_HEADER.test(line))
|
|
85
|
+
if (DELTA_HEADER.test(lines[i]))
|
|
71
86
|
hasDelta = true;
|
|
72
|
-
if (
|
|
87
|
+
if (PURPOSE_HEADER.test(lines[i]))
|
|
73
88
|
hasPurpose = true;
|
|
74
89
|
}
|
|
75
90
|
if (!hasDelta && hasPurpose) {
|
|
76
91
|
return null;
|
|
77
92
|
}
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
93
|
+
// Delta semantics come from the project's own delta parser rather than a
|
|
94
|
+
// second scan written here: a scan that recognises only the
|
|
95
|
+
// `### Requirement:` header form misses the bullet form the spec template
|
|
96
|
+
// prescribes, migrating a REMOVED requirement intact under an empty report.
|
|
97
|
+
const plan = parseDeltaSpec(document);
|
|
98
|
+
// Collected document-wide rather than per delta section: a block written
|
|
99
|
+
// before the first delta header is still part of the spec. Keyed by name, in
|
|
100
|
+
// document order, so a MODIFIED block replaces the ADDED one it restates.
|
|
81
101
|
const blocks = new Map();
|
|
102
|
+
for (const block of parseRequirementBlocks(document)) {
|
|
103
|
+
blocks.set(block.name, block.raw);
|
|
104
|
+
}
|
|
82
105
|
const removed = [];
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// MODIFIED) instead of losing it — the migration report flags it for
|
|
97
|
-
// a manual name review.
|
|
98
|
-
blocks.set(currentName, current.join('\n').trim());
|
|
99
|
-
renamedKept.push(currentName);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
blocks.delete(currentName);
|
|
103
|
-
removed.push(currentName);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
current = null;
|
|
107
|
-
currentName = null;
|
|
108
|
-
};
|
|
109
|
-
inFence = false;
|
|
110
|
-
for (const line of lines) {
|
|
111
|
-
if (/^\s*(```|~~~)/.test(line))
|
|
112
|
-
inFence = !inFence;
|
|
113
|
-
if (!inFence) {
|
|
114
|
-
const delta = line.match(DELTA_HEADER);
|
|
115
|
-
if (delta) {
|
|
116
|
-
flush();
|
|
117
|
-
mode = delta[1];
|
|
118
|
-
section = 'none';
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
const requirement = line.match(REQUIREMENT_HEADER);
|
|
122
|
-
if (requirement) {
|
|
123
|
-
flush();
|
|
124
|
-
section = 'none';
|
|
125
|
-
currentName = requirement[1];
|
|
126
|
-
current = [line];
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
if (/^## Purpose\s*$/.test(line)) {
|
|
130
|
-
flush();
|
|
131
|
-
section = 'purpose';
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
if (/^##? /.test(line)) {
|
|
135
|
-
flush();
|
|
136
|
-
section = 'none';
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
if (current) {
|
|
141
|
-
current.push(line);
|
|
142
|
-
}
|
|
143
|
-
else if (section === 'purpose') {
|
|
144
|
-
purpose.push(line);
|
|
106
|
+
for (const name of plan.removed) {
|
|
107
|
+
if (blocks.delete(name))
|
|
108
|
+
removed.push(name);
|
|
109
|
+
}
|
|
110
|
+
const renamed = [];
|
|
111
|
+
// A Set: one requirement can be named by both an unresolvable pair and an
|
|
112
|
+
// orphaned line, and this is a review list, not a count.
|
|
113
|
+
const renamedKept = new Set();
|
|
114
|
+
for (const { from, to } of plan.renamed) {
|
|
115
|
+
const block = blocks.get(from);
|
|
116
|
+
if (block === undefined) {
|
|
117
|
+
renamedKept.add(from);
|
|
118
|
+
continue;
|
|
145
119
|
}
|
|
120
|
+
blocks.delete(from);
|
|
121
|
+
blocks.set(to, renameBlockHeader(block, to));
|
|
122
|
+
renamed.push({ from, to });
|
|
123
|
+
}
|
|
124
|
+
for (const issue of plan.renamedIssues) {
|
|
125
|
+
renamedKept.add(issue.name);
|
|
126
|
+
}
|
|
127
|
+
// A full block written under RENAMED with no FROM:/TO: pair states no rename,
|
|
128
|
+
// so its content is kept under a name only a human can confirm.
|
|
129
|
+
const paired = new Set(plan.renamed.flatMap((pair) => [pair.from, pair.to]));
|
|
130
|
+
for (const block of plan.renamedBlocks) {
|
|
131
|
+
if (!paired.has(block.name) && blocks.has(block.name))
|
|
132
|
+
renamedKept.add(block.name);
|
|
146
133
|
}
|
|
147
|
-
flush();
|
|
148
134
|
if (blocks.size === 0) {
|
|
149
|
-
// Nothing recognizable to rebuild; leave the file
|
|
150
|
-
//
|
|
135
|
+
// Nothing recognizable to rebuild; leave the file rather than replace it
|
|
136
|
+
// with an empty shell.
|
|
151
137
|
return null;
|
|
152
138
|
}
|
|
153
|
-
const purposeText =
|
|
139
|
+
const purposeText = extractPurpose(lines, fenceMask) || PURPOSE_STUB;
|
|
154
140
|
const rebuilt = [
|
|
155
141
|
`# ${capabilityName} Specification`,
|
|
156
142
|
'',
|
|
@@ -162,7 +148,43 @@ export function normalizeMainSpec(content, capabilityName) {
|
|
|
162
148
|
[...blocks.values()].join('\n\n'),
|
|
163
149
|
'',
|
|
164
150
|
].join('\n');
|
|
165
|
-
return {
|
|
151
|
+
return {
|
|
152
|
+
content: rebuilt,
|
|
153
|
+
fixed: hasDelta ? 'delta' : 'headerless',
|
|
154
|
+
removed,
|
|
155
|
+
renamed,
|
|
156
|
+
renamedKept: [...renamedKept],
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The text under `## Purpose`, up to the next heading of any level — a
|
|
161
|
+
* `### Requirement:` ends it just as a second `##` section does.
|
|
162
|
+
*/
|
|
163
|
+
function extractPurpose(lines, fenceMask) {
|
|
164
|
+
const collected = [];
|
|
165
|
+
let inPurpose = false;
|
|
166
|
+
for (let i = 0; i < lines.length; i++) {
|
|
167
|
+
if (!fenceMask[i]) {
|
|
168
|
+
if (PURPOSE_HEADER.test(lines[i])) {
|
|
169
|
+
inPurpose = true;
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (inPurpose && ANY_HEADER.test(lines[i]))
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
if (inPurpose)
|
|
176
|
+
collected.push(lines[i]);
|
|
177
|
+
}
|
|
178
|
+
return collected.join('\n').trim();
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Retitles a requirement block. The parser guarantees the block's first line is
|
|
182
|
+
* its `### Requirement:` header, so only that line is rewritten — a body that
|
|
183
|
+
* quotes the old name is left for the review the rename is reported for.
|
|
184
|
+
*/
|
|
185
|
+
function renameBlockHeader(block, to) {
|
|
186
|
+
const [, ...body] = block.split('\n');
|
|
187
|
+
return [`### Requirement: ${to}`, ...body].join('\n');
|
|
166
188
|
}
|
|
167
189
|
/**
|
|
168
190
|
* Rewrites the schema value in change metadata and fills the fields a
|
|
@@ -180,6 +202,29 @@ function convertMetadata(raw, defaults) {
|
|
|
180
202
|
parsed.goal = defaults.goal;
|
|
181
203
|
return stringifyYaml(parsed);
|
|
182
204
|
}
|
|
205
|
+
/** Appends prose as a YAML literal block so its Markdown characters stay verbatim. */
|
|
206
|
+
function appendContext(config, context) {
|
|
207
|
+
const prefix = config.endsWith('\n') ? config : `${config}\n`;
|
|
208
|
+
const normalized = normalizeDocument(context);
|
|
209
|
+
const trailingNewlines = normalized.match(/\n*$/)?.[0].length ?? 0;
|
|
210
|
+
// YAML block chomping: strip, clip, or keep the trailing newlines.
|
|
211
|
+
let chomping;
|
|
212
|
+
if (trailingNewlines === 0)
|
|
213
|
+
chomping = '-';
|
|
214
|
+
else if (trailingNewlines === 1)
|
|
215
|
+
chomping = '';
|
|
216
|
+
else
|
|
217
|
+
chomping = '+';
|
|
218
|
+
const lines = normalized.split('\n');
|
|
219
|
+
if (trailingNewlines > 0)
|
|
220
|
+
lines.pop();
|
|
221
|
+
// The `2` is an explicit indentation indicator. Without it YAML infers the
|
|
222
|
+
// block's width from the first non-empty line, so a project.md opening with an
|
|
223
|
+
// indented line terminates the block mid-value.
|
|
224
|
+
return `${prefix}context: |2${chomping}\n${lines
|
|
225
|
+
.map((line) => ` ${line}`)
|
|
226
|
+
.join('\n')}\n`;
|
|
227
|
+
}
|
|
183
228
|
export class MigrateCommand {
|
|
184
229
|
async execute(sourceDir, options) {
|
|
185
230
|
const projectRoot = process.cwd();
|
|
@@ -191,9 +236,8 @@ export class MigrateCommand {
|
|
|
191
236
|
fix: 'Pass the directory explicitly: tospec migrate <openspec-dir>',
|
|
192
237
|
});
|
|
193
238
|
}
|
|
194
|
-
// An empty tospec/ is fine to migrate into
|
|
195
|
-
//
|
|
196
|
-
// to delete it would undo the init. Only real content blocks the migration.
|
|
239
|
+
// An empty tospec/ is fine to migrate into: `tospec init` leaves one, and
|
|
240
|
+
// requiring the user to delete it would undo the init.
|
|
197
241
|
const targetContent = [
|
|
198
242
|
...(await listDirs(path.join(target, 'specs'))),
|
|
199
243
|
...(await listDirs(path.join(target, 'changes'), 'archive')),
|
|
@@ -207,6 +251,12 @@ export class MigrateCommand {
|
|
|
207
251
|
const activeChanges = await listDirs(path.join(source, 'changes'), 'archive');
|
|
208
252
|
const archivedChanges = await listDirs(path.join(source, 'changes', 'archive'), 'archive');
|
|
209
253
|
const specDirs = await listDirs(path.join(source, 'specs'));
|
|
254
|
+
// JSON mode is non-interactive, so the caller has to say --force up front.
|
|
255
|
+
if (options?.json && !options?.force) {
|
|
256
|
+
throw new MigrateError('migrate --json is non-interactive and needs confirmation up front.', {
|
|
257
|
+
fix: 'tospec migrate <openspec-dir> --json --force',
|
|
258
|
+
});
|
|
259
|
+
}
|
|
210
260
|
if (!options?.force) {
|
|
211
261
|
console.log(`Migrate OpenSpec project to tospec format:`);
|
|
212
262
|
console.log(` Source: ${source} (read-only)`);
|
|
@@ -223,19 +273,21 @@ export class MigrateCommand {
|
|
|
223
273
|
const summary = {
|
|
224
274
|
specs: { copied: 0, normalizedDelta: 0, normalizedHeaderless: 0, skippedEmpty: 0 },
|
|
225
275
|
changes: { active: 0, archived: 0, metadataCreated: 0 },
|
|
276
|
+
context: 'absent',
|
|
226
277
|
removedRequirements: [],
|
|
278
|
+
renamedRequirements: [],
|
|
227
279
|
renamedKept: [],
|
|
228
280
|
};
|
|
229
|
-
// Two-phase: build the whole tree in a sibling staging dir, then promote
|
|
230
|
-
//
|
|
231
|
-
//
|
|
281
|
+
// Two-phase: build the whole tree in a sibling staging dir, then promote it.
|
|
282
|
+
// A mid-migration failure cleans staging and leaves the target untouched, so
|
|
283
|
+
// a rerun isn't blocked by half-migrated content.
|
|
232
284
|
const staging = path.join(projectRoot, `.tospec-migrate-staging-${process.pid}`);
|
|
233
285
|
await fs.rm(staging, { recursive: true, force: true });
|
|
234
286
|
try {
|
|
235
287
|
await fs.mkdir(path.join(staging, 'specs'), { recursive: true });
|
|
236
288
|
await fs.mkdir(path.join(staging, 'changes', 'archive'), { recursive: true });
|
|
237
289
|
await fs.mkdir(path.join(staging, 'tickets', 'archive'), { recursive: true });
|
|
238
|
-
await this.migrateConfig(source, staging);
|
|
290
|
+
summary.context = await this.migrateConfig(source, staging);
|
|
239
291
|
for (const dir of specDirs) {
|
|
240
292
|
const specFile = path.join(source, 'specs', dir, 'spec.md');
|
|
241
293
|
if (!(await exists(specFile))) {
|
|
@@ -252,6 +304,7 @@ export class MigrateCommand {
|
|
|
252
304
|
else
|
|
253
305
|
summary.specs.normalizedHeaderless++;
|
|
254
306
|
summary.removedRequirements.push(...normalized.removed.map((n) => `${dir}/${n}`));
|
|
307
|
+
summary.renamedRequirements.push(...normalized.renamed.map((rename) => `${dir}/${rename.from} -> ${rename.to}`));
|
|
255
308
|
summary.renamedKept.push(...normalized.renamedKept.map((n) => `${dir}/${n}`));
|
|
256
309
|
}
|
|
257
310
|
summary.specs.copied++;
|
|
@@ -278,34 +331,84 @@ export class MigrateCommand {
|
|
|
278
331
|
await fs.rm(staging, { recursive: true, force: true });
|
|
279
332
|
throw err;
|
|
280
333
|
}
|
|
334
|
+
if (options?.json) {
|
|
335
|
+
// A migrated project has no skills until `tospec init` runs, and the
|
|
336
|
+
// deferred ticket stubs are a deliberate gap a caller must know about.
|
|
337
|
+
// tospec/decisions/20260916_121552-migrated-changes-defer-ticket-stubs.md
|
|
338
|
+
const migratedChangeCount = summary.changes.active + summary.changes.archived;
|
|
339
|
+
emitSuccess({
|
|
340
|
+
migrate: {
|
|
341
|
+
source,
|
|
342
|
+
target,
|
|
343
|
+
...summary,
|
|
344
|
+
ticketStubsDeferred: migratedChangeCount,
|
|
345
|
+
nextSteps: [
|
|
346
|
+
'Run tospec validate --all to verify the migrated artifacts.',
|
|
347
|
+
'Run tospec init to write the skills and slash commands; migrate does not.',
|
|
348
|
+
],
|
|
349
|
+
},
|
|
350
|
+
}, { path: projectRoot, source: 'explicit' });
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
281
353
|
console.log(`✓ Migration complete: ${target}`);
|
|
354
|
+
for (const rename of summary.renamedRequirements) {
|
|
355
|
+
console.log(` Renamed requirement: ${rename} — check nothing still refers to the old name.`);
|
|
356
|
+
}
|
|
282
357
|
for (const name of summary.renamedKept) {
|
|
283
|
-
console.log(` Warning: RENAMED
|
|
358
|
+
console.log(` Warning: RENAMED entry could not be applied, name kept: ${name} — review it.`);
|
|
284
359
|
}
|
|
285
360
|
if (summary.removedRequirements.length > 0) {
|
|
286
361
|
console.log(` REMOVED requirements dropped during normalization: ${summary.removedRequirements.join(', ')}`);
|
|
287
362
|
}
|
|
363
|
+
switch (summary.context) {
|
|
364
|
+
case 'carried':
|
|
365
|
+
console.log(` Context: project.md -> config.yaml context:`);
|
|
366
|
+
break;
|
|
367
|
+
case 'conflict':
|
|
368
|
+
console.log(` Context: project.md was not carried because config.yaml already has existing context.`);
|
|
369
|
+
break;
|
|
370
|
+
case 'empty':
|
|
371
|
+
console.log(` Context: project.md was empty and was not carried.`);
|
|
372
|
+
break;
|
|
373
|
+
case 'absent':
|
|
374
|
+
console.log(` Context: no project.md was carried.`);
|
|
375
|
+
break;
|
|
376
|
+
}
|
|
288
377
|
console.log(` Specs: ${summary.specs.copied} copied` +
|
|
289
378
|
` (${summary.specs.normalizedDelta} delta-form + ${summary.specs.normalizedHeaderless} headerless normalized` +
|
|
290
379
|
`, ${summary.specs.skippedEmpty} empty skipped)`);
|
|
291
380
|
console.log(` Changes: ${summary.changes.active} active, ${summary.changes.archived} archived` +
|
|
292
381
|
` (${summary.changes.metadataCreated} metadata files created)`);
|
|
382
|
+
const migratedChanges = summary.changes.active + summary.changes.archived;
|
|
383
|
+
if (migratedChanges > 0) {
|
|
384
|
+
console.log(` Tickets: ticket stubs deferred for ${migratedChanges} migrated changes; timestamped filenames are CLI-owned.`);
|
|
385
|
+
}
|
|
293
386
|
console.log(` Run 'tospec validate --all' to verify, then 'tospec init' to set up skills.`);
|
|
294
387
|
}
|
|
295
|
-
/** Copies config.yaml with the schema value rewritten
|
|
388
|
+
/** Copies config.yaml with the schema value rewritten, carrying project.md context when needed. */
|
|
296
389
|
async migrateConfig(source, target) {
|
|
297
390
|
const sourceConfig = path.join(source, 'config.yaml');
|
|
391
|
+
const sourceProject = path.join(source, 'project.md');
|
|
298
392
|
const targetConfig = path.join(target, 'config.yaml');
|
|
393
|
+
const projectContext = (await exists(sourceProject)) ? await fs.readFile(sourceProject, 'utf-8') : null;
|
|
394
|
+
const hasProjectContext = projectContext !== null && projectContext.length > 0;
|
|
395
|
+
let content;
|
|
396
|
+
let hasExistingContext = false;
|
|
299
397
|
if (await exists(sourceConfig)) {
|
|
300
398
|
const raw = await fs.readFile(sourceConfig, 'utf-8');
|
|
301
399
|
// Line-level replace to preserve the file's comments and formatting.
|
|
302
400
|
const rewritten = raw.replace(/^schema:.*$/m, `schema: ${TARGET_SCHEMA}`);
|
|
303
|
-
|
|
304
|
-
|
|
401
|
+
content = /^schema:/m.test(rewritten) ? rewritten : `schema: ${TARGET_SCHEMA}\n${rewritten}`;
|
|
402
|
+
hasExistingContext = /^context\s*:/m.test(content);
|
|
305
403
|
}
|
|
306
404
|
else {
|
|
307
|
-
|
|
405
|
+
content = serializeConfig({ schema: TARGET_SCHEMA });
|
|
308
406
|
}
|
|
407
|
+
await fs.writeFile(targetConfig, hasProjectContext && !hasExistingContext ? appendContext(content, projectContext) : content);
|
|
408
|
+
// An absent project.md and an empty one are reported apart.
|
|
409
|
+
if (!hasProjectContext)
|
|
410
|
+
return projectContext === '' ? 'empty' : 'absent';
|
|
411
|
+
return hasExistingContext ? 'conflict' : 'carried';
|
|
309
412
|
}
|
|
310
413
|
/**
|
|
311
414
|
* Replaces `.openspec.yaml` with `.tospec.yaml` (schema rewritten to sdd,
|
|
@@ -329,10 +432,9 @@ export class MigrateCommand {
|
|
|
329
432
|
return true;
|
|
330
433
|
}
|
|
331
434
|
/**
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
* replaces its counterpart. Reuses archive's EPERM/EXDEV-safe move helpers.
|
|
435
|
+
* Promotes the built staging tree into the target: one move when the target is
|
|
436
|
+
* absent, else entry-by-entry replacement into the content-free tospec/ that
|
|
437
|
+
* `tospec init` leaves. Uses archive's EPERM/EXDEV-safe helpers.
|
|
336
438
|
*/
|
|
337
439
|
async promoteStaging(staging, target) {
|
|
338
440
|
if (!(await exists(target))) {
|
|
@@ -363,7 +465,7 @@ async function extractGoal(changeDir) {
|
|
|
363
465
|
catch {
|
|
364
466
|
return fallback;
|
|
365
467
|
}
|
|
366
|
-
const lines = content
|
|
468
|
+
const lines = normalizeDocument(content).split('\n');
|
|
367
469
|
let inWhy = false;
|
|
368
470
|
for (const line of lines) {
|
|
369
471
|
if (/^## Why\s*$/.test(line)) {
|
|
@@ -378,11 +480,21 @@ async function extractGoal(changeDir) {
|
|
|
378
480
|
}
|
|
379
481
|
return fallback;
|
|
380
482
|
}
|
|
483
|
+
/**
|
|
484
|
+
* False only for a path that is not there. Every caller treats `false` as
|
|
485
|
+
* "nothing to migrate from", so answering it for EACCES would silently drop a
|
|
486
|
+
* source that exists.
|
|
487
|
+
*/
|
|
381
488
|
async function exists(p) {
|
|
382
|
-
|
|
383
|
-
.access(p)
|
|
384
|
-
|
|
385
|
-
|
|
489
|
+
try {
|
|
490
|
+
await fs.access(p);
|
|
491
|
+
return true;
|
|
492
|
+
}
|
|
493
|
+
catch (error) {
|
|
494
|
+
if (isMissingPathError(error))
|
|
495
|
+
return false;
|
|
496
|
+
throw error;
|
|
497
|
+
}
|
|
386
498
|
}
|
|
387
499
|
/** Sorted subdirectory names, minus `exclude`. Unreadable dir → empty list. */
|
|
388
500
|
async function listDirs(dir, exclude) {
|
package/dist/core/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/core/migrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/core/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,20 +5,17 @@ export declare class ChangeParser extends MarkdownParser {
|
|
|
5
5
|
constructor(content: string, changeDir: string);
|
|
6
6
|
parseChangeWithDeltas(name: string): Promise<Change>;
|
|
7
7
|
/**
|
|
8
|
-
* Scans `specs/<capability>/spec.md`
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* proposal.md, so this is the primary delta source for both schemas.
|
|
8
|
+
* Scans `specs/<capability>/spec.md` directly, independent of a proposal.md's
|
|
9
|
+
* prose: deltas live in specs/ for both schemas, so this is the primary
|
|
10
|
+
* source.
|
|
12
11
|
*/
|
|
13
12
|
parseDeltaSpecs(specsDir: string): Promise<Delta[]>;
|
|
14
13
|
private parseSpecDeltas;
|
|
15
14
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* does not exist (phantom delta in `show <change> --json`). Overriding here
|
|
21
|
-
* rather than in MarkdownParser keeps main spec parsing untouched.
|
|
15
|
+
* Ignores headers that are not `### Requirement: <name>`. A delta section
|
|
16
|
+
* often carries divider headers such as `### Documentation Requirements`, and
|
|
17
|
+
* the base parser treats every child header as a requirement. Overridden here
|
|
18
|
+
* rather than in MarkdownParser so main spec parsing is untouched.
|
|
22
19
|
*/
|
|
23
20
|
protected parseRequirements(section: Section): Requirement[];
|
|
24
21
|
private parseSectionsFromContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-parser.d.ts","sourceRoot":"","sources":["../../../src/core/parsers/change-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAkB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIjF,qBAAa,YAAa,SAAQ,cAAc;IAC9C,OAAO,CAAC,SAAS,CAAS;
|
|
1
|
+
{"version":3,"file":"change-parser.d.ts","sourceRoot":"","sources":["../../../src/core/parsers/change-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAkB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIjF,qBAAa,YAAa,SAAQ,cAAc;IAC9C,OAAO,CAAC,SAAS,CAAS;IAE1B,YAAY,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAG7C;IAEK,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BzD;IAED;;;;OAIG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAwBxD;IAED,OAAO,CAAC,eAAe;IAsEvB;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,CAO3D;IAID,OAAO,CAAC,wBAAwB;CAGjC"}
|