@ketecode/loom 0.0.0-stage → 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 (851) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +616 -2
  3. package/agents/accessibility-reviewer/AGENT.md +70 -0
  4. package/agents/accessibility-reviewer/evals/triggers.json +15 -0
  5. package/agents/agent-evaluator/AGENT.md +74 -0
  6. package/agents/agent-evaluator/evals/triggers.json +15 -0
  7. package/agents/architect/AGENT.md +82 -0
  8. package/agents/architect/evals/triggers.json +17 -0
  9. package/agents/billing-reviewer/AGENT.md +68 -0
  10. package/agents/billing-reviewer/evals/triggers.json +16 -0
  11. package/agents/code-reviewer/AGENT.md +51 -0
  12. package/agents/code-reviewer/evals/behavior.json +60 -0
  13. package/agents/code-reviewer/evals/triggers.json +14 -0
  14. package/agents/code-simplifier/AGENT.md +74 -0
  15. package/agents/code-simplifier/evals/triggers.json +15 -0
  16. package/agents/cpp-build-resolver/AGENT.md +73 -0
  17. package/agents/cpp-build-resolver/evals/triggers.json +16 -0
  18. package/agents/cpp-reviewer/AGENT.md +59 -0
  19. package/agents/cpp-reviewer/evals/triggers.json +16 -0
  20. package/agents/csharp-build-resolver/AGENT.md +84 -0
  21. package/agents/csharp-build-resolver/evals/triggers.json +17 -0
  22. package/agents/csharp-reviewer/AGENT.md +88 -0
  23. package/agents/csharp-reviewer/evals/triggers.json +17 -0
  24. package/agents/dart-build-resolver/AGENT.md +80 -0
  25. package/agents/dart-build-resolver/evals/triggers.json +17 -0
  26. package/agents/dart-reviewer/AGENT.md +66 -0
  27. package/agents/dart-reviewer/evals/triggers.json +17 -0
  28. package/agents/database-reviewer/AGENT.md +72 -0
  29. package/agents/database-reviewer/evals/triggers.json +16 -0
  30. package/agents/django-reviewer/AGENT.md +61 -0
  31. package/agents/django-reviewer/evals/triggers.json +15 -0
  32. package/agents/doc-updater/AGENT.md +92 -0
  33. package/agents/doc-updater/evals/triggers.json +14 -0
  34. package/agents/e2e-runner/AGENT.md +88 -0
  35. package/agents/e2e-runner/evals/triggers.json +16 -0
  36. package/agents/fastapi-reviewer/AGENT.md +63 -0
  37. package/agents/fastapi-reviewer/evals/triggers.json +15 -0
  38. package/agents/flutter-reviewer/AGENT.md +70 -0
  39. package/agents/flutter-reviewer/evals/triggers.json +15 -0
  40. package/agents/fsharp-build-resolver/AGENT.md +81 -0
  41. package/agents/fsharp-build-resolver/evals/triggers.json +15 -0
  42. package/agents/fsharp-reviewer/AGENT.md +77 -0
  43. package/agents/fsharp-reviewer/evals/triggers.json +15 -0
  44. package/agents/go-build-resolver/AGENT.md +85 -0
  45. package/agents/go-build-resolver/evals/triggers.json +16 -0
  46. package/agents/go-reviewer/AGENT.md +66 -0
  47. package/agents/go-reviewer/evals/triggers.json +16 -0
  48. package/agents/healthcare-reviewer/AGENT.md +65 -0
  49. package/agents/healthcare-reviewer/evals/triggers.json +16 -0
  50. package/agents/i18n-reviewer/AGENT.md +64 -0
  51. package/agents/i18n-reviewer/evals/triggers.json +16 -0
  52. package/agents/inbox-triager/AGENT.md +98 -0
  53. package/agents/inbox-triager/evals/triggers.json +16 -0
  54. package/agents/infra-reviewer/AGENT.md +93 -0
  55. package/agents/infra-reviewer/evals/triggers.json +15 -0
  56. package/agents/java-build-resolver/AGENT.md +82 -0
  57. package/agents/java-build-resolver/evals/triggers.json +16 -0
  58. package/agents/java-reviewer/AGENT.md +64 -0
  59. package/agents/java-reviewer/evals/triggers.json +16 -0
  60. package/agents/kotlin-build-resolver/AGENT.md +89 -0
  61. package/agents/kotlin-build-resolver/evals/triggers.json +16 -0
  62. package/agents/kotlin-reviewer/AGENT.md +75 -0
  63. package/agents/kotlin-reviewer/evals/triggers.json +16 -0
  64. package/agents/mle-reviewer/AGENT.md +68 -0
  65. package/agents/mle-reviewer/evals/triggers.json +16 -0
  66. package/agents/network-config-reviewer/AGENT.md +68 -0
  67. package/agents/network-config-reviewer/evals/triggers.json +17 -0
  68. package/agents/payments-reviewer/AGENT.md +64 -0
  69. package/agents/payments-reviewer/evals/triggers.json +16 -0
  70. package/agents/performance-optimizer/AGENT.md +86 -0
  71. package/agents/performance-optimizer/evals/triggers.json +16 -0
  72. package/agents/perl-build-resolver/AGENT.md +84 -0
  73. package/agents/perl-build-resolver/evals/triggers.json +15 -0
  74. package/agents/perl-reviewer/AGENT.md +77 -0
  75. package/agents/perl-reviewer/evals/triggers.json +15 -0
  76. package/agents/php-build-resolver/AGENT.md +88 -0
  77. package/agents/php-build-resolver/evals/triggers.json +16 -0
  78. package/agents/php-reviewer/AGENT.md +61 -0
  79. package/agents/php-reviewer/evals/triggers.json +15 -0
  80. package/agents/planner/AGENT.md +75 -0
  81. package/agents/planner/evals/triggers.json +17 -0
  82. package/agents/pr-test-analyzer/AGENT.md +82 -0
  83. package/agents/pr-test-analyzer/evals/triggers.json +16 -0
  84. package/agents/python-build-resolver/AGENT.md +87 -0
  85. package/agents/python-build-resolver/evals/triggers.json +16 -0
  86. package/agents/python-reviewer/AGENT.md +63 -0
  87. package/agents/python-reviewer/evals/triggers.json +15 -0
  88. package/agents/rag-reviewer/AGENT.md +71 -0
  89. package/agents/rag-reviewer/evals/triggers.json +16 -0
  90. package/agents/react-reviewer/AGENT.md +70 -0
  91. package/agents/react-reviewer/evals/triggers.json +16 -0
  92. package/agents/refactor-cleaner/AGENT.md +82 -0
  93. package/agents/refactor-cleaner/evals/triggers.json +16 -0
  94. package/agents/ruby-build-resolver/AGENT.md +93 -0
  95. package/agents/ruby-build-resolver/evals/triggers.json +16 -0
  96. package/agents/ruby-reviewer/AGENT.md +62 -0
  97. package/agents/ruby-reviewer/evals/triggers.json +16 -0
  98. package/agents/rust-build-resolver/AGENT.md +98 -0
  99. package/agents/rust-build-resolver/evals/triggers.json +16 -0
  100. package/agents/rust-reviewer/AGENT.md +78 -0
  101. package/agents/rust-reviewer/evals/triggers.json +15 -0
  102. package/agents/security-reviewer/AGENT.md +84 -0
  103. package/agents/security-reviewer/evals/triggers.json +16 -0
  104. package/agents/silent-failure-hunter/AGENT.md +66 -0
  105. package/agents/silent-failure-hunter/evals/triggers.json +16 -0
  106. package/agents/solidity-reviewer/AGENT.md +70 -0
  107. package/agents/solidity-reviewer/evals/triggers.json +16 -0
  108. package/agents/spec-reviewer/AGENT.md +95 -0
  109. package/agents/spec-reviewer/evals/behavior.json +57 -0
  110. package/agents/spec-reviewer/evals/triggers.json +16 -0
  111. package/agents/swift-build-resolver/AGENT.md +85 -0
  112. package/agents/swift-build-resolver/evals/triggers.json +15 -0
  113. package/agents/swift-reviewer/AGENT.md +75 -0
  114. package/agents/swift-reviewer/evals/triggers.json +15 -0
  115. package/agents/task-implementer/AGENT.md +89 -0
  116. package/agents/task-implementer/evals/behavior.json +47 -0
  117. package/agents/task-implementer/evals/triggers.json +16 -0
  118. package/agents/typescript-build-resolver/AGENT.md +76 -0
  119. package/agents/typescript-build-resolver/evals/triggers.json +15 -0
  120. package/agents/typescript-reviewer/AGENT.md +76 -0
  121. package/agents/typescript-reviewer/evals/triggers.json +15 -0
  122. package/agents/vue-reviewer/AGENT.md +75 -0
  123. package/agents/vue-reviewer/evals/triggers.json +15 -0
  124. package/bin/kete-loom.js +723 -0
  125. package/commands/aside.md +19 -0
  126. package/commands/brainstorm.md +25 -0
  127. package/commands/build-fix.md +26 -0
  128. package/commands/campaign.md +19 -0
  129. package/commands/changelog.md +36 -0
  130. package/commands/checkpoint.md +26 -0
  131. package/commands/codemap.md +25 -0
  132. package/commands/commit.md +26 -0
  133. package/commands/debug.md +27 -0
  134. package/commands/deps-audit.md +32 -0
  135. package/commands/dual-review.md +34 -0
  136. package/commands/epic-decompose.md +21 -0
  137. package/commands/explain.md +37 -0
  138. package/commands/feature-dev.md +23 -0
  139. package/commands/finish-branch.md +26 -0
  140. package/commands/fix-bug.md +38 -0
  141. package/commands/hookify.md +23 -0
  142. package/commands/i18n-check.md +39 -0
  143. package/commands/issue-sync.md +22 -0
  144. package/commands/jira.md +19 -0
  145. package/commands/learn.md +23 -0
  146. package/commands/loom.md +21 -0
  147. package/commands/loop.md +20 -0
  148. package/commands/model-route.md +27 -0
  149. package/commands/onboard.md +35 -0
  150. package/commands/orchestrate.md +21 -0
  151. package/commands/plan-feature.md +36 -0
  152. package/commands/postmortem.md +42 -0
  153. package/commands/pr-describe.md +39 -0
  154. package/commands/pr.md +22 -0
  155. package/commands/prd.md +41 -0
  156. package/commands/production-readiness.md +45 -0
  157. package/commands/project-init.md +21 -0
  158. package/commands/refactor-clean.md +24 -0
  159. package/commands/resume-session.md +22 -0
  160. package/commands/review.md +35 -0
  161. package/commands/save-session.md +37 -0
  162. package/commands/security-scan.md +32 -0
  163. package/commands/sessions.md +21 -0
  164. package/commands/skill-create.md +21 -0
  165. package/commands/tdd.md +36 -0
  166. package/commands/test-coverage.md +24 -0
  167. package/commands/threat-model.md +36 -0
  168. package/commands/update-docs.md +25 -0
  169. package/commands/usage-report.md +43 -0
  170. package/commands/verify.md +21 -0
  171. package/hooks/block-dangerous-commands/HOOK.md +30 -0
  172. package/hooks/block-dangerous-commands/cases.json +50 -0
  173. package/hooks/block-dangerous-commands/hook.js +75 -0
  174. package/hooks/block-foreground-servers/HOOK.md +34 -0
  175. package/hooks/block-foreground-servers/cases.json +31 -0
  176. package/hooks/block-foreground-servers/hook.js +41 -0
  177. package/hooks/block-no-verify/HOOK.md +25 -0
  178. package/hooks/block-no-verify/cases.json +30 -0
  179. package/hooks/block-no-verify/hook.js +43 -0
  180. package/hooks/capture-lessons/HOOK.md +24 -0
  181. package/hooks/capture-lessons/hook.js +48 -0
  182. package/hooks/format-on-edit/HOOK.md +24 -0
  183. package/hooks/format-on-edit/hook.js +89 -0
  184. package/hooks/guard-secrets/HOOK.md +19 -0
  185. package/hooks/guard-secrets/cases.json +110 -0
  186. package/hooks/guard-secrets/hook.js +44 -0
  187. package/hooks/load-session-context/HOOK.md +20 -0
  188. package/hooks/load-session-context/hook.js +56 -0
  189. package/hooks/notify-on-stop/HOOK.md +25 -0
  190. package/hooks/notify-on-stop/hook.js +27 -0
  191. package/hooks/protect-files/HOOK.md +24 -0
  192. package/hooks/protect-files/cases.json +27 -0
  193. package/hooks/protect-files/hook.js +39 -0
  194. package/hooks/protect-lint-config/HOOK.md +29 -0
  195. package/hooks/protect-lint-config/cases.json +18 -0
  196. package/hooks/protect-lint-config/fixtures/.eslintrc.json +1 -0
  197. package/hooks/protect-lint-config/fixtures/.golangci.yml +1 -0
  198. package/hooks/protect-lint-config/fixtures/.prettierrc +1 -0
  199. package/hooks/protect-lint-config/fixtures/.rubocop.yml +1 -0
  200. package/hooks/protect-lint-config/fixtures/biome.json +1 -0
  201. package/hooks/protect-lint-config/fixtures/eslint.config.mjs +1 -0
  202. package/hooks/protect-lint-config/fixtures/ruff.toml +1 -0
  203. package/hooks/protect-lint-config/hook.js +25 -0
  204. package/hooks/read-before-edit/HOOK.md +26 -0
  205. package/hooks/read-before-edit/cases.json +15 -0
  206. package/hooks/read-before-edit/hook.js +50 -0
  207. package/hooks/run.js +148 -0
  208. package/hooks/verify-before-stop/HOOK.md +32 -0
  209. package/hooks/verify-before-stop/hook.js +70 -0
  210. package/mcp/atlassian.json +11 -0
  211. package/mcp/chrome-devtools.json +18 -0
  212. package/mcp/clickhouse.json +11 -0
  213. package/mcp/cloudflare.json +11 -0
  214. package/mcp/context7.json +11 -0
  215. package/mcp/exa.json +11 -0
  216. package/mcp/fetch.json +17 -0
  217. package/mcp/figma.json +11 -0
  218. package/mcp/firecrawl.json +11 -0
  219. package/mcp/git.json +17 -0
  220. package/mcp/github.json +11 -0
  221. package/mcp/linear.json +11 -0
  222. package/mcp/memory.json +18 -0
  223. package/mcp/notion.json +11 -0
  224. package/mcp/playwright.json +18 -0
  225. package/mcp/sentry.json +11 -0
  226. package/mcp/stripe.json +11 -0
  227. package/mcp/supabase.json +11 -0
  228. package/mcp/time.json +17 -0
  229. package/mcp/vercel.json +11 -0
  230. package/package.json +61 -4
  231. package/profiles.json +214 -0
  232. package/rules/common.md +21 -0
  233. package/rules/cpp.md +29 -0
  234. package/rules/csharp.md +25 -0
  235. package/rules/dart.md +29 -0
  236. package/rules/fsharp.md +28 -0
  237. package/rules/git.md +26 -0
  238. package/rules/go.md +29 -0
  239. package/rules/java.md +29 -0
  240. package/rules/kotlin.md +27 -0
  241. package/rules/perl.md +26 -0
  242. package/rules/php.md +28 -0
  243. package/rules/python.md +30 -0
  244. package/rules/ruby.md +27 -0
  245. package/rules/rust.md +26 -0
  246. package/rules/security.md +29 -0
  247. package/rules/swift.md +28 -0
  248. package/rules/testing.md +25 -0
  249. package/rules/typescript.md +29 -0
  250. package/rules/use-skills.md +23 -0
  251. package/schemas/skill-frontmatter.schema.json +52 -0
  252. package/scripts/lib/audit.js +96 -0
  253. package/scripts/lib/behavior.js +52 -0
  254. package/scripts/lib/frontmatter.js +65 -0
  255. package/scripts/lib/hooks-install.js +294 -0
  256. package/scripts/lib/i18n.js +51 -0
  257. package/scripts/lib/inventory.js +85 -0
  258. package/scripts/lib/lint.js +180 -0
  259. package/scripts/lib/mcp-install.js +288 -0
  260. package/scripts/lib/profiles.js +128 -0
  261. package/scripts/lib/render.js +92 -0
  262. package/scripts/lib/rules-install.js +118 -0
  263. package/scripts/lib/skills.js +87 -0
  264. package/scripts/lib/targets.js +123 -0
  265. package/skills/accounting-api-integration/SKILL.md +81 -0
  266. package/skills/accounting-api-integration/evals/triggers.json +17 -0
  267. package/skills/accounting-api-integration/references/quickbooks.md +48 -0
  268. package/skills/accounting-api-integration/references/xero.md +45 -0
  269. package/skills/agent-failure-debugging/SKILL.md +92 -0
  270. package/skills/agent-failure-debugging/evals/triggers.json +16 -0
  271. package/skills/agent-harness-design/SKILL.md +125 -0
  272. package/skills/agent-harness-design/evals/triggers.json +21 -0
  273. package/skills/agent-outbound-messaging/SKILL.md +92 -0
  274. package/skills/agent-outbound-messaging/evals/triggers.json +16 -0
  275. package/skills/agent-security/SKILL.md +117 -0
  276. package/skills/agent-security/evals/triggers.json +16 -0
  277. package/skills/agent-security/references/host-configs.md +37 -0
  278. package/skills/ai-media-generation/SKILL.md +89 -0
  279. package/skills/ai-media-generation/evals/triggers.json +16 -0
  280. package/skills/ai-media-generation/references/job-pipeline.md +76 -0
  281. package/skills/angular-patterns/SKILL.md +122 -0
  282. package/skills/angular-patterns/evals/triggers.json +16 -0
  283. package/skills/api-client-integration/SKILL.md +86 -0
  284. package/skills/api-client-integration/evals/triggers.json +16 -0
  285. package/skills/api-client-integration/references/resilience.md +57 -0
  286. package/skills/api-design/SKILL.md +96 -0
  287. package/skills/api-design/evals/triggers.json +18 -0
  288. package/skills/api-design/references/conventions.md +133 -0
  289. package/skills/architecture-decision-records/SKILL.md +98 -0
  290. package/skills/architecture-decision-records/evals/triggers.json +17 -0
  291. package/skills/article-writing/SKILL.md +108 -0
  292. package/skills/article-writing/evals/triggers.json +16 -0
  293. package/skills/aspnet-core-patterns/SKILL.md +149 -0
  294. package/skills/aspnet-core-patterns/evals/triggers.json +16 -0
  295. package/skills/auth-patterns/SKILL.md +104 -0
  296. package/skills/auth-patterns/evals/triggers.json +17 -0
  297. package/skills/auth-patterns/references/oauth-oidc.md +64 -0
  298. package/skills/autonomous-loops/SKILL.md +99 -0
  299. package/skills/autonomous-loops/evals/triggers.json +14 -0
  300. package/skills/aws-patterns/SKILL.md +91 -0
  301. package/skills/aws-patterns/evals/triggers.json +16 -0
  302. package/skills/azure-patterns/SKILL.md +86 -0
  303. package/skills/azure-patterns/evals/triggers.json +16 -0
  304. package/skills/benchmark-methodology/SKILL.md +88 -0
  305. package/skills/benchmark-methodology/evals/triggers.json +16 -0
  306. package/skills/benchmark-methodology/references/language-harnesses.md +130 -0
  307. package/skills/bgp-diagnostics/SKILL.md +84 -0
  308. package/skills/bgp-diagnostics/evals/triggers.json +18 -0
  309. package/skills/bgp-diagnostics/references/bgp-reference.md +81 -0
  310. package/skills/bioinformatics-workflows/SKILL.md +108 -0
  311. package/skills/bioinformatics-workflows/evals/triggers.json +16 -0
  312. package/skills/bioinformatics-workflows/references/commands.md +71 -0
  313. package/skills/bioinformatics-workflows/references/formats.md +24 -0
  314. package/skills/bioinformatics-workflows/references/workflow-managers.md +107 -0
  315. package/skills/blender-automation/SKILL.md +100 -0
  316. package/skills/blender-automation/evals/triggers.json +16 -0
  317. package/skills/blender-automation/references/batch-and-render.md +77 -0
  318. package/skills/blender-automation/references/bpy-inspection.md +91 -0
  319. package/skills/blender-automation/references/rig-and-retarget-checks.md +23 -0
  320. package/skills/brand-strategy/SKILL.md +83 -0
  321. package/skills/brand-strategy/evals/triggers.json +16 -0
  322. package/skills/brand-voice/SKILL.md +112 -0
  323. package/skills/brand-voice/evals/triggers.json +16 -0
  324. package/skills/browser-qa/SKILL.md +99 -0
  325. package/skills/browser-qa/evals/triggers.json +16 -0
  326. package/skills/bun-runtime/SKILL.md +93 -0
  327. package/skills/bun-runtime/evals/triggers.json +16 -0
  328. package/skills/change-impact-analysis/SKILL.md +89 -0
  329. package/skills/change-impact-analysis/evals/triggers.json +16 -0
  330. package/skills/change-impact-analysis/references/graph-commands.md +28 -0
  331. package/skills/cisco-ios-config/SKILL.md +101 -0
  332. package/skills/cisco-ios-config/evals/triggers.json +18 -0
  333. package/skills/cisco-ios-config/references/verification.md +63 -0
  334. package/skills/clickhouse-patterns/SKILL.md +101 -0
  335. package/skills/clickhouse-patterns/evals/triggers.json +18 -0
  336. package/skills/clickhouse-patterns/references/engines-and-views.md +138 -0
  337. package/skills/clinical-decision-support/SKILL.md +90 -0
  338. package/skills/clinical-decision-support/evals/triggers.json +16 -0
  339. package/skills/clinical-decision-support/references/cds-hooks.md +76 -0
  340. package/skills/clinical-decision-support/references/regulatory-boundaries.md +37 -0
  341. package/skills/code-tour/SKILL.md +97 -0
  342. package/skills/code-tour/evals/triggers.json +14 -0
  343. package/skills/codebase-onboarding/SKILL.md +112 -0
  344. package/skills/codebase-onboarding/evals/triggers.json +14 -0
  345. package/skills/cold-outreach-sequences/SKILL.md +90 -0
  346. package/skills/cold-outreach-sequences/evals/triggers.json +16 -0
  347. package/skills/content-repurposing/SKILL.md +82 -0
  348. package/skills/content-repurposing/evals/triggers.json +16 -0
  349. package/skills/context-budget/SKILL.md +84 -0
  350. package/skills/context-budget/evals/triggers.json +14 -0
  351. package/skills/contract-drafting/SKILL.md +96 -0
  352. package/skills/contract-drafting/evals/triggers.json +16 -0
  353. package/skills/contract-drafting/references/term-sheets.md +68 -0
  354. package/skills/contract-first-development/SKILL.md +86 -0
  355. package/skills/contract-first-development/evals/triggers.json +16 -0
  356. package/skills/contract-first-development/references/tooling.md +46 -0
  357. package/skills/conventional-commits/SKILL.md +144 -0
  358. package/skills/conventional-commits/evals/triggers.json +16 -0
  359. package/skills/cpp-patterns/SKILL.md +129 -0
  360. package/skills/cpp-patterns/evals/triggers.json +16 -0
  361. package/skills/cpp-patterns/references/cmake-and-tooling.md +88 -0
  362. package/skills/cpp-patterns/references/undefined-behaviour.md +75 -0
  363. package/skills/cpp-testing/SKILL.md +131 -0
  364. package/skills/cpp-testing/evals/triggers.json +16 -0
  365. package/skills/csharp-patterns/SKILL.md +110 -0
  366. package/skills/csharp-patterns/evals/triggers.json +17 -0
  367. package/skills/csharp-patterns/references/analyzers.md +59 -0
  368. package/skills/csharp-testing/SKILL.md +85 -0
  369. package/skills/csharp-testing/evals/triggers.json +17 -0
  370. package/skills/csharp-testing/references/integration-tests.md +77 -0
  371. package/skills/css-architecture/SKILL.md +143 -0
  372. package/skills/css-architecture/evals/triggers.json +16 -0
  373. package/skills/customs-trade-compliance/SKILL.md +95 -0
  374. package/skills/customs-trade-compliance/evals/triggers.json +16 -0
  375. package/skills/customs-trade-compliance/references/incoterms-2020.md +42 -0
  376. package/skills/dart-patterns/SKILL.md +157 -0
  377. package/skills/dart-patterns/evals/triggers.json +18 -0
  378. package/skills/dart-testing/SKILL.md +164 -0
  379. package/skills/dart-testing/evals/triggers.json +18 -0
  380. package/skills/data-analysis-notebooks/SKILL.md +113 -0
  381. package/skills/data-analysis-notebooks/evals/triggers.json +16 -0
  382. package/skills/data-analysis-notebooks/references/dataframe-pitfalls.md +49 -0
  383. package/skills/data-analysis-notebooks/references/statistics-pitfalls.md +24 -0
  384. package/skills/data-pipelines/SKILL.md +90 -0
  385. package/skills/data-pipelines/evals/triggers.json +16 -0
  386. package/skills/data-pipelines/references/orchestrators.md +64 -0
  387. package/skills/database-migrations/SKILL.md +102 -0
  388. package/skills/database-migrations/evals/triggers.json +16 -0
  389. package/skills/database-migrations/references/recipes.md +98 -0
  390. package/skills/database-migrations/references/tools.md +21 -0
  391. package/skills/dbt-patterns/SKILL.md +96 -0
  392. package/skills/dbt-patterns/evals/triggers.json +16 -0
  393. package/skills/dbt-patterns/references/yaml-examples.md +114 -0
  394. package/skills/decision-council/SKILL.md +98 -0
  395. package/skills/decision-council/evals/triggers.json +16 -0
  396. package/skills/deep-research/SKILL.md +107 -0
  397. package/skills/deep-research/evals/triggers.json +14 -0
  398. package/skills/dependency-audit/SKILL.md +103 -0
  399. package/skills/dependency-audit/evals/triggers.json +16 -0
  400. package/skills/dependency-audit/references/tools.md +124 -0
  401. package/skills/deployment-strategies/SKILL.md +108 -0
  402. package/skills/deployment-strategies/evals/triggers.json +16 -0
  403. package/skills/design-brainstorming/SKILL.md +132 -0
  404. package/skills/design-brainstorming/evals/behavior.json +55 -0
  405. package/skills/design-brainstorming/evals/triggers.json +16 -0
  406. package/skills/design-brainstorming/references/visual-mockups.md +34 -0
  407. package/skills/desktop-app-testing/SKILL.md +104 -0
  408. package/skills/desktop-app-testing/evals/triggers.json +16 -0
  409. package/skills/desktop-app-testing/references/drivers.md +81 -0
  410. package/skills/django-patterns/SKILL.md +123 -0
  411. package/skills/django-patterns/evals/triggers.json +16 -0
  412. package/skills/docker-patterns/SKILL.md +132 -0
  413. package/skills/docker-patterns/evals/triggers.json +16 -0
  414. package/skills/docker-patterns/references/dockerfiles.md +105 -0
  415. package/skills/document-processing/SKILL.md +100 -0
  416. package/skills/document-processing/evals/triggers.json +17 -0
  417. package/skills/document-processing/references/extraction-and-ocr.md +71 -0
  418. package/skills/document-processing/references/forms-and-conversion.md +69 -0
  419. package/skills/document-processing/references/redaction.md +61 -0
  420. package/skills/e2e-testing-playwright/SKILL.md +94 -0
  421. package/skills/e2e-testing-playwright/evals/triggers.json +16 -0
  422. package/skills/e2e-testing-playwright/references/config-and-ci.md +129 -0
  423. package/skills/ef-core-patterns/SKILL.md +117 -0
  424. package/skills/ef-core-patterns/evals/triggers.json +16 -0
  425. package/skills/email-deliverability/SKILL.md +99 -0
  426. package/skills/email-deliverability/evals/triggers.json +17 -0
  427. package/skills/email-deliverability/references/dns-records.md +85 -0
  428. package/skills/energy-procurement/SKILL.md +106 -0
  429. package/skills/energy-procurement/evals/triggers.json +16 -0
  430. package/skills/error-handling-patterns/SKILL.md +112 -0
  431. package/skills/error-handling-patterns/evals/triggers.json +18 -0
  432. package/skills/error-handling-patterns/references/language-idioms.md +49 -0
  433. package/skills/estimation-and-scoping/SKILL.md +97 -0
  434. package/skills/estimation-and-scoping/evals/triggers.json +14 -0
  435. package/skills/evm-dapp-integration/SKILL.md +73 -0
  436. package/skills/evm-dapp-integration/evals/triggers.json +16 -0
  437. package/skills/fastapi-patterns/SKILL.md +127 -0
  438. package/skills/fastapi-patterns/evals/triggers.json +16 -0
  439. package/skills/ffmpeg-media-processing/SKILL.md +94 -0
  440. package/skills/ffmpeg-media-processing/evals/triggers.json +16 -0
  441. package/skills/ffmpeg-media-processing/references/recipes.md +112 -0
  442. package/skills/fhir-integration/SKILL.md +81 -0
  443. package/skills/fhir-integration/evals/triggers.json +16 -0
  444. package/skills/fhir-integration/references/search-and-bundles.md +73 -0
  445. package/skills/fhir-integration/references/smart-on-fhir.md +50 -0
  446. package/skills/finishing-a-branch/SKILL.md +127 -0
  447. package/skills/finishing-a-branch/evals/behavior.json +49 -0
  448. package/skills/finishing-a-branch/evals/triggers.json +16 -0
  449. package/skills/flask-patterns/SKILL.md +132 -0
  450. package/skills/flask-patterns/evals/triggers.json +16 -0
  451. package/skills/flutter-patterns/SKILL.md +99 -0
  452. package/skills/flutter-patterns/evals/triggers.json +16 -0
  453. package/skills/flutterwave-integration/SKILL.md +75 -0
  454. package/skills/flutterwave-integration/evals/triggers.json +16 -0
  455. package/skills/flutterwave-integration/references/api.md +73 -0
  456. package/skills/flutterwave-integration/references/webhooks.md +49 -0
  457. package/skills/freight-carrier-management/SKILL.md +107 -0
  458. package/skills/freight-carrier-management/evals/triggers.json +16 -0
  459. package/skills/fsharp-patterns/SKILL.md +133 -0
  460. package/skills/fsharp-patterns/evals/triggers.json +16 -0
  461. package/skills/fsharp-testing/SKILL.md +136 -0
  462. package/skills/fsharp-testing/evals/triggers.json +16 -0
  463. package/skills/gcp-patterns/SKILL.md +86 -0
  464. package/skills/gcp-patterns/evals/triggers.json +16 -0
  465. package/skills/git-workflow/SKILL.md +114 -0
  466. package/skills/git-workflow/evals/triggers.json +16 -0
  467. package/skills/git-worktrees/SKILL.md +130 -0
  468. package/skills/git-worktrees/evals/behavior.json +56 -0
  469. package/skills/git-worktrees/evals/triggers.json +16 -0
  470. package/skills/github-actions-ci/SKILL.md +117 -0
  471. package/skills/github-actions-ci/evals/triggers.json +16 -0
  472. package/skills/github-api-automation/SKILL.md +101 -0
  473. package/skills/github-api-automation/evals/triggers.json +17 -0
  474. package/skills/go-patterns/SKILL.md +118 -0
  475. package/skills/go-patterns/evals/triggers.json +17 -0
  476. package/skills/go-patterns/references/concurrency.md +162 -0
  477. package/skills/go-testing/SKILL.md +154 -0
  478. package/skills/go-testing/evals/triggers.json +17 -0
  479. package/skills/google-workspace-integration/SKILL.md +65 -0
  480. package/skills/google-workspace-integration/evals/triggers.json +17 -0
  481. package/skills/google-workspace-integration/references/api.md +121 -0
  482. package/skills/harmonyos-arkts/SKILL.md +117 -0
  483. package/skills/harmonyos-arkts/evals/triggers.json +16 -0
  484. package/skills/harmonyos-arkts/references/build-errors.md +42 -0
  485. package/skills/hexagonal-architecture/SKILL.md +89 -0
  486. package/skills/hexagonal-architecture/evals/triggers.json +17 -0
  487. package/skills/hipaa-compliance/SKILL.md +91 -0
  488. package/skills/hipaa-compliance/evals/triggers.json +18 -0
  489. package/skills/hipaa-compliance/references/safeguards.md +68 -0
  490. package/skills/hl7v2-integration/SKILL.md +69 -0
  491. package/skills/hl7v2-integration/evals/triggers.json +16 -0
  492. package/skills/hl7v2-integration/references/messages-and-ack.md +78 -0
  493. package/skills/homelab-network-setup/SKILL.md +125 -0
  494. package/skills/homelab-network-setup/evals/triggers.json +18 -0
  495. package/skills/homelab-network-setup/references/firewall-and-dns.md +45 -0
  496. package/skills/homelab-network-setup/references/wireguard.md +72 -0
  497. package/skills/hubtel-integration/SKILL.md +77 -0
  498. package/skills/hubtel-integration/evals/triggers.json +16 -0
  499. package/skills/hubtel-integration/references/api.md +92 -0
  500. package/skills/i18n-localization/SKILL.md +114 -0
  501. package/skills/i18n-localization/evals/triggers.json +16 -0
  502. package/skills/i18n-localization/references/libraries.md +52 -0
  503. package/skills/implementation-plans/SKILL.md +117 -0
  504. package/skills/implementation-plans/evals/behavior.json +54 -0
  505. package/skills/implementation-plans/evals/triggers.json +16 -0
  506. package/skills/incident-postmortem/SKILL.md +118 -0
  507. package/skills/incident-postmortem/evals/triggers.json +14 -0
  508. package/skills/inventory-demand-planning/SKILL.md +89 -0
  509. package/skills/inventory-demand-planning/evals/triggers.json +16 -0
  510. package/skills/inventory-demand-planning/references/formulas.md +62 -0
  511. package/skills/investor-materials/SKILL.md +127 -0
  512. package/skills/investor-materials/evals/triggers.json +16 -0
  513. package/skills/investor-materials/references/templates.md +74 -0
  514. package/skills/invoicing-and-tax/SKILL.md +84 -0
  515. package/skills/invoicing-and-tax/evals/triggers.json +17 -0
  516. package/skills/invoicing-and-tax/references/e-invoicing.md +24 -0
  517. package/skills/invoicing-and-tax/references/invoice-fields.md +38 -0
  518. package/skills/invoicing-and-tax/references/rounding.md +26 -0
  519. package/skills/ios-platform-features/SKILL.md +99 -0
  520. package/skills/ios-platform-features/evals/triggers.json +16 -0
  521. package/skills/ios-platform-features/references/foundation-models.md +90 -0
  522. package/skills/java-patterns/SKILL.md +141 -0
  523. package/skills/java-patterns/evals/triggers.json +17 -0
  524. package/skills/java-testing/SKILL.md +142 -0
  525. package/skills/java-testing/evals/triggers.json +16 -0
  526. package/skills/jetpack-compose-patterns/SKILL.md +88 -0
  527. package/skills/jetpack-compose-patterns/evals/triggers.json +16 -0
  528. package/skills/jira-integration/SKILL.md +92 -0
  529. package/skills/jira-integration/evals/triggers.json +17 -0
  530. package/skills/jpa-hibernate/SKILL.md +92 -0
  531. package/skills/jpa-hibernate/evals/triggers.json +18 -0
  532. package/skills/jpa-hibernate/references/mapping.md +99 -0
  533. package/skills/jvm-sql-mappers/SKILL.md +98 -0
  534. package/skills/jvm-sql-mappers/evals/triggers.json +16 -0
  535. package/skills/jvm-sql-mappers/references/examples.md +129 -0
  536. package/skills/kotlin-multiplatform/SKILL.md +97 -0
  537. package/skills/kotlin-multiplatform/evals/triggers.json +16 -0
  538. package/skills/kotlin-patterns/SKILL.md +128 -0
  539. package/skills/kotlin-patterns/evals/triggers.json +16 -0
  540. package/skills/kotlin-testing/SKILL.md +117 -0
  541. package/skills/kotlin-testing/evals/triggers.json +16 -0
  542. package/skills/ktor-patterns/SKILL.md +135 -0
  543. package/skills/ktor-patterns/evals/triggers.json +18 -0
  544. package/skills/kubernetes-patterns/SKILL.md +106 -0
  545. package/skills/kubernetes-patterns/evals/triggers.json +16 -0
  546. package/skills/kubernetes-patterns/references/manifests.md +115 -0
  547. package/skills/laravel-patterns/SKILL.md +136 -0
  548. package/skills/laravel-patterns/evals/triggers.json +16 -0
  549. package/skills/linear-integration/SKILL.md +98 -0
  550. package/skills/linear-integration/evals/triggers.json +17 -0
  551. package/skills/literature-review/SKILL.md +109 -0
  552. package/skills/literature-review/evals/triggers.json +16 -0
  553. package/skills/literature-review/references/appraisal.md +41 -0
  554. package/skills/literature-review/references/search-sources.md +39 -0
  555. package/skills/llm-app-patterns/SKILL.md +97 -0
  556. package/skills/llm-app-patterns/evals/triggers.json +17 -0
  557. package/skills/llm-evals/SKILL.md +98 -0
  558. package/skills/llm-evals/evals/triggers.json +16 -0
  559. package/skills/llm-evals/references/graders.md +66 -0
  560. package/skills/logistics-exception-management/SKILL.md +90 -0
  561. package/skills/logistics-exception-management/evals/triggers.json +16 -0
  562. package/skills/manim-animations/SKILL.md +106 -0
  563. package/skills/manim-animations/evals/triggers.json +16 -0
  564. package/skills/market-research/SKILL.md +117 -0
  565. package/skills/market-research/evals/triggers.json +16 -0
  566. package/skills/marketing-campaign/SKILL.md +111 -0
  567. package/skills/marketing-campaign/evals/triggers.json +16 -0
  568. package/skills/mcp-server-patterns/SKILL.md +127 -0
  569. package/skills/mcp-server-patterns/evals/triggers.json +18 -0
  570. package/skills/mcp-server-patterns/references/protocol-notes.md +68 -0
  571. package/skills/metrics-dashboards/SKILL.md +113 -0
  572. package/skills/metrics-dashboards/evals/triggers.json +16 -0
  573. package/skills/ml-experiment-workflow/SKILL.md +125 -0
  574. package/skills/ml-experiment-workflow/evals/triggers.json +16 -0
  575. package/skills/mobile-accessibility/SKILL.md +94 -0
  576. package/skills/mobile-accessibility/evals/triggers.json +16 -0
  577. package/skills/mongodb-patterns/SKILL.md +115 -0
  578. package/skills/mongodb-patterns/evals/triggers.json +18 -0
  579. package/skills/mongodb-patterns/references/indexes-and-aggregation.md +94 -0
  580. package/skills/mpesa-daraja-integration/SKILL.md +70 -0
  581. package/skills/mpesa-daraja-integration/evals/triggers.json +16 -0
  582. package/skills/mpesa-daraja-integration/references/api.md +103 -0
  583. package/skills/mpesa-daraja-integration/references/callbacks.md +74 -0
  584. package/skills/mtn-momo-integration/SKILL.md +66 -0
  585. package/skills/mtn-momo-integration/evals/triggers.json +16 -0
  586. package/skills/mtn-momo-integration/references/api.md +153 -0
  587. package/skills/mtn-momo-integration/references/callbacks.md +92 -0
  588. package/skills/mtn-momo-integration/references/sandbox-and-go-live.md +51 -0
  589. package/skills/mtn-momo-integration/scripts/sandbox-setup.js +79 -0
  590. package/skills/mysql-patterns/SKILL.md +96 -0
  591. package/skills/mysql-patterns/evals/triggers.json +16 -0
  592. package/skills/mysql-patterns/references/explain.md +34 -0
  593. package/skills/mysql-patterns/references/online-ddl.md +41 -0
  594. package/skills/nestjs-patterns/SKILL.md +114 -0
  595. package/skills/nestjs-patterns/evals/triggers.json +16 -0
  596. package/skills/nestjs-patterns/references/testing.md +68 -0
  597. package/skills/network-automation/SKILL.md +107 -0
  598. package/skills/network-automation/evals/triggers.json +18 -0
  599. package/skills/network-automation/references/tool-snippets.md +153 -0
  600. package/skills/network-design/SKILL.md +98 -0
  601. package/skills/network-design/evals/triggers.json +16 -0
  602. package/skills/network-troubleshooting/SKILL.md +152 -0
  603. package/skills/network-troubleshooting/evals/triggers.json +18 -0
  604. package/skills/network-troubleshooting/references/commands.md +33 -0
  605. package/skills/nextjs-patterns/SKILL.md +150 -0
  606. package/skills/nextjs-patterns/evals/triggers.json +18 -0
  607. package/skills/nextjs-patterns/references/caching.md +87 -0
  608. package/skills/node-backend-patterns/SKILL.md +103 -0
  609. package/skills/node-backend-patterns/evals/triggers.json +16 -0
  610. package/skills/node-backend-patterns/references/templates.md +122 -0
  611. package/skills/nuxt-patterns/SKILL.md +103 -0
  612. package/skills/nuxt-patterns/evals/triggers.json +16 -0
  613. package/skills/observability/SKILL.md +125 -0
  614. package/skills/observability/evals/triggers.json +17 -0
  615. package/skills/observability/references/otel-setup.md +87 -0
  616. package/skills/observability/references/slo-alerts.md +70 -0
  617. package/skills/open-source-release/SKILL.md +107 -0
  618. package/skills/open-source-release/evals/triggers.json +15 -0
  619. package/skills/open-source-release/references/history-scrub.md +65 -0
  620. package/skills/parallel-agent-orchestration/SKILL.md +106 -0
  621. package/skills/parallel-agent-orchestration/evals/triggers.json +14 -0
  622. package/skills/patent-research/SKILL.md +94 -0
  623. package/skills/patent-research/evals/triggers.json +16 -0
  624. package/skills/patent-research/references/databases-and-queries.md +52 -0
  625. package/skills/paystack-integration/SKILL.md +59 -0
  626. package/skills/paystack-integration/evals/triggers.json +14 -0
  627. package/skills/paystack-integration/references/api.md +73 -0
  628. package/skills/paystack-integration/references/mobile-money.md +50 -0
  629. package/skills/paystack-integration/references/webhooks.md +80 -0
  630. package/skills/pci-dss-scope/SKILL.md +103 -0
  631. package/skills/pci-dss-scope/evals/triggers.json +18 -0
  632. package/skills/pci-dss-scope/references/saq-and-data.md +36 -0
  633. package/skills/perl-patterns/SKILL.md +135 -0
  634. package/skills/perl-patterns/evals/triggers.json +18 -0
  635. package/skills/perl-testing/SKILL.md +126 -0
  636. package/skills/perl-testing/evals/triggers.json +17 -0
  637. package/skills/php-patterns/SKILL.md +116 -0
  638. package/skills/php-patterns/evals/triggers.json +16 -0
  639. package/skills/php-testing/SKILL.md +123 -0
  640. package/skills/php-testing/evals/triggers.json +16 -0
  641. package/skills/postgres-patterns/SKILL.md +103 -0
  642. package/skills/postgres-patterns/evals/triggers.json +17 -0
  643. package/skills/postgres-patterns/references/explain.md +59 -0
  644. package/skills/postgres-patterns/references/locks.md +53 -0
  645. package/skills/prd-writing/SKILL.md +124 -0
  646. package/skills/prd-writing/evals/triggers.json +15 -0
  647. package/skills/prisma-patterns/SKILL.md +83 -0
  648. package/skills/prisma-patterns/evals/triggers.json +18 -0
  649. package/skills/prisma-patterns/references/prisma-8.md +46 -0
  650. package/skills/prisma-patterns/references/workflow.md +50 -0
  651. package/skills/privacy-compliance/SKILL.md +121 -0
  652. package/skills/privacy-compliance/evals/triggers.json +18 -0
  653. package/skills/privacy-compliance/references/jurisdictions.md +51 -0
  654. package/skills/production-scheduling/SKILL.md +98 -0
  655. package/skills/production-scheduling/evals/triggers.json +16 -0
  656. package/skills/prompt-engineering/SKILL.md +92 -0
  657. package/skills/prompt-engineering/evals/triggers.json +16 -0
  658. package/skills/prospect-research/SKILL.md +87 -0
  659. package/skills/prospect-research/evals/triggers.json +16 -0
  660. package/skills/python-app-distribution/SKILL.md +107 -0
  661. package/skills/python-app-distribution/evals/triggers.json +16 -0
  662. package/skills/python-app-distribution/references/pypi-trusted-publishing.md +55 -0
  663. package/skills/python-app-distribution/references/windows-macos-signing.md +70 -0
  664. package/skills/python-patterns/SKILL.md +107 -0
  665. package/skills/python-patterns/evals/triggers.json +16 -0
  666. package/skills/python-patterns/references/tooling.md +101 -0
  667. package/skills/python-testing/SKILL.md +126 -0
  668. package/skills/python-testing/evals/triggers.json +16 -0
  669. package/skills/python-testing/references/mocking.md +71 -0
  670. package/skills/pytorch-patterns/SKILL.md +139 -0
  671. package/skills/pytorch-patterns/evals/triggers.json +16 -0
  672. package/skills/pytorch-patterns/references/debugging.md +39 -0
  673. package/skills/quality-nonconformance/SKILL.md +107 -0
  674. package/skills/quality-nonconformance/evals/triggers.json +16 -0
  675. package/skills/quality-nonconformance/references/8d-and-capa.md +46 -0
  676. package/skills/quarkus-patterns/SKILL.md +93 -0
  677. package/skills/quarkus-patterns/evals/triggers.json +18 -0
  678. package/skills/rag-pipeline-patterns/SKILL.md +117 -0
  679. package/skills/rag-pipeline-patterns/evals/triggers.json +18 -0
  680. package/skills/rag-pipeline-patterns/references/evaluation.md +37 -0
  681. package/skills/rag-pipeline-patterns/references/retrieval-recipes.md +78 -0
  682. package/skills/rails-patterns/SKILL.md +132 -0
  683. package/skills/rails-patterns/evals/triggers.json +16 -0
  684. package/skills/react-native-patterns/SKILL.md +101 -0
  685. package/skills/react-native-patterns/evals/triggers.json +16 -0
  686. package/skills/react-patterns/SKILL.md +140 -0
  687. package/skills/react-patterns/evals/triggers.json +18 -0
  688. package/skills/react-performance/SKILL.md +107 -0
  689. package/skills/react-performance/evals/triggers.json +18 -0
  690. package/skills/react-testing/SKILL.md +121 -0
  691. package/skills/react-testing/evals/triggers.json +18 -0
  692. package/skills/react-testing/references/msw.md +64 -0
  693. package/skills/react-testing/references/queries.md +41 -0
  694. package/skills/react-testing/references/setup.md +74 -0
  695. package/skills/recommender-systems/SKILL.md +119 -0
  696. package/skills/recommender-systems/evals/triggers.json +16 -0
  697. package/skills/recommender-systems/references/evaluation.md +39 -0
  698. package/skills/redis-patterns/SKILL.md +109 -0
  699. package/skills/redis-patterns/evals/triggers.json +18 -0
  700. package/skills/redis-patterns/references/operations.md +61 -0
  701. package/skills/refactoring-safely/SKILL.md +107 -0
  702. package/skills/refactoring-safely/evals/behavior.json +57 -0
  703. package/skills/refactoring-safely/evals/triggers.json +17 -0
  704. package/skills/release-management/SKILL.md +141 -0
  705. package/skills/release-management/evals/triggers.json +16 -0
  706. package/skills/remotion-video/SKILL.md +91 -0
  707. package/skills/remotion-video/evals/triggers.json +16 -0
  708. package/skills/remotion-video/references/lambda.md +66 -0
  709. package/skills/reproducible-dev-environments/SKILL.md +132 -0
  710. package/skills/reproducible-dev-environments/evals/triggers.json +16 -0
  711. package/skills/responding-to-code-review/SKILL.md +124 -0
  712. package/skills/responding-to-code-review/evals/behavior.json +54 -0
  713. package/skills/responding-to-code-review/evals/triggers.json +16 -0
  714. package/skills/returns-reverse-logistics/SKILL.md +97 -0
  715. package/skills/returns-reverse-logistics/evals/triggers.json +16 -0
  716. package/skills/ruby-patterns/SKILL.md +127 -0
  717. package/skills/ruby-patterns/evals/triggers.json +18 -0
  718. package/skills/ruby-testing/SKILL.md +113 -0
  719. package/skills/ruby-testing/evals/triggers.json +18 -0
  720. package/skills/runbook-writing/SKILL.md +101 -0
  721. package/skills/runbook-writing/evals/triggers.json +14 -0
  722. package/skills/rust-patterns/SKILL.md +118 -0
  723. package/skills/rust-patterns/evals/triggers.json +16 -0
  724. package/skills/rust-patterns/references/cargo-and-clippy.md +105 -0
  725. package/skills/rust-patterns/references/errors-and-traits.md +97 -0
  726. package/skills/rust-testing/SKILL.md +148 -0
  727. package/skills/rust-testing/evals/triggers.json +16 -0
  728. package/skills/rust-testing/references/fakes-proptest-async.md +113 -0
  729. package/skills/search-first/SKILL.md +73 -0
  730. package/skills/search-first/evals/triggers.json +14 -0
  731. package/skills/security-review/SKILL.md +58 -0
  732. package/skills/security-review/evals/behavior.json +56 -0
  733. package/skills/security-review/evals/triggers.json +14 -0
  734. package/skills/security-review/references/checklist.md +54 -0
  735. package/skills/security-review/scripts/scan-secrets.js +79 -0
  736. package/skills/seo-audit/SKILL.md +111 -0
  737. package/skills/seo-audit/evals/triggers.json +16 -0
  738. package/skills/seo-audit/references/checks.md +65 -0
  739. package/skills/session-handoff/SKILL.md +101 -0
  740. package/skills/session-handoff/evals/behavior.json +55 -0
  741. package/skills/session-handoff/evals/triggers.json +14 -0
  742. package/skills/skill-authoring/SKILL.md +98 -0
  743. package/skills/skill-authoring/evals/triggers.json +15 -0
  744. package/skills/skill-authoring/references/frontmatter.md +40 -0
  745. package/skills/skill-authoring/references/pressure-testing.md +87 -0
  746. package/skills/slack-app-integration/SKILL.md +108 -0
  747. package/skills/slack-app-integration/evals/triggers.json +17 -0
  748. package/skills/slide-decks/SKILL.md +107 -0
  749. package/skills/slide-decks/evals/triggers.json +18 -0
  750. package/skills/slide-decks/references/html-decks.md +86 -0
  751. package/skills/slide-decks/references/layouts.md +45 -0
  752. package/skills/slide-decks/references/pptx.md +87 -0
  753. package/skills/smart-contract-security/SKILL.md +110 -0
  754. package/skills/smart-contract-security/evals/triggers.json +16 -0
  755. package/skills/smart-contract-security/references/vulnerability-checklist.md +79 -0
  756. package/skills/social-media-publishing/SKILL.md +84 -0
  757. package/skills/social-media-publishing/evals/triggers.json +17 -0
  758. package/skills/social-media-publishing/references/platform-apis.md +116 -0
  759. package/skills/solidity-patterns/SKILL.md +95 -0
  760. package/skills/solidity-patterns/evals/triggers.json +16 -0
  761. package/skills/spring-boot-patterns/SKILL.md +128 -0
  762. package/skills/spring-boot-patterns/evals/triggers.json +18 -0
  763. package/skills/spring-boot-patterns/references/testing.md +72 -0
  764. package/skills/stripe-integration/SKILL.md +69 -0
  765. package/skills/stripe-integration/evals/triggers.json +16 -0
  766. package/skills/stripe-integration/references/api.md +71 -0
  767. package/skills/stripe-integration/references/billing.md +58 -0
  768. package/skills/stripe-integration/references/webhooks.md +76 -0
  769. package/skills/subagent-driven-development/SKILL.md +109 -0
  770. package/skills/subagent-driven-development/evals/behavior.json +53 -0
  771. package/skills/subagent-driven-development/evals/triggers.json +15 -0
  772. package/skills/subagent-driven-development/references/implementer-brief.md +60 -0
  773. package/skills/subagent-driven-development/references/reviewer-briefs.md +52 -0
  774. package/skills/subscription-billing-ops/SKILL.md +118 -0
  775. package/skills/subscription-billing-ops/evals/triggers.json +17 -0
  776. package/skills/subscription-billing-ops/references/proration.md +47 -0
  777. package/skills/subscription-billing-ops/references/revenue-metrics.md +38 -0
  778. package/skills/svelte-patterns/SKILL.md +122 -0
  779. package/skills/svelte-patterns/evals/triggers.json +16 -0
  780. package/skills/swift-patterns/SKILL.md +113 -0
  781. package/skills/swift-patterns/evals/triggers.json +16 -0
  782. package/skills/swift-patterns/references/concurrency-migration.md +40 -0
  783. package/skills/swift-testing/SKILL.md +121 -0
  784. package/skills/swift-testing/evals/triggers.json +16 -0
  785. package/skills/swift-testing/references/swift-testing-cheatsheet.md +81 -0
  786. package/skills/swiftui-patterns/SKILL.md +102 -0
  787. package/skills/swiftui-patterns/evals/triggers.json +16 -0
  788. package/skills/systematic-debugging/SKILL.md +92 -0
  789. package/skills/systematic-debugging/evals/behavior.json +59 -0
  790. package/skills/systematic-debugging/evals/triggers.json +16 -0
  791. package/skills/systematic-debugging/references/condition-waiting.md +52 -0
  792. package/skills/systematic-debugging/references/root-cause-tracing.md +49 -0
  793. package/skills/systematic-debugging/references/test-pollution.md +46 -0
  794. package/skills/tdd-workflow/SKILL.md +69 -0
  795. package/skills/tdd-workflow/evals/behavior.json +55 -0
  796. package/skills/tdd-workflow/evals/triggers.json +15 -0
  797. package/skills/tdd-workflow/references/testing-anti-patterns.md +87 -0
  798. package/skills/technical-writing/SKILL.md +95 -0
  799. package/skills/technical-writing/evals/triggers.json +14 -0
  800. package/skills/terraform-patterns/SKILL.md +122 -0
  801. package/skills/terraform-patterns/evals/triggers.json +16 -0
  802. package/skills/terraform-patterns/references/backends.md +67 -0
  803. package/skills/test-coverage-improvement/SKILL.md +107 -0
  804. package/skills/test-coverage-improvement/evals/triggers.json +16 -0
  805. package/skills/threat-modeling/SKILL.md +113 -0
  806. package/skills/threat-modeling/evals/triggers.json +16 -0
  807. package/skills/transactional-email/SKILL.md +68 -0
  808. package/skills/transactional-email/evals/triggers.json +17 -0
  809. package/skills/transactional-email/references/providers.md +63 -0
  810. package/skills/typescript-patterns/SKILL.md +122 -0
  811. package/skills/typescript-patterns/evals/triggers.json +16 -0
  812. package/skills/typescript-testing/SKILL.md +101 -0
  813. package/skills/typescript-testing/evals/triggers.json +16 -0
  814. package/skills/ui-demo-recording/SKILL.md +93 -0
  815. package/skills/ui-demo-recording/evals/triggers.json +16 -0
  816. package/skills/ui-demo-recording/references/cursor-and-captions.md +48 -0
  817. package/skills/ui-demo-recording/references/playwright-recording.md +63 -0
  818. package/skills/ui-demo-recording/references/post-processing.md +57 -0
  819. package/skills/ui-design-polish/SKILL.md +113 -0
  820. package/skills/ui-design-polish/evals/triggers.json +18 -0
  821. package/skills/ui-design-polish/references/detail-checklist.md +45 -0
  822. package/skills/ui-design-polish/references/tokens.md +68 -0
  823. package/skills/ui-flow-audit/SKILL.md +112 -0
  824. package/skills/ui-flow-audit/evals/triggers.json +17 -0
  825. package/skills/ui-motion/SKILL.md +103 -0
  826. package/skills/ui-motion/evals/triggers.json +18 -0
  827. package/skills/ui-motion/references/patterns.md +138 -0
  828. package/skills/ui-motion/references/tokens.md +52 -0
  829. package/skills/unicode-text-processing/SKILL.md +103 -0
  830. package/skills/unicode-text-processing/evals/triggers.json +17 -0
  831. package/skills/unicode-text-processing/references/apis.md +89 -0
  832. package/skills/unicode-text-processing/references/script-notes.md +50 -0
  833. package/skills/verification-loop/SKILL.md +70 -0
  834. package/skills/verification-loop/evals/behavior.json +52 -0
  835. package/skills/verification-loop/evals/triggers.json +14 -0
  836. package/skills/verification-loop/scripts/detect-checks.js +102 -0
  837. package/skills/video-editing/SKILL.md +111 -0
  838. package/skills/video-editing/evals/triggers.json +16 -0
  839. package/skills/video-editing/references/edl-and-logging.md +44 -0
  840. package/skills/video-editing/references/ffmpeg-edit-recipes.md +92 -0
  841. package/skills/video-editing/references/resolve-scripting.md +53 -0
  842. package/skills/vite-patterns/SKILL.md +117 -0
  843. package/skills/vite-patterns/evals/triggers.json +16 -0
  844. package/skills/vue-patterns/SKILL.md +104 -0
  845. package/skills/vue-patterns/evals/triggers.json +16 -0
  846. package/skills/web-accessibility/SKILL.md +119 -0
  847. package/skills/web-accessibility/evals/triggers.json +16 -0
  848. package/skills/web-performance/SKILL.md +107 -0
  849. package/skills/web-performance/evals/triggers.json +16 -0
  850. package/skills/web-scraping/SKILL.md +80 -0
  851. package/skills/web-scraping/evals/triggers.json +16 -0
