workspai 0.58.0 → 0.59.1

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 (140) hide show
  1. package/README.md +80 -32
  2. package/contracts/agent-customization-pack.v1.json +52 -4
  3. package/contracts/cli-runtime-command-inventory.v1.snapshot.json +90 -0
  4. package/contracts/extension-cli-compatibility.v1.json +3 -1
  5. package/contracts/project-workspace-resolution.v1.json +15 -2
  6. package/contracts/published-contract-catalog.v1.json +10 -0
  7. package/contracts/runtime-command-surface.v1.json +54 -0
  8. package/contracts/workspace-intelligence/agent-bootstrap-receipt.v1.json +247 -0
  9. package/contracts/workspace-intelligence/agent-customization-pack-report.v1.json +16 -1
  10. package/contracts/workspace-intelligence/goal-index.v1.json +7 -1
  11. package/contracts/workspace-intelligence/goal-pack.v1.json +2 -1
  12. package/contracts/workspace-intelligence/project-agent-entry.v1.json +204 -0
  13. package/contracts/workspace-intelligence/project-context-agent.v1.json +43 -26
  14. package/contracts/workspace-intelligence/workspace-context.v1.json +14 -1
  15. package/contracts/workspace-intelligence/workspace-repair-transaction.v1.json +15 -2
  16. package/contracts/workspace-repair-capabilities.v1.json +5 -0
  17. package/dist/analyze-52TEGLDR.js +1 -0
  18. package/dist/{artifact-remediation-plan-JRX4XZ7C.js → artifact-remediation-plan-HPNQTNJ2.js} +1 -1
  19. package/dist/autopilot-release-NFLAKBA3.js +1 -0
  20. package/dist/capabilities-command-VBLZXP2T.js +1 -0
  21. package/dist/{chunk-TTLVG5AR.js → chunk-3CGR6435.js} +1 -1
  22. package/dist/chunk-4PUJVYRM.js +1 -0
  23. package/dist/{chunk-4NN5QWOB.js → chunk-5NIZNXRS.js} +1 -1
  24. package/dist/{chunk-HYY5PQCV.js → chunk-5PSKBJKJ.js} +1 -1
  25. package/dist/{chunk-AA4PNQKR.js → chunk-5SFCBZOH.js} +1 -1
  26. package/dist/{chunk-MFJ6ZP7S.js → chunk-6FBNSTUS.js} +1 -1
  27. package/dist/{chunk-FY6OHOXR.js → chunk-7DSYI7YN.js} +1 -1
  28. package/dist/chunk-7SFXADXO.js +2 -0
  29. package/dist/{chunk-GRGUPSNP.js → chunk-CCDGHPEJ.js} +1 -1
  30. package/dist/{chunk-T63WRURN.js → chunk-D65FCQIO.js} +1 -1
  31. package/dist/{chunk-YYCPRYP7.js → chunk-DGGTTRYE.js} +1 -1
  32. package/dist/chunk-DQ6VXTDE.js +1 -0
  33. package/dist/{chunk-SM55RK3C.js → chunk-ENKGGWRX.js} +1 -1
  34. package/dist/chunk-FLTIFYTJ.js +142 -0
  35. package/dist/{chunk-RMDVRNU7.js → chunk-GPOZILMY.js} +1 -1
  36. package/dist/{chunk-C4NYG57I.js → chunk-HCFWT42C.js} +1 -1
  37. package/dist/{chunk-RJDGC6AQ.js → chunk-HS3DJMU5.js} +1 -1
  38. package/dist/{chunk-HI7ONEFI.js → chunk-J3X56S7L.js} +1 -1
  39. package/dist/{chunk-N3DFX4BY.js → chunk-KBR4Y4RW.js} +1 -1
  40. package/dist/{chunk-H545P6LN.js → chunk-KTN2ARZJ.js} +1 -1
  41. package/dist/chunk-LPCWROQ3.js +1 -0
  42. package/dist/chunk-MZKKRAAJ.js +2 -0
  43. package/dist/{chunk-LGJAAPNR.js → chunk-N4QQADXX.js} +1 -1
  44. package/dist/{chunk-FXIE2WVG.js → chunk-NOZ4JCH7.js} +1 -1
  45. package/dist/chunk-NZ3WZYD5.js +1 -0
  46. package/dist/{chunk-VAWV3UKV.js → chunk-OFWSZYUX.js} +1 -1
  47. package/dist/{chunk-XC26FNRL.js → chunk-P2WH7W2H.js} +11 -11
  48. package/dist/chunk-PVXSIYLP.js +1 -0
  49. package/dist/{chunk-7KXRA5ST.js → chunk-PXWKMPPI.js} +1 -1
  50. package/dist/{chunk-II4ROT6X.js → chunk-QCKWQFCD.js} +1 -1
  51. package/dist/{chunk-4YICCES6.js → chunk-QFBVQUKV.js} +1 -1
  52. package/dist/{chunk-G4VMNWSU.js → chunk-QJCCZLOF.js} +1 -1
  53. package/dist/{chunk-A3JCETSF.js → chunk-QMPFNXI7.js} +1 -1
  54. package/dist/{chunk-CFBAGPB4.js → chunk-QPE6VCDW.js} +1 -1
  55. package/dist/chunk-RTDEFUTL.js +39 -0
  56. package/dist/{chunk-YMY6EFX4.js → chunk-RVKMGKYL.js} +1 -1
  57. package/dist/chunk-S4CWUZ4K.js +1 -0
  58. package/dist/{chunk-EEMRRCGR.js → chunk-SP5EHSWG.js} +1 -1
  59. package/dist/{chunk-CHMCKYJJ.js → chunk-U3MGJN7A.js} +1 -1
  60. package/dist/{chunk-WSDVFLHT.js → chunk-W6FHVXNL.js} +1 -1
  61. package/dist/{chunk-M2BK3XTP.js → chunk-WQX3JYEP.js} +1 -1
  62. package/dist/{chunk-AUCHMXUZ.js → chunk-WSRUPDZN.js} +1 -1
  63. package/dist/{chunk-6TNSCVR4.js → chunk-Y4B55J5S.js} +1 -1
  64. package/dist/{chunk-GVS5OFUB.js → chunk-YEEAWZWI.js} +1 -1
  65. package/dist/{chunk-I5PDN2P2.js → chunk-ZJCM37KX.js} +1 -1
  66. package/dist/{create-QIN56Y4M.js → create-HUEDWYDM.js} +1 -1
  67. package/dist/{doctor-RP4Q2CKJ.js → doctor-NAZEKMGU.js} +1 -1
  68. package/dist/goal-lifecycle-NUKWVUAL.js +1 -0
  69. package/dist/goal-pack-TWOXHXN6.js +1 -0
  70. package/dist/index.d.ts +8 -1
  71. package/dist/index.js +134 -132
  72. package/dist/{pipeline-77NUVYQD.js → pipeline-62A2SDLC.js} +1 -1
  73. package/dist/project-agent-entry-7SYHRY7J.js +1 -0
  74. package/dist/{project-intelligence-lens-AM2B2PXU.js → project-intelligence-lens-BSG5LK6N.js} +1 -1
  75. package/dist/{project-test-coverage-MUSS7Z7V.js → project-test-coverage-HP37HUV2.js} +1 -1
  76. package/dist/{verified-goal-ZSIZYNVO.js → verified-goal-B6HQOZWA.js} +1 -1
  77. package/dist/{workspace-LFESVKE7.js → workspace-BNRSBWSL.js} +1 -1
  78. package/dist/{workspace-agent-sync-JMRX6J2Y.js → workspace-agent-sync-ANBHBZ2H.js} +1 -1
  79. package/dist/{workspace-archive-MFHCFCDO.js → workspace-archive-ZBCKJHXS.js} +1 -1
  80. package/dist/{workspace-context-TBKRMVMT.js → workspace-context-RAO62QVU.js} +1 -1
  81. package/dist/{workspace-contract-KKVC2DUQ.js → workspace-contract-ACSIHJIO.js} +1 -1
  82. package/dist/workspace-explain-RH27OQB4.js +1 -0
  83. package/dist/workspace-explain-contract-ZL4NMLZI.js +1 -0
  84. package/dist/{workspace-feedback-O6J3RQML.js → workspace-feedback-RQ4TGJW6.js} +1 -1
  85. package/dist/{workspace-foundation-JQWT7YGC.js → workspace-foundation-EWYJPPT6.js} +1 -1
  86. package/dist/{workspace-graph-stream-V5WOXP4B.js → workspace-graph-stream-ZZZEQQTE.js} +1 -1
  87. package/dist/workspace-graph-token-efficiency-D7CUT6NX.js +1 -0
  88. package/dist/{workspace-history-TOCRMJUJ.js → workspace-history-SYCDK7FO.js} +1 -1
  89. package/dist/{workspace-intelligence-SDBIRKMK.js → workspace-intelligence-3YERTBA3.js} +1 -1
  90. package/dist/{workspace-intelligence-evaluation-E4UMWDAZ.js → workspace-intelligence-evaluation-CQDKOYZZ.js} +1 -1
  91. package/dist/{workspace-intelligence-runner-DIMNL6CJ.js → workspace-intelligence-runner-QLLBUD6G.js} +1 -1
  92. package/dist/{workspace-intelligence-runtime-registry-YGWB2RRS.js → workspace-intelligence-runtime-registry-IW6J53LO.js} +1 -1
  93. package/dist/{workspace-knowledge-graph-MUW6UAGI.js → workspace-knowledge-graph-HZZP6ZRB.js} +1 -1
  94. package/dist/{workspace-knowledge-graph-query-6DAOXGGT.js → workspace-knowledge-graph-query-ON45H6Y7.js} +1 -1
  95. package/dist/workspace-knowledge-graph-snapshot-7DWHMEM2.js +1 -0
  96. package/dist/{workspace-mcp-serve-2SWLIH4I.js → workspace-mcp-serve-5TTAN243.js} +1 -1
  97. package/dist/{workspace-model-VPFCKTYQ.js → workspace-model-EIQSKDX7.js} +1 -1
  98. package/dist/{workspace-onboarding-GHI6UTQJ.js → workspace-onboarding-UW3CSURE.js} +1 -1
  99. package/dist/{workspace-readme-RASXBZRQ.js → workspace-readme-56YZ4EAZ.js} +1 -1
  100. package/dist/{workspace-registry-summary-7QT7YMIU.js → workspace-registry-summary-OV5KX3WC.js} +1 -1
  101. package/dist/workspace-repair-engine-DHH2UUJN.js +3 -0
  102. package/dist/workspace-run-BLHRXT2N.js +1 -0
  103. package/dist/{workspace-verify-RYCQZYYB.js → workspace-verify-W4P6LBIH.js} +1 -1
  104. package/dist/{workspace-watch-U3YGN3GG.js → workspace-watch-EZ4D4VCF.js} +1 -1
  105. package/docs/GLOSSARY.md +13 -10
  106. package/docs/README.md +24 -19
  107. package/docs/README_CONTENT_CONTRACT.md +12 -8
  108. package/docs/agent-entry.md +194 -0
  109. package/docs/ci-workflows.md +18 -1
  110. package/docs/commands-reference.md +26 -2
  111. package/docs/contracts/ARTIFACT_CATALOG.md +9 -3
  112. package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +3 -0
  113. package/docs/contracts/README.md +22 -2
  114. package/docs/goal-packs.md +70 -9
  115. package/docs/workspace-operations.md +16 -8
  116. package/docs/workspace-repair-engine.md +36 -5
  117. package/package.json +4 -2
  118. package/scripts/enterprise-package-smoke.mjs +4 -0
  119. package/dist/analyze-MAU36FTX.js +0 -1
  120. package/dist/autopilot-release-TA2L7SCB.js +0 -1
  121. package/dist/capabilities-command-HE2FICLG.js +0 -1
  122. package/dist/chunk-42Q5E2YV.js +0 -1
  123. package/dist/chunk-7IRGSM25.js +0 -1
  124. package/dist/chunk-CNWUIXF3.js +0 -1
  125. package/dist/chunk-FPJNWPKU.js +0 -1
  126. package/dist/chunk-HH54C3XJ.js +0 -1
  127. package/dist/chunk-NQ5H4R2I.js +0 -83
  128. package/dist/chunk-PCXBPQO6.js +0 -1
  129. package/dist/chunk-QXW3SLEX.js +0 -1
  130. package/dist/chunk-TMOKXYAQ.js +0 -2
  131. package/dist/chunk-VIFTO53Y.js +0 -1
  132. package/dist/chunk-ZDYGO3T7.js +0 -36
  133. package/dist/goal-lifecycle-YTBU3ICP.js +0 -1
  134. package/dist/goal-pack-MYYH7K43.js +0 -1
  135. package/dist/workspace-explain-RGGZL5IW.js +0 -1
  136. package/dist/workspace-explain-contract-4ZZ6CJ44.js +0 -1
  137. package/dist/workspace-graph-token-efficiency-TF23UYEF.js +0 -1
  138. package/dist/workspace-knowledge-graph-snapshot-7IU2QAXI.js +0 -1
  139. package/dist/workspace-repair-engine-AZTJIFCY.js +0 -3
  140. package/dist/workspace-run-VMZY6LIF.js +0 -1
