3.3 KiB
3.3 KiB
AGENTS.md
General
Minimum tokens, skip grammar
Tasks
- Consult
AGENTS.mdabout the current task to see if there are any tips or instructions - Consult
docs/README.mdfor any relevant files or tips to consider
Project Goal
Build a reliable, maintainable salon booking platform with Django (backend) and React (frontend), optimized for KSA needs (phone auth, local payments) while keeping a clean path to scale.
Coding
- Comment concisely and often, especially where intent, edge cases, or business rules are not obvious.
Current Plan (Roadmap)
Phase 1: Core MVP Reliability
- Phone-first auth with OTP (SMS/WhatsApp), rate limits, and social login.
- Booking integrity (availability, staff schedules, overlap prevention).
- Payments via Moyasar (payment creation, webhooks, reconciliation).
- Notifications for booking lifecycle.
- Localization foundations (i18n plumbing, RTL readiness, locale preferences).
- Tests for critical flows.
Phase 2: Manager Ops
- Salon/staff/service management.
- Calendar view + rescheduling/cancellation rules.
- Reviews/ratings with moderation and recompute.
- Reports (revenue, popular services, customer trends).
- Full translation coverage and Arabic UX polish.
Phase 3: Scale & Compliance
- Audit logs and data export.
- PDPL/GDPR retention policy.
- Observability and performance baselines.
Reliability Standards (Non‑Negotiable)
- Every new feature ships with tests.
- Avoid introducing regressions without covering a fix or guardrail.
- Payment and booking flows must be idempotent and auditable.
- Phone auth must be rate‑limited and safe from abuse.
- Every change should be tested before completion; no exceptions.
Testing Expectations
Backend
- Use
pytest+pytest-django. - Tests live beside apps (
apps/<app>/tests/). - Minimum coverage: auth, booking validation, payment state transitions.
Frontend
- Use
vitest+ Testing Library. - Critical flows covered: search, booking form, auth state.
Code Style & Practices
- Keep business logic in services (avoid fat views).
- Use explicit, readable model fields and serializers.
- Small, well‑named functions > monolithic handlers.
- Prefer predictable error responses (HTTP status +
detail). - Prefer short, intent-focused comments over silent complexity.
Known Gaps (Tracked)
- See
docs/risks.mdfor current gaps/risks to address.
Environment Notes
- Python is invoked as
python3. - A virtualenv is in use.
- DB: PostgreSQL in production, SQLite allowed for local dev.
- Backend tests must run with the venv active and
pytest-djangoinstalled; run frombackend/sobackend/pytest.iniis picked up andDJANGO_SETTINGS_MODULEresolves.
Collaboration Rules for Agents
- Don’t delete or rewrite unrelated work.
- Avoid destructive git commands unless explicitly asked.
- Update
docs/risks.mdwhen adding or closing a significant gap. - Keep README instructions current when tooling changes.
- Prefer feature branches for significant work; commit early with clear summary messages.
ExecPlans
When writing complex features or significant refactors, use an ExecPlan (as described in docs/PLANS.md) from design to implementation. The current active ExecPlan is defined in docs/PLANS.md. Architecture documented in docs/architecture.md.