workspai 0.65.0 → 0.66.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 (195) hide show
  1. package/README.md +4 -1
  2. package/contracts/agent-customization-pack.v1.json +4 -2
  3. package/contracts/analyze-last-run.v1.json +9 -1
  4. package/contracts/cli-runtime-command-inventory.v1.snapshot.json +113 -0
  5. package/contracts/extension-cli-compatibility.v1.json +2 -0
  6. package/contracts/published-contract-catalog.v1.json +10 -0
  7. package/contracts/runtime-command-surface.v1.json +47 -2
  8. package/contracts/workspace-activity-event.v1.json +132 -0
  9. package/contracts/workspace-intelligence/agent-bootstrap-receipt.v1.json +17 -0
  10. package/contracts/workspace-intelligence/mcp-design.v1.json +49 -2
  11. package/contracts/workspace-intelligence/project-agent-entry.v1.json +3 -0
  12. package/contracts/workspace-intelligence/project-context-agent.v1.json +49 -7
  13. package/contracts/workspace-intelligence/project-knowledge-graph-reference.v1.json +51 -0
  14. package/contracts/workspace-intelligence/workspace-knowledge-graph.v1.json +97 -2
  15. package/contracts/workspace-intelligence/workspace-skills-index.v1.json +34 -0
  16. package/dist/analyze-UJQWGNM2.js +1 -0
  17. package/dist/{artifact-remediation-plan-XIQNI35L.js → artifact-remediation-plan-M2XBS2IU.js} +1 -1
  18. package/dist/autopilot-release-U6F4M2BQ.js +1 -0
  19. package/dist/capabilities-command-XUKPO25Z.js +1 -0
  20. package/dist/chunk-2LIVMG5C.js +2 -0
  21. package/dist/{chunk-XGE2FDI4.js → chunk-2PACEMNE.js} +1 -1
  22. package/dist/chunk-334J2KIP.js +7 -0
  23. package/dist/{chunk-6TBTMWNA.js → chunk-3H5ACWWZ.js} +1 -1
  24. package/dist/{chunk-HCFWT42C.js → chunk-3NM3JAZW.js} +1 -1
  25. package/dist/chunk-4XEH3WNV.js +13 -0
  26. package/dist/chunk-5OA33JH2.js +2 -0
  27. package/dist/chunk-5TY74LLW.js +2 -0
  28. package/dist/{chunk-QCKWQFCD.js → chunk-5U4L6VF2.js} +1 -1
  29. package/dist/{chunk-W6FHVXNL.js → chunk-5XGR3LRI.js} +1 -1
  30. package/dist/{chunk-KTN2ARZJ.js → chunk-6JX56VAL.js} +3 -3
  31. package/dist/chunk-6UNATTB7.js +1 -0
  32. package/dist/{chunk-J3X56S7L.js → chunk-727IQFGN.js} +1 -1
  33. package/dist/chunk-7FF5EOIO.js +2 -0
  34. package/dist/{chunk-D5YJOQYK.js → chunk-AP4PV6WJ.js} +1 -1
  35. package/dist/chunk-AXUA7PFV.js +2 -0
  36. package/dist/chunk-B4IVVTMQ.js +2 -0
  37. package/dist/{chunk-LNXIMF3O.js → chunk-C4S22E6S.js} +1 -1
  38. package/dist/{chunk-PXWKMPPI.js → chunk-D4UHRJAP.js} +1 -1
  39. package/dist/chunk-DUBOKZMA.js +49 -0
  40. package/dist/{chunk-VYDURWN7.js → chunk-ECLMYTWT.js} +1 -1
  41. package/dist/{chunk-2RL6RRT2.js → chunk-EHH4SKVH.js} +50 -50
  42. package/dist/chunk-EP4CUWOO.js +9 -0
  43. package/dist/chunk-FY4X2VOE.js +39 -0
  44. package/dist/chunk-GAYK3WGV.js +2 -0
  45. package/dist/{chunk-YUGKQ44M.js → chunk-H5RJCS5E.js} +1 -1
  46. package/dist/{chunk-YN5X2FTP.js → chunk-H7MRINGP.js} +1 -1
  47. package/dist/chunk-HJLGXFMK.js +1 -0
  48. package/dist/{chunk-VRGEPPUB.js → chunk-HLWDIIWL.js} +1 -1
  49. package/dist/{chunk-HDNATYW7.js → chunk-IIFFEEMX.js} +1 -1
  50. package/dist/chunk-IVF6NEHS.js +1 -0
  51. package/dist/chunk-JC4XSU7G.js +1 -0
  52. package/dist/chunk-JRP6WP5C.js +681 -0
  53. package/dist/chunk-JZJBA2V2.js +1 -0
  54. package/dist/{chunk-N4QQADXX.js → chunk-L5CCIIF2.js} +1 -1
  55. package/dist/chunk-L5Q2S5GY.js +3 -0
  56. package/dist/chunk-LPCZHKD5.js +1 -0
  57. package/dist/chunk-MZ7U4BIQ.js +157 -0
  58. package/dist/chunk-NMXGSVMD.js +1 -0
  59. package/dist/{chunk-GQSRNUCU.js → chunk-NVND4727.js} +3 -3
  60. package/dist/chunk-O37UBRMX.js +4 -0
  61. package/dist/chunk-OI2VOU6S.js +1 -0
  62. package/dist/chunk-PD7Y6HIM.js +2 -0
  63. package/dist/chunk-PJPS7CNH.js +1 -0
  64. package/dist/chunk-QGAPGZPL.js +97 -0
  65. package/dist/chunk-R2M5OJOK.js +5 -0
  66. package/dist/chunk-SX6A656X.js +1 -0
  67. package/dist/{chunk-X6TNBARH.js → chunk-TABXSDTR.js} +2 -2
  68. package/dist/chunk-TTHO4MFC.js +2 -0
  69. package/dist/chunk-U5ENEDJA.js +7 -0
  70. package/dist/chunk-UOCERSAN.js +1 -0
  71. package/dist/chunk-UPIPSSXY.js +1 -0
  72. package/dist/chunk-UTV4DTNM.js +1 -0
  73. package/dist/chunk-VA5VSOBL.js +2 -0
  74. package/dist/chunk-VQOWB26M.js +12 -0
  75. package/dist/chunk-VQZ5PI5J.js +1 -0
  76. package/dist/chunk-WTWRSEOW.js +1 -0
  77. package/dist/{chunk-D65FCQIO.js → chunk-XESFJN52.js} +1 -1
  78. package/dist/{chunk-YYQEWAES.js → chunk-XQFWUM2P.js} +1 -1
  79. package/dist/chunk-XWKGZRHN.js +1 -0
  80. package/dist/{chunk-WRQWVSBJ.js → chunk-YX5VWPR5.js} +1 -1
  81. package/dist/chunk-ZQH2I5RQ.js +1 -0
  82. package/dist/{create-ALT2ME6H.js → create-SOLLXXAB.js} +1 -1
  83. package/dist/{demo-kit-QHIDCSBI.js → demo-kit-5UQH2OXC.js} +1 -1
  84. package/dist/{doctor-RW4R3O5C.js → doctor-NQ5PUCUP.js} +1 -1
  85. package/dist/{dotnet-webapi-clean-AVHPJG7Y.js → dotnet-webapi-clean-YEHYIGOT.js} +1 -1
  86. package/dist/{goal-lifecycle-VYOKS6E6.js → goal-lifecycle-IPNY7KNR.js} +1 -1
  87. package/dist/goal-pack-2WV3EA4Y.js +1 -0
  88. package/dist/{gofiber-standard-47S2GYAO.js → gofiber-standard-C44IIQYH.js} +1 -1
  89. package/dist/{gogin-standard-EWB4XNOI.js → gogin-standard-X7VKACVR.js} +1 -1
  90. package/dist/index.d.ts +8 -2
  91. package/dist/index.js +170 -170
  92. package/dist/live-command-Q6E45N7S.js +18 -0
  93. package/dist/{pipeline-U4N2DVD7.js → pipeline-MIMENSI7.js} +1 -1
  94. package/dist/{project-agent-entry-YAQCHIMP.js → project-agent-entry-OWLJ3IHQ.js} +1 -1
  95. package/dist/project-intelligence-lens-I67EO6AE.js +1 -0
  96. package/dist/{project-test-coverage-4S7MEQ6T.js → project-test-coverage-OPDVSFPH.js} +1 -1
  97. package/dist/{pythonRapidkitExec-VAW5XE4Z.js → pythonRapidkitExec-44ORGQ4R.js} +1 -1
  98. package/dist/{rust-axum-M5X4ZC4Z.js → rust-axum-JKZTZDRZ.js} +1 -1
  99. package/dist/{springboot-standard-Y5ADLZMQ.js → springboot-standard-PI4FLTAN.js} +1 -1
  100. package/dist/verified-goal-46JWNCDY.js +1 -0
  101. package/dist/{workspace-HGUZWNAB.js → workspace-KO37XHF6.js} +1 -1
  102. package/dist/{workspace-agent-sync-GEN3KBAX.js → workspace-agent-sync-32FIJQBH.js} +1 -1
  103. package/dist/{workspace-archive-ZBCKJHXS.js → workspace-archive-6R5DRNZW.js} +1 -1
  104. package/dist/{workspace-context-4WIWFW26.js → workspace-context-JKRPX775.js} +1 -1
  105. package/dist/{workspace-contract-7DXK4GF5.js → workspace-contract-4T3NYNK5.js} +1 -1
  106. package/dist/workspace-explain-MOGL4GEA.js +1 -0
  107. package/dist/workspace-explain-contract-W2E6LF4Q.js +1 -0
  108. package/dist/{workspace-feedback-RQ4TGJW6.js → workspace-feedback-6VQ7T4CR.js} +1 -1
  109. package/dist/{workspace-foundation-J3NNRMI3.js → workspace-foundation-GHWO3BZU.js} +1 -1
  110. package/dist/{workspace-graph-stream-PQI7OGCE.js → workspace-graph-stream-PTVS47NJ.js} +1 -1
  111. package/dist/workspace-graph-token-efficiency-Z5JD5NHI.js +1 -0
  112. package/dist/{workspace-history-SYCDK7FO.js → workspace-history-M2K4M2JY.js} +1 -1
  113. package/dist/{workspace-intelligence-6FS26JOQ.js → workspace-intelligence-PJIPTXL3.js} +1 -1
  114. package/dist/{workspace-intelligence-evaluation-CQDKOYZZ.js → workspace-intelligence-evaluation-GONCRE6O.js} +1 -1
  115. package/dist/{workspace-intelligence-runner-XYUPCSLN.js → workspace-intelligence-runner-M47QR3JM.js} +1 -1
  116. package/dist/{workspace-intelligence-runtime-registry-IW6J53LO.js → workspace-intelligence-runtime-registry-FFGQF4A7.js} +1 -1
  117. package/dist/workspace-knowledge-graph-V2EAYDCL.js +1 -0
  118. package/dist/{workspace-knowledge-graph-contract-L3CLAM2M.js → workspace-knowledge-graph-contract-VANN7RCA.js} +1 -1
  119. package/dist/{workspace-knowledge-graph-query-FZXSPWGK.js → workspace-knowledge-graph-query-RASPF7FS.js} +1 -1
  120. package/dist/workspace-knowledge-graph-snapshot-5YIG6EMG.js +1 -0
  121. package/dist/{workspace-marker-7NHMDIRL.js → workspace-marker-XGAWZZDX.js} +1 -1
  122. package/dist/workspace-mcp-serve-YRORNE4P.js +3 -0
  123. package/dist/workspace-model-VSVKLX7M.js +1 -0
  124. package/dist/{workspace-onboarding-X3PWRIIS.js → workspace-onboarding-2VMJZVLZ.js} +1 -1
  125. package/dist/{workspace-python-engine-state-J4QKW55K.js → workspace-python-engine-state-BE4A3BL5.js} +1 -1
  126. package/dist/{workspace-readme-G7TZ3V5T.js → workspace-readme-6X3GLTBM.js} +2 -2
  127. package/dist/{workspace-registry-summary-LJN4WHIZ.js → workspace-registry-summary-QVSJKKTX.js} +1 -1
  128. package/dist/workspace-repair-engine-WSKV3Q4V.js +3 -0
  129. package/dist/workspace-run-3BXKTLVL.js +1 -0
  130. package/dist/{workspace-verify-USRRIM2F.js → workspace-verify-EJCSOBIK.js} +1 -1
  131. package/dist/{workspace-watch-43YZPLF7.js → workspace-watch-JTIFBF4Z.js} +1 -1
  132. package/docs/SETUP.md +10 -0
  133. package/docs/agent-entry.md +22 -7
  134. package/docs/ci-workflows.md +1 -1
  135. package/docs/commands-reference.md +41 -7
  136. package/docs/contracts/ARTIFACT_CATALOG.md +63 -44
  137. package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +1 -0
  138. package/docs/contracts/NAMING_AND_COEXISTENCE.md +20 -18
  139. package/docs/contracts/README.md +4 -3
  140. package/docs/real-world-qualification.md +19 -3
  141. package/docs/workspace-knowledge-graph.md +95 -27
  142. package/docs/workspace-live-activity.md +199 -0
  143. package/docs/workspace-operations.md +32 -9
  144. package/package.json +1 -1
  145. package/dist/analyze-5PDVWECJ.js +0 -1
  146. package/dist/autopilot-release-JVIJCTKX.js +0 -1
  147. package/dist/capabilities-command-LHM3XIS6.js +0 -1
  148. package/dist/chunk-2647BYBC.js +0 -1
  149. package/dist/chunk-27UR373Z.js +0 -1
  150. package/dist/chunk-2C5ZBVBI.js +0 -2
  151. package/dist/chunk-6JWNDWOA.js +0 -1
  152. package/dist/chunk-CCDGHPEJ.js +0 -2
  153. package/dist/chunk-DFG33SBR.js +0 -2
  154. package/dist/chunk-FY4IIAIF.js +0 -1
  155. package/dist/chunk-HEZZ72V4.js +0 -94
  156. package/dist/chunk-HN7P4T3B.js +0 -681
  157. package/dist/chunk-ILIBOMYL.js +0 -1
  158. package/dist/chunk-J7QYANXK.js +0 -8
  159. package/dist/chunk-JD3A5QM6.js +0 -2
  160. package/dist/chunk-JQLJBK5N.js +0 -1
  161. package/dist/chunk-KLSSPJTV.js +0 -1
  162. package/dist/chunk-L22EABIC.js +0 -7
  163. package/dist/chunk-MDTI3UEB.js +0 -1
  164. package/dist/chunk-MOSXTVPU.js +0 -1
  165. package/dist/chunk-MYJQGGIU.js +0 -5
  166. package/dist/chunk-NOV6723U.js +0 -1
  167. package/dist/chunk-NYEAMMUL.js +0 -1
  168. package/dist/chunk-NZ3WZYD5.js +0 -1
  169. package/dist/chunk-O5B2L3R2.js +0 -1
  170. package/dist/chunk-OWB5KWSS.js +0 -13
  171. package/dist/chunk-P5PSZQPB.js +0 -2
  172. package/dist/chunk-QI3HG6IG.js +0 -144
  173. package/dist/chunk-SWGSFLTC.js +0 -1
  174. package/dist/chunk-THIOE2PB.js +0 -2
  175. package/dist/chunk-U5FCQTVL.js +0 -4
  176. package/dist/chunk-UXEO5QCF.js +0 -33
  177. package/dist/chunk-VR6XMUF3.js +0 -2
  178. package/dist/chunk-VVJK5NFY.js +0 -2
  179. package/dist/chunk-VXKWWX7S.js +0 -8
  180. package/dist/chunk-W322YDHS.js +0 -49
  181. package/dist/chunk-WPRLXKWC.js +0 -8
  182. package/dist/chunk-Y5YAP4F3.js +0 -2
  183. package/dist/chunk-YOCN7GF4.js +0 -1
  184. package/dist/goal-pack-YWPI43QL.js +0 -1
  185. package/dist/project-intelligence-lens-MRQR2LQW.js +0 -1
  186. package/dist/verified-goal-WM34TTGE.js +0 -1
  187. package/dist/workspace-explain-TE2LGOAV.js +0 -1
  188. package/dist/workspace-explain-contract-V2IVSROX.js +0 -1
  189. package/dist/workspace-graph-token-efficiency-2I4X374C.js +0 -1
  190. package/dist/workspace-knowledge-graph-SWCKDTPF.js +0 -1
  191. package/dist/workspace-knowledge-graph-snapshot-M572JRB4.js +0 -1
  192. package/dist/workspace-mcp-serve-IBMTFQDY.js +0 -3
  193. package/dist/workspace-model-ZL6WCICX.js +0 -1
  194. package/dist/workspace-repair-engine-NX7I632M.js +0 -3
  195. package/dist/workspace-run-6GT5OBQ5.js +0 -1
