code-workspace-zhuiyi 0.1.0-beta.8 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +48 -21
  2. package/README.zh-CN.md +48 -19
  3. package/artifacts/manifest.json +3 -142
  4. package/artifacts/templates/user-guide/en-US.md +35 -11
  5. package/artifacts/templates/user-guide/zh-CN.md +35 -11
  6. package/docs/extension-architecture.zh-CN.md +24 -16
  7. package/docs/extension-development/extension-development-guide.zh-CN.md +394 -0
  8. package/docs/extension-development/nexus-publish.zh-CN.md +353 -0
  9. package/{artifacts/templates/claude/commands/code-workspace → extensions/.system/codew-workspace-guard/1.0.0/assets/claude}/add-projects.md +3 -3
  10. package/{artifacts/templates/codex/skills/code-workspace-add-projects/SKILL.md → extensions/.system/codew-workspace-guard/1.0.0/assets/codew-add-projects.SKILL.md} +4 -4
  11. package/{artifacts/templates/agents/skills/code-workspace-resolve-branch/SKILL.md → extensions/.system/codew-workspace-guard/1.0.0/assets/codew-resolve-branch.SKILL.md} +1 -1
  12. package/extensions/.system/codew-workspace-guard/1.0.0/assets/codex/add-projects-openai.yaml +6 -0
  13. package/extensions/.system/codew-workspace-guard/1.0.0/assets/codex/resolve-branch-openai.yaml +6 -0
  14. package/{artifacts/templates/agents → extensions/.system/codew-workspace-guard/1.0.0/assets/templates}/WORKSPACE_GUARD.md.template +3 -3
  15. package/extensions/.system/codew-workspace-guard/1.0.0/init.js +62 -0
  16. package/extensions/.system/codew-workspace-guard/1.0.0/manifest.json +24 -0
  17. package/extensions/monitor/1.0.0/manifest.json +2 -1
  18. package/extensions/monitor/1.0.0/runtime.js +2 -1
  19. package/extensions/monitor/1.1.0/assets/i18n-icon.svg +1 -0
  20. package/extensions/monitor/1.1.0/assets/logo-vector.svg +30 -0
  21. package/extensions/monitor/1.1.0/assets/request_tip.mp3 +0 -0
  22. package/extensions/monitor/1.1.0/assets/session_finish.mp3 +0 -0
  23. package/extensions/monitor/1.1.0/config-yaml.js +69 -0
  24. package/extensions/monitor/1.1.0/init.js +38 -0
  25. package/extensions/monitor/1.1.0/manifest.json +40 -0
  26. package/{src/monitor/index.js → extensions/monitor/1.1.0/monitor.js} +39 -10
  27. package/extensions/monitor/1.1.0/runtime.js +105 -0
  28. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/SKILL.md +60 -0
  29. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/codex/openai.yaml +4 -0
  30. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/original-specs/ARCHIVE-MANIFEST.md +14 -0
  31. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/original-specs//345/217/214/345/215/201/347/272/242/347/272/277/350/247/204/350/214/203_GLM-OCR.md +288 -0
  32. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/original-specs//347/240/224/345/217/221/350/277/207/347/250/213/345/205/263/351/224/256/347/216/257/350/212/202/345/205/263/346/263/250/347/202/271_GLM-OCR.md +69 -0
  33. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/references/critical-correctness.md +53 -0
  34. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/references/data-performance.md +57 -0
  35. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/references/process-checkpoints.md +73 -0
  36. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/references/release-and-change.md +41 -0
  37. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/assets/references/security.md +107 -0
  38. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/init.js +71 -0
  39. package/extensions/zhuiyi-guangda-coding-spec/1.0.0/manifest.json +29 -0
  40. package/extensions/zhuiyi-jira-issue-fix-summary/1.0.0/assets/SKILL.md +57 -0
  41. package/extensions/zhuiyi-jira-issue-fix-summary/1.0.0/assets/codex/openai.yaml +7 -0
  42. package/extensions/zhuiyi-jira-issue-fix-summary/1.0.0/init.js +62 -0
  43. package/extensions/zhuiyi-jira-issue-fix-summary/1.0.0/manifest.json +36 -0
  44. package/extensions/zhuiyi-jira-mcp/0.1.0/artifacts/claude/server.json +1 -1
  45. package/extensions/zhuiyi-jira-mcp/0.1.0/artifacts/codex/config.toml +1 -1
  46. package/extensions/zhuiyi-jira-mcp/0.1.0/manifest.json +2 -1
  47. package/extensions/zhuiyi-jira-mcp/1.0.0/artifacts/claude/server.json +1 -1
  48. package/extensions/zhuiyi-jira-mcp/1.0.0/artifacts/codex/config.toml +1 -1
  49. package/extensions/zhuiyi-jira-mcp/1.0.0/manifest.json +2 -1
  50. package/extensions/zhuiyi-jira-mcp/1.1.0/artifacts/claude/server.json +21 -0
  51. package/extensions/zhuiyi-jira-mcp/1.1.0/artifacts/codex/config.toml +18 -0
  52. package/extensions/zhuiyi-jira-mcp/1.1.0/artifacts/gitignore +2 -0
  53. package/extensions/zhuiyi-jira-mcp/1.1.0/init.js +54 -0
  54. package/extensions/zhuiyi-jira-mcp/1.1.0/lib/archive.js +200 -0
  55. package/extensions/zhuiyi-jira-mcp/1.1.0/manifest.json +40 -0
  56. package/extensions/zhuiyi-jira-mcp/1.1.0/mcp-launcher.js +69 -0
  57. package/extensions/zhuiyi-jira-mcp/1.1.0/release.json +15 -0
  58. package/extensions/zhuiyi-jira-prd-analysis/1.0.0/assets/SKILL.md +82 -0
  59. package/extensions/zhuiyi-jira-prd-analysis/1.0.0/assets/codex/openai.yaml +7 -0
  60. package/extensions/zhuiyi-jira-prd-analysis/1.0.0/init.js +62 -0
  61. package/extensions/zhuiyi-jira-prd-analysis/1.0.0/manifest.json +36 -0
  62. package/extensions/zhuiyi-jira-task-breakdown/1.0.0/assets/SKILL.md +56 -0
  63. package/extensions/zhuiyi-jira-task-breakdown/1.0.0/assets/codex/openai.yaml +7 -0
  64. package/extensions/zhuiyi-jira-task-breakdown/1.0.0/init.js +62 -0
  65. package/extensions/zhuiyi-jira-task-breakdown/1.0.0/manifest.json +36 -0
  66. package/extensions/zhuiyi-opensvn-mcp/0.1.0/artifacts/claude/server.json +1 -1
  67. package/extensions/zhuiyi-opensvn-mcp/0.1.0/artifacts/codex/config.toml +1 -1
  68. package/extensions/zhuiyi-opensvn-mcp/0.1.0/artifacts/gitignore +2 -0
  69. package/extensions/zhuiyi-opensvn-mcp/0.1.0/init.js +3 -0
  70. package/extensions/zhuiyi-opensvn-mcp/0.1.0/manifest.json +10 -2
  71. package/extensions/zhuiyi-opensvn-mcp/0.2.0/artifacts/claude/server.json +12 -0
  72. package/extensions/zhuiyi-opensvn-mcp/0.2.0/artifacts/codex/config.toml +9 -0
  73. package/extensions/zhuiyi-opensvn-mcp/0.2.0/artifacts/gitignore +2 -0
  74. package/extensions/zhuiyi-opensvn-mcp/0.2.0/init.js +53 -0
  75. package/extensions/zhuiyi-opensvn-mcp/0.2.0/lib/archive.js +200 -0
  76. package/extensions/zhuiyi-opensvn-mcp/0.2.0/manifest.json +40 -0
  77. package/extensions/zhuiyi-opensvn-mcp/0.2.0/mcp-launcher.js +69 -0
  78. package/extensions/zhuiyi-opensvn-mcp/0.2.0/release.json +15 -0
  79. package/package.json +8 -4
  80. package/schemas/extension-manifest-v3.json +8 -3
  81. package/schemas/extension-npm-transport-envelope-v1.json +53 -0
  82. package/spec/extension/v1/specification.en-US.md +12 -1
  83. package/spec/extension/v1/specification.zh-CN.md +11 -1
  84. package/src/cli/commands/extension.js +243 -15
  85. package/src/cli/commands/init.js +22 -16
  86. package/src/cli/commands/update.js +3 -6
  87. package/src/cli/commands/workspace.js +0 -1
  88. package/src/cli/parser.js +7 -0
  89. package/src/cli/registry.js +13 -6
  90. package/src/cli.js +1 -7
  91. package/src/core/assets.js +7 -0
  92. package/src/core/config.js +6 -43
  93. package/src/core/doctor.js +2 -8
  94. package/src/core/extension-artifacts.js +13 -2
  95. package/src/core/extension-package-providers.js +38 -0
  96. package/src/core/extension-package.js +727 -0
  97. package/src/core/extension-registry-lifecycle.js +613 -0
  98. package/src/core/extension-runtime.js +53 -2
  99. package/src/core/extension-store.js +95 -24
  100. package/src/core/extensions.js +141 -38
  101. package/src/core/initializer.js +3 -20
  102. package/src/core/managed-files.js +7 -12
  103. package/src/core/nexus-extension-provider.js +800 -0
  104. package/src/index.js +8 -4
  105. package/src/init/plan.js +1 -2
  106. package/src/init/ui.js +9 -1
  107. package/src/init/wizard.js +5 -12
  108. package/artifacts/templates/agents/skills/code-workspace-resolve-branch/evals/evals.json +0 -45
  109. package/artifacts/templates/codex/hooks.json +0 -86
  110. package/src/cli/commands/monitor.js +0 -73
  111. /package/{src/monitor → extensions/monitor/1.1.0}/i18n/index.js +0 -0
  112. /package/{src/monitor → extensions/monitor/1.1.0}/i18n/locales/en-US.js +0 -0
  113. /package/{src/monitor → extensions/monitor/1.1.0}/i18n/locales/zh-CN.js +0 -0
  114. /package/{src/monitor → extensions/monitor/1.1.0}/page.js +0 -0
