workspai 0.49.0 → 0.50.0

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 (240) hide show
  1. package/README.md +88 -28
  2. package/contracts/analyze-last-run.v1.json +2 -2
  3. package/contracts/artifact-remediation-plan.v1.json +3 -9
  4. package/contracts/autopilot-release.v1.json +2 -0
  5. package/contracts/bootstrap-compliance.v1.json +2 -1
  6. package/contracts/cli-log-event.v1.json +1 -1
  7. package/contracts/cli-runtime-command-inventory.v1.snapshot.json +80 -0
  8. package/contracts/compatibility-matrix.v1.json +2 -0
  9. package/contracts/create-planner-capabilities.v1.json +144 -32
  10. package/contracts/doctor-project-evidence.v1.json +191 -11
  11. package/contracts/doctor-project-scan.v2.json +2 -0
  12. package/contracts/doctor-remediation-plan.v1.json +2 -2
  13. package/contracts/doctor-remediation-plan.v2.json +2 -2
  14. package/contracts/doctor-workspace-cache.v2.json +2 -0
  15. package/contracts/doctor-workspace-evidence.v1.json +189 -10
  16. package/contracts/extension-cli-compatibility.v1.json +10 -1
  17. package/contracts/infra-plan.v1.json +2 -0
  18. package/contracts/ingestion-plan.v1.json +85 -0
  19. package/contracts/ingestion-result.v1.json +59 -0
  20. package/contracts/mirror-ops.v1.json +2 -1
  21. package/contracts/pipeline-last-run.v1.json +2 -2
  22. package/contracts/private-product-manifest.v1.json +2 -0
  23. package/contracts/product-factory-plan.v1.json +2 -0
  24. package/contracts/project-archive.v1.json +2 -0
  25. package/contracts/project-entry-capability.v1.json +2 -3
  26. package/contracts/project-test-coverage.v1.json +189 -0
  27. package/contracts/project-workspace-link.v1.json +66 -0
  28. package/contracts/project-workspace-resolution.v1.json +28 -0
  29. package/contracts/published-contract-catalog.v1.json +45 -0
  30. package/contracts/release-readiness.v1.json +2 -2
  31. package/contracts/runtime-command-surface.v1.json +1456 -139
  32. package/contracts/transparency-evidence.v1.json +2 -1
  33. package/contracts/workspace-archive-capabilities.v1.json +11 -5
  34. package/contracts/workspace-archive-manifest.v1.json +236 -0
  35. package/contracts/workspace-archive-operation-result.v1.json +236 -0
  36. package/contracts/workspace-contract.v1.json +1 -1
  37. package/contracts/workspace-intelligence/agent-action-outcome.v1.json +2 -2
  38. package/contracts/workspace-intelligence/agent-customization-pack-report.v1.json +1 -1
  39. package/contracts/workspace-intelligence/agent-hooks.v1.json +2 -0
  40. package/contracts/workspace-intelligence/agent-reports-index.v1.json +1 -1
  41. package/contracts/workspace-intelligence/blocker-resolution.v1.json +3 -9
  42. package/contracts/workspace-intelligence/doctor-fix-result.v1.json +2 -2
  43. package/contracts/workspace-intelligence/doctor-graph-diagnosis.v1.json +208 -0
  44. package/contracts/workspace-intelligence/fact-freshness.v1.json +2 -2
  45. package/contracts/workspace-intelligence/mcp-design.v1.json +2 -0
  46. package/contracts/workspace-intelligence/model-usage-event.v1.json +1 -1
  47. package/contracts/workspace-intelligence/project-context-agent.v1.json +360 -0
  48. package/contracts/workspace-intelligence/studio-blocker-handoff.v1.json +1 -1
  49. package/contracts/workspace-intelligence/workspace-context.v1.json +1 -1
  50. package/contracts/workspace-intelligence/workspace-contract-verify.v1.json +2 -2
  51. package/contracts/workspace-intelligence/workspace-dependency-graph.v1.json +1 -1
  52. package/contracts/workspace-intelligence/workspace-explain.v1.json +1 -1
  53. package/contracts/workspace-intelligence/workspace-graph-stream.v1.json +1 -1
  54. package/contracts/workspace-intelligence/workspace-graph-token-efficiency.v1.json +1 -1
  55. package/contracts/workspace-intelligence/workspace-impact.v1.json +1 -1
  56. package/contracts/workspace-intelligence/workspace-intelligence-evaluation-comparison.v1.json +1 -1
  57. package/contracts/workspace-intelligence/workspace-intelligence-evaluation.v1.json +1 -1
  58. package/contracts/workspace-intelligence/workspace-intelligence-history.v1.json +1 -1
  59. package/contracts/workspace-intelligence/workspace-intelligence-run.v1.json +2 -2
  60. package/contracts/workspace-intelligence/workspace-knowledge-graph-change-overlay.v1.json +1 -1
  61. package/contracts/workspace-intelligence/workspace-knowledge-graph.v1.json +48 -5
  62. package/contracts/workspace-intelligence/workspace-knowledge-search.v1.json +1 -1
  63. package/contracts/workspace-intelligence/workspace-model-diff.v1.json +1 -1
  64. package/contracts/workspace-intelligence/workspace-model-snapshot.v1.json +1 -1
  65. package/contracts/workspace-intelligence/workspace-model.v1.json +97 -5
  66. package/contracts/workspace-intelligence/workspace-operational-skill.v1.json +1 -1
  67. package/contracts/workspace-intelligence/workspace-skills-index.v1.json +1 -1
  68. package/contracts/workspace-intelligence/workspace-verify.v1.json +1 -1
  69. package/contracts/workspace-intelligence-architecture.v1.json +33 -7
  70. package/contracts/workspace-intelligence-chain.v1.json +1 -1
  71. package/contracts/workspace-list.v1.json +2 -0
  72. package/contracts/workspace-model-cache.v1.json +2 -0
  73. package/contracts/workspace-registry.v1.json +1 -1
  74. package/contracts/workspace-run-last.v1.json +1 -1
  75. package/contracts/workspace-share-bundle.v1.json +2 -1
  76. package/contracts/workspace-snapshot.v1.json +2 -0
  77. package/contracts/workspace-snapshot.v2.json +2 -0
  78. package/contracts/workspace-sync.v1.json +2 -0
  79. package/contracts/workspace-watch-event.v1.json +2 -0
  80. package/dist/analyze-ZFQWTCJQ.js +1 -0
  81. package/dist/{artifact-remediation-plan-SPOUHMK5.js → artifact-remediation-plan-ICN3KOFG.js} +1 -1
  82. package/dist/autopilot-release-VKXQ7BS7.js +1 -0
  83. package/dist/chunk-2AXEGYPL.js +1 -0
  84. package/dist/chunk-2D4UOYOJ.js +1 -0
  85. package/dist/chunk-2OIBHUVH.js +1 -0
  86. package/dist/chunk-3GRKUP5W.js +33 -0
  87. package/dist/{managed-agent-markers-AXUM75OE.js → chunk-3RBUSW7H.js} +1 -1
  88. package/dist/chunk-5EXZBCAZ.js +4 -0
  89. package/dist/chunk-6UTM5AJI.js +1 -0
  90. package/dist/chunk-AFIFZTOY.js +2 -0
  91. package/dist/{chunk-BMWFQXGW.js → chunk-AHLMIL2T.js} +1 -1
  92. package/dist/chunk-AL237TSJ.js +7 -0
  93. package/dist/chunk-AL2A7Q4X.js +86 -0
  94. package/dist/{chunk-VU7NZHPM.js → chunk-BHYTI3RH.js} +1 -1
  95. package/dist/{chunk-ESLPI3XZ.js → chunk-BQGBU2Y3.js} +1 -1
  96. package/dist/chunk-C35UXTDM.js +2 -0
  97. package/dist/chunk-C3FLCDRN.js +2 -0
  98. package/dist/chunk-CZC5P2MF.js +1 -0
  99. package/dist/{chunk-TIE2XMGH.js → chunk-DDQ3XK3H.js} +12 -12
  100. package/dist/{chunk-CRHYBQI3.js → chunk-DQ3PI7EP.js} +1 -1
  101. package/dist/chunk-EWZZUQBR.js +1 -0
  102. package/dist/{chunk-4KUIFXHM.js → chunk-GNQRYISX.js} +3 -3
  103. package/dist/chunk-I42F552T.js +2 -0
  104. package/dist/chunk-IDQKVJUF.js +2 -0
  105. package/dist/{chunk-3VFA7D5T.js → chunk-IND3TUVU.js} +1 -1
  106. package/dist/chunk-IPJ5URDF.js +1 -0
  107. package/dist/{chunk-EKZLUMCS.js → chunk-JFUD73OZ.js} +51 -51
  108. package/dist/chunk-KKAOTTYO.js +8 -0
  109. package/dist/chunk-KMLPHFLD.js +2 -0
  110. package/dist/{chunk-NHN4QXPP.js → chunk-KVSYBHUR.js} +1 -1
  111. package/dist/chunk-KXG6E5VK.js +1 -0
  112. package/dist/chunk-L2YK5RV2.js +1 -0
  113. package/dist/chunk-LAJM2SBP.js +15 -0
  114. package/dist/{chunk-K4X3DM7R.js → chunk-LZQUZGXB.js} +1 -1
  115. package/dist/chunk-MOSXTVPU.js +1 -0
  116. package/dist/chunk-MV7KF75Q.js +13 -0
  117. package/dist/chunk-MVLIONQD.js +1 -0
  118. package/dist/chunk-RJIYCDVC.js +1 -0
  119. package/dist/{chunk-BGPXQQNY.js → chunk-RTVRZFIJ.js} +1 -1
  120. package/dist/chunk-RVQLMTTI.js +2 -0
  121. package/dist/chunk-SHXJ2GDR.js +75 -0
  122. package/dist/{chunk-32OJDBIG.js → chunk-SS2VV3D5.js} +1 -1
  123. package/dist/chunk-TDTCMZK7.js +10 -0
  124. package/dist/chunk-UETZ7USY.js +36 -0
  125. package/dist/chunk-VKTUWUS6.js +1 -0
  126. package/dist/chunk-VRW6KXNK.js +6 -0
  127. package/dist/chunk-Y5YAP4F3.js +2 -0
  128. package/dist/chunk-YPKNQCLK.js +2 -0
  129. package/dist/{create-S64IWHAP.js → create-I23DC7SN.js} +1 -1
  130. package/dist/{demo-kit-DZ7TPG7K.js → demo-kit-KHH63TNA.js} +2 -2
  131. package/dist/{doctor-4NNUDNGZ.js → doctor-DOOMYLIH.js} +1 -1
  132. package/dist/{dotnet-webapi-clean-A6MVDYXX.js → dotnet-webapi-clean-VXEF4SHM.js} +5 -5
  133. package/dist/{gofiber-standard-I5YPQG5V.js → gofiber-standard-AQGSC7ON.js} +3 -3
  134. package/dist/{gogin-standard-VY2L4QT5.js → gogin-standard-7DU3OCBX.js} +3 -3
  135. package/dist/index.d.ts +38 -6
  136. package/dist/index.js +267 -355
  137. package/dist/managed-agent-markers-COE5DJ3W.js +1 -0
  138. package/dist/pipeline-U77HSINC.js +5 -0
  139. package/dist/platform-capabilities-PR6YL4KC.js +1 -0
  140. package/dist/project-intelligence-lens-BKKVPCLC.js +1 -0
  141. package/dist/project-test-coverage-4TEHZJFC.js +1 -0
  142. package/dist/{pythonRapidkitExec-CVCIK225.js → pythonRapidkitExec-YR7P5LWG.js} +1 -1
  143. package/dist/rust-axum-4HXDICIB.js +140 -0
  144. package/dist/{springboot-standard-55XKCBIZ.js → springboot-standard-EK6GYN5T.js} +7 -7
  145. package/dist/workspace-ZEYUVR26.js +1 -0
  146. package/dist/{workspace-agent-sync-662QHXGF.js → workspace-agent-sync-DKYJLUDP.js} +1 -1
  147. package/dist/workspace-archive-4JNT4S7N.js +1 -0
  148. package/dist/{workspace-context-23YYCUCP.js → workspace-context-IHUFMZT3.js} +1 -1
  149. package/dist/workspace-contract-PVLGPBBV.js +1 -0
  150. package/dist/workspace-explain-64HNKAHO.js +1 -0
  151. package/dist/workspace-explain-contract-H7O26QJU.js +1 -0
  152. package/dist/{workspace-feedback-SUVH2LUJ.js → workspace-feedback-RATRXFUC.js} +1 -1
  153. package/dist/{workspace-foundation-WPLD7OEO.js → workspace-foundation-D33LJLGT.js} +1 -1
  154. package/dist/workspace-graph-stream-THNG2T7R.js +1 -0
  155. package/dist/{workspace-history-BANOJRQ2.js → workspace-history-EWFPT74O.js} +1 -1
  156. package/dist/workspace-intelligence-MCNSWWDV.js +1 -0
  157. package/dist/{workspace-intelligence-evaluation-IPH7M3WV.js → workspace-intelligence-evaluation-7CABG5Y6.js} +1 -1
  158. package/dist/workspace-intelligence-runner-TG2VLHNZ.js +1 -0
  159. package/dist/workspace-intelligence-runtime-registry-ZZ3GRAL2.js +1 -0
  160. package/dist/{workspace-knowledge-graph-ARDC6HHG.js → workspace-knowledge-graph-2EYR7N56.js} +1 -1
  161. package/dist/{workspace-marker-SMBC3Z2Q.js → workspace-marker-7NHMDIRL.js} +1 -1
  162. package/dist/workspace-mcp-serve-FLAVKWYW.js +3 -0
  163. package/dist/workspace-model-FMFYLHE4.js +1 -0
  164. package/dist/workspace-model-hash-ZXYPIGCW.js +1 -0
  165. package/dist/workspace-onboarding-MYROZDI2.js +1 -0
  166. package/dist/{workspace-python-engine-state-2MLKJYQG.js → workspace-python-engine-state-J4QKW55K.js} +1 -1
  167. package/dist/{workspace-registry-summary-ORDK7A36.js → workspace-registry-summary-6VXIAQLX.js} +1 -1
  168. package/dist/workspace-run-2ZI5UMJ2.js +1 -0
  169. package/dist/{workspace-verify-EBVL7FWT.js → workspace-verify-FKYI65UQ.js} +1 -1
  170. package/dist/workspace-watch-RP5KMVP2.js +1 -0
  171. package/docs/GLOSSARY.md +17 -16
  172. package/docs/OPEN_SOURCE_USER_SCENARIOS.md +8 -3
  173. package/docs/README.md +6 -3
  174. package/docs/README_CONTENT_CONTRACT.md +18 -9
  175. package/docs/commands-reference.md +39 -8
  176. package/docs/contracts/ARTIFACT_CATALOG.md +65 -26
  177. package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +2 -0
  178. package/docs/contracts/RUNTIME_SUPPORT_MATRIX.md +3 -3
  179. package/docs/contracts/rapidkit-cli-contracts.json +2 -2
  180. package/docs/create-planner-capabilities.md +36 -5
  181. package/docs/creating-workspaces-and-projects.md +59 -3
  182. package/docs/doctor-command.md +118 -11
  183. package/docs/from-code-to-shared-understanding.md +4 -1
  184. package/docs/graph-benchmark-methodology.md +2 -2
  185. package/docs/workspace-intelligence-evaluation.md +5 -0
  186. package/docs/workspace-knowledge-graph.md +102 -7
  187. package/docs/workspace-operations.md +146 -10
  188. package/package.json +2 -2
  189. package/scripts/enterprise-package-smoke.mjs +13 -1
  190. package/dist/analyze-EEEU3MIF.js +0 -1
  191. package/dist/autopilot-release-R4XRTWEM.js +0 -1
  192. package/dist/chunk-22DT744Z.js +0 -1
  193. package/dist/chunk-37CVKXBD.js +0 -1
  194. package/dist/chunk-3NU32T4A.js +0 -2
  195. package/dist/chunk-3ZK2GU7C.js +0 -1
  196. package/dist/chunk-4HDYADHT.js +0 -13
  197. package/dist/chunk-52PBRX7F.js +0 -1
  198. package/dist/chunk-54EP5CEV.js +0 -8
  199. package/dist/chunk-5XATWNME.js +0 -1
  200. package/dist/chunk-7YHK5NM3.js +0 -2
  201. package/dist/chunk-AFL3ACCR.js +0 -2
  202. package/dist/chunk-BFLJ2R4D.js +0 -80
  203. package/dist/chunk-E2KJ5QWY.js +0 -4
  204. package/dist/chunk-EYJ2CQSK.js +0 -1
  205. package/dist/chunk-FTY7GGXJ.js +0 -33
  206. package/dist/chunk-FXQJX34Z.js +0 -1
  207. package/dist/chunk-GSWPGELT.js +0 -2
  208. package/dist/chunk-GZTYAEWX.js +0 -1
  209. package/dist/chunk-HDXNIN4N.js +0 -1
  210. package/dist/chunk-HZDXO65G.js +0 -36
  211. package/dist/chunk-J5ENLXDF.js +0 -1
  212. package/dist/chunk-KB44JP4M.js +0 -2
  213. package/dist/chunk-LHOZXC2M.js +0 -2
  214. package/dist/chunk-MER6ZBN2.js +0 -13
  215. package/dist/chunk-NAJCUQ4X.js +0 -2
  216. package/dist/chunk-OA537ZQ5.js +0 -1
  217. package/dist/chunk-OW42TZFB.js +0 -1
  218. package/dist/chunk-P3D5YQB2.js +0 -1
  219. package/dist/chunk-PHXQR6PX.js +0 -2
  220. package/dist/chunk-PRTR2DQ2.js +0 -1
  221. package/dist/chunk-RHQW3DTP.js +0 -1
  222. package/dist/chunk-T4YR4RAI.js +0 -2
  223. package/dist/chunk-Y45WZR5N.js +0 -5
  224. package/dist/chunk-YJZOMRAS.js +0 -1
  225. package/dist/pipeline-LHTPE3DR.js +0 -5
  226. package/dist/platform-capabilities-2B4QMZXE.js +0 -1
  227. package/dist/workspace-PJPRBUMQ.js +0 -1
  228. package/dist/workspace-archive-P76EDIUG.js +0 -10
  229. package/dist/workspace-contract-TU2I7GC2.js +0 -1
  230. package/dist/workspace-dependency-graph-BP4EXYQ5.js +0 -1
  231. package/dist/workspace-explain-MWUEN643.js +0 -1
  232. package/dist/workspace-explain-contract-ZPI3JXJU.js +0 -1
  233. package/dist/workspace-graph-stream-KAGGQPJT.js +0 -1
  234. package/dist/workspace-intelligence-MFJE7W67.js +0 -1
  235. package/dist/workspace-intelligence-runner-OTYTHV6B.js +0 -1
  236. package/dist/workspace-mcp-serve-EZR6O76D.js +0 -3
  237. package/dist/workspace-model-7OU2M3LE.js +0 -1
  238. package/dist/workspace-model-hash-MHXK5MEI.js +0 -1
  239. package/dist/workspace-run-QND2SIYA.js +0 -1
  240. package/dist/workspace-watch-7HWGA5TF.js +0 -1
