@msn-control/liftoff 0.10.4 → 0.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (700) hide show
  1. package/DEVELOPER.md +238 -77
  2. package/README.md +38 -33
  3. package/assets/supported-stack.json +3 -136
  4. package/dist/adapters/azure/governance-assessment.d.ts +2 -0
  5. package/dist/adapters/azure/governance-assessment.js +21 -0
  6. package/dist/adapters/azure/governance-assessment.js.map +1 -0
  7. package/dist/adapters/filesystem/atomic-write.d.ts +2 -0
  8. package/dist/adapters/filesystem/atomic-write.js +74 -0
  9. package/dist/adapters/filesystem/atomic-write.js.map +1 -0
  10. package/dist/adapters/filesystem/errors.d.ts +2 -0
  11. package/dist/adapters/filesystem/errors.js +8 -0
  12. package/dist/adapters/filesystem/errors.js.map +1 -0
  13. package/dist/adapters/filesystem/manifest-file.d.ts +1 -0
  14. package/dist/adapters/filesystem/manifest-file.js +21 -0
  15. package/dist/adapters/filesystem/manifest-file.js.map +1 -0
  16. package/dist/adapters/filesystem/project-config.d.ts +4 -0
  17. package/dist/adapters/filesystem/project-config.js +157 -0
  18. package/dist/adapters/filesystem/project-config.js.map +1 -0
  19. package/dist/adapters/filesystem/project-discovery.d.ts +2 -0
  20. package/dist/adapters/filesystem/project-discovery.js +30 -0
  21. package/dist/adapters/filesystem/project-discovery.js.map +1 -0
  22. package/dist/adapters/filesystem/project-files.d.ts +6 -0
  23. package/dist/adapters/filesystem/project-files.js +68 -0
  24. package/dist/adapters/filesystem/project-files.js.map +1 -0
  25. package/dist/adapters/filesystem/project-lock.d.ts +8 -0
  26. package/dist/adapters/filesystem/project-lock.js +164 -0
  27. package/dist/adapters/filesystem/project-lock.js.map +1 -0
  28. package/dist/adapters/filesystem/project-paths.d.ts +2 -0
  29. package/dist/adapters/filesystem/project-paths.js +60 -0
  30. package/dist/adapters/filesystem/project-paths.js.map +1 -0
  31. package/dist/adapters/filesystem/project-transaction.d.ts +24 -0
  32. package/dist/adapters/filesystem/project-transaction.js +177 -0
  33. package/dist/adapters/filesystem/project-transaction.js.map +1 -0
  34. package/dist/adapters/filesystem/reviewed-update-transaction.d.ts +53 -0
  35. package/dist/adapters/filesystem/reviewed-update-transaction.js +864 -0
  36. package/dist/adapters/filesystem/reviewed-update-transaction.js.map +1 -0
  37. package/dist/adapters/filesystem/update-previews.d.ts +50 -0
  38. package/dist/adapters/filesystem/update-previews.js +613 -0
  39. package/dist/adapters/filesystem/update-previews.js.map +1 -0
  40. package/dist/adapters/git/governance-assessment.d.ts +22 -0
  41. package/dist/adapters/git/governance-assessment.js +161 -0
  42. package/dist/adapters/git/governance-assessment.js.map +1 -0
  43. package/dist/adapters/github/governance-assessment.d.ts +2 -0
  44. package/dist/adapters/github/governance-assessment.js +18 -0
  45. package/dist/adapters/github/governance-assessment.js.map +1 -0
  46. package/dist/adapters/packaged-assets/package-root.d.ts +3 -0
  47. package/dist/adapters/packaged-assets/package-root.js +21 -0
  48. package/dist/adapters/packaged-assets/package-root.js.map +1 -0
  49. package/dist/adapters/packaged-assets/supported-stack.d.ts +4 -0
  50. package/dist/adapters/packaged-assets/supported-stack.js +18 -0
  51. package/dist/adapters/packaged-assets/supported-stack.js.map +1 -0
  52. package/dist/adapters/packaged-assets/template-assets.d.ts +23 -0
  53. package/dist/adapters/packaged-assets/template-assets.js +36 -0
  54. package/dist/adapters/packaged-assets/template-assets.js.map +1 -0
  55. package/dist/adapters/process/shell-command.d.ts +6 -0
  56. package/dist/adapters/process/shell-command.js +27 -0
  57. package/dist/adapters/process/shell-command.js.map +1 -0
  58. package/dist/application/context.d.ts +25 -0
  59. package/dist/application/context.js +2 -0
  60. package/dist/application/context.js.map +1 -0
  61. package/dist/application/diagnose/doctor.d.ts +21 -0
  62. package/dist/application/diagnose/doctor.js +580 -0
  63. package/dist/application/diagnose/doctor.js.map +1 -0
  64. package/dist/application/diagnose/generated-project.d.ts +1 -0
  65. package/dist/application/diagnose/generated-project.js +105 -0
  66. package/dist/application/diagnose/generated-project.js.map +1 -0
  67. package/dist/application/diagnose/validate.d.ts +6 -0
  68. package/dist/application/diagnose/validate.js +27 -0
  69. package/dist/application/diagnose/validate.js.map +1 -0
  70. package/dist/application/initialize/fixture.d.ts +2 -0
  71. package/dist/application/initialize/fixture.js +39 -0
  72. package/dist/application/initialize/fixture.js.map +1 -0
  73. package/dist/application/initialize/inputs.d.ts +3 -0
  74. package/dist/application/initialize/inputs.js +35 -0
  75. package/dist/application/initialize/inputs.js.map +1 -0
  76. package/dist/application/initialize/use-case.d.ts +23 -0
  77. package/dist/application/initialize/use-case.js +360 -0
  78. package/dist/application/initialize/use-case.js.map +1 -0
  79. package/dist/application/migrate/use-case.d.ts +7 -0
  80. package/dist/application/migrate/use-case.js +378 -0
  81. package/dist/application/migrate/use-case.js.map +1 -0
  82. package/dist/application/project/catalog.d.ts +46 -0
  83. package/dist/application/project/catalog.js +12 -0
  84. package/dist/application/project/catalog.js.map +1 -0
  85. package/dist/application/project/manifest.d.ts +2 -0
  86. package/dist/application/project/manifest.js +29 -0
  87. package/dist/application/project/manifest.js.map +1 -0
  88. package/dist/application/project/planning.d.ts +6 -0
  89. package/dist/application/project/planning.js +12 -0
  90. package/dist/application/project/planning.js.map +1 -0
  91. package/dist/application/update/approval.d.ts +39 -0
  92. package/dist/application/update/approval.js +54 -0
  93. package/dist/application/update/approval.js.map +1 -0
  94. package/dist/application/update/command-guidance.d.ts +2 -0
  95. package/dist/application/update/command-guidance.js +14 -0
  96. package/dist/application/update/command-guidance.js.map +1 -0
  97. package/dist/application/update/inspection.d.ts +37 -0
  98. package/dist/application/update/inspection.js +235 -0
  99. package/dist/application/update/inspection.js.map +1 -0
  100. package/dist/application/update/migration-runtime.d.ts +14 -0
  101. package/dist/application/update/migration-runtime.js +178 -0
  102. package/dist/application/update/migration-runtime.js.map +1 -0
  103. package/dist/application/update/output.d.ts +134 -0
  104. package/dist/application/update/output.js +182 -0
  105. package/dist/application/update/output.js.map +1 -0
  106. package/dist/application/update/planning.d.ts +40 -0
  107. package/dist/application/update/planning.js +293 -0
  108. package/dist/application/update/planning.js.map +1 -0
  109. package/dist/application/update/preview.d.ts +49 -0
  110. package/dist/application/update/preview.js +220 -0
  111. package/dist/application/update/preview.js.map +1 -0
  112. package/dist/application/update/protected-source.d.ts +25 -0
  113. package/dist/application/update/protected-source.js +81 -0
  114. package/dist/application/update/protected-source.js.map +1 -0
  115. package/dist/application/update/reporting.d.ts +42 -0
  116. package/dist/application/update/reporting.js +326 -0
  117. package/dist/application/update/reporting.js.map +1 -0
  118. package/dist/application/update/revalidation-plan.d.ts +22 -0
  119. package/dist/application/update/revalidation-plan.js +108 -0
  120. package/dist/application/update/revalidation-plan.js.map +1 -0
  121. package/dist/application/update/revalidation.d.ts +70 -0
  122. package/dist/application/update/revalidation.js +337 -0
  123. package/dist/application/update/revalidation.js.map +1 -0
  124. package/dist/application/update/review-plan.d.ts +25 -0
  125. package/dist/application/update/review-plan.js +89 -0
  126. package/dist/application/update/review-plan.js.map +1 -0
  127. package/dist/application/update/transaction-approval.d.ts +29 -0
  128. package/dist/application/update/transaction-approval.js +82 -0
  129. package/dist/application/update/transaction-approval.js.map +1 -0
  130. package/dist/application/update/use-case.d.ts +9 -0
  131. package/dist/application/update/use-case.js +271 -0
  132. package/dist/application/update/use-case.js.map +1 -0
  133. package/dist/application/update/write-plan.d.ts +15 -0
  134. package/dist/application/update/write-plan.js +115 -0
  135. package/dist/application/update/write-plan.js.map +1 -0
  136. package/dist/application/upgrade/use-case.d.ts +6 -0
  137. package/dist/application/upgrade/use-case.js +82 -0
  138. package/dist/application/upgrade/use-case.js.map +1 -0
  139. package/dist/args.d.ts +5 -65
  140. package/dist/args.js +4 -472
  141. package/dist/args.js.map +1 -1
  142. package/dist/artifact-lifecycle.d.ts +1 -21
  143. package/dist/artifact-lifecycle.js +1 -75
  144. package/dist/artifact-lifecycle.js.map +1 -1
  145. package/dist/catalogs.d.ts +1 -50
  146. package/dist/catalogs.js +1 -472
  147. package/dist/catalogs.js.map +1 -1
  148. package/dist/cli/args/contracts.d.ts +51 -0
  149. package/dist/cli/args/contracts.js +2 -0
  150. package/dist/cli/args/contracts.js.map +1 -0
  151. package/dist/cli/args/definitions.d.ts +6 -0
  152. package/dist/cli/args/definitions.js +188 -0
  153. package/dist/cli/args/definitions.js.map +1 -0
  154. package/dist/cli/args/help.d.ts +5 -0
  155. package/dist/cli/args/help.js +142 -0
  156. package/dist/cli/args/help.js.map +1 -0
  157. package/dist/cli/args/parser.d.ts +5 -0
  158. package/dist/cli/args/parser.js +160 -0
  159. package/dist/cli/args/parser.js.map +1 -0
  160. package/dist/cli/args/readers.d.ts +4 -0
  161. package/dist/cli/args/readers.js +19 -0
  162. package/dist/cli/args/readers.js.map +1 -0
  163. package/dist/cli/commands/diagnose.d.ts +4 -0
  164. package/dist/cli/commands/diagnose.js +12 -0
  165. package/dist/cli/commands/diagnose.js.map +1 -0
  166. package/dist/cli/commands/dispatch.d.ts +3 -0
  167. package/dist/cli/commands/dispatch.js +94 -0
  168. package/dist/cli/commands/dispatch.js.map +1 -0
  169. package/dist/cli/commands/help.d.ts +3 -0
  170. package/dist/cli/commands/help.js +32 -0
  171. package/dist/cli/commands/help.js.map +1 -0
  172. package/dist/cli/commands/helpers.d.ts +8 -0
  173. package/dist/cli/commands/helpers.js +97 -0
  174. package/dist/cli/commands/helpers.js.map +1 -0
  175. package/dist/cli/commands/initialize.d.ts +3 -0
  176. package/dist/cli/commands/initialize.js +7 -0
  177. package/dist/cli/commands/initialize.js.map +1 -0
  178. package/dist/cli/commands/migrate.d.ts +3 -0
  179. package/dist/cli/commands/migrate.js +8 -0
  180. package/dist/cli/commands/migrate.js.map +1 -0
  181. package/dist/cli/commands/plan.d.ts +3 -0
  182. package/dist/cli/commands/plan.js +34 -0
  183. package/dist/cli/commands/plan.js.map +1 -0
  184. package/dist/cli/commands/reference.d.ts +5 -0
  185. package/dist/cli/commands/reference.js +43 -0
  186. package/dist/cli/commands/reference.js.map +1 -0
  187. package/dist/cli/commands/update.d.ts +3 -0
  188. package/dist/cli/commands/update.js +10 -0
  189. package/dist/cli/commands/update.js.map +1 -0
  190. package/dist/cli/commands/upgrade.d.ts +3 -0
  191. package/dist/cli/commands/upgrade.js +7 -0
  192. package/dist/cli/commands/upgrade.js.map +1 -0
  193. package/dist/cli/context.d.ts +1 -0
  194. package/dist/cli/context.js +2 -0
  195. package/dist/cli/context.js.map +1 -0
  196. package/dist/cli/project-options.d.ts +3 -0
  197. package/dist/cli/project-options.js +41 -0
  198. package/dist/cli/project-options.js.map +1 -0
  199. package/dist/cli.d.ts +3 -3
  200. package/dist/cli.js +2 -2
  201. package/dist/cli.js.map +1 -1
  202. package/dist/commands.d.ts +4 -35
  203. package/dist/commands.js +3 -2969
  204. package/dist/commands.js.map +1 -1
  205. package/dist/container-validation.d.ts +1 -1
  206. package/dist/domain/governance/activation/approvals.d.ts +351 -0
  207. package/dist/domain/governance/activation/approvals.js +528 -0
  208. package/dist/domain/governance/activation/approvals.js.map +1 -0
  209. package/dist/domain/governance/activation/canonical-json.d.ts +4 -0
  210. package/dist/domain/governance/activation/canonical-json.js +39 -0
  211. package/dist/domain/governance/activation/canonical-json.js.map +1 -0
  212. package/dist/domain/governance/activation/capabilities.d.ts +7 -0
  213. package/dist/domain/governance/activation/capabilities.js +33 -0
  214. package/dist/domain/governance/activation/capabilities.js.map +1 -0
  215. package/dist/domain/governance/activation/evidence.d.ts +63 -0
  216. package/dist/domain/governance/activation/evidence.js +444 -0
  217. package/dist/domain/governance/activation/evidence.js.map +1 -0
  218. package/dist/domain/governance/activation/graph.d.ts +397 -0
  219. package/dist/domain/governance/activation/graph.js +441 -0
  220. package/dist/domain/governance/activation/graph.js.map +1 -0
  221. package/dist/domain/governance/activation/inputs.d.ts +25 -0
  222. package/dist/domain/governance/activation/inputs.js +63 -0
  223. package/dist/domain/governance/activation/inputs.js.map +1 -0
  224. package/dist/domain/governance/activation/operations.d.ts +19 -0
  225. package/dist/domain/governance/activation/operations.js +181 -0
  226. package/dist/domain/governance/activation/operations.js.map +1 -0
  227. package/dist/domain/governance/activation/readiness.d.ts +27 -0
  228. package/dist/domain/governance/activation/readiness.js +269 -0
  229. package/dist/domain/governance/activation/readiness.js.map +1 -0
  230. package/dist/domain/governance/activation/types.d.ts +399 -0
  231. package/dist/domain/governance/activation/types.js +109 -0
  232. package/dist/domain/governance/activation/types.js.map +1 -0
  233. package/dist/domain/governance/activation/validators.d.ts +22 -0
  234. package/dist/domain/governance/activation/validators.js +1347 -0
  235. package/dist/domain/governance/activation/validators.js.map +1 -0
  236. package/dist/domain/governance/assessment/catalog.d.ts +14 -0
  237. package/dist/domain/governance/assessment/catalog.js +105 -0
  238. package/dist/domain/governance/assessment/catalog.js.map +1 -0
  239. package/dist/domain/governance/assessment/errors.d.ts +10 -0
  240. package/dist/domain/governance/assessment/errors.js +22 -0
  241. package/dist/domain/governance/assessment/errors.js.map +1 -0
  242. package/dist/domain/governance/assessment/index.d.ts +8 -0
  243. package/dist/domain/governance/assessment/index.js +9 -0
  244. package/dist/domain/governance/assessment/index.js.map +1 -0
  245. package/dist/domain/governance/assessment/live-normalize.d.ts +19 -0
  246. package/dist/domain/governance/assessment/live-normalize.js +403 -0
  247. package/dist/domain/governance/assessment/live-normalize.js.map +1 -0
  248. package/dist/domain/governance/assessment/predicates.d.ts +36 -0
  249. package/dist/domain/governance/assessment/predicates.js +545 -0
  250. package/dist/domain/governance/assessment/predicates.js.map +1 -0
  251. package/dist/domain/governance/assessment/report.d.ts +23 -0
  252. package/dist/domain/governance/assessment/report.js +266 -0
  253. package/dist/domain/governance/assessment/report.js.map +1 -0
  254. package/dist/domain/governance/assessment/sanitize.d.ts +8 -0
  255. package/dist/domain/governance/assessment/sanitize.js +60 -0
  256. package/dist/domain/governance/assessment/sanitize.js.map +1 -0
  257. package/dist/domain/governance/assessment/types.d.ts +174 -0
  258. package/dist/domain/governance/assessment/types.js +13 -0
  259. package/dist/domain/governance/assessment/types.js.map +1 -0
  260. package/dist/domain/governance/assessment/yaml.d.ts +6 -0
  261. package/dist/domain/governance/assessment/yaml.js +30 -0
  262. package/dist/domain/governance/assessment/yaml.js.map +1 -0
  263. package/dist/domain/governance/policy/identity.d.ts +64 -0
  264. package/dist/domain/governance/policy/identity.js +112 -0
  265. package/dist/domain/governance/policy/identity.js.map +1 -0
  266. package/dist/domain/migration/dependencies.d.ts +7 -0
  267. package/dist/domain/migration/dependencies.js +221 -0
  268. package/dist/domain/migration/dependencies.js.map +1 -0
  269. package/dist/domain/migration/inventory.d.ts +3 -0
  270. package/dist/domain/migration/inventory.js +15 -0
  271. package/dist/domain/migration/inventory.js.map +1 -0
  272. package/dist/domain/project/artifact-lifecycle.d.ts +69 -0
  273. package/dist/domain/project/artifact-lifecycle.js +137 -0
  274. package/dist/domain/project/artifact-lifecycle.js.map +1 -0
  275. package/dist/domain/project/catalog.d.ts +48 -0
  276. package/dist/domain/project/catalog.js +507 -0
  277. package/dist/domain/project/catalog.js.map +1 -0
  278. package/dist/domain/project/contracts.d.ts +247 -0
  279. package/dist/domain/project/contracts.js +2 -0
  280. package/dist/domain/project/contracts.js.map +1 -0
  281. package/dist/domain/project/errors.d.ts +3 -0
  282. package/dist/domain/project/errors.js +7 -0
  283. package/dist/domain/project/errors.js.map +1 -0
  284. package/dist/domain/project/infrastructure-layout.d.ts +26 -0
  285. package/dist/domain/project/infrastructure-layout.js +125 -0
  286. package/dist/domain/project/infrastructure-layout.js.map +1 -0
  287. package/dist/domain/project/inputs.d.ts +21 -0
  288. package/dist/domain/project/inputs.js +41 -0
  289. package/dist/domain/project/inputs.js.map +1 -0
  290. package/dist/domain/project/manifest/artifacts.d.ts +8 -0
  291. package/dist/domain/project/manifest/artifacts.js +150 -0
  292. package/dist/domain/project/manifest/artifacts.js.map +1 -0
  293. package/dist/domain/project/manifest/context.d.ts +13 -0
  294. package/dist/domain/project/manifest/context.js +2 -0
  295. package/dist/domain/project/manifest/context.js.map +1 -0
  296. package/dist/domain/project/manifest/fields.d.ts +6 -0
  297. package/dist/domain/project/manifest/fields.js +36 -0
  298. package/dist/domain/project/manifest/fields.js.map +1 -0
  299. package/dist/domain/project/manifest/governance.d.ts +8 -0
  300. package/dist/domain/project/manifest/governance.js +161 -0
  301. package/dist/domain/project/manifest/governance.js.map +1 -0
  302. package/dist/domain/project/manifest/project-identity.d.ts +6 -0
  303. package/dist/domain/project/manifest/project-identity.js +273 -0
  304. package/dist/domain/project/manifest/project-identity.js.map +1 -0
  305. package/dist/domain/project/manifest/reader.d.ts +9 -0
  306. package/dist/domain/project/manifest/reader.js +141 -0
  307. package/dist/domain/project/manifest/reader.js.map +1 -0
  308. package/dist/domain/project/paths.d.ts +2 -0
  309. package/dist/domain/project/paths.js +29 -0
  310. package/dist/domain/project/paths.js.map +1 -0
  311. package/dist/domain/project/planning.d.ts +19 -0
  312. package/dist/domain/project/planning.js +329 -0
  313. package/dist/domain/project/planning.js.map +1 -0
  314. package/dist/domain/project/retired-workload.d.ts +4 -0
  315. package/dist/domain/project/retired-workload.js +18 -0
  316. package/dist/domain/project/retired-workload.js.map +1 -0
  317. package/dist/domain/project/reviewed-update-artifacts.d.ts +2 -0
  318. package/dist/domain/project/reviewed-update-artifacts.js +3 -0
  319. package/dist/domain/project/reviewed-update-artifacts.js.map +1 -0
  320. package/dist/domain/project/supported-stack.d.ts +113 -0
  321. package/dist/domain/project/supported-stack.js +426 -0
  322. package/dist/domain/project/supported-stack.js.map +1 -0
  323. package/dist/domain/workstation/constraints.d.ts +6 -0
  324. package/dist/domain/workstation/constraints.js +8 -0
  325. package/dist/domain/workstation/constraints.js.map +1 -0
  326. package/dist/file-system.d.ts +10 -44
  327. package/dist/file-system.js +9 -1245
  328. package/dist/file-system.js.map +1 -1
  329. package/dist/framework-adapters.d.ts +1 -1
  330. package/dist/framework-validation.d.ts +1 -1
  331. package/dist/framework-validation.js +1 -1
  332. package/dist/framework-validation.js.map +1 -1
  333. package/dist/genai-templates.d.ts +2 -9
  334. package/dist/genai-templates.js +4 -5
  335. package/dist/genai-templates.js.map +1 -1
  336. package/dist/generators/common/artifacts.d.ts +6 -0
  337. package/dist/generators/common/artifacts.js +30 -0
  338. package/dist/generators/common/artifacts.js.map +1 -0
  339. package/dist/generators/common/base.d.ts +17 -0
  340. package/dist/generators/common/base.js +425 -0
  341. package/dist/generators/common/base.js.map +1 -0
  342. package/dist/generators/common/dotenv-validation.d.ts +2 -0
  343. package/dist/generators/common/dotenv-validation.js +80 -0
  344. package/dist/generators/common/dotenv-validation.js.map +1 -0
  345. package/dist/generators/common/environments.d.ts +3 -0
  346. package/dist/generators/common/environments.js +15 -0
  347. package/dist/generators/common/environments.js.map +1 -0
  348. package/dist/generators/common/frontend.d.ts +15 -0
  349. package/dist/generators/common/frontend.js +166 -0
  350. package/dist/generators/common/frontend.js.map +1 -0
  351. package/dist/generators/common/python-settings.d.ts +2 -0
  352. package/dist/generators/common/python-settings.js +70 -0
  353. package/dist/generators/common/python-settings.js.map +1 -0
  354. package/dist/generators/common/spec-workflow.d.ts +28 -0
  355. package/dist/generators/common/spec-workflow.js +567 -0
  356. package/dist/generators/common/spec-workflow.js.map +1 -0
  357. package/dist/generators/common/values.d.ts +13 -0
  358. package/dist/generators/common/values.js +16 -0
  359. package/dist/generators/common/values.js.map +1 -0
  360. package/dist/generators/containers/compose.d.ts +7 -0
  361. package/dist/generators/containers/compose.js +196 -0
  362. package/dist/generators/containers/compose.js.map +1 -0
  363. package/dist/generators/containers/context.d.ts +1 -0
  364. package/dist/generators/containers/context.js +43 -0
  365. package/dist/generators/containers/context.js.map +1 -0
  366. package/dist/generators/containers/images.d.ts +7 -0
  367. package/dist/generators/containers/images.js +119 -0
  368. package/dist/generators/containers/images.js.map +1 -0
  369. package/dist/generators/context.d.ts +42 -0
  370. package/dist/generators/context.js +38 -0
  371. package/dist/generators/context.js.map +1 -0
  372. package/dist/generators/genai/backend.d.ts +20 -0
  373. package/dist/generators/genai/backend.js +667 -0
  374. package/dist/generators/genai/backend.js.map +1 -0
  375. package/dist/generators/genai/configuration.d.ts +3 -0
  376. package/dist/generators/genai/configuration.js +43 -0
  377. package/dist/generators/genai/configuration.js.map +1 -0
  378. package/dist/generators/genai/database.d.ts +7 -0
  379. package/dist/generators/genai/database.js +71 -0
  380. package/dist/generators/genai/database.js.map +1 -0
  381. package/dist/generators/genai/functions.d.ts +15 -0
  382. package/dist/generators/genai/functions.js +156 -0
  383. package/dist/generators/genai/functions.js.map +1 -0
  384. package/dist/generators/genai/index.d.ts +8 -0
  385. package/dist/generators/genai/index.js +11 -0
  386. package/dist/generators/genai/index.js.map +1 -0
  387. package/dist/generators/genai/patterns.d.ts +9 -0
  388. package/dist/generators/genai/patterns.js +309 -0
  389. package/dist/generators/genai/patterns.js.map +1 -0
  390. package/dist/generators/infrastructure/azure.d.ts +18 -0
  391. package/dist/generators/infrastructure/azure.js +655 -0
  392. package/dist/generators/infrastructure/azure.js.map +1 -0
  393. package/dist/generators/infrastructure/names.d.ts +23 -0
  394. package/dist/generators/infrastructure/names.js +51 -0
  395. package/dist/generators/infrastructure/names.js.map +1 -0
  396. package/dist/generators/standard/configuration.d.ts +3 -0
  397. package/dist/generators/standard/configuration.js +26 -0
  398. package/dist/generators/standard/configuration.js.map +1 -0
  399. package/dist/generators/standard/go.d.ts +17 -0
  400. package/dist/generators/standard/go.js +338 -0
  401. package/dist/generators/standard/go.js.map +1 -0
  402. package/dist/generators/standard/index.d.ts +12 -0
  403. package/dist/generators/standard/index.js +12 -0
  404. package/dist/generators/standard/index.js.map +1 -0
  405. package/dist/generators/standard/node.d.ts +20 -0
  406. package/dist/generators/standard/node.js +314 -0
  407. package/dist/generators/standard/node.js.map +1 -0
  408. package/dist/generators/standard/python.d.ts +18 -0
  409. package/dist/generators/standard/python.js +191 -0
  410. package/dist/generators/standard/python.js.map +1 -0
  411. package/dist/go-template-assets.js +3 -3
  412. package/dist/go-template-assets.js.map +1 -1
  413. package/dist/governance-activation/activation-state.d.ts +1 -1
  414. package/dist/governance-activation/activation-state.js +49 -9
  415. package/dist/governance-activation/activation-state.js.map +1 -1
  416. package/dist/governance-activation/approvals.d.ts +1 -188
  417. package/dist/governance-activation/approvals.js +1 -507
  418. package/dist/governance-activation/approvals.js.map +1 -1
  419. package/dist/governance-activation/canonical-json.d.ts +1 -3
  420. package/dist/governance-activation/canonical-json.js +1 -35
  421. package/dist/governance-activation/canonical-json.js.map +1 -1
  422. package/dist/governance-activation/commands.d.ts +6 -1
  423. package/dist/governance-activation/commands.js +135 -107
  424. package/dist/governance-activation/commands.js.map +1 -1
  425. package/dist/governance-activation/compatibility.d.ts +30 -5
  426. package/dist/governance-activation/compatibility.js +74 -8
  427. package/dist/governance-activation/compatibility.js.map +1 -1
  428. package/dist/governance-activation/credentials.d.ts +3 -3
  429. package/dist/governance-activation/credentials.js +5 -5
  430. package/dist/governance-activation/credentials.js.map +1 -1
  431. package/dist/governance-activation/doctor.d.ts +1 -1
  432. package/dist/governance-activation/doctor.js +59 -100
  433. package/dist/governance-activation/doctor.js.map +1 -1
  434. package/dist/governance-activation/evidence.d.ts +1 -49
  435. package/dist/governance-activation/evidence.js +1 -245
  436. package/dist/governance-activation/evidence.js.map +1 -1
  437. package/dist/governance-activation/git-ignore.d.ts +9 -0
  438. package/dist/governance-activation/git-ignore.js +76 -0
  439. package/dist/governance-activation/git-ignore.js.map +1 -0
  440. package/dist/governance-activation/graph.d.ts +1 -397
  441. package/dist/governance-activation/graph.js +1 -440
  442. package/dist/governance-activation/graph.js.map +1 -1
  443. package/dist/governance-activation/historical-state.d.ts +81 -0
  444. package/dist/governance-activation/historical-state.js +817 -0
  445. package/dist/governance-activation/historical-state.js.map +1 -0
  446. package/dist/governance-activation/history-contracts.d.ts +109 -0
  447. package/dist/governance-activation/history-contracts.js +303 -0
  448. package/dist/governance-activation/history-contracts.js.map +1 -0
  449. package/dist/governance-activation/identity.d.ts +1 -35
  450. package/dist/governance-activation/identity.js +1 -88
  451. package/dist/governance-activation/identity.js.map +1 -1
  452. package/dist/governance-activation/index.d.ts +3 -0
  453. package/dist/governance-activation/index.js +3 -0
  454. package/dist/governance-activation/index.js.map +1 -1
  455. package/dist/governance-activation/inputs.d.ts +10 -0
  456. package/dist/governance-activation/inputs.js +158 -0
  457. package/dist/governance-activation/inputs.js.map +1 -0
  458. package/dist/governance-activation/migration-history.d.ts +97 -0
  459. package/dist/governance-activation/migration-history.js +388 -0
  460. package/dist/governance-activation/migration-history.js.map +1 -0
  461. package/dist/governance-activation/migration.d.ts +4 -3
  462. package/dist/governance-activation/migration.js +14 -6
  463. package/dist/governance-activation/migration.js.map +1 -1
  464. package/dist/governance-activation/phase-bootstrap-state.d.ts +3 -0
  465. package/dist/governance-activation/phase-bootstrap-state.js +128 -0
  466. package/dist/governance-activation/phase-bootstrap-state.js.map +1 -0
  467. package/dist/governance-activation/phase-discovery.d.ts +2 -0
  468. package/dist/governance-activation/phase-discovery.js +88 -0
  469. package/dist/governance-activation/phase-discovery.js.map +1 -0
  470. package/dist/governance-activation/phase-governance.d.ts +4 -0
  471. package/dist/governance-activation/phase-governance.js +141 -0
  472. package/dist/governance-activation/phase-governance.js.map +1 -0
  473. package/dist/governance-activation/phase-publication.d.ts +8 -0
  474. package/dist/governance-activation/phase-publication.js +318 -0
  475. package/dist/governance-activation/phase-publication.js.map +1 -0
  476. package/dist/governance-activation/proof-records.d.ts +3 -0
  477. package/dist/governance-activation/proof-records.js +78 -0
  478. package/dist/governance-activation/proof-records.js.map +1 -0
  479. package/dist/governance-activation/read-only.d.ts +30 -0
  480. package/dist/governance-activation/read-only.js +33 -0
  481. package/dist/governance-activation/read-only.js.map +1 -0
  482. package/dist/governance-activation/readiness.d.ts +1 -25
  483. package/dist/governance-activation/readiness.js +1 -222
  484. package/dist/governance-activation/readiness.js.map +1 -1
  485. package/dist/governance-activation/reconciliation.d.ts +1 -1
  486. package/dist/governance-activation/reconciliation.js +3 -3
  487. package/dist/governance-activation/reconciliation.js.map +1 -1
  488. package/dist/governance-activation/release-integrity.d.ts +1 -1
  489. package/dist/governance-activation/release-integrity.js +2 -2
  490. package/dist/governance-activation/release-integrity.js.map +1 -1
  491. package/dist/governance-activation/seed-lifecycle.d.ts +36 -6
  492. package/dist/governance-activation/seed-lifecycle.js +444 -77
  493. package/dist/governance-activation/seed-lifecycle.js.map +1 -1
  494. package/dist/governance-activation/source-of-truth.d.ts +5 -3
  495. package/dist/governance-activation/source-of-truth.js +32 -52
  496. package/dist/governance-activation/source-of-truth.js.map +1 -1
  497. package/dist/governance-activation/spec-kit-seed.d.ts +9 -0
  498. package/dist/governance-activation/spec-kit-seed.js +43 -0
  499. package/dist/governance-activation/spec-kit-seed.js.map +1 -0
  500. package/dist/governance-activation/task-projection.d.ts +1 -1
  501. package/dist/governance-activation/transition-planning.d.ts +17 -0
  502. package/dist/governance-activation/transition-planning.js +259 -0
  503. package/dist/governance-activation/transition-planning.js.map +1 -0
  504. package/dist/governance-activation/transition-ports.d.ts +150 -0
  505. package/dist/governance-activation/transition-ports.js +2 -0
  506. package/dist/governance-activation/transition-ports.js.map +1 -0
  507. package/dist/governance-activation/transition-process.d.ts +7 -0
  508. package/dist/governance-activation/transition-process.js +21 -0
  509. package/dist/governance-activation/transition-process.js.map +1 -0
  510. package/dist/governance-activation/transition-records.d.ts +56 -0
  511. package/dist/governance-activation/transition-records.js +208 -0
  512. package/dist/governance-activation/transition-records.js.map +1 -0
  513. package/dist/governance-activation/transitions.d.ts +14 -167
  514. package/dist/governance-activation/transitions.js +173 -2061
  515. package/dist/governance-activation/transitions.js.map +1 -1
  516. package/dist/governance-activation/types.d.ts +1 -390
  517. package/dist/governance-activation/types.js +1 -107
  518. package/dist/governance-activation/types.js.map +1 -1
  519. package/dist/governance-activation/validators.d.ts +1 -17
  520. package/dist/governance-activation/validators.js +1 -1304
  521. package/dist/governance-activation/validators.js.map +1 -1
  522. package/dist/governance-assessment/catalog.d.ts +1 -2
  523. package/dist/governance-assessment/catalog.js +18 -85
  524. package/dist/governance-assessment/catalog.js.map +1 -1
  525. package/dist/governance-assessment/command.d.ts +1 -1
  526. package/dist/governance-assessment/command.js +8 -12
  527. package/dist/governance-assessment/command.js.map +1 -1
  528. package/dist/governance-assessment/engine.d.ts +6 -11
  529. package/dist/governance-assessment/engine.js +490 -114
  530. package/dist/governance-assessment/engine.js.map +1 -1
  531. package/dist/governance-assessment/live-normalize.d.ts +1 -19
  532. package/dist/governance-assessment/live-normalize.js +1 -402
  533. package/dist/governance-assessment/live-normalize.js.map +1 -1
  534. package/dist/governance-assessment/live-transport.d.ts +2 -6
  535. package/dist/governance-assessment/live-transport.js +10 -22
  536. package/dist/governance-assessment/live-transport.js.map +1 -1
  537. package/dist/governance-assessment/live.js +55 -5
  538. package/dist/governance-assessment/live.js.map +1 -1
  539. package/dist/governance-assessment/predicates.d.ts +1 -27
  540. package/dist/governance-assessment/predicates.js +1 -329
  541. package/dist/governance-assessment/predicates.js.map +1 -1
  542. package/dist/governance-assessment/project.d.ts +20 -17
  543. package/dist/governance-assessment/project.js +101 -151
  544. package/dist/governance-assessment/project.js.map +1 -1
  545. package/dist/governance-assessment/readers.d.ts +1 -5
  546. package/dist/governance-assessment/readers.js +5 -13
  547. package/dist/governance-assessment/readers.js.map +1 -1
  548. package/dist/governance-assessment/report.d.ts +1 -23
  549. package/dist/governance-assessment/report.js +1 -265
  550. package/dist/governance-assessment/report.js.map +1 -1
  551. package/dist/governance-assessment/sanitize.d.ts +1 -8
  552. package/dist/governance-assessment/sanitize.js +1 -56
  553. package/dist/governance-assessment/sanitize.js.map +1 -1
  554. package/dist/governance-assessment/types.d.ts +1 -173
  555. package/dist/governance-assessment/types.js +1 -12
  556. package/dist/governance-assessment/types.js.map +1 -1
  557. package/dist/governance-assessment/yaml.d.ts +1 -6
  558. package/dist/governance-assessment/yaml.js +1 -29
  559. package/dist/governance-assessment/yaml.js.map +1 -1
  560. package/dist/init-filesystem.d.ts +1 -1
  561. package/dist/init-filesystem.js +126 -174
  562. package/dist/init-filesystem.js.map +1 -1
  563. package/dist/interactive.d.ts +2 -2
  564. package/dist/interactive.js +42 -41
  565. package/dist/interactive.js.map +1 -1
  566. package/dist/migrate-plan.d.ts +1 -1
  567. package/dist/migrate-plan.js +14 -8
  568. package/dist/migrate-plan.js.map +1 -1
  569. package/dist/npm-template-assets.js +5 -4
  570. package/dist/npm-template-assets.js.map +1 -1
  571. package/dist/openspec-profile.d.ts +1 -1
  572. package/dist/opentofu-template-assets.js +3 -3
  573. package/dist/opentofu-template-assets.js.map +1 -1
  574. package/dist/package-identity.d.ts +3 -0
  575. package/dist/package-identity.js +13 -2
  576. package/dist/package-identity.js.map +1 -1
  577. package/dist/planner.d.ts +1 -19
  578. package/dist/planner.js +1 -565
  579. package/dist/planner.js.map +1 -1
  580. package/dist/process-runner.d.ts +1 -1
  581. package/dist/project-dependencies.d.ts +5 -3
  582. package/dist/project-dependencies.js +74 -63
  583. package/dist/project-dependencies.js.map +1 -1
  584. package/dist/published-verifier.js +61 -30
  585. package/dist/published-verifier.js.map +1 -1
  586. package/dist/python-template-assets.js +6 -9
  587. package/dist/python-template-assets.js.map +1 -1
  588. package/dist/reconcile.d.ts +1 -1
  589. package/dist/reconcile.js +2 -2
  590. package/dist/reconcile.js.map +1 -1
  591. package/dist/repository-governance.d.ts +5 -2
  592. package/dist/repository-governance.js +140 -113
  593. package/dist/repository-governance.js.map +1 -1
  594. package/dist/runtime.js +1 -1
  595. package/dist/runtime.js.map +1 -1
  596. package/dist/scan.d.ts +6 -2
  597. package/dist/scan.js +78 -30
  598. package/dist/scan.js.map +1 -1
  599. package/dist/self-upgrade.d.ts +1 -1
  600. package/dist/self-upgrade.js +20 -7
  601. package/dist/self-upgrade.js.map +1 -1
  602. package/dist/stable-release.js +7 -1
  603. package/dist/stable-release.js.map +1 -1
  604. package/dist/standard-templates.d.ts +2 -2
  605. package/dist/standard-templates.js +6 -841
  606. package/dist/standard-templates.js.map +1 -1
  607. package/dist/supported-stack.d.ts +3 -115
  608. package/dist/supported-stack.js +4 -438
  609. package/dist/supported-stack.js.map +1 -1
  610. package/dist/telemetry/index.d.ts +1 -1
  611. package/dist/templates.d.ts +10 -20
  612. package/dist/templates.js +52 -3261
  613. package/dist/templates.js.map +1 -1
  614. package/dist/types.d.ts +1 -263
  615. package/dist/types.js +1 -1
  616. package/dist/types.js.map +1 -1
  617. package/dist/version.js +2 -6
  618. package/dist/version.js.map +1 -1
  619. package/dist/workstation-catalog.d.ts +5 -2
  620. package/dist/workstation-catalog.js +33 -2
  621. package/dist/workstation-catalog.js.map +1 -1
  622. package/dist/workstation.d.ts +4 -3
  623. package/dist/workstation.js +86 -32
  624. package/dist/workstation.js.map +1 -1
  625. package/docs/assets/liftoff-terminal.svg +3 -3
  626. package/docs/azure-deployment.md +107 -10
  627. package/docs/cli-reference.md +144 -35
  628. package/docs/configuration-and-manifests.md +152 -35
  629. package/docs/existing-repositories.md +48 -12
  630. package/docs/getting-started.md +44 -31
  631. package/docs/prerequisites.md +34 -35
  632. package/docs/project-structure.md +39 -46
  633. package/docs/repository-governance.md +96 -26
  634. package/docs/safety-and-consent.md +90 -28
  635. package/docs/spec-workflows-and-agents.md +31 -28
  636. package/docs/supported-stack.md +11 -9
  637. package/docs/troubleshooting.md +114 -54
  638. package/docs/workloads.md +52 -67
  639. package/package.json +4 -7
  640. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/UPSTREAM_LICENSE.txt +0 -21
  641. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/catalog.json +0 -520
  642. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/packaged/gitignore +0 -27
  643. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/README.md +0 -25
  644. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/components.json +0 -22
  645. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/eslint.config.js +0 -23
  646. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/index.html +0 -13
  647. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package-lock.json +0 -6156
  648. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/package.json +0 -60
  649. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/public/power-apps.svg +0 -55
  650. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/App.tsx +0 -17
  651. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/assets/react.svg +0 -1
  652. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/mode-toggle.tsx +0 -37
  653. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/badge.tsx +0 -46
  654. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/button.tsx +0 -60
  655. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/calendar.tsx +0 -211
  656. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/card.tsx +0 -92
  657. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/chart.tsx +0 -355
  658. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/checkbox.tsx +0 -32
  659. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/command.tsx +0 -184
  660. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dialog.tsx +0 -141
  661. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/dropdown-menu.tsx +0 -257
  662. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/input.tsx +0 -21
  663. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/label.tsx +0 -22
  664. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/popover.tsx +0 -46
  665. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/progress.tsx +0 -29
  666. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/select.tsx +0 -185
  667. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/separator.tsx +0 -26
  668. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/skeleton.tsx +0 -13
  669. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/table.tsx +0 -114
  670. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tabs.tsx +0 -66
  671. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/textarea.tsx +0 -18
  672. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/components/ui/tooltip.tsx +0 -61
  673. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/hooks/use-theme.ts +0 -11
  674. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/index.css +0 -131
  675. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/lib/utils.ts +0 -6
  676. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/main.tsx +0 -10
  677. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/_layout.tsx +0 -31
  678. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/home.tsx +0 -59
  679. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/pages/not-found.tsx +0 -14
  680. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/query-provider.tsx +0 -26
  681. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/sonner-provider.tsx +0 -23
  682. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/providers/theme-provider.tsx +0 -64
  683. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/src/router.tsx +0 -24
  684. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.app.json +0 -34
  685. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.json +0 -13
  686. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/tsconfig.node.json +0 -26
  687. package/assets/power-apps-code-app/3438c352483e40982f6c5c0fc36fd71f8e7adbbb/starter/vite.config.ts +0 -19
  688. package/assets/power-apps-code-app/README.md +0 -27
  689. package/dist/code-apps-plugin.d.ts +0 -13
  690. package/dist/code-apps-plugin.js +0 -69
  691. package/dist/code-apps-plugin.js.map +0 -1
  692. package/dist/power-apps-assets.d.ts +0 -30
  693. package/dist/power-apps-assets.js +0 -131
  694. package/dist/power-apps-assets.js.map +0 -1
  695. package/dist/power-apps-templates.d.ts +0 -3
  696. package/dist/power-apps-templates.js +0 -177
  697. package/dist/power-apps-templates.js.map +0 -1
  698. package/dist/power-apps-validation.d.ts +0 -1
  699. package/dist/power-apps-validation.js +0 -79
  700. package/dist/power-apps-validation.js.map +0 -1