package/README.md CHANGED
@@ -33,21 +33,21 @@ code-workspace init . \
33
33
  --yes
34
34
  ```
35
35
 
36
- Use `--tools claude`, `--tools codex`, or `--tools none` to override the default tool selection. Codex monitoring is enabled by default when Codex is selected; use `--no-monitor` to disable it.
36
+ Use `--tools claude`, `--tools codex`, or `--tools none` to override the default tool selection. Monitoring is not enabled implicitly; install the `monitor` extension with `--extensions monitor` or through the interactive extension picker.
37
37
 
38
38
  Initialization writes only Workspace-owned state and integrations:
39
39
 
40
- - `.code-workspace/config.yaml`, its referenced project configuration file (default: `.code-workspace/config-projects.yaml`), and `.code-workspace/state.json`
40
+ - `.codew/config.yaml`, its referenced project configuration file (default: `.codew/config-projects.yaml`), and `.codew/state.json`
41
41
  - `USER_GUIDE.md`
42
42
  - `CLAUDE.md` and/or `AGENTS.md`
43
43
  - Workspace-specific commands and skills whose names start with `code-workspace-` or use the `/code-workspace` namespace
44
- - `.codex/hooks.json` when monitoring is enabled
44
+ - `.codex/hooks.json` is written by the `monitor` extension when that extension is installed
45
45
 
46
46
  It does not create `openspec/`, install native `/opsx` commands, or install native `openspec-*` skills.
47
47
 
48
48
  ### Experimental built-in extensions
49
49
 
50
- `init` can install integrations from the versioned `extensions/` repository shipped inside this npm package. Select extension names interactively, or pass a comma-separated name list non-interactively. The dedicated install command accepts one or more names; without names it opens the built-in extension multiselect, where ESC exits without changes:
50
+ `init` can install integrations from the versioned `extensions/` repository shipped inside this npm package. Select extension names interactively, or pass a comma-separated name list non-interactively. The dedicated install command accepts one or more names; without names it opens the built-in extension multiselect with no extensions selected, where each choice shows its name and a short description. ESC exits without changes:
51
51
 
52
52
  ```bash
53
53
  codew init . --extensions zhuiyi-jira-mcp --yes
@@ -56,20 +56,46 @@ codew init . --extensions none --yes
56
56
  codew extension install
57
57
  codew extension install zhuiyi-jira-mcp --yes
58
58
  codew extension install zhuiyi-opensvn-mcp --yes
59
+ codew extension install zhuiyi-jira-prd-analysis --yes
60
+ codew extension install zhuiyi-jira-task-breakdown --yes
61
+ codew extension install zhuiyi-jira-issue-fix-summary --yes
62
+ codew extension install zhuiyi-guangda-coding-spec --yes
59
63
  codew extension uninstall zhuiyi-jira-mcp --yes
