@namewta/speculo 0.7.4 → 0.7.5

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 (157) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/template/canonical/README.md +208 -63
  4. package/template/canonical/canonical-person-steelman-deliberation.md +518 -0
  5. package/template/skills/engineering-standards-builder/README.md +43 -0
  6. package/template/skills/engineering-standards-builder/SKILL.md +233 -0
  7. package/template/skills/engineering-standards-builder/examples/README.md +15 -0
  8. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/build.gradle.kts +5 -0
  9. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/expected.json +12 -0
  10. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/src/main/kotlin/example/App.kt +2 -0
  11. package/template/skills/engineering-standards-builder/examples/go/service/.golangci.yml +3 -0
  12. package/template/skills/engineering-standards-builder/examples/go/service/cmd/api/main.go +3 -0
  13. package/template/skills/engineering-standards-builder/examples/go/service/expected.json +23 -0
  14. package/template/skills/engineering-standards-builder/examples/go/service/go.mod +3 -0
  15. package/template/skills/engineering-standards-builder/examples/go/service/internal/service/service.go +2 -0
  16. package/template/skills/engineering-standards-builder/examples/go/service/internal/service/service_test.go +3 -0
  17. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/expected.json +22 -0
  18. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/pom.xml +12 -0
  19. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/src/main/java/dev/speculo/orders/OrdersApplication.java +7 -0
  20. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/src/test/java/dev/speculo/orders/OrdersApplicationTest.java +3 -0
  21. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/.github/workflows/ci.yml +11 -0
  22. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/package.json +11 -0
  23. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/src/App.vue +2 -0
  24. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/tsconfig.json +8 -0
  25. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/expected.json +22 -0
  26. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/package.json +11 -0
  27. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/pnpm-workspace.yaml +2 -0
  28. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/orders/pom.xml +12 -0
  29. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/orders/src/main/java/dev/speculo/orders/OrdersApplication.java +7 -0
  30. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/worker/go.mod +3 -0
  31. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/worker/main.go +2 -0
  32. package/template/skills/engineering-standards-builder/examples/rust/workspace/Cargo.toml +7 -0
  33. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/cli/Cargo.toml +8 -0
  34. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/cli/src/main.rs +1 -0
  35. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/core/Cargo.toml +5 -0
  36. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/core/src/lib.rs +3 -0
  37. package/template/skills/engineering-standards-builder/examples/rust/workspace/expected.json +14 -0
  38. package/template/skills/engineering-standards-builder/examples/rust/workspace/rust-toolchain.toml +3 -0
  39. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/expected.json +21 -0
  40. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/package.json +20 -0
  41. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/App.test.tsx +2 -0
  42. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/App.tsx +1 -0
  43. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/main.tsx +3 -0
  44. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/tsconfig.json +10 -0
  45. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/expected.json +22 -0
  46. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/package.json +21 -0
  47. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/App.test.ts +2 -0
  48. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/App.vue +7 -0
  49. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/main.ts +4 -0
  50. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/tsconfig.json +11 -0
  51. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/vite.config.ts +2 -0
  52. package/template/skills/engineering-standards-builder/manifest.txt +112 -0
  53. package/template/skills/engineering-standards-builder/references/go/00-detection-and-scope.md +37 -0
  54. package/template/skills/engineering-standards-builder/references/go/01-language-and-idioms.md +34 -0
  55. package/template/skills/engineering-standards-builder/references/go/02-modules-packages-and-layout.md +34 -0
  56. package/template/skills/engineering-standards-builder/references/go/03-errors-context-and-concurrency.md +38 -0
  57. package/template/skills/engineering-standards-builder/references/go/04-testing-tooling-quality-gates.md +46 -0
  58. package/template/skills/engineering-standards-builder/references/go/README.md +9 -0
  59. package/template/skills/engineering-standards-builder/references/java/00-detection-and-scope.md +40 -0
  60. package/template/skills/engineering-standards-builder/references/java/01-language-packages-and-api.md +35 -0
  61. package/template/skills/engineering-standards-builder/references/java/02-build-modules-and-dependencies.md +39 -0
  62. package/template/skills/engineering-standards-builder/references/java/03-errors-nullability-resources-concurrency.md +36 -0
  63. package/template/skills/engineering-standards-builder/references/java/04-testing-tooling-quality-gates.md +36 -0
  64. package/template/skills/engineering-standards-builder/references/java/README.md +10 -0
  65. package/template/skills/engineering-standards-builder/references/java/frameworks/spring-boot.md +74 -0
  66. package/template/skills/engineering-standards-builder/references/rules/00-governance-and-precedence.md +52 -0
  67. package/template/skills/engineering-standards-builder/references/rules/01-project-discovery.md +79 -0
  68. package/template/skills/engineering-standards-builder/references/rules/02-evidence-topology-and-scope.md +87 -0
  69. package/template/skills/engineering-standards-builder/references/rules/03-interview-and-decisions.md +77 -0
  70. package/template/skills/engineering-standards-builder/references/rules/04-architecture-and-dependency-boundaries.md +58 -0
  71. package/template/skills/engineering-standards-builder/references/rules/05-files-directories-and-naming.md +53 -0
  72. package/template/skills/engineering-standards-builder/references/rules/06-apis-errors-resources-and-concurrency.md +53 -0
  73. package/template/skills/engineering-standards-builder/references/rules/07-documentation-and-comments.md +46 -0
  74. package/template/skills/engineering-standards-builder/references/rules/08-testing-strategy.md +45 -0
  75. package/template/skills/engineering-standards-builder/references/rules/09-security-configuration-and-data.md +44 -0
  76. package/template/skills/engineering-standards-builder/references/rules/10-performance-observability-and-i18n.md +36 -0
  77. package/template/skills/engineering-standards-builder/references/rules/11-tooling-quality-gates-and-ci.md +69 -0
  78. package/template/skills/engineering-standards-builder/references/rules/12-git-review-and-delivery.md +46 -0
  79. package/template/skills/engineering-standards-builder/references/rules/13-adoption-exceptions-and-ratchets.md +60 -0
  80. package/template/skills/engineering-standards-builder/references/rules/14-generation-contract.md +105 -0
  81. package/template/skills/engineering-standards-builder/references/rules/15-validation-contract.md +65 -0
  82. package/template/skills/engineering-standards-builder/references/rules/16-language-adapter-contract.md +55 -0
  83. package/template/skills/engineering-standards-builder/references/rules/README.md +23 -0
  84. package/template/skills/engineering-standards-builder/references/rust/00-detection-and-scope.md +38 -0
  85. package/template/skills/engineering-standards-builder/references/rust/01-language-api-and-safety.md +35 -0
  86. package/template/skills/engineering-standards-builder/references/rust/02-crates-workspaces-and-layout.md +36 -0
  87. package/template/skills/engineering-standards-builder/references/rust/03-errors-ownership-and-concurrency.md +37 -0
  88. package/template/skills/engineering-standards-builder/references/rust/04-testing-tooling-quality-gates.md +44 -0
  89. package/template/skills/engineering-standards-builder/references/rust/README.md +9 -0
  90. package/template/skills/engineering-standards-builder/references/typescript/00-detection-and-scope.md +58 -0
  91. package/template/skills/engineering-standards-builder/references/typescript/01-language-and-type-system.md +49 -0
  92. package/template/skills/engineering-standards-builder/references/typescript/02-modules-packages-and-runtime-boundaries.md +49 -0
  93. package/template/skills/engineering-standards-builder/references/typescript/03-functions-async-errors-resources.md +42 -0
  94. package/template/skills/engineering-standards-builder/references/typescript/04-testing-tooling-quality-gates.md +51 -0
  95. package/template/skills/engineering-standards-builder/references/typescript/README.md +27 -0
  96. package/template/skills/engineering-standards-builder/references/typescript/app-types/cli.md +11 -0
  97. package/template/skills/engineering-standards-builder/references/typescript/app-types/library.md +11 -0
  98. package/template/skills/engineering-standards-builder/references/typescript/frameworks/react.md +71 -0
  99. package/template/skills/engineering-standards-builder/references/typescript/frameworks/vue.md +131 -0
  100. package/template/skills/engineering-standards-builder/references/typescript/runtimes/browser.md +15 -0
  101. package/template/skills/engineering-standards-builder/references/typescript/runtimes/electron.md +25 -0
  102. package/template/skills/engineering-standards-builder/references/typescript/runtimes/node.md +13 -0
  103. package/template/skills/engineering-standards-builder/scripts/discover-project.mjs +957 -0
  104. package/template/skills/engineering-standards-builder/scripts/self-test.mjs +203 -0
  105. package/template/skills/engineering-standards-builder/scripts/sync-manifest.mjs +105 -0
  106. package/template/skills/engineering-standards-builder/scripts/validate-builder.mjs +255 -0
  107. package/template/skills/engineering-standards-builder/scripts/validate-generated-skill.mjs +286 -0
  108. package/template/skills/engineering-standards-builder/templates/README.md +18 -0
  109. package/template/skills/engineering-standards-builder/templates/compatibility/agents-typescript--standards.md +6 -0
  110. package/template/skills/engineering-standards-builder/templates/compatibility/agents-typescript-standards.md +6 -0
  111. package/template/skills/engineering-standards-builder/templates/compatibility/claude-engineering-standards.md +6 -0
  112. package/template/skills/engineering-standards-builder/templates/compatibility/claude-typescript-standards.md +6 -0
  113. package/template/skills/engineering-standards-builder/templates/project-skill/SKILL.md.template +26 -0
  114. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/00-project-profile.md.template +26 -0
  115. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/01-module-map.md.template +27 -0
  116. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/02-decisions-and-exceptions.md.template +31 -0
  117. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/review-checklist.md.template +14 -0
  118. package/template/skills/source-code-zip-skill/SKILL.md +343 -0
  119. package/template/skills/source-code-zip-skill/scripts/zip_source_code.py +638 -0
  120. package/template/workflows/person/INDEX.md +1 -0
  121. package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +218 -0
  122. package/template/workflows/person/S-steelman-deliberation/_templates/decision-template.md +51 -0
  123. package/template/workflows/person/S-steelman-deliberation/_templates/steelman-dossier-template.md +96 -0
  124. package/template/workflows/person/S-steelman-deliberation/deliberate.md +127 -0
  125. package/template/workflows/person/S-steelman-deliberation/evidence-gate.md +37 -0
  126. package/template/workflows/person/S-steelman-deliberation/judge.md +69 -0
  127. package/template/workflows/person/S-steelman-deliberation/tools/validate-steelman-change.mjs +697 -0
  128. package/template/skills/typescript-standards-builder/README.md +0 -53
  129. package/template/skills/typescript-standards-builder/SKILL.md +0 -245
  130. package/template/skills/typescript-standards-builder/examples/sample-generated-tree.md +0 -30
  131. package/template/skills/typescript-standards-builder/examples/sample-interview-decisions.md +0 -26
  132. package/template/skills/typescript-standards-builder/manifest.txt +0 -29
  133. package/template/skills/typescript-standards-builder/references/00-governance-and-fixed-defaults.md +0 -77
  134. package/template/skills/typescript-standards-builder/references/01-project-discovery.md +0 -100
  135. package/template/skills/typescript-standards-builder/references/02-interview-workflow.md +0 -129
  136. package/template/skills/typescript-standards-builder/references/03-project-architecture-and-directory-layout.md +0 -84
  137. package/template/skills/typescript-standards-builder/references/04-file-directory-and-symbol-naming.md +0 -92
  138. package/template/skills/typescript-standards-builder/references/05-modules-imports-exports-and-dependencies.md +0 -63
  139. package/template/skills/typescript-standards-builder/references/06-typescript-type-system.md +0 -64
  140. package/template/skills/typescript-standards-builder/references/07-functions-async-errors-and-resources.md +0 -42
  141. package/template/skills/typescript-standards-builder/references/08-comments-jsdoc-and-documentation.md +0 -51
  142. package/template/skills/typescript-standards-builder/references/09-testing-strategy.md +0 -58
  143. package/template/skills/typescript-standards-builder/references/10-react-and-frontend.md +0 -39
  144. package/template/skills/typescript-standards-builder/references/11-node-cli-and-cross-platform.md +0 -31
  145. package/template/skills/typescript-standards-builder/references/12-formatting-lint-and-complexity.md +0 -58
  146. package/template/skills/typescript-standards-builder/references/13-configuration-dependencies-and-ci.md +0 -71
  147. package/template/skills/typescript-standards-builder/references/14-security-performance-and-i18n.md +0 -32
  148. package/template/skills/typescript-standards-builder/references/15-git-review-and-delivery.md +0 -28
  149. package/template/skills/typescript-standards-builder/references/16-adoption-exceptions-and-migration.md +0 -61
  150. package/template/skills/typescript-standards-builder/references/17-generation-contract.md +0 -104
  151. package/template/skills/typescript-standards-builder/references/README.md +0 -37
  152. package/template/skills/typescript-standards-builder/templates/agents-compat-skill/SKILL.md +0 -1
  153. package/template/skills/typescript-standards-builder/templates/claude-skill/SKILL.md +0 -1
  154. package/template/skills/typescript-standards-builder/templates/project-skill/SKILL.md.template +0 -34
  155. package/template/skills/typescript-standards-builder/templates/project-skill/references/00-project-profile.md.template +0 -17
  156. package/template/skills/typescript-standards-builder/templates/project-skill/references/10-review-checklist.md +0 -23
  157. package/template/skills/typescript-standards-builder/templates/project-skill/references/11-decisions-and-exceptions.md.template +0 -19
