workspai 0.58.0 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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-KQGDM2AA.js +1 -0
  20. package/dist/capabilities-command-VBLZXP2T.js +1 -0
  21. package/dist/chunk-4PUJVYRM.js +1 -0
  22. package/dist/{chunk-4NN5QWOB.js → chunk-5NIZNXRS.js} +1 -1
  23. package/dist/{chunk-HYY5PQCV.js → chunk-5PSKBJKJ.js} +1 -1
  24. package/dist/{chunk-AA4PNQKR.js → chunk-5SFCBZOH.js} +1 -1
  25. package/dist/{chunk-MFJ6ZP7S.js → chunk-6FBNSTUS.js} +1 -1
  26. package/dist/{chunk-FY6OHOXR.js → chunk-7DSYI7YN.js} +1 -1
  27. package/dist/chunk-7SFXADXO.js +2 -0
  28. package/dist/{chunk-GRGUPSNP.js → chunk-CCDGHPEJ.js} +1 -1
  29. package/dist/{chunk-T63WRURN.js → chunk-D65FCQIO.js} +1 -1
  30. package/dist/{chunk-YYCPRYP7.js → chunk-DGGTTRYE.js} +1 -1
  31. package/dist/{chunk-SM55RK3C.js → chunk-ENKGGWRX.js} +1 -1
  32. package/dist/{chunk-RMDVRNU7.js → chunk-GPOZILMY.js} +1 -1
  33. package/dist/{chunk-C4NYG57I.js → chunk-HCFWT42C.js} +1 -1
  34. package/dist/chunk-HOUQIT7U.js +1 -0
  35. package/dist/{chunk-RJDGC6AQ.js → chunk-HS3DJMU5.js} +1 -1
  36. package/dist/{chunk-HI7ONEFI.js → chunk-J3X56S7L.js} +1 -1
  37. package/dist/{chunk-N3DFX4BY.js → chunk-KBR4Y4RW.js} +1 -1
  38. package/dist/{chunk-H545P6LN.js → chunk-KTN2ARZJ.js} +1 -1
  39. package/dist/chunk-LPCWROQ3.js +1 -0
  40. package/dist/{chunk-6TNSCVR4.js → chunk-M3IKRWXA.js} +1 -1
  41. package/dist/{chunk-CFBAGPB4.js → chunk-M4UOXP5T.js} +1 -1
  42. package/dist/{chunk-LGJAAPNR.js → chunk-N4QQADXX.js} +1 -1
  43. package/dist/{chunk-FXIE2WVG.js → chunk-NOZ4JCH7.js} +1 -1
  44. package/dist/chunk-NZ3WZYD5.js +1 -0
  45. package/dist/{chunk-VAWV3UKV.js → chunk-OFWSZYUX.js} +1 -1
  46. package/dist/{chunk-XC26FNRL.js → chunk-OLC7EYUA.js} +3 -3
  47. package/dist/chunk-PVXSIYLP.js +1 -0
  48. package/dist/{chunk-7KXRA5ST.js → chunk-PXWKMPPI.js} +1 -1
  49. package/dist/{chunk-II4ROT6X.js → chunk-QCKWQFCD.js} +1 -1
  50. package/dist/{chunk-4YICCES6.js → chunk-QFBVQUKV.js} +1 -1
  51. package/dist/{chunk-G4VMNWSU.js → chunk-QJCCZLOF.js} +1 -1
  52. package/dist/{chunk-A3JCETSF.js → chunk-QMPFNXI7.js} +1 -1
  53. package/dist/{chunk-YMY6EFX4.js → chunk-RBBBXFEU.js} +1 -1
  54. package/dist/{chunk-TTLVG5AR.js → chunk-RHK53ZK7.js} +1 -1
  55. package/dist/chunk-S45YGN2I.js +142 -0
  56. package/dist/chunk-S4CWUZ4K.js +1 -0
  57. package/dist/{chunk-EEMRRCGR.js → chunk-SP5EHSWG.js} +1 -1
  58. package/dist/chunk-TCURN5VD.js +2 -0
  59. package/dist/{chunk-CHMCKYJJ.js → chunk-UVBPEX3E.js} +1 -1
  60. package/dist/chunk-V3ABABV5.js +39 -0
  61. package/dist/{chunk-WSDVFLHT.js → chunk-W6FHVXNL.js} +1 -1
  62. package/dist/{chunk-M2BK3XTP.js → chunk-WQX3JYEP.js} +1 -1
  63. package/dist/{chunk-AUCHMXUZ.js → chunk-WSRUPDZN.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-6QWIJTGU.js} +1 -1
  67. package/dist/{doctor-RP4Q2CKJ.js → doctor-NAZEKMGU.js} +1 -1
  68. package/dist/goal-lifecycle-ECIRCHN5.js +1 -0
  69. package/dist/goal-pack-HBOPVZFO.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-5LLFP5ZH.js} +1 -1
  73. package/dist/project-agent-entry-AFKDDRDL.js +1 -0
  74. package/dist/{project-intelligence-lens-AM2B2PXU.js → project-intelligence-lens-U2V3VNZG.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-HUYJ6LBI.js} +1 -1
  77. package/dist/{workspace-LFESVKE7.js → workspace-CQ43AWUF.js} +1 -1
  78. package/dist/{workspace-agent-sync-JMRX6J2Y.js → workspace-agent-sync-YMXYUGYY.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-JH2GFSAZ.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-YXMOT6GK.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-SHHW4R4G.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-BNXZHW35.js +3 -0
  102. package/dist/workspace-run-7EJEBHAH.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 +1 -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 +7 -0
  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 +3 -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.
@@ -46,7 +46,7 @@ Validate or preview the current CLI announcement locally:
46
46
  npm --workspace workspai run check:release-announcement
47
47
  npm --workspace workspai run release:announcement -- \
48
48
  --product workspai-cli \
49
- --tag v0.58.0 \
49
+ --tag v0.59.0 \
50
50
  --markdown-output /tmp/workspai-discord-announcement.md
51
51
  ```
52
52
 
@@ -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`
@@ -74,6 +74,8 @@ Published under `../../contracts/` (not duplicated in this folder):
74
74
  - `analyze-last-run.v1.json` — analyze evidence
75
75
  - `pipeline-last-run.v1.json` — governance pipeline orchestration
76
76
  - `project-entry-capability.v1.json` — open-ended adopt/import contract for readable projects
77
+ - `workspace-intelligence/project-agent-entry.v1.json` — portable host discovery, canonical read order, authority boundaries, and integrity for an adopted project
78
+ - `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
79
  - `adopt-effects.v1.json` — dry-run disclosure of project metadata, conditional repository-control reconciliation, and workspace operations before adoption
78
80
  - `create-planner-capabilities.v1.json` — native, official, and existing capability lanes
79
81
  - `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 +116,11 @@ These schemas describe durable artifacts or bounded query results. A command's
114
116
  stdout may wrap an artifact with operation metadata such as `status`,
115
117
  `outputPath`, or a structured error; that envelope follows
116
118
  `cli-operation-result.v1.json` and does not change the nested artifact contract.
119
+ `status: "success"` means the command completed and returned its contracted
120
+ artifact; it does not override a policy gate. For gated operations such as
121
+ `workspace verify --strict`, the envelope `exitCode`, process exit code, and
122
+ nested gate exit code are identical even when the artifact was produced
123
+ successfully and the gate blocked progression.
117
124
 
118
125
  CLI commands: see [commands-reference.md](../commands-reference.md) and the
119
126
  [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
 
@@ -70,8 +70,11 @@ same exact producer runs again before aggregate Workspace Intelligence verificat
70
70
  `propose` is the dynamic repair boundary for IDE models. A model may provide bounded complete-file
71
71
  writes/deletes and optional structured audit/test/build commands. The CLI rejects stale source
72
72
  hashes, duplicate targets, workspace evidence edits, Git internals, installed dependency trees,
73
- secret-bearing files, path/link escapes, and ungoverned commands. Dependency manifest proposals
74
- still receive CLI-inferred reconcile, audit, test, and build stages before strict verification.
73
+ secret-bearing files, path/link escapes, and ungoverned commands. For a linked project, proposal
74
+ paths may leave the central workspace only when the target resolves to exactly one canonical
75
+ project in `workspace.contract.json`; the authorized boundary is that project's exact root, never
76
+ its parent or a sibling repository. Dependency manifest proposals still receive CLI-inferred
77
+ reconcile, audit, test, and build stages before strict verification.
75
78
 
76
79
  Doctor also publishes a distinct `dependency-materialization` transaction when manifests exist
77
80
  but the installed runtime tree is missing. Its install or restore invocation is the repair stage
@@ -95,8 +98,10 @@ tool before the environment-creation stage runs.
95
98
  package fetching through `npx` is rejected.
96
99
  - Force and breaking changes require explicit policy approval. A different policy means a new
97
100
  plan and a new approval.
98
- - Files are bounded to the workspace, regular files only, at most 5 MiB each and 25 MiB per
99
- transaction. A source change between planning and execution expires approval.
101
+ - Files are bounded to the workspace or the exact root of one canonically registered linked
102
+ project, regular files only, at most 5 MiB each and 25 MiB per transaction. Absolute proposal
103
+ paths, unregistered external roots, parent/sibling escapes, and symbolic-link boundaries fail
104
+ closed. A source change between planning and execution expires approval.
100
105
  - A workspace-level owner lock prevents concurrent repair writers and is not stolen from a live
101
106
  process merely because a long transaction exceeded a wall-clock threshold. Resume skips
102
107
  durable passed stages.
@@ -112,6 +117,11 @@ tool before the environment-creation stage runs.
112
117
  missing or changed toolchain expires approval instead of starting a partial transaction.
113
118
  - The exact card producer is run twice: first as a no-mutation causal precondition, then after
114
119
  repair as card-local evidence. An aggregate workspace gate cannot substitute for either run.
120
+ - A Goal-bound proposal is linked to the active Goal before execution. Closure seals the fresh
121
+ structural Model hash, exact canonical Graph hash, and stable Graph input fingerprint into the
122
+ verification receipt. The receipt receives its own closure hash and remains acceptable as a
123
+ source transition only while the approved plan, proposal, checkpoint outputs, verification,
124
+ Goal identity, and current source fingerprints still agree.
115
125
 
116
126
  ## Runtime adapters
117
127
 
@@ -142,7 +152,7 @@ is durable under `.workspai/repair/transactions/<transaction-id>/`. Consumers sh
142
152
  the `workspace repair` action from `runtime-command-surface.v1.json`, render its stages and
143
153
  events, and send explicit user decisions back to the CLI. They must not reproduce the executor.
144
154
 
145
- The consumer protocol is fail-closed on four additional invariants:
155
+ The consumer protocol is fail-closed on these invariants:
146
156
 
147
157
  - `mutationAuthority=cli-only`: an IDE or model may inspect and propose, but it cannot run a
148
158
  parallel package-manager, file-write, or remediation executor.
@@ -153,6 +163,27 @@ The consumer protocol is fail-closed on four additional invariants:
153
163
  transaction recorded a different post-execution hash. Planned checkpoint files are not edits.
154
164
  - `consumerTimeline=durable-transaction-events`: progress, decisions, rollback, and closure are
155
165
  projections of ordered transaction/session events, not optimistic UI copy.
166
+ - `registeredLinkedProjectMutationBoundary=true`: an external source root is writable only when
167
+ it is exactly one project in the canonical workspace contract; parent and sibling roots never
168
+ inherit that authority.
169
+ - `sourceProposalIntegrity=project-bound-hash-pinned`: every proposed change is bound to the
170
+ selected project and the SHA-256 value observed before planning.
171
+ - `completionAuthority=cli-verification-receipt`: model prose, an IDE diff, or a successful build
172
+ cannot close a repair without the CLI transaction's exact-target verification receipt.
173
+ - `goalSourceTransition=closed-integrity-bound-transaction`: an immutable Goal may move from its
174
+ original Model/Graph binding only through a linked, approved, closed Repair transaction whose
175
+ current output and post-repair source binding still validate. Evidence-only regeneration with
176
+ identical live inputs remains valid; unlinked or unrelated source drift fails closed.
177
+
178
+ The runtime advertises this boundary as the capability invariants
179
+ `goalSourceTransition=closed-integrity-bound-v1` and
180
+ `goalAttemptBudget=durable-serialized-v1`. Consumers must probe them before a
181
+ Goal mutation; the package version alone is not sufficient proof.
182
+
183
+ Consumers must render changed files relative to the selected project (or workspace when no
184
+ project is selected). Portable `../` paths retained by the CLI transaction are execution identity,
185
+ not presentation text; absolute host paths and checkpoint internals must never cross into an IDE
186
+ card, model transcript, export, screenshot, or diagnostic bundle.
156
187
 
157
188
  IDE-generated input follows
158
189
  `contracts/workspace-intelligence/workspace-repair-proposal.v1.json`. The proposal is evidence,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workspai",
3
- "version": "0.58.0",
3
+ "version": "0.59.0",
4
4
  "type": "module",
5
5
  "description": "Open-source workspace intelligence CLI for software systems: create, adopt, govern, verify, and align polyglot workspaces for humans, CI, IDEs, and AI agents.",
6
6
  "keywords": [
@@ -119,7 +119,8 @@
119
119
  "test:runtime-matrix:full": "node scripts/runtime-acceptance-matrix.mjs --full",
120
120
  "test:real-world": "node scripts/real-world-qualification.mjs",
121
121
  "test:real-world:enterprise": "node scripts/enterprise-workspace-qualification.mjs",
122
- "lint": "eslint src --ext .ts",
122
+ "check:english-text": "node ../../scripts/english-text-guard.mjs --all",
123
+ "lint": "corepack npm run check:english-text && eslint src --ext .ts",
123
124
  "lint:fix": "eslint src --ext .ts --fix",
124
125
  "format": "prettier --write \"src/**/*.ts\"",
125
126
  "format:check": "prettier --check \"src/**/*.ts\"",
@@ -205,6 +205,8 @@ const REQUIRED_PACKAGE_FILES = [
205
205
  'contracts/workspace-repair-capabilities.v1.json',
206
206
  'contracts/workspace-intelligence/workspace-repair-proposal.v1.json',
207
207
  'contracts/workspace-intelligence/workspace-repair-transaction.v1.json',
208
+ 'contracts/workspace-intelligence/project-agent-entry.v1.json',
209
+ 'contracts/workspace-intelligence/agent-bootstrap-receipt.v1.json',
208
210
  'contracts/extension-cli-compatibility.v1.json',
209
211
  'data/modules-embeddings.json',
210
212
  'templates/kits/fastapi-standard/README.md.j2',
@@ -507,6 +509,8 @@ for (const relativePath of [
507
509
  'contracts/workspace-repair-capabilities.v1.json',
508
510
  'contracts/workspace-intelligence/workspace-repair-proposal.v1.json',
509
511
  'contracts/workspace-intelligence/workspace-repair-transaction.v1.json',
512
+ 'contracts/workspace-intelligence/project-agent-entry.v1.json',
513
+ 'contracts/workspace-intelligence/agent-bootstrap-receipt.v1.json',
510
514
  'contracts/extension-cli-compatibility.v1.json',
511
515
  'data/modules-embeddings.json',
512
516
  ]) {