@msn-control/liftoff 0.10.4 → 0.11.2
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/DEVELOPER.md +238 -77
- package/README.md +38 -33
- package/assets/supported-stack.json +3 -136
- package/dist/adapters/azure/governance-assessment.d.ts +2 -0
- package/dist/adapters/azure/governance-assessment.js +21 -0
- package/dist/adapters/azure/governance-assessment.js.map +1 -0
- package/dist/adapters/filesystem/atomic-write.d.ts +2 -0
- package/dist/adapters/filesystem/atomic-write.js +74 -0
- package/dist/adapters/filesystem/atomic-write.js.map +1 -0
- package/dist/adapters/filesystem/errors.d.ts +2 -0
- package/dist/adapters/filesystem/errors.js +8 -0
- package/dist/adapters/filesystem/errors.js.map +1 -0
- package/dist/adapters/filesystem/manifest-file.d.ts +1 -0
- package/dist/adapters/filesystem/manifest-file.js +21 -0
- package/dist/adapters/filesystem/manifest-file.js.map +1 -0
- package/dist/adapters/filesystem/project-config.d.ts +4 -0
- package/dist/adapters/filesystem/project-config.js +157 -0
- package/dist/adapters/filesystem/project-config.js.map +1 -0
- package/dist/adapters/filesystem/project-discovery.d.ts +2 -0
- package/dist/adapters/filesystem/project-discovery.js +30 -0
- package/dist/adapters/filesystem/project-discovery.js.map +1 -0
- package/dist/adapters/filesystem/project-files.d.ts +6 -0
- package/dist/adapters/filesystem/project-files.js +68 -0
- package/dist/adapters/filesystem/project-files.js.map +1 -0
- package/dist/adapters/filesystem/project-lock.d.ts +8 -0
- package/dist/adapters/filesystem/project-lock.js +164 -0
- package/dist/adapters/filesystem/project-lock.js.map +1 -0
- package/dist/adapters/filesystem/project-paths.d.ts +2 -0
- package/dist/adapters/filesystem/project-paths.js +60 -0
- package/dist/adapters/filesystem/project-paths.js.map +1 -0
- package/dist/adapters/filesystem/project-transaction.d.ts +24 -0
- package/dist/adapters/filesystem/project-transaction.js +177 -0
- package/dist/adapters/filesystem/project-transaction.js.map +1 -0
- package/dist/adapters/filesystem/reviewed-update-transaction.d.ts +53 -0
- package/dist/adapters/filesystem/reviewed-update-transaction.js +864 -0
- package/dist/adapters/filesystem/reviewed-update-transaction.js.map +1 -0
- package/dist/adapters/filesystem/update-previews.d.ts +50 -0
- package/dist/adapters/filesystem/update-previews.js +613 -0
- package/dist/adapters/filesystem/update-previews.js.map +1 -0
- package/dist/adapters/git/governance-assessment.d.ts +22 -0
- package/dist/adapters/git/governance-assessment.js +161 -0
- package/dist/adapters/git/governance-assessment.js.map +1 -0
- package/dist/adapters/github/governance-assessment.d.ts +2 -0
- package/dist/adapters/github/governance-assessment.js +18 -0
- package/dist/adapters/github/governance-assessment.js.map +1 -0
- package/dist/adapters/packaged-assets/package-root.d.ts +3 -0
- package/dist/adapters/packaged-assets/package-root.js +21 -0
- package/dist/adapters/packaged-assets/package-root.js.map +1 -0
- package/dist/adapters/packaged-assets/supported-stack.d.ts +4 -0
- package/dist/adapters/packaged-assets/supported-stack.js +18 -0
- package/dist/adapters/packaged-assets/supported-stack.js.map +1 -0
- package/dist/adapters/packaged-assets/template-assets.d.ts +23 -0
- package/dist/adapters/packaged-assets/template-assets.js +36 -0
- package/dist/adapters/packaged-assets/template-assets.js.map +1 -0
- package/dist/adapters/process/shell-command.d.ts +6 -0
- package/dist/adapters/process/shell-command.js +27 -0
- package/dist/adapters/process/shell-command.js.map +1 -0
- package/dist/application/context.d.ts +25 -0
- package/dist/application/context.js +2 -0
- package/dist/application/context.js.map +1 -0
- package/dist/application/diagnose/doctor.d.ts +21 -0
- package/dist/application/diagnose/doctor.js +580 -0
- package/dist/application/diagnose/doctor.js.map +1 -0
- package/dist/application/diagnose/generated-project.d.ts +1 -0
- package/dist/application/diagnose/generated-project.js +105 -0
- package/dist/application/diagnose/generated-project.js.map +1 -0
- package/dist/application/diagnose/validate.d.ts +6 -0
- package/dist/application/diagnose/validate.js +27 -0
- package/dist/application/diagnose/validate.js.map +1 -0
- package/dist/application/initialize/fixture.d.ts +2 -0
- package/dist/application/initialize/fixture.js +39 -0
- package/dist/application/initialize/fixture.js.map +1 -0
- package/dist/application/initialize/inputs.d.ts +3 -0
- package/dist/application/initialize/inputs.js +35 -0
- package/dist/application/initialize/inputs.js.map +1 -0
- package/dist/application/initialize/use-case.d.ts +23 -0
- package/dist/application/initialize/use-case.js +360 -0
- package/dist/application/initialize/use-case.js.map +1 -0
- package/dist/application/migrate/use-case.d.ts +7 -0
- package/dist/application/migrate/use-case.js +378 -0
- package/dist/application/migrate/use-case.js.map +1 -0
- package/dist/application/project/catalog.d.ts +46 -0
- package/dist/application/project/catalog.js +12 -0
- package/dist/application/project/catalog.js.map +1 -0
- package/dist/application/project/manifest.d.ts +2 -0
- package/dist/application/project/manifest.js +29 -0
- package/dist/application/project/manifest.js.map +1 -0
- package/dist/application/project/planning.d.ts +6 -0
- package/dist/application/project/planning.js +12 -0
- package/dist/application/project/planning.js.map +1 -0
- package/dist/application/update/approval.d.ts +39 -0
- package/dist/application/update/approval.js +54 -0
- package/dist/application/update/approval.js.map +1 -0
- package/dist/application/update/command-guidance.d.ts +2 -0
- package/dist/application/update/command-guidance.js +14 -0
- package/dist/application/update/command-guidance.js.map +1 -0
- package/dist/application/update/inspection.d.ts +37 -0
- package/dist/application/update/inspection.js +235 -0
- package/dist/application/update/inspection.js.map +1 -0
- package/dist/application/update/migration-runtime.d.ts +14 -0
- package/dist/application/update/migration-runtime.js +178 -0
- package/dist/application/update/migration-runtime.js.map +1 -0
- package/dist/application/update/output.d.ts +134 -0
- package/dist/application/update/output.js +182 -0
- package/dist/application/update/output.js.map +1 -0
- package/dist/application/update/planning.d.ts +40 -0
- package/dist/application/update/planning.js +293 -0
- package/dist/application/update/planning.js.map +1 -0
- package/dist/application/update/preview.d.ts +49 -0
- package/dist/application/update/preview.js +220 -0
- package/dist/application/update/preview.js.map +1 -0
- package/dist/application/update/protected-source.d.ts +25 -0
- package/dist/application/update/protected-source.js +81 -0
- package/dist/application/update/protected-source.js.map +1 -0
- package/dist/application/update/reporting.d.ts +42 -0
- package/dist/application/update/reporting.js +326 -0
- package/dist/application/update/reporting.js.map +1 -0
- package/dist/application/update/revalidation-plan.d.ts +22 -0
- package/dist/application/update/revalidation-plan.js +108 -0
- package/dist/application/update/revalidation-plan.js.map +1 -0
- package/dist/application/update/revalidation.d.ts +70 -0
- package/dist/application/update/revalidation.js +337 -0
- package/dist/application/update/revalidation.js.map +1 -0
- package/dist/application/update/review-plan.d.ts +25 -0
- package/dist/application/update/review-plan.js +89 -0
- package/dist/application/update/review-plan.js.map +1 -0
- package/dist/application/update/transaction-approval.d.ts +29 -0
- package/dist/application/update/transaction-approval.js +82 -0
- package/dist/application/update/transaction-approval.js.map +1 -0
- package/dist/application/update/use-case.d.ts +9 -0
- package/dist/application/update/use-case.js +271 -0
- package/dist/application/update/use-case.js.map +1 -0
- package/dist/application/update/write-plan.d.ts +15 -0
- package/dist/application/update/write-plan.js +115 -0
- package/dist/application/update/write-plan.js.map +1 -0
- package/dist/application/upgrade/use-case.d.ts +6 -0
- package/dist/application/upgrade/use-case.js +82 -0
- package/dist/application/upgrade/use-case.js.map +1 -0
- package/dist/args.d.ts +5 -65
- package/dist/args.js +4 -472
- package/dist/args.js.map +1 -1
- package/dist/artifact-lifecycle.d.ts +1 -21
- package/dist/artifact-lifecycle.js +1 -75
- package/dist/artifact-lifecycle.js.map +1 -1
- package/dist/catalogs.d.ts +1 -50
- package/dist/catalogs.js +1 -472
- package/dist/catalogs.js.map +1 -1
- package/dist/cli/args/contracts.d.ts +51 -0
- package/dist/cli/args/contracts.js +2 -0
- package/dist/cli/args/contracts.js.map +1 -0
- package/dist/cli/args/definitions.d.ts +6 -0
- package/dist/cli/args/definitions.js +188 -0
- package/dist/cli/args/definitions.js.map +1 -0
- package/dist/cli/args/help.d.ts +5 -0
- package/dist/cli/args/help.js +142 -0
- package/dist/cli/args/help.js.map +1 -0
- package/dist/cli/args/parser.d.ts +5 -0
- package/dist/cli/args/parser.js +160 -0
- package/dist/cli/args/parser.js.map +1 -0
- package/dist/cli/args/readers.d.ts +4 -0
- package/dist/cli/args/readers.js +19 -0
- package/dist/cli/args/readers.js.map +1 -0
- package/dist/cli/commands/diagnose.d.ts +4 -0
- package/dist/cli/commands/diagnose.js +12 -0
- package/dist/cli/commands/diagnose.js.map +1 -0
- package/dist/cli/commands/dispatch.d.ts +3 -0
- package/dist/cli/commands/dispatch.js +94 -0
- package/dist/cli/commands/dispatch.js.map +1 -0
- package/dist/cli/commands/help.d.ts +3 -0
- package/dist/cli/commands/help.js +32 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/helpers.d.ts +8 -0
- package/dist/cli/commands/helpers.js +97 -0
- package/dist/cli/commands/helpers.js.map +1 -0
- package/dist/cli/commands/initialize.d.ts +3 -0
- package/dist/cli/commands/initialize.js +7 -0
- package/dist/cli/commands/initialize.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +3 -0
- package/dist/cli/commands/migrate.js +8 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +3 -0
- package/dist/cli/commands/plan.js +34 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/reference.d.ts +5 -0
- package/dist/cli/commands/reference.js +43 -0
- package/dist/cli/commands/reference.js.map +1 -0
- package/dist/cli/commands/update.d.ts +3 -0
- package/dist/cli/commands/update.js +10 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +3 -0
- package/dist/cli/commands/upgrade.js +7 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/context.d.ts +1 -0
- package/dist/cli/context.js +2 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/project-options.d.ts +3 -0
- package/dist/cli/project-options.js +41 -0
- package/dist/cli/project-options.js.map +1 -0
- package/dist/cli.d.ts +3 -3
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +4 -35
- package/dist/commands.js +3 -2969
- package/dist/commands.js.map +1 -1
- package/dist/container-validation.d.ts +1 -1
- package/dist/domain/governance/activation/approvals.d.ts +351 -0
- package/dist/domain/governance/activation/approvals.js +528 -0
- package/dist/domain/governance/activation/approvals.js.map +1 -0
- package/dist/domain/governance/activation/canonical-json.d.ts +4 -0
- package/dist/domain/governance/activation/canonical-json.js +39 -0
- package/dist/domain/governance/activation/canonical-json.js.map +1 -0
- package/dist/domain/governance/activation/capabilities.d.ts +7 -0
- package/dist/domain/governance/activation/capabilities.js +33 -0
- package/dist/domain/governance/activation/capabilities.js.map +1 -0
- package/dist/domain/governance/activation/evidence.d.ts +63 -0
- package/dist/domain/governance/activation/evidence.js +444 -0
- package/dist/domain/governance/activation/evidence.js.map +1 -0
- package/dist/domain/governance/activation/graph.d.ts +397 -0
- package/dist/domain/governance/activation/graph.js +441 -0
- package/dist/domain/governance/activation/graph.js.map +1 -0
- package/dist/domain/governance/activation/inputs.d.ts +25 -0
- package/dist/domain/governance/activation/inputs.js +63 -0
- package/dist/domain/governance/activation/inputs.js.map +1 -0
- package/dist/domain/governance/activation/operations.d.ts +19 -0
- package/dist/domain/governance/activation/operations.js +181 -0
- package/dist/domain/governance/activation/operations.js.map +1 -0
- package/dist/domain/governance/activation/readiness.d.ts +27 -0
- package/dist/domain/governance/activation/readiness.js +269 -0
- package/dist/domain/governance/activation/readiness.js.map +1 -0
- package/dist/domain/governance/activation/types.d.ts +399 -0
- package/dist/domain/governance/activation/types.js +109 -0
- package/dist/domain/governance/activation/types.js.map +1 -0
- package/dist/domain/governance/activation/validators.d.ts +22 -0
- package/dist/domain/governance/activation/validators.js +1347 -0
- package/dist/domain/governance/activation/validators.js.map +1 -0
- package/dist/domain/governance/assessment/catalog.d.ts +14 -0
- package/dist/domain/governance/assessment/catalog.js +105 -0
- package/dist/domain/governance/assessment/catalog.js.map +1 -0
- package/dist/domain/governance/assessment/errors.d.ts +10 -0
- package/dist/domain/governance/assessment/errors.js +22 -0
- package/dist/domain/governance/assessment/errors.js.map +1 -0
- package/dist/domain/governance/assessment/index.d.ts +8 -0
- package/dist/domain/governance/assessment/index.js +9 -0
- package/dist/domain/governance/assessment/index.js.map +1 -0
- package/dist/domain/governance/assessment/live-normalize.d.ts +19 -0
- package/dist/domain/governance/assessment/live-normalize.js +403 -0
- package/dist/domain/governance/assessment/live-normalize.js.map +1 -0
- package/dist/domain/governance/assessment/predicates.d.ts +36 -0
- package/dist/domain/governance/assessment/predicates.js +545 -0
- package/dist/domain/governance/assessment/predicates.js.map +1 -0
- package/dist/domain/governance/assessment/report.d.ts +23 -0
- package/dist/domain/governance/assessment/report.js +266 -0
- package/dist/domain/governance/assessment/report.js.map +1 -0
- package/dist/domain/governance/assessment/sanitize.d.ts +8 -0
- package/dist/domain/governance/assessment/sanitize.js +60 -0
- package/dist/domain/governance/assessment/sanitize.js.map +1 -0
- package/dist/domain/governance/assessment/types.d.ts +174 -0
- package/dist/domain/governance/assessment/types.js +13 -0
- package/dist/domain/governance/assessment/types.js.map +1 -0
- package/dist/domain/governance/assessment/yaml.d.ts +6 -0
- package/dist/domain/governance/assessment/yaml.js +30 -0
- package/dist/domain/governance/assessment/yaml.js.map +1 -0
- package/dist/domain/governance/policy/identity.d.ts +64 -0
- package/dist/domain/governance/policy/identity.js +112 -0
- package/dist/domain/governance/policy/identity.js.map +1 -0
- package/dist/domain/migration/dependencies.d.ts +7 -0
- package/dist/domain/migration/dependencies.js +221 -0
- package/dist/domain/migration/dependencies.js.map +1 -0
- package/dist/domain/migration/inventory.d.ts +3 -0
- package/dist/domain/migration/inventory.js +15 -0
- package/dist/domain/migration/inventory.js.map +1 -0
- package/dist/domain/project/artifact-lifecycle.d.ts +69 -0
- package/dist/domain/project/artifact-lifecycle.js +137 -0
- package/dist/domain/project/artifact-lifecycle.js.map +1 -0
- package/dist/domain/project/catalog.d.ts +48 -0
- package/dist/domain/project/catalog.js +507 -0
- package/dist/domain/project/catalog.js.map +1 -0
- package/dist/domain/project/contracts.d.ts +247 -0
- package/dist/domain/project/contracts.js +2 -0
- package/dist/domain/project/contracts.js.map +1 -0
- package/dist/domain/project/errors.d.ts +3 -0
- package/dist/domain/project/errors.js +7 -0
- package/dist/domain/project/errors.js.map +1 -0
- package/dist/domain/project/infrastructure-layout.d.ts +26 -0
- package/dist/domain/project/infrastructure-layout.js +125 -0
- package/dist/domain/project/infrastructure-layout.js.map +1 -0
- package/dist/domain/project/inputs.d.ts +21 -0
- package/dist/domain/project/inputs.js +41 -0
- package/dist/domain/project/inputs.js.map +1 -0
- package/dist/domain/project/manifest/artifacts.d.ts +8 -0
- package/dist/domain/project/manifest/artifacts.js +150 -0
- package/dist/domain/project/manifest/artifacts.js.map +1 -0
- package/dist/domain/project/manifest/context.d.ts +13 -0
- package/dist/domain/project/manifest/context.js +2 -0
- package/dist/domain/project/manifest/context.js.map +1 -0
- package/dist/domain/project/manifest/fields.d.ts +6 -0
- package/dist/domain/project/manifest/fields.js +36 -0
- package/dist/domain/project/manifest/fields.js.map +1 -0
- package/dist/domain/project/manifest/governance.d.ts +8 -0
- package/dist/domain/project/manifest/governance.js +161 -0
- package/dist/domain/project/manifest/governance.js.map +1 -0
- package/dist/domain/project/manifest/project-identity.d.ts +6 -0
- package/dist/domain/project/manifest/project-identity.js +273 -0
- package/dist/domain/project/manifest/project-identity.js.map +1 -0
- package/dist/domain/project/manifest/reader.d.ts +9 -0
- package/dist/domain/project/manifest/reader.js +141 -0
- package/dist/domain/project/manifest/reader.js.map +1 -0
- package/dist/domain/project/paths.d.ts +2 -0
- package/dist/domain/project/paths.js +29 -0
- package/dist/domain/project/paths.js.map +1 -0
- package/dist/domain/project/planning.d.ts +19 -0
- package/dist/domain/project/planning.js +329 -0
- package/dist/domain/project/planning.js.map +1 -0
- package/dist/domain/project/retired-workload.d.ts +4 -0
- package/dist/domain/project/retired-workload.js +18 -0
- package/dist/domain/project/retired-workload.js.map +1 -0
- package/dist/domain/project/reviewed-update-artifacts.d.ts +2 -0
- package/dist/domain/project/reviewed-update-artifacts.js +3 -0
- package/dist/domain/project/reviewed-update-artifacts.js.map +1 -0
- package/dist/domain/project/supported-stack.d.ts +113 -0
- package/dist/domain/project/supported-stack.js +426 -0
- package/dist/domain/project/supported-stack.js.map +1 -0
- package/dist/domain/workstation/constraints.d.ts +6 -0
- package/dist/domain/workstation/constraints.js +8 -0
- package/dist/domain/workstation/constraints.js.map +1 -0
- package/dist/file-system.d.ts +10 -44
- package/dist/file-system.js +9 -1245
- package/dist/file-system.js.map +1 -1
- package/dist/framework-adapters.d.ts +1 -1
- package/dist/framework-validation.d.ts +1 -1
- package/dist/framework-validation.js +1 -1
- package/dist/framework-validation.js.map +1 -1
- package/dist/genai-templates.d.ts +2 -9
- package/dist/genai-templates.js +4 -5
- package/dist/genai-templates.js.map +1 -1
- package/dist/generators/common/artifacts.d.ts +6 -0
- package/dist/generators/common/artifacts.js +30 -0
- package/dist/generators/common/artifacts.js.map +1 -0
- package/dist/generators/common/base.d.ts +17 -0
- package/dist/generators/common/base.js +425 -0
- package/dist/generators/common/base.js.map +1 -0
- package/dist/generators/common/dotenv-validation.d.ts +2 -0
- package/dist/generators/common/dotenv-validation.js +80 -0
- package/dist/generators/common/dotenv-validation.js.map +1 -0
- package/dist/generators/common/environments.d.ts +3 -0
- package/dist/generators/common/environments.js +15 -0
- package/dist/generators/common/environments.js.map +1 -0
- package/dist/generators/common/frontend.d.ts +15 -0
- package/dist/generators/common/frontend.js +166 -0
- package/dist/generators/common/frontend.js.map +1 -0
- package/dist/generators/common/python-settings.d.ts +2 -0
- package/dist/generators/common/python-settings.js +70 -0
- package/dist/generators/common/python-settings.js.map +1 -0
- package/dist/generators/common/spec-workflow.d.ts +28 -0
- package/dist/generators/common/spec-workflow.js +567 -0
- package/dist/generators/common/spec-workflow.js.map +1 -0
- package/dist/generators/common/values.d.ts +13 -0
- package/dist/generators/common/values.js +16 -0
- package/dist/generators/common/values.js.map +1 -0
- package/dist/generators/containers/compose.d.ts +7 -0
- package/dist/generators/containers/compose.js +196 -0
- package/dist/generators/containers/compose.js.map +1 -0
- package/dist/generators/containers/context.d.ts +1 -0
- package/dist/generators/containers/context.js +43 -0
- package/dist/generators/containers/context.js.map +1 -0
- package/dist/generators/containers/images.d.ts +7 -0
- package/dist/generators/containers/images.js +119 -0
- package/dist/generators/containers/images.js.map +1 -0
- package/dist/generators/context.d.ts +42 -0
- package/dist/generators/context.js +38 -0
- package/dist/generators/context.js.map +1 -0
- package/dist/generators/genai/backend.d.ts +20 -0
- package/dist/generators/genai/backend.js +667 -0
- package/dist/generators/genai/backend.js.map +1 -0
- package/dist/generators/genai/configuration.d.ts +3 -0
- package/dist/generators/genai/configuration.js +43 -0
- package/dist/generators/genai/configuration.js.map +1 -0
- package/dist/generators/genai/database.d.ts +7 -0
- package/dist/generators/genai/database.js +71 -0
- package/dist/generators/genai/database.js.map +1 -0
- package/dist/generators/genai/functions.d.ts +15 -0
- package/dist/generators/genai/functions.js +156 -0
- package/dist/generators/genai/functions.js.map +1 -0
- package/dist/generators/genai/index.d.ts +8 -0
- package/dist/generators/genai/index.js +11 -0
- package/dist/generators/genai/index.js.map +1 -0
- package/dist/generators/genai/patterns.d.ts +9 -0
- package/dist/generators/genai/patterns.js +309 -0
- package/dist/generators/genai/patterns.js.map +1 -0
- package/dist/generators/infrastructure/azure.d.ts +18 -0
- package/dist/generators/infrastructure/azure.js +655 -0
- package/dist/generators/infrastructure/azure.js.map +1 -0
- package/dist/generators/infrastructure/names.d.ts +23 -0
- package/dist/generators/infrastructure/names.js +51 -0
- package/dist/generators/infrastructure/names.js.map +1 -0
- package/dist/generators/standard/configuration.d.ts +3 -0
- package/dist/generators/standard/configuration.js +26 -0
- package/dist/generators/standard/configuration.js.map +1 -0
- package/dist/generators/standard/go.d.ts +17 -0
- package/dist/generators/standard/go.js +338 -0
- package/dist/generators/standard/go.js.map +1 -0
- package/dist/generators/standard/index.d.ts +12 -0
- package/dist/generators/standard/index.js +12 -0
- package/dist/generators/standard/index.js.map +1 -0
- package/dist/generators/standard/node.d.ts +20 -0
- package/dist/generators/standard/node.js +314 -0
- package/dist/generators/standard/node.js.map +1 -0
- package/dist/generators/standard/python.d.ts +18 -0
- package/dist/generators/standard/python.js +191 -0
- package/dist/generators/standard/python.js.map +1 -0
- package/dist/go-template-assets.js +3 -3
- package/dist/go-template-assets.js.map +1 -1
- package/dist/governance-activation/activation-state.d.ts +1 -1
- package/dist/governance-activation/activation-state.js +49 -9
- package/dist/governance-activation/activation-state.js.map +1 -1
- package/dist/governance-activation/approvals.d.ts +1 -188
- package/dist/governance-activation/approvals.js +1 -507
- package/dist/governance-activation/approvals.js.map +1 -1
- package/dist/governance-activation/canonical-json.d.ts +1 -3
- package/dist/governance-activation/canonical-json.js +1 -35
- package/dist/governance-activation/canonical-json.js.map +1 -1
- package/dist/governance-activation/commands.d.ts +6 -1
- package/dist/governance-activation/commands.js +135 -107
- package/dist/governance-activation/commands.js.map +1 -1
- package/dist/governance-activation/compatibility.d.ts +30 -5
- package/dist/governance-activation/compatibility.js +74 -8
- package/dist/governance-activation/compatibility.js.map +1 -1
- package/dist/governance-activation/credentials.d.ts +3 -3
- package/dist/governance-activation/credentials.js +5 -5
- package/dist/governance-activation/credentials.js.map +1 -1
- package/dist/governance-activation/doctor.d.ts +1 -1
- package/dist/governance-activation/doctor.js +59 -100
- package/dist/governance-activation/doctor.js.map +1 -1
- package/dist/governance-activation/evidence.d.ts +1 -49
- package/dist/governance-activation/evidence.js +1 -245
- package/dist/governance-activation/evidence.js.map +1 -1
- package/dist/governance-activation/git-ignore.d.ts +9 -0
- package/dist/governance-activation/git-ignore.js +76 -0
- package/dist/governance-activation/git-ignore.js.map +1 -0
- package/dist/governance-activation/graph.d.ts +1 -397
- package/dist/governance-activation/graph.js +1 -440
- package/dist/governance-activation/graph.js.map +1 -1
- package/dist/governance-activation/historical-state.d.ts +81 -0
- package/dist/governance-activation/historical-state.js +817 -0
- package/dist/governance-activation/historical-state.js.map +1 -0
- package/dist/governance-activation/history-contracts.d.ts +109 -0
- package/dist/governance-activation/history-contracts.js +303 -0
- package/dist/governance-activation/history-contracts.js.map +1 -0
- package/dist/governance-activation/identity.d.ts +1 -35
- package/dist/governance-activation/identity.js +1 -88
- package/dist/governance-activation/identity.js.map +1 -1
- package/dist/governance-activation/index.d.ts +3 -0
- package/dist/governance-activation/index.js +3 -0
- package/dist/governance-activation/index.js.map +1 -1
- package/dist/governance-activation/inputs.d.ts +10 -0
- package/dist/governance-activation/inputs.js +158 -0
- package/dist/governance-activation/inputs.js.map +1 -0
- package/dist/governance-activation/migration-history.d.ts +97 -0
- package/dist/governance-activation/migration-history.js +388 -0
- package/dist/governance-activation/migration-history.js.map +1 -0
- package/dist/governance-activation/migration.d.ts +4 -3
- package/dist/governance-activation/migration.js +14 -6
- package/dist/governance-activation/migration.js.map +1 -1
- package/dist/governance-activation/phase-bootstrap-state.d.ts +3 -0
- package/dist/governance-activation/phase-bootstrap-state.js +128 -0
- package/dist/governance-activation/phase-bootstrap-state.js.map +1 -0
- package/dist/governance-activation/phase-discovery.d.ts +2 -0
- package/dist/governance-activation/phase-discovery.js +88 -0
- package/dist/governance-activation/phase-discovery.js.map +1 -0
- package/dist/governance-activation/phase-governance.d.ts +4 -0
- package/dist/governance-activation/phase-governance.js +141 -0
- package/dist/governance-activation/phase-governance.js.map +1 -0
- package/dist/governance-activation/phase-publication.d.ts +8 -0
- package/dist/governance-activation/phase-publication.js +318 -0
- package/dist/governance-activation/phase-publication.js.map +1 -0
- package/dist/governance-activation/proof-records.d.ts +3 -0
- package/dist/governance-activation/proof-records.js +78 -0
- package/dist/governance-activation/proof-records.js.map +1 -0
- package/dist/governance-activation/read-only.d.ts +30 -0
- package/dist/governance-activation/read-only.js +33 -0
- package/dist/governance-activation/read-only.js.map +1 -0
- package/dist/governance-activation/readiness.d.ts +1 -25
- package/dist/governance-activation/readiness.js +1 -222
- package/dist/governance-activation/readiness.js.map +1 -1
- package/dist/governance-activation/reconciliation.d.ts +1 -1
- package/dist/governance-activation/reconciliation.js +3 -3
- package/dist/governance-activation/reconciliation.js.map +1 -1
- package/dist/governance-activation/release-integrity.d.ts +1 -1
- package/dist/governance-activation/release-integrity.js +2 -2
- package/dist/governance-activation/release-integrity.js.map +1 -1
- package/dist/governance-activation/seed-lifecycle.d.ts +36 -6
- package/dist/governance-activation/seed-lifecycle.js +444 -77
- package/dist/governance-activation/seed-lifecycle.js.map +1 -1
- package/dist/governance-activation/source-of-truth.d.ts +5 -3
- package/dist/governance-activation/source-of-truth.js +32 -52
- package/dist/governance-activation/source-of-truth.js.map +1 -1
- package/dist/governance-activation/spec-kit-seed.d.ts +9 -0
- package/dist/governance-activation/spec-kit-seed.js +43 -0
- package/dist/governance-activation/spec-kit-seed.js.map +1 -0
- package/dist/governance-activation/task-projection.d.ts +1 -1
- package/dist/governance-activation/transition-planning.d.ts +17 -0
- package/dist/governance-activation/transition-planning.js +259 -0
- package/dist/governance-activation/transition-planning.js.map +1 -0
- package/dist/governance-activation/transition-ports.d.ts +150 -0
- package/dist/governance-activation/transition-ports.js +2 -0
- package/dist/governance-activation/transition-ports.js.map +1 -0
- package/dist/governance-activation/transition-process.d.ts +7 -0
- package/dist/governance-activation/transition-process.js +21 -0
- package/dist/governance-activation/transition-process.js.map +1 -0
- package/dist/governance-activation/transition-records.d.ts +56 -0
- package/dist/governance-activation/transition-records.js +208 -0
- package/dist/governance-activation/transition-records.js.map +1 -0
- package/dist/governance-activation/transitions.d.ts +14 -167
- package/dist/governance-activation/transitions.js +173 -2061
- package/dist/governance-activation/transitions.js.map +1 -1
- package/dist/governance-activation/types.d.ts +1 -390
- package/dist/governance-activation/types.js +1 -107
- package/dist/governance-activation/types.js.map +1 -1
- package/dist/governance-activation/validators.d.ts +1 -17
- package/dist/governance-activation/validators.js +1 -1304
- package/dist/governance-activation/validators.js.map +1 -1
- package/dist/governance-assessment/catalog.d.ts +1 -2
- package/dist/governance-assessment/catalog.js +18 -85
- package/dist/governance-assessment/catalog.js.map +1 -1
- package/dist/governance-assessment/command.d.ts +1 -1
- package/dist/governance-assessment/command.js +8 -12
- package/dist/governance-assessment/command.js.map +1 -1
- package/dist/governance-assessment/engine.d.ts +6 -11
- package/dist/governance-assessment/engine.js +490 -114
- package/dist/governance-assessment/engine.js.map +1 -1
- package/dist/governance-assessment/live-normalize.d.ts +1 -19
- package/dist/governance-assessment/live-normalize.js +1 -402
- package/dist/governance-assessment/live-normalize.js.map +1 -1
- package/dist/governance-assessment/live-transport.d.ts +2 -6
- package/dist/governance-assessment/live-transport.js +10 -22
- package/dist/governance-assessment/live-transport.js.map +1 -1
- package/dist/governance-assessment/live.js +55 -5
- package/dist/governance-assessment/live.js.map +1 -1
- package/dist/governance-assessment/predicates.d.ts +1 -27
- package/dist/governance-assessment/predicates.js +1 -329
- package/dist/governance-assessment/predicates.js.map +1 -1
- package/dist/governance-assessment/project.d.ts +20 -17
- package/dist/governance-assessment/project.js +101 -151
- package/dist/governance-assessment/project.js.map +1 -1
- package/dist/governance-assessment/readers.d.ts +1 -5
- package/dist/governance-assessment/readers.js +5 -13
- package/dist/governance-assessment/readers.js.map +1 -1
- package/dist/governance-assessment/report.d.ts +1 -23
- package/dist/governance-assessment/report.js +1 -265
- package/dist/governance-assessment/report.js.map +1 -1
- package/dist/governance-assessment/sanitize.d.ts +1 -8
- package/dist/governance-assessment/sanitize.js +1 -56
- package/dist/governance-assessment/sanitize.js.map +1 -1
- package/dist/governance-assessment/types.d.ts +1 -173
- package/dist/governance-assessment/types.js +1 -12
- package/dist/governance-assessment/types.js.map +1 -1
- package/dist/governance-assessment/yaml.d.ts +1 -6
- package/dist/governance-assessment/yaml.js +1 -29
- package/dist/governance-assessment/yaml.js.map +1 -1
- package/dist/init-filesystem.d.ts +1 -1
- package/dist/init-filesystem.js +126 -174
- package/dist/init-filesystem.js.map +1 -1
- package/dist/interactive.d.ts +2 -2
- package/dist/interactive.js +42 -41
- package/dist/interactive.js.map +1 -1
- package/dist/migrate-plan.d.ts +1 -1
- package/dist/migrate-plan.js +14 -8
- package/dist/migrate-plan.js.map +1 -1
- package/dist/npm-template-assets.js +5 -4
- package/dist/npm-template-assets.js.map +1 -1
- package/dist/openspec-profile.d.ts +1 -1
- package/dist/opentofu-template-assets.js +3 -3
- package/dist/opentofu-template-assets.js.map +1 -1
- package/dist/package-identity.d.ts +3 -0
- package/dist/package-identity.js +13 -2
- package/dist/package-identity.js.map +1 -1
- package/dist/planner.d.ts +1 -19
- package/dist/planner.js +1 -565
- package/dist/planner.js.map +1 -1
- package/dist/process-runner.d.ts +1 -1
- package/dist/project-dependencies.d.ts +5 -3
- package/dist/project-dependencies.js +74 -63
- package/dist/project-dependencies.js.map +1 -1
- package/dist/published-verifier.js +61 -30
- package/dist/published-verifier.js.map +1 -1
- package/dist/python-template-assets.js +6 -9
- package/dist/python-template-assets.js.map +1 -1
- package/dist/reconcile.d.ts +1 -1
- package/dist/reconcile.js +2 -2
- package/dist/reconcile.js.map +1 -1
- package/dist/repository-governance.d.ts +5 -2
- package/dist/repository-governance.js +140 -113
- package/dist/repository-governance.js.map +1 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/scan.d.ts +6 -2
- package/dist/scan.js +78 -30
- package/dist/scan.js.map +1 -1
- package/dist/self-upgrade.d.ts +1 -1
- package/dist/self-upgrade.js +20 -7
- package/dist/self-upgrade.js.map +1 -1
- package/dist/stable-release.js +7 -1
- package/dist/stable-release.js.map +1 -1
- package/dist/standard-templates.d.ts +2 -2
- package/dist/standard-templates.js +6 -841
- package/dist/standard-templates.js.map +1 -1
- package/dist/supported-stack.d.ts +3 -115
- package/dist/supported-stack.js +4 -438
- package/dist/supported-stack.js.map +1 -1
- package/dist/telemetry/index.d.ts +1 -1
- package/dist/templates.d.ts +10 -20
- package/dist/templates.js +52 -3261
- package/dist/templates.js.map +1 -1
- package/dist/types.d.ts +1 -263
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/version.js +2 -6
- package/dist/version.js.map +1 -1
- package/dist/workstation-catalog.d.ts +5 -2
- package/dist/workstation-catalog.js +33 -2
- package/dist/workstation-catalog.js.map +1 -1
- package/dist/workstation.d.ts +4 -3
- package/dist/workstation.js +86 -32
- package/dist/workstation.js.map +1 -1
- package/docs/assets/liftoff-terminal.svg +3 -3
- package/docs/azure-deployment.md +107 -10
- package/docs/cli-reference.md +144 -35
- package/docs/configuration-and-manifests.md +152 -35
- package/docs/existing-repositories.md +48 -12
- package/docs/getting-started.md +44 -31
- package/docs/prerequisites.md +34 -35
- package/docs/project-structure.md +39 -46
- package/docs/repository-governance.md +96 -26
- package/docs/safety-and-consent.md +90 -28
- package/docs/spec-workflows-and-agents.md +31 -28
- package/docs/supported-stack.md +11 -9
- package/docs/troubleshooting.md +114 -54
- package/docs/workloads.md +52 -67
- package/package.json +4 -7
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/UPSTREAM_LICENSE.txt +0 -21
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/catalog.json +0 -520
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/packaged/gitignore +0 -27
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/README.md +0 -25
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/components.json +0 -22
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/eslint.config.js +0 -23
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/index.html +0 -13
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package-lock.json +0 -6156
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package.json +0 -60
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/public/power-apps.svg +0 -55
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/App.tsx +0 -17
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/assets/react.svg +0 -1
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/mode-toggle.tsx +0 -37
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/badge.tsx +0 -46
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/button.tsx +0 -60
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/calendar.tsx +0 -211
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/card.tsx +0 -92
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/chart.tsx +0 -355
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/checkbox.tsx +0 -32
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/command.tsx +0 -184
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dialog.tsx +0 -141
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dropdown-menu.tsx +0 -257
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/input.tsx +0 -21
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/label.tsx +0 -22
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/popover.tsx +0 -46
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/progress.tsx +0 -29
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/select.tsx +0 -185
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/separator.tsx +0 -26
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/skeleton.tsx +0 -13
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/table.tsx +0 -114
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tabs.tsx +0 -66
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/textarea.tsx +0 -18
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tooltip.tsx +0 -61
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/hooks/use-theme.ts +0 -11
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/index.css +0 -131
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/lib/utils.ts +0 -6
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/main.tsx +0 -10
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/_layout.tsx +0 -31
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/home.tsx +0 -59
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/not-found.tsx +0 -14
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/query-provider.tsx +0 -26
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/sonner-provider.tsx +0 -23
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/theme-provider.tsx +0 -64
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/router.tsx +0 -24
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.app.json +0 -34
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.json +0 -13
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.node.json +0 -26
- package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/vite.config.ts +0 -19
- package/assets/power-apps-code-app/README.md +0 -27
- package/dist/code-apps-plugin.d.ts +0 -13
- package/dist/code-apps-plugin.js +0 -69
- package/dist/code-apps-plugin.js.map +0 -1
- package/dist/power-apps-assets.d.ts +0 -30
- package/dist/power-apps-assets.js +0 -131
- package/dist/power-apps-assets.js.map +0 -1
- package/dist/power-apps-templates.d.ts +0 -3
- package/dist/power-apps-templates.js +0 -177
- package/dist/power-apps-templates.js.map +0 -1
- package/dist/power-apps-validation.d.ts +0 -1
- package/dist/power-apps-validation.js +0 -79
- package/dist/power-apps-validation.js.map +0 -1
package/DEVELOPER.md
CHANGED
|
@@ -3,21 +3,67 @@
|
|
|
3
3
|
This guide covers release-owned compatibility, deterministic setup, and package
|
|
4
4
|
publishing. General contribution setup remains in [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
5
5
|
|
|
6
|
+
## Stabilization acceptance matrix
|
|
7
|
+
|
|
8
|
+
The `stabilize-and-modularize-liftoff` change separates retirement, mechanical
|
|
9
|
+
extraction, and behavior corrections. This matrix identifies acceptance targets,
|
|
10
|
+
not a claim of production readiness. Its OpenSpec task checklist is the progress
|
|
11
|
+
authority; the locations below identify the extracted implementation, not its
|
|
12
|
+
temporary compatibility facades.
|
|
13
|
+
|
|
14
|
+
| Capability | Canonical implementation area under `src/` | Acceptance evidence | Change kind |
|
|
15
|
+
| --- | --- | --- | --- |
|
|
16
|
+
| `liftoff-cli-workflow` | `cli/args/`, `cli/commands/`, `domain/project/inputs.ts`, `interactive.ts` | Command, interactive, help and lifecycle cases | Retirement, correction, extraction |
|
|
17
|
+
| `liftoff-power-apps-code-apps` | `domain/project/retired-workload.ts` and manifest/input guards | Retired-manifest rejection and explicit retirement inventory | Retirement |
|
|
18
|
+
| `liftoff-project-scaffold` | `generators/{common,genai,containers}/`, `templates.ts` assembler | Template, generated-stack and seed-lifecycle cases | Retirement, correction, extraction |
|
|
19
|
+
| `liftoff-standard-projects` | `generators/standard/`, `adapters/packaged-assets/` | Three-stack startup/configuration and container cases | Correction |
|
|
20
|
+
| `liftoff-supported-stack-baselines` | `domain/project/supported-stack.ts`, `adapters/packaged-assets/supported-stack.ts` | Baseline identity, integrity and freshness cases | Retirement, correction |
|
|
21
|
+
| `liftoff-template-dependency-security` | Audit/freshness scripts and explicit package inventories | Template dependency/security and inventory cases | Retirement |
|
|
22
|
+
| `liftoff-infrastructure-governance` | `generators/infrastructure/`, `domain/project/infrastructure-layout.ts`, `cli/commands/helpers.ts` | Per-environment roots, state, naming and sender/receiver cases | Correction, extraction |
|
|
23
|
+
| `liftoff-workstation-bootstrap` | `application/initialize/`, `domain/workstation/`, workstation/framework registries | Runtime/package-manager constraints and independent consent | Retirement, correction |
|
|
24
|
+
| `liftoff-project-migration` | `domain/migration/`, `scan.ts`, `migrate-plan.ts`, `application/migrate/` | Complete inventory, target overrides, source preservation, cleanup-last | Correction, extraction |
|
|
25
|
+
| `liftoff-template-ownership` | `domain/project/artifact-lifecycle.ts`, `reconcile.ts` | Exact ownership, create-only provisioning and force refusal | Retirement, preservation |
|
|
26
|
+
| `liftoff-manifest-contract` | `domain/project/manifest/`, `application/project/manifest.ts` | API/GenAI v2-v7 readers, retirement and historical identity boundaries | Retirement, correction, extraction |
|
|
27
|
+
| `liftoff-project-update` | `application/update/`, `adapters/filesystem/` | Collisions, recovery, concurrent edits, modes and layout gates | Correction, extraction |
|
|
28
|
+
| `liftoff-project-doctor` | `application/diagnose/` and shared probes | Honest readiness, invalid boundaries and no-write diagnostics | Retirement, correction, extraction |
|
|
29
|
+
| `liftoff-cli-self-upgrade` | `application/upgrade/`, `self-upgrade.ts`, `stable-release.ts` | Scoped registry precedence, isolation and failure classification | Correction, extraction |
|
|
30
|
+
| `liftoff-npm-distribution` | Package metadata and packaging/release scripts | Packed CLI entry point, asset resolution and historical surfaces | Retirement, preservation |
|
|
31
|
+
| `liftoff-repository-governance-profile` | `repository-governance.ts`, `domain/governance/policy/identity.ts` | Fixed policy, real workload boundaries and exact managed inventory | Retirement, preservation |
|
|
32
|
+
| `liftoff-governance-activation-engine` | `domain/governance/activation/`, `governance-activation/` | Current-input/body binding, retries, selected paths, Spec Kit seed | Correction, extraction |
|
|
33
|
+
| `liftoff-governance-assessment` | `domain/governance/assessment/`, `governance-assessment/`, read-only Git/GitHub/Azure adapters | Any-Git coverage, effective enforcement, partial reads and no writes | Correction, extraction |
|
|
34
|
+
| `liftoff-user-documentation` | README, developer guide and packaged docs | Links, accurate capabilities, ownership and compatibility guidance | Retirement, correction |
|
|
35
|
+
|
|
36
|
+
Mechanical extraction must preserve the existing supported help, JSON and
|
|
37
|
+
generation fixtures except for separately reviewed intentional changes. The
|
|
38
|
+
pre-change capture includes all nine GenAI patterns, three standard API stacks,
|
|
39
|
+
Spec Kit, and a frontend-enabled production-only case. A new directory or
|
|
40
|
+
forwarding callback does not establish a new implementation boundary.
|
|
41
|
+
|
|
42
|
+
The explicit non-generative retirement inventory is
|
|
43
|
+
`tests/fixtures/power-apps-retirement.json`. It separates whole-file removal,
|
|
44
|
+
source/reference edits, shared cases to port, and the historical manifest kept
|
|
45
|
+
only as negative input. Do not expand that inventory into blanket deletion of
|
|
46
|
+
unknown files or user projects.
|
|
47
|
+
|
|
48
|
+
Production executors, public approval/credential enrollment, and missing GenAI
|
|
49
|
+
specializations remain deferred. Local baseline evidence, read-only assessment,
|
|
50
|
+
and successful generated-file checks must not be described as those capabilities.
|
|
51
|
+
|
|
6
52
|
## Activation version vector
|
|
7
53
|
|
|
8
|
-
|
|
54
|
+
Current deterministic setup contract, retained by the 0.11.2 CLI patch:
|
|
9
55
|
|
|
10
56
|
```json
|
|
11
57
|
{
|
|
12
|
-
"liftoffVersion": "0.
|
|
58
|
+
"liftoffVersion": "0.11.0",
|
|
13
59
|
"manifestArtifactVersion": 7,
|
|
14
60
|
"policyVersion": "6",
|
|
15
|
-
"activationContractVersion":
|
|
61
|
+
"activationContractVersion": 2,
|
|
16
62
|
"phaseGraphSchemaVersion": 1,
|
|
17
|
-
"phaseGraphHash": "
|
|
18
|
-
"activationStateSchemaVersion":
|
|
19
|
-
"evidenceHeaderSchemaVersion":
|
|
20
|
-
"approvalEnvelopeSchemaVersion":
|
|
63
|
+
"phaseGraphHash": "ac160e3fc86f3e438141d985658e09f419508b3adbe176ddd13100d5dfdee47c",
|
|
64
|
+
"activationStateSchemaVersion": 2,
|
|
65
|
+
"evidenceHeaderSchemaVersion": 2,
|
|
66
|
+
"approvalEnvelopeSchemaVersion": 2,
|
|
21
67
|
"supersessionSchemaVersion": 1,
|
|
22
68
|
"credentialPolicySchemaVersion": 1
|
|
23
69
|
}
|
|
@@ -29,7 +75,15 @@ known, use a clear placeholder such as `<sha256-of-canonical-phase-graph-json>`;
|
|
|
29
75
|
do not fabricate a historical value.
|
|
30
76
|
|
|
31
77
|
The generated `liftoff.manifest.json` records this as manifest `artifactVersion`
|
|
32
|
-
7 plus the activation identity fields shown above.
|
|
78
|
+
7 plus the activation identity fields shown above. Compatibility metadata uses
|
|
79
|
+
schema version 3 in its own document, not a new required manifest field.
|
|
80
|
+
Assessment report/catalog, graph, supersession, and credential-policy schemas
|
|
81
|
+
remain at version 1; normative policy remains 6.
|
|
82
|
+
|
|
83
|
+
`src/domain/governance/policy/identity.ts` is the version authority;
|
|
84
|
+
`src/domain/governance/activation/graph.ts` computes the canonical graph hash and
|
|
85
|
+
phase digests. Documentation tests compare this example with the source identity,
|
|
86
|
+
rather than blessing an obsolete hardcoded tuple.
|
|
33
87
|
|
|
34
88
|
| Axis | Tracks |
|
|
35
89
|
| --- | --- |
|
|
@@ -69,9 +123,29 @@ changes in another.
|
|
|
69
123
|
- Future manifest, policy, contract, schema, or graph identities must block
|
|
70
124
|
without rewriting state and must report the exact field, found value, supported
|
|
71
125
|
identity, and minimum Liftoff remedy.
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
126
|
+
- Manifest composition injects `validateReadableActivationIdentity` only at the
|
|
127
|
+
manifest boundary. Exact known v1 identities remain readable without retagging;
|
|
128
|
+
state, evidence, approval, readiness, and scope use strict current validation.
|
|
129
|
+
- Known v1 activation remains non-executable. The exact packaged successor lane
|
|
130
|
+
requires update preview and approval, preserves original history, and creates
|
|
131
|
+
new v2 proof only through current validation. Never add v1 to the executable map.
|
|
132
|
+
- Compatibility metadata v3 distinguishes successor eligibility from execution;
|
|
133
|
+
retain strict schema-2 input reading without treating it as migration authority.
|
|
134
|
+
Update report v3 distinguishes local commit from incomplete revalidation.
|
|
135
|
+
- Preview receipts are external user-local metadata, never approval. Persist
|
|
136
|
+
transaction approval separately after explicit consent; recovery must validate
|
|
137
|
+
that external binding rather than trust project-local JSON claiming approval.
|
|
138
|
+
- Durable history stays inside the project and outside managed-core ownership.
|
|
139
|
+
It preserves historical state and evidence byte-for-byte. After migration
|
|
140
|
+
commits, repair/resume blocked v2 rather than restore v1.
|
|
141
|
+
- The eight flat-root OpenTofu identities are an explicit new-output-only
|
|
142
|
+
exception to append-only naming in 0.11.0. Preserve historical records and
|
|
143
|
+
files; use the exact [retirement inventory](docs/azure-deployment.md#explicit-flat-root-identity-retirement),
|
|
144
|
+
never aliases, prefix ownership, or force conversion.
|
|
145
|
+
- A CLI-only patch does not retag activation history. When unchanged renderer
|
|
146
|
+
semantics support a new CLI generation, add that exact version to the
|
|
147
|
+
infrastructure generation compatibility inventory and cover mixed old/new
|
|
148
|
+
component provenance; do not infer compatibility from a SemVer range.
|
|
75
149
|
- Never fabricate history: prose, filenames, timestamps, or checked tasks are
|
|
76
150
|
not evidence.
|
|
77
151
|
|
|
@@ -92,6 +166,13 @@ and referenced, validated saved-plan/evidence receipts. Reject placeholder
|
|
|
92
166
|
digests, future-dated approvals, and inferred bindings. Missing bindings remain
|
|
93
167
|
`not-observed`; remediation must never suggest manually fabricating activation
|
|
94
168
|
state, baselines, receipts, or evidence.
|
|
169
|
+
Use `inspectCurrentActivationEvidence` from
|
|
170
|
+
`src/governance-activation/read-only.ts`: its contexts include actual input
|
|
171
|
+
snapshots, reviewed immutable plans, and state evidence references. Consume
|
|
172
|
+
validated selected payloads, never reselect an unvalidated raw duplicate.
|
|
173
|
+
`bodyDigest` commits payload and normalized readbacks; `planDigest` binds semantic
|
|
174
|
+
inputs and `savedPlanDigest` binds the complete saved plan, including clocks.
|
|
175
|
+
Writing receipts does not invalidate their own source-input snapshot.
|
|
95
176
|
|
|
96
177
|
Reports distinguish target, recorded baseline, declared configuration, and
|
|
97
178
|
observed enforcement with expected/observed values, provenance, impact, and
|
|
@@ -179,7 +260,7 @@ npx vitest run tests/seed-lifecycle.test.ts
|
|
|
179
260
|
npx vitest run tests/governance-assessment.test.ts tests/governance-assessment-engine.test.ts
|
|
180
261
|
npx vitest run tests/commands.test.ts tests/file-system.test.ts tests/contract.test.ts tests/update.test.ts
|
|
181
262
|
npm run build
|
|
182
|
-
openspec validate
|
|
263
|
+
openspec validate stabilize-and-modularize-liftoff --strict
|
|
183
264
|
```
|
|
184
265
|
|
|
185
266
|
Before release, run:
|
|
@@ -189,22 +270,36 @@ npm run check
|
|
|
189
270
|
npm run smoke:package
|
|
190
271
|
npm run verify:standard-node-templates
|
|
191
272
|
npm run verify:generated-containers
|
|
192
|
-
npm run verify:power-apps-starter
|
|
193
273
|
npm run verify:release-identity
|
|
194
274
|
```
|
|
195
275
|
|
|
196
|
-
## 0.
|
|
276
|
+
## 0.11.2 release checklist
|
|
197
277
|
|
|
198
278
|
- Package metadata, lockfile metadata, `liftoff --version`, and tag agree on
|
|
199
|
-
`0.
|
|
279
|
+
`0.11.2`. Preparing these files is not publication or permission to create a tag.
|
|
280
|
+
- Activation package identity remains `0.11.0`; no phase semantics or graph
|
|
281
|
+
identity change is introduced by patch-release preparation.
|
|
282
|
+
- Release notes prominently identify the breaking update-CLI/report changes:
|
|
283
|
+
mandatory matching preview and exact-plan approval, schema-3 project-update
|
|
284
|
+
reports, and exit 2 after committed but incomplete local revalidation.
|
|
200
285
|
- Manifest writes use artifactVersion 7; readers accept v2-v7.
|
|
201
|
-
- Policy version is `"6"`; activation contract
|
|
202
|
-
|
|
286
|
+
- Policy version is `"6"`; activation contract/state/evidence-header/approval
|
|
287
|
+
remain v2. Compatibility metadata and update reports are v3; preview receipts,
|
|
288
|
+
transaction approvals, history indexes, and migration journals are v1. Graph,
|
|
289
|
+
supersession, credential-policy, assessment report, and assessment catalog
|
|
290
|
+
schemas remain v1.
|
|
203
291
|
- The graph hash in code, docs, generated artifacts, compatibility metadata, and
|
|
204
292
|
release-integrity tests is
|
|
205
|
-
`
|
|
206
|
-
- `/liftoff-setup`
|
|
207
|
-
before
|
|
293
|
+
`ac160e3fc86f3e438141d985658e09f419508b3adbe176ddd13100d5dfdee47c`.
|
|
294
|
+
- `/liftoff-setup` archives the OpenSpec bootstrap or finalizes the real Spec Kit
|
|
295
|
+
B001–B006 bundle locally before separate publication and Phase 0 gates.
|
|
296
|
+
- Power Apps and the eight explicitly retired flat-root infrastructure IDs have
|
|
297
|
+
no positive new-generation lane. Old API/GenAI project provenance and v1
|
|
298
|
+
activation history remain preserved. Only the exact approved migration lane
|
|
299
|
+
can create a linked v2 successor; it does not retag historical proof.
|
|
300
|
+
- Independent infrastructure provenance explicitly admits generation versions
|
|
301
|
+
`0.11.0`, `0.11.1`, and `0.11.2`, including mixed component histories. Unknown
|
|
302
|
+
releases remain blocked rather than being accepted through a version range.
|
|
208
303
|
- No setup-skill version exists in manifests, JSON status, docs, or generated
|
|
209
304
|
integrations.
|
|
210
305
|
- Doctor states and remedies cover seed-incomplete, phase-blocked,
|
|
@@ -223,51 +318,113 @@ evidence. Failed post-publish verification requires a dist-tag correction when
|
|
|
223
318
|
the immutable package is correct, or a corrected patch release; do not unpublish
|
|
224
319
|
as routine recovery.
|
|
225
320
|
|
|
226
|
-
## Functional engines and
|
|
321
|
+
## Functional engines and implementation boundaries
|
|
227
322
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
323
|
+
Liftoff remains one npm package and a modular monolith. It has eight functional
|
|
324
|
+
responsibility groups, not eight separately deployed services or classes named
|
|
325
|
+
`Engine`. Workloads, patterns, activation phases, and assessment controls are
|
|
326
|
+
different dimensions; adding a template does not create another engine.
|
|
231
327
|
|
|
232
328
|
| Subsystem | Current implementation |
|
|
233
329
|
| --- | --- |
|
|
234
|
-
| Project planning and generation | `
|
|
235
|
-
| Workstation/framework bootstrap | `workstation
|
|
236
|
-
| Source migration | `scan.ts`, `migrate-plan.ts`,
|
|
237
|
-
| Managed project maintenance | `reconcile.ts`,
|
|
238
|
-
| CLI self-upgrade | `self-upgrade.ts`, stable release lookup and installed-package verification |
|
|
239
|
-
| Diagnostics |
|
|
240
|
-
| Governance activation | `governance
|
|
241
|
-
| Governance assessment | `governance
|
|
330
|
+
| Project planning and generation | `domain/project/`, `application/project/`, `generators/`, resolved packaged template assets |
|
|
331
|
+
| Workstation/framework bootstrap | `application/initialize/`, workstation registry, framework adapters, `init-filesystem.ts`, dependency setup |
|
|
332
|
+
| Source migration | `domain/migration/`, `scan.ts`, `migrate-plan.ts`, `application/migrate/` |
|
|
333
|
+
| Managed project maintenance | `application/update/{planning,reporting,use-case}.ts`, `reconcile.ts`, filesystem transactions |
|
|
334
|
+
| CLI self-upgrade | `application/upgrade/use-case.ts`, `self-upgrade.ts`, stable release lookup and installed-package verification |
|
|
335
|
+
| Diagnostics | `application/diagnose/`, pure manifest contracts, shared runtime/framework/governance checks |
|
|
336
|
+
| Governance activation | `domain/governance/{policy,activation}/` rules and `governance-activation/` execution composition |
|
|
337
|
+
| Governance assessment | `domain/governance/assessment/` comparison/report contracts and `governance-assessment/` read-only collection |
|
|
242
338
|
|
|
243
339
|
Telemetry, terminal presentation, process execution, catalogs, and filesystem
|
|
244
340
|
access support those subsystems rather than constituting additional business
|
|
245
341
|
engines.
|
|
246
342
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
343
|
+
### Canonical entry points and ports
|
|
344
|
+
|
|
345
|
+
| Responsibility | Entry point or data contract |
|
|
346
|
+
| --- | --- |
|
|
347
|
+
| CLI parsing/dispatch | `src/cli/args/parser.ts`, `src/cli/commands/dispatch.ts` |
|
|
348
|
+
| Typed use-case requests | `src/application/context.ts`, `src/application/initialize/use-case.ts`, `src/application/update/use-case.ts`, `src/application/migrate/use-case.ts`, `src/application/upgrade/use-case.ts` |
|
|
349
|
+
| Pure plans/catalog/manifest rules | `src/domain/project/contracts.ts`, `src/domain/project/catalog.ts`, `src/domain/project/planning.ts`, `src/domain/project/manifest/reader.ts` |
|
|
350
|
+
| Release composition | `src/application/project/catalog.ts`, `src/application/project/manifest.ts` |
|
|
351
|
+
| Generator assembly and resolved subsets | `src/templates.ts`, `src/generators/context.ts` and its renderer families |
|
|
352
|
+
| Installed-package assets | `src/adapters/packaged-assets/package-root.ts`, `src/adapters/packaged-assets/template-assets.ts` |
|
|
353
|
+
| Guarded mutations | `src/adapters/filesystem/project-lock.ts`, `src/adapters/filesystem/atomic-write.ts`, `src/adapters/filesystem/project-transaction.ts` |
|
|
354
|
+
| Exact infrastructure inventory/layout | `src/domain/project/infrastructure-layout.ts` |
|
|
355
|
+
| Current activation observations | `src/governance-activation/inputs.ts`, `src/governance-activation/read-only.ts` |
|
|
356
|
+
| Activation planning/execution ports | `src/governance-activation/transition-planning.ts`, `src/governance-activation/transition-ports.ts`, locked coordinator `src/governance-activation/transitions.ts` |
|
|
357
|
+
| Concrete phase handlers and persistence | `src/governance-activation/seed-lifecycle.ts`, `src/governance-activation/phase-publication.ts`, `src/governance-activation/phase-discovery.ts`, `src/governance-activation/phase-governance.ts`, `src/governance-activation/phase-bootstrap-state.ts`, `src/governance-activation/transition-records.ts` |
|
|
358
|
+
| Pure evidence/availability contracts | `src/domain/governance/activation/evidence.ts`, `src/domain/governance/activation/capabilities.ts` |
|
|
359
|
+
| Read-only assessment | `src/governance-assessment/project.ts`, `src/domain/governance/assessment/`, `src/adapters/git/governance-assessment.ts`, `src/adapters/github/governance-assessment.ts`, `src/adapters/azure/governance-assessment.ts` |
|
|
360
|
+
|
|
361
|
+
The source boundaries are:
|
|
251
362
|
|
|
252
363
|
```text
|
|
253
364
|
src/
|
|
254
|
-
cli/ #
|
|
255
|
-
application/ #
|
|
365
|
+
cli/ # parsing/help and per-command transport
|
|
366
|
+
application/ # typed requests, execution ports and workflow orchestration
|
|
256
367
|
domain/
|
|
257
|
-
project/ #
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
368
|
+
project/ # injected catalogs/planning, manifest contracts and ownership
|
|
369
|
+
migration/ # declaration parsing, inventory and placement decisions
|
|
370
|
+
governance/
|
|
371
|
+
policy/ # shared version identities
|
|
372
|
+
activation/ # graph, approval, applicability, evidence and readiness rules
|
|
373
|
+
assessment/ # observations, comparison, coverage and report rules
|
|
374
|
+
generators/
|
|
375
|
+
common/ # shared files, frontend, configuration and workflow seeds
|
|
376
|
+
standard/ # Python, Node.js and Go implementations
|
|
377
|
+
genai/ # configuration, backend, patterns, database and functions
|
|
378
|
+
containers/ # Compose, images and build-context exclusions
|
|
379
|
+
infrastructure/ # independent Azure roots and resource naming
|
|
380
|
+
adapters/
|
|
381
|
+
filesystem/ # guarded discovery/read/write, transactions and locks
|
|
382
|
+
packaged-assets/ # one installed-package root and resolved release assets
|
|
383
|
+
process/ # shell-specific literal command formatting
|
|
263
384
|
assets/governance/ # immutable policy bundles, catalogs and compatibility data
|
|
264
385
|
```
|
|
265
386
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
387
|
+
Activation planning, process transport, outcome persistence, and phase handlers
|
|
388
|
+
are real modules, not callbacks into a monolithic dispatcher.
|
|
389
|
+
`phase-bootstrap-state.ts` handles retention/disposal boundaries, not the missing
|
|
390
|
+
`bootstrap-local` cloud-provisioning executor. `transition-process.ts` centralizes
|
|
391
|
+
command outcomes; `transition-records.ts` commits the reviewed plan/evidence/state
|
|
392
|
+
contracts through guarded filesystem operations.
|
|
393
|
+
|
|
394
|
+
`commands.ts`, `args.ts`, `file-system.ts`, and the project/catalog entry modules
|
|
395
|
+
are compatibility facades. `templates.ts` assembles actual renderer modules;
|
|
396
|
+
it must not regain backend, container, infrastructure, or workflow implementation.
|
|
397
|
+
Internal callers use canonical modules rather than routing back through facades.
|
|
398
|
+
|
|
399
|
+
CLI handlers parse syntax and pass typed `ProjectOptions`, `MigrationRequest`,
|
|
400
|
+
`UpdateRequest`, and `UpgradeRequest` to application use cases with
|
|
401
|
+
`ExecutionContext` ports from `application/context.ts`.
|
|
402
|
+
Application code does not call back into CLI parsing. Pure rules receive data or
|
|
403
|
+
narrow context explicitly: `createProjectCatalog`, `buildProjectPlanWithCatalog`,
|
|
404
|
+
and `createManifestReader` do not discover files, run processes, or contact
|
|
405
|
+
providers. `application/project/catalog.ts` composes the release catalog;
|
|
406
|
+
`domain/project/catalog.ts` remains the pure factory.
|
|
407
|
+
Root generator composition accepts `PackagedTemplateAssetContext` and calls
|
|
408
|
+
`createGeneratorContext` in `generators/context.ts`. Pure renderers receive narrow
|
|
409
|
+
resolved subsets and do not import adapters. Only composition loads
|
|
410
|
+
`packagedTemplateAssets` through the canonical `resolvePackageFile` /
|
|
411
|
+
`resolvePackageFileUrl` resolver.
|
|
412
|
+
|
|
413
|
+
Manifest grammar, workload normalization, artifact authority, and governance
|
|
414
|
+
compatibility have separate project-domain modules. Filesystem discovery,
|
|
415
|
+
path safety, file access, and transactions live in distinct adapters.
|
|
416
|
+
`withProjectMutationLock` coordinates writers, while snapshots and path/content
|
|
417
|
+
preconditions still protect reviewed mutations and conflict-preserving rollback.
|
|
418
|
+
Its operation receives a lease with `assertHeld()`; nested same-root mutations
|
|
419
|
+
reuse it, while read-only paths do not acquire a lock.
|
|
420
|
+
Read-only assessment receives read capabilities, never activation executors or
|
|
421
|
+
mutation adapters.
|
|
422
|
+
|
|
423
|
+
When changing a feature, update its narrow rule/renderer first, wire the
|
|
424
|
+
application and CLI boundary, then extend the existing focused cases. Add exact
|
|
425
|
+
artifact lifecycle/provenance identities; do not infer ownership from folders.
|
|
426
|
+
The import-boundary suite checks cycles, domain I/O, application-to-CLI coupling,
|
|
427
|
+
and facade use. Packed smoke covers runtime asset lookup outside this checkout.
|
|
271
428
|
|
|
272
429
|
## Activation completeness and separate follow-up plan
|
|
273
430
|
|
|
@@ -287,62 +444,66 @@ contracts but need production wiring.
|
|
|
287
444
|
Built-in handler presence does not establish a complete user journey:
|
|
288
445
|
approval envelopes are read from disk but no public approval-persistence
|
|
289
446
|
command is exposed; secure credential enrollment helpers are not wired into
|
|
290
|
-
the command-only setup flow
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
to get past
|
|
447
|
+
the command-only setup flow. Current activation inspection now binds real
|
|
448
|
+
baseline/input snapshots, reviewed plans, state references, and evidence bodies.
|
|
449
|
+
Historical placeholder-bound records remain diagnostic-only, never current
|
|
450
|
+
proof. Do not fabricate state, approvals, or evidence to get past capability gaps.
|
|
294
451
|
|
|
295
452
|
Complete this work separately from the read-only assessment feature:
|
|
296
453
|
|
|
297
454
|
1. Add explicit approval-persistence and secure credential-enrollment entry
|
|
298
455
|
points with narrow consent and selected-agent command contracts.
|
|
299
|
-
2.
|
|
300
|
-
|
|
456
|
+
2. Define a separately reviewed reconciliation workflow for historical activation
|
|
457
|
+
identities and placeholder-bound history
|
|
301
458
|
without rewriting immutable evidence or inventing completion.
|
|
302
459
|
3. Supply production implementations for the missing phase adapters and the
|
|
303
460
|
GitHub ruleset adapter, enforcing resource, permission, cost, and destructive
|
|
304
461
|
bounds at execution.
|
|
305
|
-
4.
|
|
306
|
-
|
|
462
|
+
4. Design phase-specific production retry/rollback behavior without blanket
|
|
463
|
+
remote or destructive retries. Explicit local seed/baseline/finalization
|
|
464
|
+
recovery and cooperating-writer locking are already implemented.
|
|
307
465
|
5. Prove the entire activation and upgrade/reconciliation path with
|
|
308
466
|
end-to-end positive and negative cases, then gated live readback where
|
|
309
467
|
explicitly authorized.
|
|
310
468
|
|
|
311
|
-
|
|
469
|
+
This stabilization can ship independently while these fail-closed
|
|
312
470
|
limitations remain documented; it must not advertise them as completed
|
|
313
471
|
production capabilities.
|
|
314
472
|
|
|
315
473
|
## Broader audit follow-ups
|
|
316
474
|
|
|
317
|
-
The
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
and
|
|
324
|
-
|
|
325
|
-
-
|
|
326
|
-
|
|
475
|
+
The following work remains outside this stabilization, despite the repaired
|
|
476
|
+
runtime configuration, infrastructure generation, and local safety boundaries.
|
|
477
|
+
Rendering, unit tests, package smoke, and OpenTofu syntax validation alone do not
|
|
478
|
+
establish these production capabilities:
|
|
479
|
+
|
|
480
|
+
- **GenAI capability completeness:** all nine catalog entries now say
|
|
481
|
+
`foundation` and describe actual behavior. Retrieval/citations, conversation
|
|
482
|
+
history, tools, prompt-file loading, worker processing, coordination,
|
|
483
|
+
fine-tuning, workflow stages, and incremental streaming remain project work.
|
|
484
|
+
Generic has no pgvector package/extension or application-worker requirement.
|
|
485
|
+
- **Azure deployment completeness:** RAG publisher configuration and queue-scoped
|
|
486
|
+
sender/receiver separation are implemented. Function code packaging/deployment,
|
|
487
|
+
dependency readiness,
|
|
327
488
|
authenticated ingress, private connectivity, environment-specific safeguards,
|
|
328
|
-
and regional service settings
|
|
329
|
-
production-ready.
|
|
489
|
+
and regional service settings still need reviewed implementation and verification
|
|
490
|
+
before treating generated applications as production-ready.
|
|
330
491
|
- **Baseline prerequisites:** keep dependency installation separately
|
|
331
492
|
consented. Python test settings and npm dependency preparation need explicit
|
|
332
493
|
validated recipes; an unprepared baseline must block with a remedy, not pass
|
|
333
494
|
vacuously.
|
|
334
|
-
- **Persistent validation coverage:**
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
equating liveness with dependency health.
|
|
495
|
+
- **Persistent validation coverage:** preserve framework delivery validation,
|
|
496
|
+
retired-workload rejection, and shared safety coverage, and strengthen deep
|
|
497
|
+
readiness rather than equating liveness with dependency health.
|
|
338
498
|
- **Supply-chain delivery:** configured-registry version parity is not proof
|
|
339
499
|
that its bytes equal the canonical release. Plan canonical artifact integrity
|
|
340
500
|
verification before self-upgrade installation, with an explicit trust model
|
|
341
501
|
for dependencies and approved mirrors. Pin or package mutable runtime/CDN
|
|
342
502
|
assets as part of that work.
|
|
343
|
-
- **Filesystem concurrency:**
|
|
344
|
-
|
|
345
|
-
|
|
503
|
+
- **Filesystem concurrency:** cooperating-writer locks, guarded transactions,
|
|
504
|
+
mode preservation, and conflict-preserving recovery are implemented. Stronger
|
|
505
|
+
no-follow/fd-relative isolation against noncooperating processes replacing
|
|
506
|
+
ancestors between validation and mutation remains future hardening. Existing preflight/rollback
|
|
346
507
|
safeguards are not a complete adversarial-filesystem isolation mechanism.
|
|
347
508
|
|
|
348
509
|
Treat these as separate reviewed changes with workload/runtime acceptance
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Liftoff
|
|
2
2
|
|
|
3
|
-
**Initialize governed GenAI applications
|
|
4
|
-
interactive CLI.** Liftoff combines
|
|
3
|
+
**Initialize governed GenAI applications and APIs from one
|
|
4
|
+
interactive CLI.** Liftoff combines reviewable starter projects with OpenSpec or
|
|
5
5
|
Spec Kit and integrates GitHub Copilot, Claude Code, or both from the first commit.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@msn-control/liftoff)
|
|
@@ -27,17 +27,18 @@ cd my-project
|
|
|
27
27
|
|
|
28
28
|
`liftoff init` asks for workload, spec workflow, agents, readiness, and plan
|
|
29
29
|
confirmation before writing local files. Repository governance is enabled by
|
|
30
|
-
default as a local deterministic handoff. `/liftoff-setup`
|
|
31
|
-
syncs, and archives the generated bootstrap seed
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
default as a local deterministic handoff. For OpenSpec, `/liftoff-setup` completes,
|
|
31
|
+
syncs, and archives the generated bootstrap seed. Spec Kit finalizes its one-time
|
|
32
|
+
bootstrap bundle locally, without an OpenSpec archive or new Git branch.
|
|
33
|
+
No model selection is required for setup; the CLI phase graph, evidence, and
|
|
34
|
+
approvals are authoritative. Missing production executors, credential enrollment,
|
|
35
|
+
and approval-persistence capabilities remain explicit blockers, not completed
|
|
36
|
+
automation.
|
|
36
37
|
|
|
37
38
|
After the first self-upgrade-capable release is installed globally through npm,
|
|
38
39
|
later CLI releases use `liftoff upgrade --check` followed by `liftoff upgrade`.
|
|
39
40
|
This replaces the CLI only; generated projects use `liftoff update` separately
|
|
40
|
-
for
|
|
41
|
+
for reviewed project maintenance. Useful project-read-only checks:
|
|
41
42
|
|
|
42
43
|
```bash
|
|
43
44
|
liftoff validate
|
|
@@ -46,41 +47,41 @@ liftoff upgrade --check
|
|
|
46
47
|
liftoff update --check
|
|
47
48
|
```
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
`liftoff update --check --json` for a read-only core-maintenance gate.
|
|
50
|
+
Start with `liftoff update --check`, then run `liftoff update` and approve the
|
|
51
|
+
matching plan. Check leaves project bytes unchanged and discloses a preview
|
|
52
|
+
receipt saved outside the repository. Missing or stale previews block apply.
|
|
53
|
+
Automation uses `--approve-plan <fingerprint>`; `--json` only selects formatting.
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
Supported activation-v1 migration preserves original records inside the project
|
|
56
|
+
and creates a linked v2 activation. Failed revalidation leaves v2 blocked and
|
|
57
|
+
resumable, not reset to v1. Application source, dependencies, schemas, containers,
|
|
58
|
+
environments, documentation, and infrastructure remain project-owned and outside
|
|
59
|
+
template replacement, including `--force`.
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
liftoff
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Reload the coding-agent session afterward so its command index refreshes.
|
|
61
|
+
Older projects may display the retired `/liftoff-repository-governance` alias.
|
|
62
|
+
After upgrading the CLI, review `liftoff update --check`; `liftoff update --force`
|
|
63
|
+
can remove only its exact recorded aliases. Reload the coding-agent session.
|
|
65
64
|
|
|
66
65
|

|
|
67
66
|
|
|
68
|
-
## One flow,
|
|
67
|
+
## One flow, two workloads
|
|
69
68
|
|
|
70
69
|
| Workload | Generated foundation | Deferred until you choose |
|
|
71
70
|
| --- | --- | --- |
|
|
72
|
-
| **GenAI application** | Python, FastAPI, PydanticAI, data and messaging boundaries, optional frontend, Docker, and Azure OpenTofu | Model credentials, cloud sign-in, deployment |
|
|
71
|
+
| **GenAI application** | Python, FastAPI, PydanticAI, data and messaging boundaries, optional frontend, Docker, and Azure OpenTofu | Model credentials, specialized behavior, cloud sign-in, deployment |
|
|
73
72
|
| **API application** | Python/FastAPI, Node.js/Fastify, or Go/Huma API, database assets, optional frontend, Docker, and Azure OpenTofu | Service configuration, cloud sign-in, deployment |
|
|
74
|
-
| **Power Apps code app** | Microsoft's pinned React, Vite, TypeScript, Power Apps SDK starter and project-local CLI | Environment binding, connectors, `power-apps push` |
|
|
75
73
|
|
|
76
74
|
If the GenAI specialization is not yet known, choose **I'm not sure yet -
|
|
77
75
|
Generic GenAI starter** or use `--pattern generic`. It creates a neutral
|
|
78
76
|
PydanticAI invocation foundation without assuming RAG, chat, agents, streaming,
|
|
79
77
|
fine-tuning, or workflows.
|
|
80
78
|
|
|
81
|
-
|
|
82
|
-
**Claude Code**, or both.
|
|
83
|
-
|
|
79
|
+
Both workloads can use **OpenSpec** or **Spec Kit** with **GitHub Copilot**,
|
|
80
|
+
**Claude Code**, or both.
|
|
81
|
+
|
|
82
|
+
Power Apps and its Code Apps plugin integration are retired. Existing Power Apps
|
|
83
|
+
projects receive an unsupported-workload error without changing their files;
|
|
84
|
+
`--force` does not provide a compatibility or conversion path.
|
|
84
85
|
|
|
85
86
|
[Compare workload questions and outputs](docs/workloads.md) |
|
|
86
87
|
[Choose a spec workflow and agents](docs/spec-workflows-and-agents.md)
|
|
@@ -96,6 +97,10 @@ regular-file replacements, asks before overwrite, rejects structural and symlink
|
|
|
96
97
|
conflicts, keeps tool/dependency permissions independent, and rolls back handled
|
|
97
98
|
write failures.
|
|
98
99
|
|
|
100
|
+
To assess any Git repository without initializing it, run
|
|
101
|
+
`liftoff governance assess --json`. The default is local-only and read-only.
|
|
102
|
+
Missing or unsupported proof is reported as partial coverage, not success.
|
|
103
|
+
|
|
99
104
|
[Initialize an existing repository](docs/existing-repositories.md) |
|
|
100
105
|
[Understand target and consent safety](docs/safety-and-consent.md)
|
|
101
106
|
|
|
@@ -104,8 +109,8 @@ write failures.
|
|
|
104
109
|
| Guide | Use it to |
|
|
105
110
|
| --- | --- |
|
|
106
111
|
| [Getting started](docs/getting-started.md) | Install safely and complete the first interactive project |
|
|
107
|
-
| [Workloads](docs/workloads.md) | Compare GenAI
|
|
108
|
-
| [Spec workflows and agents](docs/spec-workflows-and-agents.md) | Configure OpenSpec, Spec Kit, Copilot,
|
|
112
|
+
| [Workloads](docs/workloads.md) | Compare GenAI/API choices and understand retired-workload handling |
|
|
113
|
+
| [Spec workflows and agents](docs/spec-workflows-and-agents.md) | Configure OpenSpec, Spec Kit, Copilot, and Claude |
|
|
109
114
|
| [Repository governance](docs/repository-governance.md) | Review `/liftoff-setup`, read-only `/liftoff-governance-assess`, authority gates, evidence, and compatibility |
|
|
110
115
|
| [Existing repositories](docs/existing-repositories.md) | Understand in-place, child-directory, and migration behavior |
|
|
111
116
|
| [Prerequisites](docs/prerequisites.md) | Review plan-derived runtimes, tools, authentication, and dependency setup |
|
|
@@ -116,13 +121,13 @@ write failures.
|
|
|
116
121
|
| [Generated project structure](docs/project-structure.md) | Locate workload-specific and conditional generated areas |
|
|
117
122
|
| [Configuration and manifests](docs/configuration-and-manifests.md) | Edit desired state, manifest v7, activation identity, and managed artifacts |
|
|
118
123
|
| [Azure deployment](docs/azure-deployment.md) | Review generated Azure and OpenTofu contracts for API workloads |
|
|
119
|
-
| [Troubleshooting](docs/troubleshooting.md) | Recover from registry, readiness, validation, update, and
|
|
124
|
+
| [Troubleshooting](docs/troubleshooting.md) | Recover from registry, readiness, validation, update, and retired-workload issues |
|
|
120
125
|
| [Developer guide](DEVELOPER.md) | Maintain version vectors, compatibility maps, release checks, and publishing |
|
|
121
126
|
|
|
122
127
|
## Contributing and security
|
|
123
128
|
|
|
124
129
|
See [CONTRIBUTING.md](CONTRIBUTING.md) and [DEVELOPER.md](DEVELOPER.md) for build,
|
|
125
|
-
test, packaging,
|
|
130
|
+
test, packaging, baseline-refresh, compatibility, and release procedures. Report
|
|
126
131
|
vulnerabilities through the private process in [SECURITY.md](SECURITY.md).
|
|
127
132
|
|
|
128
133
|
Liftoff is licensed under [GPL-3.0-only](LICENSE).
|