package/docs/README.md CHANGED
@@ -19,14 +19,17 @@ npx workspai adopt .
19
19
  ```
20
20
 
21
21
  `adopt` keeps the project in place and creates or reuses the minimal default
22
- workspace. Without the VS Code extension, copy the exact `Next shell step`
23
- printed by the CLI and continue in that workspace terminal:
22
+ workspace. Continue from the same project terminal:
24
23
 
25
24
  ```bash
26
- cd ~/.workspai/workspaces/workspai
25
+ npx workspai project workspace status --json
27
26
  npx workspai workspace intelligence run --for-agent generic --strict --json
28
27
  ```
29
28
 
29
+ The first command proves which canonical workspace owns the project. Workspai
30
+ uses a gitignored machine-local binding and portable project grounding, so
31
+ workspace commands and compatible agents do not need a manual `cd`.
32
+
30
33
  Use `generic` for a vendor-neutral context pack, or select `codex`, `claude`,
31
34
  `cursor`, or `orca`. Agent Sync also publishes shared files for GitHub Copilot,
32
35
  VS Code, and `AGENTS.md` consumers.
@@ -58,10 +58,18 @@ as one undifferentiated command wall.
58
58
  ## Architectural statements that must remain true
59
59
 
60
60
  - The **Workspace Model is the canonical source of truth**.
61
- - The Knowledge Graph is a **derived, revision-bound representation** of
62
- governed workspace knowledge.
61
+ - The Knowledge Graph is a **derived, structurally bound representation** of
62
+ governed workspace knowledge. Its source kind and source artifact are fixed
63
+ to the canonical Workspace Model contract.
63
64
  - Providers emit facts and proofs; they do not independently own the canonical
64
65
  graph.
66
+ - Graph enrichment must not mutate the authorizing model during the same run.
67
+ - The canonical project inventory must reconcile discovered, imported,
68
+ adopted, and contract-declared projects. A missing contract-declared path is
69
+ a validation warning, not a silently deleted project.
70
+ - Persisted current-state consumers must reject a graph whose structural model
71
+ hash, workspace identity, or project topology no longer matches the current
72
+ model.
65
73
  - Missing relationships mean **not proven**, not independent.
66
74
  - The graph is broader than a code graph, but it is not the entire product.
67
75
  - The canonical runner is
@@ -74,13 +82,14 @@ as one undifferentiated command wall.
74
82
 
75
83
  Normative machine sources:
76
84
 
77
- | Statement | Source of truth |
78
- | ------------------------------ | ------------------------------------------------------- |
79
- | Ordered intelligence chain | `contracts/workspace-intelligence-chain.v1.json` |
80
- | Runtime commands and flags | `contracts/runtime-command-surface.v1.json` |
81
- | Published schemas and paths | `contracts/published-contract-catalog.v1.json` |
82
- | Architecture boundaries | `contracts/workspace-intelligence-architecture.v1.json` |
83
- | Artifact writers and consumers | `docs/contracts/ARTIFACT_CATALOG.md` |
85
+ | Statement | Source of truth |
86
+ | ------------------------------ | -------------------------------------------------------------------- |
87
+ | Ordered intelligence chain | `contracts/workspace-intelligence-chain.v1.json` |
88
+ | Runtime commands and flags | `contracts/runtime-command-surface.v1.json` |
89
+ | Published schemas and paths | `contracts/published-contract-catalog.v1.json` |
90
+ | Architecture boundaries | `contracts/workspace-intelligence-architecture.v1.json` |
91
+ | Model → Graph source binding | `contracts/workspace-intelligence/workspace-knowledge-graph.v1.json` |
92
+ | Artifact writers and consumers | `docs/contracts/ARTIFACT_CATALOG.md` |
84
93
 
85
94
  Markdown summarizes these contracts; it does not redefine them.
86
95
 
@@ -8,7 +8,7 @@ Complete CLI syntax for the Workspai CLI. For behavior and workflows, see [works
8
8
  npx workspai create # Prompts: workspace | project
9
9
  npx workspai create workspace <name> [--profile <profile>] [--yes] [--here|--output <parent-dir>] [--skip-python-engine] [--skip-git] [--dry-run] [--install-method <poetry|venv|pipx>]
10
10
  npx workspai bootstrap [--profile <profile>] [--ci] [--json] [--compliance-only]
11
- npx workspai setup <python|node|go|java|dotnet> [--warm-deps]
11
+ npx workspai setup <python|node|go|java|dotnet|rust|php> [--warm-deps]
12
12
  npx workspai pipeline [--json] [--strict] [--skip-verify] [--skip-analyze] [--skip-autopilot] [--autopilot-mode <audit|safe-fix|enforce>] [--agent-sync|--no-agent-sync]
13
13
  npx workspai analyze [--workspace <path>] [--json] [--strict] [--output <file>]
14
14
  npx workspai readiness [--workspace <path>] [--json] [--strict] [--skip-verify]
@@ -49,6 +49,7 @@ npx workspai workspace policy set <key> <value>
49
49
  npx workspai doctor
50
50
  npx workspai doctor workspace [--json] [--strict] [--ci] [--fix] [--plan] [--apply]
51
51
  npx workspai doctor project [--json] [--strict] [--ci] [--fix] [--plan] [--apply]
52
+ npx workspai project coverage [--project <path>] [--target <0-100>] [--run] [--strict] [--json]
52
53
  npx workspai workspace list
53
54
  npx workspai workspace foundation ensure [--force] [--json]
54
55
  npx workspai workspace share [--output <file>] [--include-paths] [--no-doctor]
@@ -59,7 +60,7 @@ npx workspai workspace contract graph [--json]
59
60
  npx workspai workspace intelligence run [--workspace <path>] [--for-agent <agent>] [--strict] [--json]
60
61
  npx workspai workspace model [--workspace <path>] [--json] [--write] [--strict] [--cache] [--incremental] [--include-paths] [--include-evidence] [--scan-depth <count>]
61
62
  npx workspai workspace context --for-agent [codex|claude|cursor|orca] [--workspace <path>] [--json] [--write] [--agent-sync|--no-agent-sync] [--target <targets>] [--preset minimal|enterprise] [--include-evidence] [--scan-depth <count>]
62
- npx workspai workspace agent-sync [--workspace <path>] [--write] [--refresh-context] [--strict] [--json] [--preset minimal|enterprise] [--target all|vscode|agents,copilot,cursor,claude,codex,orca] [--experimental-hooks] [--hydrate-prompts]
63
+ npx workspai workspace agent-sync [--workspace <path>] [--write] [--refresh-context] [--strict] [--json] [--preset minimal|enterprise] [--target all|vscode|agents,copilot,cursor,claude,codex,orca] [--project-grounding managed|local|off] [--experimental-hooks] [--hydrate-prompts]
63
64
  npx workspai workspace remediation-plan [--json] [--write] [--ci] [--include-paths]
64
65
  npx workspai workspace snapshot [--workspace <path>] [--json] [--include-paths] [--include-evidence] [--scan-depth <count>]
65
66
  npx workspai workspace diff --from <snapshot-or-report|git[:ref]> [--workspace <path>] [--json] [--include-paths] [--include-evidence] [--scan-depth <count>] [--strict]
@@ -77,8 +78,10 @@ npx workspai workspace archive inspect team-workspace.workspai-archive.zip [--ma
77
78
  npx workspai workspace archive verify team-workspace.workspai-archive.zip [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--allow-private-network] [--strict] [--json]
78
79
  npx workspai workspace archive doctor team-workspace.workspai-archive.zip [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--allow-private-network] [--strict] [--json]
79
80
  npx workspai workspace hydrate team-workspace.workspai-archive.zip --output ./team-workspace [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--allow-private-network]
80
- npx workspai import <path|git-url> [--workspace <path>] [--name <project-name>] [--git] [--enable-modules] [--json]
81
- npx workspai adopt [path] [--workspace <path>] [--name <project-name>] [--enable-modules] [--dry-run] [--json]
81
+ npx workspai workspace import team-workspace.workspai-archive.zip --output ./team-workspace [--project-grounding managed|local|off] [--dry-run] [--strict] [--json]
82
+ npx workspai workspace connect [directory] [--project-grounding managed|local|off] [--dry-run] [--json]
83
+ npx workspai import <path|git-url> [--workspace <path>] [--name <project-name>] [--git] [--enable-modules] [--project-grounding managed|local|off] [--json]
84
+ npx workspai adopt [path] [--workspace <path>] [--name <project-name>] [--enable-modules] [--project-grounding managed|local|off] [--dry-run] [--json]
82
85
  npx workspai snapshot create [name] [--include-projects] [--reason <text>] [--json]
83
86
  npx workspai snapshot list [--json]
84
87
  npx workspai snapshot inspect <name> [--json]
@@ -87,6 +90,7 @@ npx workspai project archive <name> [--reason <text>] [--dry-run] [--json]
87
90
  npx workspai project archives [--json]
88
91
  npx workspai project restore <archive> [--name <project-name>] [--force] [--dry-run] [--json]
89
92
  npx workspai project delete <name> [--permanent --confirm <name>] [--dry-run] [--json]
93
+ npx workspai project workspace [status|relink] [--workspace <path>] [--project <path>] [--json]
90
94
  npx workspai workspace init
91
95
  npx workspai workspace run <init|test|build|start> [--affected] [--blast-radius] [--since <ref>] [--parallel] [--max-workers <n>] [--strict] [--json]
92
96
  npx workspai infra plan [--workspace <path>] [--json] [--dry-run] [--verbose]
@@ -95,6 +99,17 @@ npx workspai infra down [--workspace <path>] [--volumes]
95
99
  npx workspai infra status [--workspace <path>] [--json] [--strict]
96
100
  ```
