ai-playbook 1.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 (424) hide show
  1. package/README.md +146 -0
  2. package/agents/README.md +168 -0
  3. package/agents/SKILL.md +633 -0
  4. package/agents/architect/AGENT.md +44 -0
  5. package/agents/architect/README.md +5 -0
  6. package/agents/coder/AGENT.md +43 -0
  7. package/agents/coder/README.md +5 -0
  8. package/agents/debugger/AGENT.md +42 -0
  9. package/agents/debugger/README.md +6 -0
  10. package/agents/devops/AGENT.md +43 -0
  11. package/agents/devops/README.md +5 -0
  12. package/agents/documentation/AGENT.md +45 -0
  13. package/agents/documentation/README.md +5 -0
  14. package/agents/examples.md +550 -0
  15. package/agents/performance/AGENT.md +45 -0
  16. package/agents/performance/README.md +6 -0
  17. package/agents/planner/AGENT.md +44 -0
  18. package/agents/planner/README.md +6 -0
  19. package/agents/product-owner/AGENT.md +46 -0
  20. package/agents/product-owner/README.md +6 -0
  21. package/agents/refactorer/AGENT.md +44 -0
  22. package/agents/refactorer/README.md +6 -0
  23. package/agents/release-manager/AGENT.md +45 -0
  24. package/agents/release-manager/README.md +6 -0
  25. package/agents/researcher/AGENT.md +44 -0
  26. package/agents/researcher/README.md +6 -0
  27. package/agents/reviewer/AGENT.md +43 -0
  28. package/agents/reviewer/README.md +6 -0
  29. package/agents/security/AGENT.md +46 -0
  30. package/agents/security/README.md +6 -0
  31. package/agents/support/AGENT.md +45 -0
  32. package/agents/support/README.md +6 -0
  33. package/agents/tester/AGENT.md +46 -0
  34. package/agents/tester/README.md +5 -0
  35. package/bin/cli.js +186 -0
  36. package/commands/README.md +266 -0
  37. package/commands/build.md +135 -0
  38. package/commands/clean.md +126 -0
  39. package/commands/deploy-prod.md +171 -0
  40. package/commands/deploy-staging.md +147 -0
  41. package/commands/deps.md +169 -0
  42. package/commands/dev.md +132 -0
  43. package/commands/format.md +142 -0
  44. package/commands/lint.md +125 -0
  45. package/commands/migrate.md +159 -0
  46. package/commands/release.md +183 -0
  47. package/commands/rollback.md +152 -0
  48. package/commands/seed.md +178 -0
  49. package/commands/setup.md +109 -0
  50. package/commands/test.md +134 -0
  51. package/commands/validate.md +147 -0
  52. package/context/README.md +7 -0
  53. package/context/aem.md +47 -0
  54. package/context/architecture.md +51 -0
  55. package/context/bullminder.md +57 -0
  56. package/context/coding-style.md +42 -0
  57. package/context/communication.md +53 -0
  58. package/context/company.md +46 -0
  59. package/context/engineering.md +63 -0
  60. package/context/project-template.md +71 -0
  61. package/context/trading.md +52 -0
  62. package/hooks/README.md +326 -0
  63. package/hooks/code-review/README.md +6 -0
  64. package/hooks/code-review/check-coverage.md +101 -0
  65. package/hooks/custom/README.md +6 -0
  66. package/hooks/custom/project-specific-hooks.md +273 -0
  67. package/hooks/deployment/README.md +6 -0
  68. package/hooks/deployment/health-check.md +102 -0
  69. package/hooks/deployment/pre-deploy-check.md +84 -0
  70. package/hooks/documentation/README.md +6 -0
  71. package/hooks/documentation/update-changelog.md +146 -0
  72. package/hooks/post-task/README.md +5 -0
  73. package/hooks/post-task/run-tests.md +61 -0
  74. package/hooks/pre-commit/README.md +6 -0
  75. package/hooks/pre-commit/format.md +63 -0
  76. package/hooks/pre-commit/lint.md +62 -0
  77. package/hooks/pre-commit/type-check.md +78 -0
  78. package/hooks/pre-task/README.md +6 -0
  79. package/hooks/pre-task/check-branch.md +48 -0
  80. package/hooks/pre-task/validate-environment.md +48 -0
  81. package/hooks/security-check/README.md +6 -0
  82. package/hooks/security-check/dependency-audit.md +85 -0
  83. package/hooks/security-check/secrets-scan.md +77 -0
  84. package/hooks/test-before-finish/README.md +6 -0
  85. package/hooks/test-before-finish/run-all-tests.md +128 -0
  86. package/index.js +69 -0
  87. package/knowledge/README.md +33 -0
  88. package/knowledge/ai-agents.md +74 -0
  89. package/knowledge/decision-making.md +73 -0
  90. package/knowledge/documentation.md +67 -0
  91. package/knowledge/engineering-principles.md +65 -0
  92. package/knowledge/product-discovery.md +68 -0
  93. package/knowledge/security-privacy.md +54 -0
  94. package/knowledge/testing-quality.md +63 -0
  95. package/package.json +63 -0
  96. package/patterns/README.md +7 -0
  97. package/prompts/README.md +208 -0
  98. package/prompts/architect/README.md +96 -0
  99. package/prompts/architect/design-system.md +140 -0
  100. package/prompts/debugger/README.md +96 -0
  101. package/prompts/debugger/diagnose-issue.md +141 -0
  102. package/prompts/developer/README.md +129 -0
  103. package/prompts/developer/fix-bug.md +136 -0
  104. package/prompts/developer/implement-feature.md +133 -0
  105. package/prompts/product-owner/README.md +116 -0
  106. package/prompts/product-owner/define-feature.md +145 -0
  107. package/prompts/reviewer/README.md +91 -0
  108. package/prompts/reviewer/code-review.md +129 -0
  109. package/prompts/support/README.md +154 -0
  110. package/prompts/support/resolve-issue.md +124 -0
  111. package/roles/README.md +6 -0
  112. package/roles/design-architect/README.md +98 -0
  113. package/roles/design-architect/accessibility/README.md +33 -0
  114. package/roles/design-architect/accessibility/checklists.md +29 -0
  115. package/roles/design-architect/accessibility/examples.md +35 -0
  116. package/roles/design-architect/checklists.md +76 -0
  117. package/roles/design-architect/component-library/README.md +35 -0
  118. package/roles/design-architect/component-library/checklists.md +29 -0
  119. package/roles/design-architect/component-library/examples.md +35 -0
  120. package/roles/design-architect/design-system/README.md +35 -0
  121. package/roles/design-architect/design-system/checklists.md +27 -0
  122. package/roles/design-architect/design-system/examples.md +41 -0
  123. package/roles/design-architect/examples/README.md +31 -0
  124. package/roles/design-architect/examples/checklists.md +26 -0
  125. package/roles/design-architect/examples/examples.md +46 -0
  126. package/roles/design-architect/examples.md +90 -0
  127. package/roles/design-architect/figma/README.md +33 -0
  128. package/roles/design-architect/figma/checklists.md +27 -0
  129. package/roles/design-architect/figma/examples.md +38 -0
  130. package/roles/design-architect/responsibilities.md +73 -0
  131. package/roles/design-architect/responsive/README.md +34 -0
  132. package/roles/design-architect/responsive/checklists.md +26 -0
  133. package/roles/design-architect/responsive/examples.md +39 -0
  134. package/roles/design-architect/role.md +129 -0
  135. package/roles/design-architect/skill-map.md +42 -0
  136. package/roles/design-architect/triggers.md +110 -0
  137. package/roles/design-architect/ui/README.md +36 -0
  138. package/roles/design-architect/ui/checklists.md +29 -0
  139. package/roles/design-architect/ui/examples.md +28 -0
  140. package/roles/design-architect/usability/README.md +34 -0
  141. package/roles/design-architect/usability/checklists.md +28 -0
  142. package/roles/design-architect/usability/examples.md +31 -0
  143. package/roles/design-architect/ux/README.md +36 -0
  144. package/roles/design-architect/ux/checklists.md +28 -0
  145. package/roles/design-architect/ux/examples.md +37 -0
  146. package/roles/design-architect/wireframes/README.md +34 -0
  147. package/roles/design-architect/wireframes/checklists.md +25 -0
  148. package/roles/design-architect/wireframes/examples.md +32 -0
  149. package/roles/design-architect/workflow.md +80 -0
  150. package/roles/devops/README.md +101 -0
  151. package/roles/devops/ansible/README.md +6 -0
  152. package/roles/devops/checklists.md +413 -0
  153. package/roles/devops/ci-cd/README.md +169 -0
  154. package/roles/devops/ci-cd/checklists.md +289 -0
  155. package/roles/devops/ci-cd/examples.md +429 -0
  156. package/roles/devops/cloud-platforms/README.md +109 -0
  157. package/roles/devops/cost-optimization/README.md +131 -0
  158. package/roles/devops/disaster-recovery/README.md +118 -0
  159. package/roles/devops/docker/README.md +6 -0
  160. package/roles/devops/examples/README.md +6 -0
  161. package/roles/devops/examples.md +775 -0
  162. package/roles/devops/github-actions/README.md +6 -0
  163. package/roles/devops/helm/README.md +6 -0
  164. package/roles/devops/infrastructure-as-code/README.md +160 -0
  165. package/roles/devops/infrastructure-as-code/checklists.md +124 -0
  166. package/roles/devops/jenkins/README.md +6 -0
  167. package/roles/devops/kubernetes/README.md +150 -0
  168. package/roles/devops/kubernetes/checklists.md +192 -0
  169. package/roles/devops/kubernetes/examples.md +189 -0
  170. package/roles/devops/monitoring/README.md +93 -0
  171. package/roles/devops/networking/README.md +83 -0
  172. package/roles/devops/performance/README.md +104 -0
  173. package/roles/devops/responsibilities.md +95 -0
  174. package/roles/devops/role.md +130 -0
  175. package/roles/devops/security/README.md +126 -0
  176. package/roles/devops/skill-map.md +162 -0
  177. package/roles/devops/terraform/README.md +6 -0
  178. package/roles/devops/triggers.md +241 -0
  179. package/roles/devops/workflow.md +197 -0
  180. package/roles/qa/README.md +16 -0
  181. package/roles/qa/api-testing/README.md +6 -0
  182. package/roles/qa/automation/README.md +6 -0
  183. package/roles/qa/checklists.md +24 -0
  184. package/roles/qa/examples/README.md +6 -0
  185. package/roles/qa/examples.md +27 -0
  186. package/roles/qa/performance/README.md +6 -0
  187. package/roles/qa/playwright/README.md +6 -0
  188. package/roles/qa/responsibilities.md +16 -0
  189. package/roles/qa/role.md +47 -0
  190. package/roles/qa/selenium/README.md +6 -0
  191. package/roles/qa/skill-map.md +14 -0
  192. package/roles/qa/triggers.md +10 -0
  193. package/roles/qa/workflow.md +9 -0
  194. package/roles/software-architect/README.md +16 -0
  195. package/roles/software-architect/agents/README.md +6 -0
  196. package/roles/software-architect/ai-architecture/README.md +6 -0
  197. package/roles/software-architect/aws/README.md +6 -0
  198. package/roles/software-architect/azure/README.md +6 -0
  199. package/roles/software-architect/caching/README.md +6 -0
  200. package/roles/software-architect/checklists.md +25 -0
  201. package/roles/software-architect/cloud/README.md +6 -0
  202. package/roles/software-architect/database-design/README.md +6 -0
  203. package/roles/software-architect/diagrams/README.md +6 -0
  204. package/roles/software-architect/distributed-systems/README.md +7 -0
  205. package/roles/software-architect/docker/README.md +6 -0
  206. package/roles/software-architect/event-driven/README.md +7 -0
  207. package/roles/software-architect/examples/README.md +6 -0
  208. package/roles/software-architect/examples.md +22 -0
  209. package/roles/software-architect/gcp/README.md +6 -0
  210. package/roles/software-architect/kubernetes/README.md +6 -0
  211. package/roles/software-architect/messaging/README.md +6 -0
  212. package/roles/software-architect/rag/README.md +7 -0
  213. package/roles/software-architect/responsibilities.md +17 -0
  214. package/roles/software-architect/role.md +46 -0
  215. package/roles/software-architect/scalability/README.md +6 -0
  216. package/roles/software-architect/security/README.md +6 -0
  217. package/roles/software-architect/skill-map.md +15 -0
  218. package/roles/software-architect/system-design/README.md +6 -0
  219. package/roles/software-architect/triggers.md +10 -0
  220. package/roles/software-architect/vector-db/README.md +6 -0
  221. package/roles/software-architect/workflow.md +9 -0
  222. package/roles/software-developer/README.md +116 -0
  223. package/roles/software-developer/api/README.md +365 -0
  224. package/roles/software-developer/api/checklist.md +131 -0
  225. package/roles/software-developer/api/examples.md +459 -0
  226. package/roles/software-developer/authentication/README.md +26 -0
  227. package/roles/software-developer/authentication/checklists.md +22 -0
  228. package/roles/software-developer/authentication/examples.md +32 -0
  229. package/roles/software-developer/authorization/README.md +26 -0
  230. package/roles/software-developer/authorization/checklists.md +21 -0
  231. package/roles/software-developer/authorization/examples.md +27 -0
  232. package/roles/software-developer/backend/README.md +26 -0
  233. package/roles/software-developer/backend/checklists.md +21 -0
  234. package/roles/software-developer/backend/examples.md +21 -0
  235. package/roles/software-developer/cache/README.md +25 -0
  236. package/roles/software-developer/cache/checklists.md +21 -0
  237. package/roles/software-developer/cache/examples.md +22 -0
  238. package/roles/software-developer/checklists.md +122 -0
  239. package/roles/software-developer/code-review/README.md +23 -0
  240. package/roles/software-developer/code-review/checklists.md +22 -0
  241. package/roles/software-developer/code-review/examples.md +20 -0
  242. package/roles/software-developer/database/README.md +27 -0
  243. package/roles/software-developer/database/checklists.md +21 -0
  244. package/roles/software-developer/database/examples.md +27 -0
  245. package/roles/software-developer/debugging/README.md +24 -0
  246. package/roles/software-developer/debugging/checklists.md +20 -0
  247. package/roles/software-developer/debugging/examples.md +28 -0
  248. package/roles/software-developer/examples/README.md +22 -0
  249. package/roles/software-developer/examples/checklists.md +8 -0
  250. package/roles/software-developer/examples/examples.md +25 -0
  251. package/roles/software-developer/examples.md +378 -0
  252. package/roles/software-developer/frontend/README.md +76 -0
  253. package/roles/software-developer/frontend/accessibility/README.md +136 -0
  254. package/roles/software-developer/frontend/accessibility/best-practices.md +368 -0
  255. package/roles/software-developer/frontend/code-quality/README.md +136 -0
  256. package/roles/software-developer/frontend/code-quality/best-practices.md +309 -0
  257. package/roles/software-developer/frontend/components/README.md +65 -0
  258. package/roles/software-developer/frontend/components/best-practices.md +273 -0
  259. package/roles/software-developer/frontend/debugging/README.md +149 -0
  260. package/roles/software-developer/frontend/debugging/best-practices.md +329 -0
  261. package/roles/software-developer/frontend/examples/README.md +19 -0
  262. package/roles/software-developer/frontend/examples/checklists.md +8 -0
  263. package/roles/software-developer/frontend/examples/examples.md +17 -0
  264. package/roles/software-developer/frontend/logging-observability/README.md +196 -0
  265. package/roles/software-developer/frontend/logging-observability/best-practices.md +430 -0
  266. package/roles/software-developer/frontend/performance/README.md +99 -0
  267. package/roles/software-developer/frontend/performance/best-practices.md +350 -0
  268. package/roles/software-developer/frontend/state-management/README.md +85 -0
  269. package/roles/software-developer/frontend/state-management/best-practices.md +344 -0
  270. package/roles/software-developer/frontend/testing/README.md +114 -0
  271. package/roles/software-developer/frontend/testing/best-practices.md +272 -0
  272. package/roles/software-developer/fullstack/README.md +25 -0
  273. package/roles/software-developer/fullstack/checklists.md +19 -0
  274. package/roles/software-developer/fullstack/examples.md +14 -0
  275. package/roles/software-developer/graphql/README.md +24 -0
  276. package/roles/software-developer/graphql/checklists.md +20 -0
  277. package/roles/software-developer/graphql/examples.md +24 -0
  278. package/roles/software-developer/integration-tests/README.md +25 -0
  279. package/roles/software-developer/integration-tests/checklists.md +20 -0
  280. package/roles/software-developer/integration-tests/examples.md +18 -0
  281. package/roles/software-developer/java/README.md +24 -0
  282. package/roles/software-developer/java/checklists.md +16 -0
  283. package/roles/software-developer/java/examples.md +22 -0
  284. package/roles/software-developer/javascript/README.md +24 -0
  285. package/roles/software-developer/javascript/checklists.md +15 -0
  286. package/roles/software-developer/javascript/examples.md +18 -0
  287. package/roles/software-developer/logging/README.md +105 -0
  288. package/roles/software-developer/logging/checklists.md +48 -0
  289. package/roles/software-developer/logging/examples.md +135 -0
  290. package/roles/software-developer/messaging/README.md +24 -0
  291. package/roles/software-developer/messaging/checklists.md +21 -0
  292. package/roles/software-developer/messaging/examples.md +26 -0
  293. package/roles/software-developer/microservices/README.md +25 -0
  294. package/roles/software-developer/microservices/checklists.md +21 -0
  295. package/roles/software-developer/microservices/examples.md +21 -0
  296. package/roles/software-developer/node/README.md +25 -0
  297. package/roles/software-developer/node/checklists.md +15 -0
  298. package/roles/software-developer/node/examples.md +15 -0
  299. package/roles/software-developer/nosql/README.md +24 -0
  300. package/roles/software-developer/nosql/checklists.md +21 -0
  301. package/roles/software-developer/nosql/examples.md +20 -0
  302. package/roles/software-developer/observability/README.md +25 -0
  303. package/roles/software-developer/observability/checklists.md +21 -0
  304. package/roles/software-developer/observability/examples.md +22 -0
  305. package/roles/software-developer/performance/README.md +26 -0
  306. package/roles/software-developer/performance/checklists.md +20 -0
  307. package/roles/software-developer/performance/examples.md +20 -0
  308. package/roles/software-developer/python/README.md +25 -0
  309. package/roles/software-developer/python/checklists.md +15 -0
  310. package/roles/software-developer/python/examples.md +17 -0
  311. package/roles/software-developer/react/README.md +24 -0
  312. package/roles/software-developer/react/checklists.md +15 -0
  313. package/roles/software-developer/react/examples.md +22 -0
  314. package/roles/software-developer/refactoring/README.md +23 -0
  315. package/roles/software-developer/refactoring/checklists.md +21 -0
  316. package/roles/software-developer/refactoring/examples.md +11 -0
  317. package/roles/software-developer/responsibilities.md +58 -0
  318. package/roles/software-developer/role.md +127 -0
  319. package/roles/software-developer/skill-map.md +88 -0
  320. package/roles/software-developer/springboot/README.md +25 -0
  321. package/roles/software-developer/springboot/checklists.md +15 -0
  322. package/roles/software-developer/springboot/examples.md +21 -0
  323. package/roles/software-developer/sql/README.md +24 -0
  324. package/roles/software-developer/sql/checklists.md +22 -0
  325. package/roles/software-developer/sql/examples.md +20 -0
  326. package/roles/software-developer/testing/README.md +25 -0
  327. package/roles/software-developer/testing/checklists.md +21 -0
  328. package/roles/software-developer/testing/examples.md +19 -0
  329. package/roles/software-developer/triggers.md +550 -0
  330. package/roles/software-developer/typescript/README.md +25 -0
  331. package/roles/software-developer/typescript/checklists.md +15 -0
  332. package/roles/software-developer/typescript/examples.md +18 -0
  333. package/roles/software-developer/unit-tests/README.md +24 -0
  334. package/roles/software-developer/unit-tests/checklists.md +19 -0
  335. package/roles/software-developer/unit-tests/examples.md +22 -0
  336. package/roles/software-developer/workflow.md +196 -0
  337. package/roles/sre/README.md +16 -0
  338. package/roles/sre/alerts/README.md +6 -0
  339. package/roles/sre/availability/README.md +6 -0
  340. package/roles/sre/chaos/README.md +6 -0
  341. package/roles/sre/checklists.md +24 -0
  342. package/roles/sre/examples/README.md +6 -0
  343. package/roles/sre/examples.md +19 -0
  344. package/roles/sre/observability/README.md +6 -0
  345. package/roles/sre/reliability/README.md +6 -0
  346. package/roles/sre/responsibilities.md +16 -0
  347. package/roles/sre/role.md +46 -0
  348. package/roles/sre/skill-map.md +14 -0
  349. package/roles/sre/slos/README.md +6 -0
  350. package/roles/sre/triggers.md +10 -0
  351. package/roles/sre/workflow.md +9 -0
  352. package/roles/support-engineer/README.md +16 -0
  353. package/roles/support-engineer/checklists.md +24 -0
  354. package/roles/support-engineer/datadog/README.md +6 -0
  355. package/roles/support-engineer/examples/README.md +6 -0
  356. package/roles/support-engineer/examples.md +17 -0
  357. package/roles/support-engineer/incident-response/README.md +6 -0
  358. package/roles/support-engineer/kubernetes/README.md +6 -0
  359. package/roles/support-engineer/linux/README.md +6 -0
  360. package/roles/support-engineer/logs/README.md +6 -0
  361. package/roles/support-engineer/monitoring/README.md +6 -0
  362. package/roles/support-engineer/networking/README.md +6 -0
  363. package/roles/support-engineer/newrelic/README.md +6 -0
  364. package/roles/support-engineer/postmortem/README.md +6 -0
  365. package/roles/support-engineer/production/README.md +6 -0
  366. package/roles/support-engineer/responsibilities.md +16 -0
  367. package/roles/support-engineer/role.md +47 -0
  368. package/roles/support-engineer/root-cause-analysis/README.md +6 -0
  369. package/roles/support-engineer/runbooks/README.md +6 -0
  370. package/roles/support-engineer/skill-map.md +14 -0
  371. package/roles/support-engineer/splunk/README.md +6 -0
  372. package/roles/support-engineer/triggers.md +10 -0
  373. package/roles/support-engineer/troubleshooting/README.md +6 -0
  374. package/roles/support-engineer/workflow.md +9 -0
  375. package/setup.sh +204 -0
  376. package/skills/.claude/README.md +7 -0
  377. package/skills/README.md +21 -0
  378. package/skills/ai-agents/README.md +207 -0
  379. package/skills/ai-agents/examples.md +335 -0
  380. package/skills/ai-agents/skill.md +392 -0
  381. package/skills/architecture/README.md +198 -0
  382. package/skills/architecture/examples.md +316 -0
  383. package/skills/architecture/skill.md +189 -0
  384. package/skills/design-architecture/README.md +107 -0
  385. package/skills/design-architecture/examples.md +84 -0
  386. package/skills/design-architecture/skill.md +192 -0
  387. package/skills/devops/README.md +177 -0
  388. package/skills/devops/examples.md +376 -0
  389. package/skills/devops/skill.md +210 -0
  390. package/skills/documentation/README.md +182 -0
  391. package/skills/documentation/examples.md +364 -0
  392. package/skills/documentation/skill.md +200 -0
  393. package/skills/performance/README.md +177 -0
  394. package/skills/performance/examples.md +376 -0
  395. package/skills/performance/skill.md +199 -0
  396. package/skills/qa/README.md +106 -0
  397. package/skills/qa/examples.md +84 -0
  398. package/skills/qa/skill.md +384 -0
  399. package/skills/security/README.md +108 -0
  400. package/skills/security/examples.md +85 -0
  401. package/skills/security/skill.md +223 -0
  402. package/skills/software-development/README.md +239 -0
  403. package/skills/software-development/assessment.md +0 -0
  404. package/skills/software-development/checklists.md +0 -0
  405. package/skills/software-development/examples.md +375 -0
  406. package/skills/software-development/prompts.md +0 -0
  407. package/skills/software-development/skill.md +390 -0
  408. package/skills/software-development/templates/README.md +7 -0
  409. package/skills/software-development/templates/api-development.md +0 -0
  410. package/skills/software-development/templates/bug-fix.md +0 -0
  411. package/skills/software-development/templates/code-review.md +0 -0
  412. package/skills/software-development/templates/feature-implementation.md +0 -0
  413. package/skills/software-development/templates/llm-integration.md +0 -0
  414. package/skills/software-development/templates/performance-review.md +0 -0
  415. package/skills/software-development/templates/security-review.md +0 -0
  416. package/skills/software-development/templates/test-generation.md +0 -0
  417. package/skills/software-development/tools.md +0 -0
  418. package/skills/software-development/workflows.md +0 -0
  419. package/skills/sre/README.md +107 -0
  420. package/skills/sre/examples.md +379 -0
  421. package/skills/sre/skill.md +256 -0
  422. package/skills/support-engineering/README.md +107 -0
  423. package/skills/support-engineering/examples.md +85 -0
  424. package/skills/support-engineering/skill.md +103 -0