package/DEVELOPER.md CHANGED
@@ -3,21 +3,67 @@
3
3
  This guide covers release-owned compatibility, deterministic setup, and package
4
4
  publishing. General contribution setup remains in [CONTRIBUTING.md](CONTRIBUTING.md).
5
5
 
6
+ ## Stabilization acceptance matrix
7
+
8
+ The `stabilize-and-modularize-liftoff` change separates retirement, mechanical
9
+ extraction, and behavior corrections. This matrix identifies acceptance targets,
10
+ not a claim of production readiness. Its OpenSpec task checklist is the progress
11
+ authority; the locations below identify the extracted implementation, not its
12
+ temporary compatibility facades.
13
+
14
+ | Capability | Canonical implementation area under `src/` | Acceptance evidence | Change kind |
15
+ | --- | --- | --- | --- |
16
+ | `liftoff-cli-workflow` | `cli/args/`, `cli/commands/`, `domain/project/inputs.ts`, `interactive.ts` | Command, interactive, help and lifecycle cases | Retirement, correction, extraction |
17
+ | `liftoff-power-apps-code-apps` | `domain/project/retired-workload.ts` and manifest/input guards | Retired-manifest rejection and explicit retirement inventory | Retirement |
18
+ | `liftoff-project-scaffold` | `generators/{common,genai,containers}/`, `templates.ts` assembler | Template, generated-stack and seed-lifecycle cases | Retirement, correction, extraction |
19
+ | `liftoff-standard-projects` | `generators/standard/`, `adapters/packaged-assets/` | Three-stack startup/configuration and container cases | Correction |
20
+ | `liftoff-supported-stack-baselines` | `domain/project/supported-stack.ts`, `adapters/packaged-assets/supported-stack.ts` | Baseline identity, integrity and freshness cases | Retirement, correction |
21
+ | `liftoff-template-dependency-security` | Audit/freshness scripts and explicit package inventories | Template dependency/security and inventory cases | Retirement |
22
+ | `liftoff-infrastructure-governance` | `generators/infrastructure/`, `domain/project/infrastructure-layout.ts`, `cli/commands/helpers.ts` | Per-environment roots, state, naming and sender/receiver cases | Correction, extraction |
23
+ | `liftoff-workstation-bootstrap` | `application/initialize/`, `domain/workstation/`, workstation/framework registries | Runtime/package-manager constraints and independent consent | Retirement, correction |
24
+ | `liftoff-project-migration` | `domain/migration/`, `scan.ts`, `migrate-plan.ts`, `application/migrate/` | Complete inventory, target overrides, source preservation, cleanup-last | Correction, extraction |
25
+ | `liftoff-template-ownership` | `domain/project/artifact-lifecycle.ts`, `reconcile.ts` | Exact ownership, create-only provisioning and force refusal | Retirement, preservation |
26
+ | `liftoff-manifest-contract` | `domain/project/manifest/`, `application/project/manifest.ts` | API/GenAI v2-v7 readers, retirement and historical identity boundaries | Retirement, correction, extraction |
27
+ | `liftoff-project-update` | `application/update/`, `adapters/filesystem/` | Collisions, recovery, concurrent edits, modes and layout gates | Correction, extraction |
28
+ | `liftoff-project-doctor` | `application/diagnose/` and shared probes | Honest readiness, invalid boundaries and no-write diagnostics | Retirement, correction, extraction |
29
+ | `liftoff-cli-self-upgrade` | `application/upgrade/`, `self-upgrade.ts`, `stable-release.ts` | Scoped registry precedence, isolation and failure classification | Correction, extraction |
30
+ | `liftoff-npm-distribution` | Package metadata and packaging/release scripts | Packed CLI entry point, asset resolution and historical surfaces | Retirement, preservation |
31
+ | `liftoff-repository-governance-profile` | `repository-governance.ts`, `domain/governance/policy/identity.ts` | Fixed policy, real workload boundaries and exact managed inventory | Retirement, preservation |
32
+ | `liftoff-governance-activation-engine` | `domain/governance/activation/`, `governance-activation/` | Current-input/body binding, retries, selected paths, Spec Kit seed | Correction, extraction |
33
+ | `liftoff-governance-assessment` | `domain/governance/assessment/`, `governance-assessment/`, read-only Git/GitHub/Azure adapters | Any-Git coverage, effective enforcement, partial reads and no writes | Correction, extraction |
34
+ | `liftoff-user-documentation` | README, developer guide and packaged docs | Links, accurate capabilities, ownership and compatibility guidance | Retirement, correction |
35
+
36
+ Mechanical extraction must preserve the existing supported help, JSON and
37
+ generation fixtures except for separately reviewed intentional changes. The
38
+ pre-change capture includes all nine GenAI patterns, three standard API stacks,
39
+ Spec Kit, and a frontend-enabled production-only case. A new directory or
40
+ forwarding callback does not establish a new implementation boundary.
41
+
42
+ The explicit non-generative retirement inventory is
43
+ `tests/fixtures/power-apps-retirement.json`. It separates whole-file removal,
44
+ source/reference edits, shared cases to port, and the historical manifest kept
45
+ only as negative input. Do not expand that inventory into blanket deletion of
46
+ unknown files or user projects.
47
+
48
+ Production executors, public approval/credential enrollment, and missing GenAI
49
+ specializations remain deferred. Local baseline evidence, read-only assessment,
50
+ and successful generated-file checks must not be described as those capabilities.
51
+
6
52
  ## Activation version vector
