workspai 0.45.0 → 0.47.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 (177) hide show
  1. package/README.md +307 -532
  2. package/contracts/agent-customization-pack.v1.json +6 -1
  3. package/contracts/bootstrap-compliance.v1.json +14 -0
  4. package/contracts/cli-runtime-command-inventory.v1.snapshot.json +8 -0
  5. package/contracts/extension-cli-compatibility.v1.json +9 -2
  6. package/contracts/mirror-ops.v1.json +16 -0
  7. package/contracts/published-contract-catalog.v1.json +38 -1
  8. package/contracts/runtime-command-surface.v1.json +190 -7
  9. package/contracts/transparency-evidence.v1.json +13 -0
  10. package/contracts/workspace-archive-capabilities.v1.json +17 -6
  11. package/contracts/workspace-contract.v1.json +78 -0
  12. package/contracts/workspace-intelligence/studio-blocker-handoff.v1.json +4 -0
  13. package/contracts/workspace-intelligence/workspace-context.v1.json +20 -0
  14. package/contracts/workspace-intelligence/workspace-graph-token-efficiency.v1.json +72 -0
  15. package/contracts/workspace-intelligence/workspace-intelligence-run.v1.json +212 -0
  16. package/contracts/workspace-intelligence/workspace-knowledge-graph-change-overlay.v1.json +200 -0
  17. package/contracts/workspace-intelligence/workspace-knowledge-graph.v1.json +260 -0
  18. package/contracts/workspace-intelligence/workspace-knowledge-search.v1.json +60 -0
  19. package/contracts/workspace-intelligence-architecture.v1.json +7 -4
  20. package/contracts/workspace-intelligence-chain.v1.json +51 -4
  21. package/contracts/workspace-share-bundle.v1.json +16 -0
  22. package/dist/analyze-UVXPRGYZ.js +1 -0
  23. package/dist/artifact-remediation-plan-EPALZ2LC.js +3 -0
  24. package/dist/autopilot-release-5BQ6F5L2.js +1 -0
  25. package/dist/chunk-22NJ2ZMG.js +2 -0
  26. package/dist/{chunk-XIVFLY6G.js → chunk-2GHUZDYA.js} +1 -1
  27. package/dist/chunk-2TEDAKP6.js +2 -0
  28. package/dist/chunk-52PBRX7F.js +1 -0
  29. package/dist/chunk-6SWRNA47.js +4 -0
  30. package/dist/chunk-76YOPAOT.js +1 -0
  31. package/dist/chunk-7VLCK5JW.js +1 -0
  32. package/dist/{chunk-DXPU4DDV.js → chunk-BSRVO52Y.js} +92 -78
  33. package/dist/chunk-COARSXRC.js +1 -0
  34. package/dist/chunk-CV5HKU4P.js +1 -0
  35. package/dist/chunk-CW7PGBIQ.js +13 -0
  36. package/dist/{chunk-KU4S7RCM.js → chunk-DV6GJD4K.js} +1 -1
  37. package/dist/chunk-EYJ2CQSK.js +1 -0
  38. package/dist/chunk-FB7SCXAZ.js +1 -0
  39. package/dist/chunk-FPJNWPKU.js +1 -0
  40. package/dist/{chunk-JP25YL3J.js → chunk-FTY7GGXJ.js} +2 -2
  41. package/dist/chunk-FXQJX34Z.js +1 -0
  42. package/dist/{chunk-J4AICQFB.js → chunk-HSGFUKCN.js} +1 -1
  43. package/dist/{chunk-OOOPYUL2.js → chunk-ITCAMC2E.js} +1 -1
  44. package/dist/chunk-KB44JP4M.js +2 -0
  45. package/dist/{chunk-WANW4QA4.js → chunk-KZZ36CK5.js} +1 -1
  46. package/dist/chunk-LNRAB7UY.js +1 -0
  47. package/dist/chunk-MEMHNE7Y.js +80 -0
  48. package/dist/chunk-MER6ZBN2.js +13 -0
  49. package/dist/chunk-NOFM7MNA.js +2 -0
  50. package/dist/chunk-NRYS4CLR.js +2 -0
  51. package/dist/chunk-OA537ZQ5.js +1 -0
  52. package/dist/chunk-PBHP6JNY.js +8 -0
  53. package/dist/chunk-QDWYIRHR.js +8 -0
  54. package/dist/chunk-RWRLFSKW.js +2 -0
  55. package/dist/chunk-SK6XRKGG.js +1 -0
  56. package/dist/chunk-THIOE2PB.js +2 -0
  57. package/dist/chunk-TNQI5VCW.js +36 -0
  58. package/dist/chunk-TWNFECMN.js +2 -0
  59. package/dist/{chunk-2QOWRBQD.js → chunk-U5EZHZBX.js} +1 -1
  60. package/dist/{chunk-K63BSU56.js → chunk-VBSQ7MF6.js} +62 -51
  61. package/dist/chunk-WDKNMTJQ.js +1 -0
  62. package/dist/chunk-YCL3I2JO.js +2 -0
  63. package/dist/chunk-ZDN7RHXJ.js +1 -0
  64. package/dist/chunk-ZM5NQ5Z2.js +1 -0
  65. package/dist/{create-KFR6FLRT.js → create-7JKJDAQV.js} +1 -1
  66. package/dist/doctor-PGPNIS76.js +1 -0
  67. package/dist/{dotnet-webapi-clean-BYUUHX5Y.js → dotnet-webapi-clean-6TVFBTVI.js} +20 -20
  68. package/dist/{gofiber-standard-B6UK5GR7.js → gofiber-standard-2BL7GWZB.js} +1 -1
  69. package/dist/{gogin-standard-BXU44VEM.js → gogin-standard-XGP3KBXA.js} +1 -1
  70. package/dist/index.d.ts +112 -16
  71. package/dist/index.js +198 -195
  72. package/dist/pipeline-IB6ILJSV.js +5 -0
  73. package/dist/{platform-capabilities-YICBF4FA.js → platform-capabilities-2B4QMZXE.js} +1 -1
  74. package/dist/{pythonRapidkitExec-UJYIB6FL.js → pythonRapidkitExec-CVCIK225.js} +1 -1
  75. package/dist/{springboot-standard-PEHDKH2L.js → springboot-standard-JJNUID6M.js} +6 -6
  76. package/dist/workspace-H3QXBFGB.js +1 -0
  77. package/dist/{workspace-agent-sync-G5YVI3BJ.js → workspace-agent-sync-C7SG2Z5W.js} +1 -1
  78. package/dist/workspace-archive-P76EDIUG.js +10 -0
  79. package/dist/{workspace-context-E3UFWL5X.js → workspace-context-BKQBKA4C.js} +1 -1
  80. package/dist/workspace-contract-RPQQBQXR.js +1 -0
  81. package/dist/workspace-dependency-graph-23BI2HG7.js +1 -0
  82. package/dist/workspace-explain-WVN7JH3U.js +1 -0
  83. package/dist/workspace-explain-contract-SEFTVF6J.js +1 -0
  84. package/dist/{workspace-feedback-YY6WQPWQ.js → workspace-feedback-WAID3IOE.js} +1 -1
  85. package/dist/{workspace-foundation-3C2DLCVI.js → workspace-foundation-5OOJEO2D.js} +1 -1
  86. package/dist/workspace-graph-token-efficiency-CFGFCJ5V.js +1 -0
  87. package/dist/{workspace-history-VF3CHDYQ.js → workspace-history-C6OP3IAQ.js} +1 -1
  88. package/dist/workspace-intelligence-VKDL3H2J.js +1 -0
  89. package/dist/workspace-intelligence-runner-LVALAZY7.js +1 -0
  90. package/dist/workspace-knowledge-graph-FE2NTZKV.js +1 -0
  91. package/dist/workspace-knowledge-graph-change-overlay-XG6FC4IX.js +1 -0
  92. package/dist/workspace-knowledge-graph-query-VOSPPH4W.js +1 -0
  93. package/dist/workspace-mcp-serve-KT2I676Z.js +3 -0
  94. package/dist/workspace-model-S33CIB2R.js +1 -0
  95. package/dist/workspace-model-hash-MHXK5MEI.js +1 -0
  96. package/dist/workspace-python-engine-state-2MLKJYQG.js +2 -0
  97. package/dist/workspace-registry-summary-A3YDL63D.js +1 -0
  98. package/dist/workspace-run-M4LNJILC.js +1 -0
  99. package/dist/{workspace-verify-ZNT6JX7D.js → workspace-verify-ZGH3NXAH.js} +1 -1
  100. package/dist/workspace-watch-EVBJTMV7.js +1 -0
  101. package/docs/AI_DYNAMIC_INTEGRATION.md +73 -432
  102. package/docs/AI_EXAMPLES.md +37 -395
  103. package/docs/AI_FEATURES.md +76 -465
  104. package/docs/AI_QUICKSTART.md +49 -209
  105. package/docs/DEVELOPMENT.md +5 -5
  106. package/docs/From Code to Shared Understanding.png +0 -0
  107. package/docs/GLOSSARY.md +60 -0
  108. package/docs/OPEN_SOURCE_USER_SCENARIOS.md +91 -9
  109. package/docs/OPTIMIZATION_GUIDE.md +19 -51
  110. package/docs/PACKAGE_MANAGER_POLICY.md +4 -1
  111. package/docs/README.md +91 -42
  112. package/docs/SECURITY.md +13 -6
  113. package/docs/SETUP.md +6 -3
  114. package/docs/UTILITIES.md +8 -20
  115. package/docs/WORKSPACE_MARKER_SPEC.md +27 -20
  116. package/docs/ci-workflows.md +19 -5
  117. package/docs/commands-reference.md +88 -13
  118. package/docs/config-file-guide.md +67 -246
  119. package/docs/contracts/ARTIFACT_CATALOG.md +78 -36
  120. package/docs/contracts/CLI_LOG_EVENT_STREAM.md +1 -1
  121. package/docs/contracts/README.md +48 -9
  122. package/docs/contracts/RUNTIME_ACCEPTANCE_MATRIX.md +4 -4
  123. package/docs/contracts/RUNTIME_SUPPORT_MATRIX.md +14 -10
  124. package/docs/creating-workspaces-and-projects.md +649 -0
  125. package/docs/doctor-command.md +5 -4
  126. package/docs/examples/ci-agent-grounding.yml +16 -10
  127. package/docs/from-code-to-shared-understanding.md +69 -38
  128. package/docs/graph-benchmark-methodology.md +121 -0
  129. package/docs/workspace-intelligence-runner.md +186 -0
  130. package/docs/workspace-knowledge-graph.md +295 -0
  131. package/docs/workspace-operations.md +78 -11
  132. package/docs/workspace-run.md +4 -1
  133. package/package.json +10 -8
  134. package/rapidkit.config.example.cjs +5 -5
  135. package/scripts/enforce-package-manager.cjs +1 -1
  136. package/scripts/prepack-enterprise.mjs +4 -0
  137. package/workspai.config.example.cjs +12 -47
  138. package/dist/analyze-YLV7NVLF.js +0 -1
  139. package/dist/artifact-remediation-plan-WLZGROUU.js +0 -3
  140. package/dist/autopilot-release-YBN3SWAA.js +0 -1
  141. package/dist/chunk-2K3GYCPS.js +0 -1
  142. package/dist/chunk-42G2OK64.js +0 -1
  143. package/dist/chunk-5AKYMAIL.js +0 -1
  144. package/dist/chunk-5GNT4RJI.js +0 -8
  145. package/dist/chunk-5PVEQ6CZ.js +0 -13
  146. package/dist/chunk-6AA3WWQZ.js +0 -2
  147. package/dist/chunk-6ZENXBMG.js +0 -33
  148. package/dist/chunk-7RIWU5TZ.js +0 -1
  149. package/dist/chunk-7UZVOYF5.js +0 -2
  150. package/dist/chunk-BJLE5CH7.js +0 -4
  151. package/dist/chunk-G3H5R3RR.js +0 -1
  152. package/dist/chunk-HYJK7W3B.js +0 -1
  153. package/dist/chunk-IMUU5Q2V.js +0 -13
  154. package/dist/chunk-KPPGZCUW.js +0 -78
  155. package/dist/chunk-LCRROMRR.js +0 -2
  156. package/dist/chunk-LG6RFLPZ.js +0 -1
  157. package/dist/chunk-P424XYHP.js +0 -1
  158. package/dist/chunk-P7SCWJFG.js +0 -8
  159. package/dist/chunk-QWU2CZBG.js +0 -2
  160. package/dist/chunk-V2H2KRMZ.js +0 -1
  161. package/dist/chunk-XZGVNGRB.js +0 -1
  162. package/dist/chunk-ZWO6K24C.js +0 -2
  163. package/dist/doctor-YJDM5XBH.js +0 -1
  164. package/dist/imported-projects-registry-FOIE27WT.js +0 -1
  165. package/dist/pipeline-FEDYO3IA.js +0 -5
  166. package/dist/workspace-PLXOO6ST.js +0 -1
  167. package/dist/workspace-archive-EEGLHZDW.js +0 -10
  168. package/dist/workspace-contract-LQJDZV36.js +0 -1
  169. package/dist/workspace-explain-G74ZIF23.js +0 -1
  170. package/dist/workspace-explain-contract-KT757JGQ.js +0 -1
  171. package/dist/workspace-intelligence-3GG7GEDQ.js +0 -1
  172. package/dist/workspace-mcp-serve-MJMUV4RY.js +0 -3
  173. package/dist/workspace-model-NG45SRM5.js +0 -1
  174. package/dist/workspace-python-engine-state-MTWIIZPY.js +0 -2
  175. package/dist/workspace-registry-summary-JM2XY52C.js +0 -1
  176. package/dist/workspace-run-WEQYIERE.js +0 -1
  177. package/dist/workspace-watch-W47T4RX2.js +0 -1
