@mycodemap/mycodemap 0.2.0 → 0.3.4

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 (99) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/dist/cli/commands/ship/analyzer.d.ts +26 -0
  3. package/dist/cli/commands/ship/analyzer.d.ts.map +1 -0
  4. package/dist/cli/commands/ship/analyzer.js +143 -0
  5. package/dist/cli/commands/ship/analyzer.js.map +1 -0
  6. package/dist/cli/commands/ship/checker.d.ts +20 -0
  7. package/dist/cli/commands/ship/checker.d.ts.map +1 -0
  8. package/dist/cli/commands/ship/checker.js +86 -0
  9. package/dist/cli/commands/ship/checker.js.map +1 -0
  10. package/dist/cli/commands/ship/index.d.ts +17 -0
  11. package/dist/cli/commands/ship/index.d.ts.map +1 -0
  12. package/dist/cli/commands/ship/index.js +51 -0
  13. package/dist/cli/commands/ship/index.js.map +1 -0
  14. package/dist/cli/commands/ship/monitor.d.ts +19 -0
  15. package/dist/cli/commands/ship/monitor.d.ts.map +1 -0
  16. package/dist/cli/commands/ship/monitor.js +105 -0
  17. package/dist/cli/commands/ship/monitor.js.map +1 -0
  18. package/dist/cli/commands/ship/pipeline.d.ts +23 -0
  19. package/dist/cli/commands/ship/pipeline.d.ts.map +1 -0
  20. package/dist/cli/commands/ship/pipeline.js +146 -0
  21. package/dist/cli/commands/ship/pipeline.js.map +1 -0
  22. package/dist/cli/commands/ship/publisher.d.ts +11 -0
  23. package/dist/cli/commands/ship/publisher.d.ts.map +1 -0
  24. package/dist/cli/commands/ship/publisher.js +75 -0
  25. package/dist/cli/commands/ship/publisher.js.map +1 -0
  26. package/dist/cli/commands/ship/rules/confidence-rules.d.ts +48 -0
  27. package/dist/cli/commands/ship/rules/confidence-rules.d.ts.map +1 -0
  28. package/dist/cli/commands/ship/rules/confidence-rules.js +122 -0
  29. package/dist/cli/commands/ship/rules/confidence-rules.js.map +1 -0
  30. package/dist/cli/commands/ship/rules/quality-rules.d.ts +25 -0
  31. package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -0
  32. package/dist/cli/commands/ship/rules/quality-rules.js +134 -0
  33. package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -0
  34. package/dist/cli/commands/ship/rules/version-rules.d.ts +24 -0
  35. package/dist/cli/commands/ship/rules/version-rules.d.ts.map +1 -0
  36. package/dist/cli/commands/ship/rules/version-rules.js +75 -0
  37. package/dist/cli/commands/ship/rules/version-rules.js.map +1 -0
  38. package/dist/cli/commands/ship/versioner.d.ts +12 -0
  39. package/dist/cli/commands/ship/versioner.d.ts.map +1 -0
  40. package/dist/cli/commands/ship/versioner.js +92 -0
  41. package/dist/cli/commands/ship/versioner.js.map +1 -0
  42. package/dist/cli/index.js +9 -0
  43. package/dist/cli/index.js.map +1 -1
  44. package/docs/PUBLISHING.md +344 -34
  45. package/docs/ai-guide/COMMANDS.md +34 -0
  46. package/docs/rules/pre-release-checklist.md +426 -0
  47. package/package.json +8 -2
  48. package/scripts/.githooks/commit-msg +31 -0
  49. package/scripts/.githooks/pre-commit +55 -0
  50. package/scripts/benchmark.ts +209 -0
  51. package/scripts/hooks/commit-msg +24 -0
  52. package/scripts/hooks/install-hooks.sh +29 -0
  53. package/scripts/hooks/pre-commit +60 -0
  54. package/scripts/pre-release-check.js +717 -0
  55. package/scripts/release.sh +142 -0
  56. package/scripts/run-benchmark.sh +29 -0
  57. package/scripts/validate-ai-docs.js +294 -0
  58. package/scripts/validate-docs.js +238 -0
  59. package/scripts/validate-pack.js +86 -0
  60. package/dist/ai/claude.d.ts +0 -38
  61. package/dist/ai/claude.d.ts.map +0 -1
  62. package/dist/ai/claude.js +0 -169
  63. package/dist/ai/claude.js.map +0 -1
  64. package/dist/ai/codex.d.ts +0 -38
  65. package/dist/ai/codex.d.ts.map +0 -1
  66. package/dist/ai/codex.js +0 -169
  67. package/dist/ai/codex.js.map +0 -1
  68. package/dist/ai/factory.d.ts +0 -48
  69. package/dist/ai/factory.d.ts.map +0 -1
  70. package/dist/ai/factory.js +0 -95
  71. package/dist/ai/factory.js.map +0 -1
  72. package/dist/ai/index.d.ts +0 -12
  73. package/dist/ai/index.d.ts.map +0 -1
  74. package/dist/ai/index.js +0 -29
  75. package/dist/ai/index.js.map +0 -1
  76. package/dist/ai/provider.d.ts +0 -70
  77. package/dist/ai/provider.d.ts.map +0 -1
  78. package/dist/ai/provider.js +0 -31
  79. package/dist/ai/provider.js.map +0 -1
  80. package/dist/ai/subagent-caller.d.ts +0 -90
  81. package/dist/ai/subagent-caller.d.ts.map +0 -1
  82. package/dist/ai/subagent-caller.js +0 -280
  83. package/dist/ai/subagent-caller.js.map +0 -1
  84. package/dist/ai/types.d.ts +0 -70
  85. package/dist/ai/types.d.ts.map +0 -1
  86. package/dist/ai/types.js +0 -5
  87. package/dist/ai/types.js.map +0 -1
  88. package/dist/generator/ai-overview.d.ts +0 -51
  89. package/dist/generator/ai-overview.d.ts.map +0 -1
  90. package/dist/generator/ai-overview.js +0 -160
  91. package/dist/generator/ai-overview.js.map +0 -1
  92. package/dist/orchestrator/ai-feed-generator.d.ts +0 -210
  93. package/dist/orchestrator/ai-feed-generator.d.ts.map +0 -1
  94. package/dist/orchestrator/ai-feed-generator.js +0 -377
  95. package/dist/orchestrator/ai-feed-generator.js.map +0 -1
  96. package/docs/archive/test-report-symbol-search.md +0 -384
  97. package/docs/archive/test-scenario-4-complexity-analysis.md +0 -460
  98. package/docs/archive/test_report_scenario5.md +0 -615
  99. package/docs/archive/test_scenario_3_impact_analysis_report.md +0 -520
