workspai 0.50.0 → 0.52.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 (135) hide show
  1. package/README.md +127 -497
  2. package/contracts/artifact-remediation-plan.v1.json +87 -0
  3. package/contracts/cli-runtime-command-inventory.v1.snapshot.json +24 -0
  4. package/contracts/create-planner-capabilities.v1.json +10 -1
  5. package/contracts/doctor-project-evidence.v1.json +46 -0
  6. package/contracts/doctor-remediation-plan.v1.json +82 -0
  7. package/contracts/doctor-workspace-evidence.v1.json +46 -0
  8. package/contracts/extension-cli-compatibility.v1.json +6 -2
  9. package/contracts/published-contract-catalog.v1.json +22 -1
  10. package/contracts/runtime-command-surface.v1.json +104 -0
  11. package/contracts/workspace-intelligence/doctor-dependency-repair-transaction.v1.json +66 -0
  12. package/contracts/workspace-intelligence/studio-blocker-handoff.v1.json +5 -0
  13. package/contracts/workspace-intelligence/verified-goal-status.v1.json +27 -0
  14. package/contracts/workspace-intelligence/verified-goal.v1.json +163 -0
  15. package/contracts/workspace-intelligence-chain.v1.json +6 -0
  16. package/dist/analyze-J7VNZMDH.js +1 -0
  17. package/dist/artifact-remediation-plan-2UKY4TKO.js +3 -0
  18. package/dist/autopilot-release-UG23AWVH.js +1 -0
  19. package/dist/chunk-27UR373Z.js +1 -0
  20. package/dist/chunk-2PY65U6X.js +5 -0
  21. package/dist/{chunk-DQ3PI7EP.js → chunk-3D3PFPP5.js} +1 -1
  22. package/dist/chunk-4D7DIGAB.js +1 -0
  23. package/dist/{chunk-IND3TUVU.js → chunk-4UVGTFOX.js} +1 -1
  24. package/dist/chunk-5XJRCP3D.js +36 -0
  25. package/dist/chunk-62K2H72S.js +1 -0
  26. package/dist/chunk-6AXRIAP2.js +86 -0
  27. package/dist/chunk-6HJJHEL6.js +2 -0
  28. package/dist/{chunk-BHYTI3RH.js → chunk-6PBSAAS5.js} +1 -1
  29. package/dist/{chunk-MVLIONQD.js → chunk-7MQZQ4UU.js} +1 -1
  30. package/dist/chunk-7RLGOEWV.js +1 -0
  31. package/dist/{chunk-CV5HKU4P.js → chunk-7T4TSV5C.js} +1 -1
  32. package/dist/chunk-B4CPDK6J.js +2 -0
  33. package/dist/{chunk-SHXJ2GDR.js → chunk-DZ4VKAXB.js} +1 -1
  34. package/dist/{chunk-5EXZBCAZ.js → chunk-F4KBYFZ5.js} +1 -1
  35. package/dist/{chunk-LZQUZGXB.js → chunk-FRJYAJH6.js} +1 -1
  36. package/dist/chunk-FUPHQOJB.js +1 -0
  37. package/dist/{chunk-VKTUWUS6.js → chunk-GHB6QMQH.js} +1 -1
  38. package/dist/chunk-GR6442P7.js +1 -0
  39. package/dist/chunk-HPWLSLMC.js +8 -0
  40. package/dist/{chunk-KXG6E5VK.js → chunk-ICLYL3N5.js} +1 -1
  41. package/dist/chunk-IO54DFWR.js +691 -0
  42. package/dist/{chunk-RTVRZFIJ.js → chunk-KHEJO3JU.js} +1 -1
  43. package/dist/{chunk-IPJ5URDF.js → chunk-LOCPNNSK.js} +1 -1
  44. package/dist/chunk-LPCL4U4L.js +1 -0
  45. package/dist/{chunk-C35UXTDM.js → chunk-M5ICGR55.js} +1 -1
  46. package/dist/{chunk-SS2VV3D5.js → chunk-MBRU3VWJ.js} +2 -2
  47. package/dist/{chunk-DDQ3XK3H.js → chunk-MZFSINY7.js} +3 -3
  48. package/dist/chunk-OTDGTAZJ.js +1 -0
  49. package/dist/chunk-P4OSLAVD.js +3 -0
  50. package/dist/chunk-PS5F4DCT.js +1 -0
  51. package/dist/{chunk-C3FLCDRN.js → chunk-PTTZPDLX.js} +1 -1
  52. package/dist/chunk-Q6CUJ3WF.js +10 -0
  53. package/dist/{chunk-MV7KF75Q.js → chunk-QURMI7ID.js} +1 -1
  54. package/dist/{chunk-RVQLMTTI.js → chunk-ULR66OJR.js} +1 -1
  55. package/dist/chunk-WJVB6SSD.js +16 -0
  56. package/dist/chunk-WJY7ZXVJ.js +2 -0
  57. package/dist/{chunk-6UTM5AJI.js → chunk-XHRHNVCZ.js} +1 -1
  58. package/dist/chunk-ZTKIBREF.js +1 -0
  59. package/dist/{chunk-BQGBU2Y3.js → chunk-ZVOEPWQM.js} +1 -1
  60. package/dist/{create-I23DC7SN.js → create-ESK3CQPK.js} +1 -1
  61. package/dist/{doctor-DOOMYLIH.js → doctor-DLEBZSF7.js} +1 -1
  62. package/dist/index.d.ts +26 -11
  63. package/dist/index.js +129 -129
  64. package/dist/{pipeline-U77HSINC.js → pipeline-NT6AYYWM.js} +1 -1
  65. package/dist/{project-intelligence-lens-BKKVPCLC.js → project-intelligence-lens-Q4SZDI2N.js} +1 -1
  66. package/dist/project-test-coverage-A677ZLW3.js +1 -0
  67. package/dist/verified-goal-MJNZROS5.js +1 -0
  68. package/dist/{workspace-ZEYUVR26.js → workspace-LSOZM2CG.js} +1 -1
  69. package/dist/{workspace-agent-sync-DKYJLUDP.js → workspace-agent-sync-RZBQXCNJ.js} +1 -1
  70. package/dist/{workspace-archive-4JNT4S7N.js → workspace-archive-ZOWQXWJ6.js} +1 -1
  71. package/dist/workspace-context-IYJKO5BN.js +1 -0
  72. package/dist/{workspace-contract-PVLGPBBV.js → workspace-contract-AZFISDLS.js} +1 -1
  73. package/dist/workspace-explain-26UGV7L4.js +1 -0
  74. package/dist/workspace-explain-contract-GIWPCCEF.js +1 -0
  75. package/dist/{workspace-feedback-RATRXFUC.js → workspace-feedback-LIHEWTNV.js} +1 -1
  76. package/dist/{workspace-foundation-D33LJLGT.js → workspace-foundation-H5UTAUXQ.js} +1 -1
  77. package/dist/{workspace-graph-stream-THNG2T7R.js → workspace-graph-stream-KUDOZE73.js} +1 -1
  78. package/dist/workspace-graph-token-efficiency-5FNH4JZ5.js +1 -0
  79. package/dist/{workspace-history-EWFPT74O.js → workspace-history-HULG5EFN.js} +1 -1
  80. package/dist/{workspace-intelligence-MCNSWWDV.js → workspace-intelligence-A4UE4DZK.js} +1 -1
  81. package/dist/{workspace-intelligence-evaluation-7CABG5Y6.js → workspace-intelligence-evaluation-AOLGHYHC.js} +1 -1
  82. package/dist/workspace-intelligence-runner-42QI5RYA.js +1 -0
  83. package/dist/{workspace-intelligence-runtime-registry-ZZ3GRAL2.js → workspace-intelligence-runtime-registry-YOQ5GFFJ.js} +1 -1
  84. package/dist/{workspace-knowledge-graph-2EYR7N56.js → workspace-knowledge-graph-LEM6X5CM.js} +1 -1
  85. package/dist/{workspace-knowledge-graph-query-VOSPPH4W.js → workspace-knowledge-graph-query-EKHIE3E2.js} +1 -1
  86. package/dist/{workspace-mcp-serve-FLAVKWYW.js → workspace-mcp-serve-N2QPR7VJ.js} +1 -1
  87. package/dist/{workspace-model-FMFYLHE4.js → workspace-model-FJXX3NET.js} +1 -1
  88. package/dist/{workspace-onboarding-MYROZDI2.js → workspace-onboarding-IKFISWWY.js} +1 -1
  89. package/dist/workspace-readme-E2M35RJH.js +77 -0
  90. package/dist/{workspace-registry-summary-6VXIAQLX.js → workspace-registry-summary-HOQ3OBNT.js} +1 -1
  91. package/dist/workspace-run-GOZTUGJS.js +1 -0
  92. package/dist/{workspace-verify-FKYI65UQ.js → workspace-verify-32AWCJQG.js} +1 -1
  93. package/dist/workspace-watch-4WVNB26E.js +1 -0
  94. package/docs/README.md +1 -0
  95. package/docs/README_CONTENT_CONTRACT.md +98 -124
  96. package/docs/ci-workflows.md +53 -15
  97. package/docs/commands-reference.md +16 -2
  98. package/docs/doctor-command.md +16 -0
  99. package/docs/workspace-intelligence-runner.md +48 -0
  100. package/docs/workspace-knowledge-graph.md +39 -0
  101. package/docs/workspace-operations.md +9 -6
  102. package/package.json +9 -4
  103. package/scripts/enterprise-package-smoke.mjs +11 -0
  104. package/templates/kits/fastapi-ddd/README.md.j2 +1 -1
  105. package/templates/kits/fastapi-standard/README.md.j2 +1 -1
  106. package/templates/kits/nestjs-standard/Dockerfile.j2 +1 -1
  107. package/templates/kits/nestjs-standard/README.md.j2 +1 -1
  108. package/templates/kits/nestjs-standard/package.json.j2 +11 -2
  109. package/dist/analyze-ZFQWTCJQ.js +0 -1
  110. package/dist/artifact-remediation-plan-ICN3KOFG.js +0 -3
  111. package/dist/autopilot-release-VKXQ7BS7.js +0 -1
  112. package/dist/chunk-2AXEGYPL.js +0 -1
  113. package/dist/chunk-2D4UOYOJ.js +0 -1
  114. package/dist/chunk-AHLMIL2T.js +0 -1
  115. package/dist/chunk-AL2A7Q4X.js +0 -86
  116. package/dist/chunk-GNQRYISX.js +0 -5
  117. package/dist/chunk-I42F552T.js +0 -2
  118. package/dist/chunk-IDQKVJUF.js +0 -2
  119. package/dist/chunk-JFUD73OZ.js +0 -933
  120. package/dist/chunk-KKAOTTYO.js +0 -8
  121. package/dist/chunk-KMLPHFLD.js +0 -2
  122. package/dist/chunk-L2YK5RV2.js +0 -1
  123. package/dist/chunk-LAJM2SBP.js +0 -15
  124. package/dist/chunk-TDTCMZK7.js +0 -10
  125. package/dist/chunk-UETZ7USY.js +0 -36
  126. package/dist/chunk-WDKNMTJQ.js +0 -1
  127. package/dist/chunk-YPKNQCLK.js +0 -2
  128. package/dist/project-test-coverage-4TEHZJFC.js +0 -1
  129. package/dist/workspace-context-IHUFMZT3.js +0 -1
  130. package/dist/workspace-explain-64HNKAHO.js +0 -1
  131. package/dist/workspace-explain-contract-H7O26QJU.js +0 -1
  132. package/dist/workspace-graph-token-efficiency-CFGFCJ5V.js +0 -1
  133. package/dist/workspace-intelligence-runner-TG2VLHNZ.js +0 -1
  134. package/dist/workspace-run-2ZI5UMJ2.js +0 -1
  135. package/dist/workspace-watch-RP5KMVP2.js +0 -1