@@ -6,7 +6,7 @@ Complete CLI syntax for the Workspai CLI. For behavior and workflows, see [works
6
6
 
7
7
  ```bash
8
8
  npx workspai create # Prompts: workspace | project
9
- npx workspai create workspace <name> [--profile <profile>] [--author <name>] [--yes] [--here|--output <parent-dir>] [--skip-python-engine]
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> [--warm-deps]
12
12
  npx workspai pipeline [--json] [--strict] [--skip-verify] [--skip-analyze] [--skip-autopilot] [--autopilot-mode <audit|safe-fix|enforce>] [--agent-sync|--no-agent-sync]
@@ -17,6 +17,13 @@ npx workspai autopilot release [--mode <audit|safe-fix|enforce>] [--json] [--out
17
17
 
18
18
  Recommended CI:
19
19
 
20
+ ```bash
21
+ npx workspai workspace intelligence run --for-agent codex --strict --json
22
+ ```
23
+
24
+ Run the broader governance and release orchestrators as separate gates; they
25
+ do not extend or redefine the canonical Workspace Intelligence chain:
26
+
20
27
  ```bash
21
28
  npx workspai pipeline --json --strict
22
29
  npx workspai autopilot release --mode enforce --json --output .workspai/reports/autopilot-release.json
@@ -49,6 +56,7 @@ npx workspai workspace contract init [--force] [--json]
49
56
  npx workspai workspace contract inspect [--json]
50
57
  npx workspai workspace contract verify [--strict] [--json]
51
58
  npx workspai workspace contract graph [--json]
59
+ npx workspai workspace intelligence run [--workspace <path>] [--for-agent <agent>] [--strict] [--json]
52
60
  npx workspai workspace model [--workspace <path>] [--json] [--write] [--strict] [--cache] [--incremental] [--include-paths] [--include-evidence] [--scan-depth <count>]
53
61
  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>]