64
+ codew extension uninstall zhuiyi-jira-prd-analysis --yes
65
+ codew extension search jira --json
66
+ codew extension info zhuiyi-jira-mcp --json
67
+ codew extension install zhuiyi-jira-mcp --version 1.1.0 --yes
68
+ codew extension install zhuiyi-jira-mcp --offline --version 1.1.0 --yes
69
+ codew extension upgrade zhuiyi-jira-mcp --yes
60
70
  ```
61
71
 
62
72
  The Workspace operation lock shared by init, extension install, and extension uninstall is configured in the Code Workspace project's `.env` (not in the target Workspace). `CODE_WORKSPACE_INIT_LOCK_UPDATE_MS` defaults to `5000`, and `CODE_WORKSPACE_INIT_LOCK_STALE_MS` defaults to `30000`; process environment variables take precedence. See `.env.example` for the project configuration names.
63
73
 
64
- Users select names, not versions; `zhuiyi-jira-mcp@0.1.0` is intentionally rejected. Code Workspace resolves the highest extension SemVer implemented against a Host-supported Extension Spec before confirmation. A new non-interactive Workspace installs no extensions unless `--extensions` is provided. Re-initializing an existing Workspace defaults to its installed extensions and upgrades them when a newer supported built-in version exists. `none` skips extension work and does not uninstall existing artifacts.
74
+ Users select names, not `name@version` positions. A default install resolves the highest compatible stable, non-deprecated version across the built-in catalog, the configured `@codew-ext` Nexus Registry, and the verified local Store. A single-target install may instead pass an exact SemVer with `--version`; prereleases require that exact form, and a deprecated version additionally requires `--allow-deprecated`. `--offline` disables Registry access and resolves only local facts. `codew-workspace-guard` is the system extension containing the Workspace Guard, `codew-add-projects`, and `codew-resolve-branch`: `init` installs or upgrades it automatically, it is hidden from extension selection, and it cannot be managed through `extension install/uninstall/upgrade`. A new non-interactive Workspace installs no ordinary extensions unless `--extensions` is provided; `init` does not implicitly query Nexus. `none` skips ordinary extension work and does not uninstall existing artifacts or disable system extension processing.
65
75
 
66
- `extension install` does not rerun core Workspace initialization. In JSON, non-TTY, or `--yes` mode, at least one extension name is required. Multiple names are installed in order with one confirmation boundary and independent transactions; any failure makes the install command fail while later extensions still run.
76
+ `extension install` does not rerun core Workspace initialization. In JSON, non-TTY, or `--yes` mode, at least one extension name is required. Multiple names are installed in order with one confirmation boundary and independent transactions; any failure makes the install command fail while later extensions still run. When the Registry is configured and a default resolution cannot obtain the remote metadata, installation fails before Workspace writes instead of silently using an older built-in package.
77
+
78
+ `extension search` and `extension info` are Workspace-independent Registry reads. `extension upgrade` accepts one or more installed ordinary extensions, freezes the default target for each, confirms once, and reuses the same per-extension transaction and rollback as install. An already-current target is skipped.
79
+
80
+ `extension pack` creates a Nexus/npm-ready `codew-ext-<extension-id>-<version>.tgz` from an extension package directory:
81
+
82
+ ```bash
83
+ code-workspace extension pack extensions/zhuiyi-jira-mcp/1.1.0 --output dist/extensions --json
84
+ ```
85
+
86
+ The command is Workspace-independent, creates a missing output directory recursively, never executes extension or npm lifecycle code, and reopens the generated tarball to verify the npm envelope, manifest, entry digest, and unchanged `packageSha256` before atomically committing it. Existing outputs are never overwritten. It does not publish or store Registry credentials; CI can pass the verified tarball to `npm publish --registry`.
67
87
 
68
88
  The bundled `zhuiyi-jira-mcp` and `zhuiyi-opensvn-mcp` extensions configure the Jira and OpenSVN MCP services for the selected Agent tools. They do not create an `openspec/` directory or install native OpenSpec commands.
69
89
 
90
+ The bundled `zhuiyi-jira-prd-analysis`, `zhuiyi-jira-task-breakdown`, and `zhuiyi-jira-issue-fix-summary` extensions install optional Codex and Claude Code skill files. They are independent extensions, are not installed by core `init` or `update`, and can be uninstalled separately. Install `zhuiyi-jira-mcp` separately when they need Jira access.
91
+
92
+ The bundled `zhuiyi-guangda-coding-spec` extension installs a Codex and Claude Code skill that applies the China Everbright Bank research, security, testing, and release rules to Guangda customer projects. It is independent of core `init` and `update`, can be uninstalled separately, and requires no MCP service.
93
+
94
+ The MCP runtime packages are not copied into the Workspace. Only their configuration is stored there; a launcher prepares and caches each package on demand in the user-level Extension Store.
95
+
70
96
  `zhuiyi-opensvn-mcp` accesses OpenSVN static resources through `opssvn.in.wezhuiyi.com`. Its bundled configuration sets `SVN_OUTPUT_DIR` to `.mcp-cache-opensvn`, requires `SVN_AUTHORIZATION`, and defaults `SVN_MAX_RESOURCES` to `200`; credentials are not stored in the extension package and should be supplied through local configuration or the runtime environment.
71
97
 
72
- Extension entries run in separate Node processes and generate files in temporary staging directories. The host rejects undeclared, missing, symbolic-link, non-file, path-escaping, conflicting, and checksum-mismatched artifacts before transactionally installing them. Per-Workspace state is stored in `.code-workspace/ext-manifest.json`. A failed extension is reported as a warning and does not roll back successful core initialization or stop later extensions; a failed upgrade restores and retains the previous installed version.
98
+ Extension entries run in separate Node processes and generate files in temporary staging directories. The host rejects undeclared, missing, symbolic-link, non-file, path-escaping, conflicting, and checksum-mismatched artifacts before transactionally installing them. Per-Workspace state is stored in `.codew/ext-manifest.json`. A failed extension is reported as a warning and does not roll back successful core initialization or stop later extensions; a failed upgrade restores and retains the previous installed version.
73
99
 
74
100
  Extensions may own complete files or declare Host-managed abstract Hooks. Codex and Claude
75
101
  adaptors render those declarations into each provider's native configuration and dynamically plug
@@ -78,7 +104,7 @@ verified by Code Workspace; extensions never patch the real Workspace directly.
78
104
  recorded installed state and does not execute extension code. Unknown changes to extension-owned
79
105
  files or contributions stop the operation instead of being overwritten.
80
106
 
81
- This is fault isolation, not a malicious-code security sandbox. The experimental release trusts only extension code shipped with Code Workspace; network sources, external extension directories, dependencies, arbitrary patches, force uninstall, disable commands, and automatic extension updates through `codew update` are not supported. The developer contract is in `docs/extensions.md`.
107
+ This is fault isolation, not a malicious-code security sandbox. The experimental release trusts extension code shipped with Code Workspace or downloaded from the configured company Nexus after archive, identity, manifest, entry, runtime, and package-digest verification. External extension directories, dependencies, arbitrary patches, force uninstall, disable commands, and automatic extension updates through `codew update` are not supported. The developer contract is in `docs/extensions.md`; a step-by-step guide is in `docs/extension-development/extension-development-guide.zh-CN.md`.
82
108
 
83
109
  ## Register projects
84
110
 
@@ -91,10 +117,10 @@ code-workspace project inspect /absolute/path/to/project --json
91
117
  Claude Code users can invoke:
92
118
 
93
119
  ```text