@@ -25,13 +25,15 @@ exclude the canonical marker.
25
25
  These paths are relative to each registered project root, not the workspace
26
26
  root:
27
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/agent-entry.v1.json` | Project lens reconciliation and `workspace agent-sync --write` | `workspai.agent-entry.v1` | Portable host-discovery, canonical read-order, authority, and integrity contract |
32
- | `.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 |
33
- | `.workspai/PROJECT-GROUNDING.md` | Project lens reconciliation | Markdown | Portable human/agent entry guide with path-free workspace references |
34
- | `AGENTS.md` managed section | Project lens reconciliation in `managed` mode | Managed Markdown block | Preserves user content and routes compatible agents to project/workspace evidence |
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/agent-entry.v1.json` | Project lens reconciliation and `workspace agent-sync --write` | `workspai.agent-entry.v1` | Portable host-discovery, canonical read-order, authority, and integrity contract |
32
+ | `.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 |
33
+ | `.workspai/reports/project-knowledge-graph-reference.json` | Workspace Model publication | `project-knowledge-graph-reference.v1` | Small portable reference whose projection hash is verified against the canonical graph |
34
+ | `.workspai/PROJECT-GROUNDING.md` | Project lens reconciliation | Markdown | Portable human/agent entry guide with path-free workspace references |
35
+ | `.agents/skills/workspai-*/SKILL.md` | Project lens reconciliation | Agent Skill | Project-native wrappers that resolve canonical workspace playbooks without local paths |
36
+ | `AGENTS.md` managed section | Project lens reconciliation in `managed` mode | Managed Markdown block | Preserves user content and routes compatible agents to project/workspace evidence |
35
37
 
