workspai 0.48.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 (243) hide show
  1. package/README.md +151 -75
  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 +84 -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 +11 -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 +50 -0
  30. package/contracts/release-readiness.v1.json +2 -2
  31. package/contracts/runtime-command-surface.v1.json +1456 -123
  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 +262 -0
  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-Y5UJLPS4.js → chunk-DDQ3XK3H.js} +13 -13
  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-I46XEIPL.js → chunk-JFUD73OZ.js} +52 -52
  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-5S3DJQEP.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-DBQNAMKP.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 +41 -6
  136. package/dist/index.js +268 -356
  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-WXJ6I7ES.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 +18 -10
  173. package/docs/README.md +49 -14
  174. package/docs/README_CONTENT_CONTRACT.md +19 -10
  175. package/docs/ci-workflows.md +3 -3
  176. package/docs/commands-reference.md +41 -10
  177. package/docs/contracts/ARTIFACT_CATALOG.md +72 -27
  178. package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +2 -0
  179. package/docs/contracts/RUNTIME_SUPPORT_MATRIX.md +3 -3
  180. package/docs/contracts/rapidkit-cli-contracts.json +2 -2
  181. package/docs/create-planner-capabilities.md +36 -5
  182. package/docs/creating-workspaces-and-projects.md +75 -15
  183. package/docs/doctor-command.md +148 -39
  184. package/docs/examples/ci-agent-grounding.yml +1 -1
  185. package/docs/from-code-to-shared-understanding.md +6 -3
  186. package/docs/graph-benchmark-methodology.md +2 -2
  187. package/docs/workspace-intelligence-evaluation.md +13 -6
  188. package/docs/workspace-intelligence-runner.md +17 -6
  189. package/docs/workspace-knowledge-graph.md +102 -7
  190. package/docs/workspace-operations.md +154 -10
  191. package/package.json +10 -5
  192. package/scripts/enterprise-package-smoke.mjs +13 -1
  193. package/templates/kits/fastapi-ddd/README.md.j2 +1 -1
  194. package/dist/analyze-EEEU3MIF.js +0 -1
  195. package/dist/autopilot-release-XGVXPOZI.js +0 -1
  196. package/dist/chunk-22DT744Z.js +0 -1
  197. package/dist/chunk-37CVKXBD.js +0 -1
  198. package/dist/chunk-3NU32T4A.js +0 -2
  199. package/dist/chunk-3ZK2GU7C.js +0 -1
  200. package/dist/chunk-4HDYADHT.js +0 -13
  201. package/dist/chunk-52PBRX7F.js +0 -1
  202. package/dist/chunk-54EP5CEV.js +0 -8
  203. package/dist/chunk-5XATWNME.js +0 -1
  204. package/dist/chunk-7YHK5NM3.js +0 -2
  205. package/dist/chunk-AFL3ACCR.js +0 -2
  206. package/dist/chunk-BFLJ2R4D.js +0 -80
  207. package/dist/chunk-EYJ2CQSK.js +0 -1
  208. package/dist/chunk-FTY7GGXJ.js +0 -33
  209. package/dist/chunk-FXQJX34Z.js +0 -1
  210. package/dist/chunk-GSWPGELT.js +0 -2
  211. package/dist/chunk-GZTYAEWX.js +0 -1
  212. package/dist/chunk-HDXNIN4N.js +0 -1
  213. package/dist/chunk-HZDXO65G.js +0 -36
  214. package/dist/chunk-J5ENLXDF.js +0 -1
  215. package/dist/chunk-KB44JP4M.js +0 -2
  216. package/dist/chunk-LHOZXC2M.js +0 -2
  217. package/dist/chunk-MER6ZBN2.js +0 -13
  218. package/dist/chunk-NAJCUQ4X.js +0 -2
  219. package/dist/chunk-OA537ZQ5.js +0 -1
  220. package/dist/chunk-OW42TZFB.js +0 -1
  221. package/dist/chunk-P3D5YQB2.js +0 -1
  222. package/dist/chunk-PHXQR6PX.js +0 -2
  223. package/dist/chunk-PRTR2DQ2.js +0 -1
  224. package/dist/chunk-QNONOO4F.js +0 -4
  225. package/dist/chunk-RHQW3DTP.js +0 -1
  226. package/dist/chunk-T4YR4RAI.js +0 -2
  227. package/dist/chunk-Y45WZR5N.js +0 -5
  228. package/dist/chunk-YJZOMRAS.js +0 -1
  229. package/dist/pipeline-TQM43A3K.js +0 -5
  230. package/dist/platform-capabilities-2B4QMZXE.js +0 -1
  231. package/dist/workspace-NCWRINEF.js +0 -1
  232. package/dist/workspace-archive-P76EDIUG.js +0 -10
  233. package/dist/workspace-contract-TU2I7GC2.js +0 -1
  234. package/dist/workspace-dependency-graph-BP4EXYQ5.js +0 -1
  235. package/dist/workspace-explain-MWUEN643.js +0 -1
  236. package/dist/workspace-explain-contract-ZPI3JXJU.js +0 -1
  237. package/dist/workspace-intelligence-MFJE7W67.js +0 -1
  238. package/dist/workspace-intelligence-runner-THYLHHMF.js +0 -1
  239. package/dist/workspace-mcp-serve-EZR6O76D.js +0 -3
  240. package/dist/workspace-model-7OU2M3LE.js +0 -1
  241. package/dist/workspace-model-hash-MHXK5MEI.js +0 -1
  242. package/dist/workspace-run-RLIYSOTN.js +0 -1
  243. package/dist/workspace-watch-3BPGLFLB.js +0 -1
