@tinkcarlos/skillora 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/.claude/skills/.temp-skill-index.md +245 -0
  2. package/.claude/skills/SKILL.md +264 -0
  3. package/.claude/skills/api-scaffolding/SKILL.md +431 -0
  4. package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
  5. package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
  6. package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
  7. package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
  8. package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
  9. package/.claude/skills/api-testing-observability/SKILL.md +583 -0
  10. package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
  11. package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
  12. package/.claude/skills/brainstorming/SKILL.md +283 -0
  13. package/.claude/skills/bug-fixing/SKILL.md +382 -0
  14. package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
  15. package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
  16. package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
  17. package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
  18. package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
  19. package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
  20. package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
  21. package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
  22. package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
  23. package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
  24. package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
  25. package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
  26. package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
  27. package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
  28. package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
  29. package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
  30. package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
  31. package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
  32. package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
  33. package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
  34. package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
  35. package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
  36. package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
  37. package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
  38. package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
  39. package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
  40. package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
  41. package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
  42. package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
  43. package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
  44. package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
  45. package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
  46. package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
  47. package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
  48. package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
  49. package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
  50. package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
  51. package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
  52. package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
  53. package/.claude/skills/code-review/SKILL.md +535 -0
  54. package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
  55. package/.claude/skills/code-review/references/automated-analysis.md +456 -0
  56. package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
  57. package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
  58. package/.claude/skills/code-review/references/backend-review.md +868 -0
  59. package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
  60. package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
  61. package/.claude/skills/code-review/references/common-patterns.md +321 -0
  62. package/.claude/skills/code-review/references/configuration-review.md +425 -0
  63. package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
  64. package/.claude/skills/code-review/references/database-review.md +298 -0
  65. package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
  66. package/.claude/skills/code-review/references/external-standards.md +51 -0
  67. package/.claude/skills/code-review/references/feature-review.md +329 -0
  68. package/.claude/skills/code-review/references/file-review-template.md +326 -0
  69. package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
  70. package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
  71. package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
  72. package/.claude/skills/code-review/references/frontend-review.md +783 -0
  73. package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
  74. package/.claude/skills/code-review/references/fullstack-review.md +477 -0
  75. package/.claude/skills/code-review/references/functional-completeness.md +386 -0
  76. package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
  77. package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
  78. package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
  79. package/.claude/skills/code-review/references/iteration-review.md +264 -0
  80. package/.claude/skills/code-review/references/job-review.md +335 -0
  81. package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
  82. package/.claude/skills/code-review/references/logic-completeness.md +535 -0
  83. package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
  84. package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
  85. package/.claude/skills/code-review/references/new-project-review.md +226 -0
  86. package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
  87. package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
  88. package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
  89. package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
  90. package/.claude/skills/code-review/references/python-patterns.md +494 -0
  91. package/.claude/skills/code-review/references/rca-techniques.md +362 -0
  92. package/.claude/skills/code-review/references/report-template.md +430 -0
  93. package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
  94. package/.claude/skills/code-review/references/review-dimensions.md +311 -0
  95. package/.claude/skills/code-review/references/review-guide.md +202 -0
  96. package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
  97. package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
  98. package/.claude/skills/code-review/references/review-record-template.md +195 -0
  99. package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
  100. package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
  101. package/.claude/skills/containerization/SKILL.md +313 -0
  102. package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
  103. package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
  104. package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
  105. package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
  106. package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
  107. package/.claude/skills/frontend-design/LICENSE.txt +177 -0
  108. package/.claude/skills/frontend-design/SKILL.md +587 -0
  109. package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
  110. package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
  111. package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
  112. package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
  113. package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
  114. package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
  115. package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
  116. package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
  117. package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
  118. package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
  119. package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
  120. package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
  121. package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
  122. package/.claude/skills/fullstack-developer/SKILL.md +512 -0
  123. package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
  124. package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
  125. package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
  126. package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
  127. package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
  128. package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
  129. package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
  130. package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
  131. package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
  132. package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
  133. package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
  134. package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
  135. package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
  136. package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
  137. package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
  138. package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
  139. package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
  140. package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
  141. package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
  142. package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
  143. package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
  144. package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
  145. package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
  146. package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
  147. package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
  148. package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
  149. package/.claude/skills/performance-optimization/SKILL.md +250 -0
  150. package/.claude/skills/product-requirements/SKILL.md +357 -0
  151. package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
  152. package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
  153. package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
  154. package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
  155. package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
  156. package/.claude/skills/product-requirements/references/external-standards.md +62 -0
  157. package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
  158. package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
  159. package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
  160. package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
  161. package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
  162. package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
  163. package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
  164. package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
  165. package/.claude/skills/react-best-practices/SKILL.md +198 -0
  166. package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
  167. package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
  168. package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
  169. package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
  170. package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
  171. package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
  172. package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
  173. package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
  174. package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
  175. package/.claude/skills/security-audit/SKILL.md +226 -0
  176. package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
  177. package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
  178. package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
  179. package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
  180. package/.claude/skills/shared-references/skill-call-graph.md +230 -0
  181. package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
  182. package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
  183. package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
  184. package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
  185. package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
  186. package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
  187. package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
  188. package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
  189. package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
  190. package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
  191. package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
  192. package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
  193. package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
  194. package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
  195. package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
  196. package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
  197. package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
  198. package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
  199. package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
  200. package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
  201. package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
  202. package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
  203. package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
  204. package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
  205. package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
  206. package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
  207. package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
  208. package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
  209. package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
  210. package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
  211. package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
  212. package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
  213. package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
  214. package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
  215. package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
  216. package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
  217. package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
  218. package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
  219. package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
  220. package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
  221. package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
  222. package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
  223. package/.claude/skills/test-driven-development/SKILL.md +246 -0
  224. package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
  225. package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
  226. package/.claude/skills/using-skillstack/SKILL.md +127 -0
  227. package/.claude/skills/vercel-deploy/SKILL.md +166 -0
  228. package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
  229. package/.claude/skills/verification-before-completion/SKILL.md +305 -0
  230. package/.claude/skills/writing-plans/SKILL.md +259 -0
  231. package/README.md +69 -0
  232. package/bin/cli.js +468 -0
  233. package/lib/init.js +333 -0
  234. package/package.json +29 -0