54
62
  npx workspai workspace agent-sync [--workspace <path>] [--write] [--refresh-context] [--strict] [--json] [--preset minimal|enterprise] [--target all|vscode|agents,copilot,cursor,claude,codex,orca] [--experimental-hooks] [--hydrate-prompts]
@@ -57,19 +65,19 @@ npx workspai workspace snapshot [--workspace <path>] [--json] [--include-paths]
57
65
  npx workspai workspace diff --from <snapshot-or-report|git[:ref]> [--workspace <path>] [--json] [--include-paths] [--include-evidence] [--scan-depth <count>] [--strict]
58
66
  npx workspai workspace impact --from <workspace-diff-report> [--workspace <path>] [--scope project:<name>] [--json] [--include-paths] [--include-evidence] [--scan-depth <count>] [--strict]
59
67
  npx workspai workspace verify [--from-impact <file>] [--workspace <path>] [--scope project:<name>] [--strict] [--json] [--include-paths] [--include-evidence] [--scan-depth <count>]
60
- npx workspai workspace graph [emit|explain|dot|mermaid] [key] [--workspace <path>] [--scope project:<name>] [--json] [--include-paths] [--include-evidence] [--scan-depth <count>]
68
+ npx workspai workspace graph [emit|explain|search|benchmark|entities|evidence|path|overlay|dot|mermaid] [key] [value] [--from <graph.json>] [--limit <1..100>] [--workspace <path>] [--scope project:<name>] [--json] [--include-paths] [--include-evidence] [--scan-depth <count>]
61
69
  npx workspai workspace watch [--workspace <path>] [--json] [--once] [--scan-depth <count>]
