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.
- package/README.md +80 -32
- package/contracts/agent-customization-pack.v1.json +52 -4
- package/contracts/cli-runtime-command-inventory.v1.snapshot.json +90 -0
- package/contracts/extension-cli-compatibility.v1.json +3 -1
- package/contracts/project-workspace-resolution.v1.json +15 -2
- package/contracts/published-contract-catalog.v1.json +10 -0
- package/contracts/runtime-command-surface.v1.json +54 -0
- package/contracts/workspace-intelligence/agent-bootstrap-receipt.v1.json +247 -0
- package/contracts/workspace-intelligence/agent-customization-pack-report.v1.json +16 -1
- package/contracts/workspace-intelligence/goal-index.v1.json +7 -1
- package/contracts/workspace-intelligence/goal-pack.v1.json +2 -1
- package/contracts/workspace-intelligence/project-agent-entry.v1.json +204 -0
- package/contracts/workspace-intelligence/project-context-agent.v1.json +43 -26
- package/contracts/workspace-intelligence/workspace-context.v1.json +14 -1
- package/contracts/workspace-intelligence/workspace-repair-transaction.v1.json +15 -2
- package/contracts/workspace-repair-capabilities.v1.json +5 -0
- package/dist/analyze-52TEGLDR.js +1 -0
- package/dist/{artifact-remediation-plan-JRX4XZ7C.js → artifact-remediation-plan-HPNQTNJ2.js} +1 -1
- package/dist/autopilot-release-NFLAKBA3.js +1 -0
- package/dist/capabilities-command-VBLZXP2T.js +1 -0
- package/dist/{chunk-TTLVG5AR.js → chunk-3CGR6435.js} +1 -1
- package/dist/chunk-4PUJVYRM.js +1 -0
- package/dist/{chunk-4NN5QWOB.js → chunk-5NIZNXRS.js} +1 -1
- package/dist/{chunk-HYY5PQCV.js → chunk-5PSKBJKJ.js} +1 -1
- package/dist/{chunk-AA4PNQKR.js → chunk-5SFCBZOH.js} +1 -1
- package/dist/{chunk-MFJ6ZP7S.js → chunk-6FBNSTUS.js} +1 -1
- package/dist/{chunk-FY6OHOXR.js → chunk-7DSYI7YN.js} +1 -1
- package/dist/chunk-7SFXADXO.js +2 -0
- package/dist/{chunk-GRGUPSNP.js → chunk-CCDGHPEJ.js} +1 -1
- package/dist/{chunk-T63WRURN.js → chunk-D65FCQIO.js} +1 -1
- package/dist/{chunk-YYCPRYP7.js → chunk-DGGTTRYE.js} +1 -1
- package/dist/chunk-DQ6VXTDE.js +1 -0
- package/dist/{chunk-SM55RK3C.js → chunk-ENKGGWRX.js} +1 -1
- package/dist/chunk-FLTIFYTJ.js +142 -0
- package/dist/{chunk-RMDVRNU7.js → chunk-GPOZILMY.js} +1 -1
- package/dist/{chunk-C4NYG57I.js → chunk-HCFWT42C.js} +1 -1
- package/dist/{chunk-RJDGC6AQ.js → chunk-HS3DJMU5.js} +1 -1
- package/dist/{chunk-HI7ONEFI.js → chunk-J3X56S7L.js} +1 -1
- package/dist/{chunk-N3DFX4BY.js → chunk-KBR4Y4RW.js} +1 -1
- package/dist/{chunk-H545P6LN.js → chunk-KTN2ARZJ.js} +1 -1
- package/dist/chunk-LPCWROQ3.js +1 -0
- package/dist/chunk-MZKKRAAJ.js +2 -0
- package/dist/{chunk-LGJAAPNR.js → chunk-N4QQADXX.js} +1 -1
- package/dist/{chunk-FXIE2WVG.js → chunk-NOZ4JCH7.js} +1 -1
- package/dist/chunk-NZ3WZYD5.js +1 -0
- package/dist/{chunk-VAWV3UKV.js → chunk-OFWSZYUX.js} +1 -1
- package/dist/{chunk-XC26FNRL.js → chunk-P2WH7W2H.js} +11 -11
- package/dist/chunk-PVXSIYLP.js +1 -0
- package/dist/{chunk-7KXRA5ST.js → chunk-PXWKMPPI.js} +1 -1
- package/dist/{chunk-II4ROT6X.js → chunk-QCKWQFCD.js} +1 -1
- package/dist/{chunk-4YICCES6.js → chunk-QFBVQUKV.js} +1 -1
- package/dist/{chunk-G4VMNWSU.js → chunk-QJCCZLOF.js} +1 -1
- package/dist/{chunk-A3JCETSF.js → chunk-QMPFNXI7.js} +1 -1
- package/dist/{chunk-CFBAGPB4.js → chunk-QPE6VCDW.js} +1 -1
- package/dist/chunk-RTDEFUTL.js +39 -0
- package/dist/{chunk-YMY6EFX4.js → chunk-RVKMGKYL.js} +1 -1
- package/dist/chunk-S4CWUZ4K.js +1 -0
- package/dist/{chunk-EEMRRCGR.js → chunk-SP5EHSWG.js} +1 -1
- package/dist/{chunk-CHMCKYJJ.js → chunk-U3MGJN7A.js} +1 -1
- package/dist/{chunk-WSDVFLHT.js → chunk-W6FHVXNL.js} +1 -1
- package/dist/{chunk-M2BK3XTP.js → chunk-WQX3JYEP.js} +1 -1
- package/dist/{chunk-AUCHMXUZ.js → chunk-WSRUPDZN.js} +1 -1
- package/dist/{chunk-6TNSCVR4.js → chunk-Y4B55J5S.js} +1 -1
- package/dist/{chunk-GVS5OFUB.js → chunk-YEEAWZWI.js} +1 -1
- package/dist/{chunk-I5PDN2P2.js → chunk-ZJCM37KX.js} +1 -1
- package/dist/{create-QIN56Y4M.js → create-HUEDWYDM.js} +1 -1
- package/dist/{doctor-RP4Q2CKJ.js → doctor-NAZEKMGU.js} +1 -1
- package/dist/goal-lifecycle-NUKWVUAL.js +1 -0
- package/dist/goal-pack-TWOXHXN6.js +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.js +134 -132
- package/dist/{pipeline-77NUVYQD.js → pipeline-62A2SDLC.js} +1 -1
- package/dist/project-agent-entry-7SYHRY7J.js +1 -0
- package/dist/{project-intelligence-lens-AM2B2PXU.js → project-intelligence-lens-BSG5LK6N.js} +1 -1
- package/dist/{project-test-coverage-MUSS7Z7V.js → project-test-coverage-HP37HUV2.js} +1 -1
- package/dist/{verified-goal-ZSIZYNVO.js → verified-goal-B6HQOZWA.js} +1 -1
- package/dist/{workspace-LFESVKE7.js → workspace-BNRSBWSL.js} +1 -1
- package/dist/{workspace-agent-sync-JMRX6J2Y.js → workspace-agent-sync-ANBHBZ2H.js} +1 -1
- package/dist/{workspace-archive-MFHCFCDO.js → workspace-archive-ZBCKJHXS.js} +1 -1
- package/dist/{workspace-context-TBKRMVMT.js → workspace-context-RAO62QVU.js} +1 -1
- package/dist/{workspace-contract-KKVC2DUQ.js → workspace-contract-ACSIHJIO.js} +1 -1
- package/dist/workspace-explain-RH27OQB4.js +1 -0
- package/dist/workspace-explain-contract-ZL4NMLZI.js +1 -0
- package/dist/{workspace-feedback-O6J3RQML.js → workspace-feedback-RQ4TGJW6.js} +1 -1
- package/dist/{workspace-foundation-JQWT7YGC.js → workspace-foundation-EWYJPPT6.js} +1 -1
- package/dist/{workspace-graph-stream-V5WOXP4B.js → workspace-graph-stream-ZZZEQQTE.js} +1 -1
- package/dist/workspace-graph-token-efficiency-D7CUT6NX.js +1 -0
- package/dist/{workspace-history-TOCRMJUJ.js → workspace-history-SYCDK7FO.js} +1 -1
- package/dist/{workspace-intelligence-SDBIRKMK.js → workspace-intelligence-3YERTBA3.js} +1 -1
- package/dist/{workspace-intelligence-evaluation-E4UMWDAZ.js → workspace-intelligence-evaluation-CQDKOYZZ.js} +1 -1
- package/dist/{workspace-intelligence-runner-DIMNL6CJ.js → workspace-intelligence-runner-QLLBUD6G.js} +1 -1
- package/dist/{workspace-intelligence-runtime-registry-YGWB2RRS.js → workspace-intelligence-runtime-registry-IW6J53LO.js} +1 -1
- package/dist/{workspace-knowledge-graph-MUW6UAGI.js → workspace-knowledge-graph-HZZP6ZRB.js} +1 -1
- package/dist/{workspace-knowledge-graph-query-6DAOXGGT.js → workspace-knowledge-graph-query-ON45H6Y7.js} +1 -1
- package/dist/workspace-knowledge-graph-snapshot-7DWHMEM2.js +1 -0
- package/dist/{workspace-mcp-serve-2SWLIH4I.js → workspace-mcp-serve-5TTAN243.js} +1 -1
- package/dist/{workspace-model-VPFCKTYQ.js → workspace-model-EIQSKDX7.js} +1 -1
- package/dist/{workspace-onboarding-GHI6UTQJ.js → workspace-onboarding-UW3CSURE.js} +1 -1
- package/dist/{workspace-readme-RASXBZRQ.js → workspace-readme-56YZ4EAZ.js} +1 -1
- package/dist/{workspace-registry-summary-7QT7YMIU.js → workspace-registry-summary-OV5KX3WC.js} +1 -1
- package/dist/workspace-repair-engine-DHH2UUJN.js +3 -0
- package/dist/workspace-run-BLHRXT2N.js +1 -0
- package/dist/{workspace-verify-RYCQZYYB.js → workspace-verify-W4P6LBIH.js} +1 -1
- package/dist/{workspace-watch-U3YGN3GG.js → workspace-watch-EZ4D4VCF.js} +1 -1
- package/docs/GLOSSARY.md +13 -10
- package/docs/README.md +24 -19
- package/docs/README_CONTENT_CONTRACT.md +12 -8
- package/docs/agent-entry.md +194 -0
- package/docs/ci-workflows.md +18 -1
- package/docs/commands-reference.md +26 -2
- package/docs/contracts/ARTIFACT_CATALOG.md +9 -3
- package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +3 -0
- package/docs/contracts/README.md +22 -2
- package/docs/goal-packs.md +70 -9
- package/docs/workspace-operations.md +16 -8
- package/docs/workspace-repair-engine.md +36 -5
- package/package.json +4 -2
- package/scripts/enterprise-package-smoke.mjs +4 -0
- package/dist/analyze-MAU36FTX.js +0 -1
- package/dist/autopilot-release-TA2L7SCB.js +0 -1
- package/dist/capabilities-command-HE2FICLG.js +0 -1
- package/dist/chunk-42Q5E2YV.js +0 -1
- package/dist/chunk-7IRGSM25.js +0 -1
- package/dist/chunk-CNWUIXF3.js +0 -1
- package/dist/chunk-FPJNWPKU.js +0 -1
- package/dist/chunk-HH54C3XJ.js +0 -1
- package/dist/chunk-NQ5H4R2I.js +0 -83
- package/dist/chunk-PCXBPQO6.js +0 -1
- package/dist/chunk-QXW3SLEX.js +0 -1
- package/dist/chunk-TMOKXYAQ.js +0 -2
- package/dist/chunk-VIFTO53Y.js +0 -1
- package/dist/chunk-ZDYGO3T7.js +0 -36
- package/dist/goal-lifecycle-YTBU3ICP.js +0 -1
- package/dist/goal-pack-MYYH7K43.js +0 -1
- package/dist/workspace-explain-RGGZL5IW.js +0 -1
- package/dist/workspace-explain-contract-4ZZ6CJ44.js +0 -1
- package/dist/workspace-graph-token-efficiency-TF23UYEF.js +0 -1
- package/dist/workspace-knowledge-graph-snapshot-7IU2QAXI.js +0 -1
- package/dist/workspace-repair-engine-AZTJIFCY.js +0 -3
- 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.
|
package/docs/ci-workflows.md
CHANGED
|
@@ -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.
|
|
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|
|
|
75
|
-
npx workspai workspace agent-sync [--workspace <path>] [--write] [--refresh-context] [--strict] [--json] [--preset minimal|enterprise] [--target all|vscode|agents,copilot,cursor,claude,codex,
|
|
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`
|
|
66
|
-
| `goal <intent>` / lifecycle options | `.workspai/goals/index.json`
|
|
67
|
-
| `goal --status/--list/... --json` | stdout
|
|
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`
|
package/docs/contracts/README.md
CHANGED
|
@@ -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:
|
|
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
|
|
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).
|
package/docs/goal-packs.md
CHANGED
|
@@ -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.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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,
|
|
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
|
|
137
|
-
|
|
138
|
-
|
|
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
|
|
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`.
|
|
58
|
-
|
|
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
|
|
125
|
-
| ---------------------------------------------- |
|
|
126
|
-
| `.workspai/workspace-link.local.json` | Machine-local canonical workspace binding
|
|
127
|
-
| `.workspai/
|
|
128
|
-
| `.workspai/
|
|
129
|
-
|
|
|
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
|
|