@@ -0,0 +1,350 @@
1
+ # Performance: Best Practices
2
+
3
+ Performance matters for user experience and business metrics. This guide covers how to identify bottlenecks and optimize strategically.
4
+
5
+ ## Measure First
6
+
7
+ Never optimize without data. Measurement prevents wasting time on non-problems.
8
+
9
+ ```javascript
10
+ // BAD: Premature optimization
11
+ function Component() {
12
+ // Guess: rendering might be slow, so memoize
13
+ const expensiveCalculation = useMemo(() => {
14
+ return someSimpleArray.length;
15
+ }, [someSimpleArray]);
16
+
17
+ // This optimization does nothing - adding complexity
18
+ }
19
+
20
+ // GOOD: Measure first, then optimize
21
+ function Component() {
22
+ // Add monitoring
23
+ const startTime = performance.now();
24
+
25
+ const result = expensiveCalculation(data);
26
+
27
+ const duration = performance.now() - startTime;
28
+ if (duration > 100) {
29
+ console.warn(`Slow operation: ${duration}ms`);
30
+ }
31
+
32
+ return <div>{result}</div>;
33
+ }
34
+
35
+ // Once you confirm it's slow, optimize:
36
+ function Component() {
37
+ const result = useMemo(
38
+ () => expensiveCalculation(data),
39
+ [data]
40
+ );
41
+
42
+ return <div>{result}</div>;
43
+ }
44
+
45
+ // Use Chrome DevTools Performance tab to identify bottlenecks
46
+ // Use React DevTools Profiler to measure component render times
47
+ ```
48
+
49
+ ## Code Splitting
50
+
51
+ Load code only when needed. This is especially important for large applications.
52
+
53
+ ```javascript
54
+ // BAD: Single large bundle (e.g., 500KB)
55
+ import AdminPanel from './admin/AdminPanel';
56
+ import Dashboard from './dashboard/Dashboard';
57
+ import Settings from './settings/Settings';
58
+
59
+ function App() {
60
+ return user.isAdmin ? <AdminPanel /> : <Dashboard />;
61
+ }
62
+ // Downloads AdminPanel even if user is not admin
63
+
64
+ // GOOD: Load admin panel only when needed
65
+ import Dashboard from './dashboard/Dashboard';
66
+ const AdminPanel = lazy(() => import('./admin/AdminPanel'));
67
+
68
+ function App() {
69
+ return (
70
+ <Suspense fallback={<div>Loading...</div>}>
71
+ {user.isAdmin ? <AdminPanel /> : <Dashboard />}
72
+ </Suspense>
73
+ );
74
+ }
75
+
76
+ // Route-based code splitting (most effective)
77
+ const Home = lazy(() => import('./pages/Home'));
78
+ const About = lazy(() => import('./pages/About'));
79
+
80
+ function App() {
81
+ return (
82
+ <Router>
83
+ <Suspense fallback={<div>Loading...</div>}>
84
+ <Routes>
85
+ <Route path="/" element={<Home />} />
86
+ <Route path="/about" element={<About />} />
87
+ </Routes>
88
+ </Suspense>
89
+ </Router>
90
+ );
91
+ }
92
+ ```
93
+
94
+ ## Memoization When It Matters
95
+
96
+ Only memoize when you have data showing the optimization helps.
97
+
98
+ ```javascript
99
+ // BAD: Premature memoization
100
+ const Button = React.memo(({ label }) => {
101
+ return <button>{label}</button>;
102
+ });
103
+
104
+ // GOOD: Memoize when:
105
+ // 1. Receives objects/functions that change on every render
106
+ // 2. Expensive render logic
107
+
108
+ function Parent() {
109
+ const [count, setCount] = useState(0);
110
+
111
+ // handleClick is recreated on every render
112
+ const handleClick = () => setCount(count + 1);
113
+
114
+ // Passing new function to memoized child defeats the purpose
115
+ return <Button onClick={handleClick} label="Click" />;
116
+ }
117
+
118
+ // FIX: Use useCallback to maintain referential equality
119
+ function Parent() {
120
+ const [count, setCount] = useState(0);
121
+
122
+ const handleClick = useCallback(() => {
123
+ setCount(count + 1);
124
+ }, [count]);
125
+
126
+ return (
127
+ <MemoButton onClick={handleClick} label="Click" />
128
+ );
129
+ }
130
+
131
+ const MemoButton = React.memo(({ onClick, label }) => {
132
+ return <button onClick={onClick}>{label}</button>;
133
+ });
134
+ ```
135
+
136
+ ## Virtual Lists for Large Data
137
+
138
+ Don't render thousands of items. Render only visible ones.
139
+
140
+ ```javascript
141
+ // BAD: Render 10,000 items (browser freezes)
142
+ function ItemList({ items }) {
143
+ return (
144
+ <ul>
145
+ {items.map(item => (
146
+ <li key={item.id}>{item.name}</li>
147
+ ))}
148
+ </ul>
149
+ );
150
+ }
151
+
152
+ const items = Array.from({ length: 10000 }, (_, i) => ({
153
+ id: i,
154
+ name: `Item ${i}`
155
+ }));
156
+
157
+ render(<ItemList items={items} />); // Freezes
158
+
159
+ // GOOD: Virtual list (render only visible items)
160
+ import { FixedSizeList } from 'react-window';
161
+
162
+ function ItemList({ items }) {
163
+ return (
164
+ <FixedSizeList
165
+ height={600}
166
+ itemCount={items.length}
167
+ itemSize={35}
168
+ width="100%"
169
+ >
170
+ {({ index, style }) => (
171
+ <div style={style}>
172
+ {items[index].name}
173
+ </div>
174
+ )}
175
+ </FixedSizeList>
176
+ );
177
+ }
178
+
179
+ // With 10,000 items, only ~20 are rendered at a time
180
+ ```
181
+
182
+ ## API Response Caching
183
+
184
+ Cache data to avoid redundant requests.
185
+
186
+ ```javascript
187
+ // BAD: Refetch same data repeatedly
188
+ function useUser(userId) {
189
+ const [user, setUser] = useState(null);
190
+
191
+ useEffect(() => {
192
+ // Fetches even if userId hasn't changed
193
+ fetch(`/api/users/${userId}`)
194
+ .then(r => r.json())
195
+ .then(setUser);
196
+ }, [userId]); // Missing dependencies could cause issues
197
+
198
+ return user;
199
+ }
200
+
201
+ // GOOD: Simple cache
202
+ const userCache = new Map();
203
+
204
+ function useUser(userId) {
205
+ const [user, setUser] = useState(null);
206
+
207
+ useEffect(() => {
208
+ if (userCache.has(userId)) {
209
+ setUser(userCache.get(userId));
210
+ return;
211
+ }
212
+
213
+ fetch(`/api/users/${userId}`)
214
+ .then(r => r.json())
215
+ .then(data => {
216
+ userCache.set(userId, data);
217
+ setUser(data);
218
+ });
219
+ }, [userId]);
220
+
221
+ return user;
222
+ }
223
+
224
+ // BETTER: Cache with TTL
225
+ function useCachedUser(userId, ttl = 5 * 60 * 1000) {
226
+ const [user, setUser] = useState(null);
227
+
228
+ useEffect(() => {
229
+ const cached = userCache.get(userId);
230
+ if (cached && Date.now() - cached.timestamp < ttl) {
231
+ setUser(cached.data);
232
+ return;
233
+ }
234
+
235
+ fetch(`/api/users/${userId}`)
236
+ .then(r => r.json())
237
+ .then(data => {
238
+ userCache.set(userId, { data, timestamp: Date.now() });
239
+ setUser(data);
240
+ });
241
+ }, [userId, ttl]);
242
+
243
+ return user;
244
+ }
245
+ ```
246
+
247
+ ## Network Optimization
248
+
249
+ Minimize network requests and payload size.
250
+
251
+ ```javascript
252
+ // BAD: Multiple requests
253
+ function Dashboard() {
254
+ const [user, setUser] = useState(null);
255
+ const [stats, setStats] = useState(null);
256
+ const [settings, setSettings] = useState(null);
257
+
258
+ useEffect(() => {
259
+ fetch('/api/user').then(r => r.json()).then(setUser);
260
+ fetch('/api/stats').then(r => r.json()).then(setStats);
261
+ fetch('/api/settings').then(r => r.json()).then(setSettings);
262
+ }, []);
263
+ // 3 requests when 1 would do
264
+ }
265
+
266
+ // GOOD: Single combined request
267
+ function Dashboard() {
268
+ const [data, setData] = useState(null);
269
+
270
+ useEffect(() => {
271
+ // Server returns combined data in one request
272
+ fetch('/api/dashboard').then(r => r.json()).then(setData);
273
+ }, []);
274
+
275
+ return data ? (
276
+ <>
277
+ <User data={data.user} />
278
+ <Stats data={data.stats} />
279
+ <Settings data={data.settings} />
280
+ </>
281
+ ) : null;
282
+ }
283
+
284
+ // Use compression (gzip/brotli) - server config
285
+ // Minimize payload size: only return necessary fields
286
+ // Use image optimization: lazy load, responsive images
287
+ ```
288
+
289
+ ## Monitoring Performance
290
+
291
+ Track performance in production.
292
+
293
+ ```javascript
294
+ // Log Core Web Vitals
295
+ function reportWebVitals() {
296
+ // Largest Contentful Paint
297
+ const observer = new PerformanceObserver((list) => {
298
+ const entries = list.getEntries();
299
+ const lastEntry = entries[entries.length - 1];
300
+ console.log('LCP:', lastEntry.startTime);
301
+ });
302
+ observer.observe({ entryTypes: ['largest-contentful-paint'] });
303
+
304
+ // Cumulative Layout Shift
305
+ let cls = 0;
306
+ const clsObserver = new PerformanceObserver((list) => {
307
+ for (const entry of list.getEntries()) {
308
+ if (!entry.hadRecentInput) {
309
+ cls += entry.value;
310
+ }
311
+ }
312
+ console.log('CLS:', cls);
313
+ });
314
+ clsObserver.observe({ entryTypes: ['layout-shift'] });
315
+ }
316
+
317
+ // Track custom metrics
318
+ function trackAPILatency(endpoint, duration) {
319
+ analytics.track('api_latency', {
320
+ endpoint,
321
+ duration_ms: duration,
322
+ timestamp: new Date().toISOString()
323
+ });
324
+
325
+ // Alert if slow
326
+ if (duration > 1000) {
327
+ console.warn(`Slow API call: ${endpoint} took ${duration}ms`);
328
+ }
329
+ }
330
+ ```
331
+
332
+ ## Performance Best Practices Checklist
333
+
334
+ - [ ] Measured performance before optimizing
335
+ - [ ] Code splitting used for large bundles
336
+ - [ ] Memoization only applied where beneficial (with data)
337
+ - [ ] Virtual lists used for large data sets
338
+ - [ ] API responses cached appropriately
339
+ - [ ] Unnecessary network requests eliminated
340
+ - [ ] Images optimized and lazy-loaded
341
+ - [ ] Bundle size monitored and controlled
342
+ - [ ] Performance metrics tracked in production
343
+ - [ ] No performance regressions introduced
344
+
345
+ ## Related Guidance
346
+
347
+ - `/code-quality` — clean code that's easier to optimize
348
+ - `/debugging` — profiling and identifying bottlenecks
349
+ - `/tools-setup` — performance measurement tools
350
+ - `/logging-observability` — monitoring in production
@@ -0,0 +1,85 @@
1
+ # State Management
2
+
3
+ Senior frontend developers manage state predictably, minimize it, and make data flow explicit.
4
+
5
+ ## Core Principles
6
+
7
+ - **Minimize State** — only what's necessary to render
8
+ - **Explicit Flow** — clear data flow from source to consumer
9
+ - **Immutability** — state changes create new objects, not mutations
10
+ - **Single Source of Truth** — avoid duplicating state
11
+ - **Predictability** — given same state + action, same result always
12
+
13
+ ## State Categories
14
+
15
+ ### Component State (Local)
16
+ - Form inputs, UI toggles, modals
17
+ - Use component state, hooks (useState)
18
+ - Not shared across components
19
+ - Simplest, preferred when isolated
20
+
21
+ ### Shared State (Global/Context)
22
+ - Authentication, theme, user preferences
23
+ - Shared across many components
24
+ - Use context, state management libraries
25
+ - Keep minimal, only truly global data
26
+
27
+ ### Server State (Remote)
28
+ - Data from API, database
29
+ - May be stale, needs sync
30
+ - Separate from UI state
31
+ - Cache invalidation critical
32
+
33
+ ### Derived State
34
+ - Computed from other state (totals, filters)
35
+ - Don't store separately; compute on demand
36
+ - Reduces bugs from state inconsistency
37
+
38
+ ## State Management Patterns
39
+
40
+ ### Redux / Flux Pattern
41
+ - Centralized store, actions, reducers
42
+ - Predictable, debuggable
43
+ - More boilerplate for simple cases
44
+ - Good for complex apps with many interactions
45
+
46
+ ### Context API
47
+ - Built-in React solution
48
+ - Good for global UI state
49
+ - Not ideal for frequently-changing data
50
+ - Simpler than Redux for small state
51
+
52
+ ### Hooks (useState, useReducer, useContext)
53
+ - Modern React approach
54
+ - Manage local and shared state
55
+ - Composable, reusable logic
56
+ - Preferred for new code
57
+
58
+ ### External Libraries (Zustand, Jotai, Recoil)
59
+ - Lighter than Redux
60
+ - Less boilerplate
61
+ - Good middle ground
62
+
63
+ ## Data Fetching & Caching
64
+
65
+ - Fetch on mount, cache result
66
+ - Refetch on demand (user action, interval)
67
+ - Invalidate cache when data changes
68
+ - Handle loading/error states explicitly
69
+ - Consider libraries: React Query, SWR for this
70
+
71
+ ## Anti-Patterns
72
+
73
+ - Prop drilling (pass through 3+ levels)
74
+ - Duplicating state in multiple places
75
+ - Storing derived state
76
+ - Mutating state directly
77
+ - Global state for everything
78
+ - Race conditions in async state updates
79
+ - Not handling error/loading states
80
+
81
+ ## Related Guidance
82
+
83
+ - `/components` — how state flows through components
84
+ - `/logging-observability` — tracking state changes
85
+ - `/testing` — testing state mutations