@msn-control/liftoff 0.10.3 → 0.11.1
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 +364 -20
- package/README.md +29 -29
- package/assets/governance/single-maintainer-gitflow/assessment-controls.json +39 -0
- package/assets/supported-stack.json +7 -138
- 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 +23 -0
- package/dist/adapters/filesystem/project-transaction.js +158 -0
- package/dist/adapters/filesystem/project-transaction.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 +5 -0
- package/dist/adapters/process/shell-command.js +21 -0
- package/dist/adapters/process/shell-command.js.map +1 -0
- package/dist/application/context.d.ts +20 -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 +586 -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/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/reporting.d.ts +42 -0
- package/dist/application/update/reporting.js +325 -0
- package/dist/application/update/reporting.js.map +1 -0
- package/dist/application/update/use-case.d.ts +8 -0
- package/dist/application/update/use-case.js +600 -0
- package/dist/application/update/use-case.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 -441
- package/dist/args.js.map +1 -1
- package/dist/artifact-lifecycle.d.ts +1 -21
- package/dist/artifact-lifecycle.js +1 -73
- 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 +187 -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 +130 -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 +145 -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 +9 -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 +4 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +4 -35
- package/dist/commands.js +3 -2812
- 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 +124 -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/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 -41
- package/dist/file-system.js +9 -1204
- 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 +421 -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 +46 -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 +1 -1
- package/dist/governance-activation/commands.js +107 -103
- package/dist/governance-activation/commands.js.map +1 -1
- package/dist/governance-activation/compatibility.d.ts +11 -3
- package/dist/governance-activation/compatibility.js +31 -4
- 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 +28 -96
- 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/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 +8 -0
- package/dist/governance-activation/inputs.js +146 -0
- package/dist/governance-activation/inputs.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/read-only.d.ts +30 -0
- package/dist/governance-activation/read-only.js +93 -0
- package/dist/governance-activation/read-only.js.map +1 -0
- package/dist/governance-activation/readiness.d.ts +1 -24
- package/dist/governance-activation/readiness.js +1 -220
- 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 +10 -2
- package/dist/governance-activation/seed-lifecycle.js +244 -66
- 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 +15 -0
- package/dist/governance-activation/transition-planning.js +250 -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 +6 -157
- package/dist/governance-activation/transitions.js +143 -2045
- 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 +7 -0
- package/dist/governance-assessment/catalog.js +31 -0
- package/dist/governance-assessment/catalog.js.map +1 -0
- package/dist/governance-assessment/command.d.ts +10 -0
- package/dist/governance-assessment/command.js +77 -0
- package/dist/governance-assessment/command.js.map +1 -0
- package/dist/governance-assessment/engine.d.ts +14 -0
- package/dist/governance-assessment/engine.js +935 -0
- package/dist/governance-assessment/engine.js.map +1 -0
- package/dist/governance-assessment/index.d.ts +5 -0
- package/dist/governance-assessment/index.js +6 -0
- package/dist/governance-assessment/index.js.map +1 -0
- package/dist/governance-assessment/live-normalize.d.ts +1 -0
- package/dist/governance-assessment/live-normalize.js +2 -0
- package/dist/governance-assessment/live-normalize.js.map +1 -0
- package/dist/governance-assessment/live-transport.d.ts +34 -0
- package/dist/governance-assessment/live-transport.js +455 -0
- package/dist/governance-assessment/live-transport.js.map +1 -0
- package/dist/governance-assessment/live.d.ts +2 -0
- package/dist/governance-assessment/live.js +689 -0
- package/dist/governance-assessment/live.js.map +1 -0
- package/dist/governance-assessment/predicates.d.ts +1 -0
- package/dist/governance-assessment/predicates.js +2 -0
- package/dist/governance-assessment/predicates.js.map +1 -0
- package/dist/governance-assessment/project.d.ts +33 -0
- package/dist/governance-assessment/project.js +178 -0
- package/dist/governance-assessment/project.js.map +1 -0
- package/dist/governance-assessment/readers.d.ts +14 -0
- package/dist/governance-assessment/readers.js +122 -0
- package/dist/governance-assessment/readers.js.map +1 -0
- package/dist/governance-assessment/report.d.ts +1 -0
- package/dist/governance-assessment/report.js +2 -0
- package/dist/governance-assessment/report.js.map +1 -0
- package/dist/governance-assessment/sanitize.d.ts +1 -0
- package/dist/governance-assessment/sanitize.js +2 -0
- package/dist/governance-assessment/sanitize.js.map +1 -0
- package/dist/governance-assessment/types.d.ts +6 -0
- package/dist/governance-assessment/types.js +2 -0
- package/dist/governance-assessment/types.js.map +1 -0
- package/dist/governance-assessment/yaml.d.ts +1 -0
- package/dist/governance-assessment/yaml.js +2 -0
- package/dist/governance-assessment/yaml.js.map +1 -0
- 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 +5 -1
- package/dist/migrate-plan.js +87 -10
- 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 +5 -1
- package/dist/process-runner.js +164 -8
- package/dist/process-runner.js.map +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 +67 -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/release-identity.js +19 -0
- package/dist/release-identity.js.map +1 -1
- package/dist/repository-governance.d.ts +10 -2
- package/dist/repository-governance.js +240 -99
- 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/contract.d.ts +2 -0
- package/dist/telemetry/contract.js +7 -0
- package/dist/telemetry/contract.js.map +1 -1
- package/dist/telemetry/index.d.ts +1 -1
- package/dist/templates.d.ts +10 -20
- package/dist/templates.js +52 -3238
- 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 +127 -11
- package/docs/configuration-and-manifests.md +150 -35
- package/docs/existing-repositories.md +33 -6
- package/docs/getting-started.md +44 -31
- package/docs/prerequisites.md +34 -35
- package/docs/project-structure.md +45 -47
- package/docs/repository-governance.md +207 -24
- package/docs/safety-and-consent.md +65 -12
- package/docs/spec-workflows-and-agents.md +31 -28
- package/docs/supported-stack.md +11 -9
- package/docs/telemetry.md +9 -3
- package/docs/troubleshooting.md +107 -49
- package/docs/workloads.md +53 -62
- package/package.json +6 -8
- 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 -173
- 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/docs/getting-started.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# Getting started
|
|
2
2
|
|
|
3
|
-
Liftoff is an interactive project initializer for governed GenAI applications
|
|
4
|
-
standard APIs
|
|
3
|
+
Liftoff is an interactive project initializer for governed GenAI applications
|
|
4
|
+
and standard APIs.
|
|
5
5
|
|
|
6
6
|
## 1. Install the CLI
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
Workstation readiness requires stable Node.js 24 LTS at 24.20.0 or newer within
|
|
9
|
+
that line, plus npm 12.x at 12.0.2 or newer when selected tools need it.
|
|
10
|
+
Python workloads use Python 3.14.x with frozen `uv` dependency locks.
|
|
10
11
|
|
|
11
12
|
The canonical release registry is `https://registry.npmjs.org`:
|
|
12
13
|
|
|
13
14
|
```bash
|
|
14
|
-
npm view @msn-control/liftoff@latest version --registry=https://registry.npmjs.org
|
|
15
|
-
npm install -g @msn-control/liftoff@latest
|
|
15
|
+
npm view @msn-control/liftoff@latest version --registry=https://registry.npmjs.org --@msn-control:registry=https://registry.npmjs.org
|
|
16
|
+
npm install -g @msn-control/liftoff@latest
|
|
16
17
|
liftoff --version
|
|
17
18
|
```
|
|
18
19
|
|
|
@@ -22,6 +23,10 @@ If your organization requires a managed npm registry, query
|
|
|
22
23
|
canonical npm. Stop if the mirror is older or rejects the explicit current
|
|
23
24
|
version; ask the mirror owner to synchronize or approve the release. Liftoff
|
|
24
25
|
does not modify `.npmrc` or bypass registry policy.
|
|
26
|
+
The read-only canonical query isolates both default and scoped registry
|
|
27
|
+
overrides. Installation intentionally honors the configured
|
|
28
|
+
`@msn-control:registry` before the default registry; do not force a canonical
|
|
29
|
+
download around an organization's delivery policy.
|
|
25
30
|
|
|
26
31
|
Versions predating the self-upgrade command require that manual global install
|
|
27
32
|
once. After a capable version is installed globally with npm, use:
|
|
@@ -50,7 +55,7 @@ cd my-project
|
|
|
50
55
|
|
|
51
56
|
The guided flow asks for:
|
|
52
57
|
|
|
53
|
-
1. Project identity and workload: GenAI
|
|
58
|
+
1. Project identity and workload: GenAI or API.
|
|
54
59
|
2. Only the architecture choices applicable to that workload.
|
|
55
60
|
For GenAI, **I'm not sure yet - Generic GenAI starter** is the safe default
|
|
56
61
|
when no specialization has been selected.
|
|
@@ -62,8 +67,7 @@ The guided flow asks for:
|
|
|
62
67
|
6. Whether to configure the default-off GitHub-hosted Copilot coding agent when
|
|
63
68
|
OpenSpec and GitHub Copilot are selected.
|
|
64
69
|
7. A Spec Kit default agent when both agents are selected.
|
|
65
|
-
8.
|
|
66
|
-
9. Plan confirmation, workstation readiness, and any separate install or
|
|
70
|
+
8. Plan confirmation, workstation readiness, and any separate install or
|
|
67
71
|
overwrite permissions that are needed.
|
|
68
72
|
|
|
69
73
|
Liftoff renders into temporary staging, runs the official framework initializer
|
|
@@ -74,12 +78,12 @@ and asks separately before staging.
|
|
|
74
78
|
|
|
75
79
|
When governance is enabled, `/liftoff-setup` is the next selected-agent action.
|
|
76
80
|
It has no model-selection requirement: safety comes from the Liftoff CLI phase
|
|
77
|
-
graph, local evidence, approval envelopes, and readback.
|
|
78
|
-
syncs, and archives
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
or read-only checks.
|
|
81
|
+
graph, local evidence, approval envelopes, and readback. OpenSpec setup completes,
|
|
82
|
+
syncs, and archives `bootstrap-<project>`; Spec Kit validates and finalizes
|
|
83
|
+
`specs/000-liftoff-bootstrap/` locally. Neither workflow invents completed product
|
|
84
|
+
work. Missing approval-persistence, credential-enrollment, and production phase
|
|
85
|
+
executors remain specific blockers. Commit and push are never implicit in
|
|
86
|
+
`liftoff init`, `--yes`, or read-only checks.
|
|
83
87
|
|
|
84
88
|
For deterministic generic generation, use `--type genai --pattern generic`.
|
|
85
89
|
|
|
@@ -97,26 +101,35 @@ non-empty target.
|
|
|
97
101
|
|
|
98
102
|
## 4. Local baseline setup verifies
|
|
99
103
|
|
|
100
|
-
`/liftoff-setup` runs only local, project-applicable baseline checks before
|
|
101
|
-
|
|
104
|
+
`/liftoff-setup` runs only local, project-applicable baseline checks before
|
|
105
|
+
archiving the OpenSpec seed or finalizing the Spec Kit bundle. Commands run in
|
|
106
|
+
their declared component directories, not all from an arbitrary working directory:
|
|
102
107
|
|
|
103
108
|
```bash
|
|
104
109
|
liftoff validate
|
|
105
110
|
# backend tests from the generated README when a backend exists
|
|
106
111
|
# frontend build from the generated README when a frontend exists
|
|
107
112
|
docker compose config -q
|
|
113
|
+
# From infrastructure/opentofu/azure/:
|
|
108
114
|
tofu fmt -check -recursive
|
|
115
|
+
# Within each selected environments/<environment>/ infrastructure root:
|
|
109
116
|
tofu init -backend=false
|
|
110
117
|
tofu validate
|
|
111
|
-
|
|
118
|
+
# OpenSpec only, from the project root (replace the generated change name):
|
|
119
|
+
openspec validate bootstrap-my-project --strict
|
|
112
120
|
```
|
|
113
121
|
|
|
114
|
-
Absent components are inapplicable:
|
|
115
|
-
|
|
116
|
-
frontend build evidence. The baseline does not run `tofu plan`, `tofu apply`,
|
|
122
|
+
Absent optional components are inapplicable: an API project without a frontend
|
|
123
|
+
skips frontend build evidence. The baseline does not run `tofu plan`, `tofu apply`,
|
|
117
124
|
start containers, deploy, mutate GitHub, or require cloud credentials. If a check
|
|
118
|
-
fails, the seed remains
|
|
119
|
-
|
|
125
|
+
fails, the seed remains unfinished. After repair, explicit execution can retry
|
|
126
|
+
the local baseline; read-only `resume` does not run it. Current unchanged proof
|
|
127
|
+
can be reused, while changed inputs require new evidence.
|
|
128
|
+
Dependencies must already be usable, or separately installed with explicit
|
|
129
|
+
consent; passing a baseline does not prove that installation or consent happened.
|
|
130
|
+
Spec Kit's B001–B006 projection is finalized only after its checks pass.
|
|
131
|
+
Legacy/shared or unknown infrastructure layouts block baseline execution with a
|
|
132
|
+
migration-required result rather than omitting those checks.
|
|
120
133
|
|
|
121
134
|
You can run read-only maintenance at any time:
|
|
122
135
|
|
|
@@ -132,14 +145,14 @@ liftoff governance verify --json
|
|
|
132
145
|
adds read-only workstation, runtime, authentication, dependency,
|
|
133
146
|
workload-specific, and governance-state diagnostics.
|
|
134
147
|
|
|
135
|
-
After
|
|
136
|
-
|
|
148
|
+
After the local bootstrap handoff, normal development follows your selected
|
|
149
|
+
workflow. Repository publication and production activation remain separate:
|
|
137
150
|
|
|
138
151
|
- GenAI and API projects: copy `.env.example` to `.env`, install the generated
|
|
139
152
|
stack dependencies, then use `liftoff dev` and `liftoff infra` to print local
|
|
140
|
-
development and infrastructure commands.
|
|
141
|
-
|
|
142
|
-
|
|
153
|
+
development and infrastructure commands. Native Go also copies
|
|
154
|
+
`runtime.config.example.json` to `runtime.config.json`; see the
|
|
155
|
+
[stack-specific configuration recipes](configuration-and-manifests.md#application-runtime-configuration).
|
|
143
156
|
- OpenSpec or Spec Kit changes drive normal feature work; release and hotfix
|
|
144
157
|
flows follow the governed GitFlow plan after activation evidence is green.
|
|
145
158
|
|
|
@@ -151,7 +164,7 @@ Use `liftoff plan` to resolve choices and preview requirements without writing
|
|
|
151
164
|
files or running installers:
|
|
152
165
|
|
|
153
166
|
```bash
|
|
154
|
-
liftoff plan --type
|
|
167
|
+
liftoff plan --type standard --api node --spec openspec --agents copilot
|
|
155
168
|
```
|
|
156
169
|
|
|
157
170
|
Automation can pass the same options to `liftoff init`. Use `--yes` for project
|
|
@@ -176,5 +189,5 @@ source remains byte-for-byte unchanged.
|
|
|
176
189
|
liftoff migrate ../legacy-app --region eastus --agents copilot,claude --yes
|
|
177
190
|
```
|
|
178
191
|
|
|
179
|
-
Power Apps
|
|
180
|
-
|
|
192
|
+
Power Apps support is retired, including existing-project maintenance. Retired
|
|
193
|
+
inputs are rejected without converting or deleting the original application.
|
package/docs/prerequisites.md
CHANGED
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
# Prerequisites
|
|
2
2
|
|
|
3
3
|
Liftoff derives workstation and project requirements from the complete resolved
|
|
4
|
-
plan. A
|
|
5
|
-
|
|
4
|
+
plan. A Go API does not inherit Python backend dependencies, although a selected
|
|
5
|
+
framework such as Spec Kit can require Python for its own tooling.
|
|
6
6
|
|
|
7
7
|
## Baseline
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
9
|
+
- Workstation Node.js: stable Node.js 24 LTS, version 24.20.0 or newer within 24.x.
|
|
10
|
+
- npm-dependent stacks or OpenSpec: stable npm 12.x, version 12.0.2 or newer.
|
|
11
|
+
- Python projects: stable Python 3.14.x and `uv` 0.12.x at version 0.12.7 or newer.
|
|
12
|
+
- Go projects: stable Go 1.27.x.
|
|
13
|
+
- Generated Azure infrastructure: stable OpenTofu 1.12.x at version 1.12.6 or newer.
|
|
13
14
|
- Selected framework: OpenSpec 1.11.0 or Spec Kit 1.0.1 exactly.
|
|
14
15
|
- Selected agents: GitHub Copilot, Claude Code, or both.
|
|
15
16
|
|
|
17
|
+
Minimum versions do not authorize a different, untested release line. Release
|
|
18
|
+
candidates and other prereleases do not satisfy stable floors or exact framework
|
|
19
|
+
pins. A working Node.js executable does not establish npm readiness: when npm is
|
|
20
|
+
required, it is probed separately before destination writes. A missing npm
|
|
21
|
+
executable requires a separately reviewed machine-level repair; Liftoff does not
|
|
22
|
+
try to run the missing executable or reinstall Node.js on its behalf.
|
|
23
|
+
|
|
16
24
|
Automatic `liftoff upgrade` additionally requires that the running canonical
|
|
17
25
|
`@msn-control/liftoff` package is a normal global npm installation beneath
|
|
18
26
|
`npm root --global`. Local dependencies, `npx` cache copies, linked checkouts,
|
|
@@ -27,6 +35,8 @@ runtime. GenAI uses Python 3.14 and the Python/FastAPI/PydanticAI stack.
|
|
|
27
35
|
Blocking checks must be ready before initialization can safely complete:
|
|
28
36
|
|
|
29
37
|
- Required runtime and minimum version.
|
|
38
|
+
- Required package managers, including npm for Node.js dependencies, a frontend,
|
|
39
|
+
or OpenSpec.
|
|
30
40
|
- Selected spec framework CLI.
|
|
31
41
|
- Every selected coding agent.
|
|
32
42
|
- For OpenSpec, global profile `custom`, delivery `both`, and all 12 workflows.
|
|
@@ -36,7 +46,6 @@ Advisory checks describe useful but deferrable capabilities:
|
|
|
36
46
|
- Docker CLI and daemon health for API workloads.
|
|
37
47
|
- OpenTofu for generated Azure infrastructure.
|
|
38
48
|
- Azure CLI and observable authentication health.
|
|
39
|
-
- Optional Code Apps plugin state for Power Apps.
|
|
40
49
|
|
|
41
50
|
Authentication checks are read-only. Liftoff never stores credentials or signs
|
|
42
51
|
in to a cloud or agent on your behalf.
|
|
@@ -63,7 +72,7 @@ can register each missing namespace explicitly before dependent resources.
|
|
|
63
72
|
without writing files or running installers:
|
|
64
73
|
|
|
65
74
|
```bash
|
|
66
|
-
liftoff plan --type
|
|
75
|
+
liftoff plan --type standard --api node --spec openspec --agents copilot,claude
|
|
67
76
|
```
|
|
68
77
|
|
|
69
78
|
## Tool installation consent
|
|
@@ -103,19 +112,22 @@ Project-local dependency setup is separate from workstation tools and requires
|
|
|
103
112
|
`--install-dependencies` or interactive approval after a successful project
|
|
104
113
|
merge.
|
|
105
114
|
|
|
106
|
-
For Power Apps, Liftoff runs only the root locked install:
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
npm ci
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
The generated `package.json` and `package-lock.json` are validated before
|
|
113
|
-
installation and protected from installer mutation. If dependency setup is
|
|
114
|
-
skipped or fails, Liftoff prints the exact resume command rather than claiming
|
|
115
|
-
the project is ready.
|
|
116
|
-
|
|
117
115
|
GenAI and API projects use their generated stack-native locked dependency
|
|
118
|
-
commands.
|
|
116
|
+
commands. If dependency setup is skipped or fails, Liftoff prints the exact
|
|
117
|
+
resume command rather than claiming the project is ready.
|
|
118
|
+
|
|
119
|
+
Recovery output identifies its shell: POSIX shell on macOS/Linux and PowerShell
|
|
120
|
+
on Windows. Copy the command into that shell; directory names and arguments are
|
|
121
|
+
quoted literally rather than expanded as environment variables.
|
|
122
|
+
|
|
123
|
+
If protected metadata changes during dependency setup, Liftoff stops and lists
|
|
124
|
+
the changed paths. It preserves those edits instead of assuming the installer
|
|
125
|
+
caused them and restoring older bytes over concurrent work. Review and repair
|
|
126
|
+
the metadata before retrying. Dependency scripts can also change other project
|
|
127
|
+
files; this check is not a script sandbox.
|
|
128
|
+
Dependencies that are already installed and usable do not need a new install
|
|
129
|
+
merely to satisfy a bootstrap checkbox. Local checks prove usability, not that
|
|
130
|
+
an installation or its consent occurred.
|
|
119
131
|
|
|
120
132
|
Python projects use the generated lock without resolving new versions:
|
|
121
133
|
|
|
@@ -130,24 +142,11 @@ Liftoff's npm locks are generated with npm 12.0.2 and verified in the supported
|
|
|
130
142
|
compatibility lanes. Do not replace a committed lock with an install from
|
|
131
143
|
open-ended manifest ranges.
|
|
132
144
|
|
|
133
|
-
## Power Apps local CLI
|
|
134
|
-
|
|
135
|
-
The Power Apps CLI is supplied by the generated project dependency graph.
|
|
136
|
-
Liftoff checks it without downloading another package:
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
npx --no-install power-apps --version
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
If `node_modules` is absent, run `npm ci` first. Environment binding and cloud
|
|
143
|
-
authentication remain separate later actions.
|
|
144
|
-
|
|
145
145
|
## Agent detection
|
|
146
146
|
|
|
147
147
|
Copilot can be detected through its CLI or supported VS Code extensions.
|
|
148
148
|
Claude Code is checked with its version and doctor commands. When both are
|
|
149
149
|
selected, both must be ready.
|
|
150
150
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
result is reported as not observable rather than silently treated as missing.
|
|
151
|
+
Power Apps and Code Apps plugin preparation are retired. Their inputs are
|
|
152
|
+
rejected before selecting or installing a former workload-specific tool set.
|
|
@@ -17,7 +17,9 @@ project/
|
|
|
17
17
|
|-- liftoff.config.json
|
|
18
18
|
|-- liftoff.manifest.json
|
|
19
19
|
|-- .env.example
|
|
20
|
+
|-- runtime.config.example.json # Go native configuration only
|
|
20
21
|
|-- Dockerfile
|
|
22
|
+
|-- .dockerignore
|
|
21
23
|
|-- docker-compose.yml
|
|
22
24
|
|-- .liftoff/
|
|
23
25
|
| `-- governance/ # managed-core local handoff when enabled
|
|
@@ -45,14 +47,18 @@ project/
|
|
|
45
47
|
|-- infrastructure/
|
|
46
48
|
| `-- opentofu/
|
|
47
49
|
| `-- azure/
|
|
48
|
-
|
|
|
50
|
+
| |-- modules/application/
|
|
51
|
+
| `-- environments/<env>/ # independent root, <env>.tfvars and provider lock
|
|
49
52
|
|-- openspec/ or .specify/
|
|
53
|
+
|-- specs/000-liftoff-bootstrap/ # Spec Kit only: one-time spec.md, plan.md, tasks.md
|
|
50
54
|
|-- .github/skills/openspec-*/ and .github/prompts/opsx-* # OpenSpec + Copilot
|
|
51
55
|
|-- .claude/skills/openspec-*/ and .claude/commands/opsx/ # OpenSpec + Claude
|
|
52
56
|
|-- .github/workflows/copilot-setup-steps.yml # optional hosted agent
|
|
53
57
|
|-- .github/agents/openspec.agent.md # optional hosted agent
|
|
54
58
|
|-- .github/prompts/liftoff-setup.prompt.md
|
|
55
59
|
| or .claude/commands/liftoff-setup.md
|
|
60
|
+
|-- .github/prompts/liftoff-governance-assess.prompt.md
|
|
61
|
+
| or .claude/commands/liftoff-governance-assess.md
|
|
56
62
|
|-- frontend/ # only when selected
|
|
57
63
|
|-- functions/<worker-name>/ # only for worker-enabled GenAI patterns
|
|
58
64
|
`-- migration/legacy/ # only after liftoff migrate
|
|
@@ -62,7 +68,9 @@ project/
|
|
|
62
68
|
|
|
63
69
|
- `backend` contains the selected API stack and Scalar/OpenAPI wiring. Python
|
|
64
70
|
uses `backend/apis`, Node.js uses `backend/src`, and Go uses
|
|
65
|
-
`backend/cmd/api` plus `backend/internal`.
|
|
71
|
+
`backend/cmd/api` plus `backend/internal`. Node includes an explicit
|
|
72
|
+
`backend/vitest.config.ts`; Go's `backend/cmd/migrate/main.go` passes resolved
|
|
73
|
+
configuration to the existing pinned Goose migration tool.
|
|
66
74
|
- `backend/orchestration` appears only in GenAI projects and contains
|
|
67
75
|
PydanticAI agents, prompts, model configuration, and integration boundaries.
|
|
68
76
|
The generic pattern creates `generic_agent.py`, `generic.md`, and the neutral
|
|
@@ -78,8 +86,12 @@ project/
|
|
|
78
86
|
- Python Docker builds export the committed `uv.lock` in frozen mode and install
|
|
79
87
|
only hash-verified requirements. `UV_DEFAULT_INDEX` can select a
|
|
80
88
|
credential-free managed mirror without changing the lock.
|
|
81
|
-
- `infrastructure/opentofu/azure` contains
|
|
82
|
-
|
|
89
|
+
- `infrastructure/opentofu/azure/modules/application` contains the shared module.
|
|
90
|
+
Each selected `infrastructure/opentofu/azure/environments/<env>` root owns its
|
|
91
|
+
named tfvars, provider lock, and independent local/remote state configuration.
|
|
92
|
+
Existing shared-state projects are not relocated by update or force.
|
|
93
|
+
The eight [retired flat-root identities](azure-deployment.md#explicit-flat-root-identity-retirement)
|
|
94
|
+
remain historical provenance; new root-looking files do not establish eligibility.
|
|
83
95
|
- `openspec` is created for OpenSpec. `.specify` and `specs` are created for
|
|
84
96
|
Spec Kit.
|
|
85
97
|
- OpenSpec projects receive all 12 pinned workflows as both skills and commands
|
|
@@ -88,6 +100,9 @@ project/
|
|
|
88
100
|
- `/liftoff-setup` is generated when repository governance is enabled. It calls
|
|
89
101
|
`liftoff governance status|plan|apply-next|resume|verify` and has no model
|
|
90
102
|
selection or separate setup-skill version.
|
|
103
|
+
- `/liftoff-governance-assess` is a separate selected-agent, read-only wrapper
|
|
104
|
+
around `liftoff governance assess --json`. It is local-only unless live reads
|
|
105
|
+
are explicitly requested; it never runs automatically or replaces setup.
|
|
91
106
|
|
|
92
107
|
### Conditional areas
|
|
93
108
|
|
|
@@ -99,53 +114,36 @@ project/
|
|
|
99
114
|
separate from Azure Functions runtime files.
|
|
100
115
|
- `migration/legacy` contains the filtered source copy created by migration.
|
|
101
116
|
|
|
102
|
-
|
|
117
|
+
### Runtime configuration and image boundaries
|
|
103
118
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|-- vite.config.ts
|
|
114
|
-
|-- eslint.config.js
|
|
115
|
-
|-- tsconfig.json
|
|
116
|
-
|-- public/
|
|
117
|
-
|-- src/
|
|
118
|
-
| |-- App.tsx
|
|
119
|
-
| |-- main.tsx
|
|
120
|
-
| |-- router.tsx
|
|
121
|
-
| |-- components/
|
|
122
|
-
| |-- hooks/
|
|
123
|
-
| |-- pages/
|
|
124
|
-
| `-- providers/
|
|
125
|
-
|-- .liftoff/governance/ # managed-core setup files when enabled
|
|
126
|
-
|-- governance/ # user-owned activation state after setup starts
|
|
127
|
-
`-- openspec/ or .specify/
|
|
128
|
-
```
|
|
119
|
+
Python and Node.js native startup read the project-root `.env`; process
|
|
120
|
+
environment values take precedence over file-backed settings and nonsecret
|
|
121
|
+
defaults. Go native startup from `backend/` reads `../runtime.config.json`;
|
|
122
|
+
copy `runtime.config.example.json` to that path or select explicit JSON with
|
|
123
|
+
`LIFTOFF_ENV_FILE`. It does not shell-source `.env`. Configuration is resolved
|
|
124
|
+
once per process; restart after editing the selected file.
|
|
125
|
+
Explicit missing, unreadable, or malformed selected files fail before fallback.
|
|
126
|
+
See [configuration syntax and native commands](configuration-and-manifests.md#application-runtime-configuration)
|
|
127
|
+
for strict dotenv quoting and Go's string-valued JSON contract.
|
|
129
128
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
129
|
+
Compose passes applicable runtime settings explicitly while keeping PostgreSQL,
|
|
130
|
+
Redis, and other generated service addresses container-reachable. Root and
|
|
131
|
+
frontend `.dockerignore` files exclude host virtual environments, `node_modules`,
|
|
132
|
+
build outputs, VCS metadata, state, and local secrets. Installing dependencies
|
|
133
|
+
locally must not copy a host environment over dependencies installed in an image.
|
|
135
134
|
|
|
136
|
-
|
|
137
|
-
Power Apps SDK, Vite plugin, and project-local CLI through locked npm
|
|
138
|
-
dependencies.
|
|
135
|
+
## Retired project layouts
|
|
139
136
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
137
|
+
Power Apps code app generation and maintenance are retired. An existing
|
|
138
|
+
Power Apps manifest is rejected without converting its root layout or modifying
|
|
139
|
+
application, framework, dependency, or governance files. The remaining generated
|
|
140
|
+
layouts are the API and GenAI layouts above.
|
|
143
141
|
|
|
144
142
|
## Managed versus user-owned governance artifacts
|
|
145
143
|
|
|
146
144
|
`liftoff.manifest.json` v7 records managed-core hashes for the governance policy,
|
|
147
145
|
context, guide, phase graph, compatibility metadata, credential-policy schema,
|
|
148
|
-
and setup integrations. `liftoff update` may reconcile only those managed-core
|
|
146
|
+
and setup and assessment integrations. `liftoff update` may reconcile only those managed-core
|
|
149
147
|
paths. Forced update may remove exact retired generated setup-alias ownership
|
|
150
148
|
from older manifests after review. It preserves user-owned activation state,
|
|
151
149
|
immutable evidence, approvals, credential policies, active OpenSpec changes, and
|
|
@@ -164,12 +162,12 @@ success-shaped placeholders:
|
|
|
164
162
|
invocation fails clearly.
|
|
165
163
|
- Redis Streams uses `REDIS_URL` and `REDIS_STREAM_NAME`.
|
|
166
164
|
- Azure Service Bus uses `SERVICE_BUS_QUEUE_NAME` and either
|
|
167
|
-
`
|
|
168
|
-
`
|
|
169
|
-
user-assigned
|
|
165
|
+
`SERVICE_BUS_AUTH_MODE=connection-string` with `SERVICE_BUS_CONNECTION_STRING`,
|
|
166
|
+
or `managed-identity` with `SERVICE_BUS_FULLY_QUALIFIED_NAMESPACE` and
|
|
167
|
+
`AZURE_CLIENT_ID` for the selected user-assigned identity.
|
|
170
168
|
- Langfuse requires both `LANGFUSE_PUBLIC_KEY` and
|
|
171
|
-
`LANGFUSE_SECRET_KEY`, with optional `LANGFUSE_HOST`.
|
|
172
|
-
tracing is
|
|
169
|
+
`LANGFUSE_SECRET_KEY`, with optional `LANGFUSE_HOST`. Both blank disables
|
|
170
|
+
tracing; only one configured key is an error.
|
|
173
171
|
- Frontends read `VITE_API_BASE_URL`, call the route selected by the pattern or
|
|
174
172
|
API stack, and expose loading, response, and failure states.
|
|
175
173
|
- Backends allow the local frontend origin by default.
|