7
53
 
8
- Example for the Liftoff 0.10.0 deterministic setup contract:
54
+ Current deterministic setup contract, retained by the 0.11.2 CLI patch:
9
55
 
10
56
  ```json
11
57
  {
12
- "liftoffVersion": "0.10.0",
58
+ "liftoffVersion": "0.11.0",
13
59
  "manifestArtifactVersion": 7,
14
60
  "policyVersion": "6",
15
- "activationContractVersion": 1,
61
+ "activationContractVersion": 2,
16
62
  "phaseGraphSchemaVersion": 1,
17
- "phaseGraphHash": "b84bcde6cd614637f2486b0f3a202860e6e9a6142ac60c773daa11786dbeb7f7",
18
- "activationStateSchemaVersion": 1,
19
- "evidenceHeaderSchemaVersion": 1,
20
- "approvalEnvelopeSchemaVersion": 1,
63
+ "phaseGraphHash": "ac160e3fc86f3e438141d985658e09f419508b3adbe176ddd13100d5dfdee47c",
64
+ "activationStateSchemaVersion": 2,
65
+ "evidenceHeaderSchemaVersion": 2,
66
+ "approvalEnvelopeSchemaVersion": 2,
21
67
  "supersessionSchemaVersion": 1,
22
68
  "credentialPolicySchemaVersion": 1
23
69
  }
@@ -29,7 +75,15 @@ known, use a clear placeholder such as `<sha256-of-canonical-phase-graph-json>`;
29
75
  do not fabricate a historical value.
30
76
 
31
77
  The generated `liftoff.manifest.json` records this as manifest `artifactVersion`
32
- 7 plus the activation identity fields shown above.
78
+ 7 plus the activation identity fields shown above. Compatibility metadata uses
79
+ schema version 3 in its own document, not a new required manifest field.
80
+ Assessment report/catalog, graph, supersession, and credential-policy schemas
81
+ remain at version 1; normative policy remains 6.
82
+
83
+ `src/domain/governance/policy/identity.ts` is the version authority;
84
+ `src/domain/governance/activation/graph.ts` computes the canonical graph hash and
85
+ phase digests. Documentation tests compare this example with the source identity,
86
+ rather than blessing an obsolete hardcoded tuple.
33
87
 
34
88
  | Axis | Tracks |
35
89
  | --- | --- |
@@ -69,9 +123,29 @@ changes in another.
69
123
  - Future manifest, policy, contract, schema, or graph identities must block
70
124
  without rewriting state and must report the exact field, found value, supported
71
125
  identity, and minimum Liftoff remedy.
72
- - Historical state migration requires schema-valid input, an explicit old-to-new
73
- mapping, transactional writes, immutable evidence preservation, and rollback
74
- on any failed preflight.
126
+ - Manifest composition injects `validateReadableActivationIdentity` only at the
127
+ manifest boundary. Exact known v1 identities remain readable without retagging;
128
+ state, evidence, approval, readiness, and scope use strict current validation.
129
+ - Known v1 activation remains non-executable. The exact packaged successor lane
130
+ requires update preview and approval, preserves original history, and creates
131
+ new v2 proof only through current validation. Never add v1 to the executable map.
132
+ - Compatibility metadata v3 distinguishes successor eligibility from execution;
133
+ retain strict schema-2 input reading without treating it as migration authority.
134
+ Update report v3 distinguishes local commit from incomplete revalidation.
135
+ - Preview receipts are external user-local metadata, never approval. Persist
136
+ transaction approval separately after explicit consent; recovery must validate
137
+ that external binding rather than trust project-local JSON claiming approval.
138
+ - Durable history stays inside the project and outside managed-core ownership.
139
+ It preserves historical state and evidence byte-for-byte. After migration
140
+ commits, repair/resume blocked v2 rather than restore v1.
141
+ - The eight flat-root OpenTofu identities are an explicit new-output-only
142
+ exception to append-only naming in 0.11.0. Preserve historical records and
143
+ files; use the exact [retirement inventory](docs/azure-deployment.md#explicit-flat-root-identity-retirement),
144
+ never aliases, prefix ownership, or force conversion.
145
+ - A CLI-only patch does not retag activation history. When unchanged renderer
146
+ semantics support a new CLI generation, add that exact version to the
147
+ infrastructure generation compatibility inventory and cover mixed old/new
148
+ component provenance; do not infer compatibility from a SemVer range.
75
149
  - Never fabricate history: prose, filenames, timestamps, or checked tasks are
76
150
  not evidence.
77
151
 
@@ -92,6 +166,13 @@ and referenced, validated saved-plan/evidence receipts. Reject placeholder
92
166
  digests, future-dated approvals, and inferred bindings. Missing bindings remain
93
167
  `not-observed`; remediation must never suggest manually fabricating activation
94
168
  state, baselines, receipts, or evidence.
169
+ Use `inspectCurrentActivationEvidence` from
170
+ `src/governance-activation/read-only.ts`: its contexts include actual input
171
+ snapshots, reviewed immutable plans, and state evidence references. Consume
172
+ validated selected payloads, never reselect an unvalidated raw duplicate.
173
+ `bodyDigest` commits payload and normalized readbacks; `planDigest` binds semantic
174
+ inputs and `savedPlanDigest` binds the complete saved plan, including clocks.
175
+ Writing receipts does not invalidate their own source-input snapshot.
95
176
 
96
177
  Reports distinguish target, recorded baseline, declared configuration, and
97
178
  observed enforcement with expected/observed values, provenance, impact, and
@@ -179,7 +260,7 @@ npx vitest run tests/seed-lifecycle.test.ts
179
260
  npx vitest run tests/governance-assessment.test.ts tests/governance-assessment-engine.test.ts
180
261
  npx vitest run tests/commands.test.ts tests/file-system.test.ts tests/contract.test.ts tests/update.test.ts
181
262
  npm run build
182
- openspec validate add-deterministic-liftoff-setup --strict
263
+ openspec validate stabilize-and-modularize-liftoff --strict
183
264
  ```