@@ -1,139 +1,114 @@
1
1
  # README Content Contract
2
2
 
3
- The repository README is Workspai's primary product entry point. It must help a
4
- new user understand the problem, see a concrete result, run a safe quickstart,
5
- and choose the next document without first learning the internal architecture.
6
-
7
- This contract keeps that experience aligned with the CLI's machine-readable
8
- contracts. It applies to the root `README.md`; the package README may add detail
9
- but must not contradict it.
10
-
11
- The npm package README at `packages/cli/README.md` is the operational product
12
- entry point. It follows the same truth boundaries but adds beginner definitions,
13
- a copyable workspace onboarding path, exact exit semantics, command families,
14
- durable outputs, requirements, and troubleshooting.
15
-
16
- ## Required reader journey
17
-
18
- The root README keeps these sections in this order:
19
-
20
- 1. `Workspace Intelligence for software systems` — the category, slogan, and
21
- three user outcomes;
22
- 2. `See your workspace as a system` — a concrete before/after mental model;
23
- 3. `Start in two minutes` — install, connect software, run the canonical chain;
24
- 4. `What Workspai gives you` — user questions mapped to product outcomes;
25
- 5. `How Workspace Intelligence works` — sources, facts, model, graph, decisions,
26
- and consumers;
27
- 6. `Evidence, not guesses` — identity, proof, bounded retrieval, and unknown
28
- relationships;
29
- 7. `Measure context honestly` — reproducible numbers and claim boundaries;
30
- 8. `One contract-backed intelligence chain` — the canonical runner and its
31
- distinction from `pipeline`;
32
- 9. `Choose your workflow` — goal-oriented routing;
33
- 10. `Open outputs for every consumer` — human, CI, agent, MCP, IDE, and graph
34
- interoperability surfaces;
35
- 11. documentation, packages, contributor, community, and license routes.
36
-
37
- Do not move package internals, exhaustive flags, troubleshooting, or contributor
38
- implementation details above the user value and quickstart.
39
-
40
- ## CLI package README journey
41
-
42
- The CLI README keeps these sections in order:
43
-
44
- 1. product category and the `See / Ask with proof / Act with confidence` value;
45
- 2. plain-language definitions of Workspace, Project, Model, Graph, Evidence,
46
- and Artifact;
47
- 3. a copyable two-minute path that creates a minimal workspace, adopts source,
48
- and runs the canonical chain;
49
- 4. the Model → derived Graph architecture and its unknown-relationship rule;
50
- 5. the exact intelligence chain, evidence, and bounded measurement semantics;
51
- 6. grouped commands, outputs, onboarding choices, integrations, requirements,
52
- documentation, and troubleshooting.
53
-
54
- Measurement tables must not precede installation or the first successful run.
55
- Advanced command inventories must be grouped by user goal instead of appearing
56
- as one undifferentiated command wall.
3
+ The root and npm package READMEs are product entry points, not release logs,
4
+ command references, or architecture specifications.
5
+
6
+ Their job is to help a new reader answer four questions quickly:
7
+
8
+ 1. What is Workspai?
9
+ 2. What problem does it solve?
10
+ 3. How can I try it safely?
11
+ 4. Where do I go for more detail?
12
+
13
+ The root README presents the product. The CLI README adds a practical first-run
14
+ path and a small set of everyday commands. Detailed behavior belongs in the
15
+ versioned contracts and focused guides.
16
+
17
+ ## Stable reader journey
18
+
19
+ The root README keeps this order:
20
+
21
+ 1. product category, slogan, and three outcomes;
22
+ 2. one copyable path for existing software and one guided path for new software;
23
+ 3. a short outcome-oriented view of what Workspai provides;
24
+ 4. the canonical Model → derived Graph boundary and intelligence chain;
25
+ 5. consumer surfaces and goal-based documentation links;
26
+ 6. package, contributor, community, and license routes.
27
+
28
+ The CLI README keeps this order:
29
+
30
+ 1. product category, slogan, and value;
31
+ 2. a two-minute existing-project path and the guided create path;
32
+ 3. the small set of durable outputs a user should recognize;
33
+ 4. the canonical Model → derived Graph boundary and intelligence chain;
34
+ 5. everyday workflows grouped by goal;
35
+ 6. outputs, requirements, documentation, troubleshooting, and contribution.
36
+
37
+ ## What does not belong in a main README
38
+
39
+ Keep these in their focused documents:
40
+
41
+ - release-specific changes and version numbers;
42
+ - exhaustive commands, flags, and artifact inventories;
43
+ - exact runner exit-code and failure-propagation semantics;
44
+ - benchmark tables, fixture metadata, and formulas;
45
+ - CI workflow inventories;
46
+ - provider implementation details;
47
+ - schema property documentation;
48
+ - long troubleshooting catalogs;
49
+ - internal package extraction plans.
50
+
51
+ A README changes only when the product promise, primary onboarding path,
52
+ canonical architecture, supported consumer boundary, or documentation routes
53
+ change. A small implementation feature normally changes the Changelog, Release
54
+ Notes, or a focused guide—not the README.
57
55
 
