diff --git a/.claude/rules/backend.md b/.claude/rules/backend.md index 8991307..33f82d2 100644 --- a/.claude/rules/backend.md +++ b/.claude/rules/backend.md @@ -1,3 +1,10 @@ +--- +paths: + - "src/app/api/**" + - "src/lib/supabase*" + - "supabase/**" +--- + # Backend Development Rules ## Database (Supabase) diff --git a/.claude/rules/frontend.md b/.claude/rules/frontend.md index 8bc986d..3fdd957 100644 --- a/.claude/rules/frontend.md +++ b/.claude/rules/frontend.md @@ -1,3 +1,11 @@ +--- +paths: + - "src/components/**" + - "src/app/**/page.tsx" + - "src/app/**/layout.tsx" + - "src/hooks/**" +--- + # Frontend Development Rules ## shadcn/ui First (MANDATORY) diff --git a/.claude/rules/general.md b/.claude/rules/general.md index b5c9412..cec5631 100644 --- a/.claude/rules/general.md +++ b/.claude/rules/general.md @@ -1,5 +1,19 @@ # General Project Rules +## New Project Detection (MANDATORY) +Before starting ANY work, check if the project has been initialized: +1. Read `docs/PRD.md` - if it still contains placeholder text like "_Describe what you are building_", the project is NOT initialized +2. Read `features/INDEX.md` - if the features table is empty, no features have been defined + +**If the project is not initialized:** +- Do NOT write any code or create any components +- Do NOT skip ahead to implementation +- Instead, tell the user: "This project hasn't been set up yet. Let's start by defining what you want to build. Run `/requirements` with a description of your idea (e.g. `/requirements I want to build a task management app`)." +- If the user already described their idea in the current message, run `/requirements` automatically with their description + +**If the project is initialized but the user requests a feature not yet in INDEX.md:** +- Guide them to run `/requirements` first to create the feature spec before any implementation + ## Feature Tracking - All features are tracked in `features/INDEX.md` - read it before starting any work - Feature specs live in `features/PROJ-X-feature-name.md` @@ -19,11 +33,28 @@ - Present options using clear choices rather than open-ended questions - Never proceed to the next workflow phase without user confirmation -## Status Updates -- Update `features/INDEX.md` when feature status changes -- Update the feature spec header status field +## Status Updates (MANDATORY - Write-Then-Verify) +After completing work on any feature, you MUST update tracking files. Follow this exact sequence: + +1. **Read** the feature spec (`features/PROJ-X-*.md`) and `features/INDEX.md` BEFORE editing +2. **Write** your changes using the Edit tool — do NOT just describe what you would write +3. **Re-read** the file AFTER editing to verify the changes are actually present +4. **If changes are missing**, repeat step 2 — never claim updates were made without verifying + +**What to update in the feature spec:** +- Status field in the header (Planned → In Progress → In Review → Deployed) +- Implementation notes: what was built, what changed, any deviations from the original spec +- Bug fixes or design changes discovered during implementation + +**What to update in `features/INDEX.md`:** +- Feature status column must match the feature spec header - Valid statuses: Planned, In Progress, In Review, Deployed +**NEVER do this:** +- Do NOT say "I've updated the feature spec" without actually calling the Edit tool +- Do NOT summarize changes in chat as a substitute for writing them to the file +- Do NOT skip updates because "it's obvious" or "minor" + ## File Handling - ALWAYS read a file before modifying it - never assume contents from memory - After context compaction, re-read files before continuing work diff --git a/.claude/rules/security.md b/.claude/rules/security.md index f85cf14..35884cb 100644 --- a/.claude/rules/security.md +++ b/.claude/rules/security.md @@ -1,3 +1,11 @@ +--- +paths: + - "src/app/api/**" + - ".env*" + - "supabase/**" + - "next.config.*" +--- + # Security Rules ## Secrets Management