@@ -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
@@ -1,16 +1,20 @@
1
1
  # Creating Workspaces and Projects
2
2
 
3
- This guide explains, in plain language, what Workspai does when you create a
4
- workspace or a project. It covers interactive commands, automation, project
5
- locations, workspace linking, supported kits, and the most important flags.
3
+ Use this guide when you want to start a new software system or add a new
4
+ application to an existing one. Workspai creates the files, records where the
5
+ project belongs, and makes it visible to the same checks and tools as the rest
6
+ of the workspace.
7
+
8
+ The sections below explain project locations, supported starters, interactive
9
+ commands, automation, and the most useful options.
6
10
 
7
11
  For a compact list of command syntax, see
8
12
  [commands-reference.md](./commands-reference.md).
9
13
 
10
14
  ## The two things you can create
11
15
 
12
- A **workspace** is the governed boundary that holds project registrations,
13
- policies, contracts, and Workspace Intelligence reports.
16
+ A **workspace** is the shared home for related projects, rules, and saved
17
+ Workspai reports.
14
18
 
15
19
  A **project** is an application or service, such as a FastAPI API, Go service,
16
20
  Spring Boot service, .NET API, or frontend application.
@@ -200,12 +204,29 @@ or update a registry.
200
204
  Workspace creation does not merge into or overwrite an existing target. If the
201
205
  resolved directory already exists, choose another name or output parent.
202
206
 
203
- 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:
204
209
 
205
210
  ```bash
211
+ # Keep a project where it is.
206
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
207
222
  ```
208
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
+
209
230
  ## Main workspace files
210
231
 
211
232
  A normal workspace includes:
@@ -245,7 +266,7 @@ npx workspai create
245
266
  If you choose project creation, the same project flow is used.
246
267
 
247
268
  When the terminal is interactive and the current directory is not inside a
248
- workspace, **every supported backend and frontend kit** shows the workspace
269
+ workspace, **every supported backend, frontend, desktop, and extension kit** shows the workspace
249
270
  management question before scaffolding:
250
271
 
251
272
  ```text
@@ -271,7 +292,12 @@ npx workspai create project fastapi.standard api
271
292
  npx workspai create project gofiber.standard gateway
272
293
  npx workspai create project springboot.standard orders
273
294
  npx workspai create project dotnet.webapi.clean billing
295
+ npx workspai create project rust.axum telemetry-api
274
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
275
301
  ```
276
302
 
277
303
  The shorter frontend alias remains available:
@@ -291,6 +317,7 @@ npx workspai create frontend nextjs dashboard
291
317
  | `gogin.standard` | Go | Workspai npm CLI | No |
292
318
  | `springboot.standard` | Java | Workspai npm CLI | No |
293
319
  | `dotnet.webapi.clean` | .NET | Workspai npm CLI | No |
320
+ | `rust.axum` | Rust | Workspai npm CLI | No |
294
321
 