94
- /code-workspace:add-projects /absolute/path/to/project-a /absolute/path/to/project-b
120
+ /codew:add-projects /absolute/path/to/project-a /absolute/path/to/project-b
95
121
  ```
96
122
 
97
- Codex users can invoke `$code-workspace-add-projects` with the same explicit paths. For low-level automation, pass complete project records through stdin:
123
+ Codex users can invoke `$codew-add-projects` with the same explicit paths. For low-level automation, pass complete project records through stdin:
98
124
 
99
125
  ```bash
100
126
  cat projects.json | code-workspace project add --stdin --yes --json
@@ -104,10 +130,10 @@ cat projects.json | code-workspace project add --stdin --yes --json
104
130
 
105
131
  The registry stores each project's name, real location, registered branch, type, and context. The registered branch is the Code Workspace expected state; the actual branch is observed from the selected Git worktree. Workspace never guesses a path from a conversation or automatically decides which branch is authoritative.
106
132
 
107
- Project registration is always stored in a separate file in the `.code-workspace` directory. Initialization uses `config-projects.yaml` by default, while `projects.ref` may name any safe regular filename in that directory:
133
+ Project registration is always stored in a separate file in the `.codew` directory. Initialization uses `config-projects.yaml` by default, while `projects.ref` may name any safe regular filename in that directory:
108
134
 
109
135
  ```yaml
110
- # .code-workspace/config.yaml
136
+ # .codew/config.yaml
111
137
  projects:
112
138
  ref: config-projects.yaml
113
139
  ```
@@ -115,7 +141,7 @@ projects:
115
141
  The referenced file uses this format:
116
142
 
117
143
  ```yaml
118
- # .code-workspace/config-projects.yaml
144
+ # .codew/config-projects.yaml
119
145
  schemaVersion: 1
120
146
  projects:
121
147
  - name: payments
@@ -126,9 +152,9 @@ projects:
126
152
  Service ownership and navigation context.
127
153
  ```
128
154
 
129
- `projects.ref` is resolved relative to `config.yaml`. It must be one safe regular filename in the same `.code-workspace` directory; URLs, globs, absolute paths, path traversal, and inline `projects` arrays are not supported. Existing project command arguments and behavior remain compatible, `project add` additionally supports `--stdin`, and project data is still read from and written to the referenced file. The `.code-workspace/` directory is ignored by default, so Git history for this local registry requires an explicit repository policy.
155
+ `projects.ref` is resolved relative to `config.yaml`. It must be one safe regular filename in the same `.codew` directory; URLs, globs, absolute paths, path traversal, and inline `projects` arrays are not supported. Existing project command arguments and behavior remain compatible, `project add` additionally supports `--stdin`, and project data is still read from and written to the referenced file. The `.codew/` directory is ignored by default, so Git history for this local registry requires an explicit repository policy.
130
156
 
131
- For example, `ref: team-projects.yaml` makes the project registry `.code-workspace/team-projects.yaml`; the default remains `config-projects.yaml`.
157
+ For example, `ref: team-projects.yaml` makes the project registry `.codew/team-projects.yaml`; the default remains `config-projects.yaml`.
132
158
 
133
159
  ## Daily commands
134
160
 
@@ -154,10 +180,10 @@ The two reconciliation directions are deliberately separate:
154
180
 
155
181
  Both commands detect plan drift and verify postconditions. `project branch update-latest` is the separate, opt-in path for projects with `updateLatest: true`; it only fetches the configured upstream and fast-forwards a clean matching branch. Code Workspace never creates or downloads a branch and never performs stash, reset, rebase, non-fast-forward merge, production-code edits, or conflict resolution.
156
182
 
157
- Users may manually set the optional project policy in the file named by `projects.ref` (default: `.code-workspace/config-projects.yaml`):
183
+ Users may manually set the optional project policy in the file named by `projects.ref` (default: `.codew/config-projects.yaml`):
158
184
 
159
185
  ```yaml
160
- # .code-workspace/config-projects.yaml
186
+ # .codew/config-projects.yaml
161
187
  schemaVersion: 1
162
188
  projects:
163
189
  - name: payments
@@ -185,13 +211,14 @@ code-workspace language --json
185
211
 
186
212
  ## Monitor
187
213
 
214
+ Monitor ships as the built-in `monitor` extension. Install it into a workspace and run its dashboard through the generic extension runtime:
215
+
188
216
  ```bash
189
- code-workspace monitor --port 3211
217
+ code-workspace extension install monitor --yes
218
+ code-workspace ext monitor serve --port 3211
190
219
  ```
191
220
 
192
- The monitor binds to loopback, combines events from multiple initialized workspaces, and keeps hook reporting failure-open. Review and trust project hooks in Codex before relying on reports.
193
-
194
- ## Completion
221
+ The monitor binds to loopback, combines events from multiple initialized workspaces, and keeps hook reporting (`codew ext monitor report`) failure-open. Review and trust project hooks in Codex before relying on reports.
195
222
 
196
223
  ```bash
197
224
  code-workspace completion --shell zsh
package/README.zh-CN.md CHANGED
@@ -33,21 +33,21 @@ code-workspace init . \
33
33
  --yes
34
34
  ```
35
35
 
36
- 可用 `--tools claude`、`--tools codex` 或 `--tools none` 覆盖默认工具选择。选择 Codex 时默认启用监控;可传 `--no-monitor` 关闭。
36
+ 可用 `--tools claude`、`--tools codex` 或 `--tools none` 覆盖默认工具选择。监控不会隐式启用;请通过 `--extensions monitor` 或交互式扩展选择安装 `monitor` 扩展。
37
37
 
38
38
  初始化只写入 Workspace 自有状态和集成:
39
39
 
40
- - `.code-workspace/config.yaml`、其引用的项目配置文件(默认:`.code-workspace/config-projects.yaml`)与 `.code-workspace/state.json`
40
+ - `.codew/config.yaml`、其引用的项目配置文件(默认:`.codew/config-projects.yaml`)与 `.codew/state.json`
41
41
  - `USER_GUIDE.md`
42
42
  - `CLAUDE.md` 和/或 `AGENTS.md`
43
43
  - 名称以 `code-workspace-` 开头或使用 `/code-workspace` 命名空间的 Workspace 专用命令与 Skill
44
- - 启用监控时的 `.codex/hooks.json`
44
+ - 安装 `monitor` 扩展时由扩展写入的 `.codex/hooks.json`
45
45
 
46
46
  它不会创建 `openspec/`,不会安装原生 `/opsx` 命令,也不会安装原生 `openspec-*` Skill。
47
47
 
48
48
  ### 试验性内置扩展
49
49
 
50
- `init` 可以从 npm 包内随附的版本化 `extensions/` 仓库安装集成。交互模式按扩展名多选;非交互模式传入逗号分隔的扩展名。独立安装命令接受一个或多个扩展名;不传名称时打开内置扩展多选,按 ESC 可无修改退出:
50
+ `init` 可以从 npm 包内随附的版本化 `extensions/` 仓库安装集成。交互模式按扩展名多选;非交互模式传入逗号分隔的扩展名。独立安装命令接受一个或多个扩展名;不传名称时打开内置扩展多选,每个选项显示名称和简短描述,且默认不勾选任何扩展,按 ESC 可无修改退出:
51
51
 
52
52
  ```bash
