@zimezone/z-command 1.1.1 → 1.1.4

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 (288) hide show
  1. package/README.md +13 -1
  2. package/dist/cli.js +1 -1
  3. package/dist/commands/init.d.ts.map +1 -1
  4. package/dist/commands/init.js +42 -10
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/platforms.d.ts.map +1 -1
  7. package/dist/platforms.js +11 -1
  8. package/dist/platforms.js.map +1 -1
  9. package/dist/types.d.ts +2 -0
  10. package/dist/types.d.ts.map +1 -1
  11. package/package.json +8 -3
  12. package/templates.zip +0 -0
  13. package/templates/agents/accessibility-expert.agent.md +0 -56
  14. package/templates/agents/ai-engineer.agent.md +0 -61
  15. package/templates/agents/angular-architect.agent.md +0 -49
  16. package/templates/agents/api-designer.agent.md +0 -40
  17. package/templates/agents/api-documenter.agent.md +0 -161
  18. package/templates/agents/architect-review.agent.md +0 -146
  19. package/templates/agents/arm-cortex-expert.agent.md +0 -288
  20. package/templates/agents/azure-infra-engineer.agent.md +0 -57
  21. package/templates/agents/backend-architect.agent.md +0 -309
  22. package/templates/agents/backend-developer.agent.md +0 -61
  23. package/templates/agents/backend-security-coder.agent.md +0 -152
  24. package/templates/agents/bash-pro.agent.md +0 -285
  25. package/templates/agents/blockchain-developer.agent.md +0 -57
  26. package/templates/agents/build-engineer.agent.md +0 -56
  27. package/templates/agents/business-analyst.agent.md +0 -47
  28. package/templates/agents/c-pro.agent.md +0 -35
  29. package/templates/agents/c4-code.agent.md +0 -320
  30. package/templates/agents/c4-component.agent.md +0 -227
  31. package/templates/agents/c4-container.agent.md +0 -248
  32. package/templates/agents/c4-context.agent.md +0 -235
  33. package/templates/agents/cli-developer.agent.md +0 -57
  34. package/templates/agents/cloud-architect.agent.md +0 -56
  35. package/templates/agents/code-architect.agent.md +0 -63
  36. package/templates/agents/code-reviewer.agent.md +0 -49
  37. package/templates/agents/competitive-analyst.agent.md +0 -48
  38. package/templates/agents/conductor-validator.agent.md +0 -245
  39. package/templates/agents/context-manager.agent.md +0 -55
  40. package/templates/agents/cpp-pro.agent.md +0 -59
  41. package/templates/agents/csharp-developer.agent.md +0 -57
  42. package/templates/agents/csharp-pro.agent.md +0 -38
  43. package/templates/agents/customer-support.agent.md +0 -148
  44. package/templates/agents/data-engineer.agent.md +0 -55
  45. package/templates/agents/data-researcher.agent.md +0 -55
  46. package/templates/agents/data-scientist.agent.md +0 -56
  47. package/templates/agents/database-admin.agent.md +0 -142
  48. package/templates/agents/database-administrator.agent.md +0 -50
  49. package/templates/agents/database-architect.agent.md +0 -238
  50. package/templates/agents/database-optimizer.agent.md +0 -144
  51. package/templates/agents/debugger.agent.md +0 -30
  52. package/templates/agents/deployment-engineer.agent.md +0 -0
  53. package/templates/agents/devops-engineer.agent.md +0 -59
  54. package/templates/agents/devops-troubleshooter.agent.md +0 -138
  55. package/templates/agents/django-developer.agent.md +0 -50
  56. package/templates/agents/django-pro.agent.md +0 -159
  57. package/templates/agents/docs-architect.agent.md +0 -77
  58. package/templates/agents/documentation-engineer.agent.md +0 -57
  59. package/templates/agents/dotnet-architect.agent.md +0 -175
  60. package/templates/agents/dx-optimizer.agent.md +0 -63
  61. package/templates/agents/electron-pro.agent.md +0 -56
  62. package/templates/agents/elixir-pro.agent.md +0 -38
  63. package/templates/agents/embedded-systems.agent.md +0 -55
  64. package/templates/agents/error-detective.agent.md +0 -32
  65. package/templates/agents/event-sourcing-architect.agent.md +0 -42
  66. package/templates/agents/fastapi-pro.agent.md +0 -171
  67. package/templates/agents/fintech-engineer.agent.md +0 -57
  68. package/templates/agents/firmware-analyst.agent.md +0 -330
  69. package/templates/agents/flutter-expert.agent.md +0 -50
  70. package/templates/agents/frontend-developer.agent.md +0 -59
  71. package/templates/agents/frontend-security-coder.agent.md +0 -149
  72. package/templates/agents/fullstack-developer.agent.md +0 -46
  73. package/templates/agents/git-workflow-manager.agent.md +0 -57
  74. package/templates/agents/golang-pro.agent.md +0 -50
  75. package/templates/agents/graphql-architect.agent.md +0 -48
  76. package/templates/agents/haskell-pro.agent.md +0 -37
  77. package/templates/agents/hr-pro.agent.md +0 -105
  78. package/templates/agents/incident-responder.agent.md +0 -190
  79. package/templates/agents/ios-developer.agent.md +0 -198
  80. package/templates/agents/iot-engineer.agent.md +0 -56
  81. package/templates/agents/java-architect.agent.md +0 -48
  82. package/templates/agents/java-pro.agent.md +0 -156
  83. package/templates/agents/javascript-pro.agent.md +0 -35
  84. package/templates/agents/julia-pro.agent.md +0 -187
  85. package/templates/agents/kotlin-specialist.agent.md +0 -50
  86. package/templates/agents/laravel-specialist.agent.md +0 -50
  87. package/templates/agents/legacy-modernizer.agent.md +0 -56
  88. package/templates/agents/legal-advisor.agent.md +0 -49
  89. package/templates/agents/llm-architect.agent.md +0 -58
  90. package/templates/agents/malware-analyst.agent.md +0 -272
  91. package/templates/agents/mcp-developer.agent.md +0 -54
  92. package/templates/agents/mermaid-expert.agent.md +0 -39
  93. package/templates/agents/microservices-architect.agent.md +0 -47
  94. package/templates/agents/minecraft-bukkit-pro.agent.md +0 -104
  95. package/templates/agents/ml-engineer.agent.md +0 -56
  96. package/templates/agents/mlops-engineer.agent.md +0 -56
  97. package/templates/agents/mobile-developer.agent.md +0 -45
  98. package/templates/agents/mobile-security-coder.agent.md +0 -163
  99. package/templates/agents/monorepo-architect.agent.md +0 -44
  100. package/templates/agents/multi-agent-coordinator.agent.md +0 -55
  101. package/templates/agents/network-engineer.agent.md +0 -57
  102. package/templates/agents/nextjs-developer.agent.md +0 -48
  103. package/templates/agents/nlp-engineer.agent.md +0 -58
  104. package/templates/agents/observability-engineer.agent.md +0 -228
  105. package/templates/agents/payment-integration.agent.md +0 -56
  106. package/templates/agents/performance-engineer.agent.md +0 -167
  107. package/templates/agents/performance-optimizer.agent.md +0 -57
  108. package/templates/agents/php-pro.agent.md +0 -43
  109. package/templates/agents/platform-engineer.agent.md +0 -57
  110. package/templates/agents/posix-shell-pro.agent.md +0 -284
  111. package/templates/agents/postgres-pro.agent.md +0 -58
  112. package/templates/agents/product-manager.agent.md +0 -55
  113. package/templates/agents/project-manager.agent.md +0 -57
  114. package/templates/agents/prompt-engineer.agent.md +0 -58
  115. package/templates/agents/python-pro.agent.md +0 -48
  116. package/templates/agents/quant-analyst.agent.md +0 -32
  117. package/templates/agents/rails-expert.agent.md +0 -50
  118. package/templates/agents/react-specialist.agent.md +0 -49
  119. package/templates/agents/refactoring-specialist.agent.md +0 -56
  120. package/templates/agents/reference-builder.agent.md +0 -167
  121. package/templates/agents/research-analyst.agent.md +0 -63
  122. package/templates/agents/reverse-engineer.agent.md +0 -202
  123. package/templates/agents/risk-manager.agent.md +0 -41
  124. package/templates/agents/ruby-pro.agent.md +0 -35
  125. package/templates/agents/rust-pro.agent.md +0 -156
  126. package/templates/agents/sales-automator.agent.md +0 -35
  127. package/templates/agents/scala-pro.agent.md +0 -60
  128. package/templates/agents/scrum-master.agent.md +0 -54
  129. package/templates/agents/search-specialist.agent.md +0 -59
  130. package/templates/agents/security-analyst.agent.md +0 -57
  131. package/templates/agents/security-auditor.agent.md +0 -138
  132. package/templates/agents/security-engineer.agent.md +0 -57
  133. package/templates/agents/seo-authority-builder.agent.md +0 -116
  134. package/templates/agents/seo-cannibalization-detector.agent.md +0 -103
  135. package/templates/agents/seo-content-auditor.agent.md +0 -63
  136. package/templates/agents/seo-content-planner.agent.md +0 -88
  137. package/templates/agents/seo-content-refresher.agent.md +0 -98
  138. package/templates/agents/seo-content-writer.agent.md +0 -76
  139. package/templates/agents/seo-keyword-strategist.agent.md +0 -75
  140. package/templates/agents/seo-meta-optimizer.agent.md +0 -72
  141. package/templates/agents/seo-snippet-hunter.agent.md +0 -94
  142. package/templates/agents/seo-specialist.agent.md +0 -57
  143. package/templates/agents/seo-structure-architect.agent.md +0 -88
  144. package/templates/agents/service-mesh-expert.agent.md +0 -41
  145. package/templates/agents/sql-pro.agent.md +0 -146
  146. package/templates/agents/sre-engineer.agent.md +0 -58
  147. package/templates/agents/swift-expert.agent.md +0 -49
  148. package/templates/agents/task-distributor.agent.md +0 -47
  149. package/templates/agents/tdd-orchestrator.agent.md +0 -183
  150. package/templates/agents/technical-writer.agent.md +0 -48
  151. package/templates/agents/temporal-python-pro.agent.md +0 -349
  152. package/templates/agents/terraform-engineer.agent.md +0 -57
  153. package/templates/agents/terraform-specialist.agent.md +0 -137
  154. package/templates/agents/test-automator.agent.md +0 -203
  155. package/templates/agents/test-engineer.agent.md +0 -55
  156. package/templates/agents/threat-modeling-expert.agent.md +0 -44
  157. package/templates/agents/trend-analyst.agent.md +0 -47
  158. package/templates/agents/tutorial-engineer.agent.md +0 -118
  159. package/templates/agents/typescript-pro.agent.md +0 -48
  160. package/templates/agents/ui-designer.agent.md +0 -48
  161. package/templates/agents/ui-ux-designer.agent.md +0 -188
  162. package/templates/agents/ui-visual-validator.agent.md +0 -192
  163. package/templates/agents/ux-researcher.agent.md +0 -48
  164. package/templates/agents/vector-database-engineer.agent.md +0 -43
  165. package/templates/agents/vue-expert.agent.md +0 -48
  166. package/templates/agents/websocket-engineer.agent.md +0 -49
  167. package/templates/agents/workflow-orchestrator.agent.md +0 -48
  168. package/templates/skills/angular-migration/SKILL.md +0 -410
  169. package/templates/skills/api-design-principles/SKILL.md +0 -528
  170. package/templates/skills/api-design-principles/assets/api-design-checklist.md +0 -155
  171. package/templates/skills/api-design-principles/assets/rest-api-template.py +0 -182
  172. package/templates/skills/api-design-principles/references/graphql-schema-design.md +0 -583
  173. package/templates/skills/api-design-principles/references/rest-best-practices.md +0 -408
  174. package/templates/skills/architecture-decision-records/SKILL.md +0 -428
  175. package/templates/skills/architecture-patterns/SKILL.md +0 -494
  176. package/templates/skills/async-python-patterns/SKILL.md +0 -694
  177. package/templates/skills/auth-implementation-patterns/SKILL.md +0 -634
  178. package/templates/skills/changelog-automation/SKILL.md +0 -552
  179. package/templates/skills/code-review/SKILL.md +0 -62
  180. package/templates/skills/code-review-excellence/SKILL.md +0 -520
  181. package/templates/skills/competitive-landscape/SKILL.md +0 -479
  182. package/templates/skills/context-driven-development/SKILL.md +0 -385
  183. package/templates/skills/cost-optimization/SKILL.md +0 -274
  184. package/templates/skills/cqrs-implementation/SKILL.md +0 -554
  185. package/templates/skills/data-quality-frameworks/SKILL.md +0 -587
  186. package/templates/skills/data-storytelling/SKILL.md +0 -453
  187. package/templates/skills/database-migration/SKILL.md +0 -424
  188. package/templates/skills/dbt-transformation-patterns/SKILL.md +0 -561
  189. package/templates/skills/debugging-strategies/SKILL.md +0 -527
  190. package/templates/skills/defi-protocol-templates/SKILL.md +0 -454
  191. package/templates/skills/dependency-upgrade/SKILL.md +0 -409
  192. package/templates/skills/deployment-pipeline-design/SKILL.md +0 -359
  193. package/templates/skills/distributed-tracing/SKILL.md +0 -438
  194. package/templates/skills/dotnet-backend-patterns/SKILL.md +0 -815
  195. package/templates/skills/dotnet-backend-patterns/assets/repository-template.cs +0 -523
  196. package/templates/skills/dotnet-backend-patterns/assets/service-template.cs +0 -336
  197. package/templates/skills/dotnet-backend-patterns/references/dapper-patterns.md +0 -544
  198. package/templates/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +0 -355
  199. package/templates/skills/e2e-testing-patterns/SKILL.md +0 -547
  200. package/templates/skills/employment-contract-templates/SKILL.md +0 -507
  201. package/templates/skills/error-handling-patterns/SKILL.md +0 -636
  202. package/templates/skills/event-store-design/SKILL.md +0 -437
  203. package/templates/skills/fastapi-templates/SKILL.md +0 -567
  204. package/templates/skills/git-advanced-workflows/SKILL.md +0 -400
  205. package/templates/skills/github-actions-templates/SKILL.md +0 -333
  206. package/templates/skills/go-concurrency-patterns/SKILL.md +0 -655
  207. package/templates/skills/grafana-dashboards/SKILL.md +0 -369
  208. package/templates/skills/helm-chart-scaffolding/SKILL.md +0 -544
  209. package/templates/skills/helm-chart-scaffolding/assets/Chart.yaml.template +0 -42
  210. package/templates/skills/helm-chart-scaffolding/assets/values.yaml.template +0 -185
  211. package/templates/skills/helm-chart-scaffolding/references/chart-structure.md +0 -500
  212. package/templates/skills/helm-chart-scaffolding/scripts/validate-chart.sh +0 -244
  213. package/templates/skills/javascript-testing-patterns/SKILL.md +0 -1025
  214. package/templates/skills/langchain-architecture/SKILL.md +0 -338
  215. package/templates/skills/llm-evaluation/SKILL.md +0 -471
  216. package/templates/skills/microservices-patterns/SKILL.md +0 -595
  217. package/templates/skills/modern-javascript-patterns/SKILL.md +0 -911
  218. package/templates/skills/monorepo-management/SKILL.md +0 -622
  219. package/templates/skills/nextjs-app-router-patterns/SKILL.md +0 -544
  220. package/templates/skills/nodejs-backend-patterns/SKILL.md +0 -1020
  221. package/templates/skills/nx-workspace-patterns/SKILL.md +0 -452
  222. package/templates/skills/openapi-spec-generation/SKILL.md +0 -1028
  223. package/templates/skills/paypal-integration/SKILL.md +0 -467
  224. package/templates/skills/pci-compliance/SKILL.md +0 -466
  225. package/templates/skills/postgresql/SKILL.md +0 -204
  226. package/templates/skills/projection-patterns/SKILL.md +0 -490
  227. package/templates/skills/prometheus-configuration/SKILL.md +0 -392
  228. package/templates/skills/prompt-engineering-patterns/SKILL.md +0 -201
  229. package/templates/skills/prompt-engineering-patterns/assets/few-shot-examples.json +0 -106
  230. package/templates/skills/prompt-engineering-patterns/assets/prompt-template-library.md +0 -246
  231. package/templates/skills/prompt-engineering-patterns/references/chain-of-thought.md +0 -399
  232. package/templates/skills/prompt-engineering-patterns/references/few-shot-learning.md +0 -369
  233. package/templates/skills/prompt-engineering-patterns/references/prompt-optimization.md +0 -414
  234. package/templates/skills/prompt-engineering-patterns/references/prompt-templates.md +0 -470
  235. package/templates/skills/prompt-engineering-patterns/references/system-prompts.md +0 -189
  236. package/templates/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +0 -279
  237. package/templates/skills/python-packaging/SKILL.md +0 -870
  238. package/templates/skills/python-performance-optimization/SKILL.md +0 -869
  239. package/templates/skills/python-testing-patterns/SKILL.md +0 -907
  240. package/templates/skills/rag-implementation/SKILL.md +0 -403
  241. package/templates/skills/react-modernization/SKILL.md +0 -513
  242. package/templates/skills/react-native-architecture/SKILL.md +0 -671
  243. package/templates/skills/react-state-management/SKILL.md +0 -429
  244. package/templates/skills/risk-metrics-calculation/SKILL.md +0 -555
  245. package/templates/skills/rust-async-patterns/SKILL.md +0 -517
  246. package/templates/skills/secrets-management/SKILL.md +0 -346
  247. package/templates/skills/security-requirement-extraction/SKILL.md +0 -677
  248. package/templates/skills/security-review/SKILL.md +0 -78
  249. package/templates/skills/shellcheck-configuration/SKILL.md +0 -454
  250. package/templates/skills/similarity-search-patterns/SKILL.md +0 -558
  251. package/templates/skills/slo-implementation/SKILL.md +0 -329
  252. package/templates/skills/sql-optimization-patterns/SKILL.md +0 -493
  253. package/templates/skills/stripe-integration/SKILL.md +0 -442
  254. package/templates/skills/systematic-debugging/SKILL.md +0 -57
  255. package/templates/skills/tailwind-design-system/SKILL.md +0 -666
  256. package/templates/skills/temporal-python-testing/SKILL.md +0 -158
  257. package/templates/skills/temporal-python-testing/resources/integration-testing.md +0 -455
  258. package/templates/skills/temporal-python-testing/resources/local-setup.md +0 -553
  259. package/templates/skills/temporal-python-testing/resources/replay-testing.md +0 -462
  260. package/templates/skills/temporal-python-testing/resources/unit-testing.md +0 -328
  261. package/templates/skills/terraform-module-library/SKILL.md +0 -249
  262. package/templates/skills/terraform-module-library/references/aws-modules.md +0 -63
  263. package/templates/skills/test-driven-development/SKILL.md +0 -46
  264. package/templates/skills/threat-mitigation-mapping/SKILL.md +0 -745
  265. package/templates/skills/track-management/SKILL.md +0 -593
  266. package/templates/skills/typescript-advanced-types/SKILL.md +0 -717
  267. package/templates/skills/ui-ux-pro-max/SKILL.md +0 -352
  268. package/templates/skills/ui-ux-pro-max/data/charts.csv +0 -26
  269. package/templates/skills/ui-ux-pro-max/data/colors.csv +0 -97
  270. package/templates/skills/ui-ux-pro-max/data/icons.csv +0 -101
  271. package/templates/skills/ui-ux-pro-max/data/landing.csv +0 -31
  272. package/templates/skills/ui-ux-pro-max/data/products.csv +0 -97
  273. package/templates/skills/ui-ux-pro-max/data/prompts.csv +0 -24
  274. package/templates/skills/ui-ux-pro-max/data/react-performance.csv +0 -45
  275. package/templates/skills/ui-ux-pro-max/data/styles.csv +0 -59
  276. package/templates/skills/ui-ux-pro-max/data/typography.csv +0 -58
  277. package/templates/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -101
  278. package/templates/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  279. package/templates/skills/ui-ux-pro-max/data/web-interface.csv +0 -31
  280. package/templates/skills/ui-ux-pro-max/scripts/core.py +0 -258
  281. package/templates/skills/ui-ux-pro-max/scripts/design_system.py +0 -547
  282. package/templates/skills/ui-ux-pro-max/scripts/search.py +0 -76
  283. package/templates/skills/uv-package-manager/SKILL.md +0 -831
  284. package/templates/skills/vector-index-tuning/SKILL.md +0 -521
  285. package/templates/skills/wcag-audit-patterns/SKILL.md +0 -555
  286. package/templates/skills/workflow-orchestration-patterns/SKILL.md +0 -316
  287. package/templates/skills/workflow-patterns/SKILL.md +0 -623
  288. package/templates/skills/writing-plans/SKILL.md +0 -64
