# IGNY8 Development Rules # ======================== # These rules MUST be followed for all code changes. # Version: 1.8.4 | Last Updated: January 20, 2026 ## 📋 MANDATORY CHECKLIST (Every Change) Before submitting ANY code change: 1. [ ] Documentation updated (if behavior changed) 2. [ ] CHANGELOG.md updated (if user-facing) 3. [ ] Design guide followed (frontend changes) 4. [ ] Types/interfaces match API responses 5. [ ] No hardcoded values (use constants/settings) --- ## 🗂️ Project Structure ``` / ├── INDEX.md # Start here ├── DESIGN-GUIDE.md # UI/UX standards (MANDATORY) ├── CHANGELOG.md # All notable changes ├── README.md # Setup & overview ├── docs/ # Detailed documentation │ ├── 00-SYSTEM/ # Architecture & core concepts │ ├── 10-MODULES/ # Business logic modules │ ├── 20-API/ # API endpoints │ ├── 30-FRONTEND/ # React components & stores │ ├── 40-WORKFLOWS/ # Business processes │ ├── 50-DEPLOYMENT/ # DevOps & infrastructure │ ├── 60-PLUGINS/ # Plugin system │ └── 90-REFERENCE/ # Models, enums, glossary ├── backend/ # Django app └── frontend/ # React app ``` --- ## 📝 Documentation Rules ### When to Update Docs | Change Type | Update Required | |-------------|-----------------| | New API endpoint | `docs/20-API/ENDPOINTS.md` | | New model | `docs/90-REFERENCE/MODELS.md` | | New route/page | `docs/30-FRONTEND/PAGES.md` | | New store | `docs/30-FRONTEND/STORES.md` | | UI component | `docs/30-FRONTEND/COMPONENT-SYSTEM.md` | | Settings change | `docs/00-SYSTEM/ARCHITECTURE.md` | | New module | `docs/10-MODULES/.md` | | New Celery task | Document in module's backend docs | ### Documentation Standards ```markdown # Document Title > Brief one-line description **Version:** X.Y.Z **Last Updated:** YYYY-MM-DD ## Section 1 Content... ## Section 2 Content... ``` --- ## 🎨 Frontend Rules ### MUST Follow Design Guide All frontend code MUST adhere to `DESIGN-GUIDE.md`: 1. **Components**: Use our component library, NEVER raw HTML 2. **Colors**: Only semantic colors (brand, success, warning, error, purple, gray) 3. **Icons**: Import from central `icons/` directory only 4. **Forms**: Use standardized form components ### File Organization ``` src/ ├── components/ │ ├── ui/ # Reusable UI components │ ├── form/ # Form-specific components │ ├── layout/ # Layout components │ └── [module]/ # Module-specific components ├── pages/ # Route pages ├── stores/ # Zustand stores ├── services/ # API service functions ├── hooks/ # Custom React hooks ├── types/ # TypeScript type definitions └── utils/ # Utility functions ``` ### TypeScript Standards ```typescript // ✅ CORRECT: Use interfaces for API responses interface Site { id: string; name: string; domain: string; } // ✅ CORRECT: Type all props interface ComponentProps { title: string; onClose: () => void; children?: React.ReactNode; } // ❌ WRONG: No any types const data: any = response; ``` --- ## 🐍 Backend Rules ### Django/DRF Standards 1. **Serializers**: Must match model fields exactly 2. **Views**: Use DRF ViewSets where possible 3. **URLs**: Follow RESTful conventions 4. **Models**: Document all fields with help_text ### Serializer Field Validation ```python # ✅ CORRECT: Fields match model class SettingsSerializer(serializers.ModelSerializer): class Meta: model = Settings fields = ['id', 'key', 'value'] # 'value' exists on model # ❌ WRONG: Field doesn't exist on model class SettingsSerializer(serializers.ModelSerializer): config = serializers.JSONField() # 'config' doesn't exist! class Meta: model = Settings fields = ['id', 'key', 'config'] ``` ### API Response Format ```python # Standard success response { "data": { ... }, "message": "Operation successful" } # Standard error response { "error": "Error message", "details": { ... } } # Paginated response { "count": 100, "next": "http://...", "previous": null, "results": [ ... ] } ``` --- ## 📊 CHANGELOG Rules ### When to Update - New features (user-visible) - Bug fixes (user-affecting) - API changes - Breaking changes - Performance improvements ### Format ```markdown ## [1.8.4] - 2026-01-21 ### Added - New feature description ### Changed - Changed behavior description ### Fixed - Bug fix description ### Deprecated - Deprecated feature warning ### Removed - Removed feature notice ### Security - Security fix description ``` --- ## ✅ Code Review Checklist ### Before Creating PR - [ ] Code compiles/runs without errors - [ ] All tests pass - [ ] No console.log or print statements (unless intentional) - [ ] Documentation updated - [ ] CHANGELOG updated (if applicable) - [ ] No hardcoded secrets/URLs - [ ] Follows design guide (frontend) - [ ] Serializers match models (backend) ### Review Focus Areas 1. **Logic**: Does the code do what it's supposed to? 2. **Types**: Are TypeScript types correct and complete? 3. **Security**: Any security concerns? 4. **Performance**: Any obvious performance issues? 5. **Consistency**: Follows existing patterns? --- ## 🔧 Development Workflow ### Making Changes 1. Understand the context (read relevant docs first) 2. Make the change 3. Update documentation 4. Update CHANGELOG (if user-facing) 5. Test thoroughly 6. Submit for review ### Adding New Features 1. Document the feature design first 2. Implement backend (if needed) 3. Update API docs 4. Implement frontend 5. Update frontend docs 6. Add to CHANGELOG --- ## 🚨 Common Mistakes to Avoid ### Frontend - Using raw HTML instead of components - Using default Tailwind colors - Importing icons from wrong source - Not typing API responses - Hardcoding API URLs ### Backend - Serializer fields not matching models - Missing model validations - Not handling edge cases in views - Forgetting to add URLs to router ### Documentation - Not updating docs after changes - Outdated version numbers - Missing new endpoints/pages - Inconsistent formatting --- ## 📚 Key Documentation Files | Purpose | Location | |---------|----------| | Quick start | `/INDEX.md` | | UI standards | `/DESIGN-GUIDE.md` | | Change history | `/CHANGELOG.md` | | Architecture | `/docs/00-SYSTEM/ARCHITECTURE.md` | | API reference | `/docs/20-API/ENDPOINTS.md` | | Data models | `/docs/90-REFERENCE/MODELS.md` | | Frontend routes | `/docs/30-FRONTEND/PAGES.md` | | State stores | `/docs/30-FRONTEND/STORES.md` | | Components | `/docs/30-FRONTEND/COMPONENT-SYSTEM.md` | --- ## 🔄 Maintenance Scripts ### Verify Documentation Accuracy ```bash ./scripts/verify-docs.sh ``` ### Update API Schema ```bash cd backend && python manage.py spectacular --file schema.yml ``` ### Check for Unused Code ```bash cd frontend && npm run lint ``` --- ## Version Info - **App Version:** 1.8.3 - **Backend:** Django 5.1, DRF 3.15 - **Frontend:** React 19, TypeScript 5 - **Database:** PostgreSQL 16 - **Cache:** Redis 7