53
53
  codew init . --extensions zhuiyi-jira-mcp --yes
@@ -56,27 +56,53 @@ codew init . --extensions none --yes
56
56
  codew extension install
57
57
  codew extension install zhuiyi-jira-mcp --yes
58
58
  codew extension install zhuiyi-opensvn-mcp --yes
59
+ codew extension install zhuiyi-jira-prd-analysis --yes
60
+ codew extension install zhuiyi-jira-task-breakdown --yes
61
+ codew extension install zhuiyi-jira-issue-fix-summary --yes
62
+ codew extension install zhuiyi-guangda-coding-spec --yes
59
63
  codew extension uninstall zhuiyi-jira-mcp --yes
64
+ codew extension uninstall zhuiyi-jira-prd-analysis --yes
65
+ codew extension search jira --json
66
+ codew extension info zhuiyi-jira-mcp --json
67
+ codew extension install zhuiyi-jira-mcp --version 1.1.0 --yes
68
+ codew extension install zhuiyi-jira-mcp --offline --version 1.1.0 --yes
69
+ codew extension upgrade zhuiyi-jira-mcp --yes
60
70
  ```
61
71
 
62
72
  `init`、扩展安装和扩展卸载共享的 Workspace 操作锁配置在 Code Workspace 项目自身的 `.env` 中(不在目标 Workspace 中)。`CODE_WORKSPACE_INIT_LOCK_UPDATE_MS` 默认值为 `5000`,`CODE_WORKSPACE_INIT_LOCK_STALE_MS` 默认值为 `30000`;进程环境变量优先于 `.env`。配置项名称见 `.env.example`。
63
73
 
64
- 用户只选择扩展名,不能选择版本;`zhuiyi-jira-mcp@0.1.0` 会被明确拒绝。Code Workspace 在确认前,从 Host 明确支持的 Extension Spec 实现中解析最高扩展 SemVer。新 Workspace 非交互初始化时,未传 `--extensions` 就不安装扩展;已有 Workspace 重新初始化时,默认选择已安装扩展,并在存在更高受支持内置版本时升级。`none` 只跳过本次扩展初始化,不会卸载已有制品。
74
+ 用户选择扩展名,不使用 `name@version` 位置语法。默认安装会在内置目录、已配置的 `@codew-ext` Nexus Registry 和已验证本地 Store 中选择最高的兼容、稳定、非 deprecated 版本。单目标安装可用 `--version` 指定精确 SemVer; prerelease 必须通过精确版本请求,deprecated 版本还必须加 `--allow-deprecated`。`--offline` 禁止 Registry 访问,只基于本地事实解析。`codew-workspace-guard` 是包含 Workspace Guard、`codew-add-projects` 和 `codew-resolve-branch` 的系统扩展,由 `init` 自动安装或升级,不出现在扩展选择列表中,也不能通过 `extension install/uninstall/upgrade` 手动管理。新 Workspace 非交互初始化时,未传 `--extensions` 就不安装普通扩展;`init` 不会隐式查询 Nexus。`none` 只跳过本次普通扩展初始化,不会卸载已有制品,也不会取消系统扩展处理。
65
75
 
66
- `extension install` 不会重新执行 Workspace 核心初始化。在 JSON、非 TTY 或 `--yes` 模式下,必须至少提供一个扩展名。多个名称按顺序安装,只确认一次且各自使用独立事务;任一扩展失败会使安装命令失败,但后续扩展仍会继续执行。
76
+ `extension install` 不会重新执行 Workspace 核心初始化。在 JSON、非 TTY 或 `--yes` 模式下,必须至少提供一个扩展名。多个名称按顺序安装,只确认一次且各自使用独立事务;任一扩展失败会使安装命令失败,但后续扩展仍会继续执行。Registry 已配置且默认解析无法取得远端 metadata 时,安装会在 Workspace 写入前失败,不会静默选择旧内置包。
77
+
78
+ `extension search` 和 `extension info` 是与 Workspace 无关的 Registry 读取命令。`extension upgrade` 接受一个或多个已安装普通扩展,逐个冻结默认目标,统一确认后复用安装的逐扩展事务和回滚;已是当前版本的目标返回 skipped。
79
+
80
+ `extension pack` 可以从扩展包目录生成可交给 Nexus/npm 的 `codew-ext-<extension-id>-<version>.tgz`:
81
+
82
+ ```bash
83
+ code-workspace extension pack extensions/zhuiyi-jira-mcp/1.1.0 --output dist/extensions --json
84
+ ```
85
+
86
+ 该命令与 Workspace 无关,会在输出目录缺失时递归创建,不执行扩展入口或任何 npm 生命周期脚本;生成 tarball 后会重新读取并验证 npm envelope、manifest、入口摘要和未变化的 `packageSha256`,再原子提交。目标文件已存在时拒绝覆盖。命令本身不发布、不保存 Registry 凭证;CI 可将已验证的 tarball 交给 `npm publish --registry`。
67
87
 
68
88
  当前随包提供的内置扩展包括 `zhuiyi-jira-mcp` 和 `zhuiyi-opensvn-mcp`,分别用于为选中的 Agent 工具配置 Jira MCP 与 OpenSVN MCP 服务;它们不会创建 `openspec/` 目录,也不会安装 OpenSpec 原生命令。
69
89
 
90
+ 随包还提供 `zhuiyi-jira-prd-analysis`、`zhuiyi-jira-task-breakdown` 和 `zhuiyi-jira-issue-fix-summary` 三个 Skill 扩展,用于安装可选的 Codex 与 Claude Code Skill 文件。它们不随核心 `init` 或 `update` 安装,可以独立安装和卸载;需要 Jira 访问时另行安装 `zhuiyi-jira-mcp`。
91
+
92
+ 随包还提供 `zhuiyi-guangda-coding-spec` Skill 扩展,用于在光大客户项目按风险域落实研发、安全、测试与投产规范。它同样不随核心 `init` 或 `update` 安装,可以独立安装和卸载,且不依赖任何 MCP 服务。
93
+
94
+ 两个 MCP 的运行包不会复制到 Workspace;Workspace 只保存 MCP 配置,运行包由用户级 Extension Store 中的 launcher 按需缓存。
95
+
70
96
  `zhuiyi-opensvn-mcp` 使用 `opssvn.in.wezhuiyi.com` 访问 OpenSVN 静态资源。内置配置将 `SVN_OUTPUT_DIR` 设为 `.mcp-cache-opensvn`,运行时必须提供 `SVN_AUTHORIZATION`,`SVN_MAX_RESOURCES` 默认为 `200`;认证信息不会写入扩展包,应通过本地配置或运行环境注入。
71
97
 
72
- 扩展入口在独立 Node 进程中运行,只向临时 staging 目录生成文件。Host 会在事务安装前拒绝未声明、缺失、符号链接、非文件、路径逃逸、目标冲突和 hash 不匹配的制品。Workspace 状态存放在 `.code-workspace/ext-manifest.json`。扩展失败以 warning 报告,不回滚已成功的核心初始化,也不阻止后续扩展;升级失败会恢复并保留旧的已安装版本。
98
+ 扩展入口在独立 Node 进程中运行,只向临时 staging 目录生成文件。Host 会在事务安装前拒绝未声明、缺失、符号链接、非文件、路径逃逸、目标冲突和 hash 不匹配的制品。Workspace 状态存放在 `.codew/ext-manifest.json`。扩展失败以 warning 报告,不回滚已成功的核心初始化,也不阻止后续扩展;升级失败会恢复并保留旧的已安装版本。
73
99
 
74
100
  扩展可以独占完整文件,也可以声明由 Host 管理的抽象 Hook。Host 通过 Codex/Claude adaptor
75
101
  把声明转换为各自的原生配置,并在扩展安装、升级和卸载时动态插拔;共享目标由 Code
76
102
  Workspace 合成和验证,扩展不会直接 patch 真实 Workspace。卸载只使用已安装状态,不执行
77
103
  扩展代码;扩展所有的文件或贡献存在未知修改时会拒绝覆盖或删除。
78
104
 
79
- 这是故障隔离,不是恶意代码安全沙箱。试验版本只信任随 Code Workspace 发布的扩展代码;暂不支持网络源、外部扩展目录、扩展依赖、任意 patch、强制卸载、禁用命令,也不会通过 `codew update` 自动更新扩展。开发契约见 `docs/extensions.zh-CN.md`。
105
+ 这是故障隔离,不是恶意代码安全沙箱。试验版本只信任随 Code Workspace 发布的扩展代码,或从已配置公司 Nexus 下载并通过归档、身份、manifest、入口、runtime 和 package digest 验证的扩展包。外部扩展目录、扩展依赖、任意 patch、强制卸载、禁用命令和通过 `codew update` 自动更新扩展仍不支持。开发契约见 `docs/extensions.zh-CN.md`;从目录结构到打包发布的完整流程见 `docs/extension-development/extension-development-guide.zh-CN.md`。
80
106
 
81
107
  ## 注册项目
82
108
 
@@ -89,10 +115,10 @@ code-workspace project inspect /absolute/path/to/project --json
89
115
  Claude Code 用户可显式调用:
90
116
 
91
117
  ```text