97
101
 
102
+ Every workspace action has action-scoped help generated from the same contract
103
+ that governs its accepted flags. For example:
104
+
105
+ ```bash
106
+ npx workspai workspace impact --help
107
+ npx workspai workspace graph search --help
108
+ ```
109
+
110
+ This avoids guessing whether an option such as `--write`, `--from`, or
111
+ `--output` belongs to a particular action.
112
+
98
113
  The contract graph includes its backward-compatible service projection, the
99
114
  canonical `workspace-dependency-graph.v1` project topology, and the portable
100
115
  `workspace-knowledge-graph.v1` evidence graph. The knowledge projection covers
@@ -138,6 +153,12 @@ per immutable graph object and invalidated automatically when a new graph is
138
153
  built. `dot` and `mermaid` intentionally remain project-topology renderers and
139
154
  emit raw text for direct piping.
140
155
 
156
+ Every integrated `workspace graph` Knowledge Graph is derived from the
157
+ canonical Workspace Model. Its contract fixes the source artifact to
158
+ `.workspai/reports/workspace-model.json` and binds the graph to the model's
159
+ stable structural SHA-256. Graph providers enrich that model-owned inventory;
160
+ they never write facts back into the authorizing model during the same run.
161
+
141
162
  `workspace graph search <query> --limit <n> --json` returns bounded entities,