184
265
 
185
266
  Before release, run:
@@ -189,22 +270,36 @@ npm run check
189
270
  npm run smoke:package
190
271
  npm run verify:standard-node-templates
191
272
  npm run verify:generated-containers
192
- npm run verify:power-apps-starter
193
273
  npm run verify:release-identity
194
274
  ```
195
275
 
196
- ## 0.10.0 release checklist
276
+ ## 0.11.2 release checklist
197
277
 
198
278
  - Package metadata, lockfile metadata, `liftoff --version`, and tag agree on
199
- `0.10.0`.
279
+ `0.11.2`. Preparing these files is not publication or permission to create a tag.
280
+ - Activation package identity remains `0.11.0`; no phase semantics or graph
281
+ identity change is introduced by patch-release preparation.
282
+ - Release notes prominently identify the breaking update-CLI/report changes:
283
+ mandatory matching preview and exact-plan approval, schema-3 project-update
284
+ reports, and exit 2 after committed but incomplete local revalidation.
200
285
  - Manifest writes use artifactVersion 7; readers accept v2-v7.
201
- - Policy version is `"6"`; activation contract, graph/state/evidence/approval/
202
- supersession/credential schemas are v1.
286
+ - Policy version is `"6"`; activation contract/state/evidence-header/approval
287
+ remain v2. Compatibility metadata and update reports are v3; preview receipts,
288
+ transaction approvals, history indexes, and migration journals are v1. Graph,
289
+ supersession, credential-policy, assessment report, and assessment catalog
290
+ schemas remain v1.
203
291
  - The graph hash in code, docs, generated artifacts, compatibility metadata, and
204
292
  release-integrity tests is
205
- `b84bcde6cd614637f2486b0f3a202860e6e9a6142ac60c773daa11786dbeb7f7`.
206
- - `/liftoff-setup` is the primary post-init path and archives the bootstrap seed
207
- before any commit/push or Phase 0 authority.
293
+ `ac160e3fc86f3e438141d985658e09f419508b3adbe176ddd13100d5dfdee47c`.
294
+ - `/liftoff-setup` archives the OpenSpec bootstrap or finalizes the real Spec Kit
295
+ B001–B006 bundle locally before separate publication and Phase 0 gates.
296
+ - Power Apps and the eight explicitly retired flat-root infrastructure IDs have
297
+ no positive new-generation lane. Old API/GenAI project provenance and v1
298
+ activation history remain preserved. Only the exact approved migration lane
299
+ can create a linked v2 successor; it does not retag historical proof.
300
+ - Independent infrastructure provenance explicitly admits generation versions
301
+ `0.11.0`, `0.11.1`, and `0.11.2`, including mixed component histories. Unknown
302
+ releases remain blocked rather than being accepted through a version range.
208
303
  - No setup-skill version exists in manifests, JSON status, docs, or generated
209
304
  integrations.
210
305
  - Doctor states and remedies cover seed-incomplete, phase-blocked,
@@ -223,51 +318,113 @@ evidence. Failed post-publish verification requires a dist-tag correction when
223
318
  the immutable package is correct, or a corrected patch release; do not unpublish
224
319
  as routine recovery.
225
320
 
226
- ## Functional engines and recommended boundaries
321
+ ## Functional engines and implementation boundaries
227
322
 
228
- Grouped at the top-level command/workflow-domain boundary, Liftoff currently
229
- has eight functional engines. Each contains smaller services; these are
230
- responsibility groups, not eight classes named `Engine`:
323
+ Liftoff remains one npm package and a modular monolith. It has eight functional
324
+ responsibility groups, not eight separately deployed services or classes named
325
+ `Engine`. Workloads, patterns, activation phases, and assessment controls are
326
+ different dimensions; adding a template does not create another engine.
231
327
 
232
328
  | Subsystem | Current implementation |
233
329
  | --- | --- |
234
- | Project planning and generation | `planner.ts`, `templates.ts`, workload renderers and template assets |
235
- | Workstation/framework bootstrap | `workstation.ts`, `project-dependencies.ts`, framework adapters and initialization safety |
236
- | Source migration | `scan.ts`, `migrate-plan.ts`, migration orchestration |
237
- | Managed project maintenance | `reconcile.ts`, artifact lifecycle declarations and guarded filesystem transactions |
238
- | CLI self-upgrade | `self-upgrade.ts`, stable release lookup and installed-package verification |
239
- | Diagnostics | Manifest validation, doctor, runtime and framework checks |
240
- | Governance activation | `governance-activation/` state graph, approvals, evidence and transition dispatch |
241
- | Governance assessment | `governance-assessment/` control catalog, observations, comparison and reporting |
330
+ | Project planning and generation | `domain/project/`, `application/project/`, `generators/`, resolved packaged template assets |
331
+ | Workstation/framework bootstrap | `application/initialize/`, workstation registry, framework adapters, `init-filesystem.ts`, dependency setup |
332
+ | Source migration | `domain/migration/`, `scan.ts`, `migrate-plan.ts`, `application/migrate/` |
333
+ | Managed project maintenance | `application/update/{planning,reporting,use-case}.ts`, `reconcile.ts`, filesystem transactions |
334
+ | CLI self-upgrade | `application/upgrade/use-case.ts`, `self-upgrade.ts`, stable release lookup and installed-package verification |
335
+ | Diagnostics | `application/diagnose/`, pure manifest contracts, shared runtime/framework/governance checks |
336
+ | Governance activation | `domain/governance/{policy,activation}/` rules and `governance-activation/` execution composition |
337
+ | Governance assessment | `domain/governance/assessment/` comparison/report contracts and `governance-assessment/` read-only collection |
242
338
 
243
339
  Telemetry, terminal presentation, process execution, catalogs, and filesystem
244
340
  access support those subsystems rather than constituting additional business
245
341
  engines.
246
342
 
247
- The next structural change should be incremental. First extract the command
248
- handlers from the large `commands.ts` orchestrator. Then separate pure domain
249
- rules from filesystem/process/GitHub/Azure adapters, and group workload
250
- generators separately from governance policy definitions:
343
+ ### Canonical entry points and ports
344
+
345
+ | Responsibility | Entry point or data contract |
346
+ | --- | --- |
347
+ | CLI parsing/dispatch | `src/cli/args/parser.ts`, `src/cli/commands/dispatch.ts` |
348
+ | Typed use-case requests | `src/application/context.ts`, `src/application/initialize/use-case.ts`, `src/application/update/use-case.ts`, `src/application/migrate/use-case.ts`, `src/application/upgrade/use-case.ts` |
349
+ | Pure plans/catalog/manifest rules | `src/domain/project/contracts.ts`, `src/domain/project/catalog.ts`, `src/domain/project/planning.ts`, `src/domain/project/manifest/reader.ts` |
350
+ | Release composition | `src/application/project/catalog.ts`, `src/application/project/manifest.ts` |
351
+ | Generator assembly and resolved subsets | `src/templates.ts`, `src/generators/context.ts` and its renderer families |
352
+ | Installed-package assets | `src/adapters/packaged-assets/package-root.ts`, `src/adapters/packaged-assets/template-assets.ts` |
353
+ | Guarded mutations | `src/adapters/filesystem/project-lock.ts`, `src/adapters/filesystem/atomic-write.ts`, `src/adapters/filesystem/project-transaction.ts` |
354
+ | Exact infrastructure inventory/layout | `src/domain/project/infrastructure-layout.ts` |
355
+ | Current activation observations | `src/governance-activation/inputs.ts`, `src/governance-activation/read-only.ts` |
356
+ | Activation planning/execution ports | `src/governance-activation/transition-planning.ts`, `src/governance-activation/transition-ports.ts`, locked coordinator `src/governance-activation/transitions.ts` |
357
+ | Concrete phase handlers and persistence | `src/governance-activation/seed-lifecycle.ts`, `src/governance-activation/phase-publication.ts`, `src/governance-activation/phase-discovery.ts`, `src/governance-activation/phase-governance.ts`, `src/governance-activation/phase-bootstrap-state.ts`, `src/governance-activation/transition-records.ts` |
358
+ | Pure evidence/availability contracts | `src/domain/governance/activation/evidence.ts`, `src/domain/governance/activation/capabilities.ts` |
359
+ | Read-only assessment | `src/governance-assessment/project.ts`, `src/domain/governance/assessment/`, `src/adapters/git/governance-assessment.ts`, `src/adapters/github/governance-assessment.ts`, `src/adapters/azure/governance-assessment.ts` |
360
+
361
+ The source boundaries are:
251
362
 
252
363
  ```text