36
38
  The project link is validated against the canonical workspace contract and a
37
39
  SHA-256 binding over workspace identity, project identity, portable relative
@@ -40,13 +42,20 @@ absolute paths before writing. `managed`, `local`, and `off` grounding modes
40
42
  control portable project surfaces and converge by removing stale managed
41
43
  sections and ignore rules during transitions; they never make the
42
44
  machine-local link publishable. The context is bounded but not count-only: it
43
- includes topology, API/deployment/test surfaces, blockers, portable proofs,
44
- and model/graph freshness for the selected project.
45
+ includes compact topology, representative API/deployment/test surfaces,
46
+ blockers, portable proof locators, and model/graph freshness for the selected
47
+ project. Complete graph evidence is retrieved through bounded search instead
48
+ of duplicated into every project.
45
49
 
46
50
  `agent bootstrap --json` and `project agent-entry verify --json` emit a
47
51
  non-persisted `workspai.agent-bootstrap-receipt.v1` payload. The receipt proves
48
52
  the selected host route, contract validity, integrity, persisted and live
49
53
  freshness, and active Goal bindings without exposing the machine-local link.
54
+ Its top-level status covers agent grounding only; project-environment and
55
+ release readiness are emitted as separate dimensions so consumers cannot treat
56
+ successful grounding as release approval. The receipt exposes distinct project
57
+ reference and workspace graph paths and blocks when the project reference hash
58
+ is not the exact current canonical projection.
50
59
 
51
60
  ## Naming conventions
52
61
 
@@ -123,7 +132,8 @@ Entries beginning with `reports/` are relative to `.workspai/`; paths such as
123
132
  | Command | Artifact | Schema | Contract file |
124
133
  | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------- |
125
134
  | `workspace model --write` | `workspace-model.json` | `workspace-model.v1` | `contracts/workspace-intelligence/workspace-model.v1.json` |
126
- | `workspace model --write` | `workspace-knowledge-graph.json` | `workspace-knowledge-graph.v1` | `contracts/workspace-intelligence/workspace-knowledge-graph.v1.json` |
135
+ | `workspace model --write` | `workspace-knowledge-graph.json` (canonical workspace aggregate) | `workspace-knowledge-graph.v1` | `contracts/workspace-intelligence/workspace-knowledge-graph.v1.json` |
136
+ | `workspace model --write` | Project-local `.workspai/reports/project-knowledge-graph-reference.json` | `project-knowledge-graph-reference.v1` | `contracts/workspace-intelligence/project-knowledge-graph-reference.v1.json` |
127
137
  | `workspace snapshot` | `workspace-model-snapshot.json` | `workspace-model-snapshot.v1` | `contracts/workspace-intelligence/workspace-model-snapshot.v1.json` |
128
138
  | `workspace diff` | `workspace-model-diff-last-run.json` | `workspace-model-diff.v1` | `contracts/workspace-intelligence/workspace-model-diff.v1.json` |