@@ -0,0 +1,800 @@
1
+ # Multi-Language Code Review Best Practices Guide
2
+
3
+ > Based on the latest code review standards and tools from major language communities (2024-2025)
4
+
5
+ ## Table of Contents
6
+
7
+ - [Universal Review Principles](#universal-review-principles)
8
+ - [Python](#python)
9
+ - [TypeScript / JavaScript](#typescript--javascript)
10
+ - [React](#react)
11
+ - [Vue.js](#vuejs)
12
+ - [Angular](#angular)
13
+ - [Go](#go)
14
+ - [Java / Spring Boot](#java--spring-boot)
15
+ - [Rust](#rust)
16
+ - [C# / .NET](#c--net)
17
+ - [Multi-Language Security Checklist](#multi-language-security-checklist)
18
+
19
+ ---
20
+
21
+ ## Universal Review Principles
22
+
23
+ ### OWASP Top 10 Security Checks (Applicable to All Languages)
24
+
25
+ | Vulnerability Type | Check Points | Tools |
26
+ |-------------------|--------------|-------|
27
+ | **Injection Attacks** | SQL/Command/LDAP injection, parameterized queries | Bandit, ESLint-security |
28
+ | **Authentication Failure** | Password storage, session management, token expiry | Security scanners |
29
+ | **Sensitive Data Exposure** | Encryption algorithms, TLS config, log scrubbing | Code search |
30
+ | **XXE** | XML parser config, disable external entities | SAST tools |
31
+ | **Access Control** | Permission checks, least privilege principle | Manual review |
32
+ | **Security Config** | Default config, error message leakage | Config scan |
33
+ | **XSS** | Output encoding, CSP policy | ESLint, DOMPurify |
34
+ | **Deserialization** | Deserialization of untrusted data | Static analysis |
35
+ | **Component Vulnerabilities** | Dependency versions, known vulnerabilities | npm audit, Snyk |
36
+ | **Logging & Monitoring** | Audit logs, anomaly detection | Log audit |
37
+
38
+ ---
39
+
40
+ ## Python
41
+
42
+ ### Tool Stack
43
+
44
+ ```bash
45
+ # Install complete toolchain
46
+ pip install pylint flake8 bandit mypy black isort
47
+
48
+ # Run checks
49
+ pylint src/
50
+ flake8 src/
51
+ mypy src/
52
+ bandit -r src/ # Security scan
53
+ black --check src/ # Format check
54
+ ```
55
+
56
+ ### Key Checklist
57
+
58
+ | Category | Check Item | Incorrect Example | Correct Example |
59
+ |----------|------------|-------------------|-----------------|
60
+ | **Readability** | PEP 8 naming conventions | `def Calc_Area(r):` | `def calculate_area(radius):` |
61
+ | **Type Safety** | Type annotations | `def add(a, b):` | `def add(a: int, b: int) -> int:` |
62
+ | **Security** | SQL injection | `f"SELECT * FROM users WHERE id={id}"` | `cursor.execute("SELECT * FROM users WHERE id=?", (id,))` |
63
+ | **Security** | Hardcoded credentials | `API_KEY = "sk-123..."` | `API_KEY = os.environ.get("API_KEY")` |
64
+ | **Error Handling** | Exception catching | `except Exception: pass` | `except FileNotFoundError: logger.error(...); raise` |
65
+ | **Resource Management** | Context managers | `file = open("data.txt")` | `with open("data.txt") as file:` |
66
+
67
+ ### Common Pitfalls
68
+
69
+ ```python
70
+ # ❌ Mutable default arguments - Most common Python bug
71
+ def append_to(element, to=[]): # Default list created once at function definition
72
+ to.append(element)
73
+ return to
74
+
75
+ # ✅ Correct approach
76
+ def append_to(element, to=None):
77
+ if to is None:
78
+ to = []
79
+ to.append(element)
80
+ return to
81
+
82
+ # ❌ Late binding in closures
83
+ funcs = [lambda x: x * i for i in range(3)]
84
+ # funcs[0](1), funcs[1](1), funcs[2](1) all return 2
85
+
86
+ # ✅ Correct approach
87
+ funcs = [lambda x, i=i: x * i for i in range(3)]
88
+
89
+ # ❌ Modifying list while iterating
90
+ items = [1, 2, 3, 4, 5]
91
+ for item in items:
92
+ if item % 2 == 0:
93
+ items.remove(item) # Skips elements
94
+
95
+ # ✅ Correct approach
96
+ items = [item for item in items if item % 2 != 0]
97
+ ```
98
+
99
+ ### FastAPI/Django Specific Checks
100
+
101
+ | Framework | Check Item | Risk |
102
+ |-----------|------------|------|
103
+ | **FastAPI** | Blocking calls in async functions | Event loop blocking |
104
+ | **FastAPI** | Dependency injection order | Resources not properly cleaned |
105
+ | **Django** | `select_related` / `prefetch_related` | N+1 queries |
106
+ | **Django** | CSRF protection | CSRF attacks |
107
+
108
+ ---
109
+
110
+ ## TypeScript / JavaScript
111
+
112
+ ### Tool Stack
113
+
114
+ ```bash
115
+ # Install toolchain
116
+ npm install -D eslint typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin
117
+
118
+ # ESLint config (eslint.config.js)
119
+ import js from "@eslint/js";
120
+ import tseslint from "typescript-eslint";
121
+
122
+ export default tseslint.config({
123
+ files: ["**/*.ts", "**/*.tsx"],
124
+ extends: [
125
+ js.configs.recommended,
126
+ tseslint.configs.recommended,
127
+ ],
128
+ rules: {
129
+ "@typescript-eslint/no-explicit-any": "error",
130
+ "@typescript-eslint/explicit-function-return-type": "warn",
131
+ },
132
+ });
133
+ ```
134
+
135
+ ### Key Checklist
136
+
137
+ | Category | Check Item | Incorrect Example | Correct Example |
138
+ |----------|------------|-------------------|-----------------|
139
+ | **Type Safety** | Avoid any | `function process(data: any)` | `function process(data: UserData)` |
140
+ | **Null Handling** | Optional chaining | `user.profile.name` | `user?.profile?.name` |
141
+ | **Equality** | Strict equality | `if (a == b)` | `if (a === b)` |
142
+ | **Promise** | Error handling | `promise.then(...)` | `promise.then(...).catch(...)` |
143
+ | **Async** | await usage | `async function f() { return promise }` | `async function f() { return await promise }` |
144
+
145
+ ### Common Pitfalls
146
+
147
+ ```typescript
148
+ // ❌ Closure trap - this context lost
149
+ class Counter {
150
+ count = 0;
151
+ increment() {
152
+ setTimeout(function() {
153
+ this.count++; // this is undefined or window
154
+ }, 100);
155
+ }
156
+ }
157
+
158
+ // ✅ Correct approach
159
+ class Counter {
160
+ count = 0;
161
+ increment() {
162
+ setTimeout(() => {
163
+ this.count++; // Arrow function preserves this context
164
+ }, 100);
165
+ }
166
+ }
167
+
168
+ // ❌ Unhandled Promise rejection
169
+ async function fetchData() {
170
+ const response = await fetch('/api/data');
171
+ return response.json(); // Didn't check response.ok
172
+ }
173
+
174
+ // ✅ Correct approach
175
+ async function fetchData() {
176
+ const response = await fetch('/api/data');
177
+ if (!response.ok) {
178
+ throw new Error(`HTTP error! status: ${response.status}`);
179
+ }
180
+ return response.json();
181
+ }
182
+
183
+ // ❌ Array mutation method misuse
184
+ const original = [3, 1, 2];
185
+ const sorted = original.sort(); // original is also modified!
186
+
187
+ // ✅ Correct approach
188
+ const sorted = [...original].sort();
189
+ ```
190
+
191
+ ---
192
+
193
+ ## React
194
+
195
+ ### Tool Stack
196
+
197
+ ```bash
198
+ # Install React Hooks ESLint plugin
199
+ npm install -D eslint-plugin-react-hooks
200
+
201
+ # ESLint configuration
202
+ {
203
+ "plugins": ["react-hooks"],
204
+ "rules": {
205
+ "react-hooks/rules-of-hooks": "error",
206
+ "react-hooks/exhaustive-deps": "warn"
207
+ }
208
+ }
209
+ ```
210
+
211
+ ### Hooks Rules Check (Most Important)
212
+
213
+ | Rule | Incorrect Example | Explanation |
214
+ |------|-------------------|-------------|
215
+ | **Hook in condition** | `if (cond) { const [x] = useState(0) }` | Hooks must be called at top level |
216
+ | **Hook in loop** | `for (...) { useEffect(...) }` | Hook call order must be consistent |
217
+ | **Hook in nested function** | `function handler() { useState(0) }` | Hooks can only be called in components or custom hooks |
218
+ | **Hook in class component** | `class C { render() { useEffect() } }` | Hooks cannot be used in class components |
219
+
220
+ ### Performance Pitfalls
221
+
222
+ ```tsx
223
+ // ❌ useMemo vs useEffect misuse - Most common React performance issue
224
+ const Component = ({ items }) => {
225
+ const [computedValue, setComputedValue] = useState(0);
226
+
227
+ // Wrong: Using useEffect to set derived state
228
+ useEffect(() => {
229
+ setComputedValue(items.reduce((sum, item) => sum + item.value, 0));
230
+ }, [items]);
231
+
232
+ return <div>{computedValue}</div>;
233
+ };
234
+
235
+ // ✅ Correct: Use useMemo for derived values
236
+ const Component = ({ items }) => {
237
+ const computedValue = useMemo(() => {
238
+ return items.reduce((sum, item) => sum + item.value, 0);
239
+ }, [items]);
240
+
241
+ return <div>{computedValue}</div>;
242
+ };
243
+
244
+ // ❌ Incomplete useEffect dependencies
245
+ useEffect(() => {
246
+ const options = createOptions(); // Changes every render
247
+ const connection = createConnection(options);
248
+ connection.connect();
249
+ return () => connection.disconnect();
250
+ }, [createOptions]); // Dependency changes every time!
251
+
252
+ // ✅ Correct: Use useCallback to stabilize function reference
253
+ const createOptions = useCallback(() => {
254
+ return { serverUrl, roomId };
255
+ }, [serverUrl, roomId]);
256
+
257
+ // ❌ Missing cleanup function - Memory leak
258
+ useEffect(() => {
259
+ const subscription = eventSource.subscribe(handler);
260
+ // No cleanup!
261
+ }, []);
262
+
263
+ // ✅ Correct: Return cleanup function
264
+ useEffect(() => {
265
+ const subscription = eventSource.subscribe(handler);
266
+ return () => subscription.unsubscribe();
267
+ }, []);
268
+
269
+ // ❌ Non-unique key or using index as key
270
+ {items.map((item, index) => (
271
+ <Item key={index} data={item} /> // Problems with reordering
272
+ ))}
273
+
274
+ // ✅ Correct: Use stable unique key
275
+ {items.map((item) => (
276
+ <Item key={item.id} data={item} />
277
+ ))}
278
+ ```
279
+
280
+ ### Security Checks
281
+
282
+ ```tsx
283
+ // ❌ XSS risk - dangerouslySetInnerHTML
284
+ const MarkdownPreview = ({ content }) => {
285
+ // User-provided content may contain malicious scripts
286
+ return <div dangerouslySetInnerHTML={{ __html: content }} />;
287
+ };
288
+
289
+ // ✅ Correct: Use DOMPurify to sanitize
290
+ import DOMPurify from 'dompurify';
291
+
292
+ const MarkdownPreview = ({ content }) => {
293
+ const sanitizedHtml = DOMPurify.sanitize(content);
294
+ return <div dangerouslySetInnerHTML={{ __html: sanitizedHtml }} />;
295
+ };
296
+ ```
297
+
298
+ ---
299
+
300
+ ## Vue.js
301
+
302
+ ### XSS Protection Check (Most Important)
303
+
304
+ ```vue
305
+ <!-- ❌ XSS risk - v-html with user input -->
306
+ <template>
307
+ <span v-html="userInput" /> <!-- Dangerous! -->
308
+ </template>
309
+
310
+ <!-- ✅ Correct: Use DOMPurify or v-dompurify-html -->
311
+ <template>
312
+ <div v-dompurify-html="userInput"></div>
313
+ </template>
314
+
315
+ <script setup>
316
+ import { ref } from 'vue';
317
+ // npm install vue-dompurify-html
318
+ const userInput = ref('<span style="color: red">Safe</span>');
319
+ </script>
320
+ ```
321
+
322
+ ### Key Checklist
323
+
324
+ | Category | Check Item | Risk |
325
+ |----------|------------|------|
326
+ | **XSS** | `v-html` with user input | XSS attack |
327
+ | **URL Injection** | `:href="userProvidedUrl"` | javascript: protocol attack |
328
+ | **Style Injection** | `:style="userProvidedStyle"` | CSS injection attack |
329
+ | **Template Injection** | Server-side rendering of user input | Template injection attack |
330
+ | **v-if/v-for** | Using both on same element | Performance issues, priority issues |
331
+ | **Reactivity Loss** | Destructuring props or reactive objects | Reactivity loss |
332
+
333
+ ### Common Pitfalls
334
+
335
+ ```vue
336
+ <script setup>
337
+ import { reactive, toRefs } from 'vue';
338
+
339
+ // ❌ Reactivity loss
340
+ const state = reactive({ count: 0 });
341
+ const { count } = state; // count is no longer reactive
342
+
343
+ // ✅ Correct: Use toRefs
344
+ const { count } = toRefs(state); // count is reactive
345
+
346
+ // ❌ Lifecycle cleanup omission
347
+ onMounted(() => {
348
+ window.addEventListener('resize', handleResize);
349
+ // No cleanup!
350
+ });
351
+
352
+ // ✅ Correct: Clean up in onUnmounted
353
+ onMounted(() => {
354
+ window.addEventListener('resize', handleResize);
355
+ });
356
+ onUnmounted(() => {
357
+ window.removeEventListener('resize', handleResize);
358
+ });
359
+ </script>
360
+ ```
361
+
362
+ ---
363
+
364
+ ## Angular
365
+
366
+ ### Security Configuration Check
367
+
368
+ ```typescript
369
+ // ✅ XSRF protection configuration
370
+ import { provideHttpClient, withXsrfConfiguration } from '@angular/common/http';
371
+
372
+ export const appConfig: ApplicationConfig = {
373
+ providers: [
374
+ provideHttpClient(
375
+ withXsrfConfiguration({
376
+ cookieName: 'XSRF-TOKEN',
377
+ headerName: 'X-XSRF-TOKEN'
378
+ })
379
+ ),
380
+ ]
381
+ };
382
+
383
+ // ✅ Secure HTTP interceptor
384
+ @Injectable()
385
+ export class AuthInterceptor implements HttpInterceptor {
386
+ intercept(req: HttpRequest<any>, next: HttpHandler) {
387
+ const token = localStorage.getItem('authToken');
388
+ const clonedReq = token
389
+ ? req.clone({
390
+ setHeaders: { Authorization: `Bearer ${token}` },
391
+ })
392
+ : req;
393
+ return next.handle(clonedReq);
394
+ }
395
+ }
396
+ ```
397
+
398
+ ### XSS Protection
399
+
400
+ ```typescript
401
+ // Angular escapes HTML by default for bound values
402
+ // ❌ Dangerous: Bypassing security check
403
+ import { DomSanitizer } from '@angular/platform-browser';
404
+
405
+ @Component({...})
406
+ export class MyComponent {
407
+ constructor(private sanitizer: DomSanitizer) {}
408
+
409
+ // Dangerous! Only use when content is guaranteed safe
410
+ trustedHtml = this.sanitizer.bypassSecurityTrustHtml(userInput);
411
+ }
412
+
413
+ // ✅ Correct: Let Angular handle escaping
414
+ @Component({
415
+ template: `<div>{{ userInput }}</div>` // Auto-escaped
416
+ })
417
+ ```
418
+
419
+ ---
420
+
421
+ ## Go
422
+
423
+ ### Tool Stack
424
+
425
+ ```bash
426
+ # Install golangci-lint
427
+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
428
+
429
+ # Run checks
430
+ golangci-lint run ./...
431
+
432
+ # Data race detection (Most Important)
433
+ go test -race ./...
434
+ go run -race main.go
435
+ go build -race
436
+ ```
437
+
438
+ ### Concurrency Safety Check (Most Important)
439
+
440
+ ```go
441
+ // ❌ Data race - Go's most dangerous hidden bug
442
+ package main
443
+
444
+ import (
445
+ "fmt"
446
+ "sync"
447
+ )
448
+
449
+ var counter int // Shared state
450
+
451
+ func main() {
452
+ var wg sync.WaitGroup
453
+ for i := 0; i < 1000; i++ {
454
+ wg.Add(1)
455
+ go func() {
456
+ counter++ // Data race!
457
+ wg.Done()
458
+ }()
459
+ }
460
+ wg.Wait()
461
+ fmt.Println(counter) // Result is non-deterministic
462
+ }
463
+
464
+ // ✅ Correct: Use Mutex
465
+ var (
466
+ counter int
467
+ mu sync.Mutex
468
+ )
469
+
470
+ func increment() {
471
+ mu.Lock()
472
+ counter++
473
+ mu.Unlock()
474
+ }
475
+
476
+ // ✅ Or use atomic operations
477
+ import "sync/atomic"
478
+
479
+ var counter int64
480
+
481
+ func increment() {
482
+ atomic.AddInt64(&counter, 1)
483
+ }
484
+
485
+ // ❌ Concurrent map access - fatal error
486
+ m := make(map[int]int)
487
+ go func() { m[1] = 1 }() // Write
488
+ go func() { _ = m[1] }() // Read
489
+ // fatal error: concurrent map read and map write
490
+
491
+ // ✅ Correct: Use sync.Map
492
+ var m sync.Map
493
+ m.Store(1, 1)
494
+ v, _ := m.Load(1)
495
+ ```
496
+
497
+ ### Key Checklist
498
+
499
+ | Category | Check Item | Detection Method |
500
+ |----------|------------|------------------|
501
+ | **Data Race** | Shared variable concurrent access | `go test -race` |
502
+ | **Goroutine Leak** | Unclosed channels | Code review |
503
+ | **Deadlock** | Mutex nested locking | go-deadlock library |
504
+ | **Map Concurrency** | Non-thread-safe map | `go build -race` |
505
+ | **Error Handling** | Ignored returned errors | golangci-lint |
506
+
507
+ ---
508
+
509
+ ## Java / Spring Boot
510
+
511
+ ### Tool Stack
512
+
513
+ ```xml
514
+ <!-- Maven configuration -->
515
+ <plugin>
516
+ <groupId>com.github.spotbugs</groupId>
517
+ <artifactId>spotbugs-maven-plugin</artifactId>
518
+ <version>4.8.3</version>
519
+ </plugin>
520
+ <plugin>
521
+ <groupId>org.apache.maven.plugins</groupId>
522
+ <artifactId>maven-checkstyle-plugin</artifactId>
523
+ <version>3.3.0</version>
524
+ </plugin>
525
+
526
+ <!-- Dependency vulnerability check -->
527
+ <plugin>
528
+ <groupId>org.owasp</groupId>
529
+ <artifactId>dependency-check-maven</artifactId>
530
+ <version>9.0.0</version>
531
+ </plugin>
532
+ ```
533
+
534
+ ```bash
535
+ # Run checks
536
+ mvn spotbugs:check
537
+ mvn checkstyle:check
538
+ mvn org.owasp:dependency-check-maven:check
539
+ ```
540
+
541
+ ### Key Checklist
542
+
543
+ | Category | Check Item | SpotBugs Rule |
544
+ |----------|------------|---------------|
545
+ | **Null Pointer** | NPE risk | NP_NULL_ON_SOME_PATH |
546
+ | **Resource Leak** | Unclosed streams/connections | OBL_UNSATISFIED_OBLIGATION |
547
+ | **Concurrency** | Non-thread-safe usage | IS2_INCONSISTENT_SYNC |
548
+ | **Security** | SQL injection | SQL_INJECTION_* |
549
+ | **Performance** | Inefficient loops | WMI_WRONG_MAP_ITERATOR |
550
+
551
+ ### Spring Boot Security Check
552
+
553
+ ```java
554
+ // ❌ SQL injection risk
555
+ @Repository
556
+ public class UserRepository {
557
+ public User findByUsername(String username) {
558
+ String sql = "SELECT * FROM users WHERE username = '" + username + "'";
559
+ return jdbcTemplate.queryForObject(sql, new UserRowMapper());
560
+ }
561
+ }
562
+
563
+ // ✅ Correct: Use parameterized queries
564
+ @Repository
565
+ public class UserRepository {
566
+ public User findByUsername(String username) {
567
+ String sql = "SELECT * FROM users WHERE username = ?";
568
+ return jdbcTemplate.queryForObject(sql, new UserRowMapper(), username);
569
+ }
570
+ }
571
+
572
+ // ✅ Or use JPA
573
+ @Repository
574
+ public interface UserRepository extends JpaRepository<User, Long> {
575
+ @Query("SELECT u FROM User u WHERE u.username = :username")
576
+ User findByUsername(@Param("username") String username);
577
+ }
578
+ ```
579
+
580
+ ---
581
+
582
+ ## Rust
583
+
584
+ ### Tool Stack
585
+
586
+ ```bash
587
+ # Clippy - Rust official linter
588
+ cargo clippy --all-targets --all-features -- -D warnings
589
+
590
+ # Auto-fix
591
+ cargo clippy --fix --all-targets --all-features
592
+
593
+ # Security audit
594
+ cargo audit
595
+ ```
596
+
597
+ ### Clippy Configuration (Recommended to Enable)
598
+
599
+ ```rust
600
+ // Cargo.toml or top of lib.rs
601
+ #![warn(
602
+ // Arithmetic safety
603
+ clippy::cast_possible_truncation,
604
+ clippy::cast_sign_loss,
605
+ clippy::cast_possible_wrap,
606
+ clippy::arithmetic_side_effects,
607
+
608
+ // Error handling
609
+ clippy::unwrap_used,
610
+ clippy::expect_used,
611
+ clippy::panicking_unwrap,
612
+
613
+ // Array index safety
614
+ clippy::indexing_slicing,
615
+ )]
616
+
617
+ // ❌ Dangerous: Using unwrap directly
618
+ fn get_user(id: u64) -> User {
619
+ users.get(&id).unwrap() // May panic
620
+ }
621
+
622
+ // ✅ Correct: Return Option or Result
623
+ fn get_user(id: u64) -> Option<&User> {
624
+ users.get(&id)
625
+ }
626
+
627
+ // ✅ Or use ? operator
628
+ fn get_user(id: u64) -> Result<&User, Error> {
629
+ users.get(&id).ok_or(Error::NotFound)
630
+ }
631
+ ```
632
+
633
+ ### Unsafe Code Review
634
+
635
+ ```rust
636
+ // Unsafe code review checklist:
637
+ // 1. Necessity: Is unsafe really needed? Are there safe alternatives?
638
+ // 2. Minimal scope: Is the unsafe block as small as possible?
639
+ // 3. Documentation: Is there # Safety documentation explaining preconditions?
640
+ // 4. Testing: Is there Miri testing?
641
+
642
+ // ✅ Correct unsafe usage pattern
643
+ /// # Safety
644
+ ///
645
+ /// - `ptr` must be a valid pointer to initialized memory
646
+ /// - The memory must not be mutably aliased
647
+ unsafe fn dereference(ptr: *const i32) -> i32 {
648
+ // SAFETY: Caller guarantees ptr is valid and not aliased
649
+ *ptr
650
+ }
651
+ ```
652
+
653
+ ---
654
+
655
+ ## C# / .NET
656
+
657
+ ### Tool Stack
658
+
659
+ ```xml
660
+ <!-- .csproj configuration -->
661
+ <PropertyGroup>
662
+ <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
663
+ <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
664
+ </PropertyGroup>
665
+
666
+ <ItemGroup>
667
+ <PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0">
668
+ <PrivateAssets>all</PrivateAssets>
669
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
670
+ </PackageReference>
671
+ <PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556">
672
+ <PrivateAssets>all</PrivateAssets>
673
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
674
+ </PackageReference>
675
+ <PackageReference Include="Roslynator.Analyzers" Version="4.14.1">
676
+ <PrivateAssets>all</PrivateAssets>
677
+ <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
678
+ </PackageReference>
679
+ </ItemGroup>
680
+ ```
681
+
682
+ ```bash
683
+ # Run analysis
684
+ dotnet build
685
+
686
+ # Security audit
687
+ dotnet list package --vulnerable
688
+
689
+ # Roslynator CLI
690
+ roslynator analyze MyProject.csproj
691
+ ```
692
+
693
+ ### .editorconfig Configuration
694
+
695
+ ```ini
696
+ [*.cs]
697
+ # Enable all .NET analyzers
698
+ dotnet_analyzer_diagnostic.severity = warning
699
+
700
+ # Set security rules as errors
701
+ dotnet_diagnostic.CA2100.severity = error # SQL injection
702
+ dotnet_diagnostic.CA3001.severity = error # SQL injection
703
+ dotnet_diagnostic.CA3002.severity = error # XSS
704
+ dotnet_diagnostic.CA3003.severity = error # File path injection
705
+ dotnet_diagnostic.CA3004.severity = error # Information disclosure
706
+
707
+ # Code quality
708
+ dotnet_diagnostic.IDE0090.severity = warning # Use new(...)
709
+ dotnet_diagnostic.IDE0028.severity = warning # Simplify collection initialization
710
+ ```
711
+
712
+ ### Key Checklist
713
+
714
+ ```csharp
715
+ // ❌ IDisposable not properly handled
716
+ public void ProcessFile(string path) {
717
+ var stream = File.OpenRead(path);
718
+ var data = stream.ReadByte();
719
+ // stream not closed!
720
+ }
721
+
722
+ // ✅ Correct: Use using statement
723
+ public void ProcessFile(string path) {
724
+ using var stream = File.OpenRead(path);
725
+ var data = stream.ReadByte();
726
+ }
727
+
728
+ // ❌ Async method blocking call
729
+ public void BadAsync() {
730
+ var result = GetDataAsync().Result; // Deadlock risk!
731
+ }
732
+
733
+ // ✅ Correct: Async all the way
734
+ public async Task GoodAsync() {
735
+ var result = await GetDataAsync();
736
+ }
737
+
738
+ // ❌ Null reference exception risk
739
+ public string GetName(User user) {
740
+ return user.Profile.Name; // NRE risk
741
+ }
742
+
743
+ // ✅ Correct: Null check
744
+ public string? GetName(User? user) {
745
+ return user?.Profile?.Name;
746
+ }
747
+ ```
748
+
749
+ ---
750
+
751
+ ## Multi-Language Security Checklist
752
+
753
+ ### 10-Point Security Review Checklist (Applicable to All Languages)
754
+
755
+ | # | Check Item | Description | Tools |
756
+ |---|------------|-------------|-------|
757
+ | 1 | **Input Validation** | Type, length, format, range validation | Static analysis |
758
+ | 2 | **Authentication & Authorization** | Session management, password storage, permission checks | Security scan |
759
+ | 3 | **Data Encryption** | TLS, encryption algorithms, key management | Config review |
760
+ | 4 | **Exception Handling** | Error message leakage, resource cleanup | Code review |
761
+ | 5 | **Dependency Management** | Known vulnerabilities, version compatibility | npm audit / pip-audit |
762
+ | 6 | **API Security** | Authentication, rate limiting, data validation | API testing |
763
+ | 7 | **CSRF Protection** | Token validation, SameSite Cookie | Framework config |
764
+ | 8 | **Code Execution** | Don't execute user input, template injection | Static analysis |
765
+ | 9 | **Business Logic** | Permission bypass, payment flow vulnerabilities | Manual review |
766
+ | 10 | **Code Quality** | Readability, documentation, test coverage | Linter |
767
+
768
+ ### Quick Check Commands Summary for Each Language
769
+
770
+ ```bash
771
+ # Python
772
+ pylint src/ && mypy src/ && bandit -r src/ && pip-audit
773
+
774
+ # TypeScript/JavaScript
775
+ npx eslint . && npx tsc --noEmit && npm audit
776
+
777
+ # Go
778
+ golangci-lint run && go test -race ./...
779
+
780
+ # Java
781
+ mvn spotbugs:check && mvn checkstyle:check && mvn dependency-check:check
782
+
783
+ # Rust
784
+ cargo clippy -- -D warnings && cargo audit && cargo +nightly miri test
785
+
786
+ # C#
787
+ dotnet build /warnaserror && dotnet list package --vulnerable
788
+ ```
789
+
790
+ ---
791
+
792
+ ## Reference Resources
793
+
794
+ - [OWASP Code Review Guide](https://owasp.org/www-project-code-review-guide/)
795
+ - [Google Style Guides](https://google.github.io/styleguide/)
796
+ - [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript)
797
+ - [PEP 8 - Python Style Guide](https://peps.python.org/pep-0008/)
798
+ - [Effective Rust](https://effective-rust.com/)
799
+ - [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)
800
+ - [Microsoft C# Coding Conventions](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions)