@kensaurus/skills 0.0.0-stage → 2.0.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 (423) hide show
  1. package/.claude-plugin/marketplace.json +53 -0
  2. package/.claude-plugin/plugin.json +40 -0
  3. package/.cursor-plugin/plugin.json +38 -0
  4. package/.mcp.json +28 -0
  5. package/CHANGELOG.md +1761 -0
  6. package/LICENSE +21 -0
  7. package/NOTICE +13 -0
  8. package/README.md +820 -2
  9. package/SECURITY.md +55 -0
  10. package/agents/code-reviewer.md +60 -0
  11. package/agents/completion-judge.md +89 -0
  12. package/agents/db-migrator.md +125 -0
  13. package/agents/debugger.md +47 -0
  14. package/agents/deploy-checker.md +100 -0
  15. package/agents/perf-monitor.md +74 -0
  16. package/assets/favicon.png +0 -0
  17. package/assets/logo-light.png +0 -0
  18. package/assets/logo.png +0 -0
  19. package/assets/logo.svg +6 -0
  20. package/assets/og.png +0 -0
  21. package/bin/install.mjs +1127 -0
  22. package/bin/kenji.js +2 -0
  23. package/commands/adr.md +17 -0
  24. package/commands/aeo-plan.md +18 -0
  25. package/commands/arch-boundaries.md +17 -0
  26. package/commands/aso-plan.md +18 -0
  27. package/commands/auth-flows.md +19 -0
  28. package/commands/backup-plan.md +17 -0
  29. package/commands/burndown-full.md +25 -0
  30. package/commands/capacitor-plan.md +18 -0
  31. package/commands/codemod-safety.md +22 -0
  32. package/commands/commit.md +18 -0
  33. package/commands/complete-everything.md +40 -0
  34. package/commands/cost-plan.md +19 -0
  35. package/commands/deadcode-plan.md +26 -0
  36. package/commands/deadcode.md +32 -0
  37. package/commands/debug-issue.md +17 -0
  38. package/commands/deps-plan.md +18 -0
  39. package/commands/docs-plan.md +17 -0
  40. package/commands/doctrine.md +19 -0
  41. package/commands/error-plan.md +19 -0
  42. package/commands/feedback-to-closure.md +36 -0
  43. package/commands/fix-issue.md +76 -0
  44. package/commands/gate-logic.md +26 -0
  45. package/commands/green-repo.md +36 -0
  46. package/commands/grill-me.md +19 -0
  47. package/commands/gtm-plan.md +21 -0
  48. package/commands/gtm-weekly.md +17 -0
  49. package/commands/gtm.md +22 -0
  50. package/commands/handoff.md +15 -0
  51. package/commands/housekeep-backlog.md +18 -0
  52. package/commands/housekeep-files.md +22 -0
  53. package/commands/housekeep-gates.md +18 -0
  54. package/commands/instant-nav.md +11 -0
  55. package/commands/integrity-plan.md +19 -0
  56. package/commands/launch-kit.md +16 -0
  57. package/commands/mcp-guide.md +40 -0
  58. package/commands/mobile-plan.md +19 -0
  59. package/commands/native-rn-monorepo/README.md +78 -0
  60. package/commands/native-rn-monorepo/android-build.md +26 -0
  61. package/commands/native-rn-monorepo/android-install.md +32 -0
  62. package/commands/native-rn-monorepo/android-logcat.md +37 -0
  63. package/commands/native-rn-monorepo/ios-ci-logs.md +56 -0
  64. package/commands/native-rn-monorepo/ios-ci-status.md +52 -0
  65. package/commands/native-rn-monorepo/ios-ci-trigger.md +59 -0
  66. package/commands/native-rn-monorepo/rn-reset.md +50 -0
  67. package/commands/native-rn-monorepo/rn-ship-ios.md +67 -0
  68. package/commands/native-rn-monorepo/rn-verify.md +53 -0
  69. package/commands/perf-plan.md +18 -0
  70. package/commands/plan-mode.md +74 -0
  71. package/commands/pr.md +16 -0
  72. package/commands/pricing-plan.md +20 -0
  73. package/commands/privacy-plan.md +18 -0
  74. package/commands/readability.md +12 -0
  75. package/commands/readme.md +15 -0
  76. package/commands/refactor.md +15 -0
  77. package/commands/release-prep.md +17 -0
  78. package/commands/research.md +25 -0
  79. package/commands/responsive-audit.md +21 -0
  80. package/commands/review-code.md +18 -0
  81. package/commands/rls-plan.md +18 -0
  82. package/commands/secrets-plan.md +18 -0
  83. package/commands/security-plan.md +19 -0
  84. package/commands/ship-and-observe.md +36 -0
  85. package/commands/skill-conflicts.md +19 -0
  86. package/commands/slop-plan.md +18 -0
  87. package/commands/stub-plan.md +18 -0
  88. package/commands/test-mutation.md +16 -0
  89. package/commands/test-plan.md +17 -0
  90. package/commands/test.md +29 -0
  91. package/commands/thirdparty-web-interface-guidelines.md +185 -0
  92. package/commands/uiux-plan.md +18 -0
  93. package/commands/uiux.md +45 -0
  94. package/commands/update-deps.md +21 -0
  95. package/commands/validation-plan.md +19 -0
  96. package/commands-portable/fix-issue.md +72 -0
  97. package/commands-portable/plan-mode.md +92 -0
  98. package/commands-portable/research.md +91 -0
  99. package/docs/screenshots/README.md +5 -0
  100. package/docs/screenshots/audit-dark.png +0 -0
  101. package/docs/screenshots/build-dark.png +0 -0
  102. package/docs/screenshots/grill-dark.png +0 -0
  103. package/docs/screenshots/hero-dark.png +0 -0
  104. package/docs/screenshots/hero-light.png +0 -0
  105. package/docs/screenshots/ship-dark.png +0 -0
  106. package/docs/screenshots/src/showcase.html +320 -0
  107. package/hooks/completion-gate.mjs +258 -0
  108. package/hooks/cursor-hooks.json +13 -0
  109. package/hooks/hooks.json +15 -0
  110. package/install.sh +21 -0
  111. package/llms.txt +40 -0
  112. package/mcp/README.md +266 -0
  113. package/mcp/VERSIONS.md +41 -0
  114. package/mcp/mcp-full.json.template +124 -0
  115. package/mcp/mcp.json.template +29 -0
  116. package/mcp/pinned-versions.json +27 -0
  117. package/package.json +93 -4
  118. package/rules/approved-plan-execution.mdc +65 -0
  119. package/rules/full-stack-ship-discipline.mdc +37 -0
  120. package/rules/native-rn-monorepo/README.md +63 -0
  121. package/rules/native-rn-monorepo/_project.mdc +69 -0
  122. package/rules/native-rn-monorepo/native-android.mdc +72 -0
  123. package/rules/native-rn-monorepo/native-ios.mdc +61 -0
  124. package/rules/native-rn-monorepo/react-native-js.mdc +78 -0
  125. package/rules/native-rn-monorepo/web.mdc +60 -0
  126. package/rules/project-starter/components.mdc +54 -0
  127. package/rules/project-starter/data-fetching.mdc +77 -0
  128. package/rules/project-starter/git.mdc +41 -0
  129. package/rules/project-starter/supabase.mdc +37 -0
  130. package/rules/project-starter/tailwind.mdc +48 -0
  131. package/rules/project-starter/typescript.mdc +36 -0
  132. package/rules/project-starter/web-performance.mdc +42 -0
  133. package/rules/senior-engineer.mdc +30 -0
  134. package/rules/shell-first-search.mdc +19 -0
  135. package/rules/skill-workflows.mdc +35 -0
  136. package/rules/verification-before-completion.mdc +57 -0
  137. package/skills/audit-accessibility/SKILL.md +441 -0
  138. package/skills/audit-agent-speed/SKILL.md +181 -0
  139. package/skills/audit-agent-speed/scripts/stop-typecheck.mjs +151 -0
  140. package/skills/audit-analytics/SKILL.md +138 -0
  141. package/skills/audit-auth-flows/SKILL.md +267 -0
  142. package/skills/audit-backend-architecture/SKILL.md +266 -0
  143. package/skills/audit-backend-architecture/references/patterns.md +386 -0
  144. package/skills/audit-bundle-size/SKILL.md +296 -0
  145. package/skills/audit-cicd/SKILL.md +218 -0
  146. package/skills/audit-code-quality/SKILL.md +314 -0
  147. package/skills/audit-code-review/SKILL.md +289 -0
  148. package/skills/audit-codemod-safety/SKILL.md +159 -0
  149. package/skills/audit-db-schema/SKILL.md +465 -0
  150. package/skills/audit-db-schema/references/details.md +110 -0
  151. package/skills/audit-doctrine/SKILL.md +189 -0
  152. package/skills/audit-env-parity/SKILL.md +133 -0
  153. package/skills/audit-fe-api/SKILL.md +458 -0
  154. package/skills/audit-gate-logic/SKILL.md +219 -0
  155. package/skills/audit-i18n/SKILL.md +339 -0
  156. package/skills/audit-infra-cost/SKILL.md +142 -0
  157. package/skills/audit-langfuse-llm/SKILL.md +468 -0
  158. package/skills/audit-langfuse-llm/references/details.md +226 -0
  159. package/skills/audit-llm-security/SKILL.md +147 -0
  160. package/skills/audit-monetization-iap/SKILL.md +137 -0
  161. package/skills/audit-payment-system/SKILL.md +268 -0
  162. package/skills/audit-payment-system/references/checklist.md +283 -0
  163. package/skills/audit-performance/SKILL.md +383 -0
  164. package/skills/audit-performance/references/loading-priority-2026.md +81 -0
  165. package/skills/audit-realworld/SKILL.md +287 -0
  166. package/skills/audit-registry-listing/SKILL.md +122 -0
  167. package/skills/audit-resilience/SKILL.md +154 -0
  168. package/skills/audit-responsive/SKILL.md +221 -0
  169. package/skills/audit-responsive/references/checklist.md +166 -0
  170. package/skills/audit-security/SKILL.md +289 -0
  171. package/skills/audit-skill-conflicts/SKILL.md +178 -0
  172. package/skills/audit-ui-states/SKILL.md +146 -0
  173. package/skills/audit-uiux-design-system/SKILL.md +475 -0
  174. package/skills/audit-uiux-design-system/references/details.md +71 -0
  175. package/skills/audit-ux/SKILL.md +379 -0
  176. package/skills/audit-ux/references/details.md +245 -0
  177. package/skills/audit-ux-journeys/SKILL.md +215 -0
  178. package/skills/audit-ux-journeys/references/checklist.md +179 -0
  179. package/skills/backend-db-performance/SKILL.md +441 -0
  180. package/skills/backend-error-handling/SKILL.md +489 -0
  181. package/skills/backend-error-handling/references/details.md +58 -0
  182. package/skills/backend-observability/SKILL.md +88 -0
  183. package/skills/backend-patterns/SKILL.md +499 -0
  184. package/skills/backend-patterns/references/architecture-patterns.md +298 -0
  185. package/skills/backend-realtime/SKILL.md +403 -0
  186. package/skills/backend-realtime/references/patterns.md +74 -0
  187. package/skills/burndown-full/SKILL.md +174 -0
  188. package/skills/complete-everything/SKILL.md +295 -0
  189. package/skills/data-pipeline/SKILL.md +109 -0
  190. package/skills/data-visualization/SKILL.md +488 -0
  191. package/skills/debug-error/SKILL.md +322 -0
  192. package/skills/debug-fe-be-integration/SKILL.md +459 -0
  193. package/skills/debug-sentry-monitor/SKILL.md +497 -0
  194. package/skills/debug-sentry-monitor/references/details.md +165 -0
  195. package/skills/deploy-npm/SKILL.md +394 -0
  196. package/skills/deploy-npm/references/example-mushi-mushi.md +52 -0
  197. package/skills/deploy-verify/SKILL.md +489 -0
  198. package/skills/design-api/SKILL.md +379 -0
  199. package/skills/design-canvas/SKILL.md +155 -0
  200. package/skills/design-email/SKILL.md +370 -0
  201. package/skills/design-frontend/SKILL.md +143 -0
  202. package/skills/design-generative-art/SKILL.md +474 -0
  203. package/skills/design-mobile-first/SKILL.md +506 -0
  204. package/skills/design-motion/SKILL.md +333 -0
  205. package/skills/design-motion/references/delight-interactions.md +191 -0
  206. package/skills/design-prd/SKILL.md +443 -0
  207. package/skills/design-system/SKILL.md +457 -0
  208. package/skills/design-theme/SKILL.md +226 -0
  209. package/skills/design-theme/themes/tsumagoi-ranch.md +150 -0
  210. package/skills/docs-adr/SKILL.md +168 -0
  211. package/skills/docs-coauthor/SKILL.md +368 -0
  212. package/skills/docs-comparison-pages/SKILL.md +117 -0
  213. package/skills/docs-domain-modeling/SKILL.md +97 -0
  214. package/skills/docs-launch-kit/SKILL.md +139 -0
  215. package/skills/docs-writer/SKILL.md +469 -0
  216. package/skills/enhance-agent-guardrails/SKILL.md +164 -0
  217. package/skills/enhance-arch-boundaries/SKILL.md +154 -0
  218. package/skills/enhance-capacitor-ui/SKILL.md +463 -0
  219. package/skills/enhance-capacitor-ui/references/details.md +750 -0
  220. package/skills/enhance-email-deliverability/SKILL.md +143 -0
  221. package/skills/enhance-growth-loops/SKILL.md +122 -0
  222. package/skills/enhance-lifecycle-email/SKILL.md +130 -0
  223. package/skills/enhance-motion/SKILL.md +193 -0
  224. package/skills/enhance-onboarding/SKILL.md +148 -0
  225. package/skills/enhance-pwa/SKILL.md +304 -0
  226. package/skills/enhance-readability/SKILL.md +146 -0
  227. package/skills/enhance-readme/SKILL.md +496 -0
  228. package/skills/enhance-readme/package-lock.json +187 -0
  229. package/skills/enhance-readme/package.json +17 -0
  230. package/skills/enhance-readme/scripts/generate-readme-blocks.mjs +199 -0
  231. package/skills/enhance-readme/scripts/record-readme-tour.mjs +442 -0
  232. package/skills/enhance-skill-prompts/SKILL.md +167 -0
  233. package/skills/enhance-skill-prompts/references/exemplar-audit-auth-flows.md +311 -0
  234. package/skills/enhance-web-conversion/SKILL.md +155 -0
  235. package/skills/enhance-web-forms/SKILL.md +154 -0
  236. package/skills/enhance-web-instant-nav/SKILL.md +138 -0
  237. package/skills/enhance-web-instant-nav/references/bfcache-blockers.md +23 -0
  238. package/skills/enhance-web-instant-nav/references/early-hints.md +33 -0
  239. package/skills/enhance-web-instant-nav/references/speculation-rules.md +44 -0
  240. package/skills/enhance-web-landing/SKILL.md +459 -0
  241. package/skills/enhance-web-landing/references/details.md +773 -0
  242. package/skills/enhance-web-redesign/SKILL.md +228 -0
  243. package/skills/enhance-web-seo/SKILL.md +276 -0
  244. package/skills/enhance-web-ui/SKILL.md +473 -0
  245. package/skills/enhance-web-ui/references/details.md +674 -0
  246. package/skills/enhance-web-ux/HEURISTICS.md +242 -0
  247. package/skills/enhance-web-ux/PATTERNS.md +375 -0
  248. package/skills/enhance-web-ux/SKILL.md +464 -0
  249. package/skills/enhance-web-ux/examples.md +222 -0
  250. package/skills/enhance-web-ux/references/details.md +406 -0
  251. package/skills/enhance-web-web3d/SKILL.md +397 -0
  252. package/skills/enhance-web-web3d/references/css-canvas-effects.md +180 -0
  253. package/skills/handoff/SKILL.md +66 -0
  254. package/skills/housekeep-backlog/SKILL.md +149 -0
  255. package/skills/housekeep-dead-code/SKILL.md +387 -0
  256. package/skills/housekeep-dead-code/references/ratchet-ci.md +205 -0
  257. package/skills/housekeep-dead-code/references/supabase-hygiene.md +152 -0
  258. package/skills/housekeep-design/SKILL.md +207 -0
  259. package/skills/housekeep-files/SKILL.md +220 -0
  260. package/skills/housekeep-files/references/naming-and-catalog.md +86 -0
  261. package/skills/housekeep-files/scripts/housekeep-files.ps1 +360 -0
  262. package/skills/housekeep-files/scripts/housekeep-files.sh +238 -0
  263. package/skills/housekeep-gates/SKILL.md +174 -0
  264. package/skills/iterate-agent-harness/SKILL.md +137 -0
  265. package/skills/iterate-gtm-weekly/SKILL.md +103 -0
  266. package/skills/iterate-post-launch/SKILL.md +292 -0
  267. package/skills/meta-mcp-builder/SKILL.md +313 -0
  268. package/skills/meta-skill-creator/SKILL.md +304 -0
  269. package/skills/mobile-capacitor-platform/SKILL.md +104 -0
  270. package/skills/mobile-emulator-start/SKILL.md +296 -0
  271. package/skills/mobile-emulator-test/SKILL.md +491 -0
  272. package/skills/mobile-emulator-test/references/details.md +478 -0
  273. package/skills/mobile-rn-performance/SKILL.md +107 -0
  274. package/skills/mobile-rn-screen/SKILL.md +476 -0
  275. package/skills/mobile-rn-screen/references/details.md +785 -0
  276. package/skills/mushi-health/SKILL.md +206 -0
  277. package/skills/mushi-integration/SKILL.md +257 -0
  278. package/skills/plan-aeo-readiness/SKILL.md +166 -0
  279. package/skills/plan-antislop/SKILL.md +281 -0
  280. package/skills/plan-aso/SKILL.md +149 -0
  281. package/skills/plan-backup-dr/SKILL.md +131 -0
  282. package/skills/plan-capacitor-hardening/SKILL.md +217 -0
  283. package/skills/plan-data-integrity/SKILL.md +187 -0
  284. package/skills/plan-dead-code/SKILL.md +386 -0
  285. package/skills/plan-dead-code/references/knip-config.md +214 -0
  286. package/skills/plan-dead-code/references/output-templates.md +133 -0
  287. package/skills/plan-dead-code/references/preservation-contract.md +50 -0
  288. package/skills/plan-dead-code/references/residue-greps.md +84 -0
  289. package/skills/plan-dependency-provenance/SKILL.md +200 -0
  290. package/skills/plan-docs-sync/SKILL.md +143 -0
  291. package/skills/plan-docs-sync/references/drift-taxonomy.md +43 -0
  292. package/skills/plan-docs-sync/references/output-templates.md +33 -0
  293. package/skills/plan-docs-sync/references/preservation-contract.md +17 -0
  294. package/skills/plan-error-handling/SKILL.md +205 -0
  295. package/skills/plan-gtm/SKILL.md +276 -0
  296. package/skills/plan-gtm/references/benchmarks-2026.md +183 -0
  297. package/skills/plan-input-validation/SKILL.md +179 -0
  298. package/skills/plan-llm-cost-guardrails/SKILL.md +176 -0
  299. package/skills/plan-mobile-readiness/SKILL.md +171 -0
  300. package/skills/plan-perf-audit/SKILL.md +145 -0
  301. package/skills/plan-perf-audit/references/audit-scope.md +51 -0
  302. package/skills/plan-perf-audit/references/output-templates.md +33 -0
  303. package/skills/plan-perf-audit/references/preservation-contract.md +13 -0
  304. package/skills/plan-pricing/SKILL.md +173 -0
  305. package/skills/plan-privacy-compliance/SKILL.md +148 -0
  306. package/skills/plan-rls-audit/SKILL.md +231 -0
  307. package/skills/plan-secrets-audit/SKILL.md +181 -0
  308. package/skills/plan-security-audit/SKILL.md +168 -0
  309. package/skills/plan-security-audit/references/output-templates.md +36 -0
  310. package/skills/plan-security-audit/references/owasp-supabase-scope.md +55 -0
  311. package/skills/plan-security-audit/references/preservation-contract.md +18 -0
  312. package/skills/plan-stub-checker/SKILL.md +216 -0
  313. package/skills/plan-stub-checker/references/detection-methodology.md +75 -0
  314. package/skills/plan-stub-checker/references/detection-taxonomy.md +34 -0
  315. package/skills/plan-stub-checker/references/output-templates.md +63 -0
  316. package/skills/plan-stub-checker/references/preservation-contract.md +24 -0
  317. package/skills/plan-test-coverage/SKILL.md +170 -0
  318. package/skills/plan-test-coverage/references/methodology.md +54 -0
  319. package/skills/plan-test-coverage/references/output-templates.md +34 -0
  320. package/skills/plan-test-coverage/references/preservation-contract.md +15 -0
  321. package/skills/plan-uiux-unification/SKILL.md +230 -0
  322. package/skills/plan-uiux-unification/references/output-templates.md +67 -0
  323. package/skills/plan-uiux-unification/references/phase-workbook.md +85 -0
  324. package/skills/plan-uiux-unification/references/preservation-contract.md +24 -0
  325. package/skills/protocol-browser-anti-stall/SKILL.md +211 -0
  326. package/skills/protocol-browser-anti-stall/references/mcp-to-cli-map.md +113 -0
  327. package/skills/protocol-browser-anti-stall/references/playwright-session-coordination.md +170 -0
  328. package/skills/research/SKILL.md +422 -0
  329. package/skills/test-exploratory/SKILL.md +165 -0
  330. package/skills/test-exploratory/references/charter-template.md +29 -0
  331. package/skills/test-load/SKILL.md +126 -0
  332. package/skills/test-mutation/SKILL.md +160 -0
  333. package/skills/test-playwright/SKILL.md +354 -0
  334. package/skills/test-qa/SKILL.md +364 -0
  335. package/skills/test-qa/references/details.md +268 -0
  336. package/skills/test-red-team/SKILL.md +387 -0
  337. package/skills/test-red-team/references/owasp-attack-checklist.md +193 -0
  338. package/skills/test-unit/SKILL.md +259 -0
  339. package/skills/test-unit/references/details.md +267 -0
  340. package/skills/test-visual-regression/SKILL.md +132 -0
  341. package/skills/thirdparty-emil-design-eng/ATTRIBUTION.md +20 -0
  342. package/skills/thirdparty-emil-design-eng/SKILL.md +21 -0
  343. package/skills/thirdparty-emil-design-eng/references/emil-design-eng.md +676 -0
  344. package/skills/thirdparty-ui-ux-pro-max/ATTRIBUTION.md +22 -0
  345. package/skills/thirdparty-ui-ux-pro-max/SKILL.md +304 -0
  346. package/skills/thirdparty-ui-ux-pro-max/data/charts.csv +26 -0
  347. package/skills/thirdparty-ui-ux-pro-max/data/colors.csv +97 -0
  348. package/skills/thirdparty-ui-ux-pro-max/data/icons.csv +101 -0
  349. package/skills/thirdparty-ui-ux-pro-max/data/landing.csv +31 -0
  350. package/skills/thirdparty-ui-ux-pro-max/data/products.csv +97 -0
  351. package/skills/thirdparty-ui-ux-pro-max/data/react-performance.csv +45 -0
  352. package/skills/thirdparty-ui-ux-pro-max/data/stacks/astro.csv +54 -0
  353. package/skills/thirdparty-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  354. package/skills/thirdparty-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  355. package/skills/thirdparty-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  356. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  357. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  358. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  359. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  360. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react.csv +54 -0
  361. package/skills/thirdparty-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  362. package/skills/thirdparty-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  363. package/skills/thirdparty-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  364. package/skills/thirdparty-ui-ux-pro-max/data/stacks/vue.csv +50 -0
  365. package/skills/thirdparty-ui-ux-pro-max/data/styles.csv +68 -0
  366. package/skills/thirdparty-ui-ux-pro-max/data/typography.csv +58 -0
  367. package/skills/thirdparty-ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  368. package/skills/thirdparty-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  369. package/skills/thirdparty-ui-ux-pro-max/data/web-interface.csv +31 -0
  370. package/skills/thirdparty-ui-ux-pro-max/scripts/core.py +253 -0
  371. package/skills/thirdparty-ui-ux-pro-max/scripts/design_system.py +1067 -0
  372. package/skills/thirdparty-ui-ux-pro-max/scripts/search.py +114 -0
  373. package/skills/thirdparty-web-interface-guidelines/ATTRIBUTION.md +23 -0
  374. package/skills/thirdparty-web-interface-guidelines/SKILL.md +190 -0
  375. package/skills/workflow-build-feature/SKILL.md +118 -0
  376. package/skills/workflow-coding-discipline/SKILL.md +140 -0
  377. package/skills/workflow-environment-ready/SKILL.md +128 -0
  378. package/skills/workflow-feature-flag/SKILL.md +262 -0
  379. package/skills/workflow-feedback-to-closure/SKILL.md +165 -0
  380. package/skills/workflow-fix-and-ship/SKILL.md +136 -0
  381. package/skills/workflow-git-commit/SKILL.md +200 -0
  382. package/skills/workflow-green-repo/SKILL.md +166 -0
  383. package/skills/workflow-grilling/SKILL.md +73 -0
  384. package/skills/workflow-gtm/SKILL.md +153 -0
  385. package/skills/workflow-housekeep/SKILL.md +453 -0
  386. package/skills/workflow-housekeep/references/templates.md +109 -0
  387. package/skills/workflow-launch-ready/SKILL.md +145 -0
  388. package/skills/workflow-merge-conflicts/SKILL.md +62 -0
  389. package/skills/workflow-onboard/SKILL.md +99 -0
  390. package/skills/workflow-parallel-agents/SKILL.md +164 -0
  391. package/skills/workflow-pr/SKILL.md +197 -0
  392. package/skills/workflow-quality-gate/SKILL.md +147 -0
  393. package/skills/workflow-refactor/SKILL.md +274 -0
  394. package/skills/workflow-release-prep/SKILL.md +207 -0
  395. package/skills/workflow-ship-and-observe/SKILL.md +164 -0
  396. package/skills/workflow-spec-tdd/SKILL.md +141 -0
  397. package/skills/workflow-spec-tdd/references/spec-template.md +126 -0
  398. package/skills/workflow-spec-tdd/references/tdd-patterns.md +167 -0
  399. package/skills-cursor/babysit/SKILL.md +17 -0
  400. package/skills-cursor/canvas/SKILL.md +142 -0
  401. package/skills-cursor/canvas/sdk/canvas-tokens.d.ts +235 -0
  402. package/skills-cursor/canvas/sdk/chart-primitives.d.ts +200 -0
  403. package/skills-cursor/canvas/sdk/dag-layout.d.ts +102 -0
  404. package/skills-cursor/canvas/sdk/diff-view.d.ts +130 -0
  405. package/skills-cursor/canvas/sdk/form-primitives.d.ts +194 -0
  406. package/skills-cursor/canvas/sdk/hooks.d.ts +117 -0
  407. package/skills-cursor/canvas/sdk/index.d.ts +47 -0
  408. package/skills-cursor/canvas/sdk/theme.d.ts +61 -0
  409. package/skills-cursor/canvas/sdk/todo-list.d.ts +49 -0
  410. package/skills-cursor/canvas/sdk/ui-primitives.d.ts +549 -0
  411. package/skills-cursor/canvas/sdk/ui-primitives.test.d.ts +2 -0
  412. package/skills-cursor/create-hook/SKILL.md +238 -0
  413. package/skills-cursor/create-rule/SKILL.md +185 -0
  414. package/skills-cursor/create-skill/SKILL.md +269 -0
  415. package/skills-cursor/create-skill/references/authoring-guide.md +182 -0
  416. package/skills-cursor/create-subagent/SKILL.md +228 -0
  417. package/skills-cursor/migrate-to-skills/SKILL.md +121 -0
  418. package/skills-cursor/shell/SKILL.md +22 -0
  419. package/skills-cursor/split-to-prs/SKILL.md +47 -0
  420. package/skills-cursor/statusline/SKILL.md +193 -0
  421. package/skills-cursor/update-cli-config/SKILL.md +85 -0
  422. package/skills-cursor/update-cursor-settings/SKILL.md +137 -0
  423. package/skills.sh.json +296 -0