295
322
  NestJS runs on Node.js, but its current scaffold is provided through the
296
323
  RapidKit Core bridge.
@@ -316,6 +343,34 @@ Workspai has official-generator paths for:
316
343
  The ecosystem's official generator creates the application. Workspai then adds
317
344
  project metadata and performs the selected workspace registration.
318
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
+
319
374
  # Where the project is created
320
375
 
321
376
  The project path is always:
@@ -437,6 +492,9 @@ npx workspai create project gofiber.standard gateway \
437
492
 
438
493
  Unlike `create workspace --here`, this turns the current directory itself into
439
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.
440
498
 
441
499
  For example, from `/home/me/platform`:
442
500
 
@@ -445,7 +503,9 @@ Workspace: /home/me/platform
445
503
  Project: /home/me/platform/gateway
446
504
  ```
447
505
 
448
- 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.
449
509
 
450
510
  ## Choice 3: Create without workspace management
451
511
 
@@ -588,13 +648,13 @@ native, official, and existing-project lanes.
588
648
 
589
649
  # Failure and cleanup behavior
590
650
 
591
- | Situation | Result |
592
- | -------------------------------------------------------- | -------------------------------------- |
593
- | Invalid name | Stops before normal scaffold writes |
594
- | Target directory already exists | Stops without merging or overwriting |
595
- | Project scaffold fails | Workspace linking does not run |
596
- | Git initialization fails | Usually warns and keeps the scaffold |
597
- | Go or Maven dependency warm-up fails | Warns and keeps the scaffold |
651
+ | Situation | Result |
652
+ | -------------------------------------------------------- | --------------------------------------------------------------------------- |
653
+ | Invalid name | Stops before normal scaffold writes |
654
+ | Target directory already exists | Stops without merging or overwriting |
655
+ | Project scaffold fails | Workspace linking does not run |
656
+ | Git initialization fails | Usually warns and keeps the scaffold |
657
+ | Go or Maven dependency warm-up fails | Warns and keeps the scaffold |
598
658
  | Workspace registration/finalization fails after scaffold | Lifecycle rollback restores metadata and removes a newly owned project tree |
599
659
 
600
660
  Create finalization uses a durable lifecycle transaction. On failure it restores
@@ -1,6 +1,8 @@
1
1
  # Workspai Doctor Command
2
2
 
3
- `doctor` checks health for the npm wrapper environment in system, workspace, or project scope.
3
+ Use `doctor` to find setup and dependency problems before they interrupt
4
+ development or block a release. It can check the computer, an entire workspace,
5
+ or one project, and reports what is wrong and which fixes are available.
4
6
 
5
7
  **Related:** [workspace-operations.md](./workspace-operations.md) · [commands-reference.md](./commands-reference.md) · [Documentation index](./README.md)
6
8
 
@@ -20,7 +22,7 @@ Checks host prerequisites:
20
22
  - RapidKit Core availability
21
23
  - Go (optional)
22
24
 
23
- ### 2) Workspace Check (Canonical)
25
+ ### 2) Workspace Check
24
26
 
25
27
  ```bash
26
28
  cd my-workspace
@@ -32,7 +34,8 @@ Checks:
32
34
  - all system checks
33
35
  - workspace marker resolution
34
36
  - project discovery and per-project health
35
- - dependency/env readiness by project type (Python/Node/Go)
37
+ - dependency, environment, test, quality, security, deployment, and coverage readiness per project
38
+ - runtime-native evidence without treating missing scanners as a clean result
36
39
 
37
40
  > Compatibility note: `npx workspai doctor --workspace` still works, but `doctor workspace` is the canonical form.
38
41
 
@@ -51,6 +54,8 @@ Checks:
51
54
  - dependency/env readiness for the selected project
52
55
  - enterprise probes (config contract, migration surface, runtime health surface)
53
56
  - score explainability breakdown for audit trails
57
+ - normalized dependency-audit and test-coverage evidence for CI, IDEs, and agents
58
+ - graph-aware root, impact-candidate, proof-path, and verification-target context
54
59
 
55
60
  > Compatibility note: `npx workspai doctor --project` also works.
56
61
 
@@ -82,16 +87,118 @@ npx workspai doctor project --json
82
87
  npx workspai doctor workspace --profile enterprise-strict --json