253
364
  src/
254
- cli/ # arguments, per-command handlers, presentation
255
- application/ # bootstrap, migration, update and upgrade use cases
365
+ cli/ # parsing/help and per-command transport
366
+ application/ # typed requests, execution ports and workflow orchestration
256
367
  domain/
257
- project/ # manifests, ownership and compatibility
258
- governance/ # versioned policy and common control definitions
259
- activation/ # phases, approval envelopes and evidence
260
- assessment/ # pure comparison and coverage rules
261
- infrastructure/ # filesystem, process, Git, GitHub, Azure and npm ports
262
- generators/ # common, standard, GenAI and Power Apps renderers
368
+ project/ # injected catalogs/planning, manifest contracts and ownership
369
+ migration/ # declaration parsing, inventory and placement decisions
370
+ governance/
371
+ policy/ # shared version identities
372
+ activation/ # graph, approval, applicability, evidence and readiness rules
373
+ assessment/ # observations, comparison, coverage and report rules
374
+ generators/
375
+ common/ # shared files, frontend, configuration and workflow seeds
376
+ standard/ # Python, Node.js and Go implementations
377
+ genai/ # configuration, backend, patterns, database and functions
378
+ containers/ # Compose, images and build-context exclusions
379
+ infrastructure/ # independent Azure roots and resource naming
380
+ adapters/
381
+ filesystem/ # guarded discovery/read/write, transactions and locks
382
+ packaged-assets/ # one installed-package root and resolved release assets
383
+ process/ # shell-specific literal command formatting
263
384
  assets/governance/ # immutable policy bundles, catalogs and compatibility data
