Imported from YousifMHelal/fe5oo (
AGENTS.md). Install upstream withnpx skills add YousifMHelal/fe5oo. Copyright stays with the author.
fe5oo Barbershop — Agent Operating Guide
Read this first, every session. It is the contract for working this repo.
Read order (session start)
context/AGENTS.md(this file) — the rules.context/ARCHITECTURE.md— scope, stack, data model, non-negotiables.context/MEMORY.md— locked decisions + why, technical discoveries.context/BUILD_PLAN.md— pick the next unblocked task.context/UI_DESIGN_RULES.md— before any UI work.context/PROGRESS_TRACKER.md— current state of every task.
Hard rules (never break — from ARCHITECTURE §8)
- Offline only — zero runtime network calls. Self-host fonts; bundle icons/assets; DB + backups stay inside the project folder. No CDN, no telemetry.
app/at repo root, nosrc/.- Money is integer EGP everywhere — no floats, format only via
formatEGP. - Every mutation = a Zod-validated server action that role-checks server-side, then writes, then calls
logAudit(). Never trust the client. - Strict catalog pricing — server copies
Service.price→TicketItem.priceSnapshotat create. Cashier never sets/edits price. - RBAC on the server, not just hidden in UI. Cashier = read every page, write only = create-ticket + change-own-password. Every other mutation is ADMIN-only and server-rejected.
- No hardcoded hex in components — design tokens only.
- RTL-safe — logical CSS props only (
ps/pe/ms/me/start/end), neverpl/pr/ml/mr/left/right. - Don't hard-delete referenced Workers/Services/Users — soft-disable (
isActive). - All UI via the
ui-ux-pro-maxskill; project design rules override imported snippets. - Fully responsive — every page/component at 360px → desktop. Not desktop-only. Verify mobile/tablet/desktop before marking any UI task done.
Workflow (every task)
- Pick the next unblocked task from
BUILD_PLAN.md(respect phase order + Exit criteria). - Build to the standard in
ARCHITECTURE.md+UI_DESIGN_RULES.md. - Tick the box in
BUILD_PLAN.mdand set the task DONE inPROGRESS_TRACKER.mdwith a changelog entry. - Log any non-obvious decision or surprise in
MEMORY.md(decision + rationale / discovery). - Don't start a phase before its predecessor's blocking tasks are done.
Tooling mandates
- UI:
ui-ux-pro-maxskill (+ shadcn MCP) for every component/page. After building, runimprint→ updateui-registry.mdso later components match. - Library APIs: confirm current syntax with
find-docs/ctx7before coding — especially Prisma+SQLite, Auth.js v5, Tailwind v4,next/font/local. Don't rely on memory. - Docs: keep all six
context/files in sync — they are one system.
Keep this file short. It is a checklist, not an essay.
