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,430 @@
1
+ # Logging & Observability: Best Practices
2
+
3
+ Good logging and observability let you understand what's happening in production. This guide covers what to log, how to structure logs, and how to make them actionable.
4
+
5
+ ## Structured Logging
6
+
7
+ Structured logs are parseable and queryable, unlike free-form text.
8
+
9
+ ```javascript
10
+ // BAD: Unstructured logging (hard to search/analyze)
11
+ console.log('User clicked button');
12
+ console.log('API request took 234ms');
13
+ console.log('Error loading data');
14
+
15
+ // GOOD: Structured logging
16
+ console.log(JSON.stringify({
17
+ event: 'button_clicked',
18
+ timestamp: new Date().toISOString(),
19
+ user_id: 123,
20
+ button_name: 'save'
21
+ }));
22
+
23
+ console.log(JSON.stringify({
24
+ event: 'api_request_completed',
25
+ timestamp: new Date().toISOString(),
26
+ endpoint: '/api/users/123',
27
+ duration_ms: 234,
28
+ status: 200
29
+ }));
30
+
31
+ console.error(JSON.stringify({
32
+ event: 'api_request_failed',
33
+ timestamp: new Date().toISOString(),
34
+ endpoint: '/api/users/123',
35
+ error_message: 'Network timeout',
36
+ error_code: 'NETWORK_TIMEOUT'
37
+ }));
38
+
39
+ // With structured logs, you can:
40
+ // - Filter: all events where user_id = 123
41
+ // - Aggregate: average duration_ms by endpoint
42
+ // - Alert: when error_count > 10 in 5 minutes
43
+ ```
44
+
45
+ ## Log Levels
46
+
47
+ Use the right level for each log message.
48
+
49
+ ```javascript
50
+ // DEBUG: Low-level technical information
51
+ // - Variable values during development
52
+ // - Function entry/exit
53
+ // - Detailed state changes
54
+ // Only visible in development or with DEBUG flag enabled
55
+
56
+ logger.debug({
57
+ event: 'user_data_loaded',
58
+ user: user,
59
+ timestamp: new Date().toISOString()
60
+ });
61
+
62
+ // INFO: Notable business events
63
+ // - User actions (login, purchase, post created)
64
+ // - API calls completed successfully
65
+ // - Configuration loaded
66
+
67
+ logger.info({
68
+ event: 'user_logged_in',
69
+ user_id: 123,
70
+ timestamp: new Date().toISOString()
71
+ });
72
+
73
+ // WARN: Unexpected but recoverable situations
74
+ // - Deprecated API usage
75
+ // - Slow operations (exceeded threshold)
76
+ // - Falling back to default behavior
77
+
78
+ logger.warn({
79
+ event: 'api_call_slow',
80
+ endpoint: '/api/users',
81
+ duration_ms: 3500,
82
+ threshold_ms: 1000
83
+ });
84
+
85
+ // ERROR: Errors that need attention
86
+ // - API calls failed
87
+ // - Data validation failed
88
+ // - Unhandled exceptions
89
+ // - Should be reviewed and fixed
90
+
91
+ logger.error({
92
+ event: 'api_call_failed',
93
+ endpoint: '/api/users/123',
94
+ status: 500,
95
+ error: 'Server error'
96
+ });
97
+
98
+ // CRITICAL/FATAL: System down
99
+ // - Service unavailable
100
+ // - Data corruption detected
101
+ // - Need immediate human intervention
102
+
103
+ logger.critical({
104
+ event: 'database_connection_lost',
105
+ duration_sec: 30,
106
+ attempt: 5
107
+ });
108
+ ```
109
+
110
+ ## What to Log
111
+
112
+ Log the right things to understand what's happening.
113
+
114
+ ```javascript
115
+ // DO: Log user actions and business events
116
+ logger.info({
117
+ event: 'user_action',
118
+ action: 'create_post',
119
+ user_id: user.id,
120
+ post_id: post.id,
121
+ timestamp: new Date().toISOString()
122
+ });
123
+
124
+ // DO: Log data flow - input and output
125
+ function processPayment(payment) {
126
+ logger.debug({
127
+ event: 'process_payment_start',
128
+ payment_id: payment.id,
129
+ amount: payment.amount
130
+ });
131
+
132
+ const result = chargeCard(payment);
133
+
134
+ logger.info({
135
+ event: 'process_payment_success',
136
+ payment_id: payment.id,
137
+ transaction_id: result.id
138
+ });
139
+
140
+ return result;
141
+ }
142
+
143
+ // DO: Log errors with context
144
+ function handleError(error, context) {
145
+ logger.error({
146
+ event: 'error_occurred',
147
+ error_message: error.message,
148
+ error_code: error.code,
149
+ stack_trace: error.stack,
150
+ context: context,
151
+ timestamp: new Date().toISOString()
152
+ });
153
+ }
154
+
155
+ // DO: Log performance metrics
156
+ function measure(name, fn) {
157
+ const start = performance.now();
158
+ const result = fn();
159
+ const duration = performance.now() - start;
160
+
161
+ logger.info({
162
+ event: 'operation_completed',
163
+ operation: name,
164
+ duration_ms: duration
165
+ });
166
+
167
+ return result;
168
+ }
169
+
170
+ // DO NOT: Log secrets
171
+ logger.info({
172
+ event: 'user_auth',
173
+ // DON'T log password
174
+ user_id: user.id,
175
+ // DON'T log full token
176
+ token_prefix: token.substring(0, 10)
177
+ });
178
+
179
+ // DO NOT: Log sensitive personal data
180
+ logger.info({
181
+ // Don't log full SSN
182
+ user_id: user.id,
183
+ // Don't log full credit card
184
+ payment_method: 'card_****_****_****_4242'
185
+ });
186
+
187
+ // DO NOT: Log excessive data
188
+ logger.info({
189
+ // Don't log entire user object if you only need ID
190
+ user_id: user.id,
191
+ action: 'login'
192
+ });
193
+ ```
194
+
195
+ ## Never Log Secrets
196
+
197
+ This is critical. Secrets in logs are security breaches.
198
+
199
+ ```javascript
200
+ // BAD: Secrets logged (CRITICAL BUG)
201
+ const apiKey = process.env.API_KEY;
202
+ logger.debug('Using API key:', apiKey); // SECURITY ISSUE
203
+
204
+ const token = getAuthToken();
205
+ logger.info('Auth token:', token); // SECURITY ISSUE
206
+
207
+ // GOOD: Log only identifiers or placeholders
208
+ const apiKey = process.env.API_KEY;
209
+ logger.debug('API client initialized'); // No key logged
210
+
211
+ const token = getAuthToken();
212
+ logger.info({
213
+ event: 'authentication_success',
214
+ user_id: decodeToken(token).userId
215
+ }); // No token logged
216
+
217
+ // Sanitize logs before sending to external service
218
+ function sanitizeLog(obj) {
219
+ const sanitized = { ...obj };
220
+
221
+ // Remove common secret fields
222
+ delete sanitized.password;
223
+ delete sanitized.token;
224
+ delete sanitized.api_key;
225
+ delete sanitized.secret;
226
+ delete sanitized.private_key;
227
+
228
+ // Mask sensitive patterns
229
+ if (sanitized.credit_card) {
230
+ sanitized.credit_card = sanitized.credit_card.replace(/\d(?=\d{4})/g, '*');
231
+ }
232
+
233
+ return sanitized;
234
+ }
235
+
236
+ // IMPORTANT: Audit logs regularly
237
+ // Check production logs for secrets that leaked
238
+ // If found, rotate that credential immediately
239
+ ```
240
+
241
+ ## Request IDs (Correlation IDs)
242
+
243
+ Track requests across multiple services for easier debugging.
244
+
245
+ ```javascript
246
+ // Generate request ID
247
+ function generateRequestId() {
248
+ return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
249
+ }
250
+
251
+ // Pass through entire request lifecycle
252
+ function makeRequest(url, options = {}) {
253
+ const requestId = generateRequestId();
254
+
255
+ logger.info({
256
+ event: 'http_request_start',
257
+ request_id: requestId,
258
+ method: options.method || 'GET',
259
+ url: url
260
+ });
261
+
262
+ return fetch(url, {
263
+ ...options,
264
+ headers: {
265
+ ...options.headers,
266
+ 'X-Request-ID': requestId
267
+ }
268
+ })
269
+ .then(r => {
270
+ logger.info({
271
+ event: 'http_request_success',
272
+ request_id: requestId,
273
+ status: r.status,
274
+ duration_ms: Date.now() - parseInt(requestId)
275
+ });
276
+ return r;
277
+ })
278
+ .catch(err => {
279
+ logger.error({
280
+ event: 'http_request_failed',
281
+ request_id: requestId,
282
+ error_message: err.message
283
+ });
284
+ throw err;
285
+ });
286
+ }
287
+
288
+ // Include request_id in ALL logs within that request
289
+ function Component({ userId }) {
290
+ const [requestId] = useState(generateRequestId());
291
+
292
+ useEffect(() => {
293
+ logger.info({
294
+ request_id: requestId,
295
+ event: 'component_mounted',
296
+ user_id: userId
297
+ });
298
+ }, [userId, requestId]);
299
+ }
300
+
301
+ // Benefits: Can trace entire request flow across frontend and backend
302
+ ```
303
+
304
+ ## Error Reporting
305
+
306
+ Capture errors automatically and report them.
307
+
308
+ ```javascript
309
+ // Global error handler
310
+ window.addEventListener('error', (event) => {
311
+ logger.error({
312
+ event: 'uncaught_error',
313
+ error_message: event.error?.message,
314
+ error_stack: event.error?.stack,
315
+ filename: event.filename,
316
+ lineno: event.lineno,
317
+ colno: event.colno,
318
+ timestamp: new Date().toISOString()
319
+ });
320
+
321
+ // Send to error tracking service
322
+ reportToSentry({
323
+ message: event.error?.message,
324
+ stack: event.error?.stack
325
+ });
326
+ });
327
+
328
+ // Promise rejection handler
329
+ window.addEventListener('unhandledrejection', (event) => {
330
+ logger.error({
331
+ event: 'unhandled_rejection',
332
+ reason: event.reason?.message,
333
+ stack: event.reason?.stack,
334
+ timestamp: new Date().toISOString()
335
+ });
336
+
337
+ reportToSentry({
338
+ message: event.reason?.message,
339
+ stack: event.reason?.stack
340
+ });
341
+ });
342
+
343
+ // React error boundary
344
+ class ErrorBoundary extends React.Component {
345
+ componentDidCatch(error, errorInfo) {
346
+ logger.error({
347
+ event: 'react_error_boundary',
348
+ error_message: error.toString(),
349
+ component_stack: errorInfo.componentStack
350
+ });
351
+
352
+ reportToSentry({
353
+ message: error.toString(),
354
+ stack: errorInfo.componentStack
355
+ });
356
+ }
357
+
358
+ render() {
359
+ if (this.state.hasError) {
360
+ return <div>Something went wrong. Error has been reported.</div>;
361
+ }
362
+ return this.props.children;
363
+ }
364
+ }
365
+ ```
366
+
367
+ ## Logging Cleanup
368
+
369
+ Keep logs clean and manageable.
370
+
371
+ ```javascript
372
+ // BAD: Console.log left in production
373
+ function Component() {
374
+ const [data, setData] = useState(null);
375
+
376
+ useEffect(() => {
377
+ fetchData()
378
+ .then(data => {
379
+ console.log('DATA:', data); // Should be removed
380
+ setData(data);
381
+ });
382
+ }, []);
383
+ }
384
+
385
+ // GOOD: Use logger levels appropriately
386
+ function Component() {
387
+ const [data, setData] = useState(null);
388
+
389
+ useEffect(() => {
390
+ fetchData()
391
+ .then(data => {
392
+ logger.debug({ event: 'data_loaded', data }); // Only in debug mode
393
+ setData(data);
394
+ });
395
+ }, []);
396
+ }
397
+
398
+ // Remove debug logs before shipping to production
399
+ // Use environment variables to control log level
400
+ const logLevel = process.env.LOG_LEVEL || 'info';
401
+
402
+ const logger = {
403
+ debug: logLevel === 'debug' ? console.log : () => {},
404
+ info: console.log,
405
+ warn: console.warn,
406
+ error: console.error
407
+ };
408
+ ```
409
+
410
+ ## Logging & Observability Checklist
411
+
412
+ - [ ] Using structured logging (JSON, not free-form text)
413
+ - [ ] Using appropriate log levels (DEBUG, INFO, WARN, ERROR)
414
+ - [ ] Logging user actions and business events
415
+ - [ ] Logging errors with full context
416
+ - [ ] NO secrets logged (passwords, tokens, keys)
417
+ - [ ] NO sensitive PII logged (full SSN, full CC, email if avoidable)
418
+ - [ ] Using request IDs for tracing
419
+ - [ ] Error tracking service configured
420
+ - [ ] Global error handlers in place
421
+ - [ ] Debug logs removed before production
422
+ - [ ] Log retention/cleanup policy defined
423
+ - [ ] Monitoring alerts configured for ERROR level
424
+
425
+ ## Related Guidance
426
+
427
+ - `/debugging` — using logs to debug issues
428
+ - `/code-quality` — clean logging patterns
429
+ - `/tools-setup` — logging libraries and services
430
+ - `/performance` — monitoring performance metrics
@@ -0,0 +1,99 @@
1
+ # Performance
2
+
3
+ Senior frontend developers measure performance, identify bottlenecks, and optimize strategically.
4
+
5
+ ## Measurement First
6
+
7
+ - **Never optimize blindly** — measure before and after
8
+ - **Use real metrics** — Lab (synthetic) and Field (real users)
9
+ - **Identify bottleneck** — not all optimizations have same impact
10
+
11
+ ### Key Metrics
12
+
13
+ - **First Contentful Paint (FCP)** — when first content appears
14
+ - **Largest Contentful Paint (LCP)** — when main content visible
15
+ - **Cumulative Layout Shift (CLS)** — visual stability
16
+ - **Time to Interactive (TTI)** — when page is interactive
17
+ - **Bundle Size** — total JS/CSS sent to user
18
+
19
+ ### Tools
20
+
21
+ - Chrome DevTools (Performance tab)
22
+ - Lighthouse (automated audits)
23
+ - WebPageTest (detailed analysis)
24
+ - Web Vitals library (field metrics)
25
+
26
+ ## Common Optimizations
27
+
28
+ ### Code Splitting
29
+ - Load only what's needed initially
30
+ - Lazy load components (React.lazy)
31
+ - Route-based splitting (load page code on navigation)
32
+ - Reduces initial bundle size
33
+
34
+ ### Memoization
35
+ - `React.memo` — skip re-render if props unchanged
36
+ - `useMemo` — cache expensive computations
37
+ - `useCallback` — cache function references
38
+ - Use when dependencies are stable
39
+
40
+ ### Rendering Optimization
41
+ - Virtual lists (render visible items only)
42
+ - Windowing for large lists
43
+ - Pagination for data-heavy pages
44
+ - Reduces DOM nodes and memory
45
+
46
+ ### Network Optimization
47
+ - Cache API responses
48
+ - Use CDN for static assets
49
+ - Minify CSS/JS/HTML
50
+ - Gzip compression
51
+ - HTTP/2 multiplexing
52
+
53
+ ### Image Optimization
54
+ - Use appropriate formats (WebP, AVIF, JPEG)
55
+ - Lazy load images
56
+ - Responsive images (srcset)
57
+ - Compress without quality loss
58
+
59
+ ## React-Specific Patterns
60
+
61
+ - Avoid large re-renders with context splitting
62
+ - Use Suspense for code splitting
63
+ - Profile with React DevTools Profiler
64
+ - Check render count (Profiler tab)
65
+ - Identify slow components
66
+
67
+ ## Monitoring in Production
68
+
69
+ - Track Core Web Vitals
70
+ - Monitor error rates
71
+ - Track performance over time
72
+ - Alert on regressions
73
+ - Use analytics to correlate performance with user behavior
74
+
75
+ ## Anti-Patterns
76
+
77
+ - Premature optimization (optimize without data)
78
+ - Over-memoization (adds complexity, minimal gain)
79
+ - Excessive state mutations
80
+ - Not lazy loading anything
81
+ - Ignoring bundle size
82
+ - No caching strategy
83
+ - Optimizing wrong metric (optimizing LCP when FCP is bottleneck)
84
+
85
+ ## Performance Checklist
86
+
87
+ After changes:
88
+ - [ ] Measure impact (before/after)
89
+ - [ ] Bundle size acceptable
90
+ - [ ] Core Web Vitals within targets
91
+ - [ ] No regressions in Lighthouse
92
+ - [ ] Images optimized
93
+ - [ ] Cache strategy documented
94
+
95
+ ## Related Guidance
96
+
97
+ - `/code-quality` — code patterns affect performance
98
+ - `/logging-observability` — monitoring performance
99
+ - `/testing` — performance regression tests