@zmice/zc 0.1.0 → 0.2.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 (561) hide show
  1. package/README.md +153 -87
  2. package/dist/adapters/codex.d.ts.map +1 -1
  3. package/dist/adapters/codex.js +4 -2
  4. package/dist/adapters/codex.js.map +1 -1
  5. package/dist/adapters/qwen-code.d.ts.map +1 -1
  6. package/dist/adapters/qwen-code.js +7 -5
  7. package/dist/adapters/qwen-code.js.map +1 -1
  8. package/dist/cli/__tests__/i18n.test.d.ts +2 -0
  9. package/dist/cli/__tests__/i18n.test.d.ts.map +1 -0
  10. package/dist/cli/__tests__/i18n.test.js +45 -0
  11. package/dist/cli/__tests__/i18n.test.js.map +1 -0
  12. package/dist/cli/__tests__/platform.test.d.ts +2 -0
  13. package/dist/cli/__tests__/platform.test.d.ts.map +1 -0
  14. package/dist/cli/__tests__/platform.test.js +483 -0
  15. package/dist/cli/__tests__/platform.test.js.map +1 -0
  16. package/dist/cli/__tests__/surface.test.d.ts +2 -0
  17. package/dist/cli/__tests__/surface.test.d.ts.map +1 -0
  18. package/dist/cli/__tests__/surface.test.js +15 -0
  19. package/dist/cli/__tests__/surface.test.js.map +1 -0
  20. package/dist/cli/__tests__/toolkit.test.d.ts +2 -0
  21. package/dist/cli/__tests__/toolkit.test.d.ts.map +1 -0
  22. package/dist/cli/__tests__/toolkit.test.js +72 -0
  23. package/dist/cli/__tests__/toolkit.test.js.map +1 -0
  24. package/dist/cli/__tests__/upstream.test.d.ts +2 -0
  25. package/dist/cli/__tests__/upstream.test.d.ts.map +1 -0
  26. package/dist/cli/__tests__/upstream.test.js +163 -0
  27. package/dist/cli/__tests__/upstream.test.js.map +1 -0
  28. package/dist/cli/doctor.js +21 -21
  29. package/dist/cli/doctor.js.map +1 -1
  30. package/dist/cli/index.d.ts +2 -1
  31. package/dist/cli/index.d.ts.map +1 -1
  32. package/dist/cli/index.js +34 -14
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/msg.d.ts.map +1 -1
  35. package/dist/cli/msg.js +73 -5
  36. package/dist/cli/msg.js.map +1 -1
  37. package/dist/cli/platform.d.ts +32 -0
  38. package/dist/cli/platform.d.ts.map +1 -0
  39. package/dist/cli/platform.js +635 -0
  40. package/dist/cli/platform.js.map +1 -0
  41. package/dist/cli/run.js +7 -7
  42. package/dist/cli/run.js.map +1 -1
  43. package/dist/cli/setup.js +7 -7
  44. package/dist/cli/setup.js.map +1 -1
  45. package/dist/cli/task.d.ts.map +1 -1
  46. package/dist/cli/task.js +108 -8
  47. package/dist/cli/task.js.map +1 -1
  48. package/dist/cli/team.d.ts +12 -0
  49. package/dist/cli/team.d.ts.map +1 -1
  50. package/dist/cli/team.js +82 -39
  51. package/dist/cli/team.js.map +1 -1
  52. package/dist/cli/toolkit.d.ts +3 -0
  53. package/dist/cli/toolkit.d.ts.map +1 -0
  54. package/dist/cli/toolkit.js +160 -0
  55. package/dist/cli/toolkit.js.map +1 -0
  56. package/dist/cli/upstream.d.ts +19 -0
  57. package/dist/cli/upstream.d.ts.map +1 -0
  58. package/dist/cli/upstream.js +705 -0
  59. package/dist/cli/upstream.js.map +1 -0
  60. package/dist/node_modules/@zmice/platform-core/dist/index.d.ts +72 -0
  61. package/dist/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -0
  62. package/dist/node_modules/@zmice/platform-core/dist/index.js +105 -0
  63. package/dist/node_modules/@zmice/platform-core/dist/index.js.map +1 -0
  64. package/dist/node_modules/@zmice/platform-core/dist/index.test.d.ts +2 -0
  65. package/dist/node_modules/@zmice/platform-core/dist/index.test.d.ts.map +1 -0
  66. package/dist/node_modules/@zmice/platform-core/dist/index.test.js +104 -0
  67. package/dist/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -0
  68. package/dist/node_modules/@zmice/platform-core/package.json +34 -0
  69. package/dist/platform-state/index.d.ts +4 -0
  70. package/dist/platform-state/index.d.ts.map +1 -0
  71. package/dist/platform-state/index.js +3 -0
  72. package/dist/platform-state/index.js.map +1 -0
  73. package/dist/platform-state/receipt.d.ts +11 -0
  74. package/dist/platform-state/receipt.d.ts.map +1 -0
  75. package/dist/platform-state/receipt.js +27 -0
  76. package/dist/platform-state/receipt.js.map +1 -0
  77. package/dist/platform-state/status.d.ts +3 -0
  78. package/dist/platform-state/status.d.ts.map +1 -0
  79. package/dist/platform-state/status.js +82 -0
  80. package/dist/platform-state/status.js.map +1 -0
  81. package/dist/platform-state/status.test.d.ts +2 -0
  82. package/dist/platform-state/status.test.d.ts.map +1 -0
  83. package/dist/platform-state/status.test.js +120 -0
  84. package/dist/platform-state/status.test.js.map +1 -0
  85. package/dist/platform-state/types.d.ts +58 -0
  86. package/dist/platform-state/types.d.ts.map +1 -0
  87. package/dist/platform-state/types.js +2 -0
  88. package/dist/platform-state/types.js.map +1 -0
  89. package/dist/runtime/__tests__/logger.test.d.ts +2 -0
  90. package/dist/runtime/__tests__/logger.test.d.ts.map +1 -0
  91. package/dist/runtime/__tests__/logger.test.js +11 -0
  92. package/dist/runtime/__tests__/logger.test.js.map +1 -0
  93. package/dist/runtime/__tests__/session-manager.test.d.ts +2 -0
  94. package/dist/runtime/__tests__/session-manager.test.d.ts.map +1 -0
  95. package/dist/runtime/__tests__/session-manager.test.js +11 -0
  96. package/dist/runtime/__tests__/session-manager.test.js.map +1 -0
  97. package/dist/runtime/__tests__/worktree-manager.test.d.ts +2 -0
  98. package/dist/runtime/__tests__/worktree-manager.test.d.ts.map +1 -0
  99. package/dist/runtime/__tests__/worktree-manager.test.js +11 -0
  100. package/dist/runtime/__tests__/worktree-manager.test.js.map +1 -0
  101. package/dist/runtime/logger.d.ts +5 -1
  102. package/dist/runtime/logger.d.ts.map +1 -1
  103. package/dist/runtime/logger.js +11 -1
  104. package/dist/runtime/logger.js.map +1 -1
  105. package/dist/runtime/state.d.ts +2 -8
  106. package/dist/runtime/state.d.ts.map +1 -1
  107. package/dist/runtime/state.js +7 -15
  108. package/dist/runtime/state.js.map +1 -1
  109. package/dist/runtime/worktree-manager.d.ts +5 -26
  110. package/dist/runtime/worktree-manager.d.ts.map +1 -1
  111. package/dist/runtime/worktree-manager.js +34 -98
  112. package/dist/runtime/worktree-manager.js.map +1 -1
  113. package/dist/team/__tests__/mailbox.test.d.ts +2 -0
  114. package/dist/team/__tests__/mailbox.test.d.ts.map +1 -0
  115. package/dist/team/__tests__/mailbox.test.js +22 -0
  116. package/dist/team/__tests__/mailbox.test.js.map +1 -0
  117. package/dist/team/__tests__/orchestrator.test.d.ts +2 -0
  118. package/dist/team/__tests__/orchestrator.test.d.ts.map +1 -0
  119. package/dist/team/__tests__/orchestrator.test.js +13 -0
  120. package/dist/team/__tests__/orchestrator.test.js.map +1 -0
  121. package/dist/team/__tests__/task-queue.test.d.ts +2 -0
  122. package/dist/team/__tests__/task-queue.test.d.ts.map +1 -0
  123. package/dist/team/__tests__/task-queue.test.js +28 -0
  124. package/dist/team/__tests__/task-queue.test.js.map +1 -0
  125. package/dist/team/__tests__/worker-manager.test.d.ts +2 -0
  126. package/dist/team/__tests__/worker-manager.test.d.ts.map +1 -0
  127. package/dist/team/__tests__/worker-manager.test.js +13 -0
  128. package/dist/team/__tests__/worker-manager.test.js.map +1 -0
  129. package/dist/team/mailbox.d.ts +12 -10
  130. package/dist/team/mailbox.d.ts.map +1 -1
  131. package/dist/team/mailbox.js +40 -27
  132. package/dist/team/mailbox.js.map +1 -1
  133. package/dist/team/orchestrator.d.ts +1 -6
  134. package/dist/team/orchestrator.d.ts.map +1 -1
  135. package/dist/team/orchestrator.js +27 -67
  136. package/dist/team/orchestrator.js.map +1 -1
  137. package/dist/team/task-queue.d.ts +18 -17
  138. package/dist/team/task-queue.d.ts.map +1 -1
  139. package/dist/team/task-queue.js +68 -71
  140. package/dist/team/task-queue.js.map +1 -1
  141. package/dist/team/worker-manager.d.ts +13 -36
  142. package/dist/team/worker-manager.d.ts.map +1 -1
  143. package/dist/team/worker-manager.js +34 -129
  144. package/dist/team/worker-manager.js.map +1 -1
  145. package/dist/utils/config.d.ts +15 -1
  146. package/dist/utils/config.d.ts.map +1 -1
  147. package/dist/utils/config.js +39 -1
  148. package/dist/utils/config.js.map +1 -1
  149. package/dist/utils/install-target.d.ts +23 -0
  150. package/dist/utils/install-target.d.ts.map +1 -0
  151. package/dist/utils/install-target.js +89 -0
  152. package/dist/utils/install-target.js.map +1 -0
  153. package/dist/utils/install-target.test.d.ts +2 -0
  154. package/dist/utils/install-target.test.d.ts.map +1 -0
  155. package/dist/utils/install-target.test.js +71 -0
  156. package/dist/utils/install-target.test.js.map +1 -0
  157. package/dist/utils/platform-install-receipt.d.ts +11 -0
  158. package/dist/utils/platform-install-receipt.d.ts.map +1 -0
  159. package/dist/utils/platform-install-receipt.js +62 -0
  160. package/dist/utils/platform-install-receipt.js.map +1 -0
  161. package/dist/utils/platform-install-receipt.test.d.ts +2 -0
  162. package/dist/utils/platform-install-receipt.test.d.ts.map +1 -0
  163. package/dist/utils/platform-install-receipt.test.js +74 -0
  164. package/dist/utils/platform-install-receipt.test.js.map +1 -0
  165. package/dist/utils/skill-loader.d.ts +0 -9
  166. package/dist/utils/skill-loader.d.ts.map +1 -1
  167. package/dist/utils/skill-loader.js +19 -26
  168. package/dist/utils/skill-loader.js.map +1 -1
  169. package/dist/utils/workspace.d.ts +28 -0
  170. package/dist/utils/workspace.d.ts.map +1 -0
  171. package/dist/utils/workspace.js +103 -0
  172. package/dist/utils/workspace.js.map +1 -0
  173. package/dist/utils/workspace.test.d.ts +2 -0
  174. package/dist/utils/workspace.test.d.ts.map +1 -0
  175. package/dist/utils/workspace.test.js +50 -0
  176. package/dist/utils/workspace.test.js.map +1 -0
  177. package/package.json +48 -36
  178. package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts +72 -0
  179. package/vendor/node_modules/@zmice/platform-core/dist/index.d.ts.map +1 -0
  180. package/vendor/node_modules/@zmice/platform-core/dist/index.js +105 -0
  181. package/vendor/node_modules/@zmice/platform-core/dist/index.js.map +1 -0
  182. package/vendor/node_modules/@zmice/platform-core/dist/index.test.d.ts +2 -0
  183. package/vendor/node_modules/@zmice/platform-core/dist/index.test.d.ts.map +1 -0
  184. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js +104 -0
  185. package/vendor/node_modules/@zmice/platform-core/dist/index.test.js.map +1 -0
  186. package/vendor/node_modules/@zmice/platform-core/package.json +34 -0
  187. package/vendor/packages/platform-codex/dist/generate.d.ts +2 -0
  188. package/vendor/packages/platform-codex/dist/generate.d.ts.map +1 -0
  189. package/vendor/packages/platform-codex/dist/generate.js +2 -0
  190. package/vendor/packages/platform-codex/dist/generate.js.map +1 -0
  191. package/vendor/packages/platform-codex/dist/index.d.ts +15 -0
  192. package/vendor/packages/platform-codex/dist/index.d.ts.map +1 -0
  193. package/vendor/packages/platform-codex/dist/index.js +46 -0
  194. package/vendor/packages/platform-codex/dist/index.js.map +1 -0
  195. package/vendor/packages/platform-codex/dist/index.test.d.ts +2 -0
  196. package/vendor/packages/platform-codex/dist/index.test.d.ts.map +1 -0
  197. package/vendor/packages/platform-codex/dist/index.test.js +38 -0
  198. package/vendor/packages/platform-codex/dist/index.test.js.map +1 -0
  199. package/vendor/packages/platform-codex/dist/install.d.ts +2 -0
  200. package/vendor/packages/platform-codex/dist/install.d.ts.map +1 -0
  201. package/vendor/packages/platform-codex/dist/install.js +2 -0
  202. package/vendor/packages/platform-codex/dist/install.js.map +1 -0
  203. package/vendor/packages/platform-codex/package.json +46 -0
  204. package/vendor/packages/platform-codex/templates/AGENTS.md +7 -0
  205. package/vendor/packages/platform-qoder/dist/generate.d.ts +2 -0
  206. package/vendor/packages/platform-qoder/dist/generate.d.ts.map +1 -0
  207. package/vendor/packages/platform-qoder/dist/generate.js +2 -0
  208. package/vendor/packages/platform-qoder/dist/generate.js.map +1 -0
  209. package/vendor/packages/platform-qoder/dist/index.d.ts +15 -0
  210. package/vendor/packages/platform-qoder/dist/index.d.ts.map +1 -0
  211. package/vendor/packages/platform-qoder/dist/index.js +46 -0
  212. package/vendor/packages/platform-qoder/dist/index.js.map +1 -0
  213. package/vendor/packages/platform-qoder/dist/index.test.d.ts +2 -0
  214. package/vendor/packages/platform-qoder/dist/index.test.d.ts.map +1 -0
  215. package/vendor/packages/platform-qoder/dist/index.test.js +38 -0
  216. package/vendor/packages/platform-qoder/dist/index.test.js.map +1 -0
  217. package/vendor/packages/platform-qoder/dist/install.d.ts +2 -0
  218. package/vendor/packages/platform-qoder/dist/install.d.ts.map +1 -0
  219. package/vendor/packages/platform-qoder/dist/install.js +2 -0
  220. package/vendor/packages/platform-qoder/dist/install.js.map +1 -0
  221. package/vendor/packages/platform-qoder/package.json +46 -0
  222. package/vendor/packages/platform-qoder/templates/instructions.md +7 -0
  223. package/vendor/packages/platform-qwen/dist/generate.d.ts +2 -0
  224. package/vendor/packages/platform-qwen/dist/generate.d.ts.map +1 -0
  225. package/vendor/packages/platform-qwen/dist/generate.js +2 -0
  226. package/vendor/packages/platform-qwen/dist/generate.js.map +1 -0
  227. package/vendor/packages/platform-qwen/dist/index.d.ts +16 -0
  228. package/vendor/packages/platform-qwen/dist/index.d.ts.map +1 -0
  229. package/vendor/packages/platform-qwen/dist/index.js +60 -0
  230. package/vendor/packages/platform-qwen/dist/index.js.map +1 -0
  231. package/vendor/packages/platform-qwen/dist/index.test.d.ts +2 -0
  232. package/vendor/packages/platform-qwen/dist/index.test.d.ts.map +1 -0
  233. package/vendor/packages/platform-qwen/dist/index.test.js +46 -0
  234. package/vendor/packages/platform-qwen/dist/index.test.js.map +1 -0
  235. package/vendor/packages/platform-qwen/dist/install.d.ts +2 -0
  236. package/vendor/packages/platform-qwen/dist/install.d.ts.map +1 -0
  237. package/vendor/packages/platform-qwen/dist/install.js +2 -0
  238. package/vendor/packages/platform-qwen/dist/install.js.map +1 -0
  239. package/vendor/packages/platform-qwen/package.json +46 -0
  240. package/vendor/packages/platform-qwen/templates/QWEN.md +7 -0
  241. package/vendor/packages/platform-qwen/templates/qwen-extension.json +7 -0
  242. package/vendor/packages/toolkit/dist/content-lint.test.d.ts +2 -0
  243. package/vendor/packages/toolkit/dist/content-lint.test.d.ts.map +1 -0
  244. package/vendor/packages/toolkit/dist/content-lint.test.js +252 -0
  245. package/vendor/packages/toolkit/dist/content-lint.test.js.map +1 -0
  246. package/vendor/packages/toolkit/dist/governance/index.d.ts +2 -0
  247. package/vendor/packages/toolkit/dist/governance/index.d.ts.map +1 -0
  248. package/vendor/packages/toolkit/dist/governance/index.js +2 -0
  249. package/vendor/packages/toolkit/dist/governance/index.js.map +1 -0
  250. package/vendor/packages/toolkit/dist/governance/upstreams.d.ts +6 -0
  251. package/vendor/packages/toolkit/dist/governance/upstreams.d.ts.map +1 -0
  252. package/vendor/packages/toolkit/dist/governance/upstreams.js +31 -0
  253. package/vendor/packages/toolkit/dist/governance/upstreams.js.map +1 -0
  254. package/vendor/packages/toolkit/dist/governance/upstreams.test.d.ts +2 -0
  255. package/vendor/packages/toolkit/dist/governance/upstreams.test.d.ts.map +1 -0
  256. package/vendor/packages/toolkit/dist/governance/upstreams.test.js +23 -0
  257. package/vendor/packages/toolkit/dist/governance/upstreams.test.js.map +1 -0
  258. package/vendor/packages/toolkit/dist/index.d.ts +8 -0
  259. package/vendor/packages/toolkit/dist/index.d.ts.map +1 -0
  260. package/vendor/packages/toolkit/dist/index.js +8 -0
  261. package/vendor/packages/toolkit/dist/index.js.map +1 -0
  262. package/vendor/packages/toolkit/dist/lint/content-lint.d.ts +21 -0
  263. package/vendor/packages/toolkit/dist/lint/content-lint.d.ts.map +1 -0
  264. package/vendor/packages/toolkit/dist/lint/content-lint.js +250 -0
  265. package/vendor/packages/toolkit/dist/lint/content-lint.js.map +1 -0
  266. package/vendor/packages/toolkit/dist/lint/index.d.ts +2 -0
  267. package/vendor/packages/toolkit/dist/lint/index.d.ts.map +1 -0
  268. package/vendor/packages/toolkit/dist/lint/index.js +2 -0
  269. package/vendor/packages/toolkit/dist/lint/index.js.map +1 -0
  270. package/vendor/packages/toolkit/dist/loaders/asset-unit.d.ts +4 -0
  271. package/vendor/packages/toolkit/dist/loaders/asset-unit.d.ts.map +1 -0
  272. package/vendor/packages/toolkit/dist/loaders/asset-unit.js +95 -0
  273. package/vendor/packages/toolkit/dist/loaders/asset-unit.js.map +1 -0
  274. package/vendor/packages/toolkit/dist/loaders/content-tree.d.ts +2 -0
  275. package/vendor/packages/toolkit/dist/loaders/content-tree.d.ts.map +1 -0
  276. package/vendor/packages/toolkit/dist/loaders/content-tree.js +2 -0
  277. package/vendor/packages/toolkit/dist/loaders/content-tree.js.map +1 -0
  278. package/vendor/packages/toolkit/dist/loaders/fs.d.ts +6 -0
  279. package/vendor/packages/toolkit/dist/loaders/fs.d.ts.map +1 -0
  280. package/vendor/packages/toolkit/dist/loaders/fs.js +19 -0
  281. package/vendor/packages/toolkit/dist/loaders/fs.js.map +1 -0
  282. package/vendor/packages/toolkit/dist/loaders/index.d.ts +4 -0
  283. package/vendor/packages/toolkit/dist/loaders/index.d.ts.map +1 -0
  284. package/vendor/packages/toolkit/dist/loaders/index.js +4 -0
  285. package/vendor/packages/toolkit/dist/loaders/index.js.map +1 -0
  286. package/vendor/packages/toolkit/dist/loaders/simple-yaml.d.ts +2 -0
  287. package/vendor/packages/toolkit/dist/loaders/simple-yaml.d.ts.map +1 -0
  288. package/vendor/packages/toolkit/dist/loaders/simple-yaml.js +125 -0
  289. package/vendor/packages/toolkit/dist/loaders/simple-yaml.js.map +1 -0
  290. package/vendor/packages/toolkit/dist/loaders.test.d.ts +2 -0
  291. package/vendor/packages/toolkit/dist/loaders.test.d.ts.map +1 -0
  292. package/vendor/packages/toolkit/dist/loaders.test.js +84 -0
  293. package/vendor/packages/toolkit/dist/loaders.test.js.map +1 -0
  294. package/vendor/packages/toolkit/dist/manifests/index.d.ts +2 -0
  295. package/vendor/packages/toolkit/dist/manifests/index.d.ts.map +1 -0
  296. package/vendor/packages/toolkit/dist/manifests/index.js +2 -0
  297. package/vendor/packages/toolkit/dist/manifests/index.js.map +1 -0
  298. package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.d.ts +7 -0
  299. package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.d.ts.map +1 -0
  300. package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.js +72 -0
  301. package/vendor/packages/toolkit/dist/manifests/toolkit-manifest.js.map +1 -0
  302. package/vendor/packages/toolkit/dist/manifests.test.d.ts +2 -0
  303. package/vendor/packages/toolkit/dist/manifests.test.d.ts.map +1 -0
  304. package/vendor/packages/toolkit/dist/manifests.test.js +75 -0
  305. package/vendor/packages/toolkit/dist/manifests.test.js.map +1 -0
  306. package/vendor/packages/toolkit/dist/query/index.d.ts +2 -0
  307. package/vendor/packages/toolkit/dist/query/index.d.ts.map +1 -0
  308. package/vendor/packages/toolkit/dist/query/index.js +2 -0
  309. package/vendor/packages/toolkit/dist/query/index.js.map +1 -0
  310. package/vendor/packages/toolkit/dist/query/toolkit-query.d.ts +10 -0
  311. package/vendor/packages/toolkit/dist/query/toolkit-query.d.ts.map +1 -0
  312. package/vendor/packages/toolkit/dist/query/toolkit-query.js +49 -0
  313. package/vendor/packages/toolkit/dist/query/toolkit-query.js.map +1 -0
  314. package/vendor/packages/toolkit/dist/query.test.d.ts +2 -0
  315. package/vendor/packages/toolkit/dist/query.test.d.ts.map +1 -0
  316. package/vendor/packages/toolkit/dist/query.test.js +30 -0
  317. package/vendor/packages/toolkit/dist/query.test.js.map +1 -0
  318. package/vendor/packages/toolkit/dist/schema/asset-meta.d.ts +3 -0
  319. package/vendor/packages/toolkit/dist/schema/asset-meta.d.ts.map +1 -0
  320. package/vendor/packages/toolkit/dist/schema/asset-meta.js +130 -0
  321. package/vendor/packages/toolkit/dist/schema/asset-meta.js.map +1 -0
  322. package/vendor/packages/toolkit/dist/schema/asset-unit.d.ts +3 -0
  323. package/vendor/packages/toolkit/dist/schema/asset-unit.d.ts.map +1 -0
  324. package/vendor/packages/toolkit/dist/schema/asset-unit.js +22 -0
  325. package/vendor/packages/toolkit/dist/schema/asset-unit.js.map +1 -0
  326. package/vendor/packages/toolkit/dist/schema/index.d.ts +5 -0
  327. package/vendor/packages/toolkit/dist/schema/index.d.ts.map +1 -0
  328. package/vendor/packages/toolkit/dist/schema/index.js +5 -0
  329. package/vendor/packages/toolkit/dist/schema/index.js.map +1 -0
  330. package/vendor/packages/toolkit/dist/schema/kinds.d.ts +6 -0
  331. package/vendor/packages/toolkit/dist/schema/kinds.d.ts.map +1 -0
  332. package/vendor/packages/toolkit/dist/schema/kinds.js +24 -0
  333. package/vendor/packages/toolkit/dist/schema/kinds.js.map +1 -0
  334. package/vendor/packages/toolkit/dist/schema/manifest.d.ts +3 -0
  335. package/vendor/packages/toolkit/dist/schema/manifest.d.ts.map +1 -0
  336. package/vendor/packages/toolkit/dist/schema/manifest.js +30 -0
  337. package/vendor/packages/toolkit/dist/schema/manifest.js.map +1 -0
  338. package/vendor/packages/toolkit/dist/types.d.ts +80 -0
  339. package/vendor/packages/toolkit/dist/types.d.ts.map +1 -0
  340. package/vendor/packages/toolkit/dist/types.js +6 -0
  341. package/vendor/packages/toolkit/dist/types.js.map +1 -0
  342. package/vendor/packages/toolkit/package.json +35 -0
  343. package/vendor/packages/toolkit/src/content/agents/architect/assets/.gitkeep +0 -0
  344. package/vendor/packages/toolkit/src/content/agents/architect/body.md +34 -0
  345. package/vendor/packages/toolkit/src/content/agents/architect/meta.yaml +25 -0
  346. package/vendor/packages/toolkit/src/content/agents/backend-specialist/assets/.gitkeep +0 -0
  347. package/vendor/packages/toolkit/src/content/agents/backend-specialist/body.md +30 -0
  348. package/vendor/packages/toolkit/src/content/agents/backend-specialist/meta.yaml +24 -0
  349. package/vendor/packages/toolkit/src/content/agents/code-reviewer/assets/.gitkeep +0 -0
  350. package/vendor/packages/toolkit/src/content/agents/code-reviewer/body.md +31 -0
  351. package/vendor/packages/toolkit/src/content/agents/code-reviewer/meta.yaml +26 -0
  352. package/vendor/packages/toolkit/src/content/agents/frontend-specialist/assets/.gitkeep +0 -0
  353. package/vendor/packages/toolkit/src/content/agents/frontend-specialist/body.md +31 -0
  354. package/vendor/packages/toolkit/src/content/agents/frontend-specialist/meta.yaml +24 -0
  355. package/vendor/packages/toolkit/src/content/agents/performance-engineer/assets/.gitkeep +0 -0
  356. package/vendor/packages/toolkit/src/content/agents/performance-engineer/body.md +72 -0
  357. package/vendor/packages/toolkit/src/content/agents/performance-engineer/meta.yaml +24 -0
  358. package/vendor/packages/toolkit/src/content/agents/product-owner/assets/.gitkeep +0 -0
  359. package/vendor/packages/toolkit/src/content/agents/product-owner/body.md +32 -0
  360. package/vendor/packages/toolkit/src/content/agents/product-owner/meta.yaml +24 -0
  361. package/vendor/packages/toolkit/src/content/agents/security-auditor/assets/.gitkeep +0 -0
  362. package/vendor/packages/toolkit/src/content/agents/security-auditor/body.md +83 -0
  363. package/vendor/packages/toolkit/src/content/agents/security-auditor/meta.yaml +24 -0
  364. package/vendor/packages/toolkit/src/content/agents/test-engineer/assets/.gitkeep +0 -0
  365. package/vendor/packages/toolkit/src/content/agents/test-engineer/body.md +30 -0
  366. package/vendor/packages/toolkit/src/content/agents/test-engineer/meta.yaml +28 -0
  367. package/vendor/packages/toolkit/src/content/commands/api/assets/.gitkeep +0 -0
  368. package/vendor/packages/toolkit/src/content/commands/api/body.md +24 -0
  369. package/vendor/packages/toolkit/src/content/commands/api/meta.yaml +19 -0
  370. package/vendor/packages/toolkit/src/content/commands/build/assets/.gitkeep +0 -0
  371. package/vendor/packages/toolkit/src/content/commands/build/body.md +37 -0
  372. package/vendor/packages/toolkit/src/content/commands/build/meta.yaml +26 -0
  373. package/vendor/packages/toolkit/src/content/commands/careful/assets/.gitkeep +0 -0
  374. package/vendor/packages/toolkit/src/content/commands/careful/body.md +18 -0
  375. package/vendor/packages/toolkit/src/content/commands/careful/meta.yaml +17 -0
  376. package/vendor/packages/toolkit/src/content/commands/ci/assets/.gitkeep +0 -0
  377. package/vendor/packages/toolkit/src/content/commands/ci/body.md +27 -0
  378. package/vendor/packages/toolkit/src/content/commands/ci/meta.yaml +19 -0
  379. package/vendor/packages/toolkit/src/content/commands/commit/assets/.gitkeep +0 -0
  380. package/vendor/packages/toolkit/src/content/commands/commit/body.md +26 -0
  381. package/vendor/packages/toolkit/src/content/commands/commit/meta.yaml +19 -0
  382. package/vendor/packages/toolkit/src/content/commands/ctx-health/assets/.gitkeep +0 -0
  383. package/vendor/packages/toolkit/src/content/commands/ctx-health/body.md +22 -0
  384. package/vendor/packages/toolkit/src/content/commands/ctx-health/meta.yaml +19 -0
  385. package/vendor/packages/toolkit/src/content/commands/debug/assets/.gitkeep +0 -0
  386. package/vendor/packages/toolkit/src/content/commands/debug/body.md +24 -0
  387. package/vendor/packages/toolkit/src/content/commands/debug/meta.yaml +19 -0
  388. package/vendor/packages/toolkit/src/content/commands/doc/assets/.gitkeep +0 -0
  389. package/vendor/packages/toolkit/src/content/commands/doc/body.md +23 -0
  390. package/vendor/packages/toolkit/src/content/commands/doc/meta.yaml +19 -0
  391. package/vendor/packages/toolkit/src/content/commands/freeze/assets/.gitkeep +0 -0
  392. package/vendor/packages/toolkit/src/content/commands/freeze/body.md +17 -0
  393. package/vendor/packages/toolkit/src/content/commands/freeze/meta.yaml +17 -0
  394. package/vendor/packages/toolkit/src/content/commands/guard/assets/.gitkeep +0 -0
  395. package/vendor/packages/toolkit/src/content/commands/guard/body.md +17 -0
  396. package/vendor/packages/toolkit/src/content/commands/guard/meta.yaml +20 -0
  397. package/vendor/packages/toolkit/src/content/commands/idea/assets/.gitkeep +0 -0
  398. package/vendor/packages/toolkit/src/content/commands/idea/body.md +23 -0
  399. package/vendor/packages/toolkit/src/content/commands/idea/meta.yaml +19 -0
  400. package/vendor/packages/toolkit/src/content/commands/learn/assets/.gitkeep +0 -0
  401. package/vendor/packages/toolkit/src/content/commands/learn/body.md +37 -0
  402. package/vendor/packages/toolkit/src/content/commands/learn/meta.yaml +19 -0
  403. package/vendor/packages/toolkit/src/content/commands/migrate/assets/.gitkeep +0 -0
  404. package/vendor/packages/toolkit/src/content/commands/migrate/body.md +24 -0
  405. package/vendor/packages/toolkit/src/content/commands/migrate/meta.yaml +20 -0
  406. package/vendor/packages/toolkit/src/content/commands/onboard/assets/.gitkeep +0 -0
  407. package/vendor/packages/toolkit/src/content/commands/onboard/body.md +24 -0
  408. package/vendor/packages/toolkit/src/content/commands/onboard/meta.yaml +19 -0
  409. package/vendor/packages/toolkit/src/content/commands/perf/assets/.gitkeep +0 -0
  410. package/vendor/packages/toolkit/src/content/commands/perf/body.md +23 -0
  411. package/vendor/packages/toolkit/src/content/commands/perf/meta.yaml +19 -0
  412. package/vendor/packages/toolkit/src/content/commands/plan-review/assets/.gitkeep +0 -0
  413. package/vendor/packages/toolkit/src/content/commands/plan-review/body.md +28 -0
  414. package/vendor/packages/toolkit/src/content/commands/plan-review/meta.yaml +20 -0
  415. package/vendor/packages/toolkit/src/content/commands/qa/assets/.gitkeep +0 -0
  416. package/vendor/packages/toolkit/src/content/commands/qa/body.md +24 -0
  417. package/vendor/packages/toolkit/src/content/commands/qa/meta.yaml +19 -0
  418. package/vendor/packages/toolkit/src/content/commands/quality-review/assets/.gitkeep +0 -0
  419. package/vendor/packages/toolkit/src/content/commands/quality-review/body.md +38 -0
  420. package/vendor/packages/toolkit/src/content/commands/quality-review/meta.yaml +22 -0
  421. package/vendor/packages/toolkit/src/content/commands/retro/assets/.gitkeep +0 -0
  422. package/vendor/packages/toolkit/src/content/commands/retro/body.md +25 -0
  423. package/vendor/packages/toolkit/src/content/commands/retro/meta.yaml +20 -0
  424. package/vendor/packages/toolkit/src/content/commands/sdd-tdd/assets/.gitkeep +0 -0
  425. package/vendor/packages/toolkit/src/content/commands/sdd-tdd/body.md +39 -0
  426. package/vendor/packages/toolkit/src/content/commands/sdd-tdd/meta.yaml +23 -0
  427. package/vendor/packages/toolkit/src/content/commands/secure/assets/.gitkeep +0 -0
  428. package/vendor/packages/toolkit/src/content/commands/secure/body.md +23 -0
  429. package/vendor/packages/toolkit/src/content/commands/secure/meta.yaml +19 -0
  430. package/vendor/packages/toolkit/src/content/commands/ship/assets/.gitkeep +0 -0
  431. package/vendor/packages/toolkit/src/content/commands/ship/body.md +17 -0
  432. package/vendor/packages/toolkit/src/content/commands/ship/meta.yaml +21 -0
  433. package/vendor/packages/toolkit/src/content/commands/simplify/assets/.gitkeep +0 -0
  434. package/vendor/packages/toolkit/src/content/commands/simplify/body.md +24 -0
  435. package/vendor/packages/toolkit/src/content/commands/simplify/meta.yaml +19 -0
  436. package/vendor/packages/toolkit/src/content/commands/spec/assets/.gitkeep +0 -0
  437. package/vendor/packages/toolkit/src/content/commands/spec/body.md +32 -0
  438. package/vendor/packages/toolkit/src/content/commands/spec/meta.yaml +23 -0
  439. package/vendor/packages/toolkit/src/content/commands/task-plan/assets/.gitkeep +0 -0
  440. package/vendor/packages/toolkit/src/content/commands/task-plan/body.md +32 -0
  441. package/vendor/packages/toolkit/src/content/commands/task-plan/meta.yaml +23 -0
  442. package/vendor/packages/toolkit/src/content/commands/ui/assets/.gitkeep +0 -0
  443. package/vendor/packages/toolkit/src/content/commands/ui/body.md +24 -0
  444. package/vendor/packages/toolkit/src/content/commands/ui/meta.yaml +20 -0
  445. package/vendor/packages/toolkit/src/content/commands/verify/assets/.gitkeep +0 -0
  446. package/vendor/packages/toolkit/src/content/commands/verify/body.md +32 -0
  447. package/vendor/packages/toolkit/src/content/commands/verify/meta.yaml +19 -0
  448. package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/assets/.gitkeep +0 -0
  449. package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/body.md +289 -0
  450. package/vendor/packages/toolkit/src/content/skills/api-and-interface-design/meta.yaml +21 -0
  451. package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/assets/.gitkeep +0 -0
  452. package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/body.md +129 -0
  453. package/vendor/packages/toolkit/src/content/skills/brainstorming-and-design/meta.yaml +18 -0
  454. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/body.md +155 -0
  455. package/vendor/packages/toolkit/src/content/skills/branch-finish-and-cleanup/meta.yaml +17 -0
  456. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/assets/.gitkeep +0 -0
  457. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/body.md +554 -0
  458. package/vendor/packages/toolkit/src/content/skills/browser-qa-testing/meta.yaml +20 -0
  459. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/assets/.gitkeep +0 -0
  460. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/body.md +417 -0
  461. package/vendor/packages/toolkit/src/content/skills/ci-cd-and-automation/meta.yaml +21 -0
  462. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/assets/.gitkeep +0 -0
  463. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/body.md +130 -0
  464. package/vendor/packages/toolkit/src/content/skills/code-review-and-quality/meta.yaml +21 -0
  465. package/vendor/packages/toolkit/src/content/skills/code-simplification/assets/.gitkeep +0 -0
  466. package/vendor/packages/toolkit/src/content/skills/code-simplification/body.md +326 -0
  467. package/vendor/packages/toolkit/src/content/skills/code-simplification/meta.yaml +21 -0
  468. package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/assets/.gitkeep +0 -0
  469. package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/body.md +40 -0
  470. package/vendor/packages/toolkit/src/content/skills/codebase-onboarding/meta.yaml +20 -0
  471. package/vendor/packages/toolkit/src/content/skills/context-budget-audit/assets/.gitkeep +0 -0
  472. package/vendor/packages/toolkit/src/content/skills/context-budget-audit/body.md +38 -0
  473. package/vendor/packages/toolkit/src/content/skills/context-budget-audit/meta.yaml +17 -0
  474. package/vendor/packages/toolkit/src/content/skills/context-engineering/assets/.gitkeep +0 -0
  475. package/vendor/packages/toolkit/src/content/skills/context-engineering/body.md +55 -0
  476. package/vendor/packages/toolkit/src/content/skills/context-engineering/meta.yaml +17 -0
  477. package/vendor/packages/toolkit/src/content/skills/continuous-learning/assets/.gitkeep +0 -0
  478. package/vendor/packages/toolkit/src/content/skills/continuous-learning/body.md +367 -0
  479. package/vendor/packages/toolkit/src/content/skills/continuous-learning/meta.yaml +18 -0
  480. package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/assets/.gitkeep +0 -0
  481. package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/body.md +43 -0
  482. package/vendor/packages/toolkit/src/content/skills/debugging-and-error-recovery/meta.yaml +21 -0
  483. package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/assets/.gitkeep +0 -0
  484. package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/body.md +201 -0
  485. package/vendor/packages/toolkit/src/content/skills/deprecation-and-migration/meta.yaml +21 -0
  486. package/vendor/packages/toolkit/src/content/skills/developer-experience-audit/body.md +49 -0
  487. package/vendor/packages/toolkit/src/content/skills/developer-experience-audit/meta.yaml +17 -0
  488. package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/assets/.gitkeep +0 -0
  489. package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/body.md +61 -0
  490. package/vendor/packages/toolkit/src/content/skills/documentation-and-adrs/meta.yaml +21 -0
  491. package/vendor/packages/toolkit/src/content/skills/engineering-principles/body.md +54 -0
  492. package/vendor/packages/toolkit/src/content/skills/engineering-principles/meta.yaml +18 -0
  493. package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/assets/.gitkeep +0 -0
  494. package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/body.md +324 -0
  495. package/vendor/packages/toolkit/src/content/skills/frontend-ui-engineering/meta.yaml +21 -0
  496. package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/assets/.gitkeep +0 -0
  497. package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/body.md +319 -0
  498. package/vendor/packages/toolkit/src/content/skills/git-workflow-and-versioning/meta.yaml +21 -0
  499. package/vendor/packages/toolkit/src/content/skills/idea-refine/assets/.gitkeep +0 -0
  500. package/vendor/packages/toolkit/src/content/skills/idea-refine/body.md +173 -0
  501. package/vendor/packages/toolkit/src/content/skills/idea-refine/meta.yaml +17 -0
  502. package/vendor/packages/toolkit/src/content/skills/incremental-implementation/assets/.gitkeep +0 -0
  503. package/vendor/packages/toolkit/src/content/skills/incremental-implementation/body.md +43 -0
  504. package/vendor/packages/toolkit/src/content/skills/incremental-implementation/meta.yaml +20 -0
  505. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/assets/.gitkeep +0 -0
  506. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/body.md +52 -0
  507. package/vendor/packages/toolkit/src/content/skills/multi-perspective-review/meta.yaml +18 -0
  508. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/assets/.gitkeep +0 -0
  509. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/body.md +351 -0
  510. package/vendor/packages/toolkit/src/content/skills/parallel-agent-dispatch/meta.yaml +19 -0
  511. package/vendor/packages/toolkit/src/content/skills/performance-optimization/assets/.gitkeep +0 -0
  512. package/vendor/packages/toolkit/src/content/skills/performance-optimization/body.md +345 -0
  513. package/vendor/packages/toolkit/src/content/skills/performance-optimization/meta.yaml +20 -0
  514. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/assets/.gitkeep +0 -0
  515. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/body.md +48 -0
  516. package/vendor/packages/toolkit/src/content/skills/planning-and-task-breakdown/meta.yaml +20 -0
  517. package/vendor/packages/toolkit/src/content/skills/release-documentation-sync/body.md +54 -0
  518. package/vendor/packages/toolkit/src/content/skills/release-documentation-sync/meta.yaml +15 -0
  519. package/vendor/packages/toolkit/src/content/skills/review-response-and-resolution/body.md +61 -0
  520. package/vendor/packages/toolkit/src/content/skills/review-response-and-resolution/meta.yaml +18 -0
  521. package/vendor/packages/toolkit/src/content/skills/safety-guardrails/assets/.gitkeep +0 -0
  522. package/vendor/packages/toolkit/src/content/skills/safety-guardrails/body.md +43 -0
  523. package/vendor/packages/toolkit/src/content/skills/safety-guardrails/meta.yaml +17 -0
  524. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/assets/.gitkeep +0 -0
  525. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/body.md +371 -0
  526. package/vendor/packages/toolkit/src/content/skills/sdd-tdd-workflow/meta.yaml +25 -0
  527. package/vendor/packages/toolkit/src/content/skills/security-and-hardening/assets/.gitkeep +0 -0
  528. package/vendor/packages/toolkit/src/content/skills/security-and-hardening/body.md +344 -0
  529. package/vendor/packages/toolkit/src/content/skills/security-and-hardening/meta.yaml +21 -0
  530. package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/assets/.gitkeep +0 -0
  531. package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/body.md +55 -0
  532. package/vendor/packages/toolkit/src/content/skills/shipping-and-launch/meta.yaml +22 -0
  533. package/vendor/packages/toolkit/src/content/skills/source-driven-development/assets/.gitkeep +0 -0
  534. package/vendor/packages/toolkit/src/content/skills/source-driven-development/body.md +186 -0
  535. package/vendor/packages/toolkit/src/content/skills/source-driven-development/meta.yaml +18 -0
  536. package/vendor/packages/toolkit/src/content/skills/spec-driven-development/assets/.gitkeep +0 -0
  537. package/vendor/packages/toolkit/src/content/skills/spec-driven-development/body.md +49 -0
  538. package/vendor/packages/toolkit/src/content/skills/spec-driven-development/meta.yaml +20 -0
  539. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/assets/.gitkeep +0 -0
  540. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/body.md +336 -0
  541. package/vendor/packages/toolkit/src/content/skills/sprint-retrospective/meta.yaml +17 -0
  542. package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/assets/.gitkeep +0 -0
  543. package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/body.md +228 -0
  544. package/vendor/packages/toolkit/src/content/skills/subagent-driven-development/meta.yaml +19 -0
  545. package/vendor/packages/toolkit/src/content/skills/team-orchestration/assets/.gitkeep +0 -0
  546. package/vendor/packages/toolkit/src/content/skills/team-orchestration/body.md +372 -0
  547. package/vendor/packages/toolkit/src/content/skills/team-orchestration/meta.yaml +20 -0
  548. package/vendor/packages/toolkit/src/content/skills/test-driven-development/assets/.gitkeep +0 -0
  549. package/vendor/packages/toolkit/src/content/skills/test-driven-development/body.md +374 -0
  550. package/vendor/packages/toolkit/src/content/skills/test-driven-development/meta.yaml +20 -0
  551. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/assets/.gitkeep +0 -0
  552. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/body.md +169 -0
  553. package/vendor/packages/toolkit/src/content/skills/using-agent-skills/meta.yaml +23 -0
  554. package/vendor/packages/toolkit/src/content/skills/verification-before-completion/assets/.gitkeep +0 -0
  555. package/vendor/packages/toolkit/src/content/skills/verification-before-completion/body.md +68 -0
  556. package/vendor/packages/toolkit/src/content/skills/verification-before-completion/meta.yaml +20 -0
  557. package/vendor/packages/toolkit/templates/README.md +12 -0
  558. package/vendor/packages/toolkit/templates/asset-unit/assets/.gitkeep +1 -0
  559. package/vendor/packages/toolkit/templates/asset-unit/body.md +3 -0
  560. package/vendor/packages/toolkit/templates/asset-unit/meta.yaml +6 -0
  561. package/vendor/references/upstreams.yaml +89 -0