142
163
  one-hop relations, related entity summaries, and portable proofs instead of the
143
164
  complete graph. `workspace graph benchmark <query> --limit <n> --json` compares
@@ -190,9 +211,11 @@ Workspace profile compatibility is enforced consistently across `create project`
190
211
  `import`, `adopt`, and `bootstrap` compliance. In default `warn` policy mode,
191
212
  cross-runtime additions are allowed with a recommendation such as
192
213
  `npx workspai bootstrap --profile polyglot`; in `strict` mode, mismatches are
193
- blocked before the project is registered. Observed runtimes such as Rust, C,
194
- and C++ are counted in the workspace runtime mix even when Workspai does not own
195
- a native scaffold for them.
214
+ blocked before the project is registered. Rust is an extended runtime with
215
+ Axum/Tauri scaffolding and Cargo lifecycle support. PHP is extended through
216
+ Laravel and Composer lifecycle support. Observed runtimes such as C and C++ are
217
+ still counted in the workspace runtime mix even when Workspai does not own a
218
+ native scaffold for them.
196
219
 
197
220
  Core module/template commands are intentionally narrower than runtime detection.
198
221
  RapidKit Core modules are guaranteed only for RapidKit Core module-enabled kits:
@@ -223,6 +246,10 @@ Examples:
223
246
  ```bash
224
247
  npx workspai create project fastapi.standard my-api --yes
225
248
  npx workspai create project nextjs my-web --yes
249
+ npx workspai create project rust.axum my-rust-api --yes
250
+ npx workspai create project desktop.tauri my-desktop-app --yes
251
+ npx workspai create project extension.vscode my-extension --yes
252
+ npx workspai create project php.laravel my-laravel-api --yes
226
253
  ```