92
- /code-workspace:add-projects /absolute/path/to/project-a /absolute/path/to/project-b
118
+ /codew:add-projects /absolute/path/to/project-a /absolute/path/to/project-b
93
119
  ```
94
120
 
95
- Codex 用户可对相同的显式路径调用 `$code-workspace-add-projects`。底层自动化可通过 stdin 一次传入完整项目记录:
121
+ Codex 用户可对相同的显式路径调用 `$codew-add-projects`。底层自动化可通过 stdin 一次传入完整项目记录:
96
122
 
97
123
  ```bash
98
124
  cat projects.json | code-workspace project add --stdin --yes --json
@@ -102,10 +128,10 @@ cat projects.json | code-workspace project add --stdin --yes --json
102
128
 
103
129
  注册表保存项目名称、真实路径、注册分支、类型和上下文。注册分支是 Code Workspace 的期望状态,实际分支是从选中 Git worktree 观测到的状态。Workspace 不会根据对话猜测路径,也不会自动判断哪一侧分支更权威。
104
130
 
105
- 项目注册配置始终独立保存于 `.code-workspace` 目录下的单独文件。初始化默认使用 `config-projects.yaml`,但 `projects.ref` 可以引用该目录下任意安全的普通文件名:
131
+ 项目注册配置始终独立保存于 `.codew` 目录下的单独文件。初始化默认使用 `config-projects.yaml`,但 `projects.ref` 可以引用该目录下任意安全的普通文件名:
106
132
 
107
133
  ```yaml
108
- # .code-workspace/config.yaml
134
+ # .codew/config.yaml
109
135
  projects:
110
136
  ref: config-projects.yaml
111
137
  ```
@@ -113,7 +139,7 @@ projects:
113
139
  引用文件使用以下格式:
114
140
 
115
141
  ```yaml
116
- # .code-workspace/config-projects.yaml
142
+ # .codew/config-projects.yaml
117
143
  schemaVersion: 1
118
144
  projects:
119
145
  - name: payments
@@ -124,9 +150,9 @@ projects:
124
150
  服务职责和代码导航上下文。
125
151
  ```
126
152
 
127
- `projects.ref` 相对于 `config.yaml` 解析,必须是同一 `.code-workspace` 目录下的安全普通文件名。不支持 URL、glob、绝对路径、路径逃逸或内联 `projects` 数组。项目命令的现有参数和行为保持兼容,`project add` 额外支持 `--stdin`;项目数据仍只读取和写入引用文件。`.code-workspace/` 默认被忽略;如需 Git 历史,需要显式制定仓库策略。
153
+ `projects.ref` 相对于 `config.yaml` 解析,必须是同一 `.codew` 目录下的安全普通文件名。不支持 URL、glob、绝对路径、路径逃逸或内联 `projects` 数组。项目命令的现有参数和行为保持兼容,`project add` 额外支持 `--stdin`;项目数据仍只读取和写入引用文件。`.codew/` 默认被忽略;如需 Git 历史,需要显式制定仓库策略。
128
154
 
129
- 例如,`ref: team-projects.yaml` 会将项目注册表放在 `.code-workspace/team-projects.yaml`;默认名称仍为 `config-projects.yaml`。
155
+ 例如,`ref: team-projects.yaml` 会将项目注册表放在 `.codew/team-projects.yaml`;默认名称仍为 `config-projects.yaml`。
130
156
 
131
157
  ## 日常命令
132
158
 
@@ -152,10 +178,10 @@ code-workspace doctor --json
152
178
 
153
179
  两条命令都会检查计划漂移并验证后置条件。`project branch update-latest` 是独立的显式配置路径:仅当项目 `updateLatest: true` 时,才对干净且分支一致的 worktree fetch upstream 并 fast-forward。Code Workspace 不会创建或下载分支,也不会执行 stash、reset、rebase、非 fast-forward merge、生产代码编辑或冲突处理。
154
180
 