83
88
  ```
84
89
 
90
+ ## One verdict, backed by every probe
91
+
92
+ Doctor calculates one verdict from the host and every project probe:
93
+
94
+ - **Passed** means no blocking probe failed.
95
+ - **Needs attention** means the current profile found advisory work.
96
+ - **Blocked** means at least one error-level probe failed.
97
+
98
+ The score and verdict use the same counts. A failed security, coverage, or
99
+ runtime probe cannot be hidden behind a high percentage or a healthy host. New
100
+ evidence includes the host/project score components and per-project probe
101
+ summary; semantic validation rejects contradictory artifacts before they are
102
+ written. Older v1 evidence remains readable so existing workspaces and IDEs do
103
+ not break during migration.
104
+
105
+ ## Graph-aware diagnosis
106
+
107
+ When the project belongs to a workspace with a current model and Knowledge
108
+ Graph, Doctor enriches every warning or failure with evidence-backed structural
109
+ context:
110
+
111
+ - the package, file, service, deployment, or other graph entity nearest to the
112
+ finding;
113
+ - reachable APIs, services, infrastructure, owners, and other affected
114
+ candidates;
115
+ - connected test suites or CI pipelines that can verify the repair;
116
+ - the exact proof path and source artifacts supporting each connection;
117
+ - explicit unknowns when the graph cannot prove an effect or verification path.
118
+
119
+ Runtime-native dependency audits preserve the affected package names,
120
+ versions, advisory identifiers, and available severity/directness metadata.
121
+ Doctor uses those subjects to select the corresponding package or module
122
+ entity in the current project's graph neighborhood. If an audit names a
123
+ dependency that the graph cannot resolve, the diagnosis reports it under
124
+ `unresolvedSubjects`; it does not silently attach the finding to an unrelated
125
+ package.
126
+
127
+ This data is available under `project.graphDiagnosis` in project and workspace
128
+ Doctor JSON evidence. Doctor rejects stale, invalid, or model-unbound graph
129
+ evidence instead of presenting it as current.
130
+
131
+ Graph reachability is deliberately described as a **structural impact
132
+ candidate**, not runtime causality. It narrows investigation and gives Studio a
133
+ proof-carrying starting point; final verification still comes from the
134
+ runtime-owned checks.
135
+
136
+ ## Multi-runtime dependency evidence
137
+
138
+ Doctor selects the audit adapter from the detected runtime and lockfile:
139
+
140
+ | Ecosystem | Runtime-native evidence |
141
+ | ------------------------------------ | ------------------------------------------------------------------ |
142
+ | npm | npm, pnpm, Yarn Classic/Berry, Bun, or Deno audit |
143
+ | Python | `pip-audit` through the project virtual environment when available |
144
+ | Go | `govulncheck` |
145
+ | Rust | `cargo audit` |
146
+ | PHP | `composer audit` |
147
+ | Ruby | `bundler-audit` |
148
+ | .NET | vulnerable transitive package report |
149
+ | Elixir | `mix hex.audit` |
150
+ | Java, Scala, Kotlin, Clojure, C, C++ | project/organization-owned scanner contract |
151
+
152
+ Every result records the exact executable, arguments, ecosystem, severity
153
+ counts, and limitations. A missing tool, timeout, registry failure,
154
+ unparseable response, or unsupported zero-configuration workflow is explicit
155
+ evidence—not a zero-vulnerability result. Compatible automatic fixes never use
156
+ force; unresolved findings move to a targeted upgrade and verification plan.
157
+
158
+ ## Coverage goals that Doctor can verify
159
+
160
+ Generate a normalized baseline from the current project:
161
+
162
+ ```bash
163
+ npx workspai project coverage --run --target 80 --strict --json
164
+ ```
165
+
166
+ Workspai detects the runtime-owned runner, reads machine-readable coverage, and
167
+ normalizes lines, branches, functions, statements, low-coverage files, source
168
+ hash, and the requested target. It understands Istanbul/LCOV, coverage.py,
169
+ Go coverprofiles, JaCoCo/Cobertura/Clover, scoverage, SimpleCov, and LLVM
170
+ coverage. Runtime plans cover Node/Bun/Deno, Python, Go, JVM, .NET, Rust, PHP,
171
+ Ruby, Elixir, Clojure, Scala, Kotlin, C, and C++; if a project-owned runner does
172
+ not emit one of those portable formats, the result is explicitly `unavailable`
173
+ with setup guidance rather than an invented percentage.
174
+
175
+ Doctor consumes the resulting
176
+ `.workspai/reports/project-test-coverage-last-run.json`. If it is missing,
177
+ below target, unavailable, or failed, the probe tells Studio what evidence to
178
+ generate or which low-coverage source paths need source-aware tests. The repair
179
+ contract explicitly forbids lowering the target, excluding difficult files,
180
+ skipping tests, or removing assertions to manufacture a pass.
181
+
182
+ When the project belongs to a workspace, Workspai also writes:
183
+
184
+ ```text
185
+ <workspace>/.workspai/reports/project-test-coverage-last-run.json
186
+ <workspace>/.workspai/reports/projects/<slug>--<hash>/project-test-coverage-last-run.json
187
+ ```
188
+
189
+ The same namespaced layout is used for project Doctor evidence, preventing
190
+ same-name projects from overwriting each other.
191
+
85
192
  ## Enterprise Fix Pipeline
86
193
 
87
194
  Doctor supports policy profiles so the same evidence can be interpreted correctly in local,
88
195
  CI, release, and enterprise gates:
89
196
 
90
- | Profile | Use when | Warning behavior |
91
- | ------------------- | -------------------------------- | ---------------------------------------- |
92
- | `local` | Developer diagnostics | Report warnings, do not block |
93
- | `ci` | CI feedback loop | Exit `2` on warnings, `1` on errors |
94
- | `release` | Release readiness gate | Exit `1` on warnings or errors |
197
+ | Profile | Use when | Warning behavior |
198
+ | ------------------- | --------------------------------- | --------------------------------------------------------- |
199
+ | `local` | Developer diagnostics | Report warnings, do not block |
200
+ | `ci` | CI feedback loop | Exit `2` on warnings, `1` on errors |
201
+ | `release` | Release readiness gate | Exit `1` on warnings or errors |
95
202
  | `enterprise-strict` | Enterprise/studio repair workflow | Exit `1`; every warning needs evidence or repair guidance |
96
203
 
97
204
  `--strict` maps to the `release` profile and `--ci` maps to the `ci` profile for backward
@@ -101,11 +208,11 @@ card is advisory locally but blocking for release.
101
208
  Doctor also attaches a **freshness contract** to evidence so tools do not treat live state as
102
209
  durable structure:
103
210
 
104
- | Freshness category | Meaning | Default TTL |
105
- | ------------------ | -------------------------------------------- | ----------- |
106
- | `structure` | Durable project/workspace shape and markers | 7 days |
211
+ | Freshness category | Meaning | Default TTL |
212
+ | ------------------ | --------------------------------------------- | ----------- |
213
+ | `structure` | Durable project/workspace shape and markers | 7 days |
107
214
  | `verification` | Test, script, lint, quality, and probe checks | 24 hours |
108
- | `state` | Live dependency/security state | 5 minutes |
215
+ | `state` | Live dependency/security state | 5 minutes |
109
216
 
110
217
  Each probe can include `freshness`, and each JSON artifact includes `evidenceFreshness`.
111
218
  Workspai and CI should refresh stale or `verifyBeforeUse` evidence before claiming a project is
@@ -113,10 +220,10 @@ ready, repaired, or release-safe.
113
220
 
114
221
  Doctor probes also include an **issue taxonomy** and **repair intent** for Studio-driven repair:
115
222
 
116
- | Field | Purpose |
117
- | ------------------- | ----------------------------------------------------------------------- |
118
- | `issueClass` | Stable category such as `security`, `test`, `container`, or `dependency` |
119
- | `operationalImpact` | Product impact such as `ci-risk`, `release-risk`, or `security-risk` |
223
+ | Field | Purpose |
224
+ | ------------------- | ------------------------------------------------------------------------------------------------------------- |
225
+ | `issueClass` | Stable category such as `security`, `test`, `container`, or `dependency` |
226
+ | `operationalImpact` | Product impact such as `ci-risk`, `release-risk`, or `security-risk` |
120
227
  | `repairIntent.mode` | Studio action mode: `edit-file`, `run-command`, `review-required`, `verify-before-fix`, or `refresh-evidence` |
121
228
 
122
229
  This lets Workspai distinguish "show guidance" from "apply an approved file edit", "run a command",
@@ -164,15 +271,15 @@ same repair evidence without guessing the workspace root.
164
271
 
165
272
  The remediation plan is intentionally ordered for Studio execution:
166
273
 
167
- | Phase | Purpose |
168
- | --- | --- |
169
- | `dependency-baseline` | Restore package/runtime dependency baselines before other fixes |
170
- | `local-environment` | Seed local env files without overwriting operator-owned values |
171
- | `source-hygiene` | Apply safe project-scoped hygiene files such as `.dockerignore` or `.gitignore` rules |
172
- | `command-contract` | Add missing test, quality, audit, or runtime command contracts |
173
- | `runtime-governance` | Run RapidKit/workspace initializers that may touch multiple project surfaces |
174
- | `manual-review` | Surface guidance that requires a human decision |
175
- | `generic-execution` | Last-resort shell remediation when no typed operation exists |
274
+ | Phase | Purpose |
275
+ | --------------------- | ------------------------------------------------------------------------------------- |
276
+ | `dependency-baseline` | Restore package/runtime dependency baselines before other fixes |
277
+ | `local-environment` | Seed local env files without overwriting operator-owned values |
278
+ | `source-hygiene` | Apply safe project-scoped hygiene files such as `.dockerignore` or `.gitignore` rules |
279
+ | `command-contract` | Add missing test, quality, audit, or runtime command contracts |
280
+ | `runtime-governance` | Run RapidKit/workspace initializers that may touch multiple project surfaces |
281
+ | `manual-review` | Surface guidance that requires a human decision |
282
+ | `generic-execution` | Last-resort shell remediation when no typed operation exists |
176
283
 
177
284
  `dependsOn` lets Workspai avoid false loops: for example, a missing test script repair can depend on
178
285
  the project dependency baseline step, so Studio can run or ask for approval in the same order Doctor
@@ -281,15 +388,17 @@ change is safe enough for Doctor to apply with approval and post-fix verificatio
281
388
 
282
389
  Runtime-native probes add a second layer on top of the generic surface checks:
283
390
 
284
- | Runtime family | Native signals sampled by Doctor |
285
- | -------------- | --------------------------------------------------------------------- |
286
- | Node/Bun/Deno | test runners, ESLint/Prettier/Biome markers, audit script/tooling |
287
- | Python | pytest/tox/nox, Ruff/Black/Mypy, pip-audit/Safety/Bandit markers |
288
- | Go | `*_test.go`, golangci-lint/Makefile quality, govulncheck/gosec hints |
289
- | Java | Maven/Gradle tests, Checkstyle/Spotless/PMD, OWASP dependency checks |
290
- | .NET | test projects, `.editorconfig`, NuGet audit and vulnerable checks |
291
- | Rust | test/Cargo markers, rustfmt/clippy, cargo-audit hints |
292
- | PHP/Ruby/etc. | PHPUnit/Pint/PHPStan, RSpec/RuboCop/Bundler-audit and ecosystem hints |
391
+ | Runtime family | Native signals sampled by Doctor |
392
+ | ----------------- | -------------------------------------------------------------------------------- |
393
+ | Node/Bun/Deno | Jest/Vitest/native tests, ESLint/Prettier/Biome, package-manager audit |
394
+ | Python | pytest/tox/nox, Ruff/Black/Mypy, pip-audit/Safety/Bandit |
395
+ | Go | `*_test.go`, golangci-lint, govulncheck/gosec |
396
+ | Java/Kotlin/Scala | Maven/Gradle/sbt tests, Checkstyle/Spotless/Detekt/Scalafmt, declared JVM audit |
397
+ | .NET | test projects, `.editorconfig`, NuGet audit |
398
+ | Rust | Cargo tests, rustfmt/clippy, cargo-audit |
399
+ | PHP/Ruby | PHPUnit/Pest/PHPStan and RSpec/Minitest/RuboCop/Bundler-audit |
400
+ | Elixir/Clojure | ExUnit/Credo/Hex and clojure.test/Kaocha/clj-kondo |
401
+ | C/C++ | CTest/native test markers, clang tooling, declared SBOM or vulnerability scanner |
293
402
 
294
403
  ## CI Example
295
404
 
@@ -311,11 +420,11 @@ jobs:
311
420
 
312
421
  ## Exit Codes
313
422
 
314
- | Code | Meaning |
315
- | ---- | ------------------------------ |
316
- | `0` | Passed; local-profile warnings remain advisory |
423
+ | Code | Meaning |
424
+ | ---- | ------------------------------------------------------------------ |
425
+ | `0` | Passed; local-profile warnings remain advisory |
317
426
  | `1` | Errors, or warnings under `release`/`enterprise-strict`/`--strict` |
318
- | `2` | Warning-only result under the `ci` profile or `--ci` |
427
+ | `2` | Warning-only result under the `ci` profile or `--ci` |
319
428
 
320
429
  ## Enterprise Probe Extensions
321
430
 
@@ -458,7 +567,7 @@ Legacy evidence without `schemaVersion` is still accepted. Unknown versions are
458
567
 
459
568
  ```bash
