workspai 0.64.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.
- package/README.md +40 -44
- package/contracts/agent-customization-pack.v1.json +4 -2
- package/contracts/analyze-last-run.v1.json +9 -1
- package/contracts/cli-runtime-command-inventory.v1.snapshot.json +117 -0
- package/contracts/extension-cli-compatibility.v1.json +2 -0
- package/contracts/published-contract-catalog.v1.json +10 -0
- package/contracts/runtime-command-surface.v1.json +59 -3
- package/contracts/workspace-activity-event.v1.json +132 -0
- package/contracts/workspace-contract.v1.json +51 -6
- package/contracts/workspace-intelligence/agent-bootstrap-receipt.v1.json +17 -0
- package/contracts/workspace-intelligence/mcp-design.v1.json +49 -2
- package/contracts/workspace-intelligence/project-agent-entry.v1.json +3 -0
- package/contracts/workspace-intelligence/project-context-agent.v1.json +78 -7
- package/contracts/workspace-intelligence/project-knowledge-graph-reference.v1.json +51 -0
- package/contracts/workspace-intelligence/workspace-knowledge-graph.v1.json +108 -3
- package/contracts/workspace-intelligence/workspace-model.v1.json +28 -1
- package/contracts/workspace-intelligence/workspace-skills-index.v1.json +34 -0
- package/contracts/workspace-model-cache.v1.json +4 -0
- package/contracts/workspace-repair-capabilities.v1.json +66 -0
- package/dist/analyze-UJQWGNM2.js +1 -0
- package/dist/{artifact-remediation-plan-XIQNI35L.js → artifact-remediation-plan-M2XBS2IU.js} +1 -1
- package/dist/autopilot-release-U6F4M2BQ.js +1 -0
- package/dist/capabilities-command-XUKPO25Z.js +1 -0
- package/dist/chunk-2LIVMG5C.js +2 -0
- package/dist/{chunk-ZGS5NKEO.js → chunk-2PACEMNE.js} +1 -1
- package/dist/chunk-334J2KIP.js +7 -0
- package/dist/{chunk-6TBTMWNA.js → chunk-3H5ACWWZ.js} +1 -1
- package/dist/{chunk-HCFWT42C.js → chunk-3NM3JAZW.js} +1 -1
- package/dist/chunk-4XEH3WNV.js +13 -0
- package/dist/chunk-5OA33JH2.js +2 -0
- package/dist/chunk-5TY74LLW.js +2 -0
- package/dist/{chunk-QCKWQFCD.js → chunk-5U4L6VF2.js} +1 -1
- package/dist/{chunk-W6FHVXNL.js → chunk-5XGR3LRI.js} +1 -1
- package/dist/{chunk-KTN2ARZJ.js → chunk-6JX56VAL.js} +3 -3
- package/dist/chunk-6UNATTB7.js +1 -0
- package/dist/{chunk-J3X56S7L.js → chunk-727IQFGN.js} +1 -1
- package/dist/chunk-7FF5EOIO.js +2 -0
- package/dist/chunk-AP4PV6WJ.js +1 -0
- package/dist/chunk-AXUA7PFV.js +2 -0
- package/dist/chunk-B4IVVTMQ.js +2 -0
- package/dist/{chunk-LNXIMF3O.js → chunk-C4S22E6S.js} +1 -1
- package/dist/{chunk-PXWKMPPI.js → chunk-D4UHRJAP.js} +1 -1
- package/dist/chunk-DUBOKZMA.js +49 -0
- package/dist/{chunk-VYDURWN7.js → chunk-ECLMYTWT.js} +1 -1
- package/dist/{chunk-VB6I52ZT.js → chunk-EHH4SKVH.js} +50 -50
- package/dist/chunk-EP4CUWOO.js +9 -0
- package/dist/chunk-FY4X2VOE.js +39 -0
- package/dist/chunk-GAYK3WGV.js +2 -0
- package/dist/{chunk-YUGKQ44M.js → chunk-H5RJCS5E.js} +1 -1
- package/dist/{chunk-5SFCBZOH.js → chunk-H7MRINGP.js} +1 -1
- package/dist/chunk-HJLGXFMK.js +1 -0
- package/dist/{chunk-VRGEPPUB.js → chunk-HLWDIIWL.js} +1 -1
- package/dist/{chunk-KJXMLBSY.js → chunk-IIFFEEMX.js} +1 -1
- package/dist/chunk-IVF6NEHS.js +1 -0
- package/dist/chunk-JC4XSU7G.js +1 -0
- package/dist/chunk-JRP6WP5C.js +681 -0
- package/dist/chunk-JZJBA2V2.js +1 -0
- package/dist/{chunk-N4QQADXX.js → chunk-L5CCIIF2.js} +1 -1
- package/dist/chunk-L5Q2S5GY.js +3 -0
- package/dist/chunk-LPCZHKD5.js +1 -0
- package/dist/chunk-MZ7U4BIQ.js +157 -0
- package/dist/chunk-NMXGSVMD.js +1 -0
- package/dist/{chunk-GQSRNUCU.js → chunk-NVND4727.js} +3 -3
- package/dist/chunk-O37UBRMX.js +4 -0
- package/dist/chunk-OI2VOU6S.js +1 -0
- package/dist/chunk-PD7Y6HIM.js +2 -0
- package/dist/chunk-PJPS7CNH.js +1 -0
- package/dist/chunk-QGAPGZPL.js +97 -0
- package/dist/chunk-R2M5OJOK.js +5 -0
- package/dist/chunk-SX6A656X.js +1 -0
- package/dist/{chunk-X6TNBARH.js → chunk-TABXSDTR.js} +2 -2
- package/dist/chunk-TTHO4MFC.js +2 -0
- package/dist/chunk-U5ENEDJA.js +7 -0
- package/dist/chunk-UOCERSAN.js +1 -0
- package/dist/chunk-UPIPSSXY.js +1 -0
- package/dist/chunk-UTV4DTNM.js +1 -0
- package/dist/chunk-VA5VSOBL.js +2 -0
- package/dist/chunk-VQOWB26M.js +12 -0
- package/dist/chunk-VQZ5PI5J.js +1 -0
- package/dist/chunk-WCJU3CFG.js +1 -0
- package/dist/chunk-WTWRSEOW.js +1 -0
- package/dist/{chunk-D65FCQIO.js → chunk-XESFJN52.js} +1 -1
- package/dist/chunk-XQFWUM2P.js +1 -0
- package/dist/chunk-XWKGZRHN.js +1 -0
- package/dist/{chunk-WRQWVSBJ.js → chunk-YX5VWPR5.js} +1 -1
- package/dist/chunk-ZEEV5J4I.js +1 -0
- package/dist/chunk-ZQH2I5RQ.js +1 -0
- package/dist/{create-PWJDTKDN.js → create-SOLLXXAB.js} +1 -1
- package/dist/{demo-kit-QHIDCSBI.js → demo-kit-5UQH2OXC.js} +1 -1
- package/dist/{doctor-CGXY4IDE.js → doctor-NQ5PUCUP.js} +1 -1
- package/dist/{dotnet-webapi-clean-AVHPJG7Y.js → dotnet-webapi-clean-YEHYIGOT.js} +1 -1
- package/dist/{goal-lifecycle-BRFFTIU2.js → goal-lifecycle-IPNY7KNR.js} +1 -1
- package/dist/goal-pack-2WV3EA4Y.js +1 -0
- package/dist/{gofiber-standard-47S2GYAO.js → gofiber-standard-C44IIQYH.js} +1 -1
- package/dist/{gogin-standard-EWB4XNOI.js → gogin-standard-X7VKACVR.js} +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.js +170 -170
- package/dist/live-command-Q6E45N7S.js +18 -0
- package/dist/{pipeline-DF4UIHAD.js → pipeline-MIMENSI7.js} +1 -1
- package/dist/{project-agent-entry-IWUCV72J.js → project-agent-entry-OWLJ3IHQ.js} +1 -1
- package/dist/project-intelligence-lens-I67EO6AE.js +1 -0
- package/dist/{project-test-coverage-4S7MEQ6T.js → project-test-coverage-OPDVSFPH.js} +1 -1
- package/dist/{pythonRapidkitExec-VAW5XE4Z.js → pythonRapidkitExec-44ORGQ4R.js} +1 -1
- package/dist/{rust-axum-M5X4ZC4Z.js → rust-axum-JKZTZDRZ.js} +1 -1
- package/dist/{springboot-standard-Y5ADLZMQ.js → springboot-standard-PI4FLTAN.js} +1 -1
- package/dist/verified-goal-46JWNCDY.js +1 -0
- package/dist/{workspace-35Q2IXAR.js → workspace-KO37XHF6.js} +1 -1
- package/dist/{workspace-agent-sync-FFNSW2PD.js → workspace-agent-sync-32FIJQBH.js} +1 -1
- package/dist/{workspace-archive-ZBCKJHXS.js → workspace-archive-6R5DRNZW.js} +1 -1
- package/dist/{workspace-context-IJ36ZP6G.js → workspace-context-JKRPX775.js} +1 -1
- package/dist/workspace-contract-4T3NYNK5.js +1 -0
- package/dist/workspace-explain-MOGL4GEA.js +1 -0
- package/dist/workspace-explain-contract-W2E6LF4Q.js +1 -0
- package/dist/{workspace-feedback-RQ4TGJW6.js → workspace-feedback-6VQ7T4CR.js} +1 -1
- package/dist/{workspace-foundation-GMGDUMPR.js → workspace-foundation-GHWO3BZU.js} +1 -1
- package/dist/workspace-graph-stream-PTVS47NJ.js +1 -0
- package/dist/workspace-graph-token-efficiency-Z5JD5NHI.js +1 -0
- package/dist/{workspace-history-SYCDK7FO.js → workspace-history-M2K4M2JY.js} +1 -1
- package/dist/{workspace-intelligence-5NO4K5SC.js → workspace-intelligence-PJIPTXL3.js} +1 -1
- package/dist/{workspace-intelligence-evaluation-CQDKOYZZ.js → workspace-intelligence-evaluation-GONCRE6O.js} +1 -1
- package/dist/{workspace-intelligence-runner-FGEBFVVM.js → workspace-intelligence-runner-M47QR3JM.js} +1 -1
- package/dist/{workspace-intelligence-runtime-registry-IW6J53LO.js → workspace-intelligence-runtime-registry-FFGQF4A7.js} +1 -1
- package/dist/workspace-knowledge-graph-V2EAYDCL.js +1 -0
- package/dist/workspace-knowledge-graph-contract-VANN7RCA.js +1 -0
- package/dist/{workspace-knowledge-graph-query-ON45H6Y7.js → workspace-knowledge-graph-query-RASPF7FS.js} +1 -1
- package/dist/workspace-knowledge-graph-snapshot-5YIG6EMG.js +1 -0
- package/dist/{workspace-marker-7NHMDIRL.js → workspace-marker-XGAWZZDX.js} +1 -1
- package/dist/workspace-mcp-serve-YRORNE4P.js +3 -0
- package/dist/workspace-model-VSVKLX7M.js +1 -0
- package/dist/{workspace-onboarding-VS3YYNGK.js → workspace-onboarding-2VMJZVLZ.js} +1 -1
- package/dist/{workspace-python-engine-state-J4QKW55K.js → workspace-python-engine-state-BE4A3BL5.js} +1 -1
- package/dist/{workspace-readme-G7TZ3V5T.js → workspace-readme-6X3GLTBM.js} +2 -2
- package/dist/{workspace-registry-summary-MIDFG6EC.js → workspace-registry-summary-QVSJKKTX.js} +1 -1
- package/dist/workspace-repair-engine-WSKV3Q4V.js +3 -0
- package/dist/workspace-run-3BXKTLVL.js +1 -0
- package/dist/{workspace-verify-4R7QHUPO.js → workspace-verify-EJCSOBIK.js} +1 -1
- package/dist/workspace-watch-JTIFBF4Z.js +1 -0
- package/docs/SETUP.md +10 -0
- package/docs/agent-entry.md +22 -7
- package/docs/ci-workflows.md +1 -1
- package/docs/commands-reference.md +43 -7
- package/docs/contracts/ARTIFACT_CATALOG.md +63 -44
- package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +1 -0
- package/docs/contracts/NAMING_AND_COEXISTENCE.md +20 -18
- package/docs/contracts/README.md +4 -3
- package/docs/real-world-qualification.md +19 -3
- package/docs/workspace-knowledge-graph.md +131 -27
- package/docs/workspace-live-activity.md +199 -0
- package/docs/workspace-operations.md +54 -9
- package/docs/workspace-repair-engine.md +17 -0
- package/package.json +1 -1
- package/dist/analyze-NUGNB256.js +0 -1
- package/dist/autopilot-release-TWJWSVVF.js +0 -1
- package/dist/capabilities-command-LHM3XIS6.js +0 -1
- package/dist/chunk-2647BYBC.js +0 -1
- package/dist/chunk-27UR373Z.js +0 -1
- package/dist/chunk-2VJUAKMS.js +0 -2
- package/dist/chunk-3A23KJAQ.js +0 -1
- package/dist/chunk-4PUJVYRM.js +0 -1
- package/dist/chunk-5B2GAZAC.js +0 -5
- package/dist/chunk-6DAQ7PYT.js +0 -13
- package/dist/chunk-CCAXADKP.js +0 -49
- package/dist/chunk-CCDGHPEJ.js +0 -2
- package/dist/chunk-CJHWKXDN.js +0 -1
- package/dist/chunk-CT4IODPG.js +0 -2
- package/dist/chunk-DK6JNE6K.js +0 -2
- package/dist/chunk-DOXNVBX6.js +0 -1
- package/dist/chunk-DWB2RRF4.js +0 -1
- package/dist/chunk-FQSBOLM7.js +0 -1
- package/dist/chunk-ILIBOMYL.js +0 -1
- package/dist/chunk-ISOOENLW.js +0 -8
- package/dist/chunk-J7RU5WR5.js +0 -2
- package/dist/chunk-JQLJBK5N.js +0 -1
- package/dist/chunk-KANAJH65.js +0 -681
- package/dist/chunk-KV6PS54A.js +0 -8
- package/dist/chunk-L22EABIC.js +0 -7
- package/dist/chunk-MOSXTVPU.js +0 -1
- package/dist/chunk-NHTDPXTW.js +0 -4
- package/dist/chunk-NZ3WZYD5.js +0 -1
- package/dist/chunk-Q2WF7D5U.js +0 -2
- package/dist/chunk-RSG2GJXT.js +0 -2
- package/dist/chunk-SFO5GVRT.js +0 -1
- package/dist/chunk-T5YRFRJV.js +0 -1
- package/dist/chunk-THIOE2PB.js +0 -2
- package/dist/chunk-TOYN76K4.js +0 -144
- package/dist/chunk-U5WVR74V.js +0 -1
- package/dist/chunk-UXEO5QCF.js +0 -33
- package/dist/chunk-VR6XMUF3.js +0 -2
- package/dist/chunk-WY4DOMEA.js +0 -1
- package/dist/chunk-XKDR5BGS.js +0 -6
- package/dist/chunk-Y5YAP4F3.js +0 -2
- package/dist/chunk-ZH7CXQH3.js +0 -94
- package/dist/goal-pack-FG3QDNQH.js +0 -1
- package/dist/project-intelligence-lens-PZPPSCUW.js +0 -1
- package/dist/verified-goal-BBHZRYYH.js +0 -1
- package/dist/workspace-contract-JS4LZZQZ.js +0 -1
- package/dist/workspace-explain-TITIT5XN.js +0 -1
- package/dist/workspace-explain-contract-V2IVSROX.js +0 -1
- package/dist/workspace-graph-stream-7UU2YVHC.js +0 -1
- package/dist/workspace-graph-token-efficiency-D7CUT6NX.js +0 -1
- package/dist/workspace-knowledge-graph-RSDP2E36.js +0 -1
- package/dist/workspace-knowledge-graph-snapshot-3FJHH5IK.js +0 -1
- package/dist/workspace-mcp-serve-WUIQ2AE6.js +0 -3
- package/dist/workspace-model-OKY4CQ3X.js +0 -1
- package/dist/workspace-repair-engine-VUBT77Y7.js +0 -3
- package/dist/workspace-run-SSF6Z26G.js +0 -1
- package/dist/workspace-watch-IOPSHQS5.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
|
|
29
|
-
|
|
|
30
|
-
| `.workspai/workspace-link.local.json`
|
|
31
|
-
| `.workspai/agent-entry.v1.json`
|
|
32
|
-
| `.workspai/reports/project-context-agent.json`
|
|
33
|
-
| `.workspai/
|
|
34
|
-
|
|
|
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,
|
|
44
|
-
and model/graph freshness for the selected
|
|
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`
|
|
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
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
|
401
|
-
|
|
|
402
|
-
| CLI log events (stderr)
|
|
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
|
|
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
|
-
| `.
|
|
450
|
-
| `.
|
|
451
|
-
| `.github/
|
|
452
|
-
| `.github/
|
|
453
|
-
| `.github/
|
|
454
|
-
| `.github/prompts/workspai-
|
|
455
|
-
| `.github/prompts/workspai-
|
|
456
|
-
| `.github/prompts/workspai-
|
|
457
|
-
| `.github/
|
|
458
|
-
| `.github/
|
|
459
|
-
| `.github/skills/workspai-
|
|
460
|
-
| `.github/
|
|
461
|
-
| `.github/
|
|
462
|
-
| `.github/agents/workspai-
|
|
463
|
-
| `.github/agents/workspai-
|
|
464
|
-
| `.
|
|
465
|
-
|
|
|
466
|
-
| `.
|
|
467
|
-
|
|
|
468
|
-
| `.workspai
|
|
469
|
-
| `.
|
|
470
|
-
| `.workspai/
|
|
471
|
-
| `.
|
|
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
|
|
|
@@ -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
|
|
8
|
-
|
|
|
9
|
-
| Operational playbooks
|
|
10
|
-
| Skills index
|
|
11
|
-
| Copilot skill umbrella
|
|
12
|
-
| Explain report
|
|
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
|
|
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
|
|
33
|
-
|
|
|
34
|
-
| Project / release / blocker narrative | `workspace explain …`
|
|
35
|
-
| Shorthand alias
|
|
36
|
-
| Diff → blast radius → gates
|
|
37
|
-
| Graph node centrality
|
|
38
|
-
| Record agent outcome
|
|
39
|
-
| Record Doctor repair outcome
|
|
40
|
-
| MCP read bridge
|
|
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
|
|
package/docs/contracts/README.md
CHANGED
|
@@ -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,
|
|
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`
|
|
90
|
-
|
|
91
|
-
|
|
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,26 @@ 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
|
+
|
|
129
|
+
Call binding follows the same proof boundary. Workspai binds a call only when
|
|
130
|
+
its target is uniquely defined in the same file or in a locally imported file
|
|
131
|
+
that the Graph already resolved. Overloads, dynamic dispatch, and ambiguous
|
|
132
|
+
names remain explicit unknowns for compiler or language-server evidence; the
|
|
133
|
+
CLI does not turn a repository-wide text match into semantic certainty.
|
|
134
|
+
|
|
135
|
+
When a previous graph has the same project set, provider versions, and live
|
|
136
|
+
project fingerprints, unchanged project slices are reused and only changed
|
|
137
|
+
projects repeat the expensive semantic scan. Workspace-level CI, governance,
|
|
138
|
+
infrastructure, and topology providers still run against the complete current
|
|
139
|
+
workspace. The `incremental-project-cache` provider receipt records reused and
|
|
140
|
+
rescanned scope counts. A provider-version change forces a full rebuild.
|
|
141
|
+
|
|
119
142
|
### Fast reads without stale answers
|
|
120
143
|
|
|
121
144
|
The read-oriented `search`, `entities`, `evidence`, `path`, and `benchmark`
|
|
@@ -127,13 +150,14 @@ only when all of the following remain true:
|
|
|
127
150
|
- no proof is marked stale;
|
|
128
151
|
- the graph fingerprint contains exactly one workspace scope and every
|
|
129
152
|
canonical project scope with compatible scan limits;
|
|
130
|
-
- a fresh
|
|
153
|
+
- a fresh complete eligible-path inventory produces the same aggregate
|
|
154
|
+
live-input hash.
|
|
131
155
|
|
|
132
156
|
Git-backed scopes use `git-worktree-v2`, covering tracked tree state plus
|
|
133
|
-
modified, deleted, renamed,
|
|
157
|
+
modified, deleted, renamed, and non-ignored untracked files. If Git cannot
|
|
134
158
|
prove the scanned inventory safely—for example because a traversed initialized
|
|
135
159
|
submodule or hidden index flag is present—Workspai falls back to
|
|
136
|
-
`content-merkle-v1`, which hashes each
|
|
160
|
+
`content-merkle-v1`, which hashes each eligible file by portable path and content.
|
|
137
161
|
The graph records the combined strategy as `hybrid-git-content-v2`.
|
|
138
162
|
|
|
139
163
|
A miss rebuilds from live sources. Use `--refresh-graph` when the caller requires
|
|
@@ -143,23 +167,57 @@ an explicit rebuild even if the persisted snapshot is compatible:
|
|
|
143
167
|
npx workspai workspace graph search "protobuf ownership" --refresh-graph --json
|
|
144
168
|
```
|
|
145
169
|
|
|
146
|
-
The fingerprint
|
|
147
|
-
|
|
148
|
-
|
|
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.
|
|
202
|
+
|
|
203
|
+
Workspai-generated agent entry projections are downstream consumers and are
|
|
204
|
+
excluded from Graph inventory and Git diff hashing. Regenerating `AGENTS.md`,
|
|
205
|
+
adapter entry files, or the Amazon Q entry rule therefore cannot invalidate the
|
|
206
|
+
Graph that produced them or become circular architecture evidence.
|
|
149
207
|
|
|
150
208
|
## Pick the command by question
|
|
151
209
|
|
|
152
|
-
| You want to know… | Use
|
|
153
|
-
| ---------------------------------------------------- |
|
|
154
|
-
| What is relevant to a natural-language question? | `workspace graph search <query> --limit <n> --json`
|
|
155
|
-
| Which entities of one type exist? | `workspace graph entities <kind> --json`
|
|
156
|
-
| Why does Workspai believe an item exists? | `workspace graph evidence <entity-or-relation> --json`
|
|
157
|
-
| How are two things connected? | `workspace graph path <from> <to> --json`
|
|
158
|
-
| What changed between graph revisions? | `workspace graph overlay --from <graph.json> --json`
|
|
159
|
-
| What is the full portable graph? | `workspace graph emit --output graph.json --json`
|
|
160
|
-
| How do I render the project topology? | `workspace graph dot\|mermaid [--output <file>]`
|
|
161
|
-
| How do I export to semantic or graph-analysis tools? | `workspace graph jsonld\|graphml\|gexf --output <file>`
|
|
162
|
-
| 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` |
|
|
163
221
|
|
|
164
222
|
`graph emit --json` writes the complete dependency and Knowledge Graph to
|
|
165
223
|
stdout and can be very large. Automation, IDEs, and agents should pass
|
|
@@ -275,9 +333,10 @@ in `project.runtimeCandidates` and aggregates them into
|
|
|
275
333
|
monorepo's internal services, contracts, delivery surfaces, and proofs without
|
|
276
334
|
pretending that the primary runtime describes the whole repository.
|
|
277
335
|
|
|
278
|
-
The
|
|
279
|
-
|
|
280
|
-
|
|
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
|
|
281
340
|
`workspace-model`, `graph.source.artifact` is fixed to
|
|
282
341
|
`.workspai/reports/workspace-model.json`, and `graph.source.hash` contains the
|
|
283
342
|
stable structural hash of the persisted model. A current-state consumer must
|
|
@@ -357,14 +416,23 @@ into a false “complete” claim.
|
|
|
357
416
|
|
|
358
417
|
## Outputs and consumers
|
|
359
418
|
|
|
360
|
-
`workspace model --write` publishes
|
|
361
|
-
|
|
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:
|
|
362
422
|
|
|
363
423
|
```text
|
|
364
|
-
|
|
365
|
-
|
|
424
|
+
<workspace>/.workspai/reports/workspace-model.json
|
|
425
|
+
<workspace>/.workspai/reports/workspace-knowledge-graph.json
|
|
426
|
+
<project>/.workspai/reports/project-knowledge-graph-reference.json
|
|
366
427
|
```
|
|
367
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
|
+
|
|
368
436
|
The Knowledge Graph is consumed by:
|
|
369
437
|
|
|
370
438
|
- `workspace graph search|entities|evidence|path|overlay`;
|
|
@@ -385,8 +453,12 @@ The Knowledge Graph is consumed by:
|
|
|
385
453
|
topology, rich graph, and quality summary in one response.
|
|
386
454
|
|
|
387
455
|
The complete graph is an interchange artifact, not a prompt. Agents should
|
|
388
|
-
start with
|
|
389
|
-
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.
|
|
390
462
|
|
|
391
463
|
### Interchange and visualization
|
|
392
464
|
|
|
@@ -451,12 +523,38 @@ hashes. Query indexes are cached per immutable graph object; replacing the graph
|
|
|
451
523
|
is the in-memory invalidation boundary. Across CLI processes, compatible
|
|
452
524
|
persisted read queries validate the live Git/Merkle fingerprint before reuse.
|
|
453
525
|
`workspace model --cache` and `--incremental` avoid unnecessary model/project
|
|
454
|
-
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.
|
|
455
531
|
|
|
456
532
|
Use full graph export for interchange or offline analysis. Use bounded search
|
|
457
533
|
for interactive agents. The latter keeps response size proportional to the
|
|
458
534
|
question instead of workspace size.
|
|
459
535
|
|
|
536
|
+
### Runtime-generated API topology
|
|
537
|
+
|
|
538
|
+
When an authored API contract is wired through framework registration or
|
|
539
|
+
configuration rather than a literal route handler, the
|
|
540
|
+
`dynamic-api-registration-binding` provider creates a proof-backed
|
|
541
|
+
`runtime-unit -> implements -> api` relation. Detection is runtime-specific,
|
|
542
|
+
production-only, filename-aware for routing configuration, and bounded per API.
|
|
543
|
+
It intentionally does not claim endpoint implementation: endpoint coverage
|
|
544
|
+
remains unknown until a method/path or operation-id binding is proven. Consumers
|
|
545
|
+
can distinguish the two guarantees through `bindingCoverage.apiRuntimeRegistration`
|
|
546
|
+
and `bindingCoverage.apiImplementation`.
|
|
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
|
+
|
|
460
558
|
## Measuring retrieval payload reduction
|
|
461
559
|
|
|
462
560
|
Workspai does not publish an unqualified “N× fewer tokens” claim. Such a claim
|
|
@@ -469,6 +567,10 @@ Measure the current workspace instead:
|
|
|
469
567
|
npx workspai workspace graph benchmark "authentication endpoint" --limit 12 --json
|
|
470
568
|
```
|
|
471
569
|
|
|
570
|
+
Use `--kind <entity-kind>` with search when the task requires a precise
|
|
571
|
+
semantic surface, for example `--kind runtime-unit` for dynamic registration
|
|
572
|
+
units or `--kind endpoint` for authored operations.
|
|
573
|
+
|
|
472
574
|
The report compares the readable, proof-indexed source corpus with the bounded
|
|
473
575
|
search payload using a clearly labelled `characters / 4` token estimate. It
|
|
474
576
|
reports corpus size, retrieval size, estimated ratio, percentage reduction,
|
|
@@ -497,6 +599,8 @@ a general performance claim.
|
|
|
497
599
|
- The live-input fingerprint enables whole-graph snapshot reuse; it is not yet
|
|
498
600
|
a per-file incremental graph rebuild or a hosted semantic-vector index.
|
|
499
601
|
- Compiler/LSP-grade symbol resolution belongs in deeper language providers.
|
|
602
|
+
- Runtime registration evidence proves that an API enters the running topology;
|
|
603
|
+
it does not prove that every authored operation has a reachable handler.
|
|
500
604
|
- Missing project edges mean “relationship not proven,” not “projects are
|
|
501
605
|
independent.” Author service contracts or provide API/package/runtime
|
|
502
606
|
evidence to close that gap.
|