62
70
  npx workspai workspace explain|why <target> [--workspace <path>] [--json] [--write]
63
71
  npx workspai workspace trace --from <workspace-diff-report> [--workspace <path>] [--json] [--write]
64
72
  printf '%s\n' '{"actionId":"fix-api","summary":"API tests passed","outcome":"ok"}' | npx workspai workspace feedback record [--workspace <path>] --json
65
73
  npx workspai workspace mcp serve [--workspace <path>] [--json]
66
74
  npx workspai workspace export --output team-workspace.workspai-archive.zip [--archive-compression store|deflate]
67
- npx workspai workspace archive inspect team-workspace.workspai-archive.zip [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--json]
68
- npx workspai workspace archive verify team-workspace.workspai-archive.zip [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--strict] [--json]
69
- npx workspai workspace archive doctor team-workspace.workspai-archive.zip [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--strict] [--json]
70
- npx workspai workspace hydrate team-workspace.workspai-archive.zip --output ./team-workspace [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>]
71
- npx workspai import <path|git-url> [--workspace <path>] [--name <project-name>] [--git] [--json]
72
- npx workspai adopt [path] [--workspace <path>] [--name <project-name>] [--dry-run] [--json]
75
+ npx workspai workspace archive inspect team-workspace.workspai-archive.zip [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--allow-private-network] [--json]
76
+ npx workspai workspace archive verify team-workspace.workspai-archive.zip [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--allow-private-network] [--strict] [--json]
77
+ npx workspai workspace archive doctor team-workspace.workspai-archive.zip [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--allow-private-network] [--strict] [--json]
78
+ npx workspai workspace hydrate team-workspace.workspai-archive.zip --output ./team-workspace [--max-download-size <size>] [--max-expanded-size <size>] [--download-timeout-ms <ms>] [--allow-private-network]
79
+ npx workspai import <path|git-url> [--workspace <path>] [--name <project-name>] [--git] [--enable-modules] [--json]
80
+ npx workspai adopt [path] [--workspace <path>] [--name <project-name>] [--enable-modules] [--dry-run] [--json]
73
81
  npx workspai snapshot create [name] [--include-projects] [--reason <text>] [--json]
74
82
  npx workspai snapshot list [--json]
75
83
  npx workspai snapshot inspect <name> [--json]
@@ -86,6 +94,28 @@ npx workspai infra down [--workspace <path>] [--volumes]
86
94
  npx workspai infra status [--workspace <path>] [--json] [--strict]