155
- 用户可以手动在 `projects.ref` 指定的文件(默认:`.code-workspace/config-projects.yaml`)中设置项目策略:
181
+ 用户可以手动在 `projects.ref` 指定的文件(默认:`.codew/config-projects.yaml`)中设置项目策略:
156
182
 
157
183
  ```yaml
158
- # .code-workspace/config-projects.yaml
184
+ # .codew/config-projects.yaml
159
185
  schemaVersion: 1
160
186
  projects:
161
187
  - name: payments
@@ -183,11 +209,14 @@ code-workspace language --json
183
209
 
184
210
  ## 监控
185
211
 
212
+ 监控以内置 `monitor` 扩展的形式提供。先在 Workspace 中安装扩展,再通过通用扩展运行时启动面板:
213
+
186
214
  ```bash
187
- code-workspace monitor --port 3211
215
+ code-workspace extension install monitor --yes
216
+ code-workspace ext monitor serve --port 3211
188
217
  ```
189
218
 
190
- 监控服务仅绑定 loopback,可汇总多个已初始化工作区的事件;hook 上报失败不会阻断 Agent。依赖监控前,请在 Codex 中检查并信任项目 hook。
219
+ 监控服务仅绑定 loopback,可汇总多个已初始化工作区的事件;hook 上报(`codew ext monitor report`)失败不会阻断 Agent。依赖监控前,请在 Codex 中检查并信任项目 hook。
191
220
 
192
221
  ## 命令补全
193
222
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "releaseVersion": "0.1.0-beta.8",
3
+ "releaseVersion": "1.0.0-beta.1",
4
4
  "requirements": {
5
5
  "node": ">=20.19.0"
6
6
  },
@@ -13,13 +13,13 @@
13
13
  "id": "workspace-user-guide-en-US",
14
14
  "kind": "asset",
15
15
  "path": "templates/user-guide/en-US.md",
16
- "sha256": "919217e7d7a1c59775f13803a1bf7645b48c01ba53bbb2cea9d666022c7ce7fc"
16
+ "sha256": "7babab78319aa76329e159753d7110a8bbc8a5b5f349eef9a7779e6b4172a6af"
17
17
  },
18
18
  {
19
19
  "id": "workspace-user-guide-zh-CN",
20
20
  "kind": "asset",
21
21
  "path": "templates/user-guide/zh-CN.md",
22
- "sha256": "c41dd91cfeef475b48785f19253e1213fe14b3208b12c9dfd3e7aa7dad13a4a7"
22
+ "sha256": "aca3fc5997adc41bc44a64e0c3d7aed9470e343087da40303dad1e39f6cdbffb"
23
23
  }
24
24
  ],
25
25
  "managedFiles": [
@@ -39,145 +39,6 @@
39
39
  "provenance": {
40
40
  "kind": "template"
41
41
  }
42
- },
43
- {
44
- "id": "workspace-claude-instructions",
45
- "target": "CLAUDE.md",
46
- "tools": [
47
- "claude"
48
- ],
49
- "allowMissing": true,
50
- "desired": {
51
- "source": "templates/agents/WORKSPACE_GUARD.md.template",
52
- "sha256": "bddb8e2ee25b7a63614b4297453e5803d2740fc475d97f5d8489dbaf17380c2c"
53
- },
54
- "render": {
55
- "variables": [
56
- "ADD_PROJECTS_INVOCATION"
57
- ],
58
- "values": {
59
- "ADD_PROJECTS_INVOCATION": "/code-workspace:add-projects /absolute/path/to/project"
60
- }
61
- },
62
- "provenance": {
63
- "kind": "template"
64
- }
65
- },
66
- {
67
- "id": "workspace-codex-instructions",
68
- "target": "AGENTS.md",
69
- "tools": [
70
- "codex"
71
- ],
72
- "allowMissing": true,
73
- "desired": {
74
- "source": "templates/agents/WORKSPACE_GUARD.md.template",
75
- "sha256": "bddb8e2ee25b7a63614b4297453e5803d2740fc475d97f5d8489dbaf17380c2c"
76
- },
77
- "render": {
78
- "variables": [
79
- "ADD_PROJECTS_INVOCATION"
80
- ],
81
- "values": {
82
- "ADD_PROJECTS_INVOCATION": "$code-workspace-add-projects /absolute/path/to/project"
83
- }
84
- },
85
- "provenance": {
86
- "kind": "template"
87
- }
88
- },
89
- {
90
- "id": "workspace-codex-monitor-hooks",
91
- "target": ".codex/hooks.json",
92
- "tools": [
93
- "codex"
94
- ],
95
- "capabilities": [
96
- "monitor"
97
- ],
98
- "allowMissing": true,
99
- "desired": {
100
- "source": "templates/codex/hooks.json",
101
- "sha256": "ecba346e0ce73d931802615dd798b952f1d0afabef3c67d7d1ee21f81b133b46"
102
- },
103
- "provenance": {
104
- "kind": "template"
105
- }
106
- },
107
- {
108
- "id": "workspace-claude-add-projects-command",
109
- "target": ".claude/commands/code-workspace/add-projects.md",
110
- "tools": [
111
- "claude"
112
- ],
113
- "allowMissing": true,
114
- "desired": {
115
- "source": "templates/claude/commands/code-workspace/add-projects.md",
116
- "sha256": "177fbebf35383e1499c274007a2c577a7cd2f727407bcd0a0ca0511f4666dd6e"
117
- },
118
- "provenance": {
119
- "kind": "template"
120
- }
121
- },
122
- {
123
- "id": "workspace-claude-add-projects-skill",
124
- "target": ".claude/skills/code-workspace-add-projects/SKILL.md",
125
- "tools": [
126
- "claude"
127
- ],
128
- "allowMissing": true,
129
- "desired": {
130
- "source": "templates/codex/skills/code-workspace-add-projects/SKILL.md",
131
- "sha256": "1b3a10870bd748244d85945b9a2562b7b30a8792bcd6163d8d53ed73cd9ef619"
132
- },
133
- "provenance": {
134
- "kind": "template"
135
- }
136
- },
137
- {
138
- "id": "workspace-codex-add-projects-skill",
139
- "target": ".codex/skills/code-workspace-add-projects/SKILL.md",
140
- "tools": [
141
- "codex"
142
- ],
143
- "allowMissing": true,
144
- "desired": {
145
- "source": "templates/codex/skills/code-workspace-add-projects/SKILL.md",
146
- "sha256": "1b3a10870bd748244d85945b9a2562b7b30a8792bcd6163d8d53ed73cd9ef619"
147
- },
148
- "provenance": {
149
- "kind": "template"
150
- }
151
- },
152
- {
153
- "id": "workspace-claude-resolve-branch-skill",
154
- "target": ".claude/skills/code-workspace-resolve-branch/SKILL.md",
155
- "tools": [
156
- "claude"
157
- ],
158
- "allowMissing": true,
159
- "desired": {
160
- "source": "templates/agents/skills/code-workspace-resolve-branch/SKILL.md",
161
- "sha256": "df8c65fbadf917b7247bbd1f40144da8c904a95f2b3ee905a4d2d6176e0a5f1b"
162
- },
163
- "provenance": {
164
- "kind": "template"
165
- }
166
- },
167
- {
168
- "id": "workspace-codex-resolve-branch-skill",
169
- "target": ".codex/skills/code-workspace-resolve-branch/SKILL.md",
170
- "tools": [
171
- "codex"
172
- ],
173
- "allowMissing": true,
174
- "desired": {
175
- "source": "templates/agents/skills/code-workspace-resolve-branch/SKILL.md",
176
- "sha256": "df8c65fbadf917b7247bbd1f40144da8c904a95f2b3ee905a4d2d6176e0a5f1b"
177
- },
178
- "provenance": {
179
- "kind": "template"
180
- }
181
42
  }
182
43
  ]
183
44
  }
@@ -7,13 +7,13 @@ A short reminder for using Code Workspace after initialization.
7
7
  Codex:
8
8
 
9
9
  ```text