129
139
  | `workspace impact --from <diff>` | `workspace-impact-last-run.json` | `workspace-impact.v1` | `contracts/workspace-intelligence/workspace-impact.v1.json` |
@@ -152,10 +162,15 @@ status/exit coherence, hard-failure skip propagation, and the aggregate verdict.
152
162
  See [Unified Workspace Intelligence Runner](../workspace-intelligence-runner.md)
153
163
  for the normative user and integration semantics.
154
164
 
155
- `workspace-model.json` and `workspace-knowledge-graph.json` are published under
156
- one workspace lock as a rollback-capable artifact transaction. Individual file
157
- replacement is atomic, and a partial set failure restores both preimages. The
158
- model is canonical; the graph is derived and cannot mutate it during the run.
165
+ `workspace-model.json`, the canonical workspace `workspace-knowledge-graph.json`,
166
+ and each registered project's compact
167
+ `.workspai/reports/project-knowledge-graph-reference.json` are published under
168
+ one workspace lock as a rollback-capable multi-root artifact transaction.
169
+ Individual replacement is atomic, and a partial set failure restores every
170
+ preimage. Each reference integrity-binds the exact project projection and points
171
+ to the canonical aggregate through a portable `workspace:` URI, avoiding graph
172
+ duplication in every linked repository. The model remains canonical and the
173
+ graph remains derived.
159
174
  The graph contract fixes `source.kind` to `workspace-model`,
160
175
  `source.artifact` to `.workspai/reports/workspace-model.json`, and `source.hash`
161
176
  to the model's stable structural SHA-256. Current-state consumers must reject a
@@ -397,9 +412,10 @@ Separate from the on-disk artifacts above, Workspai CLI emits a structured
397
412
  **NDJSON log stream on stderr** when `--log-format json` (or `RAPIDKIT_LOG_FORMAT=json`)
398
413
  is set. This is the deterministic progress/outcome channel for IDEs and CI.
399
414
 
400
- | Stream | Schema version | Contract file | Doc |
401
- | ----------------------- | ------------------ | --------------------------------- | ---------------------------------------------------- |
402
- | CLI log events (stderr) | `cli-log-event-v1` | `contracts/cli-log-event.v1.json` | [CLI_LOG_EVENT_STREAM.md](./CLI_LOG_EVENT_STREAM.md) |
415
+ | Stream | Schema version | Contract file | Doc |
416
+ | ------------------------------------------- | ----------------------------- | -------------------------------------------- | ------------------------------------------------------- |
417
+ | CLI log events (stderr) | `cli-log-event-v1` | `contracts/cli-log-event.v1.json` | [CLI_LOG_EVENT_STREAM.md](./CLI_LOG_EVENT_STREAM.md) |
418
+ | Live activity events (machine-local NDJSON) | `workspace-activity-event.v1` | `contracts/workspace-activity-event.v1.json` | [Workspai Live Activity](../workspace-live-activity.md) |
403
419
 
404
420
  **Channel rule:** command **results** go to stdout (`--json`); **progress/lifecycle**
405
421
  events go to stderr (`--log-format json`). The two never mix.
@@ -431,8 +447,9 @@ canonical file. Legacy files remain readable during the compatibility window.
431
447
  2. **Workspace Intelligence chain:** run `workspace intelligence run --for-agent generic --strict --json` to preserve Model → Diff → Impact → Doctor + Contract Verify + Analyze → Readiness → Verify → Context → Agent Sync → Explain. `pipeline` is the broader governance/release orchestrator and `autopilot` is a separate release surface; neither redefines the canonical chain. Use `pipeline-last-run.json` only for the pipeline orchestration summary.
432
448
  3. **Do not** use `workspace.json.projects` (removed in schema 1.0).
433
449
  4. Prefer `schemaVersion` constants in each artifact; legacy `v1` on readiness is accepted when reading old reports.
434
- 5. **Agent retrieval:** start with `AGENTS.md` and `.workspai/reports/INDEX.json`, then use `workspace graph search <query> --limit <n> --json` or MCP `searchWorkspaceGraph` for question-sized facts. Use `--scope project:<name>` when the task has one registered project boundary, inspect `budget.omitted` before assuming the result is complete, and follow returned proof paths to source evidence. Read the full context, model, or graph only when the bounded result is insufficient.
450
+ 5. **Agent retrieval:** inside an adopted project, start with `.workspai/agent-entry.v1.json` (or the host projection that routes to it), then read `.workspai/reports/project-context-agent.json`; its `intelligence.projection` states exactly how much representative graph data was bounded. At workspace scope, start with `AGENTS.md` and `.workspai/reports/INDEX.json`. In either scope, use `workspace graph search <query> --limit <n> --json` or MCP `searchWorkspaceGraph` for question-sized facts. Use `--scope project:<name>` for one registered project, inspect `budget.omitted` before assuming completeness, and follow proof paths to source evidence. Read the full context, model, or graph only when the bounded result is insufficient.
435
451
  6. **Agent customization state:** use `.workspai/reports/agent-customization-pack.json` to inspect generated surfaces and drift; regenerate with `workspace agent-sync --write --refresh-context --preset enterprise`.
452
+ 7. **Operational Skill selection:** use `.workspai/reports/workspace-skills-index.json`. Its `selection.decisions` distinguishes evidence-backed generated Skills from suppressed candidates and records scoped projects and supporting signals. A missing specialized Skill means the current canonical evidence did not prove that capability; it is not permission to assume one.
436
453
 
437
454
  ## Agent customization files (repo hooks)
438
455
 
@@ -443,32 +460,34 @@ failure, all touched files are restored; an interrupted transaction is recovered
443
460
  before the next agent-sync. `agent-customization-pack.json` is written last and
444
461
  serves as the completed-generation marker.
445
462
 