@@ -0,0 +1,194 @@
1
+ # Canonical-First Agent Entry
2
+
3
+ Workspai gives coding agents one portable way to enter an adopted project
4
+ without treating a broad repository scan as the source of architectural truth.
5
+
6
+ The protocol is:
7
+
8
+ ```text
9
+ Host discovery
10
+ → portable project entry
11
+ → canonical identity and evidence
12
+ → freshness and integrity checks
13
+ → active Goal handoff
14
+ → bounded Graph retrieval
15
+ → targeted live source inspection
16
+ ```
17
+
18
+ This is deliberately **host-first, not model-first**. A model does not decide
19
+ which repository instruction file is loaded. Codex, Claude Code, Gemini CLI,
20
+ Qwen Code, Kimi Code, GitHub Copilot, Cursor, Windsurf, Amazon Q, Grok, and
21
+ other agent harnesses each own their discovery behavior. Workspai projects one
22
+ canonical protocol through the entry surface each host supports.
23
+
24
+ ## Start from an adopted project
25
+
26
+ Adopt or import the project once:
27
+
28
+ ```bash
29
+ npx workspai adopt .
30
+ ```
31
+
32
+ When the eventual agent host is not known, run the canonical chain with
33
+ `--for-agent generic`:
34
+
35
+ ```bash
36
+ npx workspai workspace intelligence run --for-agent generic --strict --json
37
+ ```
38
+
39
+ `generic` creates one consumer-neutral context pack and projects lightweight
40
+ entry surfaces for **all supported agent hosts**. It does not build a separate
41
+ Model or Graph for every provider. A later host can therefore discover the
42
+ same canonical evidence without repeating the expensive intelligence run.
43
+ Choosing a named agent may tune the shared context consumer, but the canonical
44
+ chain still preserves portable entry coverage for every supported host.
45
+
46
+ Workspai writes a portable entry contract at
47
+ `.workspai/agent-entry.v1.json`, a bounded project lens at
48
+ `.workspai/reports/project-context-agent.json`, and host adapters when project
49
+ grounding is managed.
50
+
51
+ At the start of an agent session, issue a receipt from the project directory:
52
+
53
+ ```bash
54
+ npx workspai agent bootstrap --for-agent codex --strict --json
55
+ ```
56
+
57
+ Use `generic` when the host has no dedicated identifier. Use the legacy
58
+ `orca` input only for compatibility; Workspai resolves it to `grok`.
59
+
60
+ Audit every supported host in CI or before publishing project grounding:
61
+
62
+ ```bash
63
+ npx workspai project agent-entry verify --for-agent all --strict --json
64
+ ```
65
+
66
+ ## What the receipt proves
67
+
68
+ The `workspai.agent-bootstrap-receipt.v1` payload checks:
69
+
70
+ - canonical project-to-workspace membership;
71
+ - entry manifest and project-context integrity hashes;
72
+ - host discovery files without overwriting authored repository state;
73
+ - presence and schema validity of the report index, agent context, Workspace
74
+ Model, and Knowledge Graph;
75
+ - persisted Model/Graph compatibility;
76
+ - live project input compatibility, unless explicitly skipped;
77
+ - active Goal Pack and agent-handoff bindings;
78
+ - portable output with no machine-local absolute paths.
79
+
80
+ The receipt does not claim that a model followed the instructions. It proves
81
+ that the host has a valid route to current Workspai evidence and tells the
82
+ consumer what it may claim next. The portable manifest keeps `generic` as its
83
+ provider-neutral bootstrap command; each runtime receipt replaces that step in
84
+ `requiredReadOrder` with the resolved host (or `all` for a complete host audit),
85
+ so a consumer is never routed back through the wrong adapter.
86
+
87
+ The generated workspace name is a logical identity, never a filesystem path.
88
+ Project-local artifacts use `.workspai/...`; canonical workspace artifacts use
89
+ the `workspace:` URI prefix. When an agent requires direct file access, it
90
+ resolves the exact local workspace root at runtime from the adopted project:
91
+
92
+ ```bash
93
+ workspai project workspace status --json
94
+ ```
95
+
96
+ That resolver intentionally returns absolute paths to the local process. Its
97
+ contract classifies them as machine-local, non-portable, forbidden to persist,
98
+ and forbidden to disclose. Entry manifests, project lenses, bootstrap receipts,
99
+ answers, shared logs, commits, prompts, and telemetry must not copy those paths.
100
+
101
+ | Status | Meaning | Consumer rule |
102
+ | ---------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------- |
103
+ | `ready` | Host entry, contracts, integrity, and live evidence passed | Continue with bounded Graph retrieval and targeted source reads |
104
+ | `degraded` | Evidence is usable with an explicit limitation | Disclose the limitation; do not claim complete architecture or verification |
105
+ | `blocked` | Required discovery, binding, contract, integrity, or freshness failed | Refresh or repair evidence before architectural or verification claims |
106
+
107
+ An active Goal is reported independently as `ready`, `stale`, or `invalid`.
108
+ A stale Goal remains `present: true`; the receipt includes a complete refresh
109
+ command in `nextActions`. Absence is represented as `present: false` with
110
+ `status: none`, never as a validation failure.
111
+
112
+ `--strict` returns exit code `2` for both `degraded` and `blocked`. Without
113
+ `--strict`, a blocked receipt still returns exit code `2`; degraded evidence is
114
+ returned for an explicitly limited read-only workflow.
115
+
116
+ `--no-live-inputs` is an intentional degraded mode. It checks persisted
117
+ compatibility but cannot prove that the source tree still matches the last
118
+ intelligence run.
119
+
120
+ ## Authority boundaries
121
+
122
+ Workspai does not replace source code with generated summaries:
123
+
124
+ - live source owns exact implementation behavior;
125
+ - the canonical Workspace Model owns workspace identity and structural truth;
126
+ - the Knowledge Graph is a model-bound, proof-backed retrieval projection;
127
+ - CLI evidence owns readiness, verification, repair, and Goal lifecycle claims;
128
+ - the project entry contract owns the order in which an agent reaches those
129
+ sources.
130
+
131
+ This means an agent begins with canonical evidence, then verifies and deepens
132
+ it through narrow source inspection. It must not silently replace missing or
133
+ stale workspace evidence with an unbounded repository scan.
134
+
135
+ ## Host projection
136
+
137
+ | Host | Project discovery surface |
138
+ | -------------------------------------------------------- | -------------------------------------------------------- |
139
+ | Generic and unsupported model-only clients | `.workspai/PROJECT-GROUNDING.md` plus explicit bootstrap |
140
+ | Codex, Kimi Code, GitHub Copilot, Cursor, Windsurf, Grok | `AGENTS.md` |
141
+ | Claude Code | `CLAUDE.md` adapter |
142
+ | Gemini CLI | `GEMINI.md` adapter |
143
+ | Qwen Code | `QWEN.md` adapter |
144
+ | Amazon Q | `.amazonq/rules/workspai-agent-entry.md` |
145
+
146
+ The adapters contain routing instructions, not duplicated model or graph
147
+ state. The manifest records whether each surface is native, adapted, or a
148
+ portable fallback and whether Workspai could manage it safely.
149
+
150
+ This matrix was last checked against official host documentation on
151
+ 2026-08-16: [Codex `AGENTS.md`](https://learn.chatgpt.com/docs/agent-configuration/agents-md),
152
+ [Claude Code memory](https://code.claude.com/docs/en/memory),
153
+ [Gemini CLI context files](https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/gemini-md.md),
154
+ [Qwen Code settings](https://github.com/QwenLM/qwen-code/blob/main/docs/users/configuration/settings.md),
155
+ [Kimi Code `AGENTS.md`](https://www.kimi.com/code/docs/en/kimi-code-cli/customization/agents),
156
+ [GitHub Copilot repository instructions](https://docs.github.com/en/copilot/concepts/prompting/response-customization),
157
+ [Cursor rules](https://docs.cursor.com/context/rules-for-ai),
158
+ [Windsurf `AGENTS.md`](https://docs.windsurf.com/windsurf/cascade/agents-md),
159
+ [Amazon Q project rules](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/context-project-rules.html),
160
+ and [Grok skills and instructions](https://docs.x.ai/build/features/skills-plugins-marketplaces).
161
+ DeepSeek, Mistral, hosted model APIs, and other model-only consumers do not
162
+ define a provider-wide repository entry surface independently of the agent
163
+ host. They use the generic portable bootstrap unless their host maps to one of
164
+ the verified surfaces above. Workspai does not invent a model-specific file
165
+ name from undocumented behavior.
166
+
167
+ If an authored instruction file or symbolic link prevents safe management,
168
+ Workspai preserves repository ownership and reports degraded or blocked host
169
+ coverage. It does not replace the file to make a check pass.
170
+
171
+ ## Consumer integration
172
+
173
+ IDEs and agent runtimes should:
174
+
175
+ 1. discover the host-native instruction file;
176
+ 2. run `workspai agent bootstrap --for-agent <host> --json`;
177
+ 3. validate the receipt schema from the installed CLI contract catalog;
178
+ 4. stop broad discovery when the receipt is blocked;
179
+ 5. read an applicable active Goal handoff before planning changes;
180
+ 6. use the bounded Graph query returned by `nextActions`;
181
+ 7. open only returned proofs and target source files;
182
+ 8. make mutation and verification claims only through the governed CLI flow.
183
+
184
+ Do not infer support from the package version alone. Discover
185
+ `projectAgentEntry` and `agentBootstrapReceipt` through
186
+ `contracts/published-contract-catalog.v1.json`.
187
+
188
+ ## Package boundary
189
+
190
+ The CLI currently owns adoption, synchronization, receipt orchestration, and
191
+ exit semantics. The entry manifest and receipt are versioned, portable
192
+ contracts rather than CLI-internal objects. Future independent Model, Graph,
193
+ Goal, or agent packages can therefore implement their own providers behind the
194
+ same contract without changing the project-facing protocol.
@@ -22,6 +22,16 @@ The release workflow requires the cost-bounded
22
22
  normal push that touches the contracted generator surface produces this gate;
23
23
  maintainers do not need to run the full cross-platform matrix before publishing.
24
24
 
25
+ Consumer mirror synchronization does not add another required CLI workflow.
26
+ Local pre-commit synchronizes mirrors when contract sources are staged;
27
+ pre-push requires canonical CLI outputs to be committed but does not require a
28
+ consumer release. The extension's own CI remains responsible for hard parity
29
+ against the CLI version selected for that extension release. Consumer-owned
30
+ version floors remain separate from CLI-owned schema inventories, preventing
31
+ parity checks from coupling product versions. Breaking contract removal or
32
+ incompatible schema changes remain CLI release blockers through the canonical
33
+ compatibility and schema-version gates.
34
+
25
35
  Pushes and pull requests run every contracted generator on the primary Linux
26
36
  lane. The weekly schedule and manual dispatch can run the complete Linux,
27
37
  macOS, and Windows matrix as a non-blocking compatibility and upstream-drift
@@ -30,6 +40,13 @@ caching generated projects; every smoke run still exercises the current
30
40
  upstream generator, generated artifacts, build surface, registry, and Doctor
31
41
  evidence.
32
42
 
43
+ The Windows coverage lane intentionally uses bounded Vitest worker concurrency
44
+ and platform-aware transaction timeouts. Filesystem-heavy workspace tests must
45
+ finish their transaction before teardown; cleanup retries transient Windows
46
+ `EBUSY` and `ENOTEMPTY` states instead of converting one slow operation into a
47
+ cascade of unrelated missing-file failures. These budgets remain finite and do
48
+ not retry failed assertions or product operations.
49
+
33
50
  ## Release announcements
34
51
 
35
52
  `packages/cli/releases/release-products.v1.json` maps a release product to its
@@ -46,7 +63,7 @@ Validate or preview the current CLI announcement locally:
46
63
  npm --workspace workspai run check:release-announcement
47
64
  npm --workspace workspai run release:announcement -- \
48
65
  --product workspai-cli \
49
- --tag v0.58.0 \
66
+ --tag v0.59.1 \
50
67
  --markdown-output /tmp/workspai-discord-announcement.md
51
68
  ```
52
69
 
@@ -8,6 +8,20 @@ For behavior and workflows, see
8
8
  [workspace-operations.md](./workspace-operations.md) and
9
9
  [OPEN_SOURCE_USER_SCENARIOS.md](./OPEN_SOURCE_USER_SCENARIOS.md).
10
10
 
11
+ Start with the outcome-oriented root help when you do not yet know a command:
12
+
13
+ ```bash
14
+ npx workspai --help
15
+ npx workspai <command> --help
16
+ npx workspai commands --json
17
+ ```
18
+
19
+ Root help presents the canonical `Understand → Impact → Act → Verify` path,
20
+ common human workflows, interactive official-kit discovery through `create
21
+ project`, and a complete ownership-grouped command map. Scoped help carries
22
+ exact flags and examples. `commands --json` remains the machine-complete
23
+ inventory used to prevent the human map from drifting.
24
+
11
25
  ## Workspace lifecycle
12
26
 
13
27
  ```bash
@@ -21,6 +35,7 @@ npx workspai readiness [--workspace <path>] [--json] [--strict] [--skip-verify]
21
35
  npx workspai autopilot release [--mode <audit|safe-fix|enforce>] [--json] [--output <file>] [--since <ref>] [--parallel] [--max-workers <n>]
22
36
  npx workspai goal <intent> [--workspace <path>] [--scope <workspace|project:name>] [--for-agent <generic|claude|codex>] [--max-attempts <1-25>] [--refresh] [--dry-run] [--json]
23
37
  npx workspai goal <--status [goal-id]|--list|--activate <goal-id>|--cancel <goal-id>|--prepare <goal-id>|--verify <goal-id>> [--workspace <path>] [--no-run] [--json]
38
+ npx workspai agent bootstrap [--project <path>] [--for-agent <host>] [--no-live-inputs] [--strict] [--json]
24
39
  ```
25
40
 
26
41
  Recommended CI:
@@ -59,6 +74,7 @@ npx workspai doctor
59
74
  npx workspai doctor workspace [--json] [--strict] [--ci] [--fix] [--plan] [--apply]
60
75
  npx workspai doctor project [--json] [--strict] [--ci] [--fix] [--plan] [--apply]
61
76
  npx workspai project coverage [--project <path>] [--target <0-100>] [--run] [--strict] [--json]
77
+ npx workspai project agent-entry [verify] [--project <path>] [--for-agent <host|all>] [--no-live-inputs] [--strict] [--json]
62
78
  npx workspai workspace list
63
79
  npx workspai workspace foundation ensure [--force] [--json]
64
80
  npx workspai workspace share [--output <file>] [--include-paths] [--no-doctor]
@@ -71,8 +87,8 @@ npx workspai workspace goal plan <release-readiness|dependency-security|test-cov
71
87
  npx workspai workspace goal status <goal-id> [--json]
72
88
  npx workspai workspace goal verify <goal-id> [--no-run] [--reuse-intelligence] [--json]
73
89
  npx workspai workspace model [--workspace <path>] [--json] [--write] [--strict] [--cache] [--incremental] [--include-paths] [--include-evidence] [--scan-depth <count>]
74
- npx workspai workspace context --for-agent [generic|codex|claude|cursor|orca] [--workspace <path>] [--scope project:<name>] [--json] [--write] [--agent-sync|--no-agent-sync] [--target <targets>] [--preset minimal|enterprise] [--project-grounding managed|local|off] [--include-evidence] [--scan-depth <count>] [--strict]
75
- npx workspai workspace agent-sync [--workspace <path>] [--write] [--refresh-context] [--strict] [--json] [--preset minimal|enterprise] [--target all|vscode|agents,copilot,cursor,claude,codex,orca] [--project-grounding managed|local|off] [--experimental-hooks] [--hydrate-prompts]
90
+ npx workspai workspace context --for-agent [generic|codex|claude|gemini|qwen|kimi|grok|copilot|cursor|windsurf|amazon-q] [--workspace <path>] [--scope project:<name>] [--json] [--write] [--agent-sync|--no-agent-sync] [--target <targets>] [--preset minimal|enterprise] [--project-grounding managed|local|off] [--include-evidence] [--scan-depth <count>] [--strict]
91
+ npx workspai workspace agent-sync [--workspace <path>] [--write] [--refresh-context] [--strict] [--json] [--preset minimal|enterprise] [--target all|vscode|agents,copilot,cursor,claude,codex,gemini,qwen,kimi,grok,windsurf,amazon-q] [--project-grounding managed|local|off] [--experimental-hooks] [--hydrate-prompts]
76
92
  npx workspai workspace remediation-plan [--json] [--write] [--ci] [--include-paths]
77
93
  npx workspai workspace repair <capabilities|plan|propose|approve|decide|execute|resume|status|list|rollback|cancel> [--workspace <path>] [--card <id>] [--action-id <id>] [--project <name>] [--proposal <file>] [--transaction <id>] [--approved-by <actor>] [--decision <choice>] [--max-risk safe|guarded|invasive] [--allow-breaking] [--allow-force] [--no-auto-rollback] [--json]
78
94
  npx workspai workspace snapshot [--workspace <path>] [--json] [--include-paths] [--include-evidence] [--scan-depth <count>]
@@ -165,6 +181,14 @@ claim verification. Lifecycle operations are mutually exclusive, cannot be
165
181
  combined with an intent or planning-only flags, and `--no-run` is valid only
166
182
  with `--verify`. See [Goal Packs](./goal-packs.md).
167
183
 
184
+ `agent bootstrap` is the project-local canonical-first preflight. It validates
185
+ the host discovery route, project/workspace binding, public artifact schemas,
186
+ integrity hashes, Model/Graph freshness, live source inputs, and active Goal
187
+ handoff before broad repository discovery. `project agent-entry verify` uses
188
+ the same receipt and can audit every supported host with `--for-agent all`.
189
+ Blocked receipts exit `2`; strict mode also maps degraded evidence to exit `2`.
190
+ See [Canonical-first agent entry](./agent-entry.md).
191
+
168
192
  `workspace feedback record` is a non-interactive machine interface. It requires
169
193
  exactly one JSON object on stdin and `--json`; an empty stdin or interactive TTY
170
194
  is rejected. Required fields are `actionId`, `summary`, and `outcome`. The
@@ -28,6 +28,7 @@ root:
28
28
  | Artifact | Writer | Schema / format | Portability and reader purpose |
29
29
  | ---------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------- |
30
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 |
31
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 |
32
33
  | `.workspai/PROJECT-GROUNDING.md` | Project lens reconciliation | Markdown | Portable human/agent entry guide with path-free workspace references |
33
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 |
@@ -42,6 +43,11 @@ machine-local link publishable. The context is bounded but not count-only: it
42
43
  includes topology, API/deployment/test surfaces, blockers, portable proofs,
43
44
  and model/graph freshness for the selected project.
44
45
 
46
+ `agent bootstrap --json` and `project agent-entry verify --json` emit a
47
+ non-persisted `workspai.agent-bootstrap-receipt.v1` payload. The receipt proves
48
+ the selected host route, contract validity, integrity, persisted and live
49
+ freshness, and active Goal bindings without exposing the machine-local link.
50
+
45
51
  ## Naming conventions
46
52
 
47
53
  | Pattern | Meaning | Examples |
@@ -62,9 +68,9 @@ and model/graph freshness for the selected project.
62
68
  | `workspace remediation-plan --write` | `.workspai/reports/artifact-remediation-plan-last-run.json` | `artifact-remediation-plan-v1` | `contracts/artifact-remediation-plan.v1.json` |
63
69
  | `workspace repair *` | `.workspai/reports/workspace-repair-last-run.json` | `workspai.workspace-repair-transaction.v1` | `contracts/workspace-intelligence/workspace-repair-transaction.v1.json` |
64
70
  | `workspace repair capabilities` | CLI capability output | `workspai.workspace-repair-capabilities.v1` | `contracts/workspace-repair-capabilities.v1.json` |
65
- | `goal <intent>` | `.workspai/reports/goal-pack-last-run.json` | `workspai.goal-pack.v1` | `contracts/workspace-intelligence/goal-pack.v1.json` |
66
- | `goal <intent>` / lifecycle options | `.workspai/goals/index.json` | `workspai.goal-index.v1` | `contracts/workspace-intelligence/goal-index.v1.json` |
67
- | `goal --status/--list/... --json` | stdout | `workspai.goal-lifecycle-result.v1` | `contracts/workspace-intelligence/goal-lifecycle-result.v1.json` |
71
+ | `goal <intent>` | `.workspai/reports/goal-pack-last-run.json` | `workspai.goal-pack.v1` | `contracts/workspace-intelligence/goal-pack.v1.json` |
72
+ | `goal <intent>` / lifecycle options | `.workspai/goals/index.json` | `workspai.goal-index.v1` | `contracts/workspace-intelligence/goal-index.v1.json` |
73
+ | `goal --status/--list/... --json` | stdout | `workspai.goal-lifecycle-result.v1` | `contracts/workspace-intelligence/goal-lifecycle-result.v1.json` |
68
74
  | `analyze` | `.workspai/reports/analyze-last-run.json` | `rapidkit-analyze-v1` | `contracts/analyze-last-run.v1.json` |
69
75
  | `readiness` | `.workspai/reports/release-readiness-last-run.json` | `release-readiness-v1` | `contracts/release-readiness.v1.json` |
70
76
  | `pipeline` | `.workspai/reports/pipeline-last-run.json` | `rapidkit-pipeline-v1` | `contracts/pipeline-last-run.v1.json` |
@@ -34,6 +34,7 @@ These commands are implemented and orchestrated by Workspai CLI:
34
34
  - `commands`
35
35
  - `create`
36
36
  - `goal`
37
+ - `agent`
37
38
  - `project`
38
39
  - `shell activate`
39
40
 
@@ -58,6 +59,8 @@ These nested Commander commands are implemented and orchestrated by Workspai CLI
58
59
  - `product manifest`
59
60
  - `product manifest create`
60
61
  - `product plan`
62
+ - `agent bootstrap`
63
+ - `project agent-entry`
61
64
  - `project commands`
62
65
  - `project coverage`
63
66
  - `project archives`
@@ -28,15 +28,28 @@ 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:parity-snapshot` | Copy canonical → vscode `contracts/` mirror |
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 |
32
33
  | `npm run check:parity-snapshot` | Verify mirrors match canonical |
34
+ | `npm run contracts:prepush` | Sync local consumers and require generated canonical CLI mirrors to be committed |
33
35
  | `npm run validate:contracts` | Shared-contract checks and focused contract tests |
34
36
  | `npm run contracts:validate` | Comprehensive generated/shared contract, parity, runtime-conformance, and adversarial gate |
35
37
  | `npm run check:agent-customization-drift` | Verify generated agent customization files are committed in a consumer workspace |
36
38
  | `npm run test:real-world -- ...` | Qualify explicitly selected linked repositories in isolated or cumulative workspaces |
37
39
  | `npm run test:real-world:enterprise -- ...` | Exercise the read-mostly, export, archive, agent dry-run, snapshot, and destructive dry-run command surface |
38
40
 
39
- Workflow: change code → `npm run generate:contracts` → `npm run sync:parity-snapshot` → commit npm + vscode `contracts/`.
41
+ Workflow: change code → `npm run sync:shared-contracts` → review and commit
42
+ the CLI mirrors plus every locally available consumer mirror → push. When the
43
+ VS Code repository is available, pre-commit synchronizes and stages its mirrored
44
+ contracts. Pre-push refuses uncommitted canonical CLI outputs while consumer
45
+ drift remains visible without coupling release cadence.
46
+
47
+ The CLI does not require a cross-repository consumer workflow before npm
48
+ publication. Workspai VS Code enforces hard parity in its own release CI against
49
+ the CLI version it selects. Consumer-specific version floors remain owned by
50
+ the consumer; schema synchronization never forces a redundant CLI release.
51
+ Breaking schema changes are still blocked by versioned contract compatibility
52
+ gates in the CLI.
40
53
 
41
54
  ## Documents in this folder
42
55
 
@@ -74,6 +87,8 @@ Published under `../../contracts/` (not duplicated in this folder):
74
87
  - `analyze-last-run.v1.json` — analyze evidence
75
88
  - `pipeline-last-run.v1.json` — governance pipeline orchestration
76
89
  - `project-entry-capability.v1.json` — open-ended adopt/import contract for readable projects
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
77
92
  - `adopt-effects.v1.json` — dry-run disclosure of project metadata, conditional repository-control reconciliation, and workspace operations before adoption
78
93
  - `create-planner-capabilities.v1.json` — native, official, and existing capability lanes
79
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
@@ -114,6 +129,11 @@ These schemas describe durable artifacts or bounded query results. A command's
114
129
  stdout may wrap an artifact with operation metadata such as `status`,
115
130
  `outputPath`, or a structured error; that envelope follows
116
131
  `cli-operation-result.v1.json` and does not change the nested artifact contract.
132
+ `status: "success"` means the command completed and returned its contracted
133
+ artifact; it does not override a policy gate. For gated operations such as
134
+ `workspace verify --strict`, the envelope `exitCode`, process exit code, and
135
+ nested gate exit code are identical even when the artifact was produced
136
+ successfully and the gate blocked progression.
117
137
 
118
138
  CLI commands: see [commands-reference.md](../commands-reference.md) and the
119
139
  [CLI README](../../README.md#one-intelligence-chain).
@@ -8,6 +8,12 @@ current Workspace Model and proof-backed Knowledge Graph.
8
8
  # Run inside an adopted project; scope defaults to that project.
9
9
  npx workspai goal "Raise test coverage to at least 85%"
10
10
 
11
+ # Goals are not limited to coverage or another built-in metric.
12
+ npx workspai goal "Add retry with exponential backoff for transient requests"
13
+ npx workspai goal "Refactor the authentication boundary"
14
+ npx workspai goal "Improve startup latency" --scope project:web
15
+ npx workspai goal "Document the release workflow"
16
+
11
17
  # Plan for the whole canonical workspace.
12
18
  npx workspai goal "Prepare this workspace for release" --scope workspace
13
19
 
@@ -18,6 +24,13 @@ npx workspai goal "Map the authentication architecture" --dry-run --json
18
24
  The command plans work. It does **not** edit source, call a model, install an
19
25
  agent plugin, approve a repair, or claim that the outcome is complete.
20
26
 
27
+ Goal intent is open-ended within the engineering workspace. The category is a
28
+ retrieval and verification hint, not an allowlist. An objective that does not
29
+ match the local deterministic classifier is retained as a low-confidence
30
+ general Goal instead of being discarded; the original text remains the
31
+ authority. Genuine compound ambiguity, missing numeric coverage targets,
32
+ missing evidence, unsafe scope, or stale bindings still stop before mutation.
33
+
21
34
  ## What it produces
22
35
 
23
36
  A successful plan atomically publishes four portable artifacts:
@@ -68,10 +81,17 @@ npx workspai goal "Fix the authentication regression" --refresh --json
68
81
 
69
82
  The Goal Pack records both bindings and their exact hash semantics. The Model
70
83
  uses its stable structural projection; Graph and Goal artifacts use canonical
71
- JSON. A Goal fingerprint is an identity key and is never presented as a file
72
- digest. Regenerating after either source binding
73
- changes creates a different goal identity, preventing an agent from silently
74
- executing a proposal against stale architecture.
84
+ JSON. The Graph binding also records its stable live-input fingerprint, so an
85
+ evidence-only rerun does not make an unchanged Goal stale merely because the
86
+ artifact timestamp changed. A Goal fingerprint is an identity key and is never
87
+ presented as a file digest.
88
+
89
+ The original source binding remains immutable. A later source state is accepted
90
+ only when it is sealed by a Goal-bound, approved, closed CLI Repair transaction
91
+ whose plan, proposal, checkpoint output, exact-target verification, canonical
92
+ Model, Graph, and closure receipt all still validate. Any unlinked edit,
93
+ post-closure edit, or unrelated workspace drift makes the Goal stale and
94
+ requires a new Goal Pack.
75
95
 
76
96
  ## Honest preflight states
77
97
 
@@ -86,8 +106,16 @@ reported as `needs-evidence`, never as ready.
86
106
  selected intent and scope. Workspai refuses to hand broad source inspection to
87
107
  an agent until Workspace Intelligence is refreshed or the intent is clarified.
88
108
 
109
+ Only a `ready-to-plan` Goal may become the active objective automatically.
110
+ Planning a Goal that needs confirmation or evidence records it for review but
111
+ does not replace the current active Goal.
112
+
89
113
  Preflight also carries the current Workspace Intelligence status, blocked
90
- stages, deterministic category queries, and bounded graph anchors.
114
+ stages, objective-first retrieval queries, deterministic category recall, and
115
+ bounded graph anchors. The complete user objective receives the primary anchor
116
+ budget; generic category matches cannot crowd it out. When only structured
117
+ category evidence is available, retrieval is reported as `partial`, not falsely
118
+ as objective-grounded.
91
119
 
92
120
  ## Relationship to verified goals
93
121
 
@@ -118,6 +146,26 @@ completed verified goal clears the active selection. `--list` and `--cancel`
118
146
  remain available when an old Goal is stale, so operators can recover safely;
119
147
  `--status`, `--activate`, `--prepare`, and `--verify` require current bindings.
120
148
 
149
+ The immutable Goal Pack also owns the execution-cycle budget. Every repair
150
+ proposal is linked in the Goal index and every verification attempt is recorded
151
+ in the verified-goal status artifact. Proposal planning and verification are
152
+ serialized independently, refuse to exceed `executionPolicy.maxAttempts`, and
153
+ remain bounded even when concurrent IDE or agent requests race. Consumers must
154
+ restore both durable counters and use the greater value as the current cycle;
155
+ they cannot reset a local retry counter. If the baseline already satisfies the
156
+ criteria, the consumer should call the verifier immediately and avoid an
157
+ unnecessary source change.
158
+
159
+ Every other Goal is still executable through a compatible consumer, but its
160
+ semantic outcome is not falsely presented as machine-verifiable. The consumer
161
+ must assess the final diff or answer against the complete immutable objective,
162
+ while the CLI independently owns scope, repair transactions, build/test/audit
163
+ checks, canonical workspace verification, rollback, and the attempt budget.
164
+ Such a result is evidence-reviewed; only the three exact producer contracts may
165
+ use the lifecycle claim `verified`. Its `workspace-verify` success criterion and
166
+ final orchestration step explicitly describe safety and evidence freshness; they
167
+ never describe that signal as proof of an arbitrary semantic outcome.
168
+
121
169
  ## Ownership and safety boundary
122
170
 
123
171
  ```text
@@ -133,9 +181,22 @@ IDE chat, MCP, and future independent packages may render or transport it, but
133
181
  they cannot widen scope, grant network access, authorize mutation, mark a goal
134
182
  verified, or replace CLI evidence.
135
183
 
136
- Current Goal Packs use `proposal-only` mutation mode. Model-driven source
137
- proposal execution is intentionally a later bridge through the existing
138
- Repair Engine and, ultimately, the independent Decisions architecture.
184
+ Current Goal Packs use `proposal-only` mutation mode: the CLI command itself
185
+ does not invoke a model or mutate source. A compatible IDE or agent consumer
186
+ may execute an inspected proposal only by submitting it to the existing CLI
187
+ Repair Engine, binding the transaction to the active Goal fingerprint, and
188
+ calling the exact Goal verifier after the transaction closes. A closed repair,
189
+ generic test pass, or consumer message cannot mark the Goal verified. This
190
+ boundary is designed to remain compatible with the independent Decisions
191
+ architecture.
192
+
193
+ Goal consumers must also preserve metric integrity. The Workspai extension does
194
+ not expose file deletion to deterministic verified Goals. Its test-coverage
195
+ Goal may write only test-owned source, fixtures, or snapshots; a general Goal
196
+ may create, replace, or delete only inspected source through an approved,
197
+ rollback-protected CLI Repair transaction. This prevents a model from reaching
198
+ a numeric coverage target by shrinking or redefining the measured surface
199
+ without crippling legitimate goals such as removing a deprecated module.
139
200
 
140
201
  ## Options
141
202
 
@@ -143,7 +204,7 @@ Repair Engine and, ultimately, the independent Decisions architecture.
143
204
  --workspace <path> Explicit canonical workspace
144
205
  --scope <scope> workspace or project:<name>
145
206
  --for-agent <consumer> generic, claude, or codex (default: generic)
146
- --max-attempts <count> Bounded proposal budget, 1–25 (default: 5)
207
+ --max-attempts <count> Bounded execution-cycle budget, 1–25 (default: 5)
147
208
  --refresh Refresh Workspace Intelligence before planning
148
209
  --dry-run Validate and preview without writes
149
210
  --status [goal-id] Validate active or named Goal bindings
@@ -54,8 +54,10 @@ npx workspai workspace import team.workspai-archive.zip --output ./team --json
54
54
  - Writes `.workspai/project.json`, `.workspai/adopt.json`, and `.workspai/adopt-readiness.json`.
55
55
  - Registry and contract sync include adopted projects for `workspace model`, `workspace context`, Dashboard, and agents.
56
56
  - Managed grounding writes a portable project lens, project grounding, and a
57
- bounded managed section in `AGENTS.md`. User-authored `AGENTS.md` content is
58
- preserved, and an authored tracked deletion of that file is never resurrected.
57
+ bounded managed section in `AGENTS.md`. It also publishes the portable agent
58
+ entry manifest and host adapters. User-authored instruction content and
59
+ symbolic links are preserved, and an authored tracked deletion is never
60
+ resurrected.
59
61
  - `--dry-run --json` previews detection without writing metadata. Its versioned
60
62
  `adoptedProject.effects` record also declares project metadata files,
61
63
  conditional `.gitignore`/`AGENTS.md` reconciliation, and the registration,
@@ -107,6 +109,7 @@ entry point into its canonical workspace:
107
109
  ```bash
108
110
  cd /absolute/path/to/project
109
111
  npx workspai project workspace status --json
112
+ npx workspai agent bootstrap --for-agent codex --json
110
113
  npx workspai doctor workspace --json=summary
111
114
  npx workspai doctor project --json
112
115
  npx workspai workspace graph search "authentication endpoint" --limit 12 --json
@@ -121,12 +124,13 @@ one workspace silently when ownership is ambiguous.
121
124
 
122
125
  The project receives four distinct surfaces:
123
126
 
124
- | File | Purpose | Portable |
125
- | ---------------------------------------------- | ----------------------------------------------------------------------------- | --------------------- |
126
- | `.workspai/workspace-link.local.json` | Machine-local canonical workspace binding | No; always gitignored |
127
- | `.workspai/reports/project-context-agent.json` | Bounded project view of model, graph, proofs, diagnostics, and safe commands | Yes |
128
- | `.workspai/PROJECT-GROUNDING.md` | Human- and agent-readable project entry guide | Yes |
129
- | `AGENTS.md` managed section | Tells compatible agents where to start and when to cross the project boundary | Yes |
127
+ | File | Purpose | Portable |
128
+ | ---------------------------------------------- | ------------------------------------------------------------------------------ | --------------------- |
129
+ | `.workspai/workspace-link.local.json` | Machine-local canonical workspace binding | No; always gitignored |
130
+ | `.workspai/agent-entry.v1.json` | Versioned host coverage, read order, authority boundaries, and integrity proof | Yes |
131
+ | `.workspai/reports/project-context-agent.json` | Bounded project view of model, graph, proofs, diagnostics, and safe commands | Yes |
132
+ | `.workspai/PROJECT-GROUNDING.md` | Human- and agent-readable project entry guide | Yes |
133
+ | `AGENTS.md` and host adapters | Route supported hosts to the same canonical-first bootstrap | Yes |
130
134
 
131
135
  The bounded context includes project identity and commands, dependencies and
132
136
  dependents, related API/deployment/test surfaces, current project findings,
@@ -142,6 +146,10 @@ Mode reconciliation is convergent: changing modes removes stale managed
142
146
  sections, portable files, or ignore rules that the new mode no longer owns,
143
147
  while preserving user-authored `AGENTS.md` and `.gitignore` content.
144
148
 
149
+ Run `project agent-entry verify --for-agent all --strict --json` to audit every
150
+ host projection. See [Canonical-first agent entry](./agent-entry.md) for status,
151
+ freshness, privacy, and consumer rules.
152
+
145
153
  If a workspace moved, or a cloned project has no valid local link, reconcile
146
154
  it explicitly:
147
155