227
254
 
228
255
  Generator-specific options include `--port`, Spring Boot
@@ -232,7 +259,11 @@ and .NET `--dotnet-version`/`--target-framework`/`--nullable`. Use
232
259
 
233
260
  `create frontend <id> <name>` is still accepted and routes to the same generators.
234
261
 
235
- `project commands` shows the effective command contract for the current project. Core-backed FastAPI/NestJS projects can use module commands such as `add` and `modules`. Frontend apps, Go, Spring Boot, .NET, and adopted/imported repositories use runtime lifecycle commands and workspace governance while Core module mutation remains disabled.
262
+ `project commands` shows the effective command contract for the current project.
263
+ Core-backed FastAPI/NestJS projects can use module commands such as `add` and
264
+ `modules`. Frontend, desktop, extension, Go, Spring Boot, .NET, Rust, PHP, and
265
+ adopted/imported projects use runtime lifecycle commands and workspace
266
+ governance while Core module mutation remains disabled.
236
267
 
237
268
  ## Operations
238
269
 
@@ -20,6 +20,28 @@ The canonical `.workspai-workspace` marker must remain trackable. Generated
20
20
  workspace `.gitignore` files exclude legacy/local engine state but do not
21
21
  exclude the canonical marker.
22
22
 
23
+ ## Project entry and grounding
24
+
25
+ These paths are relative to each registered project root, not the workspace
26
+ root:
27
+
28
+ | Artifact | Writer | Schema / format | Portability and reader purpose |
29
+ | --- | --- | --- | --- |
30
+ | `.workspai/workspace-link.local.json` | `adopt`, `import`, project creation, `workspace sync`, `project workspace relink` | `project-workspace-link.v1` | Machine-local absolute binding; always gitignored and never an agent evidence payload |
31
+ | `.workspai/reports/project-context-agent.json` | Project lens reconciliation and `workspace agent-sync --write` | `project-context-agent.v1` | Portable bounded model/graph/proof projection for project-local agents |
32
+ | `.workspai/PROJECT-GROUNDING.md` | Project lens reconciliation | Markdown | Portable human/agent entry guide with path-free workspace references |
33
+ | `AGENTS.md` managed section | Project lens reconciliation in `managed` mode | Managed Markdown block | Preserves user content and routes compatible agents to project/workspace evidence |
34
+
35
+ The project link is validated against the canonical workspace contract and a
36
+ SHA-256 binding over workspace identity, project identity, portable relative
37
+ path, machine paths, and relationship. Project context generation rejects
38
+ absolute paths before writing. `managed`, `local`, and `off` grounding modes
39
+ control portable project surfaces and converge by removing stale managed
40
+ sections and ignore rules during transitions; they never make the
41
+ machine-local link publishable. The context is bounded but not count-only: it
42
+ includes topology, API/deployment/test surfaces, blockers, portable proofs,
43
+ and model/graph freshness for the selected project.
44
+
23
45
  ## Naming conventions
24
46
 
25
47
  | Pattern | Meaning | Examples |
@@ -30,18 +52,19 @@ exclude the canonical marker.
30
52
 
31
53
  ## Governance evidence loop
32
54
 
