@msn-control/liftoff 0.11.3 → 0.12.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.
Files changed (332) hide show
  1. package/DEVELOPER.md +26 -35
  2. package/README.md +18 -18
  3. package/assets/governance/single-maintainer-gitflow/activation-v2-graph.json +1583 -0
  4. package/dist/adapters/credentials/github-enrollment.d.ts +51 -0
  5. package/dist/adapters/credentials/github-enrollment.js +226 -0
  6. package/dist/adapters/credentials/github-enrollment.js.map +1 -0
  7. package/dist/adapters/credentials/protected-input.d.ts +7 -0
  8. package/dist/adapters/credentials/protected-input.js +68 -0
  9. package/dist/adapters/credentials/protected-input.js.map +1 -0
  10. package/dist/adapters/filesystem/executables.d.ts +2 -0
  11. package/dist/adapters/filesystem/executables.js +70 -0
  12. package/dist/adapters/filesystem/executables.js.map +1 -0
  13. package/dist/adapters/filesystem/update-previews.d.ts +9 -0
  14. package/dist/adapters/filesystem/update-previews.js +44 -0
  15. package/dist/adapters/filesystem/update-previews.js.map +1 -1
  16. package/dist/adapters/filesystem/workstation-attempts.d.ts +13 -0
  17. package/dist/adapters/filesystem/workstation-attempts.js +78 -0
  18. package/dist/adapters/filesystem/workstation-attempts.js.map +1 -0
  19. package/dist/adapters/github/activation-rest.d.ts +40 -0
  20. package/dist/adapters/github/activation-rest.js +272 -0
  21. package/dist/adapters/github/activation-rest.js.map +1 -0
  22. package/dist/adapters/state/azure-blob.d.ts +43 -0
  23. package/dist/adapters/state/azure-blob.js +335 -0
  24. package/dist/adapters/state/azure-blob.js.map +1 -0
  25. package/dist/adapters/state/darwin-capabilities.d.ts +33 -0
  26. package/dist/adapters/state/darwin-capabilities.js +146 -0
  27. package/dist/adapters/state/darwin-capabilities.js.map +1 -0
  28. package/dist/adapters/state/darwin-native-host.d.ts +32 -0
  29. package/dist/adapters/state/darwin-native-host.js +294 -0
  30. package/dist/adapters/state/darwin-native-host.js.map +1 -0
  31. package/dist/adapters/state/darwin-profile.d.ts +6 -0
  32. package/dist/adapters/state/darwin-profile.js +56 -0
  33. package/dist/adapters/state/darwin-profile.js.map +1 -0
  34. package/dist/adapters/state/darwin-system-program.d.ts +1 -0
  35. package/dist/adapters/state/darwin-system-program.js +94 -0
  36. package/dist/adapters/state/darwin-system-program.js.map +1 -0
  37. package/dist/adapters/state/local-qualification.d.ts +16 -0
  38. package/dist/adapters/state/local-qualification.js +299 -0
  39. package/dist/adapters/state/local-qualification.js.map +1 -0
  40. package/dist/adapters/state/local.d.ts +25 -0
  41. package/dist/adapters/state/local.js +145 -0
  42. package/dist/adapters/state/local.js.map +1 -0
  43. package/dist/adapters/state/native-command.d.ts +21 -0
  44. package/dist/adapters/state/native-command.js +82 -0
  45. package/dist/adapters/state/native-command.js.map +1 -0
  46. package/dist/adapters/state/native-files.d.ts +2 -0
  47. package/dist/adapters/state/native-files.js +47 -0
  48. package/dist/adapters/state/native-files.js.map +1 -0
  49. package/dist/adapters/state/native-system.d.ts +38 -0
  50. package/dist/adapters/state/native-system.js +86 -0
  51. package/dist/adapters/state/native-system.js.map +1 -0
  52. package/dist/adapters/state/opentofu.d.ts +35 -0
  53. package/dist/adapters/state/opentofu.js +350 -0
  54. package/dist/adapters/state/opentofu.js.map +1 -0
  55. package/dist/adapters/state/owned-process.d.ts +43 -0
  56. package/dist/adapters/state/owned-process.js +252 -0
  57. package/dist/adapters/state/owned-process.js.map +1 -0
  58. package/dist/adapters/state/posix-lock-program.d.ts +1 -0
  59. package/dist/adapters/state/posix-lock-program.js +185 -0
  60. package/dist/adapters/state/posix-lock-program.js.map +1 -0
  61. package/dist/adapters/state/posix-native-lock.d.ts +15 -0
  62. package/dist/adapters/state/posix-native-lock.js +145 -0
  63. package/dist/adapters/state/posix-native-lock.js.map +1 -0
  64. package/dist/adapters/state/protected-workspace.d.ts +57 -0
  65. package/dist/adapters/state/protected-workspace.js +412 -0
  66. package/dist/adapters/state/protected-workspace.js.map +1 -0
  67. package/dist/application/context.d.ts +3 -0
  68. package/dist/application/diagnose/doctor.d.ts +5 -0
  69. package/dist/application/diagnose/doctor.js +21 -5
  70. package/dist/application/diagnose/doctor.js.map +1 -1
  71. package/dist/application/diagnose/generated-project.js +2 -7
  72. package/dist/application/diagnose/generated-project.js.map +1 -1
  73. package/dist/application/initialize/fixture.js +8 -1
  74. package/dist/application/initialize/fixture.js.map +1 -1
  75. package/dist/application/initialize/use-case.js +70 -36
  76. package/dist/application/initialize/use-case.js.map +1 -1
  77. package/dist/application/project/manifest.js +5 -4
  78. package/dist/application/project/manifest.js.map +1 -1
  79. package/dist/application/state-migration/execution.d.ts +32 -0
  80. package/dist/application/state-migration/execution.js +440 -0
  81. package/dist/application/state-migration/execution.js.map +1 -0
  82. package/dist/application/state-migration/index.d.ts +22 -0
  83. package/dist/application/state-migration/index.js +17 -0
  84. package/dist/application/state-migration/index.js.map +1 -0
  85. package/dist/application/state-migration/lifecycle.d.ts +3 -0
  86. package/dist/application/state-migration/lifecycle.js +149 -0
  87. package/dist/application/state-migration/lifecycle.js.map +1 -0
  88. package/dist/application/state-migration/planning.d.ts +7 -0
  89. package/dist/application/state-migration/planning.js +150 -0
  90. package/dist/application/state-migration/planning.js.map +1 -0
  91. package/dist/application/state-migration/recovery.d.ts +5 -0
  92. package/dist/application/state-migration/recovery.js +145 -0
  93. package/dist/application/state-migration/recovery.js.map +1 -0
  94. package/dist/application/state-migration/runtime.d.ts +32 -0
  95. package/dist/application/state-migration/runtime.js +188 -0
  96. package/dist/application/state-migration/runtime.js.map +1 -0
  97. package/dist/application/state-migration/service.d.ts +2 -0
  98. package/dist/application/state-migration/service.js +20 -0
  99. package/dist/application/state-migration/service.js.map +1 -0
  100. package/dist/application/update/inspection.d.ts +16 -2
  101. package/dist/application/update/inspection.js +76 -23
  102. package/dist/application/update/inspection.js.map +1 -1
  103. package/dist/application/update/migration-runtime.js +24 -11
  104. package/dist/application/update/migration-runtime.js.map +1 -1
  105. package/dist/application/update/output.d.ts +2 -0
  106. package/dist/application/update/output.js +11 -1
  107. package/dist/application/update/output.js.map +1 -1
  108. package/dist/application/update/revalidation-plan.d.ts +1 -0
  109. package/dist/application/update/revalidation-plan.js +25 -12
  110. package/dist/application/update/revalidation-plan.js.map +1 -1
  111. package/dist/application/update/revalidation.d.ts +4 -1
  112. package/dist/application/update/revalidation.js +62 -21
  113. package/dist/application/update/revalidation.js.map +1 -1
  114. package/dist/application/update/use-case.js +25 -17
  115. package/dist/application/update/use-case.js.map +1 -1
  116. package/dist/application/upgrade/use-case.js +3 -0
  117. package/dist/application/upgrade/use-case.js.map +1 -1
  118. package/dist/cli/args/definitions.js +11 -3
  119. package/dist/cli/args/definitions.js.map +1 -1
  120. package/dist/cli/args/parser.js +29 -3
  121. package/dist/cli/args/parser.js.map +1 -1
  122. package/dist/domain/governance/activation/approvals.d.ts +264 -7
  123. package/dist/domain/governance/activation/approvals.js +166 -23
  124. package/dist/domain/governance/activation/approvals.js.map +1 -1
  125. package/dist/domain/governance/activation/capabilities.js +5 -2
  126. package/dist/domain/governance/activation/capabilities.js.map +1 -1
  127. package/dist/domain/governance/activation/evidence.d.ts +2 -1
  128. package/dist/domain/governance/activation/evidence.js +64 -11
  129. package/dist/domain/governance/activation/evidence.js.map +1 -1
  130. package/dist/domain/governance/activation/graph.d.ts +11 -384
  131. package/dist/domain/governance/activation/graph.js +424 -379
  132. package/dist/domain/governance/activation/graph.js.map +1 -1
  133. package/dist/domain/governance/activation/inputs.d.ts +3 -1
  134. package/dist/domain/governance/activation/inputs.js +47 -6
  135. package/dist/domain/governance/activation/inputs.js.map +1 -1
  136. package/dist/domain/governance/activation/operations.d.ts +4 -1
  137. package/dist/domain/governance/activation/operations.js +110 -22
  138. package/dist/domain/governance/activation/operations.js.map +1 -1
  139. package/dist/domain/governance/activation/readiness.d.ts +10 -0
  140. package/dist/domain/governance/activation/readiness.js +77 -38
  141. package/dist/domain/governance/activation/readiness.js.map +1 -1
  142. package/dist/domain/governance/activation/types.d.ts +151 -9
  143. package/dist/domain/governance/activation/types.js +23 -1
  144. package/dist/domain/governance/activation/types.js.map +1 -1
  145. package/dist/domain/governance/activation/validators.d.ts +4 -1
  146. package/dist/domain/governance/activation/validators.js +419 -26
  147. package/dist/domain/governance/activation/validators.js.map +1 -1
  148. package/dist/domain/governance/policy/identity.d.ts +55 -13
  149. package/dist/domain/governance/policy/identity.js +28 -8
  150. package/dist/domain/governance/policy/identity.js.map +1 -1
  151. package/dist/domain/project/artifact-lifecycle.d.ts +2 -1
  152. package/dist/domain/project/artifact-lifecycle.js +7 -1
  153. package/dist/domain/project/artifact-lifecycle.js.map +1 -1
  154. package/dist/domain/project/catalog.d.ts +50 -1
  155. package/dist/domain/project/catalog.js +104 -4
  156. package/dist/domain/project/catalog.js.map +1 -1
  157. package/dist/domain/project/contracts.d.ts +9 -1
  158. package/dist/domain/project/infrastructure-layout.d.ts +1 -1
  159. package/dist/domain/project/infrastructure-layout.js +3 -1
  160. package/dist/domain/project/infrastructure-layout.js.map +1 -1
  161. package/dist/domain/project/manifest/governance.d.ts +1 -1
  162. package/dist/domain/project/manifest/governance.js +9 -10
  163. package/dist/domain/project/manifest/governance.js.map +1 -1
  164. package/dist/domain/project/planning.js +4 -5
  165. package/dist/domain/project/planning.js.map +1 -1
  166. package/dist/domain/repair/stateful-bounded.d.ts +1 -0
  167. package/dist/domain/repair/stateful-bounded.js +37 -0
  168. package/dist/domain/repair/stateful-bounded.js.map +1 -0
  169. package/dist/domain/repair/stateful-invariants.d.ts +28 -0
  170. package/dist/domain/repair/stateful-invariants.js +278 -0
  171. package/dist/domain/repair/stateful-invariants.js.map +1 -0
  172. package/dist/domain/repair/stateful.d.ts +690 -0
  173. package/dist/domain/repair/stateful.js +26 -0
  174. package/dist/domain/repair/stateful.js.map +1 -0
  175. package/dist/domain/workstation/constraints.d.ts +1 -0
  176. package/dist/domain/workstation/constraints.js.map +1 -1
  177. package/dist/domain/workstation/contracts.d.ts +42 -0
  178. package/dist/domain/workstation/contracts.js +2 -0
  179. package/dist/domain/workstation/contracts.js.map +1 -0
  180. package/dist/domain/workstation/executables.d.ts +19 -0
  181. package/dist/domain/workstation/executables.js +68 -0
  182. package/dist/domain/workstation/executables.js.map +1 -0
  183. package/dist/domain/workstation/versions.d.ts +8 -0
  184. package/dist/domain/workstation/versions.js +145 -0
  185. package/dist/domain/workstation/versions.js.map +1 -0
  186. package/dist/framework-adapters.d.ts +2 -0
  187. package/dist/framework-adapters.js +148 -22
  188. package/dist/framework-adapters.js.map +1 -1
  189. package/dist/framework-validation.d.ts +6 -0
  190. package/dist/framework-validation.js +89 -24
  191. package/dist/framework-validation.js.map +1 -1
  192. package/dist/generators/common/base.js +57 -17
  193. package/dist/generators/common/base.js.map +1 -1
  194. package/dist/governance-activation/activation-state.js +39 -7
  195. package/dist/governance-activation/activation-state.js.map +1 -1
  196. package/dist/governance-activation/authority-records.d.ts +4 -0
  197. package/dist/governance-activation/authority-records.js +24 -0
  198. package/dist/governance-activation/authority-records.js.map +1 -0
  199. package/dist/governance-activation/commands.d.ts +9 -1
  200. package/dist/governance-activation/commands.js +392 -97
  201. package/dist/governance-activation/commands.js.map +1 -1
  202. package/dist/governance-activation/compatibility.d.ts +11 -8
  203. package/dist/governance-activation/compatibility.js +37 -23
  204. package/dist/governance-activation/compatibility.js.map +1 -1
  205. package/dist/governance-activation/doctor.js +40 -16
  206. package/dist/governance-activation/doctor.js.map +1 -1
  207. package/dist/governance-activation/github-config.d.ts +17 -0
  208. package/dist/governance-activation/github-config.js +88 -0
  209. package/dist/governance-activation/github-config.js.map +1 -0
  210. package/dist/governance-activation/github-discovery.d.ts +18 -0
  211. package/dist/governance-activation/github-discovery.js +229 -0
  212. package/dist/governance-activation/github-discovery.js.map +1 -0
  213. package/dist/governance-activation/github-ports.d.ts +12 -0
  214. package/dist/governance-activation/github-ports.js +4 -0
  215. package/dist/governance-activation/github-ports.js.map +1 -0
  216. package/dist/governance-activation/github-publication.d.ts +3 -0
  217. package/dist/governance-activation/github-publication.js +190 -0
  218. package/dist/governance-activation/github-publication.js.map +1 -0
  219. package/dist/governance-activation/historical-common.d.ts +98 -0
  220. package/dist/governance-activation/historical-common.js +269 -0
  221. package/dist/governance-activation/historical-common.js.map +1 -0
  222. package/dist/governance-activation/historical-credential-policy.d.ts +3 -0
  223. package/dist/governance-activation/historical-credential-policy.js +91 -0
  224. package/dist/governance-activation/historical-credential-policy.js.map +1 -0
  225. package/dist/governance-activation/historical-inputs.d.ts +6 -0
  226. package/dist/governance-activation/historical-inputs.js +57 -0
  227. package/dist/governance-activation/historical-inputs.js.map +1 -0
  228. package/dist/governance-activation/historical-safety.d.ts +9 -0
  229. package/dist/governance-activation/historical-safety.js +102 -0
  230. package/dist/governance-activation/historical-safety.js.map +1 -0
  231. package/dist/governance-activation/historical-source-metadata.d.ts +31 -0
  232. package/dist/governance-activation/historical-source-metadata.js +55 -0
  233. package/dist/governance-activation/historical-source-metadata.js.map +1 -0
  234. package/dist/governance-activation/historical-state.d.ts +12 -50
  235. package/dist/governance-activation/historical-state.js +195 -308
  236. package/dist/governance-activation/historical-state.js.map +1 -1
  237. package/dist/governance-activation/historical-v1-auxiliary.d.ts +1 -0
  238. package/dist/governance-activation/historical-v1-auxiliary.js +43 -0
  239. package/dist/governance-activation/historical-v1-auxiliary.js.map +1 -0
  240. package/dist/governance-activation/historical-v1-phase-contracts.d.ts +31 -0
  241. package/dist/governance-activation/historical-v1-phase-contracts.js +46 -0
  242. package/dist/governance-activation/historical-v1-phase-contracts.js.map +1 -0
  243. package/dist/governance-activation/historical-v2.d.ts +53 -0
  244. package/dist/governance-activation/historical-v2.js +313 -0
  245. package/dist/governance-activation/historical-v2.js.map +1 -0
  246. package/dist/governance-activation/history-contracts.d.ts +21 -12
  247. package/dist/governance-activation/history-contracts.js +99 -27
  248. package/dist/governance-activation/history-contracts.js.map +1 -1
  249. package/dist/governance-activation/inputs.d.ts +8 -2
  250. package/dist/governance-activation/inputs.js +41 -6
  251. package/dist/governance-activation/inputs.js.map +1 -1
  252. package/dist/governance-activation/migration-history.d.ts +43 -5
  253. package/dist/governance-activation/migration-history.js +231 -50
  254. package/dist/governance-activation/migration-history.js.map +1 -1
  255. package/dist/governance-activation/migration.d.ts +7 -4
  256. package/dist/governance-activation/migration.js +53 -252
  257. package/dist/governance-activation/migration.js.map +1 -1
  258. package/dist/governance-activation/phase-azure.d.ts +3 -0
  259. package/dist/governance-activation/phase-azure.js +205 -0
  260. package/dist/governance-activation/phase-azure.js.map +1 -0
  261. package/dist/governance-activation/phase-bootstrap-state.js +3 -0
  262. package/dist/governance-activation/phase-bootstrap-state.js.map +1 -1
  263. package/dist/governance-activation/phase-github.d.ts +3 -0
  264. package/dist/governance-activation/phase-github.js +192 -0
  265. package/dist/governance-activation/phase-github.js.map +1 -0
  266. package/dist/governance-activation/phase-governance.js +8 -2
  267. package/dist/governance-activation/phase-governance.js.map +1 -1
  268. package/dist/governance-activation/public-plans.d.ts +36 -0
  269. package/dist/governance-activation/public-plans.js +100 -0
  270. package/dist/governance-activation/public-plans.js.map +1 -0
  271. package/dist/governance-activation/read-only.d.ts +3 -1
  272. package/dist/governance-activation/read-only.js +7 -3
  273. package/dist/governance-activation/read-only.js.map +1 -1
  274. package/dist/governance-activation/reconciliation.js +10 -0
  275. package/dist/governance-activation/reconciliation.js.map +1 -1
  276. package/dist/governance-activation/seed-lifecycle.js +14 -25
  277. package/dist/governance-activation/seed-lifecycle.js.map +1 -1
  278. package/dist/governance-activation/source-of-truth.d.ts +21 -5
  279. package/dist/governance-activation/source-of-truth.js +102 -13
  280. package/dist/governance-activation/source-of-truth.js.map +1 -1
  281. package/dist/governance-activation/task-projection.d.ts +4 -1
  282. package/dist/governance-activation/task-projection.js +32 -3
  283. package/dist/governance-activation/task-projection.js.map +1 -1
  284. package/dist/governance-activation/task-writes.d.ts +42 -0
  285. package/dist/governance-activation/task-writes.js +250 -0
  286. package/dist/governance-activation/task-writes.js.map +1 -0
  287. package/dist/governance-activation/transition-files.d.ts +12 -0
  288. package/dist/governance-activation/transition-files.js +109 -0
  289. package/dist/governance-activation/transition-files.js.map +1 -0
  290. package/dist/governance-activation/transition-planning.d.ts +3 -1
  291. package/dist/governance-activation/transition-planning.js +158 -20
  292. package/dist/governance-activation/transition-planning.js.map +1 -1
  293. package/dist/governance-activation/transition-ports.d.ts +31 -3
  294. package/dist/governance-activation/transition-records.d.ts +11 -1
  295. package/dist/governance-activation/transition-records.js +52 -6
  296. package/dist/governance-activation/transition-records.js.map +1 -1
  297. package/dist/governance-activation/transitions.d.ts +5 -0
  298. package/dist/governance-activation/transitions.js +271 -37
  299. package/dist/governance-activation/transitions.js.map +1 -1
  300. package/dist/governance-assessment/engine.js +22 -15
  301. package/dist/governance-assessment/engine.js.map +1 -1
  302. package/dist/governance-assessment/project.d.ts +2 -0
  303. package/dist/governance-assessment/project.js +2 -1
  304. package/dist/governance-assessment/project.js.map +1 -1
  305. package/dist/interactive.d.ts +0 -1
  306. package/dist/interactive.js +3 -22
  307. package/dist/interactive.js.map +1 -1
  308. package/dist/openspec-profile.d.ts +2 -1
  309. package/dist/openspec-profile.js +11 -41
  310. package/dist/openspec-profile.js.map +1 -1
  311. package/dist/repository-governance.d.ts +10 -5
  312. package/dist/repository-governance.js +178 -92
  313. package/dist/repository-governance.js.map +1 -1
  314. package/dist/self-upgrade.d.ts +8 -2
  315. package/dist/self-upgrade.js +180 -47
  316. package/dist/self-upgrade.js.map +1 -1
  317. package/dist/telemetry/contract.d.ts +1 -1
  318. package/dist/telemetry/contract.js +3 -0
  319. package/dist/telemetry/contract.js.map +1 -1
  320. package/dist/workstation-catalog.d.ts +13 -1
  321. package/dist/workstation-catalog.js +122 -0
  322. package/dist/workstation-catalog.js.map +1 -1
  323. package/dist/workstation.d.ts +69 -14
  324. package/dist/workstation.js +600 -215
  325. package/dist/workstation.js.map +1 -1
  326. package/docs/cli-reference.md +69 -22
  327. package/docs/configuration-and-manifests.md +9 -8
  328. package/docs/prerequisites.md +93 -18
  329. package/docs/repository-governance.md +68 -40
  330. package/docs/spec-workflows-and-agents.md +132 -13
  331. package/docs/troubleshooting.md +32 -2
  332. package/package.json +1 -1
