Frontend: - Replace Next.js with Vite + React + TypeScript - Add new component architecture (app-shell, sidebar, dashboard modules) - Implement product modules: FRAME, safety protocols, walkthrough checkin, campus/staff attendance, personality quiz, sign language, classroom timer - Add shadcn/ui component library with Tailwind CSS - Remove legacy generated components, stores, and pages Backend: - Add product migrations: frame_entries, user_progress, safety_quiz_results, walkthrough_checkins, communication_events, personality_quiz_results, campus_attendance_config/summaries, staff_attendance_records, content_catalog - Add corresponding models, services, and routes - Implement cookie-based auth with refresh token rotation - Add content catalog seeder with product content - Migrate to ESLint flat config - Switch from yarn to npm Infrastructure: - Update .gitignore for new tooling - Add project documentation (CLAUDE.md, docs/) - Remove deprecated config files and yarn.lock Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Repository Guidelines
MAIN RULE: DON'T MADE UP ANYTHING!!! IF YOU NOT SURE - DOUBLECHECK IT VIA PROJECT DOCUMENTATION, TOOL DOCUMENTATION, APPROPRIATE MCP, WEB SEARCH OR JUST ASK FOR ME TO CLARIFY.
Working Principles
- Check docs first: Read relevant documents files before starting tasks (links provided below)
- Minimal changes: Update only necessary files, prefer simple robust solutions
- Use SKILLS: For best results in specific areas, use the appropriate SKILLS in
.codex/skills(56 skills available) - Agents orchestration: Use
.codex/skills/ai-agent-orchestrator/SKILL.mdskill to improve your efficiency. - Use MCP servers: Available via
mcp__<server>__<tool>: GitHub (github), Chrome DevTools (chrome-devtools) - TypeScript strict mode: Avoid
anytypes, NEVER disable linter or TypeScript, NEVER use types casting - Concise comments: Explain "why" not "what", code should be self-documenting
- No over-engineering: Build for a small SaaS used by owner-operators. Choose the simplest robust solution that is fast to implement, easy to understand, and easy to support. Avoid enterprise-style architecture and unnecessary complexity: no extra fallbacks, premature abstractions, microservices, Kubernetes, complex orchestration, heavy caching, or distributed-system patterns unless the task explicitly requires them. User-facing copy must use plain language and avoid accounting jargon.
- Native errors for external services: Pass through errors from Gemini/OpenAI as-is
- Centralized exceptions only: Always use centralized exceptions instead of inlined logs or exceptions
- Use tools and agents: Use MCP servers, web search, and agents when needed
- Avoid hardcoded constants: Add to
backend/src/constants/orfrontend/src/shared/constants/ - Avoid silent failures: Provide proper observability for all failure modes
- Documentation matters: After EACH task update appropriate documentation files AND for EACH new module or feature create documentation file in appropriate directory:
backend/docs/,frontend/docs/or commondocs/ - Aliases for imports: For ALL imports use aliases
@instead of absolute or relative paths - Tests matters: After EACH task update appropriate unit and e2e tests AND for EACH new functionality create new tests (unit or e2e depending on the feature’s complexity and importance)
Documentation Entry Points
- Frontend documentation index:
frontend/docs/index.md - Frontend architecture contract:
frontend/docs/frontend-architecture.md - Backend and cross-project integration plan:
docs/full-integration-refactor-plan.md
For frontend work, read frontend/docs/frontend-architecture.md before implementation and follow its three-layer approach: view components, business logic, and API/data access.