58
56
  ## Architectural statements that must remain true
59
57
 
60
58
  - The **Workspace Model is the canonical source of truth**.
61
- - The Knowledge Graph is a **derived, structurally bound representation** of
62
- governed workspace knowledge. Its source kind and source artifact are fixed
63
- to the canonical Workspace Model contract.
64
- - Providers emit facts and proofs; they do not independently own the canonical
65
- graph.
66
- - Graph enrichment must not mutate the authorizing model during the same run.
67
- - The canonical project inventory must reconcile discovered, imported,
68
- adopted, and contract-declared projects. A missing contract-declared path is
69
- a validation warning, not a silently deleted project.
70
- - Persisted current-state consumers must reject a graph whose structural model
71
- hash, workspace identity, or project topology no longer matches the current
72
- model.
59
+ - The Knowledge Graph is a **derived, revision-bound representation** of the
60
+ governed Workspace Model.
61
+ - Providers enrich the graph with facts and proofs; they do not mutate the
62
+ authorizing model during the same run.
63
+ - Persisted current-state consumers reject a graph that no longer matches the
64
+ current model revision and workspace identity.
73
65
  - Missing relationships mean **not proven**, not independent.
74
- - The graph is broader than a code graph, but it is not the entire product.
66
+ - The graph is broader than a repository code graph, but it is not the entire
67
+ product.
75
68
  - The canonical runner is