@@ -0,0 +1,345 @@
1
+ # Performance Optimization
2
+
3
+ ## Overview
4
+
5
+ Measure before optimizing. Performance work without measurement is guessing — and guessing leads to premature optimization that adds complexity without improving what matters. Profile first, identify the actual bottleneck, fix it, measure again. Optimize only what measurements prove matters.
6
+
7
+ ## When to Use
8
+
9
+ - Performance requirements exist in the spec (load time budgets, response time SLAs)
10
+ - Users or monitoring report slow behavior
11
+ - Core Web Vitals scores are below thresholds
12
+ - You suspect a change introduced a regression
13
+ - Building features that handle large datasets or high traffic
14
+
15
+ **When NOT to use:** Don't optimize before you have evidence of a problem. Premature optimization adds complexity that costs more than the performance it gains.
16
+
17
+ ## Core Web Vitals Targets
18
+
19
+ | Metric | Good | Needs Improvement | Poor |
20
+ |--------|------|-------------------|------|
21
+ | **LCP** (Largest Contentful Paint) | ≤ 2.5s | ≤ 4.0s | > 4.0s |
22
+ | **INP** (Interaction to Next Paint) | ≤ 200ms | ≤ 500ms | > 500ms |
23
+ | **CLS** (Cumulative Layout Shift) | ≤ 0.1 | ≤ 0.25 | > 0.25 |
24
+
25
+ ## The Optimization Workflow
26
+
27
+ ```
28
+ 1. MEASURE → Establish baseline with real data
29
+ 2. IDENTIFY → Find the actual bottleneck (not assumed)
30
+ 3. FIX → Address the specific bottleneck
31
+ 4. VERIFY → Measure again, confirm improvement
32
+ 5. GUARD → Add monitoring or tests to prevent regression
33
+ ```
34
+
35
+ ### Step 1: Measure
36
+
37
+ Two complementary approaches — use both:
38
+
39
+ - **Synthetic (Lighthouse, DevTools Performance tab):** Controlled conditions, reproducible. Best for CI regression detection and isolating specific issues.
40
+ - **RUM (web-vitals library, CrUX):** Real user data in real conditions. Required to validate that a fix actually improved user experience.
41
+
42
+ **Frontend:**
43
+ ```bash
44
+ # Synthetic: Lighthouse in Chrome DevTools (or CI)
45
+ # Chrome DevTools → Performance tab → Record
46
+ # Chrome DevTools MCP → Performance trace
47
+
48
+ # RUM: Web Vitals library in code
49
+ import { onLCP, onINP, onCLS } from 'web-vitals';
50
+
51
+ onLCP(console.log);
52
+ onINP(console.log);
53
+ onCLS(console.log);
54
+ ```
55
+
56
+ **Backend:**
57
+ ```bash
58
+ # Response time logging
59
+ # Application Performance Monitoring (APM)
60
+ # Database query logging with timing
61
+
62
+ # Simple timing
63
+ console.time('db-query');
64
+ const result = await db.query(...);
65
+ console.timeEnd('db-query');
66
+ ```
67
+
68
+ ### Where to Start Measuring
69
+
70
+ Use the symptom to decide what to measure first:
71
+
72
+ ```
73
+ What is slow?
74
+ ├── First page load
75
+ │ ├── Large bundle? --> Measure bundle size, check code splitting
76
+ │ ├── Slow server response? --> Measure TTFB in DevTools Network waterfall
77
+ │ │ ├── DNS long? --> Add dns-prefetch / preconnect for known origins
78
+ │ │ ├── TCP/TLS long? --> Enable HTTP/2, check edge deployment, keep-alive
79
+ │ │ └── Waiting (server) long? --> Profile backend, check queries and caching
80
+ │ └── Render-blocking resources? --> Check network waterfall for CSS/JS blocking
81
+ ├── Interaction feels sluggish
82
+ │ ├── UI freezes on click? --> Profile main thread, look for long tasks (>50ms)
83
+ │ ├── Form input lag? --> Check re-renders, controlled component overhead
84
+ │ └── Animation jank? --> Check layout thrashing, forced reflows
85
+ ├── Page after navigation
86
+ │ ├── Data loading? --> Measure API response times, check for waterfalls
87
+ │ └── Client rendering? --> Profile component render time, check for N+1 fetches
88
+ └── Backend / API
89
+ ├── Single endpoint slow? --> Profile database queries, check indexes
90
+ ├── All endpoints slow? --> Check connection pool, memory, CPU
91
+ └── Intermittent slowness? --> Check for lock contention, GC pauses, external deps
92
+ ```
93
+
94
+ ### Step 2: Identify the Bottleneck
95
+
96
+ Common bottlenecks by category:
97
+
98
+ **Frontend:**
99
+
100
+ | Symptom | Likely Cause | Investigation |
101
+ |---------|-------------|---------------|
102
+ | Slow LCP | Large images, render-blocking resources, slow server | Check network waterfall, image sizes |
103
+ | High CLS | Images without dimensions, late-loading content, font shifts | Check layout shift attribution |
104
+ | Poor INP | Heavy JavaScript on main thread, large DOM updates | Check long tasks in Performance trace |
105
+ | Slow initial load | Large bundle, many network requests | Check bundle size, code splitting |
106
+
107
+ **Backend:**
108
+
109
+ | Symptom | Likely Cause | Investigation |
110
+ |---------|-------------|---------------|
111
+ | Slow API responses | N+1 queries, missing indexes, unoptimized queries | Check database query log |
112
+ | Memory growth | Leaked references, unbounded caches, large payloads | Heap snapshot analysis |
113
+ | CPU spikes | Synchronous heavy computation, regex backtracking | CPU profiling |
114
+ | High latency | Missing caching, redundant computation, network hops | Trace requests through the stack |
115
+
116
+ ### Step 3: Fix Common Anti-Patterns
117
+
118
+ #### N+1 Queries (Backend)
119
+
120
+ ```typescript
121
+ // BAD: N+1 — one query per task for the owner
122
+ const tasks = await db.tasks.findMany();
123
+ for (const task of tasks) {
124
+ task.owner = await db.users.findUnique({ where: { id: task.ownerId } });
125
+ }
126
+
127
+ // GOOD: Single query with join/include
128
+ const tasks = await db.tasks.findMany({
129
+ include: { owner: true },
130
+ });
131
+ ```
132
+
133
+ #### Unbounded Data Fetching
134
+
135
+ ```typescript
136
+ // BAD: Fetching all records
137
+ const allTasks = await db.tasks.findMany();
138
+
139
+ // GOOD: Paginated with limits
140
+ const tasks = await db.tasks.findMany({
141
+ take: 20,
142
+ skip: (page - 1) * 20,
143
+ orderBy: { createdAt: 'desc' },
144
+ });
145
+ ```
146
+
147
+ #### Missing Image Optimization (Frontend)
148
+
149
+ ```html
150
+ <!-- BAD: No dimensions, no format optimization -->
151
+ <img src="/hero.jpg" />
152
+
153
+ <!-- GOOD: Hero / LCP image — art direction + resolution switching, high priority -->
154
+ <!--
155
+ Two techniques combined:
156
+ - Art direction (media): different crop/composition per breakpoint
157
+ - Resolution switching (srcset + sizes): right file size per screen density
158
+ -->
159
+ <picture>
160
+ <!-- Mobile: portrait crop (8:10) -->
161
+ <source
162
+ media="(max-width: 767px)"
163
+ srcset="/hero-mobile-400.avif 400w, /hero-mobile-800.avif 800w"
164
+ sizes="100vw"
165
+ width="800"
166
+ height="1000"
167
+ type="image/avif"
168
+ />
169
+ <source
170
+ media="(max-width: 767px)"
171
+ srcset="/hero-mobile-400.webp 400w, /hero-mobile-800.webp 800w"
172
+ sizes="100vw"
173
+ width="800"
174
+ height="1000"
175
+ type="image/webp"
176
+ />
177
+ <!-- Desktop: landscape crop (2:1) -->
178
+ <source
179
+ srcset="/hero-800.avif 800w, /hero-1200.avif 1200w, /hero-1600.avif 1600w"
180
+ sizes="(max-width: 1200px) 100vw, 1200px"
181
+ width="1200"
182
+ height="600"
183
+ type="image/avif"
184
+ />
185
+ <source
186
+ srcset="/hero-800.webp 800w, /hero-1200.webp 1200w, /hero-1600.webp 1600w"
187
+ sizes="(max-width: 1200px) 100vw, 1200px"
188
+ width="1200"
189
+ height="600"
190
+ type="image/webp"
191
+ />
192
+ <img
193
+ src="/hero-desktop.jpg"
194
+ width="1200"
195
+ height="600"
196
+ fetchpriority="high"
197
+ alt="Hero image description"
198
+ />
199
+ </picture>
200
+
201
+ <!-- GOOD: Below-the-fold image — lazy loaded + async decoding -->
202
+ <img
203
+ src="/content.webp"
204
+ width="800"
205
+ height="400"
206
+ loading="lazy"
207
+ decoding="async"
208
+ alt="Content image description"
209
+ />
210
+ ```
211
+
212
+ #### Unnecessary Re-renders (React)
213
+
214
+ ```tsx
215
+ // BAD: Creates new object on every render, causing children to re-render
216
+ function TaskList() {
217
+ return <TaskFilters options={{ sortBy: 'date', order: 'desc' }} />;
218
+ }
219
+
220
+ // GOOD: Stable reference
221
+ const DEFAULT_OPTIONS = { sortBy: 'date', order: 'desc' } as const;
222
+ function TaskList() {
223
+ return <TaskFilters options={DEFAULT_OPTIONS} />;
224
+ }
225
+
226
+ // Use React.memo for expensive components
227
+ const TaskItem = React.memo(function TaskItem({ task }: Props) {
228
+ return <div>{/* expensive render */}</div>;
229
+ });
230
+
231
+ // Use useMemo for expensive computations
232
+ function TaskStats({ tasks }: Props) {
233
+ const stats = useMemo(() => calculateStats(tasks), [tasks]);
234
+ return <div>{stats.completed} / {stats.total}</div>;
235
+ }
236
+ ```
237
+
238
+ #### Large Bundle Size
239
+
240
+ ```typescript
241
+ // Modern bundlers (Vite, webpack 5+) handle named imports with tree-shaking automatically,
242
+ // provided the dependency ships ESM and is marked `sideEffects: false` in package.json.
243
+ // Profile before changing import styles — the real gains come from splitting and lazy loading.
244
+
245
+ // GOOD: Dynamic import for heavy, rarely-used features
246
+ const ChartLibrary = lazy(() => import('./ChartLibrary'));
247
+
248
+ // GOOD: Route-level code splitting wrapped in Suspense
249
+ const SettingsPage = lazy(() => import('./pages/Settings'));
250
+
251
+ function App() {
252
+ return (
253
+ <Suspense fallback={<Spinner />}>
254
+ <SettingsPage />
255
+ </Suspense>
256
+ );
257
+ }
258
+ ```
259
+
260
+ #### Missing Caching (Backend)
261
+
262
+ ```typescript
263
+ // Cache frequently-read, rarely-changed data
264
+ const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
265
+ let cachedConfig: AppConfig | null = null;
266
+ let cacheExpiry = 0;
267
+
268
+ async function getAppConfig(): Promise<AppConfig> {
269
+ if (cachedConfig && Date.now() < cacheExpiry) {
270
+ return cachedConfig;
271
+ }
272
+ cachedConfig = await db.config.findFirst();
273
+ cacheExpiry = Date.now() + CACHE_TTL;
274
+ return cachedConfig;
275
+ }
276
+
277
+ // HTTP caching headers for static assets
278
+ app.use('/static', express.static('public', {
279
+ maxAge: '1y', // Cache for 1 year
280
+ immutable: true, // Never revalidate (use content hashing in filenames)
281
+ }));
282
+
283
+ // Cache-Control for API responses
284
+ res.set('Cache-Control', 'public, max-age=300'); // 5 minutes
285
+ ```
286
+
287
+ ## Performance Budget
288
+
289
+ Set budgets and enforce them:
290
+
291
+ ```
292
+ JavaScript bundle: < 200KB gzipped (initial load)
293
+ CSS: < 50KB gzipped
294
+ Images: < 200KB per image (above the fold)
295
+ Fonts: < 100KB total
296
+ API response time: < 200ms (p95)
297
+ Time to Interactive: < 3.5s on 4G
298
+ Lighthouse Performance score: ≥ 90
299
+ ```
300
+
301
+ **Enforce in CI:**
302
+ ```bash
303
+ # Bundle size check
304
+ npx bundlesize --config bundlesize.config.json
305
+
306
+ # Lighthouse CI
307
+ npx lhci autorun
308
+ ```
309
+
310
+ ## See Also
311
+
312
+ For detailed performance checklists, optimization commands, and anti-pattern reference, see `references/performance-checklist.md`.
313
+
314
+
315
+ ## Common Rationalizations
316
+
317
+ | Rationalization | Reality |
318
+ |---|---|
319
+ | "We'll optimize later" | Performance debt compounds. Fix obvious anti-patterns now, defer micro-optimizations. |
320
+ | "It's fast on my machine" | Your machine isn't the user's. Profile on representative hardware and networks. |
321
+ | "This optimization is obvious" | If you didn't measure, you don't know. Profile first. |
322
+ | "Users won't notice 100ms" | Research shows 100ms delays impact conversion rates. Users notice more than you think. |
323
+ | "The framework handles performance" | Frameworks prevent some issues but can't fix N+1 queries or oversized bundles. |
324
+
325
+ ## Red Flags
326
+
327
+ - Optimization without profiling data to justify it
328
+ - N+1 query patterns in data fetching
329
+ - List endpoints without pagination
330
+ - Images without dimensions, lazy loading, or responsive sizes
331
+ - Bundle size growing without review
332
+ - No performance monitoring in production
333
+ - `React.memo` and `useMemo` everywhere (overusing is as bad as underusing)
334
+
335
+ ## Verification
336
+
337
+ After any performance-related change:
338
+
339
+ - [ ] Before and after measurements exist (specific numbers)
340
+ - [ ] The specific bottleneck is identified and addressed
341
+ - [ ] Core Web Vitals are within "Good" thresholds
342
+ - [ ] Bundle size hasn't increased significantly
343
+ - [ ] No N+1 queries in new data fetching code
344
+ - [ ] Performance budget passes in CI (if configured)
345
+ - [ ] Existing tests still pass (optimization didn't break behavior)
@@ -0,0 +1,20 @@
1
+ kind: skill
2
+ name: performance-optimization
3
+ title: 性能优化
4
+ description: 优化应用性能。适用于存在性能要求、怀疑出现回归,或需要改善 Core Web Vitals 与加载时间时;也适用于已经通过 profiling 找到瓶颈并需要定向修复的场景。
5
+ tier: recommended
6
+ audience: advanced
7
+ stability: stable
8
+ suggests:
9
+ - skill:verification-before-completion
10
+ platforms:
11
+ - qwen
12
+ - codex
13
+ - qoder
14
+ source:
15
+ upstream: agent-skills
16
+ strategy: adapted
17
+ origin_name: performance-optimization
18
+ origin_path: skills/performance-optimization/SKILL.md
19
+ origin_id: skill:performance-optimization
20
+ notes: 基于上游性能优化能力中文化整理。
@@ -0,0 +1,48 @@
1
+ # 规划与任务拆解
2
+
3
+ ## 何时使用
4
+
5
+ - 已有规格,需要拆成可执行单元
6
+ - 任务太大、太模糊或依赖顺序不明显
7
+ - 需要并行推进多个切片
8
+ - 需要向人类清楚表达范围、风险和检查点
9
+
10
+ 不适用于单文件且边界显而易见的小改动。
11
+
12
+ ## 输入前提
13
+
14
+ - 已有规格,或至少有清楚的问题定义
15
+ - 已读相关代码并识别主要约束
16
+ - 愿意在规划阶段保持只读,不边做边改
17
+
18
+ ## 执行步骤
19
+
20
+ 1. 进入只读分析模式,先看规格和现有代码
21
+ 2. 识别依赖图,确定哪些必须先做
22
+ 3. 优先做纵向切片,而不是按数据库、API、UI 横向分层
23
+ 4. 为每个任务写清:
24
+ - 描述
25
+ - Acceptance criteria
26
+ - Verification
27
+ - Dependencies
28
+ - Files likely touched
29
+ 5. 排出顺序,并设置阶段性检查点
30
+
31
+ ## 成功标准
32
+
33
+ - 每个任务都能独立实现、测试和验证
34
+ - 任务粒度足够小,不会一次触碰过多文件
35
+ - 依赖顺序和可并行项是显式的
36
+ - 人类看完计划后能明确判断“方案对不对”
37
+
38
+ ## 相关原则
39
+
40
+ - 计划服务实现,不是形式化文档
41
+ - 先控制复杂度,再讨论并行度
42
+ - 任务必须能验证,不能只写动作名
43
+
44
+ ## 与其他技能的衔接
45
+
46
+ - 接在 `spec-driven-development` 之后
47
+ - 计划确认后交给 `incremental-implementation`
48
+ - 涉及方案争议时,可搭配 `multi-perspective-review`
@@ -0,0 +1,20 @@
1
+ kind: skill
2
+ name: planning-and-task-breakdown
3
+ title: 任务拆解
4
+ description: 将工作拆解为有序任务。适用于已经有规格或清晰需求、需要拆成可实现任务的场景;也适用于任务过大难以下手、需要估算范围或可以并行推进的情况。
5
+ tier: core
6
+ audience: default
7
+ stability: stable
8
+ suggests:
9
+ - skill:engineering-principles
10
+ platforms:
11
+ - qwen
12
+ - codex
13
+ - qoder
14
+ source:
15
+ upstream: agent-skills
16
+ strategy: adapted
17
+ origin_name: planning-and-task-breakdown
18
+ origin_path: skills/planning-and-task-breakdown/SKILL.md
19
+ origin_id: skill:planning-and-task-breakdown
20
+ notes: 基于上游 planning workflow,并增加上下文窗口与并行拆解约束
@@ -0,0 +1,54 @@
1
+ # 发布后文档同步
2
+
3
+ ## 何时使用
4
+
5
+ - 版本、功能或配置已经发布,需要确认长期文档没有落后于真实状态时
6
+ - 发布说明已经写完,但还需要逐项核对 README、安装说明和行为变更记录时
7
+ - 发布后发现用户或内部同事仍按旧路径操作,需要做 drift closure 时
8
+
9
+ ## 输入前提
10
+
11
+ - 代码和发布动作已经完成,当前重点是收尾而不是重新设计方案
12
+ - 已知本次发布影响了哪些入口、配置、默认行为或升级路径
13
+ - 相关 owner 能立即修正文档,而不是把问题留到下个版本
14
+
15
+ ## 执行步骤
16
+
17
+ 1. 列出本次发布影响的同步对象,只保留长期会被消费的文档:
18
+ - README、quick start、首次成功路径
19
+ - 安装、升级、回滚或迁移说明
20
+ - 公共 API、CLI、配置项、默认值说明
21
+ - 用户可见行为变更、兼容性边界、已知限制
22
+ 2. 逐项核对这些文档是否反映真实发布状态,而不是反映开发中间态
23
+ 3. 对缺失项立即补齐,或明确记录 owner、截止时间和阻断原因
24
+ 4. 用最小验收确认收尾完成:
25
+ - 新用户能按文档走通最小成功路径
26
+ - 旧用户知道是否需要升级、迁移或回滚动作
27
+ - 支持、运维和后续开发不会因为旧文档误判
28
+ 5. 记录仍然存在的差异;如果差异会误导用户或运维,就把它视为未完成收尾
29
+
30
+ ## 成功标准
31
+
32
+ - 发布后的长期文档与真实状态一致
33
+ - 文档同步对象清晰,没有把临时说明误当成长期文档
34
+ - 影响安装、升级、回滚或默认行为的变化都有明确说明
35
+ - drift 没有带入下一个版本
36
+
37
+ ## 边界
38
+
39
+ - 本 skill 只负责发布后的文档同步和 drift closure
40
+ - 不替代 `documentation-and-adrs` 的决策记录、ADR 和长期知识沉淀
41
+ - 不替代 `shipping-and-launch` 的发布 gate、灰度、监控和回滚策略
42
+ - 不扩展成通用文档大全;只处理本次发布真正受影响的长期文档
43
+
44
+ ## 最小清单
45
+
46
+ - README / quick start 已同步
47
+ - 安装、升级、回滚说明已同步
48
+ - 行为变更、默认值变化、兼容性边界已同步
49
+ - 如有剩余差异,已明确 owner 和关闭时间
50
+
51
+ ## 与其他技能的衔接
52
+
53
+ - 发布前通常先用 `shipping-and-launch`
54
+ - 需要判断应该记录什么、哪些文档已 drift 时,回到 `documentation-and-adrs`
@@ -0,0 +1,15 @@
1
+ kind: skill
2
+ name: release-documentation-sync
3
+ title: 发布后文档同步
4
+ description: 在发布完成后核对 README、安装升级说明、行为变更记录等长期文档是否与真实发布状态一致,避免 release 之后继续发生文档 drift。
5
+ tier: recommended
6
+ audience: advanced
7
+ stability: stable
8
+ platforms:
9
+ - qwen
10
+ - codex
11
+ - qoder
12
+ source:
13
+ upstream: gstack
14
+ strategy: inspired
15
+ notes: 吸收 document-release 的发布后文档同步思路,只保留轻量收尾清单与 drift closure,不复制完整文档体系或发布 gate。
@@ -0,0 +1,61 @@
1
+ # 审查响应与问题收敛
2
+
3
+ ## 何时使用
4
+
5
+ - 已收到 reviewer、同事或代理给出的审查意见之后
6
+ - 一轮 review 结束,需要把问题分类并安排修复顺序时
7
+ - 修复完成后,需要补充回归验证并回复 reviewer 时
8
+ - 需要判断哪些意见必须立即处理,哪些可以延后时
9
+
10
+ ## 输入前提
11
+
12
+ - 已有明确的 review 结论或问题清单
13
+ - 已知道这次变更的规格、计划或原始目标
14
+ - 愿意对每条反馈给出处理结果,而不是只回一句“已看”
15
+
16
+ ## 执行步骤
17
+
18
+ 1. 先把反馈分类:
19
+ - 阻塞合并的问题
20
+ - 应在本轮修复的重要问题
21
+ - 可延后的建议项
22
+ - 需要澄清或不同意的点
23
+ 2. 回到原始规格或任务,确认每条反馈是否真会影响需求、正确性、可维护性或风险边界
24
+ 3. 按顺序处理:
25
+ - 先修 `Critical`
26
+ - 再处理会影响当前发布质量的 `Important`
27
+ - 对 `Suggestion` 明确采纳、暂缓或拒绝,并说明原因
28
+ 4. 每完成一类修复,都补最小必要的回归验证:
29
+ - 受影响测试
30
+ - 构建或 lint
31
+ - 需要时补充人工验证
32
+ 5. 回复 reviewer 时逐条说明:
33
+ - 已修复什么
34
+ - 用什么验证证明成立
35
+ - 哪些未采纳以及理由
36
+ 6. 重新提交前确认:
37
+ - 没有遗留未回应的阻塞问题
38
+ - 新改动没有引入额外漂移
39
+ - 反馈闭环对外可读、可核验
40
+
41
+ ## 成功标准
42
+
43
+ - 每条 review 意见都有明确处理状态
44
+ - 修复顺序由风险和合并门槛驱动,而不是按回复方便程度排列
45
+ - 回复 reviewer 时包含具体改动和验证依据
46
+ - 延后项被显式记录,不伪装成“已处理”
47
+ - 重新提交后,reviewer 能快速判断这一轮是否真正收敛
48
+
49
+ ## 相关原则
50
+
51
+ - 先消除阻塞,再处理优化项
52
+ - 不把“不同意”写成情绪表达,要写成技术理由
53
+ - 回复必须附验证证据,不能只有态度
54
+ - review 响应是收敛过程,不是辩论过程
55
+
56
+ ## 与其他技能的衔接
57
+
58
+ - 通常接在 `code-review-and-quality` 之后
59
+ - 回归验证依赖 `verification-before-completion`
60
+ - 如果反馈暴露出规格缺口,可回到 `spec-driven-development` 或 `planning-and-task-breakdown`
61
+ - 如果反馈聚焦安全或性能,可转给对应专项 skill 深挖
@@ -0,0 +1,18 @@
1
+ kind: skill
2
+ name: review-response-and-resolution
3
+ title: 审查响应与问题收敛
4
+ description: 在收到代码审查反馈后使用。负责分类意见、安排修复顺序、补充回归验证,并以可核验的方式回复 reviewer,直到问题收敛。
5
+ tier: recommended
6
+ audience: advanced
7
+ stability: stable
8
+ suggests:
9
+ - skill:verification-before-completion
10
+ - skill:engineering-principles
11
+ platforms:
12
+ - qwen
13
+ - codex
14
+ - qoder
15
+ source:
16
+ upstream: superpowers
17
+ strategy: inspired
18
+ notes: 吸收 receiving-code-review 一类方法,整理为本仓库的 review 后处理闭环;只覆盖响应、修复、回归验证和回复,不承担审查本身或分支收尾职责。
@@ -0,0 +1,43 @@
1
+ # 安全护栏
2
+
3
+ ## 何时使用
4
+
5
+ - 即将执行可能破坏文件、数据库、Git 历史或配置的操作时
6
+ - 接近生产环境、敏感数据或关键基础设施时
7
+ - 多个代理同时改同一仓库时
8
+ - 你不完全理解某条命令的影响时
9
+
10
+ ## 输入前提
11
+
12
+ - 已识别当前操作的风险等级
13
+ - 接受对高风险操作增加确认、冻结或限制
14
+ - 目标是降低误操作,而不是完全阻塞正常开发
15
+
16
+ ## 执行步骤
17
+
18
+ 1. 先判断当前需要哪种保护模式:
19
+ - `Careful`:危险操作前预警
20
+ - `Freeze`:冻结关键文件或目录
21
+ - `Guard`:最高级防护,叠加更多限制
22
+ 2. 对危险命令做风险识别和替代方案提示
23
+ 3. 对关键路径加冻结规则,阻止越界修改
24
+ 4. 高风险环境开启 Guard,限制更大范围写入和执行
25
+ 5. 整个操作过程保留审计痕迹和确认记录
26
+
27
+ ## 成功标准
28
+
29
+ - 高风险操作不会在无确认的情况下执行
30
+ - 关键文件或目录不会被误改
31
+ - 生产或敏感环境下的改动范围被显式限制
32
+ - 安全模式不会妨碍普通低风险开发
33
+
34
+ ## 相关原则
35
+
36
+ - 在真正危险的地方增加摩擦
37
+ - 不确定时宁可先警告、先冻结
38
+ - 可逆操作和不可逆操作应区别对待
39
+
40
+ ## 与其他技能的衔接
41
+
42
+ - 与 `security-and-hardening` 互补:一个防漏洞,一个防误操作
43
+ - 在 `shipping-and-launch`、迁移、数据库操作和批量改动前特别重要
@@ -0,0 +1,17 @@
1
+ kind: skill
2
+ name: safety-guardrails
3
+ title: 安全护栏
4
+ description: 在 AI 执行潜在破坏性操作时施加安全护栏。适用于生产环境、关键基础设施或敏感文件附近的工作,通过 Careful、Freeze、Guard 三种模式减少误删、危险命令和越权修改风险。
5
+ tier: recommended
6
+ audience: default
7
+ stability: stable
8
+ suggests:
9
+ - skill:verification-before-completion
10
+ platforms:
11
+ - qwen
12
+ - codex
13
+ - qoder
14
+ source:
15
+ upstream: toolkit-original
16
+ strategy: curated
17
+ notes: 本仓库围绕高风险操作防护整理的安全执行能力。