Generate comprehensive implementation plans with checkboxes, dependencies, and parallelization details. This skill should be used after feature research is complete to create structured, step-by-step implementation plans that track progress, identify dependencies between tasks, and enable multiple developers to work in parallel.
npx claudepluginhub joshuarweaver/cascade-code-testing-misc --plugin laizyio-workflowskillsThis skill uses the workspace's default tool permissions.
Transform feature research findings into comprehensive, actionable implementation plans with clear steps, dependencies, checkboxes for tracking progress, and identification of parallelizable tasks. The plan format enables systematic implementation by one or multiple developers while maintaining clear visibility of progress.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Transform feature research findings into comprehensive, actionable implementation plans with clear steps, dependencies, checkboxes for tracking progress, and identification of parallelizable tasks. The plan format enables systematic implementation by one or multiple developers while maintaining clear visibility of progress.
Use this skill when:
A good implementation plan is:
[DOC]-*) with implementation changesBefore creating the plan, thoroughly review:
Input: findings.md or research-notes.md from feature-research skill
Break the feature into logical phases. Each phase should:
Example Phases for "Email Notifications Feature":
For each phase, create specific, actionable steps.
Step Granularity Guidelines:
Each Step Should Include:
Identify dependencies between steps:
Notation:
## Phase 1: Backend Implementation
- [ ] Step 1: Create User entity (no dependencies)
- [ ] Step 2: Create Form entity (no dependencies)
- [ ] Step 3: Add User-Form relationship (depends on Step 1 & 2)
- **Depends on**: Step 1, Step 2
**Note**: Steps 1 and 2 can be done in parallel
Use checkboxes for every step:
- [x] Completed step (marked as done)
- [ ] Pending step (not started)
Include an overall progress tracker:
## Progress Overview
- [x] Phase 1: Backend Implementation (100%)
- [ ] Phase 2: Frontend Integration (0%)
- [ ] Phase 3: Testing (0%)
For each step or phase, add clear success criteria:
## Phase 1: Backend Implementation
### Validation Criteria
- [ ] Backend compiles without errors
- [ ] All unit tests pass
- [ ] API endpoints return expected responses
- [ ] Database migrations apply successfully
Every plan MUST include a final documentation phase after testing/validation. This phase ensures the project's Obsidian vault ([DOC]-*) stays synchronized with the implemented code.
Prerequisites: The project must have a [DOC]-* Obsidian vault directory at its root. If none exists, note it in the plan and skip this phase.
The Documentation Phase follows the 3-step process: Identifier → Comparer → Décider
Standard Documentation Phase Steps:
[DOC]-* vault for ALL documents related to the implemented feature (FEAT, ADR, DB, ARCH, API, DEV, MOC, SPEC files)10-Archives/ any documents that describe features/code that no longer existsDocumentation Types to Consider:
| Type | Prefix | Folder | Triggered By |
|---|---|---|---|
| Feature | FEAT-XXX | 04-Features/ | New or modified features |
| Decision Record | ADR-XXX | 06-ADR/ | Architecture decisions made during implementation |
| Database | DB-XXX | 02-Database/ | Database schema changes |
| Architecture | ARCH-XXX | 03-Architecture/ | Architecture/structure changes |
| API | API-XXX | 05-API/ | New or modified API endpoints |
| Dev Note | DEV-XXX | 08-Dev/ | Setup changes, notable problem resolutions, workarounds |
| Map of Content | MOC-XXX | 00-MOC/ | Index updates for new documents |
Key Rules:
[DOC]-*/_Templates/TPL-*.md[[Document-Name]] for cross-referencesUse scripts/validate_plan.py to check:
See references/plan-template.md for a complete template based on backend/docs/Plan.md style.
Key Sections:
1. Independent Modules
## Phase 2: Implementation
**Parallel Track A: Backend**
- [ ] Create API endpoints
- [ ] Add validation logic
- [ ] Write unit tests
**Parallel Track B: Frontend**
- [ ] Create UI components
- [ ] Add form validation
- [ ] Write component tests
**Note**: Tracks A and B can run simultaneously if API contract is defined
2. Different Layers
3. Different Features
All three can run in parallel if they don't share dependencies
For complex features with many dependencies, create a dependency matrix:
See references/dependency-matrix.md for detailed guidance.
Simple Example:
| Step | Depends On | Can Run in Parallel With |
|------|----------------|--------------------------|
| A | None | B, C |
| B | None | A, C |
| C | None | A, B |
| D | A, B, C | None |
✅ File Paths: Where to create/modify files
- [ ] Create `src/services/EmailService.ts`
- [ ] Modify `src/api/controllers/SubmissionsController.cs`
✅ Key Interfaces/APIs: What contracts to define
- [ ] Define IEmailService interface with SendEmail and QueueEmail methods
✅ Configuration Changes: What settings to add
- [ ] Add Microsoft Graph credentials to appsettings.json
✅ Dependencies to Install: What packages to add
- [ ] Install Microsoft.Graph NuGet package
✅ Test Requirements: What tests to write
- [ ] Write unit tests for EmailService
- [ ] Write E2E test for email notification flow
❌ Exact Code: Leave implementation details to developer
Bad: "Add line 42: const result = await emailService.send()"
Good: "Implement sendEmail method in EmailService"
❌ Obvious Steps: Don't micro-manage
Bad: "Open Visual Studio, Click File > New > Class"
Good: "Create EmailService class"
❌ Implementation Choices: Trust developer judgment
Bad: "Use a for loop to iterate through recipients"
Good: "Send emails to all recipients from form.recipients"
The plan is a living document. As implementation progresses:
Mark Steps Complete: Check off completed steps
- [x] Create EmailService class
Update Progress Percentages:
- [x] Phase 1: Backend (100%)
- [ ] Phase 2: Frontend (60%)
Add Discovered Steps: If new tasks are found
- [ ] Fix CORS configuration (discovered during testing)
Note Blockers: Document issues blocking progress
## Blockers
- Azure AD credentials not yet provisioned (blocking Phase 2)
Adjust Estimates: Update if reality differs from plan
# Implementation Plan: Email Notifications
## Overview
Add email notifications sent via Microsoft Graph when forms are submitted.
## Progress Tracker
- [x] Phase 1: Backend Email Service (100%)
- [ ] Phase 2: Queue Integration (50%)
- [ ] Phase 3: Frontend Settings (0%)
- [ ] Phase 4: Testing (0%)
- [ ] Phase 5: Documentation Update (0%)
---
## Phase 1: Backend Email Service
### Goals
Implement EmailService using Microsoft Graph API to send emails.
### Steps
- [x] Install Microsoft.Graph NuGet package
- [x] Create `src/Services/EmailService.cs` with IEmailService interface
- [x] Implement SendEmail method using Graph API
- [x] Add Microsoft Graph configuration to appsettings.json
- [x] Write unit tests for EmailService
**Dependencies**: None (can start immediately)
### Validation Criteria
- [x] Email successfully sent in development environment
- [x] Unit tests pass
- [x] Configuration properly loaded from appsettings
---
## Phase 2: Queue Integration
### Goals
Use Hangfire to queue emails for reliability.
### Steps
- [x] Install Hangfire.AspNetCore NuGet package
- [ ] Configure Hangfire in Program.cs
- [ ] Create QueueEmailJob background job
- [ ] Modify SubmissionsController to enqueue emails after submission
- [ ] Test email queuing and processing
**Dependencies**: Phase 1 must be complete
**Parallel Work**: Frontend Settings (Phase 3) can start now if API is defined
### Validation Criteria
- [ ] Emails enqueued successfully
- [ ] Hangfire dashboard shows queued jobs
- [ ] Emails processed from queue
- [ ] Failed emails retry automatically
---
## Phase 3: Frontend Settings
### Goals
Allow admins to configure email recipients in form settings.
### Steps
- [ ] Add recipients field to FormSettings interface
- [ ] Create MultiEmailInput component for recipient management
- [ ] Integrate MultiEmailInput in FormBuilder
- [ ] Update form creation/edit to save recipients
- [ ] Add email validation for recipients
**Dependencies**: API contract from Phase 2
**Parallel Work**: Can run in parallel with Phase 2 implementation
### Validation Criteria
- [ ] Recipients can be added/removed in form builder
- [ ] Invalid emails are rejected
- [ ] Recipients saved to database correctly
---
## Phase 4: Testing
### Goals
Comprehensive testing of email notification flow.
### Steps
- [ ] Write E2E test: Submit form → Email sent
- [ ] Write E2E test: Email delivery failure handling
- [ ] Manual testing with real Microsoft Graph account
- [ ] Performance testing: 100 emails queued simultaneously
**Dependencies**: All previous phases must be complete
### Validation Criteria
- [ ] All E2E tests pass
- [ ] Manual test emails received
- [ ] No performance degradation with high email volume
- [ ] Hangfire dashboard shows successful processing
---
## Phase 5: Documentation Update
### Goals
Synchroniser le vault Obsidian `[DOC]-*` avec tous les changements d'implémentation.
### Steps
- [ ] Scanner le vault `[DOC]-*` pour les docs liés (FEAT, ADR, DB, API, DEV)
- [ ] Comparer documentation existante vs code réel
- [ ] Mettre à jour FEAT-XXX pour la feature email notifications
- [ ] Créer ADR-XXX si des décisions d'architecture ont été prises (choix Microsoft Graph, Hangfire)
- [ ] Créer/mettre à jour API-XXX pour les nouveaux endpoints
- [ ] Mettre à jour les MOC concernés
**Dependencies**: All previous phases must be complete
### Validation Criteria
- [ ] Documentation reflète le code réel
- [ ] Tous les nouveaux documents ont un frontmatter valide
- [ ] Contenu en FRANÇAIS
- [ ] Wikilinks Obsidian corrects
---
## Dependencies
### External
- Microsoft.Graph NuGet package
- Hangfire.AspNetCore NuGet package
- Microsoft Graph API credentials (Azure AD app)
### Internal
- SubmissionsController (modify for email triggering)
- Form entity (add recipients field)
## Notes
- Microsoft Graph requires Azure AD app registration (credentials needed)
- Hangfire requires database storage (use existing PostgreSQL)
- Consider rate limiting for Microsoft Graph API (30 requests/second)
---
**Plan Version**: 1.0
**Last Updated**: [Date]
Mistake: "Line 42: Add const email = req.body.email" Fix: "Implement email extraction from request body"
Mistake: Not marking that Step 5 requires Step 2 to be done first Fix: Explicitly list dependencies for each step
Mistake: Making everything sequential when tasks could be parallel Fix: Identify independent work tracks
Mistake: "Make it work" Fix: "Implement EmailService.SendEmail with Graph API"
Mistake: Steps without success criteria Fix: Add "Validation Criteria" section for each phase
scripts/validate_plan.py - Validates plan structure and completenessreferences/plan-template.md - Complete implementation plan templatereferences/dependency-matrix.md - Guide for identifying and documenting dependencies