87
95
  ```
88
96
 
97
+ The contract graph includes its backward-compatible service projection, the
98
+ canonical `workspace-dependency-graph.v1` project topology, and the portable
99
+ `workspace-knowledge-graph.v1` evidence graph. The knowledge projection covers
100
+ workspace/project structure, packages and dependencies, source files, modules,
101
+ symbols, HTTP endpoints, OpenAPI/GraphQL/Protocol Buffers/AsyncAPI contracts,
102
+ Compose/Kubernetes/Dockerfile/Terraform/Helm infrastructure, CI workflows,
103
+ documentation, ADRs, tests, owners, environments, databases, and queues.
104
+ Every entity and relation has stable identity and portable proof paths; proof
105
+ taxonomy separates authored, extracted, and inferred facts and records trust,
106
+ confidence, and freshness. Environment and secret values are never emitted.
107
+
108
+ `workspace intelligence run` writes
109
+ `.workspai/reports/workspace-intelligence-run-last-run.json`. Its `preflight`
110
+ contains exactly `sync` and `baseline`, while `stages` contains exactly the 11
111
+ ordered canonical chain steps. Exit `0` is passed, `1` is a hard execution
112
+ failure, and `2` is a completed but evidence-blocked run. With `--strict`,
113
+ warning-grade Analyze and Readiness verdicts can block the run without becoming
114
+ execution failures. See
115
+ [Unified Workspace Intelligence Runner](./workspace-intelligence-runner.md) for
116
+ baseline creation/reuse, JSON fields, artifact invariants, skip propagation, and
117
+ CI handling.
118
+
89
119
  `workspace feedback record` is a non-interactive machine interface. It requires
90
120
  exactly one JSON object on stdin and `--json`; an empty stdin or interactive TTY
91
121
  is rejected. Required fields are `actionId`, `summary`, and `outcome`. The
@@ -95,9 +125,45 @@ records are appended to
95
125
  `.workspai/reports/workspace-intelligence-history.json`; no separate feedback
96
126
  artifact is created.
97
127
 
98
- `workspace graph dot` and `workspace graph mermaid` intentionally emit raw DOT
99
- and Mermaid text for direct piping to renderers. Use `workspace graph emit
100
- --json` or `workspace graph explain <project> --json` for structured JSON.
128
+ `workspace graph emit --json` returns both the compatibility project graph and
129
+ the knowledge graph. Use `workspace graph entities [kind]`, `workspace graph
130
+ evidence <id-or-unique-label>`, and `workspace graph path <from> <to>` for
131
+ indexed queries. `workspace graph overlay --from <prior-graph.json>` produces a
132
+ portable change/PR overlay with additions, removals, changed fields, proof
133
+ artifacts, proof additions/removals/content changes, bounded one-hop impact,
134
+ and a risk summary. Observation timestamps and freshness alone do not create
135
+ false change noise. Query indexes are cached
136
+ per immutable graph object and invalidated automatically when a new graph is
137
+ built. `dot` and `mermaid` intentionally remain project-topology renderers and
138
+ emit raw text for direct piping.
139
+
140
+ `workspace graph search <query> --limit <n> --json` returns bounded entities,
141
+ one-hop relations, related entity summaries, and portable proofs instead of the
142
+ complete graph. `workspace graph benchmark <query> --limit <n> --json` compares
143
+ that retrieval payload with the readable proof-indexed corpus using a labelled
144
+ `characters / 4` estimate. It measures payload reduction only; it does not
145
+ assert equivalent answer quality or model-specific billing savings.
146
+
147
+ `workspace model --write` also materializes the derived, contract-validated
148
+ knowledge graph at `.workspai/reports/workspace-knowledge-graph.json`. The
149
+ unified intelligence runner treats that artifact as a required output of the
150
+ Model step, so CI, IDE adapters, agent grounding, and MCP all observe the same
151
+ revision. Agent contexts carry its reference, quality counts, and bounded query
152
+ commands instead of copying the entire graph into every prompt. MCP exposes
153
+ `getWorkspaceKnowledgeGraph`, `searchWorkspaceGraph`, `queryWorkspaceEntities`,
154
+ `getWorkspaceGraphEvidence`, and `findWorkspaceGraphPath`.
155
+
156
+ Source extraction is bounded and language-neutral by contract. It recognizes
157
+ the primary source formats for TypeScript/JavaScript, Python, Go, Java/Kotlin,
158
+ .NET/F#, Rust, Ruby, PHP, Swift, Dart, Elixir, Scala, Clojure, Lua, R, C/C++,
159
+ Vue, and Svelte. Package baselines also recognize npm/Deno, Python, Go, Cargo,
160
+ Maven/Gradle, NuGet, Composer, Ruby, Elixir, Dart, SwiftPM, CMake, Bazel, and SBT.
161
+ Regex-backed
162
+ source facts are marked `observed` with medium confidence; authored manifests
163
+ and interface/infrastructure specifications remain authoritative. This avoids
164
+ presenting heuristic symbol discovery as compiler-grade truth while keeping the
165
+ current CLI useful until deeper language providers move into the standalone
166
+ graph package.
101
167
 
102
168
  See [workspace-run.md](./workspace-run.md) for fleet orchestration semantics.
103
169
 
@@ -122,11 +188,14 @@ for every project that happens to use a first-class framework. For example, an
122
188
  arbitrary existing FastAPI application can be adopted and modeled as a
123
189
  Python/FastAPI project, but module mutation remains disabled unless its RapidKit
124
190
  project metadata identifies one of those module-enabled kits.
191
+ `--enable-modules` preserves module commands only when existing RapidKit
192
+ metadata already identifies a module-enabled kit; it does not enable Core module
193
+ mutation for an arbitrary detected framework.
125
194
 
126
195
  ## Project lifecycle
127
196
 
128
197
  ```bash