446
- | Path | Consumer |
447
- | ----------------------------------------------------------------------- | -------------------------------------------------------------- |
448
- | `AGENTS.md` | Copilot, Cursor, Claude Code, Codex, Grok (open standard) |
449
- | `.github/copilot-instructions.md` | GitHub Copilot / VS Code Chat |
450
- | `.github/instructions/workspai-workspace.instructions.md` | Copilot workspace scope and command discipline |
451
- | `.github/instructions/workspai-evidence.instructions.md` | Copilot scoped `.workspai/**` and compatibility evidence rules |
452
- | `.github/prompts/workspai-diagnose.prompt.md` | Copilot prompt library |
453
- | `.github/prompts/workspai-repair.prompt.md` | Copilot repair workflow prompt |
454
- | `.github/prompts/workspai-release-readiness.prompt.md` | Copilot release readiness workflow prompt |
455
- | `.github/prompts/workspai-project-onboard.prompt.md` | Copilot project onboarding workflow prompt |
456
- | `.github/prompts/workspai-adopt-project.prompt.md` | Copilot adopt/import workflow prompt |
457
- | `.github/skills/workspai-grounding/SKILL.md` | Copilot skills |
458
- | `.github/skills/workspai-workspace-intelligence/SKILL.md` | Enterprise Workspace Intelligence skill |
459
- | `.github/skills/workspai-workspace-intelligence/resources/mcp-tools.md` | MCP tool and evidence-retrieval reference |
460
- | `.github/agents/workspai-advisor.agent.md` | Read-only workspace advisor agent |
461
- | `.github/agents/workspai-repair.agent.md` | Blocker repair agent |
462
- | `.github/agents/workspai-release.agent.md` | Release safety agent |
463
- | `.github/agents/workspai-project-onboarder.agent.md` | Project onboarding agent |
464
- | `.cursor/rules/workspai-grounding.mdc` | Cursor always-on rule |
465
- | `CLAUDE.md` | Claude Code (imports `@AGENTS.md`) |
466
- | `.claude/rules/workspai-evidence.md` | Claude Code scoped evidence rule |
467
- | `.claude/rules/rapidkit-evidence.md` | Legacy compatibility alias pointing to the canonical rule |
468
- | `.workspai/AGENT-GROUNDING.md` | Tool-agnostic operator doc |
469
- | `.workspai/reports/agent-customization-pack.json` | Versioned output inventory, target matrix, drift state |
470
- | `.workspai/reports/workspai-mcp-design.json` | Read-mostly MCP-ready design manifest |
471
- | `.vscode/workspai-agent-hooks.json` | Optional advisory VS Code agent hooks (`--experimental-hooks`) |
463
+ | Path | Consumer |
464
+ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
465
+ | `AGENTS.md` | Copilot, Cursor, Claude Code, Codex, Grok (open standard) |
466
+ | `.agents/skills/workspai-grounding/SKILL.md` | Provider-neutral Agent Skills grounding |
467
+ | `.agents/skills/workspai-*/SKILL.md` | Generated workspace operational skills |
468
+ | `.github/copilot-instructions.md` | GitHub Copilot / VS Code Chat |
469
+ | `.github/instructions/workspai-workspace.instructions.md` | Copilot workspace scope and command discipline |
470
+ | `.github/instructions/workspai-evidence.instructions.md` | Copilot scoped `.workspai/**` and compatibility evidence rules |
471
+ | `.github/prompts/workspai-diagnose.prompt.md` | Copilot prompt library |
472
+ | `.github/prompts/workspai-repair.prompt.md` | Copilot repair workflow prompt |
473
+ | `.github/prompts/workspai-release-readiness.prompt.md` | Copilot release readiness workflow prompt |
474
+ | `.github/prompts/workspai-project-onboard.prompt.md` | Copilot project onboarding workflow prompt |
475
+ | `.github/prompts/workspai-adopt-project.prompt.md` | Copilot adopt/import workflow prompt |
476
+ | `.github/skills/workspai-grounding/SKILL.md` | Copilot skills |
477
+ | `.github/skills/workspai-workspace-intelligence/SKILL.md` | Enterprise Workspace Intelligence skill |
478
+ | `.github/skills/workspai-workspace-intelligence/resources/mcp-tools.md` | MCP tool and evidence-retrieval reference |
479
+ | `.github/agents/workspai-advisor.agent.md` | Read-only workspace advisor agent |
480
+ | `.github/agents/workspai-repair.agent.md` | Blocker repair agent |
481
+ | `.github/agents/workspai-release.agent.md` | Release safety agent |
482
+ | `.github/agents/workspai-project-onboarder.agent.md` | Project onboarding agent |
483
+ | `.cursor/rules/workspai-grounding.mdc` | Cursor always-on rule |
484
+ | `CLAUDE.md` | Claude Code (imports `@AGENTS.md`) |
485
+ | `.claude/rules/workspai-evidence.md` | Claude Code scoped evidence rule |
486
+ | `.claude/rules/rapidkit-evidence.md` | Legacy compatibility alias pointing to the canonical rule |
487
+ | `.workspai/AGENT-GROUNDING.md` | Tool-agnostic operator doc |
488
+ | `.workspai/reports/agent-customization-pack.json` | Versioned output inventory, target matrix, drift state |
489
+ | `.workspai/reports/workspai-mcp-design.json` | Implemented read-mostly MCP runtime manifest, served/planned tool inventory, and protocol capabilities |
490
+ | `.vscode/workspai-agent-hooks.json` | Optional advisory VS Code agent hooks (`--experimental-hooks`) |
472
491
 
473
492
  Some `rapidkit-*` prompt, skill, Cursor, MCP-design, and hook paths remain available for older consumers during the rebrand window. New consumers should use the `workspai-*` paths first.
474
493
 
@@ -36,6 +36,7 @@ These commands are implemented and orchestrated by Workspai CLI:
36
36
  - `goal`
37
37
  - `agent`
38
38
  - `project`
39
+ - `live`
39
40
  - `shell activate`
40
41
 
41
42
  Reason: workspace-level policy, registry, and platform orchestration live in npm wrapper.
@@ -4,19 +4,19 @@ Rules for **operational intelligence** artifacts so npm CLI, VS Code extension,
4
4
 
5
5
  ## Canonical vs generated surfaces
6
6
 
7
- | Layer | Canonical (workspace-native) | Generated (agent-sync) |
8
- | ----- | ---------------------------- | ---------------------- |
9
- | Operational playbooks | `.workspai/skills/{skillId}.md` | Legacy `.rapidkit/skills/{legacySkillId}.md` read fallback |
10
- | Skills index | `.workspai/reports/workspace-skills-index.json` | — |
11
- | Copilot skill umbrella | `.github/skills/workspai-workspace-intelligence/SKILL.md` | `.github/skills/rapidkit-workspace-intelligence/SKILL.md` legacy consumer surface |
12
- | Explain report | `.workspai/reports/workspace-explain-last-run.json` | — |
13
- | Action / repair feedback | `.workspai/reports/workspace-intelligence-history.json` (`kind: agent-action`, `doctor-fix`) | — |
7
+ | Layer | Canonical (workspace-native) | Generated (agent-sync) |
8
+ | ------------------------ | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
9
+ | Operational playbooks | `.workspai/skills/{skillId}.md` | Legacy `.rapidkit/skills/{legacySkillId}.md` read fallback |
10
+ | Skills index | `.workspai/reports/workspace-skills-index.json` | — |
11
+ | Copilot skill umbrella | `.github/skills/workspai-workspace-intelligence/SKILL.md` | `.github/skills/rapidkit-workspace-intelligence/SKILL.md` legacy consumer surface |
12
+ | Explain report | `.workspai/reports/workspace-explain-last-run.json` | — |
13
+ | Action / repair feedback | `.workspai/reports/workspace-intelligence-history.json` (`kind: agent-action`, `doctor-fix`) | — |
14
14
 
15
- **Rule:** Never add a standalone `workspace skills generate` command. Operational skills are produced only by `workspace agent-sync --write` (extend the Agent Customization Pack).
15
+ **Rule:** Never add a standalone `workspace skills generate` command. Operational skills are produced only by `workspace agent-sync --write` (extend the Agent Customization Pack). Templates are candidates, not guaranteed output: agent-sync materializes a candidate only when the canonical model, graph, contract, or command surface proves it applies. The skills index records generated and suppressed decisions with their evidence signals.
16
16
 
17
17
  ## Skill identifiers
18
18
 
