@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.
- package/.claude/skills/.temp-skill-index.md +245 -0
- package/.claude/skills/SKILL.md +264 -0
- package/.claude/skills/api-scaffolding/SKILL.md +431 -0
- package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
- package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
- package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
- package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
- package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
- package/.claude/skills/api-testing-observability/SKILL.md +583 -0
- package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
- package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
- package/.claude/skills/brainstorming/SKILL.md +283 -0
- package/.claude/skills/bug-fixing/SKILL.md +382 -0
- package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
- package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
- package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
- package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
- package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
- package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
- package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
- package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
- package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
- package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
- package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
- package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
- package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
- package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
- package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
- package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
- package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
- package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
- package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
- package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
- package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
- package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
- package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
- package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
- package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
- package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
- package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
- package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
- package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
- package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
- package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
- package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
- package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
- package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
- package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
- package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
- package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
- package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
- package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
- package/.claude/skills/code-review/SKILL.md +535 -0
- package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
- package/.claude/skills/code-review/references/automated-analysis.md +456 -0
- package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
- package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
- package/.claude/skills/code-review/references/backend-review.md +868 -0
- package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
- package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
- package/.claude/skills/code-review/references/common-patterns.md +321 -0
- package/.claude/skills/code-review/references/configuration-review.md +425 -0
- package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
- package/.claude/skills/code-review/references/database-review.md +298 -0
- package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
- package/.claude/skills/code-review/references/external-standards.md +51 -0
- package/.claude/skills/code-review/references/feature-review.md +329 -0
- package/.claude/skills/code-review/references/file-review-template.md +326 -0
- package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
- package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
- package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
- package/.claude/skills/code-review/references/frontend-review.md +783 -0
- package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
- package/.claude/skills/code-review/references/fullstack-review.md +477 -0
- package/.claude/skills/code-review/references/functional-completeness.md +386 -0
- package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
- package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
- package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
- package/.claude/skills/code-review/references/iteration-review.md +264 -0
- package/.claude/skills/code-review/references/job-review.md +335 -0
- package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
- package/.claude/skills/code-review/references/logic-completeness.md +535 -0
- package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
- package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
- package/.claude/skills/code-review/references/new-project-review.md +226 -0
- package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
- package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
- package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
- package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
- package/.claude/skills/code-review/references/python-patterns.md +494 -0
- package/.claude/skills/code-review/references/rca-techniques.md +362 -0
- package/.claude/skills/code-review/references/report-template.md +430 -0
- package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
- package/.claude/skills/code-review/references/review-dimensions.md +311 -0
- package/.claude/skills/code-review/references/review-guide.md +202 -0
- package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
- package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
- package/.claude/skills/code-review/references/review-record-template.md +195 -0
- package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
- package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
- package/.claude/skills/containerization/SKILL.md +313 -0
- package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
- package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
- package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
- package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
- package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
- package/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/.claude/skills/frontend-design/SKILL.md +587 -0
- package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
- package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
- package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
- package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
- package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
- package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
- package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
- package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
- package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
- package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
- package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
- package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
- package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
- package/.claude/skills/fullstack-developer/SKILL.md +512 -0
- package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
- package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
- package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
- package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
- package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
- package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
- package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
- package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
- package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
- package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
- package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
- package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
- package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
- package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
- package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
- package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
- package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
- package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
- package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
- package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
- package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
- package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
- package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
- package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
- package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
- package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
- package/.claude/skills/performance-optimization/SKILL.md +250 -0
- package/.claude/skills/product-requirements/SKILL.md +357 -0
- package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
- package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
- package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
- package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
- package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
- package/.claude/skills/product-requirements/references/external-standards.md +62 -0
- package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
- package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
- package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
- package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
- package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
- package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
- package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
- package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
- package/.claude/skills/react-best-practices/SKILL.md +198 -0
- package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
- package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
- package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
- package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
- package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
- package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
- package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
- package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
- package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
- package/.claude/skills/security-audit/SKILL.md +226 -0
- package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
- package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
- package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
- package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
- package/.claude/skills/shared-references/skill-call-graph.md +230 -0
- package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
- package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
- package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
- package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
- package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
- package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
- package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
- package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
- package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
- package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
- package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
- package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
- package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
- package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
- package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
- package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
- package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
- package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
- package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
- package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
- package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
- package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
- package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
- package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
- package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
- package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
- package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
- package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
- package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
- package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
- package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
- package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
- package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
- package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
- package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
- package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
- package/.claude/skills/test-driven-development/SKILL.md +246 -0
- package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
- package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
- package/.claude/skills/using-skillstack/SKILL.md +127 -0
- package/.claude/skills/vercel-deploy/SKILL.md +166 -0
- package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
- package/.claude/skills/verification-before-completion/SKILL.md +305 -0
- package/.claude/skills/writing-plans/SKILL.md +259 -0
- package/README.md +69 -0
- package/bin/cli.js +468 -0
- package/lib/init.js +333 -0
- package/package.json +29 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
# Frontend Expert Review Guide
|
|
2
|
+
|
|
3
|
+
> 20-year experience distilled: Prevention over repair, UX first, systematic quality.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Core Philosophy](#core-philosophy)
|
|
8
|
+
- [New Project Review](#new-project-review)
|
|
9
|
+
- [Version Iteration Review](#version-iteration-review)
|
|
10
|
+
- [New Feature Review](#new-feature-review)
|
|
11
|
+
- [Common Problems & Solutions](#common-problems--solutions)
|
|
12
|
+
- [Tools & Automation](#tools--automation)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Core Philosophy
|
|
17
|
+
|
|
18
|
+
1. **Prevention over repair** — Catch bugs before users see them
|
|
19
|
+
2. **UX first** — Beautiful code is useless if the feature doesn't work
|
|
20
|
+
3. **Type safety** — TypeScript strict mode prevents 40% of runtime errors
|
|
21
|
+
4. **Component isolation** — Test in Storybook before integration
|
|
22
|
+
5. **Performance by default** — Bundle size, Core Web Vitals from day one
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## New Project Review
|
|
27
|
+
|
|
28
|
+
### Architecture Checklist
|
|
29
|
+
|
|
30
|
+
| Aspect | What to Verify | Red Flags |
|
|
31
|
+
|--------|----------------|-----------|
|
|
32
|
+
| **Component Structure** | Atomic design, separation of concerns | God components, mixed logic/UI |
|
|
33
|
+
| **State Management** | Appropriate tool (Zustand/Redux/Context) | Global state abuse, prop drilling |
|
|
34
|
+
| **Routing** | Lazy loading, code splitting | All routes in single bundle |
|
|
35
|
+
| **API Layer** | Centralized, typed, error handling | Scattered fetch calls, no types |
|
|
36
|
+
| **Styling** | CSS-in-JS or Tailwind, design tokens | Inline styles, magic numbers |
|
|
37
|
+
|
|
38
|
+
### Technical Decisions Review
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
## New Project Technical Review
|
|
42
|
+
|
|
43
|
+
### Tech Stack Validation
|
|
44
|
+
- [ ] Framework choice justified (React/Vue/Svelte)
|
|
45
|
+
- [ ] TypeScript strict mode enabled
|
|
46
|
+
- [ ] Linting and formatting configured (ESLint + Prettier)
|
|
47
|
+
- [ ] Test framework setup (Jest + RTL or Vitest)
|
|
48
|
+
- [ ] Build tool optimized (Vite over Webpack for new projects)
|
|
49
|
+
|
|
50
|
+
### Performance Foundation
|
|
51
|
+
- [ ] Bundle analyzer configured
|
|
52
|
+
- [ ] Lazy loading strategy defined
|
|
53
|
+
- [ ] Image optimization pipeline
|
|
54
|
+
- [ ] CDN configuration planned
|
|
55
|
+
- [ ] Core Web Vitals targets set (LCP <2.5s, FID <100ms, CLS <0.1)
|
|
56
|
+
|
|
57
|
+
### Developer Experience
|
|
58
|
+
- [ ] Hot module replacement working
|
|
59
|
+
- [ ] Component development environment (Storybook)
|
|
60
|
+
- [ ] Git hooks for pre-commit checks (Husky)
|
|
61
|
+
- [ ] Documentation for onboarding
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Common New Project Mistakes
|
|
65
|
+
|
|
66
|
+
| Mistake | Impact | Prevention |
|
|
67
|
+
|---------|--------|------------|
|
|
68
|
+
| Over-engineering | Delayed launch, complexity | Start simple, evolve architecture |
|
|
69
|
+
| No design system | UI inconsistency | Establish tokens day one |
|
|
70
|
+
| Skipping TypeScript | Runtime errors | Mandate strict mode |
|
|
71
|
+
| No test infrastructure | Untestable code | Setup tests before first feature |
|
|
72
|
+
| Ignoring accessibility | Legal risk, UX debt | a11y audit from start |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Version Iteration Review
|
|
77
|
+
|
|
78
|
+
### Compatibility Checklist
|
|
79
|
+
|
|
80
|
+
| Check | Method | Risk if Skipped |
|
|
81
|
+
|-------|--------|-----------------|
|
|
82
|
+
| **Browser support** | Browserslist + Babel | Crashes on old browsers |
|
|
83
|
+
| **API compatibility** | Version headers | Breaking client apps |
|
|
84
|
+
| **State migration** | LocalStorage upgrade script | Lost user data |
|
|
85
|
+
| **Feature deprecation** | Console warnings | Sudden breaks |
|
|
86
|
+
|
|
87
|
+
### Regression Prevention
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
## Iteration Regression Checklist
|
|
91
|
+
|
|
92
|
+
### Before Merge
|
|
93
|
+
- [ ] All existing tests pass
|
|
94
|
+
- [ ] No snapshot test changes without review
|
|
95
|
+
- [ ] Visual regression tests (Percy/Chromatic)
|
|
96
|
+
- [ ] Performance benchmarks stable
|
|
97
|
+
- [ ] Bundle size not increased significantly
|
|
98
|
+
|
|
99
|
+
### Deployment Safety
|
|
100
|
+
- [ ] Canary deployment configured
|
|
101
|
+
- [ ] A/B testing for major changes
|
|
102
|
+
- [ ] Rollback procedure documented
|
|
103
|
+
- [ ] Monitoring alerts configured
|
|
104
|
+
- [ ] Error tracking ready (Sentry)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### State Management Evolution
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
// 🔴 BAD: State mutation during iteration
|
|
111
|
+
const [items, setItems] = useState(oldItems);
|
|
112
|
+
items.push(newItem); // Direct mutation!
|
|
113
|
+
setItems(items);
|
|
114
|
+
|
|
115
|
+
// ✅ GOOD: Immutable update pattern
|
|
116
|
+
setItems(prev => [...prev, newItem]);
|
|
117
|
+
|
|
118
|
+
// 🔴 BAD: Stale closure in iteration
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
const interval = setInterval(() => {
|
|
121
|
+
setCount(count + 1); // count is stale!
|
|
122
|
+
}, 1000);
|
|
123
|
+
}, []); // Missing dependency
|
|
124
|
+
|
|
125
|
+
// ✅ GOOD: Functional update
|
|
126
|
+
useEffect(() => {
|
|
127
|
+
const interval = setInterval(() => {
|
|
128
|
+
setCount(c => c + 1);
|
|
129
|
+
}, 1000);
|
|
130
|
+
return () => clearInterval(interval);
|
|
131
|
+
}, []);
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## New Feature Review
|
|
137
|
+
|
|
138
|
+
### Feature Isolation Checklist
|
|
139
|
+
|
|
140
|
+
| Aspect | Verification | Red Flag |
|
|
141
|
+
|--------|--------------|----------|
|
|
142
|
+
| **Scope boundary** | Feature flag wrapped | Global state changes |
|
|
143
|
+
| **Component isolation** | Storybook stories exist | Depends on app context |
|
|
144
|
+
| **API contract** | Types match backend | Field name mismatches |
|
|
145
|
+
| **Error states** | Loading, error, empty handled | Only happy path |
|
|
146
|
+
| **Mobile support** | Responsive, touch-friendly | Desktop-only design |
|
|
147
|
+
|
|
148
|
+
### Feature Development Workflow
|
|
149
|
+
|
|
150
|
+
```markdown
|
|
151
|
+
## Feature Review Workflow
|
|
152
|
+
|
|
153
|
+
### 1. Design Review
|
|
154
|
+
- [ ] UI matches Figma/design spec
|
|
155
|
+
- [ ] All states designed (loading, error, empty, success)
|
|
156
|
+
- [ ] Responsive breakpoints defined
|
|
157
|
+
- [ ] Accessibility requirements clear
|
|
158
|
+
|
|
159
|
+
### 2. Implementation Review
|
|
160
|
+
- [ ] TypeScript types defined
|
|
161
|
+
- [ ] Components follow atomic design
|
|
162
|
+
- [ ] State management appropriate
|
|
163
|
+
- [ ] API integration typed
|
|
164
|
+
- [ ] Error handling complete
|
|
165
|
+
|
|
166
|
+
### 3. Testing Review
|
|
167
|
+
- [ ] Unit tests for logic
|
|
168
|
+
- [ ] Integration tests for API
|
|
169
|
+
- [ ] Visual tests for UI
|
|
170
|
+
- [ ] A11y tests passing
|
|
171
|
+
- [ ] Edge cases covered
|
|
172
|
+
|
|
173
|
+
### 4. Performance Review
|
|
174
|
+
- [ ] No unnecessary re-renders
|
|
175
|
+
- [ ] Lazy loaded if large
|
|
176
|
+
- [ ] Images optimized
|
|
177
|
+
- [ ] Bundle impact measured
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Concurrency & Race Conditions
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
// 🔴 BAD: Race condition in search
|
|
184
|
+
const [query, setQuery] = useState('');
|
|
185
|
+
const [results, setResults] = useState([]);
|
|
186
|
+
|
|
187
|
+
useEffect(() => {
|
|
188
|
+
fetch(`/search?q=${query}`)
|
|
189
|
+
.then(res => res.json())
|
|
190
|
+
.then(setResults); // Race condition: old response overwrites new
|
|
191
|
+
}, [query]);
|
|
192
|
+
|
|
193
|
+
// ✅ GOOD: Abort controller for race prevention
|
|
194
|
+
useEffect(() => {
|
|
195
|
+
const controller = new AbortController();
|
|
196
|
+
|
|
197
|
+
fetch(`/search?q=${query}`, { signal: controller.signal })
|
|
198
|
+
.then(res => res.json())
|
|
199
|
+
.then(setResults)
|
|
200
|
+
.catch(err => {
|
|
201
|
+
if (err.name !== 'AbortError') throw err;
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
return () => controller.abort();
|
|
205
|
+
}, [query]);
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Common Problems & Solutions
|
|
211
|
+
|
|
212
|
+
### Problem Matrix
|
|
213
|
+
|
|
214
|
+
| Problem | Symptom | Root Cause | Solution |
|
|
215
|
+
|---------|---------|------------|----------|
|
|
216
|
+
| **Requirement churn** | Frequent rewrite | No frozen spec | Feature flags, weekly review |
|
|
217
|
+
| **Wrong tech stack** | Maintenance pain | No POC | Prototype 2-3 options |
|
|
218
|
+
| **Bundle bloat** | Slow load | Full imports | Tree shaking, dynamic import |
|
|
219
|
+
| **Style conflicts** | Inconsistent UI | No design system | Enforce tokens, component lib |
|
|
220
|
+
| **Test gaps** | Production bugs | No strategy | Mutation testing, E2E |
|
|
221
|
+
| **A11y violations** | User complaints | Afterthought | Audit from day one |
|
|
222
|
+
|
|
223
|
+
### Performance Optimization Patterns
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
// 🔴 BAD: Import entire library
|
|
227
|
+
import _ from 'lodash';
|
|
228
|
+
_.debounce(fn, 300);
|
|
229
|
+
|
|
230
|
+
// ✅ GOOD: Import only what you need
|
|
231
|
+
import debounce from 'lodash/debounce';
|
|
232
|
+
debounce(fn, 300);
|
|
233
|
+
|
|
234
|
+
// 🔴 BAD: Inline functions cause re-renders
|
|
235
|
+
<Button onClick={() => handleClick(id)} />
|
|
236
|
+
|
|
237
|
+
// ✅ GOOD: Memoized callback
|
|
238
|
+
const handleClick = useCallback(() => {
|
|
239
|
+
doSomething(id);
|
|
240
|
+
}, [id]);
|
|
241
|
+
<Button onClick={handleClick} />
|
|
242
|
+
|
|
243
|
+
// 🔴 BAD: Expensive computation every render
|
|
244
|
+
const sorted = items.sort((a, b) => a.name.localeCompare(b.name));
|
|
245
|
+
|
|
246
|
+
// ✅ GOOD: Memoized computation
|
|
247
|
+
const sorted = useMemo(
|
|
248
|
+
() => items.sort((a, b) => a.name.localeCompare(b.name)),
|
|
249
|
+
[items]
|
|
250
|
+
);
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Tools & Automation
|
|
256
|
+
|
|
257
|
+
### Recommended Tool Stack
|
|
258
|
+
|
|
259
|
+
| Category | Tool | Purpose |
|
|
260
|
+
|----------|------|---------|
|
|
261
|
+
| **Type Safety** | TypeScript (strict) | Prevent runtime errors |
|
|
262
|
+
| **Linting** | ESLint + Prettier | Code consistency |
|
|
263
|
+
| **Testing** | Jest + RTL + Cypress | Coverage pyramid |
|
|
264
|
+
| **Performance** | Lighthouse CI | Core Web Vitals |
|
|
265
|
+
| **A11y** | axe-core | Accessibility audit |
|
|
266
|
+
| **Monitoring** | Sentry | Error tracking |
|
|
267
|
+
| **Bundle** | Webpack Bundle Analyzer | Size optimization |
|
|
268
|
+
|
|
269
|
+
### CI/CD Pipeline Requirements
|
|
270
|
+
|
|
271
|
+
```yaml
|
|
272
|
+
# Minimum frontend CI checks
|
|
273
|
+
- lint: ESLint --max-warnings 0
|
|
274
|
+
- types: tsc --noEmit
|
|
275
|
+
- test: jest --coverage --threshold 80
|
|
276
|
+
- build: vite build
|
|
277
|
+
- audit: npm audit --audit-level high
|
|
278
|
+
- a11y: axe-core scan
|
|
279
|
+
- lighthouse: Performance budget check
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Pre-commit Hooks
|
|
283
|
+
|
|
284
|
+
```json
|
|
285
|
+
// .husky/pre-commit
|
|
286
|
+
{
|
|
287
|
+
"hooks": {
|
|
288
|
+
"pre-commit": "lint-staged"
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// lint-staged.config.js
|
|
293
|
+
{
|
|
294
|
+
"*.{ts,tsx}": [
|
|
295
|
+
"eslint --fix",
|
|
296
|
+
"prettier --write",
|
|
297
|
+
"jest --findRelatedTests"
|
|
298
|
+
]
|
|
299
|
+
}
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Review Report Template
|
|
305
|
+
|
|
306
|
+
```markdown
|
|
307
|
+
# Frontend Code Review Report
|
|
308
|
+
|
|
309
|
+
## Summary
|
|
310
|
+
- **Reviewer**: [Name]
|
|
311
|
+
- **Date**: [Date]
|
|
312
|
+
- **Context**: [New Project / Iteration / Feature]
|
|
313
|
+
- **Verdict**: [APPROVED / CHANGES REQUESTED]
|
|
314
|
+
|
|
315
|
+
## Findings
|
|
316
|
+
|
|
317
|
+
### 🔴 P0 - Blockers
|
|
318
|
+
| Issue | File:Line | Impact | Suggested Fix |
|
|
319
|
+
|-------|-----------|--------|---------------|
|
|
320
|
+
|
|
321
|
+
### 🟠 P1 - Critical
|
|
322
|
+
| Issue | File:Line | Impact | Suggested Fix |
|
|
323
|
+
|-------|-----------|--------|---------------|
|
|
324
|
+
|
|
325
|
+
### 🟡 P2 - Major
|
|
326
|
+
| Issue | File:Line | Impact | Suggested Fix |
|
|
327
|
+
|-------|-----------|--------|---------------|
|
|
328
|
+
|
|
329
|
+
## Checklist Completion
|
|
330
|
+
- [ ] TypeScript types correct
|
|
331
|
+
- [ ] Tests adequate
|
|
332
|
+
- [ ] Performance acceptable
|
|
333
|
+
- [ ] Accessibility verified
|
|
334
|
+
- [ ] Mobile responsive
|
|
335
|
+
- [ ] Error handling complete
|
|
336
|
+
|
|
337
|
+
## Similar Bug Hunt
|
|
338
|
+
**Pattern searched**: [Description]
|
|
339
|
+
**Files checked**: [Count]
|
|
340
|
+
**Issues found**: [Count]
|
|
341
|
+
```
|
|
342
|
+
|