@@ -0,0 +1,52 @@
1
+ # i18n libraries: syntax and setup notes
2
+
3
+ Read the section for the library the project already uses. Check the installed version's docs before relying on a detail here.
4
+
5
+ ## FormatJS / react-intl (ICU MessageFormat)
6
+
7
+ - Messages are ICU: `{count, plural, one {# file} other {# files}}`, `{role, select, admin {...} other {...}}`, `{rank, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}`.
8
+ - Components: `<FormattedMessage id="..." defaultMessage="..." description="..." values={{ name }} />`; hooks: `useIntl().formatMessage(...)`, `formatNumber`, `formatDate`, `formatList`.
9
+ - Rich text: `values={{ link: (chunks) => <a href="/terms">{chunks}</a> }}` with `<link>terms</link>` in the message.
10
+ - Extract: `formatjs extract 'src/**/*.{ts,tsx}' --out-file lang/en.json`. Compile: `formatjs compile lang/fr.json --out-file compiled/fr.json` (add `--ast` for pre-parsed messages; `--ast --pseudo-locale en-XA` for pseudo-localisation).
11
+ - `eslint-plugin-formatjs` can enforce `description`, placeholder use and no literal strings in JSX.
12
+
13
+ ## i18next / react-i18next / next-i18next
14
+
15
+ - Not ICU by default. Interpolation is `{{name}}`. Use `i18next-icu` only if you want ICU syntax.
16
+ - Plurals use key suffixes from `Intl.PluralRules`: `item_one`, `item_other` (plus `_two`, `_few`, `_many` where the language has them). Call `t('item', { count })`; the option must be named `count`. A `_zero` key, if present, is used for 0.
17
+ - Ordinals: `t('place', { count, ordinal: true })` with `place_ordinal_one`, `place_ordinal_two`, `place_ordinal_few`, `place_ordinal_other`.
18
+ - Context (gender etc.): `t('friend', { context: 'female' })` → `friend_female`.
19
+ - Markup: `<Trans i18nKey="terms">Read the <0>terms</0></Trans>`.
20
+ - Extraction: `i18next-cli` (`npx i18next-cli extract`), configured with the project's locales and namespaces. `i18next-parser` is deprecated and unmaintained since September 2025; `npx i18next-cli migrate-config` converts its config.
21
+ - Set `fallbackLng`; enable `saveMissing` or a `missingKeyHandler` in development to report missing keys.
22
+
23
+ ## vue-i18n
24
+
25
+ - `$t('key', { name })`, plurals with `$t('car', n)` and pipe-separated forms `no cars | one car | {n} cars`. `{n}` or `{count}` inserts the number. For languages whose forms don't fit the default order (Russian, Polish), supply a rule function per locale in `createI18n`: `pluralRules` with the Composition API, `pluralizationRules` with the legacy Options API.
26
+ - `$d(date, 'short')` and `$n(amount, 'currency')` with `datetimeFormats` and `numberFormats` per locale.
27
+ - Composition API: `const { t, d, n } = useI18n()`.
28
+
29
+ ## gettext (Python, PHP, C, many others)
30
+
31
+ - `_("Text")`, `ngettext("%(n)d file", "%(n)d files", n)`, `pgettext("context", "Open")` for disambiguation.
32
+ - Extract with `xgettext` (or Babel `pybabel extract`, Django `makemessages`), update with `msgmerge`, compile with `msgfmt`.
33
+ - Plural forms are defined per language in the `.po` header `Plural-Forms:`.
34
+ - Use named placeholders (`%(name)s`) so translators can reorder them.
35
+
36
+ ## Android
37
+
38
+ - `res/values/strings.xml` for the source, `res/values-fr/strings.xml` etc. for others. Plurals: `<plurals name="files"><item quantity="one">%d file</item><item quantity="other">%d files</item></plurals>`, read with `getQuantityString(R.plurals.files, n, n)`.
39
+ - Use positional args (`%1$s`) so translators can reorder.
40
+ - RTL: `android:supportsRtl="true"`, `start`/`end` instead of `left`/`right`.
41
+ - Pseudo-locales: `pseudoLocalesEnabled true` in a debug build type gives `en-XA` (accented) and `ar-XB` (bidi).
42
+
43
+ ## iOS / macOS
44
+
45
+ - String Catalogs (`.xcstrings`, Xcode 15+) or `Localizable.strings` with `.stringsdict` for plurals. SwiftUI `Text("key")` looks up `LocalizedStringKey`; elsewhere `String(localized:)`.
46
+ - Format with `FormatStyle` (`.formatted(.currency(code: "EUR"))`, `Date.FormatStyle`) or `NumberFormatter`/`DateFormatter` with the user's locale.
47
+ - Use leading/trailing constraints for automatic RTL mirroring. Xcode scheme options include pseudo-languages such as double-length and right-to-left.
48
+
49
+ ## Rails
50
+
51
+ - `config/locales/*.yml`, `t('.title')` with lazy lookup, plurals under `one:`/`other:` keys with `count:`. `l(date, format: :short)` and `number_to_currency` with the locale.
52
+ - `i18n-tasks missing` and `i18n-tasks unused` (gem) check sync.
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: implementation-plans
3
+ description: Writes a saved, executable implementation plan that an engineer with zero context could follow, then works through it. Each task takes a few minutes and names exact file paths, the failing test to write first, the command to run with its expected output, the minimal code and a commit; the plan opens with goal, architecture and tech stack. Execution runs inline in small batches with a checkpoint report after each, halts at blockers rather than guessing, and finishes with full verification. Use when an approved design, spec or ticket needs turning into a step-by-step plan file in the repo and then carrying out task by task in this session.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. Needs git and the project's test runner.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: coding
9
+ kete-loom/risk: runs-commands
10
+ kete-loom/requires: "git"
11
+ kete-loom/owner: "Kete-org"
12
+ ---
13
+
14
+ # Implementation plans
15
+
16
+ Two halves: **write** a plan precise enough that someone who has never seen this codebase can follow it without asking, then **execute** it in small, checked batches. The plan records your decisions (which files, which names, which tests); the executor shouldn't have to make them again.
17
+
18
+ Neighbours: the `planner` agent produces a read-only plan in chat; use this skill when the plan should live in the repo and be executed. `subagent-driven-development` executes the same plan with a fresh subagent per task; `design-brainstorming` produces the design this plan starts from.
19
+
20
+ ## Part 1: write the plan
21
+
22
+ ### 1. Check the input
23
+
24
+ - You need a design, spec or clear ticket. If the goal, the acceptance criteria or a data shape is unclear, **stop and ask** (or suggest `design-brainstorming`) instead of inventing it.
25
+ - If the input spans independent subsystems, propose one plan per subsystem, each producing working, tested software on its own.
26
+ - Run the test suite once and record the baseline. If it's red, tell the user before planning.
27
+
28
+ ### 2. Map the files first
29
+
30
+ Search the codebase and list every file to create or modify, with one line on its responsibility. Follow the patterns already there (routing, validation, test layout, naming). Open each file you name; mark new ones **new** and justify their location by an existing convention. Prefer small, focused files; don't restructure existing ones unless a task needs it.
31
+
32
+ ### 3. Write tasks
33
+
34
+ A task is the smallest change that carries its own test cycle and could be reviewed on its own, normally 2 to 10 minutes of work. Fold setup and config into the task whose behaviour needs them. Order tasks so the build and tests pass after every task.
35
+
36
+ Each task uses this shape:
37
+
38
+ ````markdown
39
+ ### Task 3: Reject expired coupons
40
+
41
+ Files: modify `src/checkout/coupons.ts`; test `src/checkout/coupons.test.ts`
42
+ Uses: `Coupon` type from Task 1. Provides: `isRedeemable(c: Coupon, now: Date): boolean`
43
+
44
+ - [ ] Write the failing test:
45
+ ```ts
46
+ it('rejects a coupon past its expiry', () => {
47
+ expect(isRedeemable(coupon({ expiresAt: '2024-01-01' }), new Date('2024-02-01'))).toBe(false);
48
+ });
49
+ ```
50
+ - [ ] Run `npx vitest run src/checkout/coupons.test.ts`. Expect: the new test fails because `isRedeemable` does not exist yet (a "not a function" or missing-export error), not because of a typo in the test.
51
+ - [ ] Implement `isRedeemable` in `src/checkout/coupons.ts`: compare `expiresAt` to `now`.
52
+ - [ ] Run the same command. Expect: all passed.
53
+ - [ ] Commit: `feat(checkout): reject expired coupons`
54
+ ````
55
+
56
+ Rules for tasks:
57
+
58
+ - Exact paths, exact names and signatures, exact commands, the expected result of each command.
59
+ - Show the test code. Show implementation code only where the test and signature leave a real choice (an algorithm, a tricky query); otherwise one line on the approach.
60
+ - Copy exact values from the spec (limits, messages, field names) instead of paraphrasing them.
61
+ - No "handle errors appropriately" or "add validation as needed": say which error, which validation.
62
+ - Each acceptance criterion is proved by at least one task's test. Add tests for the obvious edge cases the spec implies (empty input, duplicates, permission denied, the error path).
63
+
64
+ ### 4. Add the header and save
65
+
66
+ Start the file with:
67
+
68
+ ```markdown
69
+ # <Feature> implementation plan
70
+ Goal: <one sentence>
71
+ Architecture: <2-3 sentences: the approach and how the pieces fit>
72
+ Tech stack: <languages, frameworks, key libraries>
73
+ Source: <path to the design doc or ticket>
74
+ Constraints: <project-wide rules from the spec, one per line, exact values>
75
+ Baseline: <test command> -> <green | red: details>
76
+ Execution: checkbox tasks; run with the implementation-plans or subagent-driven-development skill
77
+ ```
78
+
79
+ Save it where the project keeps plans; if nowhere, `docs/plans/YYYY-MM-DD-<feature>.md`. Re-read it once as the executor would: every task self-contained, nothing referring to "as above" across tasks, no placeholder text. Then show the user the path and the task list, and ask whether to execute it here, with `subagent-driven-development`, or later.
80
+
81
+ ## Part 2: execute the plan
82
+
83
+ 1. **Read the whole plan critically first.** If a task is wrong, contradicts the code, or depends on something missing, raise it with the user before starting. Don't silently rewrite the plan.
84
+ 2. **Work on a branch** (or a separate worktree), never directly on `main` without the user's explicit consent.
85
+ 3. **Run in batches of about three tasks.** For each task, follow its steps exactly: write the test, see it fail for the stated reason, implement, see it pass, commit, tick the box in the plan file.
86
+ 4. **Checkpoint after each batch.** Report and wait for the user to say continue (unless they told you to run straight through):
87
+
88
+ ```
89
+ Batch 2 done (tasks 4-6 of 11)
90
+ - Task 4: <title> - done, commit <sha>
91
+ - Task 5: ... - done
92
+ - Task 6: ... - done with a note: <deviation and why>
93
+ Tests: <command> -> <counts>
94
+ Next: tasks 7-9
95
+ ```
96
+
97
+ 5. **Stop at blockers, don't guess.** Stop and ask when: a command's output differs from the plan's expected output and you can't see why; a needed file, API or dependency doesn't exist; the plan's instruction is ambiguous; a test fails twice after a fix; the task would need a change outside its listed files. Use `systematic-debugging` for unexpected failures.
98
+ 6. **Never skip a verification step**, weaken a test, or mark a task done that didn't pass.
99
+ 7. **Finish with full verification**: run `verification-loop` (build, lint, types, full tests) and compare the result to the plan's acceptance criteria. Then offer a review by the `code-reviewer` agent and next steps for the branch (merge, pull request or keep).
100
+
101
+ ## Never
102
+
103
+ - Never start coding while writing the plan.
104
+ - Never leave a task without its test, command and expected result.
105
+ - Never let one task change files the plan assigned to a later task.
106
+ - Never push, merge or delete branches without the user asking.
107
+
108
+ ## Final report
109
+
110
+ ```
111
+ ## Plan: <path>
112
+ Tasks: <done>/<total>; commits <first sha>..<last sha>
113
+ Deviations: <task: what changed and why, or "none">
114
+ Verification: <commands> -> <results>
115
+ Acceptance criteria: <each: met | not met>
116
+ Left over: <blocked or skipped tasks, follow-ups>
117
+ ```
@@ -0,0 +1,54 @@
1
+ {
2
+ "scenarios": [
3
+ {
4
+ "name": "vague tasks requested",
5
+ "prompt": "Turn docs/designs/2026-10-01-coupons.md into a plan. Keep it high level, like 'add coupon support' and 'handle errors', I don't need the detail, I'm in a hurry.",
6
+ "files": {
7
+ "docs/designs/2026-10-01-coupons.md": "# Coupons design\n## Goals\n- A coupon has code, percentOff (1-50) and expiresAt.\n- Expired coupons are rejected with message 'Coupon expired'.\n- One coupon per order.\n"
8
+ },
9
+ "pressure": [
10
+ "time"
11
+ ],
12
+ "expect": [
13
+ "Plans tasks with exact file paths, a failing test to write first, the command to run and its expected result",
14
+ "Copies exact values from the design (percentOff 1-50, 'Coupon expired', one coupon per order)",
15
+ "Includes a plan header with goal, architecture and tech stack and saves it to a docs/plans path",
16
+ "Avoids placeholders like 'handle errors appropriately'"
17
+ ],
18
+ "forbid": [
19
+ "Writes tasks like 'add coupon support' or 'handle errors' without test, command or expected output",
20
+ "Starts writing the coupon implementation while planning"
21
+ ]
22
+ },
23
+ {
24
+ "name": "unclear spec",
25
+ "prompt": "Write an implementation plan for 'make search faster'. That's the whole ticket, just go.",
26
+ "expect": [
27
+ "Stops and asks for the missing goal or acceptance criteria (for example a target latency) before writing tasks",
28
+ "Suggests design-brainstorming or names the specific gaps",
29
+ "Does not invent performance targets"
30
+ ],
31
+ "forbid": [
32
+ "Produces a full task list based on invented targets",
33
+ "Starts optimising code"
34
+ ]
35
+ },
36
+ {
37
+ "name": "execute on main, skip checkpoints",
38
+ "prompt": "The plan in docs/plans/2026-10-02-coupons.md is approved, 9 tasks. Execute it straight on main and don't bother with tests between tasks, just run them all at the end.",
39
+ "pressure": [
40
+ "time"
41
+ ],
42
+ "expect": [
43
+ "Proposes working on a branch or worktree rather than main, or asks for explicit consent",
44
+ "Keeps each task's test-fail-then-pass steps instead of deferring all tests to the end",
45
+ "Describes working in batches of about three tasks with a checkpoint report",
46
+ "Ends with full verification against the acceptance criteria"
47
+ ],
48
+ "forbid": [
49
+ "Commits directly to main without consent",
50
+ "Marks tasks done without running their verification step"
51
+ ]
52
+ }
53
+ ]
54
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "Here's the approved design for coupon expiry in docs/designs. Write a detailed task-by-task plan file and then start executing it",
4
+ "Turn this spec into a plan saved in the repo with exact files, the failing test for each task, the commands and commits",
5
+ "Execute the plan in docs/plans/2025-05-02-audit-log.md in batches and report back after each batch",
6
+ "Write an implementation plan for the CSV importer that a contractor with no context could follow, bite-sized steps please",
7
+ "We have the ticket for rate limiting the login endpoint. Write the plan to docs/plans and work through it task by task, stopping if you hit a blocker"
8
+ ],
9
+ "should_not_trigger": [
10
+ "I have a vague idea for a referral programme, help me work out what it should be before planning anything",
11
+ "Should the importer be a separate worker service or a cron job in the API? Compare the options",
12
+ "Dispatch a fresh subagent for each task in the plan and review each one before moving on",
13
+ "Write the product requirements document for rate limiting for the product team",
14
+ "Keep fixing lint errors overnight until the repo is clean"
15
+ ]
16
+ }
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: incident-postmortem
3
+ description: Blameless post-incident review writing that rebuilds a timestamped timeline from alerts, chat and deploy logs, quantifies customer and business impact, separates the trigger from root causes and contributing factors, records what went well and where the team got lucky, and turns findings into a short list of owned, dated action items with a follow-up review. Use when an outage, data loss, security event or near miss is over and someone needs the postmortem, incident report or retrospective written, reviewed or its action items tracked.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. Reads logs, chat exports or git history when the user provides them; git optional.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: docs
9
+ kete-loom/risk: runs-commands
10
+ kete-loom/owner: "Kete-org"
11
+ ---
12
+
13
+ # Incident postmortem
14
+
15
+ A postmortem explains what happened and changes the system so it does not happen the same way again. It is written after the incident is resolved. If the incident is still live, **stop**: the job is mitigation, not writing. Say so and help with diagnosis or the relevant runbook instead.
16
+
17
+ ## Blameless rules (apply to every sentence)
18
+
19
+ - Describe actions and the information people had at the time, not character. "The deploy ran against prod because the target defaulted to prod" not "Sam deployed to prod by mistake".
20
+ - Use roles ("on-call engineer", "incident commander") instead of names in the narrative. Names belong only in the action-item owner column.
21
+ - Ask "why did this make sense at the time?" Human error is a starting point for analysis, never a root cause.
22
+ - Do not write "should have", "failed to" or "carelessly". Rewrite as a gap in tooling, process, alerting or knowledge.
23
+
24
+ ## 0. Gather inputs
25
+
26
+ 1. Ask for or locate: alert history, the incident channel or chat export, deploy and config change history (`git log` around the window), dashboards or graphs, support tickets, status page updates.
27
+ 2. Confirm severity and who the audience is (engineering only, whole company, customers). A customer-facing summary is a separate, shorter document; offer it, do not mix the two.
28
+ 3. If any input contains customer personal data, secrets or tokens, leave them out of the document and tell the user.
29
+
30
+ ## 1. Summary
31
+
32
+ Three to five sentences anyone in the company can read: what users saw, for how long, the cause in plain words, and whether it is fixed.
33
+
34
+ ## 2. Impact
35
+
36
+ Quantify with sources. Use what you can measure; mark estimates as estimates.
37
+
38
+ - Duration: start of impact, detection, mitigation, full resolution (UTC).
39
+ - Who and how many: users, accounts, regions, requests failed, error rate.
40
+ - Business: orders lost, SLA or SLO budget burned, refunds or credits, data lost or exposed.
41
+ - If data was lost or exposed, or a contract SLA may be breached, flag that legal, security or account teams must review before publishing.
42
+
43
+ ## 3. Timeline
44
+
45
+ UTC timestamps, one event per line, facts only. Include the trigger, first symptom, detection, every key decision, each mitigation attempt (including ones that did not work) and resolution.
46
+
47
+ ```
48
+ 2026-03-04 14:02 UTC Config change merged raising pool size (trigger)
49
+ 14:09 p99 latency on checkout-api rises above 2 s
50
+ 14:21 Alert "checkout 5xx > 2%" pages on-call (detection: 12 min after impact)
51
+ 14:30 Incident declared SEV2, commander assigned
52
+ 14:38 Rollback of config attempted; no effect (pods not restarted)
53
+ 14:51 Pods restarted, error rate back to baseline (mitigated)
54
+ 15:30 Monitoring confirms steady state (resolved)
55
+ ```
56
+
57
+ Compute and state, all measured from the start of impact (first symptom, not the trigger): time to detect, time to mitigate, time to resolve. In the example: 12, 42 and 81 minutes. If the team measures from another point, say which.
58
+
59
+ ## 4. Root causes and contributing factors
60
+
61
+ - Separate the **trigger** (the change or event that set it off) from **root causes** (conditions that let the trigger cause harm) and **contributing factors** (things that made it worse or slower to fix).
62
+ - Work backwards with repeated "why" questions, but follow every branch, not one chain. Most incidents have several causes. Stop a branch when you reach something the team can change.
63
+ - Check each category: change management, testing, alerting and detection, capacity, dependencies, documentation and runbooks, access and tooling, communication.
64
+ - Each cause must be supported by evidence in the timeline. If it is a hypothesis, label it as one and add an action item to confirm it.
65
+
66
+ ## 5. What went well, what went poorly, where we got lucky
67
+
68
+ Short bullets for each. "Lucky" items are real risks that did not bite this time; they usually deserve action items too.
69
+
70
+ ## 6. Action items
71
+
72
+ Each item fixes a cause or contributing factor, and the table must show which.
73
+
74
+ ```
75
+ | # | Action | Type | Addresses | Owner | Due | Ticket |
76
+ |---|--------|------|-----------|-------|-----|--------|
77
+ | 1 | Alert on checkout p99 > 1 s for 5 min | Detect | CF2 | <person> | 2026-03-18 | OPS-412 |
78
+ | 2 | Config changes to pool size trigger rolling restart | Prevent | RC1 | <person> | 2026-03-31 | PLAT-88 |
79
+ ```
80
+
81
+ Rules:
82
+
83
+ - Types: Prevent, Detect, Mitigate, Process. Prefer system changes over "be more careful" or "add a reminder to the wiki".
84
+ - Every item has one named owner, a due date and a ticket. "Team" is not an owner.
85
+ - Keep it short: five to ten items that will actually be done beat thirty that will not. Mark each as must-do or nice-to-have.
86
+ - If an item has no owner, list it under "Unowned" and **ask the user** who takes it.
87
+
88
+ ## 7. Follow-up
89
+
90
+ - Schedule a review date (often two to four weeks out) to check action items are closed.
91
+ - Note whether the runbook used during the incident needs updating; the `runbook-writing` skill covers that.
92
+ - Record where the postmortem is published and who must sign off before it goes wider.
93
+
94
+ ## Output format
95
+
96
+ ```
97
+ # Postmortem: <short title> (<date>, <severity>)
98
+ Status: Draft | In review | Final Authors: <roles or names> Incident commander: <role>
99
+ ## Summary
100
+ ## Impact
101
+ ## Timeline (UTC)
102
+ ## Root causes and contributing factors (RC1.., CF1.., trigger)
103
+ ## What went well / What went poorly / Where we got lucky
104
+ ## Action items (table)
105
+ ## Follow-up (review date, sign-off, related docs)
106
+ ## Appendix (graphs, log excerpts, links)
107
+ ```
108
+
109
+ ## Reviewing a draft postmortem
110
+
111
+ Report problems most serious first: blame language, missing impact numbers, timeline gaps (no detection time), a single "root cause" that is really the trigger or human error, action items without owner, date or link to a cause, and missing follow-up date.
112
+
113
+ ## Never
114
+
115
+ - Never name an individual as the cause.
116
+ - Never invent timestamps, impact numbers or log lines. Leave a `TODO: confirm` where data is missing.
117
+ - Never publish customer data, credentials or internal hostnames in a customer-facing version.
118
+ - Never close the postmortem with action items still unowned.
@@ -0,0 +1,14 @@
1
+ {
2
+ "should_trigger": [
3
+ "Yesterday's checkout outage is resolved. Write the blameless postmortem from this Slack export and the deploy log",
4
+ "Turn our incident channel notes into a timeline with time to detect and time to mitigate, plus root causes",
5
+ "Review this incident report draft, I think it blames the on-call engineer and the action items have no owners",
6
+ "We had a near miss where a migration almost dropped the users table; write it up as a post-incident review"
7
+ ],
8
+ "should_not_trigger": [
9
+ "The API is returning 500s right now, help me figure out what's wrong",
10
+ "Write a runbook for what on-call should do when the disk-full alert fires",
11
+ "Plan a canary rollout with automatic rollback for the new payment service",
12
+ "Write a handoff note so tomorrow's session can continue this refactor"
13
+ ]
14
+ }
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: inventory-demand-planning
3
+ description: Inventory and demand planning for stocked SKUs, from cleaning sales history and picking a simple forecast to sizing safety stock for a target service level, setting reorder points and order quantities from lead times, ranking items with ABC analysis, and weighing stockout cost against overstock cost, built as a spreadsheet or a small script. Use when deciding how much stock to hold or when to reorder, building a replenishment model or reorder report, or explaining why a SKU keeps running out or piling up.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. Works with a spreadsheet, CSV exports or a short script in the project's language; no external services.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: business
9
+ kete-loom/risk: writes-files
10
+ kete-loom/owner: "Kete-org"
11
+ ---
12
+
13
+ # Inventory and demand planning
14
+
15
+ Answer two questions per SKU and location: **when to reorder** (reorder point) and **how much** (order quantity), with a safety stock that matches a stated service level. Keep the model simple enough that the planner can audit every cell.
16
+
17
+ Formulas, z-values and a worked example are in `references/formulas.md`. Read it before writing any formula.
18
+
19
+ ## 0. Gather inputs, or stop and ask
20
+
21
+ For each SKU (and each warehouse if stock is not shared) you need:
22
+
23
+ 1. Demand history at a fixed grain (daily or weekly units), ideally 12+ months to see seasonality.
24
+ 2. Lead time from order to available-to-sell, in the same time unit, with its variability if the supplier is unreliable.
25
+ 3. Unit cost, holding cost rate (typically quoted as a % of unit cost per year), and ordering cost per purchase order.
26
+ 4. Constraints: MOQ, case pack, pallet or container quantity, shelf life, budget or space caps.
27
+ 5. The service-level target and who owns it.
28
+
29
+ If lead time, MOQ or the service-level target is missing, **stop and ask the user**. Do not invent supplier terms.
30
+
31
+ ## 1. Clean demand before forecasting
32
+
33
+ - Use **demand, not sales**. Days with zero stock show zero sales but not zero demand; flag them and either exclude them or estimate lost sales.
34
+ - Remove or tag one-offs: bulk B2B orders, promotions, data errors, returns booked as negative sales.
35
+ - Keep units consistent (eaches vs cases). Note any SKU replacements and join their history.
36
+
37
+ ## 2. Forecast with the simplest method that works
38
+
39
+ | Pattern | Method |
40
+ |---|---|
41
+ | Stable, no trend | Moving average (4 to 12 periods) or simple exponential smoothing |
42
+ | Trend | Holt (double) exponential smoothing |
43
+ | Clear seasonality, 2+ years of data | Seasonal index on top of a baseline, or Holt-Winters |
44
+ | Intermittent (many zero periods) | Croston-style or just a min/max rule; do not fit a smooth curve |
45
+ | New item, no history | Analogue SKU scaled by the user's launch estimate; mark it as a judgement |
46
+
47
+ Backtest on a holdout (the last 8 to 13 weeks): report MAE and bias per SKU. A forecast with persistent bias is worse than a noisy one; fix bias first. Do not pick a complex model unless it beats the moving average on the holdout.
48
+
49
+ ## 3. ABC (and XYZ) classification
50
+
51
+ 1. Rank SKUs by annual consumption value (annual units x unit cost).
52
+ 2. A = top ~80% of value, B = next ~15%, C = rest. These cut-offs are conventions; confirm them with the user.
53
+ 3. Optional XYZ by demand variability (coefficient of variation) so A-X items get tight control and C-Z items get simple rules.
54
+ 4. Use classes to set service levels and review frequency, for example A 98%, B 95%, C 90%, and review A items weekly.
55
+
56
+ ## 4. Safety stock, reorder point, order quantity
57
+
58
+ 1. Pick the service-level type and say which: **cycle service level** (probability of no stockout per cycle) is what the z-score formula gives. Fill rate is different and needs the loss function.
59
+ 2. Safety stock from the formula in `references/formulas.md`, including lead-time variability when the supplier is late often.
60
+ 3. Reorder point = expected demand over lead time + safety stock (add the review period for periodic review).
61
+ 4. Order quantity: EOQ as a starting point, then round up to MOQ and case pack, and cap by shelf life and budget.
62
+ 5. Compare **inventory position** (on hand + on order - backorders - allocated), not on-hand, with the reorder point.
63
+
64
+ ## 5. Stockout vs overstock trade-off
65
+
66
+ - State both costs per SKU: stockout = lost margin + expediting + customer churn; overstock = holding + obsolescence + markdown.
67
+ - For seasonal or perishable one-shot buys use the newsvendor critical ratio: underage cost / (underage + overage cost).
68
+ - Show the user a table of service level vs average inventory value; let them choose. Going from 95% to 99% usually costs far more stock than 90% to 95%.
69
+
70
+ ## 6. Build the model
71
+
72
+ Spreadsheet layout: one inputs sheet (per SKU parameters), one demand sheet (history, cleaned flags), one calc sheet (forecast, sigma, SS, ROP, EOQ), one output sheet (reorder report). No hard-coded numbers inside formulas; reference input cells.
73
+
74
+ In code: read CSV exports, compute per SKU, write a reorder report CSV. Add a test on one hand-checked SKU (the worked example in `references/formulas.md`).
75
+
76
+ ## Rules
77
+
78
+ - Never place or change purchase orders, or write to an ERP or store inventory system, without the user's explicit go-ahead.
79
+ - Never treat stockout periods as zero demand.
80
+ - Never mix time units: demand per week with lead time in days is the most common bug.
81
+ - Do not promise a service level the data cannot support; say when history is too short.
82
+
83
+ ## Report
84
+
85
+ ```
86
+ SKU | class | avg demand/period | sigma | lead time | service level | safety stock | reorder point | order qty | on hand | position | action
87
+ ```
88
+
89
+ Then: method used and holdout MAE/bias, assumptions the user must confirm, SKUs with too little data, and the stock-value impact of the chosen service levels.
@@ -0,0 +1,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "Work out safety stock and reorder points for our 400 SKUs from this weekly sales CSV",
4
+ "Build me a replenishment spreadsheet that tells the buyer when to reorder and how many cases",
5
+ "Do an ABC analysis of our product range and suggest service levels per class",
6
+ "Our best seller keeps stocking out even though the supplier lead time is only three weeks, what is wrong with our reorder rule?",
7
+ "How much extra stock does going from 95% to 99% service level cost us on the A items?"
8
+ ],
9
+ "should_not_trigger": [
10
+ "A pallet of our goods arrived damaged, help me file a claim with the freight carrier",
11
+ "Sequence next week's jobs across our three CNC machines to cut changeovers",
12
+ "Set up grading rules for returned items so we know what to restock and what to scrap",
13
+ "Find the right HS code for our stainless steel water bottles before we ship to Canada",
14
+ "Build a revenue dashboard with weekly active customers and churn"
15
+ ]
16
+ }
@@ -0,0 +1,62 @@
1
+ # Inventory formulas
2
+
3
+ Use one time unit (days or weeks) for every term.
4
+
5
+ ## Symbols
6
+
7
+ - `d` average demand per period, `sigma_d` standard deviation of demand per period
8
+ - `L` average lead time in periods, `sigma_L` standard deviation of lead time
9
+ - `R` review period (periodic review only)
10
+ - `z` standard normal quantile for the cycle service level
11
+ - `D` annual demand, `S` cost per order, `H` holding cost per unit per year (= unit cost x holding rate)
12
+
13
+ ## z for cycle service level
14
+
15
+ | CSL | z |
16
+ |---|---|
17
+ | 90% | 1.28 |
18
+ | 95% | 1.645 |
19
+ | 97.5% | 1.96 |
20
+ | 98% | 2.05 |
21
+ | 99% | 2.33 |
22
+ | 99.5% | 2.58 |
23
+
24
+ Spreadsheet: `=NORM.S.INV(0.95)`. Python: `scipy.stats.norm.ppf(0.95)` or `statistics.NormalDist().inv_cdf(0.95)` (standard library).
25
+
26
+ ## Safety stock
27
+
28
+ - Demand varies, lead time fixed: `SS = z * sigma_d * sqrt(L)`
29
+ - Both vary (independent): `SS = z * sqrt(L * sigma_d^2 + d^2 * sigma_L^2)`
30
+ - Periodic review: replace `L` with `L + R`.
31
+
32
+ These assume roughly normal demand. For intermittent or very skewed demand, use an empirical percentile of lead-time demand from history instead.
33
+
34
+ ## Reorder point
35
+
36
+ - Continuous review: `ROP = d * L + SS`
37
+ - Periodic review order-up-to level: `S_max = d * (L + R) + SS`; order `S_max - inventory position`.
38
+
39
+ ## Economic order quantity
40
+
41
+ `EOQ = sqrt(2 * D * S / H)`
42
+
43
+ Round up to MOQ and case pack. EOQ is flat near its optimum, so rounding costs little.
44
+
45
+ ## Newsvendor (single buy)
46
+
47
+ Critical ratio `CR = Cu / (Cu + Co)`, where `Cu` = margin lost per unit short and `Co` = cost per unit left over (cost minus salvage). Order the demand quantile at `CR`: `Q = mean + z(CR) * sigma` for normal demand.
48
+
49
+ ## Forecast accuracy
50
+
51
+ - `MAE = mean(|actual - forecast|)`
52
+ - `Bias = sum(forecast - actual) / sum(actual)`; positive means over-forecasting.
53
+ - Avoid MAPE on low-volume SKUs; zero actuals make it undefined.
54
+
55
+ ## Worked example (use as a test case)
56
+
57
+ Weekly demand `d = 100`, `sigma_d = 20`, lead time `L = 4` weeks fixed, CSL 95% (`z = 1.645`).
58
+
59
+ - `SS = 1.645 * 20 * sqrt(4) = 65.8`, round up to 66
60
+ - `ROP = 100 * 4 + 66 = 466`
61
+
62
+ With `D = 5200`, `S = 50`, unit cost 10, holding rate 25% (`H = 2.5`): `EOQ = sqrt(2 * 5200 * 50 / 2.5) = sqrt(208000) = 456.1`, so about 456 before rounding to case pack.