Cursor rule
.cursor/rules/quality.mdcCode quality checklist and anti-patterns to avoid before shipping
Cursor rules
Quality
88/100
Scores the file, not the repository.Length
463 words
10 headings · 3 code blocksRepository
63
— · pushed 15 days agoLast changed
3 days ago
First indexed 3 days ago.1234567# Quality Checklist Rules89## Pre-Ship Quality Gates1011### Code Architecture Quality12- [ ] **No monolithic components** - Each component under 300 lines with single responsibility13- [ ] **Logic extraction** - Reusable logic moved to custom hooks, not duplicated14- [ ] **Type safety** - Shared interfaces defined in `lib/types.ts` and reused15- [ ] **Service layer** - API calls abstracted to service functions, not inline16- [ ] **Proper imports** - Using path aliases (@/) and organized import groups17- [ ] **Validation schemas** - Zod schemas shared and reused across components18- [ ] **Component composition** - Complex UI built from smaller, focused components1920### Design Quality21- [ ] Uses intentional color palette that serves the design purpose22- [ ] Has proper visual hierarchy with varied typography scales23- [ ] Includes subtle animations and micro-interactions24- [ ] Features generous whitespace and purposeful spacing25- [ ] All interactive elements have clear hover/active states26- [ ] **Accessibility standards are met (proper contrast, focus states)**27- [ ] Mobile experience is thoughtfully designed28- [ ] Maintains cohesive visual story throughout29- [ ] Design feels custom-crafted, not template-like30- [ ] Visual identity matches target industry and audience31- [ ] Color choices enhance user experience and brand message3233### Essential Commands Check34```bash35npm run lint # MUST pass before shipping36npm run build # MUST succeed without errors37```3839### NEVER Ship Code That:40- Contains components over 300 lines mixing multiple concerns41- Has duplicated logic that could be extracted to hooks42- Uses inline API calls instead of service layer43- Lacks proper TypeScript interfaces44- Has accessibility contrast violations45- Contains copy-pasted code blocks46- Mixes business logic with presentation layer47- Has console errors or warnings48- Fails ESLint checks4950### Development Workflow511. Run `npm run dev` to start development522. Follow component size limits (300 lines max)533. Extract reusable logic to hooks544. Test responsive design on mobile/desktop555. Verify accessibility contrast ratios566. Run `npm run lint` and fix all issues577. Ensure no console errors before shipping5859## Common Anti-Patterns to Avoid6061### Component Anti-Patterns62```tsx63// DON'T: Monolithic component64const BadDashboard = () => {65 // 400+ lines of mixed concerns66 const [users, setUsers] = useState([])67 const [products, setProducts] = useState([])68 // ... massive component69}7071// DO: Composition pattern72const GoodDashboard = () => (73 <PageLayout>74 <DashboardHeader />75 <DashboardMetrics />76 <DashboardCharts />77 </PageLayout>78)79```8081### Data Fetching Anti-Patterns82```tsx83// DON'T: Inline API calls84const BadComponent = () => {85 useEffect(() => {86 fetch('/api/users').then(res => res.json()).then(setUsers)87 }, [])88}8990// DO: Service layer + custom hooks91const GoodComponent = () => {92 const { data: users } = useUsers()93}94```95
Also in chihebnabil/lovable-boilerplate
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| chihebnabil/lovable-boilerplate.cursor/rules/design.mdc · 63 | Cursor rules | styleuido-not | 65/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/forms.mdc · 63 | Cursor rules | setupstyledo-not | 73/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/hooks.mdc · 63 | Cursor rules | styleuido-not | 61/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/services.mdc · 63 | Cursor rules | archtypesdo-not | 73/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/typescript.mdc · 63 | Cursor rules | setupstyletypessecurity+2 | 73/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/architecture.instructions.md · 63 | Copilot instructions | stylearchtypesdatabase+2 | 69/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/design.instructions.md · 63 | Copilot instructions | lint-formatstyleuido-not | 61/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/development.instructions.md · 63 | Copilot instructions | setupbuildtestlint-format+7 | 88/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/hooks.instructions.md · 63 | Copilot instructions | styleui | 54/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/lib.instructions.md · 63 | Copilot instructions | archtypesdo-not | 69/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/pages.instructions.md · 63 | Copilot instructions | archuido-not | 69/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/quality.instructions.md · 63 | Copilot instructions | lint-formatdeploymentdo-not | 63/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/reusable.instructions.md · 63 | Copilot instructions | uido-notagent-behaviour | 32/100 | 3 days ago | |
| chihebnabil/lovable-boilerplateCLAUDE.md · 63 | CLAUDE.md | setupbuildtestlint-format+5 | 89/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/core.mdc · 63 | Cursor rules | buildlint-formatarchui+1 | 92/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/components.instructions.md · 63 | Copilot instructions | styleuido-not | 61/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/global.instructions.md · 63 | Copilot instructions | buildlint-formatstylearch+4 | 100/100 | 3 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/components.mdc · 63 | Cursor rules | stylearchuido-not | 65/100 | 3 days ago |
Diff against .cursor/rules/design.mdc Diff against .cursor/rules/forms.mdc Diff against .cursor/rules/hooks.mdc Diff against .cursor/rules/services.mdc Diff against .cursor/rules/typescript.mdc Diff against .github/instructions/architecture.instructions.md Diff against .github/instructions/design.instructions.md Diff against .github/instructions/development.instructions.md Diff against .github/instructions/hooks.instructions.md Diff against .github/instructions/lib.instructions.md Diff against .github/instructions/pages.instructions.md Diff against .github/instructions/quality.instructions.md Diff against .github/instructions/reusable.instructions.md Diff against CLAUDE.md Diff against .cursor/rules/core.mdc Diff against .github/instructions/components.instructions.md Diff against .github/instructions/global.instructions.md Diff against .cursor/rules/components.mdc
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 3 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 45 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 3 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 3 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 3 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 45 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 3 days ago |