460
569
  npx workspai bootstrap [--profile <profile>]
461
- npx workspai setup <python|node|go|java|dotnet> [--warm-deps]
570
+ npx workspai setup <python|node|go|java|dotnet|rust|php> [--warm-deps]
462
571
  npx workspai workspace list
463
572
  npx workspai cache <status|clear|prune|repair>
464
573
  npx workspai mirror <status|sync|verify|rotate>
@@ -39,7 +39,7 @@ jobs:
39
39
  # Exit 1 = hard execution failure; exit 2 = completed but evidence-blocked.
40
40
  # Continue here only so the durable run report and blocker evidence can
41
41
  # always be uploaded; the final step below still fails either outcome.
42
- run: npx workspai workspace intelligence run --for-agent codex --strict --json
42
+ run: npx workspai workspace intelligence run --for-agent generic --strict --json
43
43
  continue-on-error: true
44
44
  id: intelligence
45
45
 
@@ -32,7 +32,10 @@ flowchart TB
32
32
  1. **Connect your software.** Create something new, adopt an existing project
33
33
  without moving it, or import a repository.
34
34
  2. **Understand the workspace.** Workspai builds one model of the projects and
35
- how they relate.
35
+ how they relate. That Workspace Model is canonical. Workspai then derives a
36
+ proof-backed Knowledge Graph from the model-owned project inventory so tools
37
+ can query files, APIs, packages, infrastructure, tests, ownership, and
38
+ decisions without creating a second source of truth.
36
39
  3. **Understand change and verify it.** Workspai shows affected areas and checks
37
40
  the evidence needed for a safe decision.
38
41
  4. **Share the result.** Developers, CI, IDEs, AI agents, and MCP clients consume
@@ -62,14 +65,14 @@ render Mermaid. When this source changes, regenerate
62
65
  Run the complete canonical chain in its versioned order:
63
66
 
64
67
  ```bash
65
- npx workspai workspace intelligence run --for-agent codex --json
68
+ npx workspai workspace intelligence run --for-agent generic --json
66
69
  ```
67
70
 
68
71
  For enterprise CI and release enforcement, add `--strict`. A warning or
69
72
  needs-attention verdict then produces a blocked report and exit code `2`:
70
73
 
71
74
  ```bash
72
- npx workspai workspace intelligence run --for-agent codex --strict --json
75
+ npx workspai workspace intelligence run --for-agent generic --strict --json
73
76
  ```
74
77
 
75
78
  `pipeline` is the broader governance/release orchestrator. It does not replace
@@ -27,8 +27,8 @@ The result conforms to
27
27
  It records:
28
28
 
29
29
  - the query and result limit;
30
- - the graph schema, entity/relation/proof counts, source artifact, and source
31
- model SHA-256;
30
+ - the graph schema, entity/relation/proof counts, source artifact, and stable
31
+ structural model SHA-256;
32
32
  - the number and size of readable, deduplicated proof-source artifacts;