@@ -0,0 +1,343 @@
1
+ ---
2
+ name: source-code-zip
3
+ description: 将指定源码目录打包为只包含代码的 ZIP,并使用可编辑的正则 IGNORE 规则排除 node_modules、虚拟环境、构建产物、压缩包、.env、YAML、密钥、媒体和办公文件。用户要求归档、传输、备份或提交源码目录时使用。必须优先通过 uv 运行;uv 不可用或无法运行时,再回退到 python3、py -3 或 python。
4
+ ---
5
+
6
+ # Source Code ZIP
7
+
8
+ 把一个目录压缩为安全、精简的源码 ZIP。实际执行逻辑位于:
9
+
10
+ ```text
11
+ scripts/zip_source_code.py
12
+ ```
13
+
14
+ 该脚本只有一个 Python 文件,仅使用标准库,不需要安装第三方依赖。
15
+
16
+ ## 必须遵循的运行顺序
17
+
18
+ 始终先尝试 `uv`,不要一开始就使用 `pip`、`python` 或创建虚拟环境。
19
+
20
+ ```bash
21
+ uv --version
22
+ uv run scripts/zip_source_code.py "/path/to/project"
23
+ ```
24
+
25
+ 脚本带有 PEP 723 元数据:
26
+
27
+ ```text
28
+ requires-python = ">=3.10"
29
+ dependencies = []
30
+ ```
31
+
32
+ 若系统没有 `uv`,或 `uv` 因当前环境限制无法运行,再按以下顺序回退:
33
+
34
+ ```bash
35
+ python3 scripts/zip_source_code.py "/path/to/project"
36
+ ```
37
+
38
+ Windows 可使用:
39
+
40
+ ```powershell
41
+ py -3 scripts/zip_source_code.py "C:\path\to\project"
42
+ ```
43
+
44
+ 最后才尝试:
45
+
46
+ ```bash
47
+ python scripts/zip_source_code.py "/path/to/project"
48
+ ```
49
+
50
+ 因为脚本无第三方依赖,所以回退时不应执行 `pip install`。若用户希望安装 `uv`,优先使用其系统包管理器或官方安装方式,例如:
51
+
52
+ ```bash
53
+ # macOS / Linux
54
+ curl -LsSf https://astral.sh/uv/install.sh | sh
55
+
56
+ # macOS Homebrew
57
+ brew install uv
58
+
59
+ # Windows PowerShell
60
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
61
+ ```
62
+
63
+ ## 标准工作流
64
+
65
+ 1. 确认用户提供的源目录路径,并对包含空格的路径加引号。
66
+ 2. 默认先运行一次 `--dry-run`,尤其是在目录较大、规则刚修改或内容可能敏感时。
67
+ 3. 检查预览结果,确保 `.env`、YAML、依赖目录、压缩包和密钥没有被纳入。
68
+ 4. 使用 `uv run` 正式创建 ZIP。
69
+ 5. 报告 ZIP 的绝对路径、纳入文件数和生成结果。
70
+ 6. 除非用户明确要求,不要使用 `--no-default-ignore`。
71
+
72
+ 推荐预览命令:
73
+
74
+ ```bash
75
+ uv run scripts/zip_source_code.py "/path/to/project" --dry-run
76
+ ```
77
+
78
+ 需要查看每个文件为何被排除时:
79
+
80
+ ```bash
81
+ uv run scripts/zip_source_code.py "/path/to/project" --dry-run --verbose
82
+ ```
83
+
84
+ 正式创建:
85
+
86
+ ```bash
87
+ uv run scripts/zip_source_code.py "/path/to/project"
88
+ ```
89
+
90
+ 默认输出在源目录旁边:
91
+
92
+ ```text
93
+ <目录名>.code.zip
94
+ ```
95
+
96
+ 例如 `/work/my-app` 默认生成 `/work/my-app.code.zip`。
97
+
98
+ ## 默认过滤行为
99
+
100
+ 脚本采用两层过滤:
101
+
102
+ 1. `IGNORE` 正则规则先排除危险、庞大或非源码内容。
103
+ 2. 默认源码白名单只纳入常见代码扩展名、特殊构建脚本名,以及带 shebang 的无扩展名脚本。
104
+
105
+ 内置 `IGNORE` 默认排除:
106
+
107
+ - `.git`、`.hg`、`.svn`、IDE 元数据和系统元数据。
108
+ - `node_modules`、`vendor`、虚拟环境、Python/测试缓存。
109
+ - `dist`、`build`、`target`、覆盖率目录和常见前端框架缓存。
110
+ - `.env`、`.env.local` 等环境变量文件。
111
+ - `.yml`、`.yaml`。
112
+ - ZIP、RAR、TAR、GZ、JAR、WHL 等归档文件。
113
+ - 可执行文件、动态库、目标文件、字节码和 WebAssembly 产物。
114
+ - 证书、私钥、keystore 和常见 SSH 密钥文件名。
115
+ - 图片、音视频、PDF、Office 文件、数据库、日志和临时文件。
116
+ - 常见依赖锁文件。
117
+
118
+ 默认会纳入 Python、JavaScript、TypeScript、Java、Go、Rust、C/C++、C#、Shell、SQL、HTML、CSS、Vue、Svelte、Terraform 等源码。
119
+
120
+ ## IGNORE 正则规则
121
+
122
+ 脚本顶部有可直接编辑的字段:
123
+
124
+ ```python
125
+ IGNORE: list[str] = [
126
+ r"(^|/)\.git(?:/|$)",
127
+ r"(^|/)node_modules(?:/|$)",
128
+ r"\.zip$",
129
+ r"(^|/)\.env(?:\..*)?$",
130
+ r"\.ya?ml$",
131
+ ]
132
+ ```
133
+
134
+ 实际脚本中的默认列表更完整。匹配规则如下:
135
+
136
+ - 匹配对象是相对于源目录的路径。
137
+ - 路径分隔符统一为 `/`,即使在 Windows 上也是如此。
138
+ - 路径开头没有 `/`。
139
+ - 使用 `re.search`,默认不区分大小写。
140
+ - 这是正则表达式,不是 Git `.gitignore` 的 glob 语法。
141
+ - 忽略规则优先于 `--include`;被忽略的目录不会继续遍历。
142
+
143
+ 显示当前全部默认规则:
144
+
145
+ ```bash
146
+ uv run scripts/zip_source_code.py --show-defaults
147
+ ```
148
+
149
+ 临时追加一个正则,不修改脚本:
150
+
151
+ ```bash
152
+ uv run scripts/zip_source_code.py ./project \
153
+ --ignore '(^|/)fixtures?(/|$)'
154
+ ```
155
+
156
+ 可重复添加:
157
+
158
+ ```bash
159
+ uv run scripts/zip_source_code.py ./project \
160
+ --ignore '(^|/)fixtures?(/|$)' \
161
+ --ignore '(^|/)generated(/|$)'
162
+ ```
163
+
164
+ 也可以从 UTF-8 文本文件读取,每行一个正则,空行和以 `#` 开头的行会被忽略:
165
+
166
+ ```bash
167
+ uv run scripts/zip_source_code.py ./project \
168
+ --ignore-from ./custom-ignore.regex
169
+ ```
170
+
171
+ 示例规则文件:
172
+
173
+ ```text
174
+ # 测试夹具
175
+ (^|/)fixtures?(/|$)
176
+
177
+ # 自动生成代码
178
+ (^|/)generated(/|$)
179
+ \.gen\.[a-z0-9]+$
180
+ ```
181
+
182
+ ## 纳入额外的项目文件
183
+
184
+ 默认只打包源码,所以 `README.md`、`package.json`、`pyproject.toml` 等不会自动进入 ZIP。
185
+
186
+ 只额外纳入指定文件时,优先使用 `--include`:
187
+
188
+ ```bash
189
+ uv run scripts/zip_source_code.py ./project \
190
+ --include '(^|/)package\.json$' \
191
+ --include '(^|/)pyproject\.toml$'
192
+ ```
193
+
194
+ `--include` 只绕过源码扩展名白名单,不会绕过 `IGNORE`。例如 `.env` 和 `.yml` 仍然会被排除。
195
+
196
+ 需要纳入所有未被 `IGNORE` 排除的普通文件时:
197
+
198
+ ```bash
199
+ uv run scripts/zip_source_code.py ./project --all-files
200
+ ```
201
+
202
+ 只有用户明确理解风险并要求禁用安全规则时,才使用:
203
+
204
+ ```bash
205
+ uv run scripts/zip_source_code.py ./project \
206
+ --all-files \
207
+ --no-default-ignore
208
+ ```
209
+
210
+ 该组合可能把密钥、凭据、依赖和大型二进制文件打包,不应作为默认方案。
211
+
212
+ ## 输出控制
213
+
214
+ 指定输出位置:
215
+
216
+ ```bash
217
+ uv run scripts/zip_source_code.py ./project \
218
+ --output ./artifacts/project-source.zip
219
+ ```
220
+
221
+ `-o` 是 `--output` 的缩写。输出名称没有 `.zip` 后缀时,脚本会自动补上。
222
+
223
+ 默认不覆盖已有 ZIP。确认允许覆盖后使用:
224
+
225
+ ```bash
226
+ uv run scripts/zip_source_code.py ./project \
227
+ -o ./artifacts/project-source.zip \
228
+ --force
229
+ ```
230
+
231
+ 默认 ZIP 内会保留一个顶层目录:
232
+
233
+ ```text
234
+ project/src/main.py
235
+ project/tests/test_main.py
236
+ ```
237
+
238
+ 需要直接把目录内容放到 ZIP 根目录时:
239
+
240
+ ```bash
241
+ uv run scripts/zip_source_code.py ./project --contents-only
242
+ ```
243
+
244
+ 压缩级别范围是 `0` 到 `9`,默认 `9`:
245
+
246
+ ```bash
247
+ uv run scripts/zip_source_code.py ./project --compression-level 6
248
+ ```
249
+
250
+ 其中 `0` 表示仅存储不压缩,`1` 更快,`9` 压缩率通常更高。
251
+
252
+ ## 完整命令示例
253
+
254
+ 安全预览:
255
+
256
+ ```bash
257
+ uv run scripts/zip_source_code.py "/work/my app" \
258
+ --dry-run \
259
+ --verbose
260
+ ```
261
+
262
+ 打包源码并额外纳入 Python 与 Node 项目清单:
263
+
264
+ ```bash
265
+ uv run scripts/zip_source_code.py "/work/my app" \
266
+ --include '(^|/)pyproject\.toml$' \
267
+ --include '(^|/)package\.json$' \
268
+ -o "/work/artifacts/my-app-source.zip"
269
+ ```
270
+
271
+ 排除测试夹具和自动生成目录:
272
+
273
+ ```bash
274
+ uv run scripts/zip_source_code.py ./project \
275
+ --ignore '(^|/)fixtures?(/|$)' \
276
+ --ignore '(^|/)generated(/|$)'
277
+ ```
278
+
279
+ 适合脚本调用的安静模式,成功时只输出 ZIP 绝对路径:
280
+
281
+ ```bash
282
+ archive_path="$(uv run scripts/zip_source_code.py ./project --quiet)"
283
+ printf '%s\n' "$archive_path"
284
+ ```
285
+
286
+ Windows PowerShell:
287
+
288
+ ```powershell
289
+ $archivePath = uv run scripts/zip_source_code.py "C:\work\project" --quiet
290
+ $archivePath
291
+ ```
292
+
293
+ ## 安全与可靠性约束
294
+
295
+ - 默认跳过所有符号链接,不跟随到源目录之外。
296
+ - 默认拒绝覆盖已有 ZIP,避免误删旧归档。
297
+ - 输出文件位于源目录内部时,扫描会排除该输出 ZIP 本身。
298
+ - ZIP 先写入临时文件,成功后再替换最终输出,降低留下半成品的概率。
299
+ - 默认不允许创建空 ZIP;确认需要时使用 `--allow-empty`。
300
+ - 正式打包前修改过 `IGNORE` 时,应重新执行 `--dry-run --verbose`。
301
+ - 不要为了运行该脚本安装第三方 Python 包。
302
+
303
+ ## 常见问题
304
+
305
+ ### 没有找到可打包文件
306
+
307
+ 先查看默认规则:
308
+
309
+ ```bash
310
+ uv run scripts/zip_source_code.py --show-defaults
311
+ ```
312
+
313
+ 再预览全部未被忽略的普通文件:
314
+
315
+ ```bash
316
+ uv run scripts/zip_source_code.py ./project --all-files --dry-run
317
+ ```
318
+
319
+ 若只缺少少量项目文件,使用 `--include`,不要直接禁用默认忽略规则。
320
+
321
+ ### 输出文件已存在
322
+
323
+ 指定新文件名,或在确认覆盖安全后添加 `--force`。
324
+
325
+ ### 正则无效
326
+
327
+ 脚本会指出无效的命令行规则,或 `--ignore-from` 文件中的具体行号。正则应符合 Python `re` 语法。
328
+
329
+ ### uv 不可用
330
+
331
+ 按本 SKILL 开头的回退顺序使用 `python3`、Windows 的 `py -3`,最后使用 `python`。脚本不依赖外部包。
332
+
333
+ ## 命令帮助
334
+
335
+ ```bash
336
+ uv run scripts/zip_source_code.py --help
337
+ ```
338
+
339
+ 版本信息:
340
+
341
+ ```bash
342
+ uv run scripts/zip_source_code.py --version
343
+ ```