264
385
  ```
265
386
 
266
- Keep one source of truth for policy and version identities, retain content
267
- digest checks between policy/catalog/graph artifacts, and make read-only and
268
- mutating adapter capabilities distinct. Preserve current import/CLI contracts
269
- through small extraction changes rather than mixing a broad refactor into a
270
- feature release.
387
+ Activation planning, process transport, outcome persistence, and phase handlers
388
+ are real modules, not callbacks into a monolithic dispatcher.
389
+ `phase-bootstrap-state.ts` handles retention/disposal boundaries, not the missing
390
+ `bootstrap-local` cloud-provisioning executor. `transition-process.ts` centralizes
391
+ command outcomes; `transition-records.ts` commits the reviewed plan/evidence/state
392
+ contracts through guarded filesystem operations.
393
+
394
+ `commands.ts`, `args.ts`, `file-system.ts`, and the project/catalog entry modules
395
+ are compatibility facades. `templates.ts` assembles actual renderer modules;
396
+ it must not regain backend, container, infrastructure, or workflow implementation.
397
+ Internal callers use canonical modules rather than routing back through facades.
398
+
399
+ CLI handlers parse syntax and pass typed `ProjectOptions`, `MigrationRequest`,
400
+ `UpdateRequest`, and `UpgradeRequest` to application use cases with
401
+ `ExecutionContext` ports from `application/context.ts`.
402
+ Application code does not call back into CLI parsing. Pure rules receive data or
403
+ narrow context explicitly: `createProjectCatalog`, `buildProjectPlanWithCatalog`,
404
+ and `createManifestReader` do not discover files, run processes, or contact
405
+ providers. `application/project/catalog.ts` composes the release catalog;
406
+ `domain/project/catalog.ts` remains the pure factory.
407
+ Root generator composition accepts `PackagedTemplateAssetContext` and calls
408
+ `createGeneratorContext` in `generators/context.ts`. Pure renderers receive narrow
409
+ resolved subsets and do not import adapters. Only composition loads
410
+ `packagedTemplateAssets` through the canonical `resolvePackageFile` /
411
+ `resolvePackageFileUrl` resolver.
412
+
413
+ Manifest grammar, workload normalization, artifact authority, and governance
414
+ compatibility have separate project-domain modules. Filesystem discovery,
415
+ path safety, file access, and transactions live in distinct adapters.
416
+ `withProjectMutationLock` coordinates writers, while snapshots and path/content
417
+ preconditions still protect reviewed mutations and conflict-preserving rollback.
418
+ Its operation receives a lease with `assertHeld()`; nested same-root mutations
419
+ reuse it, while read-only paths do not acquire a lock.
420
+ Read-only assessment receives read capabilities, never activation executors or
421
+ mutation adapters.
422
+
423
+ When changing a feature, update its narrow rule/renderer first, wire the
424
+ application and CLI boundary, then extend the existing focused cases. Add exact
425
+ artifact lifecycle/provenance identities; do not infer ownership from folders.
426
+ The import-boundary suite checks cycles, domain I/O, application-to-CLI coupling,
427
+ and facade use. Packed smoke covers runtime asset lookup outside this checkout.
271
428
 
272
429
  ## Activation completeness and separate follow-up plan
273
430
 
@@ -287,62 +444,66 @@ contracts but need production wiring.
287
444
  Built-in handler presence does not establish a complete user journey:
288
445
  approval envelopes are read from disk but no public approval-persistence
289
446
  command is exposed; secure credential enrollment helpers are not wired into
290
- the command-only setup flow; and existing activation inspection still uses
291
- placeholder baseline/input digests. Assessment does not accept those
292
- placeholders as current proof. Do not fabricate state, approvals, or evidence
293
- to get past these gaps.
447
+ the command-only setup flow. Current activation inspection now binds real
448
+ baseline/input snapshots, reviewed plans, state references, and evidence bodies.
449
+ Historical placeholder-bound records remain diagnostic-only, never current
450
+ proof. Do not fabricate state, approvals, or evidence to get past capability gaps.
294
451
 
295
452
  Complete this work separately from the read-only assessment feature:
296
453
 
297
454
  1. Add explicit approval-persistence and secure credential-enrollment entry
298
455
  points with narrow consent and selected-agent command contracts.
299
- 2. Bind activation contexts to actual baseline, phase inputs, and transitions;
300
- define reviewed reconciliation for existing placeholder-bound history
456
+ 2. Define a separately reviewed reconciliation workflow for historical activation
457
+ identities and placeholder-bound history
301
458
  without rewriting immutable evidence or inventing completion.
302
459
  3. Supply production implementations for the missing phase adapters and the
303
460
  GitHub ruleset adapter, enforcing resource, permission, cost, and destructive
304
461
  bounds at execution.
305
- 4. Complete retry and rollback behavior, including recovery from active local
306
- baseline failures, without blanket retries of remote or destructive phases.
462
+ 4. Design phase-specific production retry/rollback behavior without blanket
463
+ remote or destructive retries. Explicit local seed/baseline/finalization
464
+ recovery and cooperating-writer locking are already implemented.
307
465
  5. Prove the entire activation and upgrade/reconciliation path with
308
466
  end-to-end positive and negative cases, then gated live readback where
309
467
  explicitly authorized.
310
468
 
311
- The assessment/bootstrap patch can ship independently while these fail-closed
469
+ This stabilization can ship independently while these fail-closed
312
470
  limitations remain documented; it must not advertise them as completed
313
471
  production capabilities.
314
472
 
315
473
  ## Broader audit follow-ups
316
474
 
317
- The whole-CLI review also identified work outside the bounded assessment,
318
- bootstrap, release-safety, and guidance patch. These are not repaired by
319
- successful rendering, unit tests, package smoke, or OpenTofu syntax validation:
320
-
321
- - **GenAI capability completeness:** review catalog scaffold labels against an
322
- executable behavior matrix. Current RAG retrieval/citation code, conversation
323
- and tool orchestration, prompt-file loading, worker handlers, and streaming
324
- behavior still require project-level implementation work in several patterns.
325
- - **Azure deployment completeness:** finish RAG publisher configuration and
326
- sender permissions, Function code packaging/deployment, dependency readiness,
475
+ The following work remains outside this stabilization, despite the repaired
476
+ runtime configuration, infrastructure generation, and local safety boundaries.
477
+ Rendering, unit tests, package smoke, and OpenTofu syntax validation alone do not
478
+ establish these production capabilities:
479
+
480
+ - **GenAI capability completeness:** all nine catalog entries now say
481
+ `foundation` and describe actual behavior. Retrieval/citations, conversation
482
+ history, tools, prompt-file loading, worker processing, coordination,
483
+ fine-tuning, workflow stages, and incremental streaming remain project work.
484
+ Generic has no pgvector package/extension or application-worker requirement.
485
+ - **Azure deployment completeness:** RAG publisher configuration and queue-scoped
486
+ sender/receiver separation are implemented. Function code packaging/deployment,
487
+ dependency readiness,
327
488
  authenticated ingress, private connectivity, environment-specific safeguards,
328
- and regional service settings before treating generated applications as
329
- production-ready.
489
+ and regional service settings still need reviewed implementation and verification
490
+ before treating generated applications as production-ready.
330
491
  - **Baseline prerequisites:** keep dependency installation separately
331
492
  consented. Python test settings and npm dependency preparation need explicit
332
493
  validated recipes; an unprepared baseline must block with a remedy, not pass
333
494
  vacuously.
334
- - **Persistent validation coverage:** expand framework delivery validation and
335
- Power Apps lock compatibility checks, validate exact plugin
336
- identity/version/enabled state, and strengthen deep readiness rather than
337
- equating liveness with dependency health.
495
+ - **Persistent validation coverage:** preserve framework delivery validation,
496
+ retired-workload rejection, and shared safety coverage, and strengthen deep
497
+ readiness rather than equating liveness with dependency health.
338
498
  - **Supply-chain delivery:** configured-registry version parity is not proof
339
499
  that its bytes equal the canonical release. Plan canonical artifact integrity
340
500
  verification before self-upgrade installation, with an explicit trust model
341
501
  for dependencies and approved mirrors. Pin or package mutable runtime/CDN
342
502
  assets as part of that work.
343
- - **Filesystem concurrency:** strengthen shared mutation locking and
344
- no-follow/fd-relative writes against noncooperating processes replacing
345
- ancestors between validation and mutation. Existing preflight/rollback
503
+ - **Filesystem concurrency:** cooperating-writer locks, guarded transactions,
504
+ mode preservation, and conflict-preserving recovery are implemented. Stronger
505
+ no-follow/fd-relative isolation against noncooperating processes replacing
506
+ ancestors between validation and mutation remains future hardening. Existing preflight/rollback
346
507
  safeguards are not a complete adversarial-filesystem isolation mechanism.
347
508
 
348
509
  Treat these as separate reviewed changes with workload/runtime acceptance
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Liftoff
2
2
 
3
- **Initialize governed GenAI applications, APIs, and Power Apps code apps from one
4
- interactive CLI.** Liftoff combines production-oriented scaffolds with OpenSpec or
3
+ **Initialize governed GenAI applications and APIs from one
4
+ interactive CLI.** Liftoff combines reviewable starter projects with OpenSpec or
5
5
  Spec Kit and integrates GitHub Copilot, Claude Code, or both from the first commit.
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/%40msn-control%2Fliftoff?logo=npm)](https://www.npmjs.com/package/@msn-control/liftoff)
@@ -27,17 +27,18 @@ cd my-project
27
27
 
28
28
  `liftoff init` asks for workload, spec workflow, agents, readiness, and plan
29
29
  confirmation before writing local files. Repository governance is enabled by
30
- default as a local deterministic handoff. `/liftoff-setup` then completes,
31
- syncs, and archives the generated bootstrap seed through local baseline checks,
32
- then stops at explicit authority gates for repository publication, credentials,
33
- billed infrastructure or exceptions, final enforcement, destructive cleanup, and
34
- external blockers. No model selection is required for setup; the CLI phase graph,
35
- evidence, and approvals are authoritative.
30
+ default as a local deterministic handoff. For OpenSpec, `/liftoff-setup` completes,
31
+ syncs, and archives the generated bootstrap seed. Spec Kit finalizes its one-time
32
+ bootstrap bundle locally, without an OpenSpec archive or new Git branch.
33
+ No model selection is required for setup; the CLI phase graph, evidence, and
34
+ approvals are authoritative. Missing production executors, credential enrollment,
35
+ and approval-persistence capabilities remain explicit blockers, not completed
36
+ automation.
36
37
 
37
38
  After the first self-upgrade-capable release is installed globally through npm,
38
39
  later CLI releases use `liftoff upgrade --check` followed by `liftoff upgrade`.
39
40
  This replaces the CLI only; generated projects use `liftoff update` separately
40
- for Liftoff-managed core files. Useful read-only checks:
41
+ for reviewed project maintenance. Useful project-read-only checks:
41
42
 
42
43
  ```bash
43
44
  liftoff validate
@@ -46,41 +47,41 @@ liftoff upgrade --check
46
47
  liftoff update --check
47
48
  ```
48
49
 
49
- Plain `liftoff update` applies safe managed-core changes immediately and skips
50
- core conflicts. Application source, dependencies, schemas, containers,
51
- environments, documentation, and infrastructure are project-owned after
52
- generation and remain outside every update mode, including `--force`. Use
53
- `liftoff update --check --json` for a read-only core-maintenance gate.
50
+ Start with `liftoff update --check`, then run `liftoff update` and approve the
51
+ matching plan. Check leaves project bytes unchanged and discloses a preview
52
+ receipt saved outside the repository. Missing or stale previews block apply.
53
+ Automation uses `--approve-plan <fingerprint>`; `--json` only selects formatting.
54
54
 
55
- Projects generated before `0.10.2` may still display the retired
56
- `/liftoff-repository-governance` command. Review `liftoff update --check`, then
57
- remove that generated alias with:
55
+ Supported activation-v1 migration preserves original records inside the project
56
+ and creates a linked v2 activation. Failed revalidation leaves v2 blocked and
57
+ resumable, not reset to v1. Application source, dependencies, schemas, containers,
58
+ environments, documentation, and infrastructure remain project-owned and outside
59
+ template replacement, including `--force`.
58
60
 
59
- ```bash
60
- liftoff upgrade
61
- liftoff update --force
62
- ```
63
-
64
- Reload the coding-agent session afterward so its command index refreshes.
61
+ Older projects may display the retired `/liftoff-repository-governance` alias.
62
+ After upgrading the CLI, review `liftoff update --check`; `liftoff update --force`
63
+ can remove only its exact recorded aliases. Reload the coding-agent session.
65
64
 
66
65
  ![Liftoff terminal showing interactive workload, workflow, multi-agent, readiness, and safe completion steps](docs/assets/liftoff-terminal.svg)
67
66
 
68
- ## One flow, three workloads
67
+ ## One flow, two workloads
69
68
 
70
69
  | Workload | Generated foundation | Deferred until you choose |
71
70
  | --- | --- | --- |
72
- | **GenAI application** | Python, FastAPI, PydanticAI, data and messaging boundaries, optional frontend, Docker, and Azure OpenTofu | Model credentials, cloud sign-in, deployment |
71
+ | **GenAI application** | Python, FastAPI, PydanticAI, data and messaging boundaries, optional frontend, Docker, and Azure OpenTofu | Model credentials, specialized behavior, cloud sign-in, deployment |
73
72
  | **API application** | Python/FastAPI, Node.js/Fastify, or Go/Huma API, database assets, optional frontend, Docker, and Azure OpenTofu | Service configuration, cloud sign-in, deployment |
74
- | **Power Apps code app** | Microsoft's pinned React, Vite, TypeScript, Power Apps SDK starter and project-local CLI | Environment binding, connectors, `power-apps push` |
75
73
 
76
74
  If the GenAI specialization is not yet known, choose **I'm not sure yet -
77
75
  Generic GenAI starter** or use `--pattern generic`. It creates a neutral
78
76
  PydanticAI invocation foundation without assuming RAG, chat, agents, streaming,
79
77
  fine-tuning, or workflows.
80
78
 
81
- Every workload can use **OpenSpec** or **Spec Kit** with **GitHub Copilot**,
82
- **Claude Code**, or both. The optional Microsoft Code Apps agent plugin remains an
83
- explicit, Preview-only choice.
79
+ Both workloads can use **OpenSpec** or **Spec Kit** with **GitHub Copilot**,
80
+ **Claude Code**, or both.
81
+
82
+ Power Apps and its Code Apps plugin integration are retired. Existing Power Apps
83
+ projects receive an unsupported-workload error without changing their files;
84
+ `--force` does not provide a compatibility or conversion path.
84
85
 
85
86
  [Compare workload questions and outputs](docs/workloads.md) |
86
87
  [Choose a spec workflow and agents](docs/spec-workflows-and-agents.md)
@@ -96,6 +97,10 @@ regular-file replacements, asks before overwrite, rejects structural and symlink
96
97
  conflicts, keeps tool/dependency permissions independent, and rolls back handled
97
98
  write failures.
98
99
 
100
+ To assess any Git repository without initializing it, run
101
+ `liftoff governance assess --json`. The default is local-only and read-only.
102
+ Missing or unsupported proof is reported as partial coverage, not success.
103
+
99
104
  [Initialize an existing repository](docs/existing-repositories.md) |
100
105
  [Understand target and consent safety](docs/safety-and-consent.md)
101
106
 
@@ -104,8 +109,8 @@ write failures.
104
109
  | Guide | Use it to |
105
110
  | --- | --- |
106
111
  | [Getting started](docs/getting-started.md) | Install safely and complete the first interactive project |
107
- | [Workloads](docs/workloads.md) | Compare GenAI, API, and Power Apps choices and outputs |
108
- | [Spec workflows and agents](docs/spec-workflows-and-agents.md) | Configure OpenSpec, Spec Kit, Copilot, Claude, and the optional Code Apps plugin |
112
+ | [Workloads](docs/workloads.md) | Compare GenAI/API choices and understand retired-workload handling |
113
+ | [Spec workflows and agents](docs/spec-workflows-and-agents.md) | Configure OpenSpec, Spec Kit, Copilot, and Claude |
109
114
  | [Repository governance](docs/repository-governance.md) | Review `/liftoff-setup`, read-only `/liftoff-governance-assess`, authority gates, evidence, and compatibility |
110
115
  | [Existing repositories](docs/existing-repositories.md) | Understand in-place, child-directory, and migration behavior |
111
116
  | [Prerequisites](docs/prerequisites.md) | Review plan-derived runtimes, tools, authentication, and dependency setup |
@@ -116,13 +121,13 @@ write failures.
116
121
  | [Generated project structure](docs/project-structure.md) | Locate workload-specific and conditional generated areas |
117
122
  | [Configuration and manifests](docs/configuration-and-manifests.md) | Edit desired state, manifest v7, activation identity, and managed artifacts |
118
123
  | [Azure deployment](docs/azure-deployment.md) | Review generated Azure and OpenTofu contracts for API workloads |
119
- | [Troubleshooting](docs/troubleshooting.md) | Recover from registry, readiness, validation, update, and plugin issues |
124
+ | [Troubleshooting](docs/troubleshooting.md) | Recover from registry, readiness, validation, update, and retired-workload issues |
120
125
  | [Developer guide](DEVELOPER.md) | Maintain version vectors, compatibility maps, release checks, and publishing |
121
126
 
122
127
  ## Contributing and security
123
128
 
124
129
  See [CONTRIBUTING.md](CONTRIBUTING.md) and [DEVELOPER.md](DEVELOPER.md) for build,
125
- test, packaging, starter-refresh, compatibility, and release procedures. Report
130
+ test, packaging, baseline-refresh, compatibility, and release procedures. Report
126
131
  vulnerabilities through the private process in [SECURITY.md](SECURITY.md).
127
132
 
128
133
  Liftoff is licensed under [GPL-3.0-only](LICENSE).