33
33
  - the bounded retrieval size and match count;
34
34
  - unreadable artifacts rather than silently excluding them;
@@ -1,11 +1,13 @@
1
1
  # Measure Workspace Intelligence Usage
2
2
 
3
- Workspai can record model usage, tool activity, cost provenance, and the final
4
- verified outcome of an agent task. The resulting artifact is designed for CLI,
5
- IDE, CI, and dashboard consumers.
3
+ Use this feature to answer a practical question: did focused workspace context
4
+ help an AI task use fewer tokens, cost less, or reach a verified result?
6
5
 
7
- It does not store prompt or response bodies. Optional SHA-256 hashes let a
8
- consumer correlate calls without copying private content into the report.
6
+ Workspai records model usage, tool activity, reported cost, and the final
7
+ verified outcome in one report that the CLI, IDE, CI, and dashboards can read.
8
+
9
+ It does not store prompt or response text. Optional SHA-256 hashes can connect
10
+ related calls without copying private content into the report.
9
11
 
10
12
  ## Start a measured task
11
13
 
@@ -50,7 +52,7 @@ printf '%s\n' '{
50
52
  | `provider-reported` | The provider returned the count |
51
53
  | `tokenizer-counted` | A named tokenizer counted the exact serialized input or output |
52
54
  | `estimated` | A documented estimate; never presented as provider billing |
