--- name: clavix-plan description: Transform PRD documents into actionable task breakdowns with dependencies. Use after creating a PRD to generate implementation tasks. license: Apache-2.0 --- # Clavix Plan Skill Transform PRD documents into structured, actionable task lists with proper sequencing. --- ## State Assertion (REQUIRED) **Before starting task breakdown, output:** ``` **CLAVIX MODE: Technical Planning** Mode: planning Purpose: Generating low-level engineering tasks from PRD & Codebase Implementation: BLOCKED - I will create the plan, not the code ``` --- ## Self-Correction Protocol **DETECT**: If you find yourself doing any of these mistake types: | Type | What It Looks Like | |------|--------------------| | 1. Generic Tasks | "Create login page" (without specifying file path, library, or pattern) | | 2. Ignoring Context | Planning a Redux store when the project uses Zustand, or creating new CSS files when Tailwind is configured | | 3. Implementation Code | Writing full function bodies or components during the planning phase | | 4. Missing Task IDs | Not assigning proper task IDs for tracking | | 5. Capability Hallucination | Claiming features Clavix doesn't have | **STOP**: Immediately halt the incorrect action. **CORRECT**: Output: > "I apologize - I was [describe mistake]. Let me return to generating specific technical tasks based on the codebase." **RESUME**: Return to the workflow with correct context-aware approach. --- ## Workflow ### Phase 1: Context Analysis (CRITICAL) **Before reading the PRD, understand the codebase patterns.** 1. **Scan Directory Structure**: - Run `ls -R src` (or relevant folders) to see the file layout - Identify folder conventions (features/, components/, services/) 2. **Read Configuration**: - Read `package.json` to identify dependencies (React? Vue? Express? Tailwind? Prisma?) - Read `tsconfig.json` or similar to understand aliases and strictness - Check for `.eslintrc`, `prettier.config`, etc. 3. **Identify Patterns**: - Open 1-2 representative files (e.g., a component, a service, a route) - **Determine**: - How is state managed? (Context, Redux, Zustand?) - How is styling done? (CSS Modules, Tailwind, SCSS?) - How are API calls made? (fetch, axios, custom hooks?) - Where are types defined? 4. **Output Summary**: ``` Detected Stack Summary: - Framework: [e.g., Next.js 14 App Router] - Styling: [e.g., Tailwind CSS + shadcn/ui] - State: [e.g., Zustand (stores in /src/store)] - API: [e.g., Server Actions + Prisma] - Conventions: [e.g., kebab-case files, Zod for validation] ``` ### Phase 2: PRD Ingestion 1. **Locate PRD**: - Check `.clavix/outputs//` for `full-prd.md`, `quick-prd.md` - If missing, check legacy `.clavix/outputs/summarize/` 2. **Read PRD**: Ingest all requirements 3. **Extract Architecture Section**: - Look for "Architecture & Design" section - Note any specific patterns (Clean Architecture, Feature-Sliced Design) - Identify structural decisions from PRD **If no PRD found:** > "I don't see a PRD for this project. Please run `/clavix-prd` first to generate requirements, or provide them directly." ### Phase 3: Task Generation 1. **Architecture First Principle**: - If the PRD specifies a pattern (e.g., Repository), the first tasks MUST set up that structure - **Bad**: "Implement user feature" - **Good**: "Create `src/repositories/UserRepository.ts` interface first, then implementation" 2. **Specific File Paths Required**: - **Bad**: "Create a user profile component" - **Good**: "Create `src/components/user/UserProfile.tsx`. Export as default" 3. **Technical Constraints**: - **Bad**: "Add validation" - **Good**: "Use `zod` schema in `src/schemas/user.ts`. Integrate with `react-hook-form`" 4. **Respect Existing Architecture**: - If project uses `services/` folder for API calls, don't put `fetch` calls in components - If project uses `shadcn/ui`, instruct to use those primitives, not raw HTML 5. **Draft Tasks**: Create tasks using the Task Format Reference below 6. **Save to**: `.clavix/outputs/{project-name}/tasks.md` --- ## Task Format Reference **You must generate `tasks.md` using this exact format:** ```markdown # Implementation Plan **Project**: {project-name} **Generated**: {ISO timestamp} ## Technical Context & Standards *Detected Stack & Patterns* - **Architecture**: {e.g., Feature-Sliced Design, Monolith} - **Framework**: {e.g., Next.js 14 App Router} - **Styling**: {e.g., Tailwind CSS + shadcn/ui} - **State**: {e.g., Zustand (stores in /src/store)} - **API**: {e.g., Server Actions + Prisma} - **Conventions**: {e.g., "kebab-case files", "Zod for validation"} --- ## Phase 1: {Phase Name} - [ ] **{Task Title}** (ref: {PRD Section}) Task ID: phase-1-{name}-01 > **Implementation**: Create/Edit `{file/path}`. > **Details**: {Technical instruction with specifics} - [ ] **{Next Task Title}** Task ID: phase-1-{name}-02 > **Implementation**: Modify `{file/path}`. > **Details**: {Specific logic requirements} ## Phase 2: {Phase Name} - [ ] **{Task Title}** (ref: {PRD Section}) Task ID: phase-2-{name}-01 > **Implementation**: Create `{file/path}`. > **Details**: {Technical instruction} --- *Generated by Clavix /clavix-plan* ``` ### Task ID Format **Pattern**: `phase-{phase-number}-{sanitized-phase-name}-{task-counter}` Examples: - `phase-1-setup-01` - `phase-2-auth-03` - `phase-3-testing-02` ### Checklist Rules - Use `- [ ]` for pending tasks - Use `- [x]` for completed tasks - **Implementation Note**: The `> **Implementation**` block is REQUIRED for every task --- ## Granularity Guidelines | Size | Time Estimate | Example | |------|---------------|---------| | Small | 15-30 min | Add form validation to existing component | | Medium | 30-60 min | Build API endpoint with validation | | Ideal | 20-40 min | Most tasks should fall here | | Large | > 1 hr | SPLIT into smaller tasks | **If task exceeds 40 minutes:** Break into smaller, focused tasks. **Separation Guidelines:** - Separate "Backend API" from "Frontend UI" tasks - Separate "Type Definition" from "Implementation" if complex - Separate "Create Component" from "Wire Up Routing" --- ## Post-Plan Verification Questions Before presenting the plan, verify: 1. **Did I detect stack correctly?** - Check if referenced libraries exist in package.json - Confirm folder structure matches my assumptions 2. **Are file paths correct?** - Reference actual existing directories - Don't assume directories that don't exist 3. **Is ordering logical?** - Database/Schema → API → UI - Types → Implementation - Core → Features → Polish --- ## After Plan Generation Present the plan and ask: > "I've generated a technical implementation plan based on your PRD and existing codebase (detected: {stack}). > > **Please Verify**: > 1. Did I correctly identify the file structure and patterns? > 2. Are the specific file paths correct? > 3. Is the order of operations logical (e.g., Database → API → UI)? > > Type `/clavix-implement` to start coding, or tell me what to adjust." --- ## Save Location Tasks file: `.clavix/outputs/{project}/tasks.md` --- ## Mode Boundaries **Do:** - ✓ Analyze existing code structure & patterns - ✓ Map PRD features to specific technical implementations - ✓ Define exact file paths and signatures - ✓ Create "Implementation Notes" for each task - ✓ Save tasks.md for implementation **Don't:** - ✗ Write any implementation code - ✗ Start implementing features - ✗ Create actual components - ✗ Skip codebase analysis - ✗ Create generic tasks without file paths --- ## Tips for Agents - **Don't guess**: If you don't see a directory, don't reference it - **Check imports**: If `src/components/Button` exists, tell the user to reuse it - **Be pedantic**: Developers prefer "Export interface `User`" over "Create a type" - **Verify existence**: Don't assume libraries are installed—check package.json --- ## Troubleshooting ### Issue: "I don't know the codebase" **Cause**: Skipped Phase 1 (Context Analysis) **Fix**: Run `ls -R` and read `package.json` before generating tasks ### Issue: Tasks are too generic ("Add Auth") **Cause**: Ignored the "Implementation Note" requirement **Fix**: Regenerate with: "Refine the plan. Add specific file paths and implementation details to every task" ### Issue: No PRD found **Fix**: Run `/clavix-prd` first --- ## Next Steps After task generation, guide user to: - `/clavix-implement` - Start executing tasks - Review and adjust task priorities as needed - Manual edit of `.clavix/outputs/{project}/tasks.md` if needed