76
69
  `npx workspai workspace intelligence run --for-agent generic --strict --json`.
77
- - `pipeline` is a broader governance/release orchestrator and must not be taught
78
- as a replacement for the intelligence chain.
79
- - The integrated CLI already exposes current capabilities. Future standalone
80
- packages are extraction boundaries, not promises to add currently missing CLI
81
- features.
70
+ - `pipeline` is the broader release/governance workflow and does not replace the
71
+ canonical intelligence chain.
72
+ - Current integrated capabilities are not described as future missing packages.
82
73
 
83
74
  Normative machine sources:
84
75
 
85
- | Statement | Source of truth |
86
- | ------------------------------ | -------------------------------------------------------------------- |
87
- | Ordered intelligence chain | `contracts/workspace-intelligence-chain.v1.json` |
88
- | Runtime commands and flags | `contracts/runtime-command-surface.v1.json` |
89
- | Published schemas and paths | `contracts/published-contract-catalog.v1.json` |
90
- | Architecture boundaries | `contracts/workspace-intelligence-architecture.v1.json` |
91
- | Model → Graph source binding | `contracts/workspace-intelligence/workspace-knowledge-graph.v1.json` |
92
- | Artifact writers and consumers | `docs/contracts/ARTIFACT_CATALOG.md` |
76
+ | Statement | Source of truth |
77
+ | --- | --- |
78
+ | Ordered intelligence chain | `contracts/workspace-intelligence-chain.v1.json` |
79
+ | Runtime commands and flags | `contracts/runtime-command-surface.v1.json` |
80
+ | Published schemas and paths | `contracts/published-contract-catalog.v1.json` |
81
+ | Architecture boundaries | `contracts/workspace-intelligence-architecture.v1.json` |
82
+ | Model → Graph binding | `contracts/workspace-intelligence/workspace-knowledge-graph.v1.json` |
83
+ | Artifact writers and consumers | `docs/contracts/ARTIFACT_CATALOG.md` |
93
84
 
94
- Markdown summarizes these contracts; it does not redefine them.
85
+ Markdown explains these contracts; it does not redefine them.
95
86
 
96
87
  ## Claim policy
97
88
 
98
- Every performance or token statement must identify:
99
-
100
- - the workspace or pinned corpus;
101
- - the query and result limit;
102
- - whether token counts are estimated, tokenizer-counted, or provider-reported;
103
- - the baseline;
104
- - the date or revision;
105
- - what the measurement does not prove.
89
+ Performance and token claims belong in the benchmark and evaluation guides.
90
+ They must identify the fixture, query, limit, tokenizer or estimate, baseline,
91
+ revision, and limitations. Results vary by workspace and query.
106
92
 
107
- The current fixture may be used only with wording equivalent to:
108
-
109
- > On the current 16-project development fixture, one bounded query reduced the
110
- > estimated retrieval payload by 97.9%; results vary by workspace and query.
111
-
112
- Never turn a retrieval-payload result into a universal model-cost, answer-quality,
113
- or task-success claim. Use `workspace eval` and a verified outcome before making
114
- execution-efficiency comparisons.
93
+ Do not turn a retrieval-payload result into a universal cost, quality, or
94
+ task-success claim.
115
95
 
116
96
  ## Command policy
117
97
 
118
98
  - Quickstarts must be copyable and use the canonical `workspai` package.
119
- - `wspai` is described only as an optional short alias.
120
- - A partial sequence such as `model → context` must not be taught as a replacement
121
- for the canonical intelligence chain.
122
- - Every documented command must exist in the runtime command surface or be an
123
- ordinary shell command such as `cd` or `npm install`.
124
- - Durable filenames must come from published contracts or the Artifact Catalog.
125
-
126
- ## Information hierarchy
127
-
128
- Write for three reading depths:
99
+ - `wspai` is only an optional short alias.
100
+ - The main path uses the complete contract-backed intelligence runner.
101
+ - A partial command sequence must not be presented as a replacement loop.
102
+ - Exhaustive syntax belongs in `docs/commands-reference.md`.
129
103
 
130
- 1. **Ten seconds:** category, user problem, three outcomes.
131
- 2. **Two minutes:** quickstart, concrete artifacts, architecture, proof example.
132
- 3. **Deep evaluation:** measurements, contracts, guides, boundaries, contributor
133
- material.
104
+ ## Writing policy
134
105
 
135
- Prefer user questions and outcomes over internal phase names. Define unavoidable
136
- terms in plain language and link to the glossary.
106
+ - Prefer plain language and short sentences.
107
+ - Explain user outcomes before internal terms.
108
+ - Introduce only the architecture needed to trust the product.
109
+ - Prefer one representative command over a wall of variants.
110
+ - Link to deeper guidance instead of duplicating it.
111
+ - Do not add a README section for every feature or release.
137
112
 
138
113
  ## Validation
139
114
 
@@ -145,19 +120,18 @@ npm run check:generated-contracts
145
120
  npm run check:contracts