package/DEVELOPER.md CHANGED
@@ -51,32 +51,33 @@ and successful generated-file checks must not be described as those capabilities
51
51
 
52
52
  ## Activation version vector
53
53
 
54
- Current deterministic setup contract, retained by the 0.11.3 CLI patch:
54
+ Current deterministic setup contract, published by Liftoff 0.12.0:
55
55
 
56
56
  ```json
57
57
  {
58
- "liftoffVersion": "0.11.0",
58
+ "liftoffVersion": "0.12.0",
59
59
  "manifestArtifactVersion": 7,
60
60
  "policyVersion": "6",
61
- "activationContractVersion": 2,
62
- "phaseGraphSchemaVersion": 1,
63
- "phaseGraphHash": "ac160e3fc86f3e438141d985658e09f419508b3adbe176ddd13100d5dfdee47c",
64
- "activationStateSchemaVersion": 2,
65
- "evidenceHeaderSchemaVersion": 2,
66
- "approvalEnvelopeSchemaVersion": 2,
61
+ "activationContractVersion": 3,
62
+ "phaseGraphSchemaVersion": 2,
63
+ "phaseGraphHash": "2e214353fe73edeea246dac49aa5126c3d1e50afb3e12801940b661afb853703",
64
+ "activationStateSchemaVersion": 3,
65
+ "evidenceHeaderSchemaVersion": 3,
66
+ "approvalEnvelopeSchemaVersion": 3,
67
67
  "supersessionSchemaVersion": 1,
68
68
  "credentialPolicySchemaVersion": 1
69
69
  }
70
70
  ```