19
- Built-in operational skill ids use the `workspai-*` prefix:
19
+ Built-in operational skill candidates use the `workspai-*` prefix:
20
20
 
21
21
  - `workspai-diagnose-api-failure`
22
22
  - `workspai-release-readiness`
@@ -27,17 +27,19 @@ Built-in operational skill ids use the `workspai-*` prefix:
27
27
  Paths are derived from id via `operationalSkillPath()` in `src/contracts/workspace-artifact-paths.ts`.
28
28
  Legacy `rapidkit-*` skill and prompt paths may remain for older consumers during the rebrand window; new consumers should read the `workspai-*` paths first.
29
29
 
30
+ `workspai-release-readiness` is workspace-applicable. API diagnosis, schema migration, dependency upgrade, and contract rename are emitted only for projects with matching evidence. Runtime, test, delivery, and polyglot skills are derived dynamically. Every emitted skill states why it exists, its scoped projects, observed signals, registered lifecycle boundary, and safe verification commands. Absence of evidence suppresses a skill rather than presenting a generic playbook as a detected capability.
31
+
30
32
  ## Command coexistence
31
33
 
32
- | User intent | Command | Notes |
33
- | ----------- | ------- | ----- |
34
- | Project / release / blocker narrative | `workspace explain …` | Primary explain surface |
35
- | Shorthand alias | `workspace why …` | Same parser as `explain` |
36
- | Diff → blast radius → gates | `workspace trace --from <diff>` | Slice of explain (`kind: trace`) |
37
- | Graph node centrality | `workspace graph explain <project>` | Graph-topology slice; see **Graph explain coexistence** below |
38
- | Record agent outcome | `workspace feedback record --json` | Appends `kind: agent-action` to history, no separate feedback file |
39
- | Record Doctor repair outcome | `doctor workspace|project --fix --json` | Writes `doctor-fix-result-last-run.json` and appends `kind: doctor-fix` to history |
40
- | MCP read bridge | `workspace mcp serve` | Read-mostly stdio JSON-RPC; maps Phase 4 explain + skills tools |
34
+ | User intent | Command | Notes |
35
+ | ------------------------------------- | ----------------------------------- | ------------------------------------------------------------------ |
36
+ | Project / release / blocker narrative | `workspace explain …` | Primary explain surface |
37
+ | Shorthand alias | `workspace why …` | Same parser as `explain` |
38
+ | Diff → blast radius → gates | `workspace trace --from <diff>` | Slice of explain (`kind: trace`) |
39
+ | Graph node centrality | `workspace graph explain <project>` | Graph-topology slice; see **Graph explain coexistence** below |
40
+ | Record agent outcome | `workspace feedback record --json` | Appends `kind: agent-action` to history, no separate feedback file |
41
+ | Record Doctor repair outcome | `doctor workspace | project --fix --json` | Writes `doctor-fix-result-last-run.json` and appends `kind: doctor-fix` to history |
42
+ | MCP read bridge | `workspace mcp serve` | Read-mostly stdio JSON-RPC; maps Phase 4 explain + skills tools |
41
43
 
42
44
  ## Graph explain coexistence (4.11)
43
45
 