129
- npx workspai create project <kit> <name> [--yes] [--skip-install] [--skip-git] [--output <dir>]
198
+ npx workspai create project <kit> <name> [--yes] [--skip-install] [--skip-git] [--dry-run] [--output <dir>] [--create-workspace|--no-workspace]
130
199
  npx workspai project commands [--json]
131
200
  npx workspai commands --scope project [--json]
132
201
  npx workspai init
@@ -143,6 +212,11 @@ npx workspai create project fastapi.standard my-api --yes
143
212
  npx workspai create project nextjs my-web --yes
144
213
  ```
145
214
 
215
+ Generator-specific options include `--port`, Spring Boot
216
+ `--java-version`/`--spring-version`/`--package-name`/`--group-id`/`--artifact-id`,
217
+ and .NET `--dotnet-version`/`--target-framework`/`--nullable`. Use
218
+ `npx workspai create project --help` for the live option inventory.
219
+
146
220
  `create frontend <id> <name>` is still accepted and routes to the same generators.
147
221
 
148
222
  `project commands` shows the effective command contract for the current project. Core-backed FastAPI/NestJS projects can use module commands such as `add` and `modules`. Frontend apps, Go, Spring Boot, .NET, and adopted/imported repositories use runtime lifecycle commands and workspace governance while Core module mutation remains disabled.
@@ -164,7 +238,8 @@ See [workspace-operations.md](./workspace-operations.md#workspace-infrastructure
164
238
  - `python-only` — Python-focused workspace
165
239
  - `node-only` — Node.js-focused workspace
166
240
  - `go-only` — Go-focused workspace
167
- - `polyglot` — Python + Node.js + Go + Java
241
+ - `dotnet-only` — .NET-focused workspace
242
+ - `polyglot` — Python + Node.js + Go + Java + .NET
168
243
  - `enterprise` — polyglot + governance-oriented checks
169
244
 
170
245
  ## Policy modes
@@ -1,299 +1,120 @@
1
- # 📖 Workspai Config File Guide
1
+ # Workspai Configuration Guide
2
2
 
3
- ## 🎯 Purpose of `workspai.config.cjs`
3
+ Workspai has two configuration surfaces with different scopes. Command-line
4
+ flags remain authoritative when a command supports the corresponding option.
4
5
 
5
- The `workspai.config.cjs` file is an **optional configuration file** that allows you to define default settings for creating workspaces and projects.
6
+ ## User configuration
6
7
 
7
- ---
8
+ `~/.workspairc.json` stores user-level settings. The legacy
9
+ `~/.rapidkitrc.json` path is read only when the canonical file is absent.
8
10
 
9
- ## 📍 File Location
11
+ Supported fields include:
10
12
 
11
- ```
12
- 📁 Your Project Directory (where you run npx workspai)
13
- ├── workspai.config.cjs ← Config file (create manually)
14
- ├── package.json
15
- └── ...
16
- ```
17
-
18
- **Important Note**: This file is **not automatically created**. You must create it manually.
19
-
20
- ---
21
-
22
- ## 🔍 When to Use
23
-
24
- ### 1️⃣ **Team Development**
25
-
26
- ```javascript
27
- // workspai.config.cjs
28
- module.exports = {
29
- workspace: {
30
- defaultAuthor: 'Your Team Name',
31
- pythonVersion: '3.10',
32
- installMethod: 'poetry'
33
- }
34
- }
35
- ```
36
-
37
- **Result**: All team members create workspaces with identical settings.
38
-
39
- ---
40
-
41
- ### 2️⃣ **CI/CD Automation**
42
-
43
- ```javascript
44
- // workspai.config.cjs for CI/CD
45
- module.exports = {
46
- workspace: {
47
- defaultAuthor: 'CI Bot',
48
- pythonVersion: '3.11',
49
- installMethod: 'venv'
50
- },
51
- projects: {
52
- skipGit: true, // No git init needed in CI
53
- skipInstall: false
54
- }
55
- }
56
- ```
57
-
58
- **Usage**:
59
- ```bash
60
- # In CI/CD pipeline
61
- npx workspai my-workspace --yes
62
- # Uses config without prompts
63
- ```
64
-
65
- ---
66
-
67
- ### 3️⃣ **Personal Projects**
68
-
69
- ```javascript
70
- // workspai.config.cjs
71
- module.exports = {
72
- workspace: {
73
- defaultAuthor: 'John Doe',
74
- pythonVersion: '3.12'
75
- },
76
- projects: {
77
- defaultKit: 'fastapi.standard', // Always use FastAPI standard template
78
- addDefaultModules: [
79
- 'prisma',
80
- 'redis',
81
- 'auth-jwt',
82
- 'monitoring'
83
- ]
84
- }
85
- }
86
- ```
87
-
88
- **Result**: Every new project comes with these modules pre-configured.
89
-
90
- ---
91
-
92
- ## 📝 Supported File Formats
93
-
94
- | File | Description |
95
- |------|-------------|
96
- | `workspai.config.cjs` | CommonJS explicit, safest across package types |
97
- | `workspai.config.js` | CommonJS unless the project package uses `"type": "module"` |
98
- | `workspai.config.mjs` | Explicit ES Module |
99
- | `rapidkit.config.*` | Legacy fallback, still read during migration |
100
-
101
- Use `workspai.config.mjs` when you prefer `export default`.
102
-
103
- ---
104
-
105
- ## ⚙️ Available Configuration Options
106
-
107
- ### **workspace** (Workspace Settings)
108
-
109
- ```typescript
110
- workspace: {
111
- defaultAuthor?: string; // Author/team name
112
- pythonVersion?: '3.10' | '3.11' | '3.12'; // Python version
113
- installMethod?: 'poetry' | 'venv' | 'pipx'; // Core installation method
13
+ ```json
14
+ {
15
+ "defaultKit": "fastapi.standard",
16
+ "defaultInstallMethod": "poetry",
17
+ "pythonVersion": "3.10",
18
+ "author": "Platform Team",
19
+ "license": "MIT",
20
+ "skipGit": false,
21
+ "aiEnabled": true,
22
+ "telemetry": false
114
23
  }
115
24
  ```
116
25
 
117
- ### **projects** (Project Settings)
26
+ The `workspai config` command owns persisted AI settings such as the OpenAI API
27
+ key and `aiEnabled`. Do not commit user configuration or API keys.
118
28
 
119
- ```typescript
120
- projects: {
121
- defaultKit?: string; // Default template
122
- addDefaultModules?: string[]; // Default modules to install
123
- skipGit?: boolean; // Skip git initialization
124
- skipInstall?: boolean; // Skip npm install
125
- }
126
- ```
29
+ ## Directory configuration
127
30
 
128
- ---
31
+ The CLI can discover the nearest configuration file while walking from the
32
+ current directory toward the filesystem root:
129
33
 
130
- ## 🔄 Configuration Priority
34
+ - `workspai.config.json` (recommended; data-only and safe by default)
35
+ - `workspai.config.cjs`
36
+ - `workspai.config.mjs`
37
+ - `workspai.config.js`, when its syntax matches the containing package type
38
+ - `rapidkit.config.*`, as a legacy fallback
131
39
 
132
- ```
133
- CLI Arguments > workspai.config.* > .workspairc.json > legacy rapidkit config > Defaults
134
- ```
40
+ JavaScript configuration is executable code. The CLI refuses to import it
41
+ unless trust is explicit:
135
42
 
136
- **Example**:
137
43
  ```bash
138
- # Config file: author='Team A'
139
- npx workspai my-workspace --author "Team B"
140
- # Result: author='Team B' (CLI overrides config)
44
+ npx workspai my-workspace --trust-config
45
+ # Non-interactive equivalent for controlled CI:
46
+ WORKSPAI_TRUST_CONFIG=1 npx workspai my-workspace
141
47
  ```
142
48
 
143
- ---
49
+ Do not trust executable configuration from an unreviewed repository. Prefer
50
+ `workspai.config.json` whenever computed values are not required.
144
51
 
145
- ## 📋 Complete Example
52
+ Example:
146
53
 
147
54
  ```javascript
148
- /**
149
- * Workspai Configuration
150
- * Place in project root before running `npx workspai`
151
- */
55
+ // workspai.config.cjs
152
56
  module.exports = {
153
- // Workspace settings
154
57
  workspace: {
155
- defaultAuthor: 'Workspai Dev Team',
58
+ defaultAuthor: 'Platform Team',
156
59
  pythonVersion: '3.10',
157
60
  installMethod: 'poetry',
158
61
  },
159
-
160
- // Project settings
161
62
  projects: {
162
63
  defaultKit: 'fastapi.standard',
163
-
164
- // Auto-add these modules to new projects
165
- addDefaultModules: [
166
- 'prisma', // Database ORM
167
- 'redis', // Caching
168
- 'auth-jwt', // Authentication
169
- 'monitoring', // Observability
170
- ],
171
-
172
64
  skipGit: false,
173
- skipInstall: false,
174
65
  },
175
66
  };
176
67
  ```
177
68
 
178
- ---
69
+ Python-backed workflows require Python 3.10 or newer. `pythonVersion` selects a
70
+ project target; it does not make Python a dependency for Node-only or other
71
+ Python-free Workspai workflows.
179
72
 
180
- ## 🚀 Usage Examples
181
-
182
- ### Without Config File (Interactive):
183
- ```bash
184
- npx workspai my-workspace
185
- # ❓ Prompts:
186
- # - Author name?
187
- # - Python version?
188
- # - Install method?
189
- ```
73
+ ## Command coverage
190
74
 
191
- ### With Config File (Automated):
192
- ```bash
193
- # 1. Create config
194
- cat > workspai.config.cjs << 'EOF'
195
- module.exports = {
196
- workspace: {
197
- defaultAuthor: 'My Team',
198
- pythonVersion: '3.10',
199
- installMethod: 'poetry'
200
- }
201
- }
202
- EOF
75
+ Directory configuration is currently consumed by the legacy top-level creation
76
+ shorthand, for example `npx workspai my-workspace`. Its effective precedence is:
203
77
 
204
- # 2. Run Workspai
205
- npx workspai my-workspace --yes
206
- # ✅ No prompts, uses config defaults
78
+ ```text
79
+ CLI flags > workspai.config.* > ~/.workspairc.json > legacy config > defaults
207
80
  ```
208
81
 
209
- ---
210
-
211
- ## 🔍 Debugging Configuration
82
+ Canonical `create workspace` and `create project` flows do not currently apply
83
+ all directory-config project defaults. In particular, `addDefaultModules` and
84
+ `skipInstall` are reserved fields and are not automatically executed. Use
85
+ explicit canonical command flags instead:
212
86
 
213
87
  ```bash
214
- # Enable debug mode to see loaded config
215
- npx workspai my-workspace --debug
216
- ```
217
-
218
- Output:
219
- ```
220
- [DEBUG] User config loaded {}
221
- [DEBUG] Workspai config loaded { workspace: { defaultAuthor: 'Team' } }
222
- [DEBUG] Merged config { author: 'Team', pythonVersion: '3.10' }
88
+ npx workspai create workspace platform --profile polyglot --yes
89
+ npx workspai create project fastapi.standard api --skip-install --yes
223
90
  ```
224
91
 
225
- ---
92
+ Config discovery means a file can be loaded by a supported flow; it does not
93
+ mean every command consumes every field. The
94
+ [Command Reference](./commands-reference.md) is authoritative for command flags.
226
95
 
227
- ## 🎯 Common Use Cases
96
+ ## Debugging
228
97
 
229
- ### Recommended Uses:
230
-
231
- 1. **Large Teams**: Standardize settings across developers
232
- 2. **CI/CD**: Automate workspace creation
233
- 3. **Personal Templates**: Always start with specific modules
234
- 4. **Training/Workshops**: Ensure all participants have identical settings
235
-
236
- ### ❌ Not Recommended:
237
-
238
- 1. **One-time Use**: If you're only creating one workspace
239
- 2. **Variable Settings**: If you need different settings each time
240
- 3. **Quick Development**: For rapid testing, interactive prompts are faster
241
-
242
- ---
243
-
244
- ## Additional resources
245
-
246
- - [Example config](../workspai.config.example.cjs)
247
- - [commands-reference.md](./commands-reference.md) — CLI syntax
248
- - [Documentation](https://workspai.dev/docs/config) (external)
249
-
250
- ---
251
-
252
- ## 💡 Tips
253
-
254
- 1. **Config is Optional**: You don't need to create this file
255
- 2. **CLI Overrides**: You can always override config with command-line flags
256
- 3. **Auto-detection**: CLI automatically discovers config files
257
- 4. **Type Safety**: Use TypeScript types for IntelliSense support
258
-
259
- ---
260
-
261
- ## 🔗 Related Commands
98
+ Use `--debug` on the legacy shorthand to inspect loaded and merged configuration:
262
99
 
263
100
  ```bash
264
- # Create workspace with config
265
- npx workspai my-workspace --yes
266
-
267
- # Override config author
268
- npx workspai my-workspace --author "Different Author"
269
-
270
- # Check environment
271
- npx workspai doctor
272
-
273
- # Inspect/set workspace policy (recommended over manual YAML edits)
274
- npx workspai workspace policy show
275
- npx workspai workspace policy set mode strict
276
- npx workspai workspace policy set dependency_sharing_mode shared-runtime-caches
277
- npx workspai workspace policy set rules.enforce_toolchain_lock true
278
-
279
- # List available kits
280
- npx workspai list
101
+ npx workspai my-workspace --debug
281
102
  ```
282
103
 
283
- ---
104
+ A malformed or untrusted executable config fails closed with its path and an
105
+ actionable error.
284
106
 
285
- ## 🛡️ Workspace Policy vs `workspai.config.*`
107
+ ## Workspace policy is separate
286
108
 
287
- - `workspai.config.js|mjs|cjs` defines creation defaults and prompt behavior.
288
- - `rapidkit.config.*` remains supported as a legacy fallback.
289
- - `.workspai/policies.yml` defines runtime governance and enforcement behavior after workspace creation.
290
- - Preferred policy management path:
109
+ Configuration files supply creation defaults. Runtime governance belongs to
110
+ `.workspai/policies.yml` and should normally be managed through:
291
111
 
292
112
  ```bash
293
113
  npx workspai workspace policy show
294
- npx workspai workspace policy set <key> <value>
114
+ npx workspai workspace policy set mode strict
115
+ npx workspai workspace policy set dependency_sharing_mode shared-runtime-caches
295
116
  ```
296
117
 
297
- ---
298
-
299
- **Last updated:** June 2026 · **CLI version:** 0.35.x
118
+ See the [example config](../workspai.config.example.cjs),
119
+ [Creating Workspaces and Projects](./creating-workspaces-and-projects.md), and
120
+ [Command Reference](./commands-reference.md).