146
121
  ```
147
122
 
148
- `docs-drift-guard.mjs` enforces the required root headings, their order,
149
- canonical runner, Model/Graph truth boundary, honest measurement language,
150
- documentation routes, and package-status semantics. `smoke-readme-commands.mjs`
151
- executes representative documented CLI help surfaces.
123
+ `docs-drift-guard.mjs` verifies the stable reader journey, canonical runner,
124
+ Model/Graph truth boundary, claim boundaries, and documentation routes.
152
125
 
153
126
  ## Review checklist
154
127
 
155
128
  Before merging a README change, confirm:
156
129
 
157
- - a new user can explain Workspai without saying “chatbot” or “code generator”;
158
- - the first quickstart reaches a durable evidence artifact;
159
- - every architecture statement agrees with the generated contracts;
160
- - every number is reproducible and bounded;
161
- - every promised output exists today or is explicitly labelled as future work;
162
- - links route users by goal rather than exposing the documentation tree;
163
- - the package table cannot be read as a list of missing product capabilities.
130
+ - the first screen states the product value and slogan;
131
+ - a new user can run one safe path without learning internal architecture;
132
+ - the root README remains comfortably under 250 lines;
133
+ - the CLI README remains comfortably under 350 lines;
134
+ - details already explained elsewhere are linked, not repeated;
135
+ - every architecture statement matches generated contracts;
136
+ - no release-specific prose was added to a main README;
137
+ - the package section cannot be read as a list of missing capabilities.
@@ -4,21 +4,59 @@ Map of GitHub Actions workflows in this repository. Use this when editing CI to
4
4
 
5
5
  ## Workflows
6
6
 
7
- | Workflow | Path | Purpose |
8
- | ------------------------ | ------------------------------------------------ | ------------------------------------------------------------------------- |
9
- | Build / test matrix | `.github/workflows/ci.yml` | Build, lint, typecheck, tests, coverage, contract gates |
10
- | Workspace E2E matrix | `.github/workflows/workspace-e2e-matrix.yml` | Cross-OS workspace lifecycle smoke; setup `--warm-deps`; cache/mirror ops |
11
- | Windows bridge E2E | `.github/workflows/windows-bridge-e2e.yml` | Native Windows bridge and lifecycle checks |
12
- | E2E smoke | `.github/workflows/e2e-smoke.yml` | Focused bridge regression smoke |
13
- | Frontend generator smoke | `.github/workflows/frontend-generator-smoke.yml` | Official frontend generator drift gate |
14
- | Security | `.github/workflows/security.yml` | Security scanning and policy checks |
15
- | Manual npm release | `.github/workflows/release-npm-manual.yml` | Maintainer-only release gate and publish workflow |
16
- | Contributor onboarding | `.github/workflows/contributor-onboarding.yml` | Accepted-contributor onboarding automation |
17
- | Welcome | `.github/workflows/welcome.yml` | First-issue and first-contribution messages |
18
-
19
- The release workflow requires `Frontend Generator Smoke` for the exact release
20
- SHA. Maintainers must dispatch that workflow against the intended release ref
21
- before starting a manual npm release if no matching run exists.
7
+ | Workflow | Path | Purpose |
8
+ | ------------------------ | ---------------------------------------------------- | ------------------------------------------------------------------------- |
9
+ | Build / test matrix | `.github/workflows/ci.yml` | Build, lint, typecheck, tests, coverage, contract gates |
10
+ | Workspace E2E matrix | `.github/workflows/workspace-e2e-matrix.yml` | Cross-OS workspace lifecycle smoke; setup `--warm-deps`; cache/mirror ops |
11
+ | Windows bridge E2E | `.github/workflows/windows-bridge-e2e.yml` | Native Windows bridge and lifecycle checks |
12
+ | E2E smoke | `.github/workflows/e2e-smoke.yml` | Focused bridge regression smoke |
13
+ | Official generator smoke | `.github/workflows/frontend-generator-smoke.yml` | Contract-driven official-generator drift gate |
14
+ | Security | `.github/workflows/security.yml` | Security scanning and policy checks |
15
+ | Manual npm release | `.github/workflows/release-npm-manual.yml` | Maintainer-only release gate and publish workflow |
16
+ | Discord announcement | `.github/workflows/discord-release-announcement.yml` | Preview and publish one idempotent product-aware release announcement |
17
+ | Contributor onboarding | `.github/workflows/contributor-onboarding.yml` | Accepted-contributor onboarding automation |
18
+ | Welcome | `.github/workflows/welcome.yml` | First-issue and first-contribution messages |
19
+
20
+ The release workflow requires the cost-bounded
21
+ `Official Generator Smoke · primary` Linux run for the exact release SHA. A
22
+ normal push that touches the contracted generator surface produces this gate;
23
+ maintainers do not need to run the full cross-platform matrix before publishing.
24
+
25
+ Pushes and pull requests run every contracted generator on the primary Linux
26
+ lane. The weekly schedule and manual dispatch can run the complete Linux,
27
+ macOS, and Windows matrix as a non-blocking compatibility and upstream-drift
28
+ signal. npm and Composer download caches reduce repeated network work without
29
+ caching generated projects; every smoke run still exercises the current
30
+ upstream generator, generated artifacts, build surface, registry, and Doctor
31
+ evidence.
32
+
33
+ ## Release announcements
34
+
35
+ `packages/cli/releases/release-products.v1.json` maps a release product to its
36
+ display name, package version, tag template, notes path, repository, and upgrade
37
+ command. Release-event runs resolve the product from its tag, so future
38
+ independently versioned monorepo packages do not require a new workflow.
39
+ Each versioned release-note file carries one hidden
40
+ `workspai-release-announcement` JSON block with its public headline, summary,
41
+ and two to five highlights.
42
+
43
+ Validate or preview the current CLI announcement locally:
44
+
45
+ ```bash
46
+ npm --workspace workspai run check:release-announcement
47
+ npm --workspace workspai run release:announcement -- \
48
+ --product workspai-cli \
49
+ --tag v0.51.0 \
50
+ --markdown-output /tmp/workspai-discord-announcement.md
51
+ ```
52
+
53
+ Publishing a GitHub Release sends the generated embed to Discord. Configure the
54
+ repository Actions secret `ANNOUNCEMENTS_WEBHOOK_URL` with the incoming
55
+ webhook for `#announcements`. Manual workflow dispatch defaults to preview-only.
56
+ When send is explicitly enabled, an existing message for the same product and
57
+ tag is updated rather than duplicated. The workflow stores the Discord message
58
+ id in a hidden marker on the GitHub Release. Release events read automation
59
+ from the released tag; manual previews use the selected branch commit.
22
60
 
23
61
  ## Consumer workspace: agent grounding CI
24
62
 