71
71
 
72
72
  `phaseGraphHash` is the lowercase SHA-256 hex digest of the canonical packaged
73
- phase graph bytes. When documenting unreleased work before the final graph is
73
+ 29-phase graph bytes, spanning from local readiness through `bootstrap-workflow-source-ready`
74
+ to final lifecycle disposal. When documenting unreleased work before the final graph is
74
75
  known, use a clear placeholder such as `<sha256-of-canonical-phase-graph-json>`;
75
76
  do not fabricate a historical value.
76
77
 
77
78
  The generated `liftoff.manifest.json` records this as manifest `artifactVersion`
78
79
  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
+ schema version 4 in its own document, not a new required manifest field.
80
81
  Assessment report/catalog, graph, supersession, and credential-policy schemas
81
82
  remain at version 1; normative policy remains 6.
82
83
 
@@ -273,33 +274,23 @@ npm run verify:generated-containers
273
274
  npm run verify:release-identity
274
275
  ```
275
276
 
276
- ## 0.11.3 release checklist
277
+ ## 0.12.1 release checklist
277
278
 
278
279
  - Package metadata, lockfile metadata, `liftoff --version`, and tag agree on
279
- `0.11.3`. 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
280
+ `0.12.1`. Preparing these files is not publication or permission to create a tag.
281
+ - Activation package identity remains `0.12.0`; no phase semantics or graph
281
282
  identity change is introduced by patch-release preparation.
282
- - Release notes identify context-aware update follow-ups, root-aware validation
283
- guidance, and reason-specific preview errors. Mandatory matching preview and
284
- exact-plan approval, schema-3 project-update reports, and exit 2 after committed
285
- but incomplete local revalidation remain unchanged.
283
+ - Release notes identify the verified macOS Homebrew npm global prefix recovery
284
+ in `liftoff upgrade`, binding registry probes, exact installation, pre-write
285
+ rechecks, and replacement verification to the verified Homebrew target prefix.
286
286
  - Manifest writes use artifactVersion 7; readers accept v2-v7.
287
287
  - Policy version is `"6"`; activation contract/state/evidence-header/approval
288
- remain v2. Compatibility metadata and update reports are v3; preview receipts,
288
+ remain v3. Compatibility metadata is v4; preview receipts,
289
289
  transaction approvals, history indexes, and migration journals are v1. Graph,
290
290
  supersession, credential-policy, assessment report, and assessment catalog
291
291
  schemas remain v1.
292
- - The graph hash in code, docs, generated artifacts, compatibility metadata, and
293
- release-integrity tests is
294
- `ac160e3fc86f3e438141d985658e09f419508b3adbe176ddd13100d5dfdee47c`.
295
- - `/liftoff-setup` archives the OpenSpec bootstrap or finalizes the real Spec Kit
296
- B001–B006 bundle locally before separate publication and Phase 0 gates.
297
- - Power Apps and the eight explicitly retired flat-root infrastructure IDs have
298
- no positive new-generation lane. Old API/GenAI project provenance and v1
299
- activation history remain preserved. Only the exact approved migration lane
300
- can create a linked v2 successor; it does not retag historical proof.
301
292
  - Independent infrastructure provenance explicitly admits generation versions
302
- `0.11.0`, `0.11.1`, `0.11.2`, and `0.11.3`, including mixed component histories.
293
+ `0.11.0`, `0.11.1`, `0.11.2`, `0.11.3`, `0.12.0`, and `0.12.1`, including mixed component histories.
303
294
  Unknown releases remain blocked rather than being accepted through a version range.
304
295
  - No setup-skill version exists in manifests, JSON status, docs, or generated
305
296
  integrations.
@@ -430,17 +421,17 @@ and facade use. Packed smoke covers runtime asset lookup outside this checkout.
430
421
  ## Activation completeness and separate follow-up plan
431
422
 
432
423
  The activation engine is not yet an end-to-end production provisioning engine.
433
- Of its 26 declared phases, 10 have built-in handler paths, 2 require an injected
434
- GitHub ruleset adapter that the public CLI does not currently supply, and 14
424
+ Of its 29 declared phases, 11 have built-in handler paths, 2 require an injected
425
+ GitHub ruleset adapter that the public CLI does not currently supply, and 16
435
426
  fall back to an explicit missing-production-adapter blocker.
436
427
 
437
- The missing production phase handlers are `provider-ready`,
438
- `state-path-selected`, `existing-private-path`, `bootstrap-local`,
428
+ The missing production phase handlers are `bootstrap-workflow-source-ready`,
429
+ `provider-ready`, `state-path-selected`, `existing-private-path`, `bootstrap-local`,
439
430
  `runner-ready`, `private-backend-proof`, `remote-import-verified`,
431
+ `application-prerequisites-ready`, `application-artifact-ready`,
440
432
  `application-foundation`, `workflow-source-ready`, `dev-proof`,
441
- `staging-qualified`, `production-rehearsed`, `green-red-proof`, and
442
- `enforcement-approved`. `rulesets-applied` and `live-readback` have adapter
443
- contracts but need production wiring.
433
+ `staging-qualified`, `production-rehearsed`, and `green-red-proof`.
434
+ `rulesets-applied` and `live-readback` have adapter contracts but need production wiring.
444
435
 
445
436
  Built-in handler presence does not establish a complete user journey:
446
437
  approval envelopes are read from disk but no public approval-persistence
package/README.md CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  **Initialize governed GenAI applications and APIs from one
4
4
  interactive CLI.** Liftoff combines reviewable starter projects with OpenSpec or
5
- Spec Kit and integrates GitHub Copilot, Claude Code, or both from the first commit.
5
+ Spec Kit and integrates GitHub Copilot, Claude Code, and Codex in any selected
6
+ combination.
6
7
 
7
8
  [![npm version](https://img.shields.io/npm/v/%40msn-control%2Fliftoff?logo=npm)](https://www.npmjs.com/package/@msn-control/liftoff)
8
9
  [![CI](https://github.com/voyager163/liftoff/actions/workflows/ci.yml/badge.svg)](https://github.com/voyager163/liftoff/actions/workflows/ci.yml)
@@ -27,16 +28,15 @@ cd my-project
27
28
 
28
29
  `liftoff init` asks for workload, spec workflow, agents, readiness, and plan
29
30
  confirmation before writing local files. Repository governance is enabled by
30
- default as a local deterministic handoff. For OpenSpec, `/liftoff-setup` completes,
31
+ default as a deterministic setup handoff. For OpenSpec, `/liftoff-setup` completes,
31
32
  syncs, and archives the generated bootstrap seed. Spec Kit finalizes its one-time
32
33
  bootstrap bundle locally, without an OpenSpec archive or new Git branch.
33
34
  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.
35
+ approvals are authoritative. Setup coordinates reviewed repairs and local readiness,
36
+ then separately approved publication, Azure activation, deployment, and governance.
37
+ Local-only use remains supported. Codex invokes `$liftoff-setup` or selects the native skill.
37
38
 
38
- After the first self-upgrade-capable release is installed globally through npm,
39
- later CLI releases use `liftoff upgrade --check` followed by `liftoff upgrade`.
39
+ After global npm install, later releases use `liftoff upgrade --check` then `liftoff upgrade`.
40
40
  This replaces the CLI only; generated projects use `liftoff update` separately
41
41
  for reviewed project maintenance. Useful project-read-only checks:
42
42
 
@@ -52,15 +52,15 @@ matching plan. Check leaves project bytes unchanged and discloses a preview
52
52
  receipt saved outside the repository. Missing or stale previews block apply.
53
53
  Automation uses `--approve-plan <fingerprint>`; `--json` only selects formatting.
54
54
 
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`.
55
+ Supported activation-v1/v2 migration preserves original records inside the project
56
+ and creates a linked v3 activation. Failed revalidation leaves v3 blocked and
57
+ resumable, not reset to an older contract. Application source, dependencies, schemas,
58
+ containers, environments, documentation, and infrastructure remain project-owned
59
+ and outside template replacement, including `--force`. Topology, additive agent repairs,
60
+ and stateful migration require their own exact preview, backups, and write authority.
60
61
 
61
62
  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.
63
+ Review `liftoff update --check`; `liftoff update --force` removes only exact recorded aliases.
64
64
 
65
65
  ![Liftoff terminal showing interactive workload, workflow, multi-agent, readiness, and safe completion steps](docs/assets/liftoff-terminal.svg)
66
66
 
@@ -77,11 +77,11 @@ PydanticAI invocation foundation without assuming RAG, chat, agents, streaming,
77
77
  fine-tuning, or workflows.
78
78
 
79
79
  Both workloads can use **OpenSpec** or **Spec Kit** with **GitHub Copilot**,
80
- **Claude Code**, or both.
80
+ **Claude Code**, **Codex**, or any combination. Official stable and preview releases
81
+ are accepted; runtime and framework pins remain enforced.
81
82
 
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.
83
+ Power Apps is retired. Existing Power Apps projects receive an unsupported-workload
84
+ error without changing files; `--force` does not provide a conversion path.
85
85
 
86
86
  [Compare workload questions and outputs](docs/workloads.md) |
87
87
  [Choose a spec workflow and agents](docs/spec-workflows-and-agents.md)