33
- | Command | Primary artifact | Schema version | JSON Schema |
34
- | ------------------------------------ | ----------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------ |
35
- | `doctor workspace` | `.workspai/reports/doctor-last-run.json` | `doctor-workspace-evidence-v1` | `contracts/doctor-workspace-evidence.v1.json` |
36
- | `doctor project` | `.workspai/reports/doctor-project-last-run.json` | `doctor-project-evidence-v1` | `contracts/doctor-project-evidence.v1.json` |
37
- | `doctor * --plan` | `.workspai/reports/doctor-remediation-plan-last-run.json` | `doctor-remediation-plan-v2` | `contracts/doctor-remediation-plan.v2.json` |
38
- | `doctor * --fix/--apply` | `.workspai/reports/doctor-fix-result-last-run.json` | `rapidkit-doctor-fix-result-v1` | `contracts/workspace-intelligence/doctor-fix-result.v1.json` |
39
- | `workspace remediation-plan --write` | `.workspai/reports/artifact-remediation-plan-last-run.json` | `artifact-remediation-plan-v1` | `contracts/artifact-remediation-plan.v1.json` |
40
- | `analyze` | `.workspai/reports/analyze-last-run.json` | `rapidkit-analyze-v1` | `contracts/analyze-last-run.v1.json` |
41
- | `readiness` | `.workspai/reports/release-readiness-last-run.json` | `release-readiness-v1` | `contracts/release-readiness.v1.json` |
42
- | `pipeline` | `.workspai/reports/pipeline-last-run.json` | `rapidkit-pipeline-v1` | `contracts/pipeline-last-run.v1.json` |
43
- | `autopilot release` | `.workspai/reports/autopilot-release-last-run.json` | `autopilot-release-v1` | `contracts/autopilot-release.v1.json` |
44
- | | `.workspai/reports/autopilot-release.json` | (alias, same payload) | `contracts/autopilot-release.v1.json` |
55
+ | Command | Primary artifact | Schema version | JSON Schema |
56
+ | ------------------------------------ | ----------------------------------------------------------- | ----------------------------------- | ------------------------------------------------------------ |
57
+ | `doctor workspace` | `.workspai/reports/doctor-last-run.json` | `doctor-workspace-evidence-v1` | `contracts/doctor-workspace-evidence.v1.json` |
58
+ | `doctor project` | `.workspai/reports/doctor-project-last-run.json` | `doctor-project-evidence-v1` | `contracts/doctor-project-evidence.v1.json` |
59
+ | `project coverage` | `.workspai/reports/project-test-coverage-last-run.json` | `workspai.project-test-coverage.v1` | `contracts/project-test-coverage.v1.json` |
60
+ | `doctor * --plan` | `.workspai/reports/doctor-remediation-plan-last-run.json` | `doctor-remediation-plan-v2` | `contracts/doctor-remediation-plan.v2.json` |
61
+ | `doctor * --fix/--apply` | `.workspai/reports/doctor-fix-result-last-run.json` | `rapidkit-doctor-fix-result-v1` | `contracts/workspace-intelligence/doctor-fix-result.v1.json` |
62
+ | `workspace remediation-plan --write` | `.workspai/reports/artifact-remediation-plan-last-run.json` | `artifact-remediation-plan-v1` | `contracts/artifact-remediation-plan.v1.json` |
63
+ | `analyze` | `.workspai/reports/analyze-last-run.json` | `rapidkit-analyze-v1` | `contracts/analyze-last-run.v1.json` |
64
+ | `readiness` | `.workspai/reports/release-readiness-last-run.json` | `release-readiness-v1` | `contracts/release-readiness.v1.json` |
65
+ | `pipeline` | `.workspai/reports/pipeline-last-run.json` | `rapidkit-pipeline-v1` | `contracts/pipeline-last-run.v1.json` |
66
+ | `autopilot release` | `.workspai/reports/autopilot-release-last-run.json` | `autopilot-release-v1` | `contracts/autopilot-release.v1.json` |
67
+ | | `.workspai/reports/autopilot-release.json` | (alias, same payload) | `contracts/autopilot-release.v1.json` |
45
68
 
46
69
  Side/cache (not gates): `.workspai/reports/doctor-workspace-cache.json` (`doctor-workspace-cache-v2`).
47
70
 
@@ -64,11 +87,13 @@ this plan before inventing per-card repair logic. The plan carries ordered actio
64
87
  operations where deterministic, refresh/verify commands, risk, approval state, and rollback
65
88
  strategy.
66
89
 
67
- When `doctor project` runs inside a workspace, the workspace report remains the canonical
68
- governance artifact and Doctor mirrors `doctor-project-last-run.json`,
69
- `doctor-remediation-plan-last-run.json`, and `doctor-fix-result-last-run.json` into the scoped
70
- project's `.workspai/reports/` directory. This keeps Studio, agents, and project-local operators on
71
- the same evidence without losing the workspace source of truth.
90
+ When `doctor project` runs inside a workspace, the project-local report is written beside the
91
+ project and the workspace receives both a latest alias and a collision-safe project copy under
92
+ `.workspai/reports/projects/<project-slug>--<identity-hash>/`. Coverage evidence follows the same
93
+ three-location rule. The hash is derived from workspace-relative identity, so projects with the
94
+ same folder name cannot overwrite each other. Remediation plans and fix results are also mirrored
95
+ into the scoped project. Studio, CI, and project-local tools can therefore use the same evidence
96
+ without guessing which project produced a latest alias.
72
97
 
73
98
  ## Workspace intelligence
74
99
 
@@ -108,10 +133,14 @@ status/exit coherence, hard-failure skip propagation, and the aggregate verdict.
108
133
  See [Unified Workspace Intelligence Runner](../workspace-intelligence-runner.md)
109
134
  for the normative user and integration semantics.
110
135
 
111
- `workspace-model.json` and `workspace-knowledge-graph.json` are published as one
112
- recoverable artifact transaction. The graph carries a SHA-256 `source` binding
113
- to the canonical model, so consumers must reject a graph whose source hash does
114
- not equal the current structural model hash.
136
+ `workspace-model.json` and `workspace-knowledge-graph.json` are published under
137
+ one workspace lock as a rollback-capable artifact transaction. Individual file
138
+ replacement is atomic, and a partial set failure restores both preimages. The
139
+ model is canonical; the graph is derived and cannot mutate it during the run.
140
+ The graph contract fixes `source.kind` to `workspace-model`,
141
+ `source.artifact` to `.workspai/reports/workspace-model.json`, and `source.hash`
142
+ to the model's stable structural SHA-256. Current-state consumers must reject a
143
+ graph whose binding does not match the current model.
115
144
 
116
145
  `workspace graph jsonld|graphml|gexf --output <path>` creates explicit interchange
117
146
  projections from that bound graph. These files are portable exports, not competing
