@namewta/speculo 2.0.5 → 2.1.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 (283) hide show
  1. package/README.md +3 -0
  2. package/THIRD-PARTY-NOTICES.md +4 -0
  3. package/dist/src/agent-skills.d.ts +5 -0
  4. package/dist/src/agent-skills.js +10 -7
  5. package/dist/src/agent-skills.js.map +1 -1
  6. package/dist/src/cli.js +17 -4
  7. package/dist/src/cli.js.map +1 -1
  8. package/dist/src/coordination.d.ts +3 -3
  9. package/dist/src/coordination.js +21 -4
  10. package/dist/src/coordination.js.map +1 -1
  11. package/dist/src/doctor.js +8 -1
  12. package/dist/src/doctor.js.map +1 -1
  13. package/dist/src/external-files.d.ts +4 -2
  14. package/dist/src/external-files.js +4 -4
  15. package/dist/src/external-files.js.map +1 -1
  16. package/dist/src/hub-catalog.d.ts +11 -0
  17. package/dist/src/hub-catalog.js +91 -0
  18. package/dist/src/hub-catalog.js.map +1 -0
  19. package/dist/src/hub-resources.json +1 -0
  20. package/dist/src/hub-skills.d.ts +53 -0
  21. package/dist/src/hub-skills.js +157 -0
  22. package/dist/src/hub-skills.js.map +1 -0
  23. package/dist/src/index.d.ts +6 -0
  24. package/dist/src/index.js +48 -47
  25. package/dist/src/index.js.map +1 -1
  26. package/dist/src/install-ui.d.ts +16 -0
  27. package/dist/src/install-ui.js +67 -11
  28. package/dist/src/install-ui.js.map +1 -1
  29. package/dist/src/manifest.d.ts +2 -0
  30. package/dist/src/manifest.js +2 -0
  31. package/dist/src/manifest.js.map +1 -1
  32. package/dist/src/refresh.d.ts +1 -0
  33. package/dist/src/refresh.js +13 -10
  34. package/dist/src/refresh.js.map +1 -1
  35. package/dist/src/retained-workflows.d.ts +10 -0
  36. package/dist/src/retained-workflows.js +25 -0
  37. package/dist/src/retained-workflows.js.map +1 -0
  38. package/dist/src/runtime-entry.d.ts +1 -0
  39. package/dist/src/runtime-entry.js +1 -0
  40. package/dist/src/runtime-entry.js.map +1 -1
  41. package/dist/src/skill-trees.d.ts +27 -0
  42. package/dist/src/skill-trees.js +118 -0
  43. package/dist/src/skill-trees.js.map +1 -0
  44. package/dist/src/transaction.d.ts +3 -14
  45. package/dist/src/transaction.js +20 -36
  46. package/dist/src/transaction.js.map +1 -1
  47. package/dist/src/workflow-install.d.ts +15 -0
  48. package/dist/src/workflow-install.js +104 -0
  49. package/dist/src/workflow-install.js.map +1 -0
  50. package/package.json +4 -2
  51. package/skills-hub/automation/grok-bot-team-steward/CHEATSHEET.md +17 -0
  52. package/skills-hub/automation/grok-bot-team-steward/INSTALL.md +23 -0
  53. package/skills-hub/automation/grok-bot-team-steward/LICENSE +21 -0
  54. package/skills-hub/automation/grok-bot-team-steward/README.md +9 -0
  55. package/skills-hub/automation/grok-bot-team-steward/SKILL.md +52 -0
  56. package/skills-hub/automation/grok-bot-team-steward/agents/openai.yaml +4 -0
  57. package/skills-hub/automation/grok-bot-team-steward/references/00-hard-rules.md +50 -0
  58. package/skills-hub/automation/grok-bot-team-steward/references/01-snapshot-schema.md +84 -0
  59. package/skills-hub/automation/grok-bot-team-steward/references/02-export-protocol.md +57 -0
  60. package/skills-hub/automation/grok-bot-team-steward/references/03-restore-protocol.md +64 -0
  61. package/skills-hub/automation/grok-bot-team-steward/references/04-inventory.md +37 -0
  62. package/skills-hub/automation/grok-bot-team-steward/references/05-conversations.md +71 -0
  63. package/skills-hub/automation/grok-bot-team-steward/references/06-sanitizer.md +39 -0
  64. package/skills-hub/automation/grok-bot-team-steward/references/07-prompts.md +87 -0
  65. package/skills-hub/automation/grok-bot-team-steward/references/08-verification.md +30 -0
  66. package/skills-hub/automation/grok-bot-team-steward/references/09-sources.md +31 -0
  67. package/skills-hub/automation/grok-bot-team-steward/scripts/scrub.sh +17 -0
  68. package/skills-hub/automation/grok-bot-team-steward/scripts/snapshot-name.sh +18 -0
  69. package/skills-hub/automation/grok-bot-team-steward/scripts/validate-snapshot.sh +62 -0
  70. package/skills-hub/automation/grok-bot-team-steward/steward/ACTIVATE.md +58 -0
  71. package/skills-hub/automation/grok-bot-team-steward/steward/SETUP-INSTRUCTIONS.md +33 -0
  72. package/skills-hub/automation/grok-bot-team-steward/steward/STEWARD-PROFILE.md +28 -0
  73. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/CHANGELOG.md +3 -0
  74. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/CHARTER.md +27 -0
  75. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/DROP-LIST.md +10 -0
  76. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/GAPS.md +6 -0
  77. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/INIT.md +14 -0
  78. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/MANIFEST.md +30 -0
  79. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/MANIFEST.yaml +20 -0
  80. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/ORG.md +15 -0
  81. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/README.md +8 -0
  82. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/RESTORE.md +13 -0
  83. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/ROSTER.md +11 -0
  84. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/GAPS.md +7 -0
  85. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/MEMORY.md +9 -0
  86. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/PROFILE.md +27 -0
  87. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/agent-spec.md +9 -0
  88. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/conversations/INDEX.md +5 -0
  89. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/conversations/main.md +9 -0
  90. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/routines.md +5 -0
  91. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/skills.md +5 -0
  92. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/connectors.md +7 -0
  93. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/COMPLETED.md +6 -0
  94. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/CREATED.md +6 -0
  95. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/RESTORE-NOTES.md +13 -0
  96. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/SANITIZER.md +7 -0
  97. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/SOURCE.md +8 -0
  98. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/rooms/_ROOM.md +8 -0
  99. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/routines/_ROUTINE.md +12 -0
  100. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/shared/shared-memory.md +5 -0
  101. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/shared/workspace-map.md +5 -0
  102. package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/skills/_SKILL/SKILL.md +18 -0
  103. package/skills-hub/automation/herdr/SKILL.md +246 -0
  104. package/skills-hub/automation/orca/SKILL.md +328 -0
  105. package/skills-hub/coding/gitea-repo/LICENSE +21 -0
  106. package/skills-hub/coding/gitea-repo/SKILL.md +50 -0
  107. package/skills-hub/coding/gitea-repo/agents/openai.yaml +4 -0
  108. package/skills-hub/coding/gitea-repo/references/auth-and-scopes.md +58 -0
  109. package/skills-hub/coding/gitea-repo/references/endpoint-map.md +80 -0
  110. package/skills-hub/coding/gitea-repo/references/pagination-and-errors.md +34 -0
  111. package/skills-hub/coding/gitea-repo/scripts/gitea_api.py +814 -0
  112. package/skills-hub/coding/github-repo-steward/LICENSE +21 -0
  113. package/skills-hub/coding/github-repo-steward/SKILL.md +48 -0
  114. package/skills-hub/coding/github-repo-steward/agents/openai.yaml +4 -0
  115. package/skills-hub/coding/github-repo-steward/references/00-auth-and-tokens.md +73 -0
  116. package/skills-hub/coding/github-repo-steward/references/01-inventory.md +55 -0
  117. package/skills-hub/coding/github-repo-steward/references/02-lifecycle.md +57 -0
  118. package/skills-hub/coding/github-repo-steward/references/03-stars.md +42 -0
  119. package/skills-hub/coding/github-repo-steward/references/04-hygiene.md +40 -0
  120. package/skills-hub/coding/github-repo-steward/references/05-sources.md +42 -0
  121. package/skills-hub/coding/github-repo-steward/scripts/inventory.sh +64 -0
  122. package/skills-hub/coding/vscode-fullstack/LICENSE +21 -0
  123. package/skills-hub/coding/vscode-fullstack/SKILL.md +47 -0
  124. package/skills-hub/coding/vscode-fullstack/agents/openai.yaml +4 -0
  125. package/skills-hub/coding/vscode-fullstack/references/extensions-and-settings.md +181 -0
  126. package/skills-hub/coding/vscode-fullstack/references/profiles-and-validation.md +62 -0
  127. package/skills-hub/coding/vscode-fullstack/references/runtime-reuse.md +52 -0
  128. package/skills-hub/design/photo-retouch/LICENSE +21 -0
  129. package/skills-hub/design/photo-retouch/SKILL.md +50 -0
  130. package/skills-hub/design/photo-retouch/agents/openai.yaml +4 -0
  131. package/skills-hub/design/photo-retouch/references/basic-retouch.md +58 -0
  132. package/skills-hub/design/photo-retouch/references/formal-portrait.md +57 -0
  133. package/skills-hub/design/photo-retouch/references/object-and-canvas.md +82 -0
  134. package/skills-hub/design/photo-retouch/references/product-photo.md +41 -0
  135. package/skills-hub/design/photo-retouch/references/repair-and-look.md +61 -0
  136. package/skills-hub/design/photo-retouch/references/social-effects.md +55 -0
  137. package/skills-hub/design/photo-retouch/references/travel-creative.md +79 -0
  138. package/skills-hub/system/clash-client-profile/LICENSE +21 -0
  139. package/skills-hub/system/clash-client-profile/SKILL.md +79 -0
  140. package/skills-hub/system/clash-client-profile/agents/openai.yaml +4 -0
  141. package/skills-hub/system/clash-client-profile/references/acceptance.md +81 -0
  142. package/skills-hub/system/clash-client-profile/references/browser-privacy.md +35 -0
  143. package/skills-hub/system/clash-client-profile/references/clash-verge.md +40 -0
  144. package/skills-hub/system/clash-client-profile/references/dns-workflow.md +147 -0
  145. package/skills-hub/system/clash-client-profile/references/flclash.md +24 -0
  146. package/skills-hub/system/clash-client-profile/references/network-performance.md +25 -0
  147. package/skills-hub/system/clash-client-profile/references/platform-dns.md +109 -0
  148. package/skills-hub/system/clash-client-profile/references/sources.md +46 -0
  149. package/skills-hub/system/clash-client-profile/references/troubleshooting.md +82 -0
  150. package/skills-hub/system/clash-client-profile/scripts/dns_guard.py +650 -0
  151. package/skills-hub/system/clash-client-profile/scripts/proxy_doctor.py +213 -0
  152. package/skills-hub/system/clash-client-profile/scripts/render_rules.py +34 -0
  153. package/skills-hub/system/clash-client-profile/templates/ai-rules.yaml +18 -0
  154. package/skills-hub/system/clash-client-profile/templates/dns-request.example.json +9 -0
  155. package/skills-hub/system/clash-client-profile/templates/dns.yaml +8 -0
  156. package/skills-hub/system/linux-dev-disk-cleanup/LICENSE +21 -0
  157. package/skills-hub/system/linux-dev-disk-cleanup/SKILL.md +42 -0
  158. package/skills-hub/system/linux-dev-disk-cleanup/agents/openai.yaml +4 -0
  159. package/skills-hub/system/linux-dev-disk-cleanup/references/linux-cleanup-workflow.md +145 -0
  160. package/skills-hub/system/optimize-codex-config/LICENSE +21 -0
  161. package/skills-hub/system/optimize-codex-config/SKILL.md +101 -0
  162. package/skills-hub/system/optimize-codex-config/agents/openai.yaml +4 -0
  163. package/skills-hub/system/optimize-codex-config/assets/capabilities.example.json +22 -0
  164. package/skills-hub/system/optimize-codex-config/references/cli.md +35 -0
  165. package/skills-hub/system/optimize-codex-config/references/configuration-contract.md +33 -0
  166. package/skills-hub/system/optimize-codex-config/references/optimization-method.md +38 -0
  167. package/skills-hub/system/optimize-codex-config/references/privacy.md +41 -0
  168. package/skills-hub/system/optimize-codex-config/references/sources.md +24 -0
  169. package/skills-hub/system/optimize-codex-config/references/statusline.md +31 -0
  170. package/skills-hub/system/optimize-codex-config/references/transactions.md +32 -0
  171. package/skills-hub/system/optimize-codex-config/references/troubleshooting.md +95 -0
  172. package/skills-hub/system/optimize-codex-config/scripts/adapters/claude.mjs +24 -0
  173. package/skills-hub/system/optimize-codex-config/scripts/adapters/codex.mjs +10 -0
  174. package/skills-hub/system/optimize-codex-config/scripts/ai-cli-config.mjs +67 -0
  175. package/skills-hub/system/optimize-codex-config/scripts/audit-codex-config.mjs +762 -0
  176. package/skills-hub/system/optimize-codex-config/scripts/lib/document.mjs +166 -0
  177. package/skills-hub/system/optimize-codex-config/scripts/lib/inspect.mjs +211 -0
  178. package/skills-hub/system/optimize-codex-config/scripts/lib/io.mjs +104 -0
  179. package/skills-hub/system/optimize-codex-config/scripts/lib/plan.mjs +79 -0
  180. package/skills-hub/system/optimize-codex-config/scripts/lib/transaction.mjs +205 -0
  181. package/skills-hub/system/optimize-codex-config/scripts/lib/writers.mjs +46 -0
  182. package/skills-hub/system/optimize-codex-config/scripts/statusline/claude-statusline.mjs +94 -0
  183. package/skills-hub/system/optimize-codex-config/scripts/vendor/THIRD-PARTY-NOTICES.txt +250 -0
  184. package/skills-hub/system/optimize-codex-config/scripts/vendor/build-package-lock.json +488 -0
  185. package/skills-hub/system/optimize-codex-config/scripts/vendor/manifest.json +14 -0
  186. package/skills-hub/system/optimize-codex-config/scripts/vendor/parsers.mjs +16 -0
  187. package/skills-hub/system/proxy-region-locale/LICENSE +21 -0
  188. package/skills-hub/system/proxy-region-locale/SKILL.md +42 -0
  189. package/skills-hub/system/proxy-region-locale/agents/openai.yaml +4 -0
  190. package/skills-hub/system/proxy-region-locale/references/linux.md +35 -0
  191. package/skills-hub/system/proxy-region-locale/references/macos.md +31 -0
  192. package/skills-hub/system/proxy-region-locale/references/windows.md +45 -0
  193. package/skills-hub/system/system-health-audit/LICENSE +21 -0
  194. package/skills-hub/system/system-health-audit/SKILL.md +41 -0
  195. package/skills-hub/system/system-health-audit/agents/openai.yaml +4 -0
  196. package/skills-hub/system/system-health-audit/references/platforms.md +37 -0
  197. package/skills-hub/system/system-health-audit/scripts/system_audit.py +41 -0
  198. package/skills-hub/system/windows-dev-disk-cleanup/LICENSE +21 -0
  199. package/skills-hub/system/windows-dev-disk-cleanup/SKILL.md +40 -0
  200. package/skills-hub/system/windows-dev-disk-cleanup/agents/openai.yaml +4 -0
  201. package/skills-hub/system/windows-dev-disk-cleanup/references/windows-cleanup-workflow.md +121 -0
  202. package/skills-hub/writing/.gitkeep +0 -0
  203. package/skills-hub/writing/job-application/LICENSE +21 -0
  204. package/skills-hub/writing/job-application/SKILL.md +160 -0
  205. package/skills-hub/writing/job-application/agents/openai.yaml +4 -0
  206. package/skills-hub/writing/job-application/assets/resume.css +10 -0
  207. package/skills-hub/writing/job-application/config.example.json +9 -0
  208. package/skills-hub/writing/job-application/references/company-research.md +7 -0
  209. package/skills-hub/writing/job-application/references/corpus-schema.md +33 -0
  210. package/skills-hub/writing/job-application/references/honesty-gate.md +29 -0
  211. package/skills-hub/writing/job-application/references/improvement-plan.md +15 -0
  212. package/skills-hub/writing/job-application/references/ingest-protocol.md +18 -0
  213. package/skills-hub/writing/job-application/references/interview-speech.md +16 -0
  214. package/skills-hub/writing/job-application/references/jd-parse.md +18 -0
  215. package/skills-hub/writing/job-application/references/persist-paths.md +34 -0
  216. package/skills-hub/writing/job-application/references/question-bank.md +19 -0
  217. package/skills-hub/writing/job-application/references/rendering.md +9 -0
  218. package/skills-hub/writing/job-application/references/resume-playbook.md +30 -0
  219. package/skills-hub/writing/job-application/scripts/README.md +12 -0
  220. package/skills-hub/writing/job-application/scripts/ingest_kb.py +188 -0
  221. package/skills-hub/writing/job-application/scripts/render_resume.py +144 -0
  222. package/skills-hub/writing/job-application/scripts/validate_claims.py +52 -0
  223. package/skills-hub/writing/job-application/scripts/write_config.py +72 -0
  224. package/skills-hub/writing/job-application/templates/application-index.md +10 -0
  225. package/skills-hub/writing/job-application/templates/brief.md +16 -0
  226. package/skills-hub/writing/job-application/templates/changelog.md +6 -0
  227. package/skills-hub/writing/job-application/templates/company-research.md +15 -0
  228. package/skills-hub/writing/job-application/templates/corpus.md +11 -0
  229. package/skills-hub/writing/job-application/templates/evidence-map.md +5 -0
  230. package/skills-hub/writing/job-application/templates/framings.md +6 -0
  231. package/skills-hub/writing/job-application/templates/improvement-plan.md +16 -0
  232. package/skills-hub/writing/job-application/templates/ingest-log.md +4 -0
  233. package/skills-hub/writing/job-application/templates/known-gaps.md +4 -0
  234. package/skills-hub/writing/job-application/templates/match-report.md +21 -0
  235. package/skills-hub/writing/job-application/templates/methodology-cache.md +10 -0
  236. package/skills-hub/writing/job-application/templates/persist-index.md +11 -0
  237. package/skills-hub/writing/job-application/templates/profile.md +21 -0
  238. package/skills-hub/writing/job-application/templates/questions.md +22 -0
  239. package/skills-hub/writing/job-application/templates/resume-original.md +10 -0
  240. package/skills-hub/writing/job-application/templates/resume-tailored.md +21 -0
  241. package/skills-hub/writing/job-application/templates/sources-index.md +6 -0
  242. package/skills-hub/writing/job-application/templates/speech.md +19 -0
  243. package/skills-hub/writing/job-application/templates/stories.md +9 -0
  244. package/skills-hub/writing/job-application/templates/story-bank.md +11 -0
  245. package/skills-hub/writing/job-application/templates/strengths.md +4 -0
  246. package/skills-hub/writing/job-application/templates/style-memory.md +7 -0
  247. package/skills-hub/writing/ste-zh/LICENSE +21 -0
  248. package/skills-hub/writing/ste-zh/NOTICE.md +9 -0
  249. package/skills-hub/writing/ste-zh/SKILL.md +130 -0
  250. package/skills-hub/writing/ste-zh/agents/openai.yaml +6 -0
  251. package/skills-hub/writing/ste-zh/examples/zh-report.md +23 -0
  252. package/skills-hub/writing/ste-zh/references/english-modes.md +13 -0
  253. package/skills-hub/writing/ste-zh/references/terminology.md +13 -0
  254. package/skills-hub/writing/ste-zh/references/zh-rules.md +29 -0
  255. package/template/.speculo/refresh-contract.json +2 -0
  256. package/template/canonical/canonical-specdev-goal-plan.md +170 -101
  257. package/template/canonical/canonical-specdev-grill-with-docs.md +346 -277
  258. package/template/canonical/canonical-specdev-spec.md +346 -277
  259. package/template/canonical/canonical-specdev-tickets.md +346 -277
  260. package/template/canonical/canonical-specdev-wayfinder.md +346 -277
  261. package/template/lib/speculo-runtime.mjs +183 -8
  262. package/template/references/coordination/coordination-contract.md +12 -4
  263. package/template/references/coordination/modes/cli.md +3 -3
  264. package/template/references/coordination/modes/herdr.md +11 -11
  265. package/template/references/coordination/modes/orca.md +14 -14
  266. package/template/references/coordination/project-facts.schema.json +1 -0
  267. package/template/references/coordination/report-template.md +18 -0
  268. package/template/references/coordination/result-and-recovery.md +3 -3
  269. package/template/references/coordination/session-files.md +49 -56
  270. package/template/references/coordination/task-brief.md +3 -3
  271. package/template/references/coordination/task-template.md +25 -0
  272. package/template/workflows/specdev/common/rules/path-reference-contract.md +1 -1
  273. package/template/workflows/specdev/common/rules/workflow-state-and-lifecycle.md +1 -1
  274. package/template/workflows/specdev/common/schemas/session-locator.schema.json +15 -0
  275. package/template/workflows/specdev/common/skills/code-review/references/review-evidence.md +1 -1
  276. package/template/workflows/specdev/common/tools/README.md +6 -0
  277. package/template/workflows/specdev/common/tools/delivery-artifacts.mjs +1 -1
  278. package/template/workflows/specdev/common/tools/validate-handoff.mjs +108 -0
  279. package/template/workflows/specdev/specdev-i-implement/assets/evidence-template.md +2 -2
  280. package/template/workflows/specdev/specdev-i-implement/references/implementation-procedure.md +1 -1
  281. package/template/workflows/specdev/specdev-i-init-setup/SKILL.md +7 -6
  282. package/template/workflows/specdev/specdev-i-init-setup/references/first-setup.md +30 -1
  283. package/template/workflows/specdev/specdev-p-goal-plan/references/lead-orchestration.md +1 -1
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ting'an Wang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: proxy-region-locale
3
+ description: 按用户指定地点修改 macOS、Windows、Linux 的时区、语言或区域格式;明确要求时参考现有代理出口。仅查询出口、代理/DNS 排错及服务地区拒绝不适用,区域设置不改变网络路径。
4
+ license: MIT
5
+ compatibility: Requires native target OS configuration access; privilege and login/restart requirements vary by field. Exit-IP lookup requires explicit network approval.
6
+ metadata:
7
+ author: NAMEWTA
8
+ wta-format-reviewed: '2026-10-06'
9
+ ---
10
+ # 系统时区与区域:字段级修改
11
+
12
+ ## 输入与输出契约
13
+
14
+ 明确目标城市/时区 ID、要改的字段、用户或系统作用域。只改时区就不顺带改语言、键盘、NTP、浏览器或账号国家;不从 IP 推断这些偏好。
15
+
16
+ 逐字段报告原值→新值、实际读回、待登录/重启、未改项与本轮回滚位置。权限不足或修改后发生用户并发改动时停止,不覆盖其他设置。
17
+
18
+ 示例:“把 Windows 当前用户时区设为纽约,只改时区。”应进入本技能;“Claude Code 在美国节点上提示地区错误,请修 DNS 泄漏。”不应由本技能接管。
19
+
20
+ 先确认实际目标主机、系统、版本、当前用户和作用域(当前用户/系统/登录窗口/浏览器)。只读请求不建备份、不改配置。用户只要时区时,不改语言、键盘、NTP、浏览器、账号国家或位置服务。
21
+
22
+ 按需读 [macOS](references/macos.md)、[Windows](references/windows.md)、[Linux](references/linux.md)。脚本在 WSL/远程环境运行不能代表宿主 Mac/Windows。缺少命令或权限时停在可读项,不直接写底层文件绕过拒绝。
23
+
24
+ ## 选择目标与前置验证
25
+
26
+ 用户指定城市/时区优先。只有明确要求按代理出口对齐,才允许使用现有代理路径查询地理数据;说明第三方将看到出口 IP。单个 echo 请求不代表所有应用出口,多出口/城市不确定就不猜。公开 IP 地理信息不应被用来推断键盘、语言或账号所在地。
27
+
28
+ 使用该系统接受的时区列表验证 ID;Windows ID 与 IANA ID 不可互换。语言包、locale 与用户输入法分别核对,目标语言前置但保留已有对象、输入法和顺序。具体语言/键盘仍有歧义时不扩大修改范围。
29
+
30
+ ## 快照、修改与恢复
31
+
32
+ POSIX 可用 `mktemp -d` 并限制目录权限;Windows 使用当前用户私有目录下的新 GUID 子目录,检查 ACL,不假定 chmod 有效。每轮不覆盖旧快照,保存本轮会改的字段/文件原内容、权限/所有者、哈希和“原先不存在”。快照可能含敏感偏好,只保存在本地私有目录。
33
+
34
+ 先预览字段差异,沿用已有具名授权;无变化不写入。仅为固定用户指定时区、且已授权时处理自动时区,不顺带关闭定位或自动对时。语言、系统 locale、纸张、度量、登录窗口和浏览器各自是不同作用域。
35
+
36
+ 不更换 NTP、不手设时钟、不关闭 TLS 或防火墙。时间服务器解析到 fake-ip 范围时停止该源的探测,不据此断言全局同步失败。浏览器运行中不写偏好;仅在用户明确要求且确认 Profile 后修改应用语言。
37
+
38
+ 写后逐项读回。回滚前检测本轮后用户改动;只恢复本轮字段与原先不存在状态,冲突停止,不整文件覆盖后续配置。语言重登录、系统 locale 可能重启的生效条件按系统报告,不自动退出会话或重启。
39
+
40
+ ## 交付
41
+
42
+ 列出目标时区、修改作用域、原值/新值、读回证据、待登录/待重启、未做项及本地回滚位置。改变时区或语言不会修复源 IP 路由,不对服务地区资格作承诺。
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "时区与区域"
3
+ short_description: "按字段设置跨平台时区与区域,保留原值并核对生效作用域"
4
+ default_prompt: "请使用 $proxy-region-locale:把 Windows 当前用户时区设为纽约,只改时区。"
@@ -0,0 +1,35 @@
1
+ # Linux / WSL / 容器的时区与 locale
2
+
3
+ 先读 `/etc/os-release`,检查 PID 1、systemd/DBus 可用性、当前用户与图形会话。发行版、glibc/musl、桌面、容器和 WSL 的管理方式不同,不能把 Ubuntu GNOME 命令当通用配置。
4
+
5
+ ## 只读与作用域
6
+
7
+ 读 `locale`、`locale -a`;systemd 可用时读 `timedatectl status`、`localectl status`。locale -a 中名称拼写可能归一化,以实际系统接受值验证。不把工具存在当服务可用。
8
+
9
+ 图形设置仅操作已确认用户的实际会话总线。没有会话或 schema 就跳过桌面项;不得假造 GUI_UID 或冒用当前聚焦用户。容器修改不代表宿主生效。
10
+
11
+ ## 时区
12
+
13
+ systemd 管理的系统在 `timedatectl list-timezones` 中验证 IANA ID 后,按授权 `timedatectl set-timezone "$IANA_TZ"` 并读回。保持 RTC 约定不变,不执行 set-local-rtc、不手设时钟。
14
+
15
+ 无 systemd 的系统先查发行版支持的管理方式;不能因为 timedatectl 不存在就写固定 Ubuntu 路径。WSL、只读容器或不可变系统停在计划;宿主时区和容器 TZ 环境分别处理。权限拒绝后不改 /etc/localtime 绕过。
16
+
17
+ ## locale 与语言
18
+
19
+ 仅改时区时不碰 locale。生成 locale、安装界面语言包、更改系统 LANG 与改变用户桌面语言是不同动作。目标 locale 已存在优先复用;不存在时根据发行版确认生成/安装方式并取得具名授权。不要直接 apt-get install -y 通配语言包,不自行修改 locale.gen 正则。
20
+
21
+ systemd/localectl 管理的系统可在授权后 `localectl set-locale "LANG=$LOCALE"`;保留 LC_* 的既有用户覆盖,解释 LANG、LC_ALL、LC_* 的优先级。不要设置全局 LC_ALL 来强制所有格式。无 localectl 时使用发行版文档,不能伪装为已完成。
22
+
23
+ ## 键盘、桌面、纸张
24
+
25
+ 语言、国家不决定物理键盘。仅在用户明确要求布局时使用该系统列出的控制台/XKB 布局;两者名称不保证相同。不在 DBus Access denied 后直接改 /etc/default/keyboard。保留输入法对象和顺序;读回不符则恢复本轮项。
26
+
27
+ GNOME gsettings、AccountsService、天气、定位、纸张和浏览器 managed policy 都有独立作用域,默认不改。真正需要时先 introspect / list-keys 核对 schema、类型和当前用户会话,读取本轮键值作备份;不存在或拒绝就停止。不能为了时区同步关闭全部定位或改变天气城市。
28
+
29
+ 格式以目标 locale 的本机 libc 输出为准,同时保留用户定制。libpaper、桌面格式与 LANG 可能不同,报告差异而不是强制覆盖所有层。
30
+
31
+ ## 回滚与验收
32
+
33
+ 使用新的权限受限目录保存本轮原文件、owner/mode、哈希与原先不存在状态;只恢复本轮字段,冲突停止。新会话才完整继承 LANG;不自动重启 gdm、不关闭用户浏览器。
34
+
35
+ NTP 使用已安装服务的只读状态;单个候选源失败不代表整个系统失步。不要更换 NTP、改路由或 DNS 来完成区域任务。所有未测桌面、容器宿主同步和生效状态明确列为未验证。
@@ -0,0 +1,31 @@
1
+ # macOS 时区与区域
2
+
3
+ 先 `sw_vers`、`uname -m` 和当前用户确认目标,不把历史机器版本当兼容保证。优先系统支持的界面和命令;不关闭 SIP。读取或写入遇权限限制时停止该项。
4
+
5
+ ## 只读与快照
6
+
7
+ 通过 `systemsetup -gettimezone`(可能要求管理员)、`readlink /etc/localtime`、`defaults read -g AppleLanguages`、`defaults read -g AppleLocale` 获取必要字段。当前用户、系统登录窗口与浏览器偏好分开。只备份本轮要改的键;全局 export 可以保留作证据,但回滚不自动整域 import 覆盖用户其他设置。
8
+
9
+ 保存时区和自动时区原状态、原语言列表与输入源。只改当前用户区域时,不写 `/Library/Preferences/.GlobalPreferences.plist`。对系统范围的修改另行确认授权,不能把一次 sudo 授权扩展成所有偏好写入。
10
+
11
+ ## 时区
12
+
13
+ 从 `systemsetup -listtimezones` 核验名称;纽约示例为 America/New_York。用户要求固定时区且授权关闭自动时区时,优先通过当前系统设置完成;不要盲写私有 timed 数据库或废弃的 selected_city 标识。
14
+
15
+ ```bash
16
+ sudo systemsetup -settimezone America/New_York
17
+ ```
18
+
19
+ 执行后核对 `systemsetup -gettimezone` 与 localtime 链接;退出码或 stderr 任一单项均不足以证明成功。权限失败不反复提权。不要更换 NTP 或修改 Calendar 事件;应用独立时区只在用户要求时处理。
20
+
21
+ ## 语言、格式与输入法
22
+
23
+ 目标语言置于 AppleLanguages 第一位,其他原值保留;AppleLocale 是字符串,例如 en_US。示例不是可直接覆盖的语言数组。使用当前系统的区域默认,再尊重用户已有日期、24 小时、度量、温度与纸张偏好;“改地区”不自动抹掉用户格式定制。
24
+
25
+ 不根据国家推断键盘,不删除已有拼音/IBus 类输入源,不使用收缩语言列表的方法。没有授权不改登录窗口、听写语言或所有用户偏好。修改后读回字段;GUI 语言可能需要用户重登录,不能凭 defaults 写入宣布界面已改变。
26
+
27
+ ## 浏览器与 NTP
28
+
29
+ 浏览器语言只处理用户明确指定、已停止运行且确认的 Profile。保留 JSON 原键/格式,不把 Default 当成当前 Profile。不改变 Apple ID、App Store 国家或网站登录态。
30
+
31
+ `systemsetup -getusingnetworktime`、`-getnetworktimeserver` 为只读信息;某次 sntp 探测不等于持续同步状态。没有证据就标记未验证,不手设日期、不重启、不杀浏览器。
@@ -0,0 +1,45 @@
1
+ # Windows 时区与区域
2
+
3
+ 使用原生 PowerShell,先检查可用 cmdlet 与当前权限;查询和当前用户设置不一律要求管理员。系统级写入需要相应授权,拒绝就停止,不改注册表绕过管理策略。
4
+
5
+ ## 快照
6
+
7
+ 在当前用户私有目录创建唯一 GUID 子目录,检查 ACL,保存本轮字段。时间/语言对象可用 Export-Clixml 保留结构,另外保存 JSON 供审查;恢复时逐项验证对象和版本,不盲目导入执行内容。区分原先不存在的值。备份可能含用户偏好,不上传仓库。
8
+
9
+ 只读 `Get-TimeZone`、`Get-WinUserLanguageList`、`Get-Culture`、`Get-WinSystemLocale`、`Get-WinHomeLocation`;不要导出整个注册表。当前用户区域不授权系统 locale 或所有用户修改。
10
+
11
+ ## 时区
12
+
13
+ ID 必须出现在 `Get-TimeZone -ListAvailable` 或 `tzutil /l`。纽约示例为 Eastern Standard Time;不要传入 America/New_York,也不要用 `_dstoff` 关闭夏令时。
14
+
15
+ ```powershell
16
+ Set-TimeZone -Id 'Eastern Standard Time'
17
+ Get-TimeZone
18
+ ```
19
+
20
+ 固定时区时按当前版本设置界面/管理政策关闭自动时区,保存原状态;不盲改 tzautoupdate 注册表、不停 W32Time、不改计划任务或 NTP。
21
+
22
+ ## 语言与格式
23
+
24
+ 目标已在 Get-WinUserLanguageList 中时移动原对象到首位,保留 InputMethodTips。目标不存在才建立新对象,按原顺序追加其他语言。新增语言包属于安装操作,单独授权,不因设置区域而下载语言包。
25
+
26
+ ```powershell
27
+ $Existing = @(Get-WinUserLanguageList)
28
+ $List = New-WinUserLanguageList -Language 'en-US'
29
+ $Current = $Existing | Where-Object LanguageTag -eq 'en-US' | Select-Object -First 1
30
+ if ($Current) { $List[0] = $Current }
31
+ foreach ($Lang in $Existing) {
32
+ if ($Lang.LanguageTag -ne 'en-US') { [void]$List.Add($Lang) }
33
+ }
34
+ # 仅在用户已授权 en-US 语言列表调整后执行:
35
+ Set-WinUserLanguageList -LanguageList $List -Force
36
+ Get-WinUserLanguageList
37
+ ```
38
+
39
+ 仅格式授权时使用 Set-Culture 并读回,不自动改语言列表。Home Location、UI 语言和非 Unicode 程序使用的系统 locale 是不同概念。`Set-WinSystemLocale` 只在用户要求该系统设置时执行;系统 locale 的生效可能需要重启,不能承诺仅重登录就完成。不要自动重启。
40
+
41
+ 保留用户日期/数字/输入法定制;GeoID 用当前系统资料确认,不把美国 244 写到所有国家。不改变 Microsoft 账号或商店国家。
42
+
43
+ ## 验收
44
+
45
+ 逐项读回,输入法丢失或列表被缩短就恢复本轮值。浏览器按实际 Profile 且关闭状态处理。`w32tm /query /status` 只读,失败不意味着应重新配置 NTP。分别报告已保存、待登录、待重启、未验证。
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ting'an Wang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: system-health-audit
3
+ description: 只读审计 Windows、macOS、Linux 开发机资源和工具链,区分主机、WSL、容器与远程环境,为变慢或空间紧张提供证据和具名计划。不自动清理、调参、改代理或配置编辑器。
4
+ license: MIT
5
+ compatibility: Bundled baseline requires Python 3.10+ on Windows/macOS/Linux. Default collection is offline, read-only and unprivileged.
6
+ metadata:
7
+ author: NAMEWTA
8
+ wta-format-reviewed: '2026-10-06'
9
+ ---
10
+ # 跨平台系统健康审计
11
+
12
+ ## 输入与输出契约
13
+
14
+ 取得症状、发生时间、目标环境、受影响工作负载与允许的采样范围。先复用已读证据,再按需要采集短时基线,不用当前容器代替用户电脑。
15
+
16
+ 给出采样窗口/负载、已观察数值、瓶颈假设及证据强弱、具名下一步与未验证项。仅审计时明确零系统修改,不能声称已优化或已提速。
17
+
18
+ 示例:“Windows 开发机最近编译慢,先只读定位瓶颈,不删除东西。”应进入本技能;“直接清理我已经批准的 C 盘缓存目录。”不应由本技能接管。
19
+
20
+ 先确认目标是用户本机、远程主机、WSL 还是容器;工具所在环境不能替代用户设备。默认仅审计。已有明确具体改动授权也不直接套用一键优化;先验证前置条件和回滚。
21
+
22
+ Python 3.10+ 的 [基线脚本](scripts/system_audit.py) 不联网、不提权、不递归扫描、不调用包管理器、不改设置。`SKILL_DIR` 为本文件目录:
23
+
24
+ ```bash
25
+ python3 "$SKILL_DIR/scripts/system_audit.py"
26
+ python3 "$SKILL_DIR/scripts/system_audit.py" --path /path/on/target/volume
27
+ ```
28
+
29
+ PowerShell 使用 `& python "$SKILL_DIR\scripts\system_audit.py" --path 'C:\'`,先验证解释器;有 py launcher 可用 `py -3`。路径包含空格必须引用。输出隐藏用户名和路径,只说明所选文件系统;CPU 数量和磁盘余量不是性能评分。
30
+
31
+ 按系统读取 [平台工作流](references/platforms.md),采集与症状相关的短时证据。复用已有结果,避免反复全盘扫描。记录版本、架构、权限、工具存在性、采样时间/负载、磁盘可用量以及失败/未知项。默认不导出完整环境、进程命令行、凭据或日志。
32
+
33
+ ## 优化计划
34
+
35
+ 先给基线与瓶颈假设,再给具名动作、预期收益、影响、授权、回滚和验证命令。区分缓存/用户数据/活动运行时,不能凭目录名删除。系统更新、驱动、固件、内核参数、杀毒、swap/pagefile、索引、Docker/WSL 虚拟盘与服务开关都不在一般审计授权内。
36
+
37
+ Linux 具名空间清理由 linux-dev-disk-cleanup;Windows 具名空间清理由 windows-dev-disk-cleanup;Clash 网络由 clash-client-profile;系统时区/语言由 proxy-region-locale;VS Code Profile 由 vscode-fullstack。未安装其他技能时交付清单,不假定兄弟目录存在。
38
+
39
+ ## 完成标准
40
+
41
+ 提交症状、目标环境、已观察基线、证据支持的假设、分优先级动作与未验证项。优化收益应在可比工作负载下前后测量;没有修改就明确“仅审计”,不报告已提速。
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "跨平台系统审计"
3
+ short_description: "只读建立跨平台开发机基线,区分环境并形成有证据的优化计划"
4
+ default_prompt: "请使用 $system-health-audit:Windows 开发机最近编译慢,先只读定位瓶颈,不删除东西。"
@@ -0,0 +1,37 @@
1
+ # 系统健康:按平台取证,不套用一键优化
2
+
3
+ ## 共通步骤
4
+
5
+ 明确慢的是启动、交互、编译、磁盘、网络还是远程会话;记录工作负载、采样窗口、机器电源模式与可用空间。先用短时采样找瓶颈,再对具名路径/进程深入。不要默认全盘遍历、读取全部日志或安装诊断依赖。命令缺失/权限拒绝就记录,不自动提权。
6
+
7
+ 工具版本与 CPU 架构必须对应实际进程。可执行文件存在不等于当前 shell 正在使用正确版本。保留当前 Agent、编辑器、包管理器和其活动运行时。网络故障先诊断代理/证书/解析,禁止用关闭 TLS、杀毒或防火墙“加速”。
8
+
9
+ ## macOS
10
+
11
+ `sw_vers`、`uname -m` 检查版本/架构;`df -h` 看卷余量;`vm_stat` 与活动监视器查看内存压力/交换;`iostat -w 1 -c 3` 做短时磁盘样本(参数以本机帮助为准)。Apple Silicon 上区分原生与 Rosetta、`/opt/homebrew` 与 `/usr/local`,不为统一路径移动正在使用的工具链。
12
+
13
+ APFS clone、稀疏文件、快照和 purgeable 空间使目录大小相加不等于可释放量。Time Machine 快照不是普通缓存;不自动删。iCloud 占位文件不能在审计时批量读取而触发下载。登录项/后台项只列目标,不全停。禁止默认关闭 SIP、Spotlight、Gatekeeper 或清空所有 Library/Caches;所谓“释放内存”不等于性能提升。
14
+
15
+ 只有定位到独立可重建缓存、没有活动占用、用户授权且有验证方法时才提出清理。开发工具可用自身只读信息查询;brew cleanup、Docker prune 等写操作留在具名计划中,不在诊断时运行。
16
+
17
+ ## Windows
18
+
19
+ 先 `$PSVersionTable`、`Get-CimInstance Win32_OperatingSystem`(只选版本/架构等必要字段)、`Get-Volume`。用任务管理器/资源监视器或短时计数器区分 CPU、内存提交量与磁盘队列;Get-Counter 的计数器名受语言影响,不假定英文路径通用。
20
+
21
+ NTFS 压缩、硬链接、junction/reparse point、OneDrive 占位文件导致逻辑大小不等于释放量。扫描不跟随重解析点,不遍历 Windows 系统目录清理。WinSxS、pagefile、WinRE、Defender、更新维护与还原点不包含在普通审计/清理授权。
22
+
23
+ 原生 Windows、WSL 与 Docker Desktop 三个环境单独记录。删除 Linux 文件不保证 VHDX 已向宿主回收空间;压缩/优化虚拟盘必须识别归属、备份、停止对应工作负载并单独授权。不要停止当前 Agent 所在 WSL 实例。
24
+
25
+ ## Linux
26
+
27
+ `cat /etc/os-release`、`uname -m`、`df -h`、`df -i` 先区分空间与 inode;有 procps 时 `free -h`、`vmstat 1 3`,有工具时用短时 iostat 样本。page cache 可回收,低 free 本身不是内存故障。容器可见 CPU/内存可能受 cgroup 限制,不能用宿主总量估算容器容量。
28
+
29
+ systemd 存在才查 `systemctl --failed`、`journalctl --disk-usage`,不把日志全部导出。不默认 `journalctl --vacuum-*`、drop_caches、swapoff、sysctl、禁用 SELinux/AppArmor。只读判断缓存、日志保留政策与磁盘挂载关系,写操作独立授权。
30
+
31
+ 区分 apt/dnf/pacman、glibc/musl 和桌面/无头系统,不猜包名。`du` 只扫具名目录且不跨文件系统;只读扫描也应限定成本。Docker/Podman volumes 可能含数据库,禁止把 prune --volumes 当常规优化。
32
+
33
+ ## 验证与回滚
34
+
35
+ 报告前后相同 workload 下的时长、峰值资源/空间与运行状态,标明采样误差。可用空间变化不等于性能变化。权限、工具或目标机器不可访问时交付具体缺口,不以容器结果代替用户电脑。
36
+
37
+ 所有系统写入遵守对应任务技能的备份、预览、最小修改和回滚流程。回滚不保证可逆地恢复删除的数据;没有恢复方案就不能称为可回滚优化。
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env python3
2
+ """Bounded, local-only baseline for Windows/macOS/Linux. No cleanup or tuning."""
3
+ from __future__ import annotations
4
+ import argparse
5
+ import json
6
+ import os
7
+ from pathlib import Path
8
+ import platform
9
+ import shutil
10
+
11
+
12
+ def audit(path: Path) -> dict:
13
+ if not path.is_dir():
14
+ raise ValueError("Select an existing directory on the filesystem to inspect")
15
+ usage = shutil.disk_usage(path)
16
+ release = platform.release()
17
+ return {"schema_version": 1, "os": platform.system(), "release": release,
18
+ "architecture": platform.machine(), "logical_cpus": os.cpu_count(),
19
+ "python": platform.python_version(),
20
+ "wsl_hint": "microsoft" in release.lower(),
21
+ "container_hint": Path("/.dockerenv").exists() if os.name != "nt" else False,
22
+ "filesystem": {"total_bytes": usage.total, "used_bytes": usage.used, "free_bytes": usage.free},
23
+ "tools_present": {name: shutil.which(name) is not None for name in
24
+ ("git", "node", "npm", "code", "gh", "bash", "curl.exe" if os.name == "nt" else "curl")},
25
+ "limitations": ["Current filesystem only, no recursive scan", "Hints are not environment proof",
26
+ "Tool presence is not version or health verification", "No performance conclusion from a single sample"],
27
+ "actions": {"network_requests": 0, "files_deleted": 0, "settings_changed": 0}}
28
+
29
+
30
+ def main() -> None:
31
+ p = argparse.ArgumentParser(description=__doc__)
32
+ p.add_argument("--path", type=Path, default=Path.cwd(), help="Existing directory on the target filesystem; path is not echoed")
33
+ args = p.parse_args()
34
+ try:
35
+ print(json.dumps(audit(args.path), ensure_ascii=False, indent=2))
36
+ except (OSError, ValueError):
37
+ p.error("Unable to inspect the selected filesystem; verify path and read access")
38
+
39
+
40
+ if __name__ == "__main__":
41
+ main()
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ting'an Wang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: windows-dev-disk-cleanup
3
+ description: 审计 Windows 开发机磁盘,并在具名授权后清理可重建缓存、旧应用或工具链。用于 C 盘空间、大文件与清理验收;不处理其他操作系统或一般性能调优。
4
+ license: MIT
5
+ compatibility: Requires native Windows and PowerShell on the actual target; specific servicing operations need separate administrator authorization.
6
+ metadata:
7
+ author: NAMEWTA
8
+ wta-format-reviewed: '2026-10-06'
9
+ ---
10
+ # Windows 开发机磁盘清理
11
+
12
+ ## 输入与输出契约
13
+
14
+ 确认原生 Windows、目标卷和当前清理清单;每项具有准确路径/产品 ID、归属、保留依赖与状态。扫描发现候选不自动新增删除授权。
15
+
16
+ 清单逐项写估计占用、批准动作、执行/锁定/保留状态、卷实际空间变化和工具链存活检查。删除不可逆时写明不可回滚,不用目录大小冒充释放量。
17
+
18
+ 示例:“仅审计 C 盘空间,列出可清理项目让我确认。”应进入本技能;“清理 macOS 的开发缓存。”不应由本技能接管。
19
+
20
+ 面向原生 Windows/PowerShell;先确认不是 WSL 或远程 Linux。部分系统动作需要管理员,审计不自动提权。阶段方法见 [清理工作流](references/windows-cleanup-workflow.md)。本入口的授权与停止条件优先于参考中的示例命令。
21
+
22
+ 在用户工作区的 清理清单.md 或指定文件记录稳定编号、准确路径/产品 ID、所有者、估计大小、决定、执行状态及实测变化;保留旧决策,不能因重新扫描覆盖授权历史。
23
+
24
+ ## 审计与授权
25
+
26
+ 只读/规划请求不删除、不卸载、不清缓存、不停进程、不改环境、不安排重启。已有具名批准可执行,新候选继续待确认;“优化一下”不授权破坏性操作。目标路径和工作区含空格时引用,使用 LiteralPath 语义,不展开宽泛 glob。
27
+
28
+ 扫描限制到相关卷和具名目录;不跟随 junction/reparse point,不触发 OneDrive 占位文件下载。硬链接、压缩、稀疏文件和 VHDX 造成逻辑大小不同于真正释放量;不能把目录大小相加当收益。
29
+
30
+ ## 执行
31
+
32
+ 操作前重读对象身份、路径归属、当前占用与清单,拒绝空路径、卷根、越界链接和身份变化。优先官方卸载器/包管理器。缓存、用户数据、下载、项目、配置和凭据分别处理;注册表清理不是默认步骤。
33
+
34
+ 不得删除承载当前 Agent、shell、编辑器或活动进程的运行时;先验证保留的替代工具链,再在切换后的独立会话处理旧版本。锁定文件、servicing、未知共享依赖或替代验证失败时停止,不强制解锁。
35
+
36
+ WinSxS/ResetBase、pagefile、WinRE、更新数据、还原点、WSL/Docker volumes 与虚拟盘压缩分别授权。禁止对活动 VHDX 直接压缩或删除;保留数据库和容器卷。删除操作不可逆时不能把“有清单”称为回滚方案。
37
+
38
+ ## 验收
39
+
40
+ 小批执行前后测量卷可用空间、保留工具的版本/路径和项目可用性。记录已完成、失败、保留、锁定、待重启,不用退出码代替实际结果。不自动重启;只移除本轮创建且无保留必要的临时文件,保留清单与证据。
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Windows 磁盘清理"
3
+ short_description: "审计 Windows 磁盘并具名清理,保护活动运行时和用户数据"
4
+ default_prompt: "请使用 $windows-dev-disk-cleanup:仅审计 C 盘空间,列出可清理项目让我确认。"
@@ -0,0 +1,121 @@
1
+ # Windows 开发机清理工作流
2
+
3
+ 用于大范围审计、交互式清理规划,或已授权执行。按这台机器裁剪清单;某个工具或路径不存在是结果,不是错误。
4
+
5
+ ## 只读发现
6
+
7
+ 提出清理方案之前,先抓一份初始快照:
8
+
9
+ - 固定卷的总空间和可用空间,尤其是 C: 以及开发/数据盘。
10
+ - 当前身份、管理员状态、活动进程、Windows servicing 是否正在进行、待重启标记。
11
+ - 休眠、pagefile、还原点、回收站、WSL 发行版/功能,以及其它相关的系统托管存储状态。
12
+ - 已装桌面应用:机器级/用户级,以及 32/64 位卸载注册;需要时再看 Appx 包和可选功能。
13
+ - PATH 以及工具相关环境变量,覆盖进程、用户、机器三个范围。
14
+ - 正在用的和重复的开发运行时:Volta/Node/npm/pnpm、uv/Python/pip/Conda、JDK/Java/Maven/Gradle、Rust/Cargo、.NET、WSL/Docker、IDE、CLI 及其包存储。
15
+ - 用户配置目录里的大目录、应用数据、包缓存、IDE 缓存、构建产物、下载、回收站、压缩包、虚拟机镜像、ISO、以及范围内各盘上的大型项目树。
16
+
17
+ 注册表、Appx、功能、XML/JSON 配置和环境变量用结构化 API。体积扫描是只读的,但可能很贵;从已知高收益根目录开始,不要把同一个重解析点跟两遍,并对可能因硬链接或 junction 重叠的估计做标注。
18
+
19
+ ## 给候选分类
20
+
21
+ 问用户决定之前,先给每项分类:
22
+
23
+ | 类别 | 通常怎么处理 | 主要风险 |
24
+ |---|---|---|
25
+ | 可重建缓存 | 用所属工具清理 | 重新下载/重建索引的时间 |
26
+ | 托管应用 | 先走官方卸载 | 共享组件和用户数据 |
27
+ | 重复运行时 | 先验证要保留的版本,再拆闲置版本 | 弄坏正在用的工具 |
28
+ | 项目生成数据 | 只删精确的生成路径 | 把源码或本地状态误分类 |
29
+ | 用户/业务数据 | 除非被点名,否则保留 | 不可恢复的数据损失 |
30
+ | 系统托管存储 | 单独明确决定,并做管理员核实 | 启动、服务或回滚损坏 |
31
+ | 过期注册/残留 | 证明产品已不在之后才删 | 弄坏仍有效的安装 |
32
+
33
+ 目录大不等于可以安全删除。要说明谁拥有它、能不能重建、支撑哪条工作流、以及必须留下什么。
34
+
35
+ ## 清单合同
36
+
37
+ 根目录清单至少包含:
38
+
39
+ ```markdown
40
+ # Windows 磁盘清理清单
41
+
42
+ > 更新时间:YYYY-MM-DD
43
+ > 当前状态:只读排查 / 决策中 / 已授权执行 / 待重启收尾 / 已完成
44
+
45
+ ## 基线
46
+ | 卷 | 总空间 | 可用空间 | 可用比例 |
47
+
48
+ ## 已批准清理或卸载
49
+ | 编号 | 项目 | 决定 | 已知大小 | 精确边界 | 状态 |
50
+
51
+ ## 明确保留
52
+ | 编号 | 项目 | 保留边界 |
53
+
54
+ ## 待确认
55
+ | 编号 | 项目 | 风险/收益 | 问题 |
56
+
57
+ ## 执行记录
58
+ | 时间 | 项目 | 方法 | 结果 | 实际空间变化/残留 |
59
+ ```
60
+
61
+ 候选编号跨批次保持稳定。每一批问简短问题:估计收益、后果、精确范围。先把已答行写入清单再继续。用户改边界时(例如从清理旧仓库改成保留整个包管理器目录),立刻把新规则用到后续全部工作;已经做完、无法撤回的动作如实记录,不要掩饰。
62
+
63
+ ## 执行阶段
64
+
65
+ ### 1. 建立替换项
66
+
67
+ - 尽可能在新进程里验证每一个要保留的运行时和包管理器。
68
+ - 确认要保留的 Java 和 Maven 设置解析到预期位置。
69
+ - Python 迁移:先安装并验证替换解释器/工具管理器,再拆除 Conda 或其它环境所有者。
70
+ - Volta:检查默认运行时和每一条要保留的包 pin。拆掉旧 Node 映像之前,先给要保留的 CLI 重新 pin。
71
+
72
+ ### 2. 托管卸载
73
+
74
+ - 先关掉相关应用,核实精确进程后再停任何东西。
75
+ - 只有已知其支持的参数时,才用应用官方静默卸载器;否则记录为需要交互确认。
76
+ - MSI 必须针对已核实的精确产品代码。退出码 0 不够:之后还要验证注册项和程序路径是否已去掉。
77
+ - WSL:禁用功能前先盘点发行版。注销发行版会毁掉它的文件系统,必须单独明确批准。
78
+
79
+ ### 3. 缓存和开发数据
80
+
81
+ - 优先用受支持的命令,例如包管理器的 cache purge 或 store prune。
82
+ - 仓库和配置与缓存分开处理。尤其是 `.m2/settings.xml`、Maven 本地仓库、npm/pnpm store、Cargo registry、IDE 历史、凭据、以及模型/会话目录,可以各自独立决定。
83
+ - `node_modules` 这类生成依赖,只对用户点名的项目删除,并保留源码管理元数据和源文件。
84
+
85
+ ### 4. 已批准文件和回收站
86
+
87
+ - 已批准的下载、压缩包、视频、课程材料、部署包、项目产物,使用字面、完全解析后的路径。
88
+ - 确认删除是可恢复还是永久。只清空用户明确批准的盘的回收站,并且要在此前所有删除都复查过之后。
89
+
90
+ ### 5. Windows 设置和残留
91
+
92
+ - 关闭休眠用 `powercfg /hibernate off`;永远不要手工删 `hiberfil.sys`。
93
+ - 可选功能通过受支持的 Windows 功能 API 改;未经批准不要自动重启。
94
+ - 先枚举还原点。若决定保留最新一点,不要用宽泛的 `vssadmin delete shadows`。
95
+ - 通过环境变量 API 改机器/用户 PATH,只删除精确的过期条目。
96
+ - 过期卸载键或安装器缓存:只有核实产品、安装目录和所属应用都不在之后才删。
97
+ - 避免组件存储清理、`ResetBase`、改 pagefile、删 WinRE、删 Windows Update 缓存,以及含糊的系统日志/临时文件清理,除非每一项都单独获批。
98
+
99
+ ## 硬停
100
+
101
+ 出现下列任一情况,停止改动并报告证据:
102
+
103
+ - 要保留的命令、仓库、应用或替换运行时验证失败。
104
+ - Windows Update、DISM、MSI、TrustedInstaller 或 TiWorker 正在改系统状态。只读功能查询可能短暂拉起服务进程;等一等,区分“查询带起来的空闲进程”和“真正在维护”,不要杀掉它。
105
+ - 卸载器报告共享组件、需要计划外交互、返回说不清的退出码,或留下所有权不明的状态。
106
+ - 精确目标扩到批准路径之外、经过意外的 junction 解析,或包含要保留应用的数据。
107
+ - 当前进程正在使用准备拆除的运行时或可执行文件。
108
+ - 管理员步骤缺少管理员权限。
109
+
110
+ ## 最终验收
111
+
112
+ 完成时记录并核实:
113
+
114
+ - 范围内每个卷的最终可用空间和实际增加量。
115
+ - 已拆除的程序路径、注册项、包条目、快捷方式、精确环境变量条目确实不在。
116
+ - 每条关键保留工具链的版本和路径。
117
+ - 受保护配置和仓库的完整性。
118
+ - 休眠/功能状态、还原点数量、服务进程状态、待重启工作。
119
+ - 有意残留、只能交互卸载的程序、被锁运行时,以及重启或新会话后必须做的精确动作。
120
+
121
+ 不要因为卸载器返回成功,就把请求项报成完成。可观察的事后条件和更新后的清单才是完成标准。
File without changes
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ting'an Wang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.