@@ -5,7 +5,7 @@ Complete CLI syntax for the Workspai CLI. For behavior and workflows, see [works
5
5
  ## Workspace lifecycle
6
6
 
7
7
  ```bash
8
- npx workspai create # Prompts: workspace | project
8
+ npx workspai create # Guided create or existing-software ingestion
9
9
  npx workspai create workspace <name> [--profile <profile>] [--yes] [--here|--output <parent-dir>] [--skip-python-engine] [--skip-git] [--dry-run] [--install-method <poetry|venv|pipx>]
10
10
  npx workspai bootstrap [--profile <profile>] [--ci] [--json] [--compliance-only]
11
11
  npx workspai setup <python|node|go|java|dotnet|rust|php> [--warm-deps]
@@ -58,6 +58,9 @@ npx workspai workspace contract inspect [--json]
58
58
  npx workspai workspace contract verify [--strict] [--json]
59
59
  npx workspai workspace contract graph [--json]
60
60
  npx workspai workspace intelligence run [--workspace <path>] [--for-agent <agent>] [--strict] [--json]
61
+ npx workspai workspace goal plan <release-readiness|dependency-security|test-coverage> [--scope project:<name>] [--target <0-100>] [--allow-breaking] [--allow-force] [--no-build] [--no-tests] [--json]
62
+ npx workspai workspace goal status <goal-id> [--json]
63
+ npx workspai workspace goal verify <goal-id> [--no-run] [--reuse-intelligence] [--json]
61
64
  npx workspai workspace model [--workspace <path>] [--json] [--write] [--strict] [--cache] [--incremental] [--include-paths] [--include-evidence] [--scan-depth <count>]
62
65
  npx workspai workspace context --for-agent [codex|claude|cursor|orca] [--workspace <path>] [--json] [--write] [--agent-sync|--no-agent-sync] [--target <targets>] [--preset minimal|enterprise] [--include-evidence] [--scan-depth <count>]
63
66
  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]
@@ -132,6 +135,15 @@ execution failures. See
132
135
  baseline creation/reuse, JSON fields, artifact invariants, skip propagation, and
133
136
  CI handling.
134
137
 
138
+ `workspace goal` turns a user outcome into a durable success contract. Plan a
139
+ release-readiness, dependency-security, or test-coverage goal once; Studio or
140
+ another agent can then work toward it and ask the CLI to verify current
141
+ evidence. Goal definitions live under `.workspai/goals/`, while the latest
142
+ portable verdict is written to
143
+ `.workspai/reports/verified-goal-last-run.json`. See
144
+ [Verified engineering goals](./workspace-intelligence-runner.md#verified-engineering-goals)
145
+ for the supported scopes, safety constraints, and verification boundary.
146
+
135
147
  `workspace feedback record` is a non-interactive machine interface. It requires
136
148
  exactly one JSON object on stdin and `--json`; an empty stdin or interactive TTY
137
149
  is rejected. Required fields are `actionId`, `summary`, and `outcome`. The
@@ -161,7 +173,9 @@ they never write facts back into the authorizing model during the same run.
161
173
 
162
174
  `workspace graph search <query> --limit <n> --json` returns bounded entities,
163
175
  one-hop relations, related entity summaries, and portable proofs instead of the
164
- complete graph. `workspace graph benchmark <query> --limit <n> --json` compares
176
+ complete graph. Ranking is deterministic and offline: it removes natural-language
177
+ stopwords, weights rarer graph terms more strongly, and prefers exact labels and
178
+ identities. `workspace graph benchmark <query> --limit <n> --json` compares
165
179
  that retrieval payload with the readable proof-indexed corpus using a labelled
166
180
  `characters / 4` estimate. It measures payload reduction only; it does not
167
181
  assert equivalent answer quality or model-specific billing savings.
@@ -293,6 +293,22 @@ Workspai should use this contract to offer two clear actions for a blocked card:
293
293
  After either path, Studio should run the step `verifyCommand` when present, then refresh the card
294
294
  with `refreshCommands` before claiming the issue is resolved.
295
295
 
296
+ Dependency repairs have an additional closure contract. Editing a manifest is
297
+ only the start of the transaction; the consumer must complete these stages in
298
+ order:
299
+
300
+ ```text
301
+ reconcile manifest and lockfile -> audit -> declared tests -> declared build
302
+ -> canonical Workspace Intelligence verification
303
+ ```
304
+
305
+ Doctor exposes this requirement as
306
+ `workspai.doctor-dependency-repair-transaction.v1`. Studio and other consumers
307
+ must not mark a dependency card fixed while the installed tree or lockfile is
308
+ stale, the focused audit is still blocked, or declared build/test validation
309
+ has not completed. The portable schema is
310
+ [`doctor-dependency-repair-transaction.v1.json`](../contracts/workspace-intelligence/doctor-dependency-repair-transaction.v1.json).
311
+
296
312
  In `enterprise-strict`, guarded and invasive fixes are exposed as `review-required` even when they
297
313
  are executable. That keeps Studio honest: it can preview and propose the change, but the operator
298
314
  must approve before Doctor mutates project files or runs a dependency command.
@@ -184,6 +184,54 @@ Automation must distinguish:
184
184
  Do not parse terminal prose. Read `status`, `exitCode`, `preflight`, `stages`,
185
185
  and their registered artifacts from the JSON report.
186
186
 
187
+ ## Verified engineering goals
188
+
189
+ The intelligence runner answers what is true now. A verified goal adds the
190
+ durable definition of what must become true, so a person or agent can resume
191
+ work without changing the success criteria between attempts.
192
+
193
+ ```bash
194
+ # Prepare the whole workspace for release.
195
+ npx workspai workspace goal plan release-readiness --json
196
+
197
+ # Remove blocking dependency vulnerabilities from one registered project.
198
+ npx workspai workspace goal plan dependency-security --scope project:api --json
199
+
200
+ # Raise one project's measured coverage to at least 75%.
201
+ npx workspai workspace goal plan test-coverage --scope project:web --target 75 --json
202
+
203
+ # Re-measure the goal against current source and evidence.
204
+ npx workspai workspace goal verify <goal-id> --json
205
+ ```
206
+
207
+ Planning writes an immutable goal definition and its current status under
208
+ `.workspai/goals/<goal-id>/`. Verification also refreshes the canonical latest
209
+ verdict at `.workspai/reports/verified-goal-last-run.json`. Consumers must read
210
+ the JSON verdict; they must not infer success from an agent message or a source
211
+ edit alone.
212
+
213
+ The three shipped goal kinds have explicit completion rules:
214
+
215
+ | Goal kind | Completion boundary |
216
+ | --------------------- | ------------------------------------------------------------------------------ |
217
+ | `release-readiness` | Readiness passes and Workspace Verify reports ready. |
218
+ | `dependency-security` | A fresh audit reports zero blocking vulnerabilities and required checks pass. |
219
+ | `test-coverage` | Runtime-owned coverage reaches the selected percentage and required checks pass. |
220
+
221
+ Goals are workspace-scoped by default. Use `--scope project:<registered-name>`
222
+ when the requested outcome belongs to one project. Dependency goals preserve a
223
+ hash baseline for recognized manifests and lockfiles across supported
224
+ ecosystems. Breaking or force-based changes remain forbidden unless the goal
225
+ explicitly records `--allow-breaking` or `--allow-force`; changing a manifest
226
+ alone never satisfies the goal.
227
+
228
+ `--no-run` only reads current goal evidence. `--reuse-intelligence` may reuse a
229
+ just-completed canonical run, but it does not waive goal-specific measurement.
230
+ The goal schemas are
231
+ [`verified-goal.v1.json`](../contracts/workspace-intelligence/verified-goal.v1.json)
232
+ and
233
+ [`verified-goal-status.v1.json`](../contracts/workspace-intelligence/verified-goal-status.v1.json).
234
+
187
235
  ## Relationship to other commands
188
236
 
189
237
  `workspace intelligence run` is the canonical Workspace Intelligence chain.
@@ -91,6 +91,12 @@ The response is intentionally bounded. `totalMatches` tells the consumer more
91
91
  results exist, `truncated` prevents silent omission, and every returned claim can
92
92
  be traced through `proofIds`.
93
93
 
94
+ Search remains deterministic, local, and offline. Natural-language filler words
95
+ are removed before ranking, and the remaining terms are weighted by how rare
96
+ they are in the current graph. Exact labels and identities still win. This keeps
97
+ a common word such as `check` from outranking a rarer term such as `user` merely
98
+ because it appears in more files. No embedding service or model call is involved.
99
+
94
100
  ## Pick the command by question
95
101
 
96
102
  | You want to know… | Use |
@@ -123,6 +129,31 @@ provider, source artifact, optional pointer/line, content hash, freshness,
123
129
  derivation, trust, and confidence. Secret values and machine-local absolute
124
130
  paths are excluded from the portable graph contract.
125
131
 
132
+ ## Read graph quality correctly
133
+
134
+ Provider execution and graph completeness are separate signals:
135
+
136
+ | Provider status | Meaning |
137
+ | --------------- | --------------------------------------------------------------------------- |
138
+ | `passed` | A matching source surface was found and graph evidence was produced. |
139
+ | `partial` | The provider found applicable input but produced incomplete or no evidence. |
140
+ | `skipped` | No applicable source surface was present in this workspace. |
141
+ | `failed` | The provider could not complete its bounded scan. |
142
+
143
+ `quality.providerSuccessRatio` is an execution-health ratio, not a completeness
144
+ claim. A skipped provider is healthy but not applicable. Applicable providers
145
+ that emit no evidence become `partial` and add an explicit unknown diagnostic,
146
+ which contributes to `quality.unknownCount`. Bounded-scan limits and unresolved
147
+ source relationships also contribute unknowns instead of being presented as
148
+ complete coverage. Binding coverage remains the dimension-specific source for
149
+ API implementation, tests, deployment, and ownership gaps; its unknowns are
150
+ included in the aggregate count.
151
+
152
+ Profiles govern workspace policy and verification expectations; they do not hide
153
+ source providers. Running the same unchanged workspace with `minimal` and
154
+ `polyglot` can therefore produce identical graph content. Changing a profile
155
+ does update the canonical workspace manifest and contract identity.
156
+
126
157
  ## Model first, graph second
127
158
 
128
159
  The canonical direction is one-way:
@@ -178,6 +209,14 @@ model and reported as `project.path.missing`; it is never silently removed from
178
209
  the graph boundary. A persisted Knowledge Graph is accepted only when its
179
210
  workspace identity and project topology also match that model.
180
211
 
212
+ An adopted monorepo remains one canonical project unless its internal projects
213
+ are separately registered, discovered inside the workspace boundary, or
214
+ declared by contract. The model still records bounded nested runtime manifests
215
+ in `project.runtimeCandidates` and aggregates them into
216
+ `workspace.identity.runtimeFamilies`. Graph providers can then discover the
217
+ monorepo's internal services, contracts, delivery surfaces, and proofs without
218
+ pretending that the primary runtime describes the whole repository.
219
+
181
220
  The two artifacts are published under one workspace lock using a
182
221
  rollback-capable artifact transaction. Each file replacement is atomic; if any
183
222
  write fails, Workspai restores both preimages. `graph.source.kind` is fixed to
@@ -81,12 +81,15 @@ versioned archive operation result instead.
81
81
  ### Automatic consumer sync
82
82
 
83
83
  Workspace creation publishes the initial contract, canonical model, Knowledge
84
- Graph, structural baseline, context, report index, `AGENTS.md`, operational
85
- skills, and supported IDE/agent surfaces—even before the first project exists.
86
- Successful project creation, adoption, import, workspace connection, and
87
- workspace import refresh those same projections in the background. The
88
- structural baseline is created once and preserved; current model, graph, diff,
89
- impact, context, and project grounding move forward with workspace membership.
84
+ Graph, structural baseline, context, report index, profile-aware `README.md`,
85
+ `AGENTS.md`, operational skills, and supported IDE/agent surfaces—even before
86
+ the first project exists. The README's Workspai-managed section shows the
87
+ current profile, project count, canonical intelligence loop, and consumer entry
88
+ points while preserving user-authored content. Successful project creation,
89
+ adoption, import, workspace connection, and workspace import refresh those same
90
+ projections in the background. The structural baseline is created once and
91
+ preserved; current model, graph, diff, impact, context, README, and project
92
+ grounding move forward with workspace membership.
90
93
 
91
94
  Doctor, Analyze, Readiness, and Verify remain explicit checks because they may
92
95
  run project tools or enforce release policy. Use `workspace intelligence run`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "workspai",
3
- "version": "0.50.0",
3
+ "version": "0.52.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": [
@@ -122,19 +122,24 @@
122
122
  "metrics": "tsx scripts/metrics.ts",
123
123
  "validate:docs-examples": "node scripts/validate-doc-examples.mjs",
124
124
  "check:github-release-notes": "node scripts/github-release-notes.mjs --check",
125
+ "check:release-announcement": "node scripts/discord-release-announcement.mjs --check",
126
+ "release:announcement": "node scripts/discord-release-announcement.mjs",
125
127
  "check:markdown-links": "node scripts/check-markdown-links.mjs",
126
128
  "check:docs-drift": "node scripts/docs-drift-guard.mjs",
127
129
  "smoke:readme": "node scripts/smoke-readme-commands.mjs",
128
- "validate:docs": "corepack npm run check:markdown-links && corepack npm run check:docs-drift && corepack npm run validate:docs-examples && corepack npm run check:github-release-notes && corepack npm run smoke:readme",
130
+ "validate:docs": "corepack npm run check:markdown-links && corepack npm run check:docs-drift && corepack npm run validate:docs-examples && corepack npm run check:github-release-notes && corepack npm run check:release-announcement && corepack npm run smoke:readme",
129
131
  "smoke:frontend-generators": "tsup && node scripts/smoke-frontend-generators.mjs",
130
132
  "smoke:frontend-generators:network": "tsup && node scripts/smoke-frontend-generators.mjs --execute",
133
+ "smoke:official-generators": "tsup && node scripts/smoke-official-generators.mjs",
134
+ "smoke:official-generators:network": "tsup && node scripts/smoke-official-generators.mjs --execute",
135
+ "check:generator-smoke-coverage": "node scripts/check-generator-smoke-coverage.mjs",
131
136
  "sync:contracts": "node scripts/sync-contracts.mjs",
132
137
  "check:contracts": "node scripts/sync-contracts.mjs --check",
133
138
  "bundle-size": "corepack npm run build && node scripts/report-dist-size.mjs",
134
139
  "analyze": "corepack npm run build && node scripts/analyze-dist.mjs",
135
140
  "size-check": "corepack npm run build && size-limit",
136
141
  "bench": "npx tsx scripts/benchmarks.ts",
137
- "quality": "corepack npm run check:package-manager && corepack npm run typecheck && corepack npm run lint && corepack npm run format:check && corepack npm test && corepack npm run size-check && corepack npm run check:workspace-intelligence-runtime && corepack npm run check:workspace-intelligence-adversarial && corepack npm run security && corepack npm run validate:docs && corepack npm run smoke:frontend-generators && corepack npm run check:contracts && corepack npm run check:shared-contracts && corepack npm run check:parity-snapshot && corepack npm run check:agent-customization-drift",
142
+ "quality": "corepack npm run check:package-manager && corepack npm run typecheck && corepack npm run lint && corepack npm run format:check && corepack npm test && corepack npm run size-check && corepack npm run check:workspace-intelligence-runtime && corepack npm run check:workspace-intelligence-adversarial && corepack npm run security && corepack npm run validate:docs && corepack npm run check:generator-smoke-coverage && corepack npm run smoke:official-generators && corepack npm run check:contracts && corepack npm run check:shared-contracts && corepack npm run check:parity-snapshot && corepack npm run check:agent-customization-drift",
138
143
  "act-matrix": "act -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:act-22.04 -P macos-latest=ghcr.io/catthehacker/ubuntu:act-22.04 -P windows-latest=ghcr.io/catthehacker/ubuntu:act-22.04 --pull=false -j build-test-matrix",
139
144
  "release:dry": "bash scripts/release.sh --no-publish --yes --allow-dirty",
140
145
  "release:patch": "bash scripts/release.sh patch",
@@ -146,7 +151,7 @@
146
151
  "contracts:check": "corepack npm run check:contracts && corepack npm run check:shared-contracts && corepack npm run check:parity-snapshot && corepack npm run check:generated-contracts && corepack npm run check:agent-customization-drift",
147
152
  "contracts:validate": "corepack npm run contracts:check && corepack npm run validate:contracts && corepack npm run build && corepack npm run check:workspace-intelligence-runtime && corepack npm run check:workspace-intelligence-adversarial",
148
153
  "docs:validate": "corepack npm run validate:docs",
149
- "smoke": "corepack npm run smoke:enterprise-package && corepack npm run smoke:readme && corepack npm run smoke:frontend-generators",
154
+ "smoke": "corepack npm run smoke:enterprise-package && corepack npm run smoke:readme && corepack npm run check:generator-smoke-coverage && corepack npm run smoke:official-generators",
150
155
  "fix": "corepack npm run lint:fix && corepack npm run format && corepack npm run sync:contracts && corepack npm run sync:shared-contracts && corepack npm run sync-kits"
151
156
  },
152
157
  "dependencies": {
@@ -376,6 +376,17 @@ function smokeCreateNpmBackedKits() {
376
376
  'rapidkit',
377
377
  ],
378
378
  },
379
+ {
380
+ kit: 'rust.axum',
381
+ name: 'enterprise-rust-axum',
382
+ extraArgs: [],
383
+ expectedFiles: [
384
+ 'Cargo.toml',
385
+ 'src/main.rs',
386
+ '.workspai/project.json',
387
+ 'rapidkit',
388
+ ],
389
+ },
379
390
  ];
380
391
 
381
392
  try {