@@ -1,520 +0,0 @@
1
- ---
2
- name: code-review-excellence
3
- description: Master effective code review practices to provide constructive feedback, catch bugs early, and foster knowledge sharing while maintaining team morale. Use when reviewing pull requests, establishing review standards, or mentoring developers.
4
- ---
5
-
6
- # Code Review Excellence
7
-
8
- Transform code reviews from gatekeeping to knowledge sharing through constructive feedback, systematic analysis, and collaborative improvement.
9
-
10
- ## When to Use This Skill
11
-
12
- - Reviewing pull requests and code changes
13
- - Establishing code review standards for teams
14
- - Mentoring junior developers through reviews
15
- - Conducting architecture reviews
16
- - Creating review checklists and guidelines
17
- - Improving team collaboration
18
- - Reducing code review cycle time
19
- - Maintaining code quality standards
20
-
21
- ## Core Principles
22
-
23
- ### 1. The Review Mindset
24
-
25
- **Goals of Code Review:**
26
- - Catch bugs and edge cases
27
- - Ensure code maintainability
28
- - Share knowledge across team
29
- - Enforce coding standards
30
- - Improve design and architecture
31
- - Build team culture
32
-
33
- **Not the Goals:**
34
- - Show off knowledge
35
- - Nitpick formatting (use linters)
36
- - Block progress unnecessarily
37
- - Rewrite to your preference
38
-
39
- ### 2. Effective Feedback
40
-
41
- **Good Feedback is:**
42
- - Specific and actionable
43
- - Educational, not judgmental
44
- - Focused on the code, not the person
45
- - Balanced (praise good work too)
46
- - Prioritized (critical vs nice-to-have)
47
-
48
- ```markdown
49
- ❌ Bad: "This is wrong."
50
- ✅ Good: "This could cause a race condition when multiple users
51
- access simultaneously. Consider using a mutex here."
52
-
53
- ❌ Bad: "Why didn't you use X pattern?"
54
- ✅ Good: "Have you considered the Repository pattern? It would
55
- make this easier to test. Here's an example: [link]"
56
-
57
- ❌ Bad: "Rename this variable."
58
- ✅ Good: "[nit] Consider `userCount` instead of `uc` for
59
- clarity. Not blocking if you prefer to keep it."
60
- ```
61
-
62
- ### 3. Review Scope
63
-
64
- **What to Review:**
65
- - Logic correctness and edge cases
66
- - Security vulnerabilities
67
- - Performance implications
68
- - Test coverage and quality
69
- - Error handling
70
- - Documentation and comments
71
- - API design and naming
72
- - Architectural fit
73
-
74
- **What Not to Review Manually:**
75
- - Code formatting (use Prettier, Black, etc.)
76
- - Import organization
77
- - Linting violations
78
- - Simple typos
79
-
80
- ## Review Process
81
-
82
- ### Phase 1: Context Gathering (2-3 minutes)
83
-
84
- ```markdown
85
- Before diving into code, understand:
86
-
87
- 1. Read PR description and linked issue
88
- 2. Check PR size (>400 lines? Ask to split)
89
- 3. Review CI/CD status (tests passing?)
90
- 4. Understand the business requirement
91
- 5. Note any relevant architectural decisions
92
- ```
93
-
94
- ### Phase 2: High-Level Review (5-10 minutes)
95
-
96
- ```markdown
97
- 1. **Architecture & Design**
98
- - Does the solution fit the problem?
99
- - Are there simpler approaches?
100
- - Is it consistent with existing patterns?
101
- - Will it scale?
102
-
103
- 2. **File Organization**
104
- - Are new files in the right places?
105
- - Is code grouped logically?
106
- - Are there duplicate files?
107
-
108
- 3. **Testing Strategy**
109
- - Are there tests?
110
- - Do tests cover edge cases?
111
- - Are tests readable?
112
- ```
113
-
114
- ### Phase 3: Line-by-Line Review (10-20 minutes)
115
-
116
- ```markdown
117
- For each file:
118
-
119
- 1. **Logic & Correctness**
120
- - Edge cases handled?
121
- - Off-by-one errors?
122
- - Null/undefined checks?
123
- - Race conditions?
124
-
125
- 2. **Security**
126
- - Input validation?
127
- - SQL injection risks?
128
- - XSS vulnerabilities?
129
- - Sensitive data exposure?
130
-
131
- 3. **Performance**
132
- - N+1 queries?
133
- - Unnecessary loops?
134
- - Memory leaks?
135
- - Blocking operations?
136
-
137
- 4. **Maintainability**
138
- - Clear variable names?
139
- - Functions doing one thing?
140
- - Complex code commented?
141
- - Magic numbers extracted?
142
- ```
143
-
144
- ### Phase 4: Summary & Decision (2-3 minutes)
145
-
146
- ```markdown
147
- 1. Summarize key concerns
148
- 2. Highlight what you liked
149
- 3. Make clear decision:
150
- - ✅ Approve
151
- - 💬 Comment (minor suggestions)
152
- - 🔄 Request Changes (must address)
153
- 4. Offer to pair if complex
154
- ```
155
-
156
- ## Review Techniques
157
-
158
- ### Technique 1: The Checklist Method
159
-
160
- ```markdown
161
- ## Security Checklist
162
- - [ ] User input validated and sanitized
163
- - [ ] SQL queries use parameterization
164
- - [ ] Authentication/authorization checked
165
- - [ ] Secrets not hardcoded
166
- - [ ] Error messages don't leak info
167
-
168
- ## Performance Checklist
169
- - [ ] No N+1 queries
170
- - [ ] Database queries indexed
171
- - [ ] Large lists paginated
172
- - [ ] Expensive operations cached
173
- - [ ] No blocking I/O in hot paths
174
-
175
- ## Testing Checklist
176
- - [ ] Happy path tested
177
- - [ ] Edge cases covered
178
- - [ ] Error cases tested
179
- - [ ] Test names are descriptive
180
- - [ ] Tests are deterministic
181
- ```
182
-
183
- ### Technique 2: The Question Approach
184
-
185
- Instead of stating problems, ask questions to encourage thinking:
186
-
187
- ```markdown
188
- ❌ "This will fail if the list is empty."
189
- ✅ "What happens if `items` is an empty array?"
190
-
191
- ❌ "You need error handling here."
192
- ✅ "How should this behave if the API call fails?"
193
-
194
- ❌ "This is inefficient."
195
- ✅ "I see this loops through all users. Have we considered
196
- the performance impact with 100k users?"
197
- ```
198
-
199
- ### Technique 3: Suggest, Don't Command
200
-
201
- ```markdown
202
- ## Use Collaborative Language
203
-
204
- ❌ "You must change this to use async/await"
205
- ✅ "Suggestion: async/await might make this more readable:
206
- ```typescript
207
- async function fetchUser(id: string) {
208
- const user = await db.query('SELECT * FROM users WHERE id = ?', id);
209
- return user;
210
- }
211
- ```
212
- What do you think?"
213
-
214
- ❌ "Extract this into a function"
215
- ✅ "This logic appears in 3 places. Would it make sense to
216
- extract it into a shared utility function?"
217
- ```
218
-
219
- ### Technique 4: Differentiate Severity
220
-
221
- ```markdown
222
- Use labels to indicate priority:
223
-
224
- 🔴 [blocking] - Must fix before merge
225
- 🟡 [important] - Should fix, discuss if disagree
226
- 🟢 [nit] - Nice to have, not blocking
227
- 💡 [suggestion] - Alternative approach to consider
228
- 📚 [learning] - Educational comment, no action needed
229
- 🎉 [praise] - Good work, keep it up!
230
-
231
- Example:
232
- "🔴 [blocking] This SQL query is vulnerable to injection.
233
- Please use parameterized queries."
234
-
235
- "🟢 [nit] Consider renaming `data` to `userData` for clarity."
236
-
237
- "🎉 [praise] Excellent test coverage! This will catch edge cases."
238
- ```
239
-
240
- ## Language-Specific Patterns
241
-
242
- ### Python Code Review
243
-
244
- ```python
245
- # Check for Python-specific issues
246
-
247
- # ❌ Mutable default arguments
248
- def add_item(item, items=[]): # Bug! Shared across calls
249
- items.append(item)
250
- return items
251
-
252
- # ✅ Use None as default
253
- def add_item(item, items=None):
254
- if items is None:
255
- items = []
256
- items.append(item)
257
- return items
258
-
259
- # ❌ Catching too broad
260
- try:
261
- result = risky_operation()
262
- except: # Catches everything, even KeyboardInterrupt!
263
- pass
264
-
265
- # ✅ Catch specific exceptions
266
- try:
267
- result = risky_operation()
268
- except ValueError as e:
269
- logger.error(f"Invalid value: {e}")
270
- raise
271
-
272
- # ❌ Using mutable class attributes
273
- class User:
274
- permissions = [] # Shared across all instances!
275
-
276
- # ✅ Initialize in __init__
277
- class User:
278
- def __init__(self):
279
- self.permissions = []
280
- ```
281
-
282
- ### TypeScript/JavaScript Code Review
283
-
284
- ```typescript
285
- // Check for TypeScript-specific issues
286
-
287
- // ❌ Using any defeats type safety
288
- function processData(data: any) { // Avoid any
289
- return data.value;
290
- }
291
-
292
- // ✅ Use proper types
293
- interface DataPayload {
294
- value: string;
295
- }
296
- function processData(data: DataPayload) {
297
- return data.value;
298
- }
299
-
300
- // ❌ Not handling async errors
301
- async function fetchUser(id: string) {
302
- const response = await fetch(`/api/users/${id}`);
303
- return response.json(); // What if network fails?
304
- }
305
-
306
- // ✅ Handle errors properly
307
- async function fetchUser(id: string): Promise<User> {
308
- try {
309
- const response = await fetch(`/api/users/${id}`);
310
- if (!response.ok) {
311
- throw new Error(`HTTP ${response.status}`);
312
- }
313
- return await response.json();
314
- } catch (error) {
315
- console.error('Failed to fetch user:', error);
316
- throw error;
317
- }
318
- }
319
-
320
- // ❌ Mutation of props
321
- function UserProfile({ user }: Props) {
322
- user.lastViewed = new Date(); // Mutating prop!
323
- return <div>{user.name}</div>;
324
- }
325
-
326
- // ✅ Don't mutate props
327
- function UserProfile({ user, onView }: Props) {
328
- useEffect(() => {
329
- onView(user.id); // Notify parent to update
330
- }, [user.id]);
331
- return <div>{user.name}</div>;
332
- }
333
- ```
334
-
335
- ## Advanced Review Patterns
336
-
337
- ### Pattern 1: Architectural Review
338
-
339
- ```markdown
340
- When reviewing significant changes:
341
-
342
- 1. **Design Document First**
343
- - For large features, request design doc before code
344
- - Review design with team before implementation
345
- - Agree on approach to avoid rework
346
-
347
- 2. **Review in Stages**
348
- - First PR: Core abstractions and interfaces
349
- - Second PR: Implementation
350
- - Third PR: Integration and tests
351
- - Easier to review, faster to iterate
352
-
353
- 3. **Consider Alternatives**
354
- - "Have we considered using [pattern/library]?"
355
- - "What's the tradeoff vs. the simpler approach?"
356
- - "How will this evolve as requirements change?"
357
- ```
358
-
359
- ### Pattern 2: Test Quality Review
360
-
361
- ```typescript
362
- // ❌ Poor test: Implementation detail testing
363
- test('increments counter variable', () => {
364
- const component = render(<Counter />);
365
- const button = component.getByRole('button');
366
- fireEvent.click(button);
367
- expect(component.state.counter).toBe(1); // Testing internal state
368
- });
369
-
370
- // ✅ Good test: Behavior testing
371
- test('displays incremented count when clicked', () => {
372
- render(<Counter />);
373
- const button = screen.getByRole('button', { name: /increment/i });
374
- fireEvent.click(button);
375
- expect(screen.getByText('Count: 1')).toBeInTheDocument();
376
- });
377
-
378
- // Review questions for tests:
379
- // - Do tests describe behavior, not implementation?
380
- // - Are test names clear and descriptive?
381
- // - Do tests cover edge cases?
382
- // - Are tests independent (no shared state)?
383
- // - Can tests run in any order?
384
- ```
385
-
386
- ### Pattern 3: Security Review
387
-
388
- ```markdown
389
- ## Security Review Checklist
390
-
391
- ### Authentication & Authorization
392
- - [ ] Is authentication required where needed?
393
- - [ ] Are authorization checks before every action?
394
- - [ ] Is JWT validation proper (signature, expiry)?
395
- - [ ] Are API keys/secrets properly secured?
396
-
397
- ### Input Validation
398
- - [ ] All user inputs validated?
399
- - [ ] File uploads restricted (size, type)?
400
- - [ ] SQL queries parameterized?
401
- - [ ] XSS protection (escape output)?
402
-
403
- ### Data Protection
404
- - [ ] Passwords hashed (bcrypt/argon2)?
405
- - [ ] Sensitive data encrypted at rest?
406
- - [ ] HTTPS enforced for sensitive data?
407
- - [ ] PII handled according to regulations?
408
-
409
- ### Common Vulnerabilities
410
- - [ ] No eval() or similar dynamic execution?
411
- - [ ] No hardcoded secrets?
412
- - [ ] CSRF protection for state-changing operations?
413
- - [ ] Rate limiting on public endpoints?
414
- ```
415
-
416
- ## Giving Difficult Feedback
417
-
418
- ### Pattern: The Sandwich Method (Modified)
419
-
420
- ```markdown
421
- Traditional: Praise + Criticism + Praise (feels fake)
422
-
423
- Better: Context + Specific Issue + Helpful Solution
424
-
425
- Example:
426
- "I noticed the payment processing logic is inline in the
427
- controller. This makes it harder to test and reuse.
428
-
429
- [Specific Issue]
430
- The calculateTotal() function mixes tax calculation,
431
- discount logic, and database queries, making it difficult
432
- to unit test and reason about.
433
-
434
- [Helpful Solution]
435
- Could we extract this into a PaymentService class? That
436
- would make it testable and reusable. I can pair with you
437
- on this if helpful."
438
- ```
439
-
440
- ### Handling Disagreements
441
-
442
- ```markdown
443
- When author disagrees with your feedback:
444
-
445
- 1. **Seek to Understand**
446
- "Help me understand your approach. What led you to
447
- choose this pattern?"
448
-
449
- 2. **Acknowledge Valid Points**
450
- "That's a good point about X. I hadn't considered that."
451
-
452
- 3. **Provide Data**
453
- "I'm concerned about performance. Can we add a benchmark
454
- to validate the approach?"
455
-
456
- 4. **Escalate if Needed**
457
- "Let's get [architect/senior dev] to weigh in on this."
458
-
459
- 5. **Know When to Let Go**
460
- If it's working and not a critical issue, approve it.
461
- Perfection is the enemy of progress.
462
- ```
463
-
464
- ## Best Practices
465
-
466
- 1. **Review Promptly**: Within 24 hours, ideally same day
467
- 2. **Limit PR Size**: 200-400 lines max for effective review
468
- 3. **Review in Time Blocks**: 60 minutes max, take breaks
469
- 4. **Use Review Tools**: GitHub, GitLab, or dedicated tools
470
- 5. **Automate What You Can**: Linters, formatters, security scans
471
- 6. **Build Rapport**: Emoji, praise, and empathy matter
472
- 7. **Be Available**: Offer to pair on complex issues
473
- 8. **Learn from Others**: Review others' review comments
474
-
475
- ## Common Pitfalls
476
-
477
- - **Perfectionism**: Blocking PRs for minor style preferences
478
- - **Scope Creep**: "While you're at it, can you also..."
479
- - **Inconsistency**: Different standards for different people
480
- - **Delayed Reviews**: Letting PRs sit for days
481
- - **Ghosting**: Requesting changes then disappearing
482
- - **Rubber Stamping**: Approving without actually reviewing
483
- - **Bike Shedding**: Debating trivial details extensively
484
-
485
- ## Templates
486
-
487
- ### PR Review Comment Template
488
-
489
- ```markdown
490
- ## Summary
491
- [Brief overview of what was reviewed]
492
-
493
- ## Strengths
494
- - [What was done well]
495
- - [Good patterns or approaches]
496
-
497
- ## Required Changes
498
- 🔴 [Blocking issue 1]
499
- 🔴 [Blocking issue 2]
500
-
501
- ## Suggestions
502
- 💡 [Improvement 1]
503
- 💡 [Improvement 2]
504
-
505
- ## Questions
506
- ❓ [Clarification needed on X]
507
- ❓ [Alternative approach consideration]
508
-
509
- ## Verdict
510
- ✅ Approve after addressing required changes
511
- ```
512
-
513
- ## Resources
514
-
515
- - **references/code-review-best-practices.md**: Comprehensive review guidelines
516
- - **references/common-bugs-checklist.md**: Language-specific bugs to watch for
517
- - **references/security-review-guide.md**: Security-focused review checklist
518
- - **assets/pr-review-template.md**: Standard review comment template
519
- - **assets/review-checklist.md**: Quick reference checklist
520
- - **scripts/pr-analyzer.py**: Analyze PR complexity and suggest reviewers