@@ -0,0 +1,339 @@
1
+ ---
2
+ name: audit-i18n
3
+ description: >
4
+ Audit and fix internationalisation in web or mobile apps. Use when "audit
5
+ i18n", "fix translations", "add locale", "hardcoded strings",
6
+ "localisation", "translation quality", or "the Japanese feels like Google
7
+ Translate".
8
+ license: MIT
9
+ effort: high
10
+ ---
11
+
12
+ # audit-i18n — Natural, Human-Sounding Translations
13
+
14
+ **Degree of freedom: MIXED** — Quality judgment and rewrite `[HIGH freedom]`;
15
+ Phase 2 key-diff and Phase 4 locale walk `[LOW freedom — run exactly]`.
16
+
17
+ > **Audit-and-fix exception.** Find bad copy, then fix it. Not present-then-stop.
18
+ >
19
+ > Fix the strings the audit named — extract, rewrite, add the missing key —
20
+ > with surgical edits to the source line and the locale entry; do not
21
+ > reformat or re-key whole translation files, and copy you did not audit
22
+ > stays as it is. Unrelated bugs met on the way go in the report as
23
+ > follow-ups. Add tests only where the repo already tests i18n; the Phase 2
24
+ > key-diff scripts stay out of the commit.
25
+
26
+ **Translations that read like machine output erode user trust** — especially in
27
+ the user's own language. Find every unnatural, jargon-heavy, or technically
28
+ worded string and rewrite it to sound like a real person in that locale.
29
+
30
+ > **The goal**: every string should sound like it was written by a native speaker
31
+ > who understands the user, not translated from English by a developer.
32
+
33
+ ---
34
+
35
+ ## Core principles for good copy
36
+
37
+ These apply to every string in every locale:
38
+
39
+ | Bad | Better | Why |
40
+ |-----|--------|-----|
41
+ | "Invalid email format" | "That email doesn't look right — check for typos" | Guides, doesn't blame |
42
+ | "An error occurred" | "Something went wrong. Try again, or contact us if it keeps happening" | Actionable |
43
+ | "Please enter a valid value" | "This field is required" or "Enter a number between 1 and 100" | Specific |
44
+ | "Authentication failed" | "Wrong email or password" | Plain language |
45
+ | "Submit" | "Save", "Send message", "Create account" | Says what actually happens |
46
+ | "OK" | "Got it", "Done", or the specific action | Less dismissive |
47
+ | "User" | "you", "your account" | Conversational |
48
+ | "The operation was successful" | "Done!" or "Saved" | Natural |
49
+ | "Do you want to proceed?" | "Are you sure? This can't be undone." | Honest and specific |
50
+
51
+ ## How to reason — Observe → Interpret → Classify → Severity
52
+
53
+ 1. **Observe** — quote the source string or locale key (`file:line`) and the base-locale counterpart
54
+ 2. **Interpret** — does a native speaker get a next step, or a literal/dev-voiced phrase?
55
+ 3. **Classify** — hardcoded / missing key / too-literal / wrong-tone / format-mismatch / untranslated-key
56
+ 4. **Severity** — checkout, auth, and error strings first; `[TODO]` if you are not a native speaker
57
+
58
+ ## Worked example
59
+
60
+ > **Observe:** `CheckoutButton.tsx:42` renders `<button>Submit</button>` (no i18n
61
+ > key). `ja` `errors.email_invalid` is "無効なメールアドレス"; `en` key exists.
62
+ > **Interpret:** the CTA does not name the outcome; JA is a literal of "Invalid
63
+ > email address" — it blames and gives no next step.
64
+ > **Classify:** hardcoded + too-literal error.
65
+ > **Severity:** High — primary checkout CTA and a blocking validation error.
66
+ > **Finding:** extract `buttons.place_order`; rewrite JA to guide a typo check;
67
+ > then apply (audit-and-fix).
68
+
69
+ ---
70
+
71
+ ## Phase 0: Detect the i18n setup [HIGH freedom]
72
+
73
+ ```
74
+ package.json → i18next, react-i18next, next-intl, vue-i18n, @angular/localize,
75
+ i18n-js, rosetta, lingui, typesafe-i18n
76
+ src/i18n/ → translation files
77
+ locales/ → JSON/YAML translation files
78
+ messages/ → next-intl message files
79
+ public/locales → common path for react-i18next
80
+ ```
81
+
82
+ Identify:
83
+ - **Library**: react-i18next / next-intl / vue-i18n / lingui / custom
84
+ - **Active locales**: list of language codes (`en`, `ja`, `fr`, `de`, `zh`, etc.)
85
+ - **Translation file format**: JSON / YAML / TypeScript / PO files
86
+ - **Completeness**: are all locales present? Do non-English files have all keys?
87
+
88
+ Fetch library docs:
89
+ ```json
90
+ context7:resolve-library-id
91
+ {
92
+ "libraryName": "react-i18next"
93
+ }
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Phase 1: Find hardcoded strings in source code [HIGH freedom]
99
+
100
+ Look for user-facing text that bypasses the i18n system entirely.
101
+
102
+ Scan for:
103
+ - String literals in JSX/TSX: `<p>Welcome back</p>`, `<button>Save</button>`
104
+ - Template literals with user-visible content: `` `Hello ${name}` ``
105
+ - Alert/toast calls with hardcoded strings: `toast.error("Something failed")`
106
+ - Error message strings in API handlers returned to the client
107
+ - Placeholder text: `placeholder="Enter your email"`
108
+ - Aria labels: `aria-label="Close dialog"`
109
+ - `alt` text on meaningful images
110
+
111
+ Use shell to scan (the codebase search tools may be slow on large repos):
112
+ ```bash
113
+ grep -rn 'placeholder="' src/ --include="*.tsx" --include="*.jsx" | head -30
114
+ grep -rn '"en":' src/ --include="*.ts" --include="*.tsx" | head -20
115
+ ```
116
+
117
+ Build a list: file path, line number, string content, whether it has an i18n key already.
118
+
119
+ ---
120
+
121
+ ## Phase 2: Audit translation file completeness [LOW freedom — run exactly]
122
+
123
+ For each locale, check that all keys from the base locale (usually `en`) exist:
124
+
125
+ ```bash
126
+ # Example: compare en.json vs ja.json key counts
127
+ node -e "
128
+ const en = require('./public/locales/en/common.json');
129
+ const ja = require('./public/locales/ja/common.json');
130
+ const missing = Object.keys(en).filter(k => !ja[k]);
131
+ console.log('Missing in ja:', missing);
132
+ "
133
+ ```
134
+
135
+ Or for next-intl format:
136
+ ```bash
137
+ node -e "
138
+ const en = require('./messages/en.json');
139
+ const ja = require('./messages/ja.json');
140
+ function findMissing(base, target, path='') {
141
+ for (const k of Object.keys(base)) {
142
+ const kp = path ? path+'.'+k : k;
143
+ if (!(k in target)) console.log('MISSING:', kp);
144
+ else if (typeof base[k] === 'object') findMissing(base[k], target[k], kp);
145
+ }
146
+ }
147
+ findMissing(en, ja);
148
+ "
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Phase 3: Review translation quality [HIGH freedom]
154
+
155
+ This is the most important phase. For each locale, review every string
156
+ against the natural-language principles at the top of this skill.
157
+
158
+ ### What to look for in each category
159
+
160
+ **Error messages** — must guide, not blame, and tell the user what to do:
161
+ ```json
162
+ // Before
163
+ "errors.email_invalid": "Invalid email address"
164
+
165
+ // After
166
+ "errors.email_invalid": "That doesn't look like a valid email — check for typos and try again"
167
+ ```
168
+
169
+ **Action buttons** — must describe the outcome, not just label the input:
170
+ ```json
171
+ // Before
172
+ "buttons.submit": "Submit"
173
+ "buttons.confirm": "OK"
174
+
175
+ // After
176
+ "buttons.submit": "Save changes" // or whatever the action actually does
177
+ "buttons.confirm": "Got it" // or the specific action: "Delete account", "Send message"
178
+ ```
179
+
180
+ **Empty states** — should explain and invite, not just state the absence:
181
+ ```json
182
+ // Before
183
+ "empty.projects": "No projects"
184
+
185
+ // After
186
+ "empty.projects": "You haven't created any projects yet. Start one to get going."
187
+ ```
188
+
189
+ **Success messages** — should feel warm and confirm the action clearly:
190
+ ```json
191
+ // Before
192
+ "success.saved": "Data saved successfully"
193
+
194
+ // After
195
+ "success.saved": "Saved!" // or "Your changes are saved"
196
+ ```
197
+
198
+ **Loading states** — should be human:
199
+ ```json
200
+ // Before
201
+ "loading.data": "Loading data..."
202
+
203
+ // After
204
+ "loading.data": "Getting things ready…" // or just omit "Loading" entirely
205
+ ```
206
+
207
+ ### Locale-specific tone guidelines
208
+
209
+ | Locale | Tone notes |
210
+ |--------|-----------|
211
+ | `en` | Friendly, direct, conversational. Use contractions ("you've", "can't"). No formal passive voice. |
212
+ | `ja` | Use polite but natural keigo (〜ます/〜です form). Avoid literal translations of English idioms. Use short, clear sentences. Don't overuse katakana loanwords when Japanese alternatives exist. |
213
+ | `ko` | Polite 합쇼체 or 해요체 depending on the app's audience. Avoid Konglish where natural Korean exists. |
214
+ | `zh-TW` / `zh-CN` | Traditional vs simplified — do not mix. Natural, not literal. Check that date/number formats are locale-correct. |
215
+ | `fr` | Formal `vous` for most apps; `tu` only for clearly youth/casual products. Gender agreement must be correct — check nouns. |
216
+ | `de` | German compounds can get long — check for truncation. Formal `Sie` for business apps. |
217
+ | `es` | Check for `tú`/`usted`/`vosotros` consistency. Latin American vs Spain variants differ. |
218
+ | RTL (`ar`, `he`) | Mirror layout. Check that numbers are LTR within RTL text. Verify UI wraps correctly. |
219
+
220
+ ---
221
+
222
+ ## Phase 4: Walk the live app in each locale (Playwright) [LOW freedom — run exactly]
223
+
224
+ For each active locale:
225
+
226
+ 1. Navigate to the locale-specific URL or trigger the locale switcher
227
+ 2. Walk the key flows: onboarding, core feature, error states, empty states, settings
228
+ 3. Screenshot each screen for visual review
229
+
230
+ ```bash
231
+ PW="npx --yes @playwright/cli@latest"
232
+ $PW -s=i18n open --headed "http://localhost:3000/ja" # or set the locale cookie, then `goto`
233
+ $PW -s=i18n snapshot # capture the state
234
+ $PW -s=i18n screenshot --filename ".playwright-mcp/i18n-ja-<route>.png"
235
+ ```
236
+
237
+ Look for:
238
+ - Strings that are still in English (untranslated keys showing as key names like `common.save`)
239
+ - Text that overflows its container in longer languages (German, Finnish, Russian)
240
+ - Date/time formatting that doesn't match the locale (30/01/2026 vs Jan 30, 2026 vs 2026年1月30日)
241
+ - Currency symbols in the wrong position (`$10.00` vs `10,00 €` vs `¥1,000`)
242
+ - Numbers using the wrong decimal/thousands separator (1,234.56 vs 1.234,56)
243
+ - Plural forms: English has singular/plural; many languages have more forms
244
+
245
+ Save screenshots under `.playwright-mcp/`.
246
+
247
+ ---
248
+
249
+ ## Self-critique before applying [LOW freedom — do not skip]
250
+
251
+ 1. **Evidenced** — `file:line` + key, not "Japanese feels off"
252
+ 2. **Native-or-TODO** — if you are not a native speaker, mark `[TODO]`; do not ship confident wrong idiom
253
+ 3. **Completeness first** — missing keys listed before quality nits
254
+ 4. **Right owner** — breakpoint overflow that is not locale-length → `audit-responsive`; WCAG → `audit-accessibility`
255
+ 5. **Do not delete copy** to "fix" i18n — extract or rewrite
256
+
257
+ ---
258
+
259
+ ## Phase 5: Fix — priority order [HIGH freedom]
260
+
261
+ ### Fix 1: Extract all hardcoded strings
262
+
263
+ For every hardcoded string found in Phase 1, create an i18n key and replace it:
264
+
265
+ ```typescript
266
+ // Before (react-i18next)
267
+ <p>Welcome back, {name}!</p>
268
+
269
+ // After
270
+ const { t } = useTranslation('common');
271
+ <p>{t('welcome_back', { name })}</p>
272
+ ```
273
+
274
+ ```json
275
+ // en/common.json
276
+ "welcome_back": "Welcome back, {{name}}!"
277
+
278
+ // ja/common.json
279
+ "welcome_back": "おかえりなさい、{{name}}さん!"
280
+ ```
281
+
282
+ ### Fix 2: Rewrite poor translations
283
+
284
+ Edit the translation files directly. Prioritise:
285
+ 1. Error messages that blame or confuse users
286
+ 2. Empty states that dead-end users
287
+ 3. Action buttons that say "Submit" or "OK"
288
+ 4. Any string a native speaker would read and say "that's not how we talk"
289
+
290
+ ### Fix 3: Add missing locale keys
291
+
292
+ For any key missing in a non-English locale, add a natural translation.
293
+ If you don't have a native speaker for a locale, use a clearly-marked placeholder:
294
+ ```json
295
+ "some_key": "[TODO: needs native Japanese review] {{count}} items selected"
296
+ ```
297
+
298
+ ### Fix 4: Fix number/date/currency formatting
299
+
300
+ Use the i18n library's format functions rather than manual formatting:
301
+
302
+ ```typescript
303
+ // react-i18next with i18next-icu or i18next-intervalPlural
304
+ t('items_count', { count: 5 }) // handles plural forms automatically
305
+
306
+ // Intl API for dates and numbers (framework-agnostic)
307
+ new Intl.DateTimeFormat(locale, { dateStyle: 'long' }).format(date);
308
+ new Intl.NumberFormat(locale, { style: 'currency', currency: 'JPY' }).format(1234);
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Phase 6: i18n audit report
314
+
315
+ ```markdown
316
+ ## i18n Audit Report — [App] — [Date]
317
+
318
+ ### Active locales
319
+ [list with coverage % — keys present / total keys]
320
+
321
+ ### Hardcoded strings found
322
+ | File | Line | String | Action |
323
+ |------|------|--------|--------|
324
+ | src/components/Foo.tsx | 42 | "Save" | Extracted to key `buttons.save` |
325
+
326
+ ### Translation quality issues fixed
327
+ | Locale | Key | Before | After | Issue type |
328
+ |--------|-----|--------|-------|-----------|
329
+ | ja | errors.email_invalid | "無効なメールアドレス" | "メールアドレスが正しくないようです。入力内容をご確認ください。" | Too literal, not helpful |
330
+
331
+ ### Missing keys added
332
+ [count per locale]
333
+
334
+ ### Formatting fixes
335
+ [date/number/currency issues found and fixed]
336
+
337
+ ### Still needs native review
338
+ [keys marked [TODO] that need a human native speaker]
339
+ ```
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: audit-infra-cost
3
+ description: >
4
+ Read-only audit of hosting, database, storage, egress, and serverless spend
5
+ (Supabase, Vercel, S3/R2, edge). Use when "hosting bill is high", "cut infra
6
+ costs", or a bill jumps. CI minutes → audit-cicd. LLM tokens →
7
+ plan-llm-cost-guardrails.
8
+ license: MIT
9
+ effort: high
10
+ ---
11
+
12
+ # audit-infra-cost — Hosting spend without hurting reliability
13
+
14
+ **Degree of freedom: HIGH** — quantify and plan. Phase 2 stays plan-only
15
+ until approved. Never propose a cut that weakens backups (`plan-backup-dr`).
16
+
17
+ Read-only. Find where money leaks in the infra bill and plan cuts that do not
18
+ trade away reliability.
19
+
20
+ **For a solo operator, infra cost is runway.** A silent egress or storage leak
21
+ can double a bill nobody is watching.
22
+
23
+ > **Quantify and plan. Apply only on approval.** Never propose a cut that
24
+ > weakens backups (`plan-backup-dr`) or user experience.
25
+
26
+ ## This skill vs neighbors
27
+
28
+ | Skill | Owns |
29
+ |---|---|
30
+ | **audit-infra-cost** (this) | Compute, storage, bandwidth, platform fees |
31
+ | `audit-cicd` | GitHub Actions minutes / artifacts |
32
+ | `plan-llm-cost-guardrails` | Model tokens / quota abuse |
33
+ | `test-load` | Measured peak — right-size to this, not a guess |
34
+ | `audit-bundle-size` / `audit-performance` | Client payload (feeds egress) |
35
+ | `backend-db-performance` | The index that stops compute burn |
36
+
37
+ ## How to reason
38
+
39
+ 1. **Observe** — billed resource, pricing model, and (if exposed) the breakdown line
40
+ 2. **Interpret** — is this utilization, a leak (egress/storage/zombies), or a tier mismatch?
41
+ 3. **Classify** — safe quick win / medium / structural / do-not-cut (backup/UX)
42
+ 4. **Severity** — by $ magnitude × reliability risk, not by how easy the cut looks
43
+
44
+ ## Worked example
45
+
46
+ > **Observe:** object-storage bill is 40% of spend; logs prefix has no
47
+ > lifecycle; backups retained 90 days (DR requirement).
48
+ > **Interpret:** unbounded logs are the leak; backup retention is not a cut.
49
+ > **Classify:** safe quick win (expire temp logs) + do-not-cut (backups).
50
+ > **Severity:** major $; reliability risk low if only temp logs expire.
51
+ > **Finding:** logs | ~X% | lifecycle 7d | do not touch backup prefix
52
+
53
+ ---
54
+
55
+ ## Phase 0 — Map the spend surface [HIGH freedom]
56
+
57
+ Enumerate billed resources and, if the provider exposes it, the breakdown:
58
+
59
+ - Compute (functions / servers / containers)
60
+ - Database (compute + storage + connections)
61
+ - Object storage (GB + operations)
62
+ - **Egress** (usually the sneaky line)
63
+ - CDN, per-seat / per-project fees
64
+
65
+ Note each pricing model (per-request, per-GB, per-hour, tiered) — that is
66
+ where the leak hides. Pricing tiers change: fetch the provider's current
67
+ pricing page rather than quoting tiers from memory; a remembered price is
68
+ not evidence for a saving estimate.
69
+
70
+ ---
71
+
72
+ ## Phase 1 — Waste [HIGH freedom]
73
+
74
+ **Egress** — Large assets from origin every request? Unoptimized images?
75
+ Hotlinking / unthrottled public endpoints? Cross-check `audit-bundle-size`.
76
+
77
+ **Storage growth** — Unbounded uploads, logs, backups that never expire,
78
+ orphans after DB deletes. Lifecycle to cheaper tiers?
79
+
80
+ **Over-provisioning** — Sized for a rare peak, 24/7 low utilization. Pair
81
+ with `test-load`. Under-provision that forces expensive workarounds is also
82
+ a finding.
83
+
84
+ **Serverless** — Keep-warm waste, chatty N+1 invocations, long functions
85
+ that belong on a queue, cron too frequent.
86
+
87
+ **Database** — Full scans, missing indexes (`backend-db-performance`),
88
+ pool misconfig forcing a bigger instance, unbounded rows with no archive.
89
+
90
+ **Zombies** — Duplicate staging, unused region, leftover add-ons.
91
+
92
+ **Tier fit** — Next tier cheaper than overages? Paid add-on cheaper than
93
+ the current pattern?
94
+
95
+ ---
96
+
97
+ ## Phase 2 — Plan (approve before executing) [HIGH freedom — plan only]
98
+
99
+ Estimate saving magnitude ("egress is ~X% of the bill; CDN cuts most of it")
100
+ and reliability risk.
101
+
102
+ - **Safe quick wins** — CDN/cache, image optimize, expire temp logs, delete
103
+ zombies, add the missing index
104
+ - **Medium** — right-size to measured load, lifecycle-tier cold data, batch
105
+ chatty calls, queue long work
106
+ - **Structural** — plan/tier change, architecture shift
107
+
108
+ Protect `plan-backup-dr` items. Do not expire backups to save cents.
109
+
110
+ ---
111
+
112
+ ## Definition of Done
113
+
114
+ - [ ] Billed resources + pricing model enumerated
115
+ - [ ] Egress / storage / compute / serverless / zombies / tier-fit scored
116
+ - [ ] Right-size vs real utilization or `test-load`
117
+ - [ ] Each finding has saving magnitude + reliability risk
118
+ - [ ] Nothing proposed that weakens backups or UX
119
+ - [ ] Plan approved before change
120
+
121
+ ## Self-critique before reporting [LOW freedom — do not skip]
122
+
123
+ 1. **Quantified** — each finding has a saving magnitude, even if rough
124
+ 2. **Backups protected** — no expire-backups-to-save-cents item
125
+ 3. **Right-sized to evidence** — `test-load` or utilization, not a guess
126
+ 4. **Right owner** — CI minutes → `audit-cicd`; tokens → `plan-llm-cost-guardrails`
127
+ 5. **Nothing applied** until approved
128
+
129
+ ## Output format
130
+
131
+ 1. **Spend surface** — resource | model | rough share
132
+ 2. **Findings** — leak | est. saving | fix | risk
133
+ 3. **Fix plan** — safe-quick-win → structural
134
+ 4. Read-only until approved
135
+
136
+ ## Related
137
+
138
+ - `audit-cicd` — pipeline cost
139
+ - `plan-llm-cost-guardrails` — token spend
140
+ - `test-load` — capacity numbers
141
+ - `plan-backup-dr` — do not cut restore
142
+ - `audit-bundle-size` / `backend-db-performance` — technical levers