@@ -28,8 +28,8 @@ Canonical JSON lives in **`../../contracts/`** (CLI package root, published in t
28
28
  | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
29
29
  | `npm run generate:contracts` | Regenerate runtime surface, create planner, agent customization pack, import-stack parity, module-layout, infra-stack |
30
30
  | `npm run check:generated-contracts` | Verify committed JSON matches generators |
31
- | `npm run sync:shared-contracts` | Generate canonical JSON and sync root plus locally available consumer mirrors |
32
- | `npm run sync:parity-snapshot` | Compatibility alias for canonical and consumer mirror synchronization |
31
+ | `npm run sync:shared-contracts` | Generate canonical JSON and sync root plus locally available consumer mirrors |
32
+ | `npm run sync:parity-snapshot` | Compatibility alias for canonical and consumer mirror synchronization |
33
33
  | `npm run check:parity-snapshot` | Verify mirrors match canonical |
34
34
  | `npm run contracts:prepush` | Sync local consumers and require generated canonical CLI mirrors to be committed |
35
35
  | `npm run validate:contracts` | Shared-contract checks and focused contract tests |
@@ -88,7 +88,7 @@ Published under `../../contracts/` (not duplicated in this folder):
88
88
  - `pipeline-last-run.v1.json` — governance pipeline orchestration
89
89
  - `project-entry-capability.v1.json` — open-ended adopt/import contract for readable projects
90
90
  - `workspace-intelligence/project-agent-entry.v1.json` — portable host discovery, canonical read order, authority boundaries, and integrity for an adopted project
91
- - `workspace-intelligence/agent-bootstrap-receipt.v1.json` — per-session proof of workspace membership, host coverage, schema validity, freshness, live inputs, and active Goal bindings
91
+ - `workspace-intelligence/agent-bootstrap-receipt.v1.json` — per-session proof of workspace membership, host coverage, schema validity, freshness, live inputs, active Goal bindings, and explicitly separated grounding/environment/release readiness
92
92
  - `adopt-effects.v1.json` — dry-run disclosure of project metadata, conditional repository-control reconciliation, and workspace operations before adoption
93
93
  - `create-planner-capabilities.v1.json` — native, official, and existing capability lanes
94
94
  - `agent-customization-pack.v1.json` — generated instructions, prompts, skills, agents, optional hooks, MCP-ready design metadata, target matrix, and drift state for AI agent surfaces
@@ -96,6 +96,7 @@ Published under `../../contracts/` (not duplicated in this folder):
96
96
  - `project-archive.v1.json`, `workspace-snapshot.v1.json`, and `workspace-snapshot.v2.json` — recoverable lifecycle records
97
97
  - `infra-plan.v1.json`, `private-product-manifest.v1.json`, and `product-factory-plan.v1.json` — infrastructure and product planning payloads
98
98
  - `workspace-model-cache.v1.json`, `workspace-watch-event.v1.json`, `doctor-project-scan.v2.json`, and `doctor-workspace-cache.v2.json` — cache/watch/diagnostic support contracts
99
+ - `workspace-activity-event.v1.json` — local-first run/block/operation/touch stream consumed by `workspai live`; observational only, never Evidence/Decision authority
99
100
 
100
101
  Workspace intelligence (`../../contracts/workspace-intelligence/`):
101
102
 
@@ -66,6 +66,17 @@ npm run test:real-world:enterprise -- \
66
66
  --report "$QUALIFICATION_ROOT/enterprise-command-surface.json"
67
67
  ```
68
68
 
69
+ The enterprise harness resolves a real project from the graph, workspace
70
+ contract, model, or imported-project registry. It never assumes a fixture
71
+ project name. Snapshot names are unique per run, so the harness can be repeated
72
+ against the same isolated workspace without creating a false lifecycle failure.
73
+ Graph queries may target either managed or linked projects. Project archive and
74
+ delete dry runs use a separate lifecycle target and are emitted only for a
75
+ managed project physically contained by the workspace. When a workspace has
76
+ only linked external projects, the report records
77
+ `coverage.projectLifecycle: skipped-no-managed-project`; it does not misreport
78
+ that safety boundary as a command failure.
79
+
69
80
  ## Safety and interpretation
70
81
 
71
82
  - Reference repositories are cloned locally with `git clone --shared`; no
@@ -82,13 +93,18 @@ npm run test:real-world:enterprise -- \
82
93
  - Dependency installation, project build/test/start/init, infrastructure
83
94
  mutation, publication, and model network calls are not permitted.
84
95
  - Agent customization and destructive project operations are dry-run only.
96
+ - Runtime candidates describe observed nested composition; the authoritative
97
+ project runtime controls repair-adapter assertions. An aggregate boundary with
98
+ runtime `unknown` therefore follows the governed manual-repair path instead of
99
+ promoting its first nested runtime candidate.
85
100
  - Goal qualification publishes one system-understanding Goal inside the
86
101
  isolated test workspace, validates its lifecycle binding, and previews
87
102
  runtime-specific coverage and release-readiness goals without executing
88
103
  project tests or mutating project source.
89
- - Exit codes `1` and `2` may be valid domain outcomes when their documented JSON
90
- contracts parse successfully; unexpected process, timeout, buffer, or schema
91
- failures fail qualification.
104
+ - Exit codes `1` and `2` are accepted only for commands whose contract explicitly
105
+ permits a governed block and only when the JSON payload contains a recognized
106
+ blocked/not-ready outcome. Graph lookup, project lifecycle, process, timeout,
107
+ buffer, malformed JSON, and schema failures fail qualification.
92
108
  - A real repository warning remains evidence, not a CLI defect. Fix the CLI only
93
109
  when detection, classification, contract, portability, or command semantics
94
110
  are wrong.
@@ -56,6 +56,9 @@ Useful follow-up questions:
56
56
  # What APIs and endpoints exist?
57
57
  npx workspai workspace graph entities endpoint --json
58
58
 
59
+ # Which languages are evidenced in one project? The flag form is equivalent.
60
+ npx workspai workspace graph entities --kind language --scope project:billing --limit 100 --json
61
+
59
62
  # Why does Workspai believe this entity exists?
60
63
  npx workspai workspace graph evidence "GET /users" --json
61
64
 
@@ -116,6 +119,13 @@ symbols are not implied to have been extracted. The graph diagnostic reports
116
119
  the sampled and indexed candidate counts and must not be read as exhaustive
117
120
  symbol coverage.
118
121
 
122
+ Language inventory is intentionally broader than source-structure parsing.
123
+ The complete eligible-path inventory recognizes systems languages and compiler
124
+ DSLs such as Assembly, CUDA, Fortran, HLSL, LLVM IR/MIR, MLIR, Objective-C,
125
+ OpenCL, and TableGen even when Workspai has no safe generic symbol parser for
126
+ that syntax. Language counts therefore remain project-wide inventory facts;
127
+ symbols, imports, and calls remain bounded to parser-supported source inputs.
128
+
119
129
  Call binding follows the same proof boundary. Workspai binds a call only when
120
130
  its target is uniquely defined in the same file or in a locally imported file
121
131
  that the Graph already resolved. Overloads, dynamic dispatch, and ambiguous
@@ -140,13 +150,14 @@ only when all of the following remain true:
140
150
  - no proof is marked stale;
141
151
  - the graph fingerprint contains exactly one workspace scope and every
142
152
  canonical project scope with compatible scan limits;
143
- - a fresh bounded scan produces the same aggregate live-input hash.
153
+ - a fresh complete eligible-path inventory produces the same aggregate
154
+ live-input hash.
144
155
 
145
156
  Git-backed scopes use `git-worktree-v2`, covering tracked tree state plus
146
- modified, deleted, renamed, untracked, and relevant ignored files. If Git cannot
157
+ modified, deleted, renamed, and non-ignored untracked files. If Git cannot
147
158
  prove the scanned inventory safely—for example because a traversed initialized
148
159
  submodule or hidden index flag is present—Workspai falls back to
149
- `content-merkle-v1`, which hashes each bounded file by portable path and content.
160
+ `content-merkle-v1`, which hashes each eligible file by portable path and content.
150
161
  The graph records the combined strategy as `hybrid-git-content-v2`.
151
162
 
152
163
  A miss rebuilds from live sources. Use `--refresh-graph` when the caller requires
@@ -156,9 +167,38 @@ an explicit rebuild even if the persisted snapshot is compatible:
156
167
  npx workspai workspace graph search "protobuf ownership" --refresh-graph --json
157
168
  ```
158
169
 
159
- The fingerprint proves compatibility of the exact bounded provider inventory;
160
- if a scope reports `truncated: true`, it must not be interpreted as proof about
161
- files beyond that declared limit.
170
+ The fingerprint normally covers every eligible Git-tracked and non-ignored
171
+ untracked file in each project scope. The default `500000`-file limit is an
172
+ emergency safety boundary, not a semantic completeness target. A scope with
173
+ `truncated: true` or `inventoryMode: emergency-bounded` must not be interpreted
174
+ as proof about files beyond that boundary. Git inventories publish an exact
175
+ `eligibleFileCount`; a non-Git fallback that reaches the boundary publishes
176
+ `eligibleFileCountExact: false` instead of inventing a total.
177
+
178
+ Path inventory and content-heavy extraction have separate budgets. Complete
179
+ inventory feeds freshness, manifest discovery, language counts, architecture
180
+ contracts, CI, ownership, infrastructure, and targeted providers. Semantic and
181
+ deep providers receive deterministic adaptive selections distributed across
182
+ component and language buckets. This prevents a large package, vendored tree,
183
+ or alphabetically early directory from starving the rest of a polyglot
184
+ monorepo. Every provider publishes `inputCoverage`; successful execution over a
185
+ bounded selection is reported as `partial`, never as exhaustive coverage.
186
+
187
+ Defaults scale with the eligible project population up to these safety
188
+ ceilings:
189
+
190
+ - complete inventory emergency bound: `500000` files per project;
191
+ - adaptive semantic input: up to `100000` files per project;
192
+ - adaptive deep-provider input: up to `25000` files per project;
193
+ - source extraction: up to `20000` files per project.
194
+
195
+ Use `--graph-inventory-limit`, `--graph-semantic-budget`,
196
+ `--graph-deep-budget`, and `--graph-source-budget` on `workspace graph`, or the
197
+ equivalent `WORKSPAI_GRAPH_INVENTORY_LIMIT`,
198
+ `WORKSPAI_GRAPH_SEMANTIC_BUDGET`, `WORKSPAI_GRAPH_DEEP_BUDGET`, and
199
+ `WORKSPAI_GRAPH_SOURCE_BUDGET` environment variables for non-interactive model,
200
+ Adopt, and Intelligence runs. Increasing deep budgets affects cost, not the
201
+ canonical per-project storage boundary.
162
202
 
163
203
  Workspai-generated agent entry projections are downstream consumers and are
164
204
  excluded from Graph inventory and Git diff hashing. Regenerating `AGENTS.md`,
@@ -167,17 +207,17 @@ Graph that produced them or become circular architecture evidence.
167
207
 
168
208
  ## Pick the command by question
169
209
 
170
- | You want to know… | Use |
171
- | ---------------------------------------------------- | ------------------------------------------------------- |
172
- | What is relevant to a natural-language question? | `workspace graph search <query> --limit <n> --json` |
173
- | Which entities of one type exist? | `workspace graph entities <kind> --json` |
174
- | Why does Workspai believe an item exists? | `workspace graph evidence <entity-or-relation> --json` |
175
- | How are two things connected? | `workspace graph path <from> <to> --json` |
176
- | What changed between graph revisions? | `workspace graph overlay --from <graph.json> --json` |
177
- | What is the full portable graph? | `workspace graph emit --output graph.json --json` |
178
- | How do I render the project topology? | `workspace graph dot\|mermaid [--output <file>]` |
179
- | How do I export to semantic or graph-analysis tools? | `workspace graph jsonld\|graphml\|gexf --output <file>` |
180
- | How much retrieval payload did one query avoid? | `workspace graph benchmark <query> --limit <n> --json` |
210
+ | You want to know… | Use |
211
+ | ---------------------------------------------------- | ----------------------------------------------------------------------------- |
212
+ | What is relevant to a natural-language question? | `workspace graph search <query> --limit <n> --json` |
213
+ | Which entities of one type exist? | `workspace graph entities <kind> [--scope project:name] [--limit <n>] --json` |
214
+ | Why does Workspai believe an item exists? | `workspace graph evidence <entity-or-relation> --json` |
215
+ | How are two things connected? | `workspace graph path <from> <to> --json` |
216
+ | What changed between graph revisions? | `workspace graph overlay --from <graph.json> --json` |
217
+ | What is the full portable graph? | `workspace graph emit --output graph.json --json` |
218
+ | How do I render the project topology? | `workspace graph dot\|mermaid [--output <file>]` |
219
+ | How do I export to semantic or graph-analysis tools? | `workspace graph jsonld\|graphml\|gexf --output <file>` |
220
+ | How much retrieval payload did one query avoid? | `workspace graph benchmark <query> --limit <n> --json` |
181
221
 
182
222
  `graph emit --json` writes the complete dependency and Knowledge Graph to
183
223
  stdout and can be very large. Automation, IDEs, and agents should pass
@@ -293,9 +333,10 @@ in `project.runtimeCandidates` and aggregates them into
293
333
  monorepo's internal services, contracts, delivery surfaces, and proofs without
294
334
  pretending that the primary runtime describes the whole repository.
295
335
 
296
- The two artifacts are published under one workspace lock using a
297
- rollback-capable artifact transaction. Each file replacement is atomic; if any
298
- write fails, Workspai restores both preimages. `graph.source.kind` is fixed to
336
+ The model, workspace aggregate, and all project graph artifacts are published
337
+ under one workspace lock using a rollback-capable multi-root artifact
338
+ transaction. Each file replacement is atomic; if any write fails, Workspai
339
+ restores every preimage. `graph.source.kind` is fixed to
299
340
  `workspace-model`, `graph.source.artifact` is fixed to
300
341
  `.workspai/reports/workspace-model.json`, and `graph.source.hash` contains the
301
342
  stable structural hash of the persisted model. A current-state consumer must
@@ -375,14 +416,23 @@ into a false “complete” claim.
375
416
 
376
417
  ## Outputs and consumers
377
418
 
378
- `workspace model --write` publishes these two artifacts as one locked,
379
- rollback-capable artifact set:
419
+ `workspace model --write` publishes the canonical model, one complete workspace
420
+ aggregate, and one compact integrity-bound reference for every registered
421
+ project as one locked, rollback-capable multi-root artifact set:
380
422
 
381
423
  ```text
382
- .workspai/reports/workspace-model.json
383
- .workspai/reports/workspace-knowledge-graph.json
424
+ <workspace>/.workspai/reports/workspace-model.json
425
+ <workspace>/.workspai/reports/workspace-knowledge-graph.json
426
+ <project>/.workspai/reports/project-knowledge-graph-reference.json
384
427
  ```
385
428
 
429
+ The workspace artifact preserves all registered projects and cross-project
430
+ relations for Graph, Doctor, Context, Goal, and MCP consumers. Each project
431
+ reference carries source and projection hashes, summary counts, a bounded query,
432
+ and a portable canonical URI; it does not duplicate graph entities or proofs.
433
+ Nested and external projects follow the same rule. Any publication failure
434
+ restores the model, aggregate, and all project reference preimages together.
435
+
386
436
  The Knowledge Graph is consumed by:
387
437
 
388
438
  - `workspace graph search|entities|evidence|path|overlay`;
@@ -403,8 +453,12 @@ The Knowledge Graph is consumed by:
403
453
  topology, rich graph, and quality summary in one response.
404
454
 
405
455
  The complete graph is an interchange artifact, not a prompt. Agents should
406
- start with `INDEX.json`, use bounded search, then retrieve evidence or a path
407
- for the selected result.
456
+ start with compact project context, use bounded search, then retrieve evidence
457
+ or a path for the selected result. Generated `project-context-agent.json`,
458
+ `agent-entry.v1.json`, and bootstrap receipts expose a small project graph
459
+ reference separately from the `workspace:` aggregate. Bootstrap schema-validates
460
+ the reference and compares its projection hash with a fresh projection of the
461
+ aggregate before it allows architecture claims. The complete graph is stored once.
408
462
 
409
463
  ### Interchange and visualization
410
464
 
@@ -469,7 +523,11 @@ hashes. Query indexes are cached per immutable graph object; replacing the graph
469
523
  is the in-memory invalidation boundary. Across CLI processes, compatible
470
524
  persisted read queries validate the live Git/Merkle fingerprint before reuse.
471
525
  `workspace model --cache` and `--incremental` avoid unnecessary model/project
472
- work when inputs are unchanged.
526
+ work when inputs are unchanged. Full, cached, and incremental builds use the
527
+ same project-discovery contract, including adopted/imported projects and
528
+ projects declared only through a workspace contract `externalPath`. Manifest
529
+ or source changes under an external project therefore invalidate the same
530
+ signatures as equivalent in-workspace projects.
473
531
 
474
532
  Use full graph export for interchange or offline analysis. Use bounded search
475
533
  for interactive agents. The latter keeps response size proportional to the
@@ -487,6 +545,16 @@ remains unknown until a method/path or operation-id binding is proven. Consumers
487
545
  can distinguish the two guarantees through `bindingCoverage.apiRuntimeRegistration`
488
546
  and `bindingCoverage.apiImplementation`.
489
547
 
548
+ Runtime-registration eligibility is explicit. Network and event contracts such
549
+ as OpenAPI, server-root GraphQL schemas, AsyncAPI, and authored workspace API
550
+ contracts participate; command palettes, console scripts, chat participants,
551
+ shared protocol identities, and client GraphQL operations do not. GraphQL query,
552
+ mutation, subscription, and fragment documents are modeled as proof-backed
553
+ symbols that consume the GraphQL protocol. Only an authored root `schema` or
554
+ non-extension `Query`, `Mutation`, or `Subscription` type establishes a
555
+ runtime-served GraphQL API. This prevents client-heavy repositories from
556
+ inflating API registration unknowns while preserving their operation topology.
557
+
490
558
  ## Measuring retrieval payload reduction
491
559
 
492
560
  Workspai does not publish an unqualified “N× fewer tokens” claim. Such a claim