53
- | `unavailable` | The provider exposed no usable count |
55
+ | `unavailable` | The provider exposed no usable count |
54
56
 
55
57
  Tool events record progress and repeated work without storing command output:
56
58
 
@@ -92,6 +94,7 @@ Event bodies conform to
92
94
  ```bash
93
95
  npx workspai workspace eval status --json
94
96
  npx workspai workspace eval report --json
97
+ npx workspai workspace eval report --output ./evidence/my-evaluation.json --json
95
98
  ```
96
99
 
97
100
  Finalization writes:
@@ -100,6 +103,10 @@ Finalization writes:
100
103
  .workspai/reports/workspace-intelligence-evaluation-last-run.json
101
104
  ```
102
105
 
106
+ `--output` keeps that governed last-run artifact and also copies the finalized
107
+ report to the requested workspace-relative or absolute path. JSON output reports
108
+ the path that was actually requested, so automation does not need to infer it.
109
+
103
110
  Both live and final reports conform to
104
111
  [`workspace-intelligence-evaluation.v1.json`](../contracts/workspace-intelligence/workspace-intelligence-evaluation.v1.json).
105
112
 
@@ -1,14 +1,25 @@
1
1
  # Unified Workspace Intelligence Runner
2
2
 
3
- `workspace intelligence run` is the canonical contract-backed entrypoint for
4
- refreshing Workspace Intelligence evidence in one deterministic execution. Use
5
- it from a Workspai workspace root:
3
+ Use one command when you want the latest answer to these questions:
4
+
5
+ - What projects and relationships exist now?
6
+ - What changed, and what may be affected?
7
+ - Is the workspace healthy and ready?
8
+ - What should developers, CI, IDEs, and AI tools read?
9
+
10
+ Run it from a Workspai workspace root:
6
11
 
7
12
  ```bash
8
- npx workspai workspace intelligence run --for-agent codex --strict --json
13
+ npx workspai workspace intelligence run --for-agent generic --strict --json
9
14
  ```
10
15
 
11
- The authoritative result is written atomically to
16
+ `generic` is the vendor-neutral context surface. Replace it with `codex`,
17
+ `claude`, `cursor`, or `orca` for agent-specific context. The `agent-sync`
18
+ stage also publishes shared grounding for GitHub Copilot, VS Code, and
19
+ `AGENTS.md` consumers.
20
+
21
+ Workspai runs the required steps in a fixed order and saves one final report.
22
+ The technical contract writes that report atomically to
12
23
  `.workspai/reports/workspace-intelligence-run-last-run.json` with schema
13
24
  `workspace-intelligence-run.v1`. JSON stdout returns the same report payload.
14
25
  Consumers should read the persisted report when they need durable evidence and
@@ -154,7 +165,7 @@ publish it without applying the relevant redaction policy.
154
165
  The simplest hard gate is:
155
166
 
156
167
  ```bash
157
- npx workspai workspace intelligence run --for-agent codex --strict --json
168
+ npx workspai workspace intelligence run --for-agent generic --strict --json
158
169
  ```
159
170
 
160
171
  Both exit `1` and exit `2` fail a normal CI step. If artifacts must be uploaded