Repository layout
The app repo isPharenIT/ELEV8-Labs.
Core rule
Use Make targets from the repo root.First local run
Install prerequisites
Use Node 22, pnpm 9, Python 3.12, Docker, and Docker Compose.If you use
nvm, install the version from the repo .nvmrc before installing frontend dependencies.Create the environment file
Copy the example environment file if your local checkout does not have one yet.
Fast development loop
Use the smallest useful check while coding. For frontend packages:Quality guardrails
Pharen has executable rules for file size and Python symbol size. They exist because agents and humans both tend to make files grow when pressure is high. Run them with:scripts/quality-guardrails.mjs and reads .quality-rules.json.
How the rule model works
Each rule has two levels:target: preferred size. Going above it prints a warning.max: hard ceiling. New code above it fails.
Size expectations
Default expectations:- Backend production files stay near 300 lines and below 500 lines.
- Backend functions stay below 40 lines.
- Backend classes stay below 200 lines.
- Vue files stay below 500 lines.
- Frontend composables and services stay below 300 lines.
- Frontend stores stay below 400 lines.
- Test files may be larger, but should still be split by behavior or contract.
Where code belongs
Backend changes should follow this path:- Views handle request and response details.
- Services own writes and side effects.
- Selectors own reads and query shaping.
- Tasks own async execution and retry behavior.
- Tests cover permissions, tenant scope, validation, status codes, and response contracts.
- Services call APIs and external systems only.
- Mappers convert API shape to frontend shape.
- Composables own state and user actions.
- Components render UI and emit events.
- Pages compose route-level data and layout.
Contributing checklist
Before opening a pull request or handing work to another maintainer:Keep the change scoped
Avoid unrelated refactors. If a large legacy file needs splitting, do it around a real responsibility boundary.
Run quality rules
Run
make quality-rules when you add files, split files, or touch already large modules.Run handoff checks
Run
make quality before handoff. Use QUALITY_FORCE_ALL=1 make quality for wide dependency, package, or config changes.Specialized review agents are opt-in. Use quality, security, performance, or pre-push review agents only when the user explicitly asks for that review gate or the work is being pushed or opened as a pull request.