pipeline/ # Data processing
├── transcript.py # Video transcription
├── llm.py # LLM integration
├── slides.py # Slide extraction
└── main.py # Pipeline orchestration
frontend/src/ # React frontend
├── components/ # UI components
└── App.js # Main app
- Pipeline modules are independent
- Frontend uses React patterns
- LLM calls isolated in llm.py
- No direct API calls in components
- Pipeline:
*.py - Components:
*.jsin components/ - Services:
*_service.js
- Max 300 lines per file (warn at 300)
- Max 30 lines per function (warn at 30)
- Max nesting depth ≤ 4
- Max 3 parameters per function
If code exceeds these limits, REFACTOR immediately using Extract Function or Extract Class.
- Identify frontend vs pipeline
- Keep pipeline functions pure
- Frontend follows React patterns
- Keep files under 300 lines, functions under 30 lines
- Run:
npm run lint/python -m pytest