10
- $code-workspace-add-projects /absolute/path/to/project-a /absolute/path/to/project-b
10
+ $codew-add-projects /absolute/path/to/project-a /absolute/path/to/project-b
11
11
  ```
12
12
 
13
13
  Claude Code:
14
14
 
15
15
  ```text
16
- /code-workspace:add-projects /absolute/path/to/project-a /absolute/path/to/project-b
16
+ /codew:add-projects /absolute/path/to/project-a /absolute/path/to/project-b
17
17
  ```
18
18
 
19
19
  Review the project records and confirm once. The add-projects skill uses one read-only collection to inspect every path independently; a failed project reports its diagnostic without stopping the remaining paths or being silently ignored. After confirmation, all valid records are sent to `project add` through stdin in one operation, with no temporary JSON file and no default second verify.
@@ -39,7 +39,7 @@ codew init --language en-US
39
39
  codew language
40
40
  ```
41
41
 
42
- The selected preference is stored at `workspace.language` in `.code-workspace/config.yaml`. Change an initialized workspace with:
42
+ The selected preference is stored at `workspace.language` in `.codew/config.yaml`. Change an initialized workspace with:
43
43
 
44
44
  ```bash
45
45
  codew update --language en-US
@@ -49,10 +49,11 @@ This also switches this managed guide. Existing project context is not translate
49
49
 
50
50
  ## Use the Agent monitor
51
51
 
52
- Start one global monitor for all workspaces:
52
+ Monitoring ships as the built-in `monitor` extension. Install it in a workspace and start one global monitor for all workspaces:
53
53
 
54
54
  ```bash
55
- codew monitor
55
+ codew extension install monitor --yes
56
+ codew ext monitor
56
57
  ```
57
58
 
58
59
  Open the printed local URL. The dashboard shows workspaces, execution state, pending approvals, completed turns, and live signals. Monitor language is selected on the page and is independent of `workspace.language`.
@@ -60,10 +61,10 @@ Open the printed local URL. The dashboard shows workspaces, execution state, pen
60
61
  Use another port when necessary:
61
62
 
62
63
  ```bash
63
- codew monitor --port 8080
64
+ codew ext monitor serve --port 8080
64
65
  ```
65
66
 
66
- Each participating workspace must use the same URL in `.code-workspace/config.yaml`. After initialization, review and trust the project hooks with `/hooks` in Codex.
67
+ The extension reports to the URL recorded in `.codew/monitor-reporting.json`. After installation, review and trust the project hooks with `/hooks` in Codex.
67
68
 
68
69
  ## Practical commands
69
70
 
@@ -88,10 +89,33 @@ Add `--json` when a query result is consumed by Codex or a script.
88
89
 
89
90
  ## Workspace skills
90
91
 
91
- - `$code-workspace-add-projects` — inspect and register local Git projects with concise AI-generated navigation context.
92
- - `$code-workspace-resolve-branch` — safely resolve a selected project's branch mismatch and confirm branch alignment.
92
+ Installed by default during Workspace initialization:
93
+
94
+ - `$codew-add-projects` — inspect and register local Git projects with concise AI-generated navigation context.
95
+ - `$codew-resolve-branch` — safely resolve a selected project's branch mismatch and confirm branch alignment.
96
+
97
+ The following skills are distributed as independent extensions. They are not installed by `init` or `update`; install or uninstall each one explicitly. The interactive extension picker starts with no extensions selected, and each choice shows the extension name and a short description:
98
+
99
+ ```bash
100
+ codew extension install zhuiyi-jira-prd-analysis --yes
101
+ codew extension install zhuiyi-jira-task-breakdown --yes
102
+ codew extension install zhuiyi-jira-issue-fix-summary --yes
103
+ codew extension install zhuiyi-guangda-coding-spec --yes
104
+ codew extension uninstall zhuiyi-jira-prd-analysis --yes
105
+ ```
106
+
107
+ - `$zhuiyi-jira-prd-analysis` — confirm Jira scope, then analyze requirement clarity, consistency, and code feasibility.
108
+ - `$zhuiyi-jira-task-breakdown` — split a confirmed Jira requirement into executable frontend, backend, and test tasks.
109
+ - `$zhuiyi-jira-issue-fix-summary` — summarize a completed fix and, after confirmation, publish it as a Jira comment.
110
+ - `$zhuiyi-guangda-coding-spec` — apply research, security, testing, and release rules by risk area, only for China Everbright Bank customer projects.
111
+
112
+ These extensions install skill instructions only. Install the `zhuiyi-jira-mcp` extension separately when the Jira-related skills require Jira access; the Guangda coding spec requires no MCP service.
93
113
 
94
114
  | Purpose | Codex | Claude Code |
95
115
  | --- | --- | --- |
96
- | Add workspace projects | `$code-workspace-add-projects` | `/code-workspace:add-projects` |
97
- | Resolve a project branch mismatch | `$code-workspace-resolve-branch` | `/code-workspace-resolve-branch` |
116
+ | Add workspace projects | `$codew-add-projects` | `/codew:add-projects` |
117
+ | Resolve a project branch mismatch | `$codew-resolve-branch` | `/codew-resolve-branch` |
118
+ | Analyze a Jira requirement | `$zhuiyi-jira-prd-analysis` | `$zhuiyi-jira-prd-analysis` |
119
+ | Break down Jira tasks | `$zhuiyi-jira-task-breakdown` | `$zhuiyi-jira-task-breakdown` |
120
+ | Summarize an issue fix | `$zhuiyi-jira-issue-fix-summary` | `$zhuiyi-jira-issue-fix-summary` |
121
+ | Apply the Guangda coding spec | `$zhuiyi-guangda-coding-spec` | `$zhuiyi-guangda-coding-spec` |