@@ -150,11 +179,13 @@ sources: package manifests (`package.json` deps, `pyproject.toml` path deps, `go
150
179
  replace → `package-dep`), cross-boundary JS/TS source imports (`code-import`), the
151
180
  workspace contract (`dependsOn` → `service-dependsOn`, matched `publishes`/`consumes`
152
181
  → `event-pub-sub`, env↔port references → `shared-resource`), and an optional manual
153
- override file. Node/edge ordering and `hashDependencyGraph` are stable, so the graph is
154
- embedded as a first-class field of `workspace-model.v1` (`model.graph`) on every
155
- `buildWorkspaceModel` run; `hashModel` normalizes the embedded `graph.generatedAt` so the
156
- structural graph participates in the model hash without causing timestamp drift.
157
- (`model.graph` is additive/optional for pre-graph readers.)
182
+ override file. Node/edge ordering and `hashDependencyGraph` are stable, so the compact
183
+ topology is embedded as the canonical `workspace-model.v1.projectTopology` field on every
184
+ `buildWorkspaceModel` run. `hashWorkspaceModel` normalizes
185
+ `projectTopology.generatedAt`, so the structural topology participates in the model hash
186
+ without causing timestamp drift. During the v1 migration window the CLI also emits the
187
+ deprecated `graph` compatibility alias. Consumers must read `projectTopology`; when both
188
+ fields exist, validation requires them to be structurally identical.
158
189
 
159
190
  **Manual overrides.** `.workspai/workspace-graph.overrides.json` (`{ "edges": [{ "from",
160
191
  "to", "kind", "evidence" }] }`) declares authoritative edges that win over inference for
@@ -245,6 +276,14 @@ reused and the dependency graph re-infers only edges incident to changed project
245
276
  changes or project renames, and rescans code-imports fully when the node set changes. Reported
246
277
  modes: `full` / `incremental` / `unchanged`.
247
278
 
279
+ The model command adds a non-structural `build` object to its JSON output and,
280
+ when `--write` is used, to the persisted model result. `mode`, `outcome`, and
281
+ `engineStatus` tell IDE/CI consumers
282
+ whether the result was rebuilt, partially reused, or fully reused. This
283
+ provenance is deliberately excluded from the canonical workspace-model hash,
284
+ so switching between full, cached, and incremental execution cannot make the
285
+ paired knowledge graph appear stale.
286
+
248
287
  ### Freshness metadata (`rapidkit-freshness-metadata-v1`)
249
288
 
250
289
  Intelligence reports carry a shared freshness envelope so any consumer (CLI
@@ -58,10 +58,12 @@ These nested Commander commands are implemented and orchestrated by Workspai CLI
58
58
  - `product manifest create`
59
59
  - `product plan`
60
60
  - `project commands`
61
+ - `project coverage`
61
62
  - `project archives`
62
63
  - `project archive`
63
64
  - `project restore`
64
65
  - `project delete`
66
+ - `project workspace`
65
67
  - `snapshot create`
66
68
  - `snapshot inspect`
67
69
  - `snapshot list`
@@ -18,9 +18,9 @@ It separates three concerns:
18
18
  | Go | extended | yes | yes | init, dev, start, build, test, lint, format, help | no | readiness |
19
19
  | Java / Spring Boot | extended | yes | yes | init, dev, start, build, test, lint, format, help | no | readiness |
20
20
  | .NET / ASP.NET Core | extended | yes | yes | init, dev, start, build, test, lint, format, help | no | readiness |
21
- | PHP | observed | no | yes | help | no | observed |
21
+ | PHP | extended | yes | yes | init, dev, start, build, test, lint, format, help | no | readiness |
22
22
  | Ruby | observed | no | yes | help | no | observed |
23
- | Rust | observed | no | yes | help | no | observed |
23
+ | Rust | extended | yes | yes | init, dev, start, build, test, lint, format, help | no | readiness |
24
24
  | Elixir | observed | no | yes | help | no | observed |
25
25
  | Clojure | observed | no | yes | help | no | observed |
26
26
  | Scala | observed | no | yes | help | no | observed |
@@ -40,7 +40,7 @@ It separates three concerns:
40
40
  | Tier | Frameworks |
41
41
  | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
42
42
  | first-class | FastAPI, NestJS |
43
- | extended | Go/Fiber, Go/Gin, Spring Boot, ASP.NET Core, Django, Flask, Express, Fastify, Koa, Echo, Laravel, Symfony, Rails, Sinatra, Actix, Axum, Rocket, Phoenix, Next.js, Remix, React, Vue, Svelte, Solid, Nuxt, Angular, Astro, SvelteKit |
43
+ | extended | Go/Fiber, Go/Gin, Spring Boot, ASP.NET Core, Django, Flask, Express, Fastify, Koa, Echo, Laravel, Symfony, Rails, Sinatra, Actix, Axum, Rocket, Phoenix, Next.js, Remix, React, Vue, Svelte, Solid, Nuxt, Angular, Astro, SvelteKit, Tauri, Electron, VS Code Extension |
44
44
  | observed | Python, Node.js, Go, Java, PHP, Ruby, Rust, Elixir, Unknown/generic projects |
45
45
 
46
46
  ## Import Policy
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://getrapidkit.com/schemas/rapidkit-cli-contracts.json",
4
- "title": "RapidKit Core CLI Contracts",
3
+ "$id": "https://workspai.dev/schemas/rapidkit-cli-contracts.json",
4
+ "title": "Workspai CLI Contracts (RapidKit Core Compatibility)",
5
5
  "type": "object",
6
6
  "definitions": {
7
7
  "VersionResponse": {
@@ -21,10 +21,15 @@ Native create is reserved for Workspai-owned kits with deterministic contracts:
21
21
  - Go Fiber and Go Gin
22
22
  - Spring Boot
23
23
  - ASP.NET Core Web API
24
+ - Rust / Axum
24
25
 
25
26
  These kits can be exposed through `workspai create project` because Workspai can
26
27
  create the project and immediately produce the expected `.workspai` metadata,
27
28
  workspace registry entries, doctor evidence, and workspace model data.
29
+ They use a tested dependency baseline instead of floating to new upstream
30
+ majors during creation. Baseline upgrades ship as reviewed Workspai changes so
31
+ the same Workspai version remains reproducible across developer machines and
32
+ CI.
28
33
 
29
34
  ## Official generators
30
35
 
@@ -35,19 +40,45 @@ by Workspai and then registered in Workspace Intelligence:
35
40
  - React Router: `npx create-react-router@latest <name>`
36
41
  - React, Vue, Svelte, Solid, and Vite: `npm create vite@latest <name> ...`
37
42
  - Nuxt: `npx create-nuxt@latest <name> ...`
38
- - Angular: `npx @angular/cli@19 new <name>`
39
- - Astro: `npm create astro@4 <name>`
43
+ - Angular: `npx @angular/cli@latest new <name>`
44
+ - Astro: `npm create astro@latest <name>`
40
45
  - SvelteKit: `npx sv@latest create <name>`
46
+ - Tauri: `npm create tauri-app@latest <name> -- --template vanilla-ts`
47
+ - Electron Forge: `npx create-electron-app@latest <name> --template=vite-typescript`
48
+ - VS Code Extension: `npx --package yo@latest --package generator-code@latest -- yo code <name> ...`
49
+ - Laravel: `composer create-project --no-interaction --prefer-dist --stability=stable laravel/laravel <name>`
50
+
51
+ ### Stable version and runtime policy
52
+
53
+ Available official entries request the ecosystem's current stable release at
54
+ execution time; Workspai does not silently pin an older framework major. npm
55
+ generators use the `latest` distribution tag and Composer is restricted to
56
+ stable packages. npm engine checks run in strict mode, so an upstream generator
57
+ that does not support the operator's Node.js runtime stops before Workspai
58
+ claims the scaffold is usable.
59
+
60
+ Workspai also checks non-Node prerequisites before invoking a generator:
61
+
62
+ - Tauri requires Rust and Cargo in addition to its platform-specific system
63
+ dependencies.
64
+ - Electron Forge requires Git.
65
+ - VS Code Extension generation requires Git unless `--skip-git` is selected.
66
+ - Laravel requires PHP and Composer; Node.js/npm remain recommended for
67
+ frontend asset workflows.
68
+
69
+ The official generator remains the authority for exact framework/runtime
70
+ compatibility because its stable requirements can change independently of a
71
+ Workspai release. The selected policy is persisted as `latest-stable` in
72
+ project metadata and create evidence.
41
73
 
42
74
  Other ecosystems are planned official handoffs but are not automated yet:
43
75
 
44
76
  - WordPress site: `wp core download`, `wp config create`, `wp db create`, `wp core install`
45
77
  - WordPress block/plugin: `npx @wordpress/create-block@latest <slug>`
46
- - Laravel: `composer create-project laravel/laravel <name>`
47
78
  - Symfony: `composer create-project symfony/skeleton <name>`
48
79
  - Rails: `rails new <name>`
49
80
 
50
- These are `official` candidates, not active native kits. Until each planned
81
+ The remaining entries are `official` candidates, not active native kits. Until each planned
51
82
  post-create contract is implemented end to end, Workspai should guide users to
52
83
  create externally and then adopt/import the project.
53
84
 
@@ -72,7 +103,7 @@ Adoption still gives the project Workspace Intelligence:
72
103
  ## Product rule
73
104
 
74
105
  Do not convert an unsupported or ambiguous stack request into a different native
75
- kit. For example, a PHP, WordPress, Laravel, Symfony, or Rails request must not
106
+ kit. For example, a WordPress, Symfony, or Rails request must not
76
107
  be translated into FastAPI, NestJS, Go, Java, .NET, or a frontend kit.
77
108
 
78
109
  If executable create is unavailable, the planner should explain the supported
@@ -204,12 +204,29 @@ or update a registry.
204
204
  Workspace creation does not merge into or overwrite an existing target. If the
205
205
  resolved directory already exists, choose another name or output parent.
206
206
 
207
- To bring an existing repository into Workspai, use `adopt` or `import` instead:
207
+ To bring existing software into Workspai, use the operation that matches who
208
+ owns its location:
208
209
 
209
210
  ```bash
211
+ # Keep a project where it is.
210
212
  npx workspai adopt /path/to/project
213
+
214
+ # Copy or clone a project into the selected workspace.
215
+ npx workspai import /path/to/project --workspace /path/to/my-workspace
216
+
217
+ # Register an existing Workspai workspace without moving it.
218
+ npx workspai workspace connect /path/to/existing-workspace
219
+
220
+ # Restore and register a portable workspace archive.
221
+ npx workspai workspace import team.workspai-archive.zip --output ./team
211
222
  ```
212
223
 
224
+ Running `npx workspai create` interactively exposes the same choices as
225
+ “Create a project”, “Add existing software”, and—when appropriate—“Create
226
+ another workspace”. Inside a workspace, project and onboarding choices appear
227
+ first; creating another workspace remains an explicit escape hatch rather than
228
+ the default.
229
+
213
230
  ## Main workspace files
214
231
 
215
232
  A normal workspace includes:
@@ -249,7 +266,7 @@ npx workspai create
249
266
  If you choose project creation, the same project flow is used.
250
267
 
251
268
  When the terminal is interactive and the current directory is not inside a
252
- workspace, **every supported backend and frontend kit** shows the workspace
269
+ workspace, **every supported backend, frontend, desktop, and extension kit** shows the workspace
253
270
  management question before scaffolding:
254
271
 
255
272
  ```text
@@ -275,7 +292,12 @@ npx workspai create project fastapi.standard api
275
292
  npx workspai create project gofiber.standard gateway
276
293
  npx workspai create project springboot.standard orders
277
294
  npx workspai create project dotnet.webapi.clean billing
295
+ npx workspai create project rust.axum telemetry-api
278
296
  npx workspai create project frontend.nextjs dashboard
297
+ npx workspai create project desktop.tauri desktop-app
298
+ npx workspai create project desktop.electron admin-console
299
+ npx workspai create project extension.vscode editor-tools
300
+ npx workspai create project php.laravel customer-api
279
301
  ```
280
302
 
281
303
  The shorter frontend alias remains available:
@@ -295,6 +317,7 @@ npx workspai create frontend nextjs dashboard
295
317
  | `gogin.standard` | Go | Workspai npm CLI | No |
296
318
  | `springboot.standard` | Java | Workspai npm CLI | No |
297
319
  | `dotnet.webapi.clean` | .NET | Workspai npm CLI | No |
320
+ | `rust.axum` | Rust | Workspai npm CLI | No |
298
321
 
299
322
  NestJS runs on Node.js, but its current scaffold is provided through the
300
323
  RapidKit Core bridge.
@@ -320,6 +343,34 @@ Workspai has official-generator paths for:
320
343
  The ecosystem's official generator creates the application. Workspai then adds
321
344
  project metadata and performs the selected workspace registration.
322
345
 
346
+ ## Desktop, extension, and additional backend generators
347
+
348
+ | Category | Project | Kit | Creation owner |
349
+ | --------- | ----------------- | ------------------ | -------------------------------------- |
350
+ | Backend | Axum | `rust.axum` | Workspai deterministic Cargo baseline |
351
+ | Backend | Laravel | `php.laravel` | Composer / Laravel |
352
+ | Desktop | Tauri | `desktop.tauri` | create-tauri-app |
353
+ | Desktop | Electron Forge | `desktop.electron` | create-electron-app |
354
+ | Extension | VS Code Extension | `extension.vscode` | generator-code |
355
+
356
+ Every generated project receives a canonical `kind` and `category`. The four
357
+ user-facing categories are `backend`, `frontend`, `desktop`, and `extension`;
358
+ they remain visible in the Workspace Model and Knowledge Graph so consumers do
359
+ not have to guess a project’s role from its runtime.
360
+
361
+ Official generators may download packages and therefore need network access.
362
+ Each available integration requests the upstream latest stable channel rather
363
+ than pinning an old framework major. npm engine compatibility is enforced
364
+ strictly against the Node.js runtime running Workspai, and required ecosystem
365
+ tools such as Rust/Cargo, Git, PHP, or Composer are checked before generation.
366
+ The upstream generator remains authoritative for its exact supported runtime
367
+ range; Workspai records the `latest-stable` policy in the generated project
368
+ metadata and evidence.
369
+
370
+ `desktop.electron`, `extension.vscode`, and `php.laravel` do not accept
371
+ `--skip-install`, because their official generators do not expose a reliable,
372
+ documented no-install contract.
373
+
323
374
  # Where the project is created
324
375
 
325
376
  The project path is always:
@@ -441,6 +492,9 @@ npx workspai create project gofiber.standard gateway \
441
492
 
442
493
  Unlike `create workspace --here`, this turns the current directory itself into
443
494
  a workspace. It then creates the project under the requested output parent.
495
+ This registration is foundation-only: it does not probe Python or Poetry,
496
+ create a virtual environment, or install `rapidkit-core`. The selected kit owns
497
+ its runtime prerequisites and installation flow.
444
498
 
445
499
  For example, from `/home/me/platform`:
446
500
 
@@ -449,7 +503,9 @@ Workspace: /home/me/platform
449
503
  Project: /home/me/platform/gateway
450
504
  ```
451
505
 
452
- This uses the full current-folder workspace registration flow.
506
+ This uses the full current-folder Workspace Intelligence registration flow
507
+ (contract, model, graph, agent context, and registry) without coupling the
508
+ workspace to the optional Python engine.
453
509
 
454
510
  ## Choice 3: Create without workspace management
455
511