@@ -1,5 +1,5 @@
1
1
  # NPM 自动发布指南
2
-
2
+ 3
3
3
  > 本文档说明如何配置和触发 @mycodemap/mycodemap 的自动发布流程
4
4
 
5
5
  ## 📋 发布流程概览
@@ -10,35 +10,42 @@
10
10
 
11
11
  ## 🔧 前置配置
12
12
 
13
- ### 方式一: NPM Token (推荐,简单)
13
+ 本项目使用 **OIDC Trusted Publishing** 方式发布,无需配置 NPM Token
14
+
15
+ ### OIDC Trusted Publishing 配置
16
+
17
+ 1. **在 NPM 上配置 Trusted Publisher**
18
+ - 访问包管理页面: https://www.npmjs.com/package/@mycodemap/mycodemap/access
19
+ - 找到 "Publishing" 或 "Grant Access" 部分
20
+ - 点击 "Add GitHub Actions as a trusted publisher"
21
+ - 填写以下信息:
22
+ - **GitHub Organization**: `yuanyuanyuan`
23
+ - **GitHub Repository**: `mycodemap`
24
+ - **Workflow Name**: `publish.yml`
25
+ - **GitHub Environment**: (留空)
14
26
 
15
- 1. **获取 NPM Token**
16
- - 登录 [npmjs.com](https://www.npmjs.com/)
17
- - 进入 Access Tokens → Generate New Token → Classic Token
18
- - 选择类型: **Automation** (用于 CI/CD)
19
- - 复制生成的 token
27
+ 2. **确保没有设置 NPM_TOKEN**
28
+ ```bash
29
+ # 检查是否设置了 NPM_TOKEN
30
+ gh secret list | grep NPM_TOKEN
31
+
32
+ # 如果存在,删除它
33
+ gh secret remove NPM_TOKEN
34
+ ```
20
35
 
21
- 2. **配置 GitHub Secret**
22
- - 进入仓库 Settings → Secrets and variables → Actions
23
- - 点击 "New repository secret"
24
- - Name: `NPM_TOKEN`
25
- - Value: 粘贴刚才复制的 npm token
26
- - 点击 "Add secret"
36
+ 3. **验证权限配置**
37
+ 确保 workflow 中设置了正确的权限:
38
+ ```yaml
39
+ permissions:
40
+ contents: write # 用于创建 GitHub Release
41
+ id-token: write # 用于 OIDC trusted publishing (必需)
42
+ ```
27
43
 
28
- ### 方式二: OIDC Trusted Publishing (更安全)
44
+ ### 2FA/OTP 注意事项
29
45
 
30
- 1. **在 NPM 上配置**
31
- - 登录 [npmjs.com](https://www.npmjs.com/)
32
- - 进入包页面 → Access → Grant Access
33
- - 选择 "Automation" → "GitHub Actions"
34
- - 配置:
35
- - GitHub Organization: `yuanyuanyuan` (或你的组织名)
36
- - GitHub Repository: `mycodemap`
37
- - Workflow name: `publish.yml`
46
+ 如果你的 npm 账号启用了 2FA,使用 OIDC 发布**不需要**提供 OTP,因为 OIDC 会绕过 2FA 限制。
38
47
 
39
- 2. **修改 workflow** (已默认支持)
40
- - 当前 `publish.yml` 已同时支持两种方式
41
- - 如使用 OIDC,确保不设置 `NPM_TOKEN` secret
48
+ **注意**: 不要在 workflow 中设置 `NODE_AUTH_TOKEN` 环境变量,这会干扰 OIDC 认证。
42
49
 
43
50
  ## 🚀 发布操作
44
51
 
@@ -88,13 +95,215 @@ git push origin v0.2.1
88
95
  2. 点击 "Run workflow"
89
96
  3. 可选择输入版本号,或直接运行使用当前 package.json 版本
90
97
 
91
- ## 发布前检查清单
98
+ ### 方法 4: 本地直接发布 (需要 2FA OTP)
99
+
100
+ **注意**: 如果账号启用了 2FA,本地发布需要提供 OTP:
101
+
102
+ ```bash
103
+ # 确保所有检查通过
104
+ npm run check:all
105
+
106
+ # 发布到 npm (需要 2FA OTP)
107
+ npm publish --access public --otp=YOUR_OTP_CODE
108
+
109
+ # 例如
110
+ npm publish --access public --otp=250222
111
+ ```
112
+
113
+ ## ✅ 发布前完整检查流程
114
+
115
+ 发布前必须执行以下检查:
116
+
117
+ ```bash
118
+ # 1. 类型检查
119
+ npm run typecheck
120
+
121
+ # 2. 代码检查
122
+ npm run lint
123
+
124
+ # 3. 运行测试
125
+ npm test
126
+
127
+ # 4. 构建项目
128
+ npm run build
129
+
130
+ # 5. 打包验证
131
+ npm run validate-pack
132
+
133
+ # 6. 发布前 AI 文档检查
134
+ npm run docs:check:pre-release
135
+
136
+ # 7. 发布预览
137
+ npm pack --dry-run
138
+
139
+ # 或使用一键检查
140
+ npm run check:all
141
+ ```
142
+
143
+ ### 发布前检查清单
92
144
 
93
145
  - [ ] 更新 `CHANGELOG.md` 记录本次变更
94
- - [ ] 确保所有测试通过 (`npm test`)
95
- - [ ] 确保代码检查通过 (`npm run check:all`)
146
+ - [ ] 运行 `npm run docs:check:pre-release` - 确保 AI 文档检查通过
147
+ - [ ] 运行 `npm run typecheck` - 确保 0 errors
148
+ - [ ] 运行 `npm run lint` - 确保 0 errors (warnings 可接受)
149
+ - [ ] 运行 `npm test` - 确保所有测试通过
150
+ - [ ] 运行 `npm run validate-pack` - 确保打包验证通过
151
+ - [ ] 检查 `package.json` 版本号符合 [semver](https://semver.org/lang/zh-CN/) 规范
152
+ - [ ] 确保 git tag 与 package.json 版本一致
96
153
  - [ ] 更新 `README.md` 中的版本说明(如需要)
97
- - [ ] 确认版本号符合 [semver](https://semver.org/lang/zh-CN/) 规范
154
+
155
+ ## 🔧 GitHub Actions Workflow 配置
156
+
157
+ 完整的 `.github/workflows/publish.yml` 配置:
158
+
159
+ ```yaml
160
+ # [META] since:2026-03-04 | owner:release-team | stable:true
161
+ # [WHY] NPM package publishing workflow - 使用 OIDC Trusted Publishing
162
+
163
+ name: Publish to NPM
164
+
165
+ on:
166
+ # 方式1: 推送 v* 标签时自动发布
167
+ push:
168
+ tags:
169
+ - 'v*'
170
+
171
+ # 方式2: 手动触发(推荐用于首次发布或特殊情况)
172
+ workflow_dispatch:
173
+ inputs:
174
+ version:
175
+ description: '版本号 (例如: 0.2.0),留空则使用 package.json 中的版本'
176
+ required: false
177
+ type: string
178
+
179
+ jobs:
180
+ publish:
181
+ name: Build and Publish
182
+ runs-on: ubuntu-latest
183
+ permissions:
184
+ contents: write # 用于创建 GitHub Release
185
+ id-token: write # 用于 OIDC trusted publishing (必需)
186
+
187
+ steps:
188
+ - name: Checkout code
189
+ uses: actions/checkout@v4
190
+ with:
191
+ fetch-depth: 0 # 获取完整历史用于生成 changelog
192
+
193
+ - name: Setup Node.js
194
+ uses: actions/setup-node@v4
195
+ with:
196
+ node-version: '20'
197
+ cache: 'npm'
198
+ registry-url: 'https://registry.npmjs.org'
199
+
200
+ - name: Get version from package.json
201
+ id: package-version
202
+ run: |
203
+ VERSION=$(node -p "require('./package.json').version")
204
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
205
+ echo "Package version: $VERSION"
206
+
207
+ - name: Validate version
208
+ run: |
209
+ VERSION="${{ steps.package-version.outputs.version }}"
210
+ if [ -z "$VERSION" ]; then
211
+ echo "❌ Error: 无法从 package.json 读取版本号"
212
+ exit 1
213
+ fi
214
+ echo "✅ Version: $VERSION"
215
+
216
+ - name: Check tag matches version (tag 触发时)
217
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
218
+ run: |
219
+ TAG_VERSION=${GITHUB_REF#refs/tags/v}
220
+ PKG_VERSION=${{ steps.package-version.outputs.version }}
221
+ if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then
222
+ echo "❌ Error: Git tag version (v$TAG_VERSION) 与 package.json 版本 ($PKG_VERSION) 不匹配"
223
+ exit 1
224
+ fi
225
+ echo "✅ Tag version matches package.json version"
226
+
227
+ - name: Install dependencies
228
+ run: npm ci
229
+
230
+ - name: Run pre-release AI documentation check
231
+ run: npm run docs:check:pre-release
232
+
233
+ - name: Run typecheck
234
+ run: npm run typecheck
235
+
236
+ - name: Run linter
237
+ run: npm run lint
238
+
239
+ - name: Run tests
240
+ run: npm test
241
+
242
+ - name: Build package
243
+ run: npm run build
244
+
245
+ - name: Validate package contents
246
+ run: npm run validate-pack
247
+
248
+ # 使用 OIDC Trusted Publishing 发布
249
+ # OIDC 通过 id-token: write 权限自动获取认证,不需要 NPM_TOKEN
250
+ - name: Publish to NPM
251
+ run: npm publish --access public --provenance
252
+
253
+ - name: Generate Release Notes
254
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
255
+ id: release-notes
256
+ run: |
257
+ VERSION="${{ steps.package-version.outputs.version }}"
258
+
259
+ # 从 CHANGELOG.md 提取当前版本的变更记录
260
+ if [ -f CHANGELOG.md ]; then
261
+ NOTES=$(awk "/^## \[$VERSION\]/,/^## \[/" CHANGELOG.md | head -n -1)
262
+ if [ -n "$NOTES" ]; then
263
+ echo "Extracted release notes from CHANGELOG.md"
264
+ else
265
+ NOTES="See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details."
266
+ fi
267
+ else
268
+ NOTES="See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for details."
269
+ fi
270
+
271
+ # 转义特殊字符用于 GitHub Actions 输出
272
+ NOTES="${NOTES//'%'/'%25'}"
273
+ NOTES="${NOTES//$'\n'/'%0A'}"
274
+ NOTES="${NOTES//$'\r'/'%0D'}"
275
+
276
+ echo "notes<<EOF" >> $GITHUB_OUTPUT
277
+ echo "$NOTES" >> $GITHUB_OUTPUT
278
+ echo "EOF" >> $GITHUB_OUTPUT
279
+
280
+ - name: Create GitHub Release
281
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
282
+ uses: actions/create-release@v1
283
+ env:
284
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
285
+ with:
286
+ tag_name: ${{ github.ref }}
287
+ release_name: Release v${{ steps.package-version.outputs.version }}
288
+ draft: false
289
+ prerelease: ${{ contains(steps.package-version.outputs.version, '-') }}
290
+ body: |
291
+ ${{ steps.release-notes.outputs.notes }}
292
+
293
+ ---
294
+
295
+ ## Installation
296
+
297
+ ```bash
298
+ npm install @mycodemap/mycodemap@${{ steps.package-version.outputs.version }}
299
+ ```
300
+
301
+ ## AI Documentation
302
+
303
+ This version includes updated AI-friendly documentation:
304
+ - [AI Guide](https://github.com/${{ github.repository }}/blob/main/AI_GUIDE.md)
305
+ - [llms.txt](https://github.com/${{ github.repository }}/blob/main/llms.txt)
306
+ ```
98
307
 
99
308
  ## 🔍 验证发布
100
309
 
@@ -109,18 +318,49 @@ npm install -g @mycodemap/mycodemap
109
318
 
110
319
  # 验证 CLI 版本
111
320
  mycodemap --version
321
+
322
+ # 查看包详情
323
+ npm view @mycodemap/mycodemap
112
324
  ```
113
325
 
114
326
  ## 🐛 故障排查
115
327
 
328
+ ### OIDC 发布失败
329
+
330
+ **现象**:
331
+ ```
332
+ npm ERR! code E403
333
+ npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/@mycodemap%2fmycodemap
334
+ ```
335
+
336
+ **原因**:
337
+ 1. NPM 端未正确配置 Trusted Publisher
338
+ 2. `id-token: write` 权限未设置
339
+ 3. 设置了 `NODE_AUTH_TOKEN` 环境变量干扰了 OIDC
340
+
341
+ **解决**:
342
+ 1. 检查 NPM 配置: https://www.npmjs.com/package/@mycodemap/mycodemap/access
343
+ 2. 确保 workflow 中有 `id-token: write` 权限
344
+ 3. 确保没有设置 `NODE_AUTH_TOKEN` 环境变量
345
+ 4. 确保没有设置 `NPM_TOKEN` secret
346
+
116
347
  ### 发布失败: "ENEEDAUTH"
117
348
 
118
- **原因**: NPM_TOKEN 未配置或已过期
349
+ **原因**: 虽然使用 OIDC,但可能配置了错误的认证方式
119
350
 
120
351
  **解决**:
121
- 1. 检查 GitHub Secrets 中是否设置了 `NPM_TOKEN`
122
- 2. 确认 token 未过期(npm 上可查看)
123
- 3. 确认 token 有发布权限
352
+ 1. 检查 workflow 中是否设置了 `NODE_AUTH_TOKEN`(不应该设置)
353
+ 2. 检查 GitHub Secrets 中是否意外设置了 `NPM_TOKEN`(应该删除)
354
+ 3. 确认 `id-token: write` 权限已正确配置
355
+
356
+ ### 发布失败: "EOTP"
357
+
358
+ **原因**: 使用了传统的 NPM_TOKEN 方式,且账号启用了 2FA
359
+
360
+ **解决**:
361
+ - 这是使用 OIDC 的场景,不应该出现此错误
362
+ - 检查是否正确配置了 OIDC Trusted Publishing
363
+ - 检查是否意外设置了 NPM_TOKEN
124
364
 
125
365
  ### 发布失败: "403 Forbidden"
126
366
 
@@ -129,6 +369,7 @@ mycodemap --version
129
369
  **解决**:
130
370
  1. 确认你是该 npm 包的维护者
131
371
  2. 如果是 scoped package (@mycodemap/xxx),确认已设置 `--access public`
372
+ 3. 确认 NPM 端已添加 GitHub Actions 作为 Trusted Publisher
132
373
 
133
374
  ### 发布失败: "版本已存在"
134
375
 
@@ -147,16 +388,85 @@ mycodemap --version
147
388
  2. 检查 `.github/workflows/publish.yml` 是否存在
148
389
  3. 查看 Actions 日志排查问题
149
390
 
391
+ ### npm warn publish "bin[xxx]" script name was invalid
392
+
393
+ **原因**: package.json 中的 bin 字段格式问题
394
+
395
+ **解决**:
396
+ ```bash
397
+ # 运行 npm pkg fix 自动修复
398
+ npm pkg fix
399
+ ```
400
+
401
+ ### 版本不匹配错误
402
+
403
+ **原因**: Git tag 版本与 package.json 版本不一致
404
+
405
+ **解决**:
406
+ ```bash
407
+ # 检查当前版本
408
+ cat package.json | grep '"version"'
409
+
410
+ # 检查 git tags
411
+ git tag -l | sort -V
412
+
413
+ # 确保 tag 与 package.json 版本一致
414
+ # 例如: package.json 为 0.2.0,则 tag 应为 v0.2.0
415
+ ```
416
+
417
+ ### npm registry 配置错误
418
+
419
+ **现象**: `npm whoami` 失败或发布到错误 registry
420
+
421
+ **解决**:
422
+ ```bash
423
+ # 检查当前 registry
424
+ npm config get registry
425
+
426
+ # 设置为 npm 官方 registry
427
+ npm config set registry https://registry.npmjs.org/
428
+
429
+ # 验证登录状态
430
+ npm whoami
431
+ ```
432
+
150
433
  ## 📚 相关文件
151
434
 
152
435
  | 文件 | 说明 |
153
436
  |------|------|
154
437
  | `.github/workflows/publish.yml` | GitHub Actions 发布工作流 |
155
438
  | `scripts/release.sh` | 本地发布助手脚本 |
156
- | `package.json` | 版本号定义 |
439
+ | `scripts/validate-pack.js` | 打包验证脚本 |
440
+ | `scripts/pre-release-check.js` | 发布前 AI 文档检查脚本 |
441
+ | `package.json` | 版本号定义和发布配置 |
157
442
  | `CHANGELOG.md` | 版本变更记录 |
443
+ | `tsconfig.json` | TypeScript 编译配置 |
444
+
445
+ ## 📝 发布记录模板
446
+
447
+ 发布后建议在 GitHub 创建 Release,格式如下:
448
+
449
+ ```markdown
450
+ ## Changes
451
+
452
+ ### Features
453
+ - 新增 xxx 功能
454
+
455
+ ### Fixes
456
+ - 修复 xxx 问题
457
+
458
+ ### Improvements
459
+ - 优化 xxx 性能
460
+
461
+ ## Installation
462
+
463
+ ```bash
464
+ npm install @mycodemap/mycodemap@0.2.0
465
+ ```
466
+ ```
158
467
 
159
468
  ## 🔗 相关链接
160
469
 
161
470
  - NPM 包页面: https://www.npmjs.com/package/@mycodemap/mycodemap
162
471
  - GitHub Actions: https://github.com/yuanyuanyuan/mycodemap/actions
472
+ - 版本历史: https://www.npmjs.com/package/@mycodemap/mycodemap?activeTab=versions
@@ -358,6 +358,40 @@ mycodemap export json -o ./output.json # 指定输出
358
358
 
359
359
  ---
360
360
 
361
+ ### ship - 一键智能发布
362
+
363
+ ```bash
364
+ mycodemap ship # 完整发布流程
365
+ mycodemap ship --dry-run # 仅分析,不发布
366
+ mycodemap ship --verbose # 显示详细输出
367
+ mycodemap ship --yes # 置信度 60-75 时自动确认
368
+ ```
369
+
370
+ | 选项 | 说明 | 默认值 |
371
+ |------|------|--------|
372
+ | `--dry-run` | 仅分析变更,不执行发布 | `false` |
373
+ | `--verbose` | 显示详细输出 | `false` |
374
+ | `--yes, -y` | 置信度 60-75 时自动确认 | `false` |
375
+
376
+ **发布流程:**
377
+ 1. **ANALYZE** - 分析 git commits,检测变更类型
378
+ 2. **VERSION** - 基于 conventional commits 计算版本号
379
+ 3. **CHECK** - mustPass/shouldPass 检查 + 置信度评分
380
+ 4. **PUBLISH** - npm 发布 + git tag
381
+ 5. **MONITOR** - GitHub Actions CI 状态监控
382
+
383
+ **置信度判定:**
384
+ - `>= 75`: 自动发布
385
+ - `60-75`: 需确认
386
+ - `< 60`: 阻止发布
387
+
388
+ **前置条件:**
389
+ - 工作区干净
390
+ - 在 main/master 分支
391
+ - 所有检查通过
392
+
393
+ ---
394
+
361
395
  ## 全局选项
362
396
 
363
397
  所有命令支持: