feat(web): implement schedule editor in MaintenancePoliciesTab
CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Has been skipped
CI / web (push) Successful in 31s
CI / go (push) Successful in 51s
CI / bird2 (push) Successful in 15s
CI / release (push) Successful in 3m48s

Enhanced the MaintenancePoliciesTab by integrating a schedule editor for maintenance policies. Users can now select schedule modes, input custom cron expressions, and dynamically update the schedule preview. This update improves the user interface and experience for managing maintenance schedules.
This commit is contained in:
Denozordec
2026-06-12 18:40:22 +07:00
parent 132559cb8e
commit de64374c91
71 changed files with 15643 additions and 4 deletions
@@ -0,0 +1,272 @@
---
description: Visual process map for ARCHIVE mode (Task Documentation)
globs: "**/archive*/**", "**/document*/**", "**/complete*/**"
alwaysApply: false
---
# ARCHIVE MODE: TASK DOCUMENTATION PROCESS MAP
> **TL;DR:** This visual map guides the ARCHIVE mode process, focusing on creating comprehensive documentation of the completed task, archiving relevant files, and updating the Memory Bank for future reference.
## 🧭 ARCHIVE MODE PROCESS FLOW
```mermaid
graph TD
Start["START ARCHIVE MODE"] --> ReadTasks["Read tasks.md<br>reflection.md and<br>progress.md"]
%% Initial Assessment
ReadTasks --> VerifyReflect{"Reflection<br>Complete?"}
VerifyReflect -->|"No"| ReturnReflect["Return to<br>REFLECT Mode"]
VerifyReflect -->|"Yes"| AssessLevel{"Determine<br>Complexity Level"}
%% Level-Based Archiving
AssessLevel -->|"Level 1"| L1Archive["LEVEL 1 ARCHIVING"]
AssessLevel -->|"Level 2"| L2Archive["LEVEL 2 ARCHIVING<br>Level2/archive-basic.mdc"]
AssessLevel -->|"Level 3"| L3Archive["LEVEL 3 ARCHIVING<br>Level3/archive-intermediate.mdc"]
AssessLevel -->|"Level 4"| L4Archive["LEVEL 4 ARCHIVING<br>Level4/archive-comprehensive.mdc"]
%% Level 1 Archiving (Minimal)
L1Archive --> L1Summary["Create Quick<br>Summary"]
L1Summary --> L1Task["Update<br>tasks.md"]
L1Task --> L1Complete["Mark Task<br>Complete"]
%% Level 2 Archiving (Basic)
L2Archive --> L2Summary["Create Basic<br>Archive Document"]
L2Summary --> L2Doc["Document<br>Changes"]
L2Doc --> L2Task["Update<br>tasks.md"]
L2Task --> L2Progress["Update<br>progress.md"]
L2Progress --> L2Complete["Mark Task<br>Complete"]
%% Level 3-4 Archiving (Comprehensive)
L3Archive & L4Archive --> L34Summary["Create Comprehensive<br>Archive Document"]
L34Summary --> L34Doc["Document<br>Implementation"]
L34Doc --> L34Creative["Archive Creative<br>Phase Documents"]
L34Creative --> L34Code["Document Code<br>Changes"]
L34Code --> L34Test["Document<br>Testing"]
L34Test --> L34Lessons["Summarize<br>Lessons Learned"]
L34Lessons --> L34Task["Update<br>tasks.md"]
L34Task --> L34Progress["Update<br>progress.md"]
L34Progress --> L34System["Update System<br>Documentation"]
L34System --> L34Complete["Mark Task<br>Complete"]
%% Completion
L1Complete & L2Complete & L34Complete --> CreateArchive["Create Archive<br>Document in<br>docs/archive/"]
CreateArchive --> UpdateActive["Update<br>activeContext.md"]
UpdateActive --> Reset["Reset for<br>Next Task"]
```
## 📋 ARCHIVE DOCUMENT STRUCTURE
The archive document should follow this structured format:
```mermaid
graph TD
subgraph "Archive Document Structure"
Header["# TASK ARCHIVE: [Task Name]"]
Meta["## METADATA<br>Task info, dates, complexity"]
Summary["## SUMMARY<br>Brief overview of the task"]
Requirements["## REQUIREMENTS<br>What the task needed to accomplish"]
Implementation["## IMPLEMENTATION<br>How the task was implemented"]
Testing["## TESTING<br>How the solution was verified"]
Lessons["## LESSONS LEARNED<br>Key takeaways from the task"]
Refs["## REFERENCES<br>Links to related documents"]
end
Header --> Meta --> Summary --> Requirements --> Implementation --> Testing --> Lessons --> Refs
```
## 📊 REQUIRED FILE STATE VERIFICATION
Before archiving can begin, verify file state:
```mermaid
graph TD
Start["File State<br>Verification"] --> CheckTasks{"tasks.md has<br>reflection<br>complete?"}
CheckTasks -->|"No"| ErrorReflect["ERROR:<br>Return to REFLECT Mode"]
CheckTasks -->|"Yes"| CheckReflection{"reflection.md<br>exists?"}
CheckReflection -->|"No"| ErrorCreate["ERROR:<br>Create reflection.md first"]
CheckReflection -->|"Yes"| CheckProgress{"progress.md<br>updated?"}
CheckProgress -->|"No"| ErrorProgress["ERROR:<br>Update progress.md first"]
CheckProgress -->|"Yes"| ReadyArchive["Ready for<br>Archiving"]
```
## 🔍 ARCHIVE TYPES BY COMPLEXITY
```mermaid
graph TD
subgraph "Level 1: Minimal Archive"
L1A["Basic Bug<br>Description"]
L1B["Solution<br>Summary"]
L1C["Affected<br>Files"]
end
subgraph "Level 2: Basic Archive"
L2A["Enhancement<br>Description"]
L2B["Implementation<br>Summary"]
L2C["Testing<br>Results"]
L2D["Lessons<br>Learned"]
end
subgraph "Level 3-4: Comprehensive Archive"
L3A["Detailed<br>Requirements"]
L3B["Architecture/<br>Design Decisions"]
L3C["Implementation<br>Details"]
L3D["Testing<br>Strategy"]
L3E["Performance<br>Considerations"]
L3F["Future<br>Enhancements"]
L3G["Cross-References<br>to Other Systems"]
end
L1A --> L1B --> L1C
L2A --> L2B --> L2C --> L2D
L3A --> L3B --> L3C --> L3D --> L3E --> L3F --> L3G
```
## 📝 ARCHIVE DOCUMENT TEMPLATES
### Level 1 (Minimal) Archive
```
# Bug Fix Archive: [Bug Name]
## Date
[Date of fix]
## Summary
[Brief description of the bug and solution]
## Implementation
[Description of the fix implemented]
## Files Changed
- [File 1]
- [File 2]
```
### Levels 2-4 (Comprehensive) Archive
```
# Task Archive: [Task Name]
## Metadata
- **Complexity**: Level [2/3/4]
- **Type**: [Enhancement/Feature/System]
- **Date Completed**: [Date]
- **Related Tasks**: [Related task references]
## Summary
[Comprehensive summary of the task]
## Requirements
- [Requirement 1]
- [Requirement 2]
- [Requirement 3]
## Implementation
### Approach
[Description of implementation approach]
### Key Components
- [Component 1]: [Description]
- [Component 2]: [Description]
### Files Changed
- [File 1]: [Description of changes]
- [File 2]: [Description of changes]
## Testing
- [Test 1]: [Result]
- [Test 2]: [Result]
## Lessons Learned
- [Lesson 1]
- [Lesson 2]
- [Lesson 3]
## Future Considerations
- [Future enhancement 1]
- [Future enhancement 2]
## References
- [Link to reflection document]
- [Link to creative phase documents]
- [Other relevant references]
```
## 📋 ARCHIVE LOCATION AND NAMING
Archive documents should be organized following this pattern:
```mermaid
graph TD
subgraph "Archive Structure"
Root["docs/archive/"]
Tasks["tasks/"]
Features["features/"]
Systems["systems/"]
Root --> Tasks
Root --> Features
Root --> Systems
Tasks --> Bug["bug-fix-name-YYYYMMDD.md"]
Tasks --> Enhancement["enhancement-name-YYYYMMDD.md"]
Features --> Feature["feature-name-YYYYMMDD.md"]
Systems --> System["system-name-YYYYMMDD.md"]
end
```
## 📊 TASKS.MD FINAL UPDATE
When archiving is complete, update tasks.md with:
```
## Status
- [x] Initialization complete
- [x] Planning complete
[For Level 3-4:]
- [x] Creative phases complete
- [x] Implementation complete
- [x] Reflection complete
- [x] Archiving complete
## Archive
- **Date**: [Completion date]
- **Archive Document**: [Link to archive document]
- **Status**: COMPLETED
```
## 📋 ARCHIVE VERIFICATION CHECKLIST
```
✓ ARCHIVE VERIFICATION
- Reflection document reviewed? [YES/NO]
- Archive document created with all sections? [YES/NO]
- Archive document placed in correct location? [YES/NO]
- tasks.md marked as completed? [YES/NO]
- progress.md updated with archive reference? [YES/NO]
- activeContext.md updated for next task? [YES/NO]
- Creative phase documents archived (Level 3-4)? [YES/NO/NA]
→ If all YES: Archiving complete - Memory Bank reset for next task
→ If any NO: Complete missing archive elements
```
## 🔄 TASK COMPLETION NOTIFICATION
When archiving is complete, notify user with:
```
## TASK ARCHIVED
✅ Archive document created in docs/archive/
✅ All task documentation preserved
✅ Memory Bank updated with references
✅ Task marked as COMPLETED
→ Memory Bank is ready for the next task
→ To start a new task, use VAN MODE
```
@@ -0,0 +1,321 @@
---
description: Visual process map for BUILD mode (Code Implementation)
globs: implementation-mode-map.mdc
alwaysApply: false
---
# BUILD MODE: CODE EXECUTION PROCESS MAP
> **TL;DR:** This visual map guides the BUILD mode process, focusing on efficient code implementation based on the planning and creative phases, with proper command execution and progress tracking.
## 🧭 BUILD MODE PROCESS FLOW
```mermaid
graph TD
Start["START BUILD MODE"] --> ReadDocs["Read Reference Documents<br>Core/command-execution.md"]
%% Initialization
ReadDocs --> CheckLevel{"Determine<br>Complexity Level<br>from tasks.md"}
%% Level 1 Implementation
CheckLevel -->|"Level 1<br>Quick Bug Fix"| L1Process["LEVEL 1 PROCESS<br>Level1/quick-bug-workflow.md"]
L1Process --> L1Review["Review Bug<br>Report"]
L1Review --> L1Examine["Examine<br>Relevant Code"]
L1Examine --> L1Fix["Implement<br>Targeted Fix"]
L1Fix --> L1Test["Test<br>Fix"]
L1Test --> L1Update["Update<br>tasks.md"]
%% Level 2 Implementation
CheckLevel -->|"Level 2<br>Simple Enhancement"| L2Process["LEVEL 2 PROCESS<br>Level2/enhancement-workflow.md"]
L2Process --> L2Review["Review Build<br>Plan"]
L2Review --> L2Examine["Examine Relevant<br>Code Areas"]
L2Examine --> L2Implement["Implement Changes<br>Sequentially"]
L2Implement --> L2Test["Test<br>Changes"]
L2Test --> L2Update["Update<br>tasks.md"]
%% Level 3-4 Implementation
CheckLevel -->|"Level 3-4<br>Feature/System"| L34Process["LEVEL 3-4 PROCESS<br>Level3/feature-workflow.md<br>Level4/system-workflow.md"]
L34Process --> L34Review["Review Plan &<br>Creative Decisions"]
L34Review --> L34Phase{"Creative Phase<br>Documents<br>Complete?"}
L34Phase -->|"No"| L34Error["ERROR:<br>Return to CREATIVE Mode"]
L34Phase -->|"Yes"| L34DirSetup["Create Directory<br>Structure"]
L34DirSetup --> L34VerifyDirs["VERIFY Directories<br>Created Successfully"]
L34VerifyDirs --> L34Implementation["Build<br>Phase"]
%% Implementation Phases
L34Implementation --> L34Phase1["Phase 1<br>Build"]
L34Phase1 --> L34VerifyFiles["VERIFY Files<br>Created Successfully"]
L34VerifyFiles --> L34Test1["Test<br>Phase 1"]
L34Test1 --> L34Document1["Document<br>Phase 1"]
L34Document1 --> L34Next1{"Next<br>Phase?"}
L34Next1 -->|"Yes"| L34Implementation
L34Next1 -->|"No"| L34Integration["Integration<br>Testing"]
L34Integration --> L34Document["Document<br>Integration Points"]
L34Document --> L34Update["Update<br>tasks.md"]
%% Command Execution
L1Fix & L2Implement & L34Phase1 --> CommandExec["COMMAND EXECUTION<br>Core/command-execution.md"]
CommandExec --> DocCommands["Document Commands<br>& Results"]
%% Completion & Transition
L1Update & L2Update & L34Update --> VerifyComplete["Verify Build<br>Complete"]
VerifyComplete --> UpdateProgress["Update progress.md<br>with Status"]
UpdateProgress --> Transition["NEXT MODE:<br>REFLECT MODE"]
```
## 📋 REQUIRED FILE STATE VERIFICATION
Before implementation can begin, verify file state:
```mermaid
graph TD
Start["File State<br>Verification"] --> CheckTasks{"tasks.md has<br>planning complete?"}
CheckTasks -->|"No"| ErrorPlan["ERROR:<br>Return to PLAN Mode"]
CheckTasks -->|"Yes"| CheckLevel{"Task<br>Complexity?"}
CheckLevel -->|"Level 1"| L1Ready["Ready for<br>Implementation"]
CheckLevel -->|"Level 2"| L2Ready["Ready for<br>Implementation"]
CheckLevel -->|"Level 3-4"| CheckCreative{"Creative phases<br>required?"}
CheckCreative -->|"No"| L34Ready["Ready for<br>Implementation"]
CheckCreative -->|"Yes"| VerifyCreative{"Creative phases<br>completed?"}
VerifyCreative -->|"No"| ErrorCreative["ERROR:<br>Return to CREATIVE Mode"]
VerifyCreative -->|"Yes"| L34Ready
```
## 🔄 FILE SYSTEM VERIFICATION PROCESS
```mermaid
graph TD
Start["Start File<br>Verification"] --> CheckDir["Check Directory<br>Structure"]
CheckDir --> DirResult{"Directories<br>Exist?"}
DirResult -->|"No"| ErrorDir["❌ ERROR:<br>Missing Directories"]
DirResult -->|"Yes"| CheckFiles["Check Each<br>Created File"]
ErrorDir --> FixDir["Fix Directory<br>Structure"]
FixDir --> CheckDir
CheckFiles --> FileResult{"All Files<br>Exist?"}
FileResult -->|"No"| ErrorFile["❌ ERROR:<br>Missing/Wrong Path Files"]
FileResult -->|"Yes"| Complete["✅ Verification<br>Complete"]
ErrorFile --> FixFile["Fix File Paths<br>or Recreate Files"]
FixFile --> CheckFiles
```
## 📋 DIRECTORY VERIFICATION STEPS
Before beginning any file creation:
```
✓ DIRECTORY VERIFICATION PROCEDURE
1. Create all directories first before any files
2. Use ABSOLUTE paths: /full/path/to/directory
3. Verify each directory after creation:
ls -la /full/path/to/directory # Linux/Mac
dir "C:\full\path\to\directory" # Windows
4. Document directory structure in progress.md
5. Only proceed to file creation AFTER verifying ALL directories exist
```
## 📋 FILE CREATION VERIFICATION
After creating files:
```
✓ FILE VERIFICATION PROCEDURE
1. Use ABSOLUTE paths for all file operations: /full/path/to/file.ext
2. Verify each file creation was successful:
ls -la /full/path/to/file.ext # Linux/Mac
dir "C:\full\path\to\file.ext" # Windows
3. If verification fails:
a. Check for path resolution issues
b. Verify directory exists
c. Try creating with corrected path
d. Recheck file exists after correction
4. Document all file paths in progress.md
```
## 🔄 COMMAND EXECUTION WORKFLOW
```mermaid
graph TD
Start["Command<br>Execution"] --> Analyze["Analyze Command<br>Requirements"]
Analyze --> Complexity{"Command<br>Complexity?"}
Complexity -->|"Simple"| Simple["Execute<br>Single Command"]
Complexity -->|"Moderate"| Chain["Use Efficient<br>Command Chaining"]
Complexity -->|"Complex"| Break["Break Into<br>Logical Steps"]
Simple & Chain & Break --> Verify["Verify<br>Results"]
Verify --> Document["Document<br>Command & Result"]
Document --> Next["Next<br>Command"]
```
## 📋 LEVEL-SPECIFIC BUILD APPROACHES
```mermaid
graph TD
subgraph "Level 1: Quick Bug Fix"
L1A["Targeted Code<br>Examination"]
L1B["Minimal<br>Change Scope"]
L1C["Direct<br>Fix"]
L1D["Verify<br>Fix"]
end
subgraph "Level 2: Enhancement"
L2A["Sequential<br>Build"]
L2B["Contained<br>Changes"]
L2C["Standard<br>Testing"]
L2D["Component<br>Documentation"]
end
subgraph "Level 3-4: Feature/System"
L3A["Directory<br>Structure First"]
L3B["Verify Dirs<br>Before Files"]
L3C["Phased<br>Build"]
L3D["Verify Files<br>After Creation"]
L3E["Integration<br>Testing"]
L3F["Detailed<br>Documentation"]
end
L1A --> L1B --> L1C --> L1D
L2A --> L2B --> L2C --> L2D
L3A --> L3B --> L3C --> L3D --> L3E --> L3F
```
## 📝 BUILD DOCUMENTATION FORMAT
Document builds with:
```
## Build: [Component/Feature]
### Approach
[Brief description of build approach]
### Directory Structure
- [/absolute/path/to/dir1/]: [Purpose]
- [/absolute/path/to/dir2/]: [Purpose]
### Code Changes
- [/absolute/path/to/file1.ext]: [Description of changes]
- [/absolute/path/to/file2.ext]: [Description of changes]
### Verification Steps
- [✓] Directory structure created and verified
- [✓] All files created in correct locations
- [✓] File content verified
### Commands Executed
```
[Command 1]
[Result]
```
```
[Command 2]
[Result]
```
### Testing
- [Test 1]: [Result]
- [Test 2]: [Result]
### Status
- [x] Build complete
- [x] Testing performed
- [x] File verification completed
- [ ] Documentation updated
```
## 📊 TASKS.MD UPDATE FORMAT
During the build process, update tasks.md with progress:
```
## Status
- [x] Initialization complete
- [x] Planning complete
[For Level 3-4:]
- [x] Creative phases complete
- [x] Directory structure created and verified
- [x] [Built component 1]
- [x] [Built component 2]
- [ ] [Remaining component]
## Build Progress
- [Component 1]: Complete
- Files: [/absolute/path/to/files]
- [Details about implementation]
- [Component 2]: Complete
- Files: [/absolute/path/to/files]
- [Details about implementation]
- [Component 3]: In Progress
- [Current status]
```
## 📋 PROGRESS.MD UPDATE FORMAT
Update progress.md with:
```
# Build Progress
## Directory Structure
- [/absolute/path/to/dir1/]: Created and verified
- [/absolute/path/to/dir2/]: Created and verified
## [Date]: [Component/Feature] Built
- **Files Created**:
- [/absolute/path/to/file1.ext]: Verified
- [/absolute/path/to/file2.ext]: Verified
- **Key Changes**:
- [Change 1]
- [Change 2]
- **Testing**: [Test results]
- **Next Steps**: [What comes next]
```
## 📊 BUILD VERIFICATION CHECKLIST
```
✓ BUILD VERIFICATION
- Directory structure created correctly? [YES/NO]
- All files created in correct locations? [YES/NO]
- All file paths verified with absolute paths? [YES/NO]
- All planned changes implemented? [YES/NO]
- Testing performed for all changes? [YES/NO]
- Code follows project standards? [YES/NO]
- Edge cases handled appropriately? [YES/NO]
- Build documented with absolute paths? [YES/NO]
- tasks.md updated with progress? [YES/NO]
- progress.md updated with details? [YES/NO]
→ If all YES: Build complete - ready for REFLECT mode
→ If any NO: Complete missing build elements
```
## 🔄 MODE TRANSITION NOTIFICATION
When the build is complete, notify user with:
```
## BUILD COMPLETE
✅ Directory structure verified
✅ All files created in correct locations
✅ All planned changes implemented
✅ Testing performed successfully
✅ tasks.md updated with status
✅ progress.md updated with details
→ NEXT RECOMMENDED MODE: REFLECT MODE
```
@@ -0,0 +1,224 @@
---
description: Visual process map for CREATIVE mode (Design Decisions)
globs: "**/creative*/**", "**/design*/**", "**/decision*/**"
alwaysApply: false
---
# CREATIVE MODE: DESIGN PROCESS MAP
> **TL;DR:** This visual map guides the CREATIVE mode process, focusing on structured design decision-making for components that require deeper exploration before implementation.
## 🧭 CREATIVE MODE PROCESS FLOW
```mermaid
graph TD
Start["START CREATIVE MODE"] --> ReadTasks["Read tasks.md<br>For Creative Requirements"]
%% Initial Assessment
ReadTasks --> VerifyPlan{"Plan Complete<br>& Creative Phases<br>Identified?"}
VerifyPlan -->|"No"| ReturnPlan["Return to<br>PLAN Mode"]
VerifyPlan -->|"Yes"| IdentifyPhases["Identify Creative<br>Phases Required"]
%% Creative Phase Selection
IdentifyPhases --> SelectPhase["Select Next<br>Creative Phase"]
SelectPhase --> PhaseType{"Creative<br>Phase Type?"}
%% Creative Phase Types
PhaseType -->|"UI/UX<br>Design"| UIPhase["UI/UX CREATIVE PHASE<br>Core/creative-phase-uiux.md"]
PhaseType -->|"Architecture<br>Design"| ArchPhase["ARCHITECTURE CREATIVE PHASE<br>Core/creative-phase-architecture.md"]
PhaseType -->|"Data Model<br>Design"| DataPhase["DATA MODEL CREATIVE PHASE<br>Core/creative-phase-data.md"]
PhaseType -->|"Algorithm<br>Design"| AlgoPhase["ALGORITHM CREATIVE PHASE<br>Core/creative-phase-algorithm.md"]
%% UI/UX Creative Phase
UIPhase --> UI_Problem["Define UI/UX<br>Problem"]
UI_Problem --> UI_Research["Research UI<br>Patterns"]
UI_Research --> UI_Options["Explore UI<br>Options"]
UI_Options --> UI_Evaluate["Evaluate User<br>Experience"]
UI_Evaluate --> UI_Decision["Make Design<br>Decision"]
UI_Decision --> UI_Document["Document UI<br>Design"]
%% Architecture Creative Phase
ArchPhase --> Arch_Problem["Define Architecture<br>Challenge"]
Arch_Problem --> Arch_Options["Explore Architecture<br>Options"]
Arch_Options --> Arch_Analyze["Analyze Tradeoffs"]
Arch_Analyze --> Arch_Decision["Make Architecture<br>Decision"]
Arch_Decision --> Arch_Document["Document<br>Architecture"]
Arch_Document --> Arch_Diagram["Create Architecture<br>Diagram"]
%% Data Model Creative Phase
DataPhase --> Data_Requirements["Define Data<br>Requirements"]
Data_Requirements --> Data_Structure["Design Data<br>Structure"]
Data_Structure --> Data_Relations["Define<br>Relationships"]
Data_Relations --> Data_Validation["Design<br>Validation"]
Data_Validation --> Data_Document["Document<br>Data Model"]
%% Algorithm Creative Phase
AlgoPhase --> Algo_Problem["Define Algorithm<br>Problem"]
Algo_Problem --> Algo_Options["Explore Algorithm<br>Approaches"]
Algo_Options --> Algo_Evaluate["Evaluate Time/Space<br>Complexity"]
Algo_Evaluate --> Algo_Decision["Make Algorithm<br>Decision"]
Algo_Decision --> Algo_Document["Document<br>Algorithm"]
%% Documentation & Completion
UI_Document & Arch_Diagram & Data_Document & Algo_Document --> CreateDoc["Create Creative<br>Phase Document"]
CreateDoc --> UpdateTasks["Update tasks.md<br>with Decision"]
UpdateTasks --> MorePhases{"More Creative<br>Phases?"}
MorePhases -->|"Yes"| SelectPhase
MorePhases -->|"No"| VerifyComplete["Verify All<br>Phases Complete"]
VerifyComplete --> NotifyComplete["Signal Creative<br>Phases Complete"]
```
## 📋 CREATIVE PHASE DOCUMENT FORMAT
Each creative phase should produce a document with this structure:
```mermaid
graph TD
subgraph "Creative Phase Document"
Header["🎨 CREATIVE PHASE: [TYPE]"]
Problem["PROBLEM STATEMENT<br>Clear definition of the problem"]
Options["OPTIONS ANALYSIS<br>Multiple approaches considered"]
Pros["PROS & CONS<br>Tradeoffs for each option"]
Decision["DECISION<br>Selected approach + rationale"]
Impl["IMPLEMENTATION PLAN<br>Steps to implement the decision"]
Diagram["VISUALIZATION<br>Diagrams of the solution"]
end
Header --> Problem --> Options --> Pros --> Decision --> Impl --> Diagram
```
## 🔍 CREATIVE TYPES AND APPROACHES
```mermaid
graph TD
subgraph "UI/UX Design"
UI1["User Flow<br>Analysis"]
UI2["Component<br>Hierarchy"]
UI3["Interaction<br>Patterns"]
UI4["Visual Design<br>Principles"]
end
subgraph "Architecture Design"
A1["Component<br>Structure"]
A2["Data Flow<br>Patterns"]
A3["Interface<br>Design"]
A4["System<br>Integration"]
end
subgraph "Data Model Design"
D1["Entity<br>Relationships"]
D2["Schema<br>Design"]
D3["Validation<br>Rules"]
D4["Query<br>Optimization"]
end
subgraph "Algorithm Design"
AL1["Complexity<br>Analysis"]
AL2["Efficiency<br>Optimization"]
AL3["Edge Case<br>Handling"]
AL4["Scaling<br>Considerations"]
end
```
## 📊 REQUIRED FILE STATE VERIFICATION
Before creative phase work can begin, verify file state:
```mermaid
graph TD
Start["File State<br>Verification"] --> CheckTasks{"tasks.md has<br>planning complete?"}
CheckTasks -->|"No"| ErrorPlan["ERROR:<br>Return to PLAN Mode"]
CheckTasks -->|"Yes"| CheckCreative{"Creative phases<br>identified?"}
CheckCreative -->|"No"| ErrorCreative["ERROR:<br>Return to PLAN Mode"]
CheckCreative -->|"Yes"| ReadyCreative["Ready for<br>Creative Phase"]
```
## 📋 OPTIONS ANALYSIS TEMPLATE
For each creative phase, analyze multiple options:
```
## OPTIONS ANALYSIS
### Option 1: [Name]
**Description**: [Brief description]
**Pros**:
- [Pro 1]
- [Pro 2]
**Cons**:
- [Con 1]
- [Con 2]
**Complexity**: [Low/Medium/High]
**Implementation Time**: [Estimate]
### Option 2: [Name]
**Description**: [Brief description]
**Pros**:
- [Pro 1]
- [Pro 2]
**Cons**:
- [Con 1]
- [Con 2]
**Complexity**: [Low/Medium/High]
**Implementation Time**: [Estimate]
### Option 3: [Name]
**Description**: [Brief description]
**Pros**:
- [Pro 1]
- [Pro 2]
**Cons**:
- [Con 1]
- [Con 2]
**Complexity**: [Low/Medium/High]
**Implementation Time**: [Estimate]
```
## 🎨 CREATIVE PHASE MARKERS
Use these visual markers for creative phases:
```
🎨🎨🎨 ENTERING CREATIVE PHASE: [TYPE] 🎨🎨🎨
[Creative phase content]
🎨 CREATIVE CHECKPOINT: [Milestone]
[Additional content]
🎨🎨🎨 EXITING CREATIVE PHASE - DECISION MADE 🎨🎨🎨
```
## 📊 CREATIVE PHASE VERIFICATION CHECKLIST
```
✓ CREATIVE PHASE VERIFICATION
- Problem clearly defined? [YES/NO]
- Multiple options considered (3+)? [YES/NO]
- Pros/cons documented for each option? [YES/NO]
- Decision made with clear rationale? [YES/NO]
- Implementation plan included? [YES/NO]
- Visualization/diagrams created? [YES/NO]
- tasks.md updated with decision? [YES/NO]
→ If all YES: Creative phase complete
→ If any NO: Complete missing elements
```
## 🔄 MODE TRANSITION NOTIFICATION
When all creative phases are complete, notify user with:
```
## CREATIVE PHASES COMPLETE
✅ All required design decisions made
✅ Creative phase documents created
✅ tasks.md updated with decisions
✅ Implementation plan updated
→ NEXT RECOMMENDED MODE: BUILD MODE
```
@@ -0,0 +1,275 @@
---
description: Visual process map for PLAN mode (Code Implementation)
globs: plan-mode-map.mdc
alwaysApply: false
---
# PLAN MODE: TASK PLANNING PROCESS MAP
> **TL;DR:** This visual map guides the PLAN mode process, focusing on creating detailed implementation plans based on the complexity level determined during initialization, with mandatory technology validation before implementation.
## 🧭 PLAN MODE PROCESS FLOW
```mermaid
graph TD
Start["START PLANNING"] --> ReadTasks["Read tasks.md<br>Core/task-tracking.md"]
%% Complexity Level Determination
ReadTasks --> CheckLevel{"Determine<br>Complexity Level"}
CheckLevel -->|"Level 2"| Level2["LEVEL 2 PLANNING<br>Level2/enhancement-planning.md"]
CheckLevel -->|"Level 3"| Level3["LEVEL 3 PLANNING<br>Level3/feature-planning.md"]
CheckLevel -->|"Level 4"| Level4["LEVEL 4 PLANNING<br>Level4/system-planning.md"]
%% Level 2 Planning
Level2 --> L2Review["Review Code<br>Structure"]
L2Review --> L2Document["Document<br>Planned Changes"]
L2Document --> L2Challenges["Identify<br>Challenges"]
L2Challenges --> L2Checklist["Create Task<br>Checklist"]
L2Checklist --> L2Update["Update tasks.md<br>with Plan"]
L2Update --> L2Tech["TECHNOLOGY<br>VALIDATION"]
L2Tech --> L2Verify["Verify Plan<br>Completeness"]
%% Level 3 Planning
Level3 --> L3Review["Review Codebase<br>Structure"]
L3Review --> L3Requirements["Document Detailed<br>Requirements"]
L3Requirements --> L3Components["Identify Affected<br>Components"]
L3Components --> L3Plan["Create Comprehensive<br>Implementation Plan"]
L3Plan --> L3Challenges["Document Challenges<br>& Solutions"]
L3Challenges --> L3Update["Update tasks.md<br>with Plan"]
L3Update --> L3Tech["TECHNOLOGY<br>VALIDATION"]
L3Tech --> L3Flag["Flag Components<br>Requiring Creative"]
L3Flag --> L3Verify["Verify Plan<br>Completeness"]
%% Level 4 Planning
Level4 --> L4Analysis["Codebase Structure<br>Analysis"]
L4Analysis --> L4Requirements["Document Comprehensive<br>Requirements"]
L4Requirements --> L4Diagrams["Create Architectural<br>Diagrams"]
L4Diagrams --> L4Subsystems["Identify Affected<br>Subsystems"]
L4Subsystems --> L4Dependencies["Document Dependencies<br>& Integration Points"]
L4Dependencies --> L4Plan["Create Phased<br>Implementation Plan"]
L4Plan --> L4Update["Update tasks.md<br>with Plan"]
L4Update --> L4Tech["TECHNOLOGY<br>VALIDATION"]
L4Tech --> L4Flag["Flag Components<br>Requiring Creative"]
L4Flag --> L4Verify["Verify Plan<br>Completeness"]
%% Technology Validation Gate - NEW
L2Tech & L3Tech & L4Tech --> TechGate["⛔ TECHNOLOGY<br>VALIDATION GATE"]
TechGate --> TechSelection["Document Technology<br>Stack Selection"]
TechSelection --> TechHelloWorld["Create Hello World<br>Proof of Concept"]
TechHelloWorld --> TechDependencies["Verify Required<br>Dependencies"]
TechDependencies --> TechConfig["Validate Build<br>Configuration"]
TechConfig --> TechBuild["Complete Test<br>Build"]
TechBuild --> TechVerify["⛔ TECHNOLOGY<br>CHECKPOINT"]
%% Verification & Completion
L2Verify & L3Verify & L4Verify & TechVerify --> CheckCreative{"Creative<br>Phases<br>Required?"}
%% Mode Transition
CheckCreative -->|"Yes"| RecCreative["NEXT MODE:<br>CREATIVE MODE"]
CheckCreative -->|"No"| RecBuild["NEXT MODE:<br>BUILD MODE"]
%% Style for Technology Gate
style TechGate fill:#ff5555,stroke:#dd3333,color:white,stroke-width:3px
style TechVerify fill:#ff5555,stroke:#dd3333,color:white,stroke-width:3px
style TechSelection fill:#4da6ff,stroke:#0066cc,color:white
style TechHelloWorld fill:#4da6ff,stroke:#0066cc,color:white
style TechDependencies fill:#4da6ff,stroke:#0066cc,color:white
style TechConfig fill:#4da6ff,stroke:#0066cc,color:white
style TechBuild fill:#4da6ff,stroke:#0066cc,color:white
```
## 📋 LEVEL-SPECIFIC PLANNING APPROACHES
```mermaid
graph TD
subgraph "Level 2: Enhancement"
L2A["Basic Requirements<br>Analysis"]
L2B["Simple Component<br>Identification"]
L2C["Linear Implementation<br>Plan"]
L2D["Basic Checklist<br>Creation"]
end
subgraph "Level 3: Feature"
L3A["Detailed Requirements<br>Analysis"]
L3B["Component Mapping<br>with Dependencies"]
L3C["Multi-Phase<br>Implementation Plan"]
L3D["Comprehensive<br>Checklist"]
L3E["Creative Phase<br>Identification"]
end
subgraph "Level 4: System"
L4A["Architectural<br>Requirements Analysis"]
L4B["System Component<br>Mapping"]
L4C["Subsystem<br>Integration Plan"]
L4D["Phased Implementation<br>Strategy"]
L4E["Risk Assessment<br>& Mitigation"]
L4F["Multiple Creative<br>Phase Requirements"]
end
L2A --> L2B --> L2C --> L2D
L3A --> L3B --> L3C --> L3D --> L3E
L4A --> L4B --> L4C --> L4D --> L4E --> L4F
```
## 🔧 TECHNOLOGY VALIDATION WORKFLOW
```mermaid
graph TD
Start["Technology<br>Validation Start"] --> Select["Technology<br>Stack Selection"]
Select --> Document["Document Chosen<br>Technologies"]
Document --> POC["Create Minimal<br>Proof of Concept"]
POC --> Build["Verify Build<br>Process Works"]
Build --> Dependencies["Validate All<br>Dependencies"]
Dependencies --> Config["Confirm Configuration<br>Files Are Correct"]
Config --> Test["Complete Test<br>Build/Run"]
Test --> Success{"All Checks<br>Pass?"}
Success -->|"Yes"| Ready["Ready for<br>Implementation"]
Success -->|"No"| Fix["Fix Technology<br>Issues"]
Fix --> Document
style Start fill:#4da6ff,stroke:#0066cc,color:white
style POC fill:#4da6ff,stroke:#0066cc,color:white
style Success fill:#ff5555,stroke:#dd3333,color:white
style Fix fill:#ff5555,stroke:#dd3333,color:white
style Ready fill:#10b981,stroke:#059669,color:white
```
## 📊 REQUIRED FILE STATE VERIFICATION
Before planning can begin, verify the file state:
```mermaid
graph TD
Start["File State<br>Verification"] --> CheckTasks{"tasks.md<br>initialized?"}
CheckTasks -->|"No"| ErrorTasks["ERROR:<br>Return to VAN Mode"]
CheckTasks -->|"Yes"| CheckActive{"activeContext.md<br>exists?"}
CheckActive -->|"No"| ErrorActive["ERROR:<br>Return to VAN Mode"]
CheckActive -->|"Yes"| ReadyPlan["Ready for<br>Planning"]
```
## 📝 TASKS.MD UPDATE FORMAT
During planning, update tasks.md with this structure:
```
# Task: [Task name]
## Description
[Detailed description]
## Complexity
Level: [2/3/4]
Type: [Enhancement/Feature/Complex System]
## Technology Stack
- Framework: [Selected framework]
- Build Tool: [Selected build tool]
- Language: [Selected language]
- Storage: [Selected storage mechanism]
## Technology Validation Checkpoints
- [ ] Project initialization command verified
- [ ] Required dependencies identified and installed
- [ ] Build configuration validated
- [ ] Hello world verification completed
- [ ] Test build passes successfully
## Status
- [x] Initialization complete
- [x] Planning complete
- [ ] Technology validation complete
- [ ] [Implementation steps]
## Implementation Plan
1. [Step 1]
- [Subtask 1.1]
- [Subtask 1.2]
2. [Step 2]
- [Subtask 2.1]
- [Subtask 2.2]
## Creative Phases Required
- [ ] [Component 1] Design
- [ ] [Component 2] Architecture
- [ ] [Component 3] Data Model
## Dependencies
- [Dependency 1]
- [Dependency 2]
## Challenges & Mitigations
- [Challenge 1]: [Mitigation strategy]
- [Challenge 2]: [Mitigation strategy]
```
## 📋 CREATIVE PHASE IDENTIFICATION
For Level 3-4 tasks, identify components requiring creative phases:
```mermaid
graph TD
Start["Creative Phase<br>Identification"] --> CheckComp{"Component<br>Analysis"}
CheckComp --> UI["UI/UX<br>Components"]
CheckComp --> Data["Data Model<br>Components"]
CheckComp --> Arch["Architecture<br>Components"]
CheckComp --> Algo["Algorithm<br>Components"]
UI & Data & Arch & Algo --> Decision{"Design Decisions<br>Required?"}
Decision -->|"Yes"| Flag["Flag for<br>Creative Phase"]
Decision -->|"No"| Skip["Standard<br>Implementation"]
Flag --> Document["Document in<br>tasks.md"]
```
## 📊 TECHNOLOGY VALIDATION CHECKLIST
```
✓ TECHNOLOGY VALIDATION CHECKLIST
- Technology stack clearly defined? [YES/NO]
- Project initialization command documented? [YES/NO]
- Required dependencies identified? [YES/NO]
- Minimal proof of concept created? [YES/NO]
- Hello world build/run successful? [YES/NO]
- Configuration files validated? [YES/NO]
- Test build completes successfully? [YES/NO]
→ If all YES: Technology validation complete - ready for next phase
→ If any NO: Resolve technology issues before proceeding
```
## 📊 PLAN VERIFICATION CHECKLIST
```
✓ PLAN VERIFICATION CHECKLIST
- Requirements clearly documented? [YES/NO]
- Technology stack validated? [YES/NO]
- Affected components identified? [YES/NO]
- Implementation steps detailed? [YES/NO]
- Dependencies documented? [YES/NO]
- Challenges & mitigations addressed? [YES/NO]
- Creative phases identified (Level 3-4)? [YES/NO/NA]
- tasks.md updated with plan? [YES/NO]
→ If all YES: Planning complete - ready for next mode
→ If any NO: Complete missing plan elements
```
## 🔄 MODE TRANSITION NOTIFICATION
When planning is complete, notify user with:
```
## PLANNING COMPLETE
✅ Implementation plan created
✅ Technology stack validated
✅ tasks.md updated with plan
✅ Challenges and mitigations documented
[✅ Creative phases identified (for Level 3-4)]
→ NEXT RECOMMENDED MODE: [CREATIVE/BUILD] MODE
@@ -0,0 +1,495 @@
---
description: QA Mode
globs: qa-mode-map.mdc
alwaysApply: false
---
> **TL;DR:** This enhanced QA mode provides comprehensive validation at any stage of development. It automatically detects the current phase, validates Memory Bank consistency, verifies task tracking, and performs phase-specific technical validation to ensure project quality throughout the development lifecycle.
## 🔍 ENHANCED QA MODE PROCESS FLOW
```mermaid
graph TD
Start["🚀 START QA MODE"] --> DetectPhase["🧭 PHASE DETECTION<br>Determine current project phase"]
%% Phase detection decision path
DetectPhase --> PhaseDetermination{"Current Phase?"}
PhaseDetermination -->|"VAN"| VANChecks["VAN Phase Validation"]
PhaseDetermination -->|"PLAN"| PLANChecks["PLAN Phase Validation"]
PhaseDetermination -->|"CREATIVE"| CREATIVEChecks["CREATIVE Phase Validation"]
PhaseDetermination -->|"BUILD"| BUILDChecks["BUILD Phase Validation"]
%% Universal checks that apply to all phases
DetectPhase --> UniversalChecks["🔍 UNIVERSAL VALIDATION"]
UniversalChecks --> MemoryBankCheck["1️⃣ MEMORY BANK VERIFICATION<br>Check consistency & updates"]
MemoryBankCheck --> TaskTrackingCheck["2️⃣ TASK TRACKING VERIFICATION<br>Validate tasks.md as source of truth"]
TaskTrackingCheck --> ReferenceCheck["3️⃣ REFERENCE VALIDATION<br>Verify cross-references between docs"]
%% Phase-specific validations feed into comprehensive report
VANChecks & PLANChecks & CREATIVEChecks & BUILDChecks --> PhaseSpecificResults["Phase-Specific Results"]
ReferenceCheck & PhaseSpecificResults --> ValidationResults{"✅ All Checks<br>Passed?"}
%% Results Processing
ValidationResults -->|"Yes"| SuccessReport["📝 GENERATE SUCCESS REPORT<br>All validations passed"]
ValidationResults -->|"No"| FailureReport["⚠️ GENERATE FAILURE REPORT<br>With specific fix instructions"]
%% Success Path
SuccessReport --> UpdateMB["📚 Update Memory Bank<br>Record successful validation"]
UpdateMB --> ContinueProcess["🚦 CONTINUE: Phase processes<br>can proceed"]
%% Failure Path
FailureReport --> IdentifyFixes["🔧 IDENTIFY REQUIRED FIXES"]
IdentifyFixes --> ApplyFixes["🛠️ APPLY FIXES"]
ApplyFixes --> Revalidate["🔄 Re-run validation"]
Revalidate --> ValidationResults
%% Style nodes for clarity
style Start fill:#4da6ff,stroke:#0066cc,color:white
style DetectPhase fill:#f6ad55,stroke:#c27022,color:white
style UniversalChecks fill:#f6546a,stroke:#c30052,color:white
style MemoryBankCheck fill:#10b981,stroke:#059669,color:white
style TaskTrackingCheck fill:#10b981,stroke:#059669,color:white
style ReferenceCheck fill:#10b981,stroke:#059669,color:white
style ValidationResults fill:#f6546a,stroke:#c30052,color:white
style SuccessReport fill:#10b981,stroke:#059669,color:white
style FailureReport fill:#f6ad55,stroke:#c27022,color:white
style ContinueProcess fill:#10b981,stroke:#059669,color:white,stroke-width:2px
style IdentifyFixes fill:#f6ad55,stroke:#c27022,color:white
```
## 🧭 PHASE DETECTION PROCESS
The enhanced QA mode first determines which phase the project is currently in:
```mermaid
graph TD
PD["Phase Detection"] --> CheckMB["Analyze Memory Bank Files"]
CheckMB --> CheckActive["Check activeContext.md<br>for current phase"]
CheckActive --> CheckProgress["Check progress.md<br>for recent activities"]
CheckProgress --> CheckTasks["Check tasks.md<br>for task status"]
CheckTasks --> PhaseResult{"Determine<br>Current Phase"}
PhaseResult -->|"VAN"| VAN["VAN Phase<br>Initialization"]
PhaseResult -->|"PLAN"| PLAN["PLAN Phase<br>Task Planning"]
PhaseResult -->|"CREATIVE"| CREATIVE["CREATIVE Phase<br>Design Decisions"]
PhaseResult -->|"BUILD"| BUILD["BUILD Phase<br>Implementation"]
VAN & PLAN & CREATIVE & BUILD --> LoadChecks["Load Phase-Specific<br>Validation Checks"]
style PD fill:#4da6ff,stroke:#0066cc,color:white
style PhaseResult fill:#f6546a,stroke:#c30052,color:white
style LoadChecks fill:#10b981,stroke:#059669,color:white
```
## 📝 UNIVERSAL MEMORY BANK VERIFICATION
This process ensures Memory Bank files are consistent and up-to-date regardless of phase:
```mermaid
graph TD
MBVS["Memory Bank<br>Verification"] --> CoreCheck["Check Core Files Exist"]
CoreCheck --> CoreFiles["Verify Required Files:<br>projectbrief.md<br>activeContext.md<br>tasks.md<br>progress.md"]
CoreFiles --> ContentCheck["Verify Content<br>Consistency"]
ContentCheck --> LastModified["Check Last Modified<br>Timestamps"]
LastModified --> CrossRef["Validate Cross-<br>References"]
CrossRef --> ConsistencyCheck{"All Files<br>Consistent?"}
ConsistencyCheck -->|"Yes"| PassMB["✅ Memory Bank<br>Verification Passed"]
ConsistencyCheck -->|"No"| FailMB["❌ Memory Bank<br>Inconsistencies Found"]
FailMB --> FixSuggestions["Generate Fix<br>Suggestions"]
style MBVS fill:#4da6ff,stroke:#0066cc,color:white
style ConsistencyCheck fill:#f6546a,stroke:#c30052,color:white
style PassMB fill:#10b981,stroke:#059669,color:white
style FailMB fill:#ff5555,stroke:#dd3333,color:white
```
## 📋 TASK TRACKING VERIFICATION
This process validates tasks.md as the single source of truth:
```mermaid
graph TD
TTV["Task Tracking<br>Verification"] --> CheckTasksFile["Check tasks.md<br>Existence & Format"]
CheckTasksFile --> VerifyReferences["Verify Task References<br>in Other Documents"]
VerifyReferences --> ProgressCheck["Check Consistency with<br>progress.md"]
ProgressCheck --> StatusCheck["Verify Task Status<br>Accuracy"]
StatusCheck --> TaskConsistency{"Tasks Properly<br>Tracked?"}
TaskConsistency -->|"Yes"| PassTasks["✅ Task Tracking<br>Verification Passed"]
TaskConsistency -->|"No"| FailTasks["❌ Task Tracking<br>Issues Found"]
FailTasks --> TaskFixSuggestions["Generate Task Tracking<br>Fix Suggestions"]
style TTV fill:#4da6ff,stroke:#0066cc,color:white
style TaskConsistency fill:#f6546a,stroke:#c30052,color:white
style PassTasks fill:#10b981,stroke:#059669,color:white
style FailTasks fill:#ff5555,stroke:#dd3333,color:white
```
## 🔄 REFERENCE VALIDATION PROCESS
This process ensures proper cross-referencing between documents:
```mermaid
graph TD
RV["Reference<br>Validation"] --> FindRefs["Find Cross-References<br>in Documents"]
FindRefs --> VerifyRefs["Verify Reference<br>Accuracy"]
VerifyRefs --> CheckBackRefs["Check Bidirectional<br>References"]
CheckBackRefs --> RefConsistency{"References<br>Consistent?"}
RefConsistency -->|"Yes"| PassRefs["✅ Reference Validation<br>Passed"]
RefConsistency -->|"No"| FailRefs["❌ Reference<br>Issues Found"]
FailRefs --> RefFixSuggestions["Generate Reference<br>Fix Suggestions"]
style RV fill:#4da6ff,stroke:#0066cc,color:white
style RefConsistency fill:#f6546a,stroke:#c30052,color:white
style PassRefs fill:#10b981,stroke:#059669,color:white
style FailRefs fill:#ff5555,stroke:#dd3333,color:white
```
## 🚨 PHASE-SPECIFIC VALIDATION PROCESSES
### VAN Phase Validation
```mermaid
graph TD
VAN["VAN Phase<br>Validation"] --> InitCheck["Check Initialization<br>Completeness"]
InitCheck --> PlatformCheck["Verify Platform<br>Detection"]
PlatformCheck --> ComplexityCheck["Validate Complexity<br>Determination"]
ComplexityCheck --> VANConsistency{"VAN Phase<br>Complete?"}
VANConsistency -->|"Yes"| PassVAN["✅ VAN Phase<br>Validation Passed"]
VANConsistency -->|"No"| FailVAN["❌ VAN Phase<br>Issues Found"]
style VAN fill:#4da6ff,stroke:#0066cc,color:white
style VANConsistency fill:#f6546a,stroke:#c30052,color:white
style PassVAN fill:#10b981,stroke:#059669,color:white
style FailVAN fill:#ff5555,stroke:#dd3333,color:white
```
### PLAN Phase Validation
```mermaid
graph TD
PLAN["PLAN Phase<br>Validation"] --> PlanCheck["Check Planning<br>Documentation"]
PlanCheck --> TaskBreakdown["Verify Task<br>Breakdown"]
TaskBreakdown --> ScopeCheck["Validate Scope<br>Definition"]
ScopeCheck --> PLANConsistency{"PLAN Phase<br>Complete?"}
PLANConsistency -->|"Yes"| PassPLAN["✅ PLAN Phase<br>Validation Passed"]
PLANConsistency -->|"No"| FailPLAN["❌ PLAN Phase<br>Issues Found"]
style PLAN fill:#4da6ff,stroke:#0066cc,color:white
style PLANConsistency fill:#f6546a,stroke:#c30052,color:white
style PassPLAN fill:#10b981,stroke:#059669,color:white
style FailPLAN fill:#ff5555,stroke:#dd3333,color:white
```
### CREATIVE Phase Validation
```mermaid
graph TD
CREATIVE["CREATIVE Phase<br>Validation"] --> DesignCheck["Check Design<br>Documents"]
DesignCheck --> ArchCheck["Verify Architectural<br>Decisions"]
ArchCheck --> PatternCheck["Validate Design<br>Patterns"]
PatternCheck --> CREATIVEConsistency{"CREATIVE Phase<br>Complete?"}
CREATIVEConsistency -->|"Yes"| PassCREATIVE["✅ CREATIVE Phase<br>Validation Passed"]
CREATIVEConsistency -->|"No"| FailCREATIVE["❌ CREATIVE Phase<br>Issues Found"]
style CREATIVE fill:#4da6ff,stroke:#0066cc,color:white
style CREATIVEConsistency fill:#f6546a,stroke:#c30052,color:white
style PassCREATIVE fill:#10b981,stroke:#059669,color:white
style FailCREATIVE fill:#ff5555,stroke:#dd3333,color:white
```
### BUILD Phase Technical Validation
This retains the original QA validation from the previous version:
```mermaid
graph TD
BUILD["BUILD Phase<br>Validation"] --> ReadDesign["Read Design Decisions"]
ReadDesign --> FourChecks["Four-Point Technical<br>Validation"]
FourChecks --> DepCheck["1️⃣ Dependency<br>Verification"]
DepCheck --> ConfigCheck["2️⃣ Configuration<br>Validation"]
ConfigCheck --> EnvCheck["3️⃣ Environment<br>Validation"]
EnvCheck --> MinBuildCheck["4️⃣ Minimal Build<br>Test"]
MinBuildCheck --> BUILDConsistency{"Technical<br>Prerequisites Met?"}
BUILDConsistency -->|"Yes"| PassBUILD["✅ BUILD Phase<br>Validation Passed"]
BUILDConsistency -->|"No"| FailBUILD["❌ BUILD Phase<br>Issues Found"]
style BUILD fill:#4da6ff,stroke:#0066cc,color:white
style FourChecks fill:#f6546a,stroke:#c30052,color:white
style BUILDConsistency fill:#f6546a,stroke:#c30052,color:white
style PassBUILD fill:#10b981,stroke:#059669,color:white
style FailBUILD fill:#ff5555,stroke:#dd3333,color:white
```
## 📋 UNIVERSAL VALIDATION COMMAND EXECUTION
### Memory Bank Verification Commands:
```bash
# Check Memory Bank file existence and recency
ls -la memory-bank/
find memory-bank/ -type f -mtime -7 | sort
# Check for consistency between files
grep -r "task" memory-bank/
grep -r "requirement" memory-bank/
```
### Task Tracking Verification Commands:
```bash
# Verify tasks.md as source of truth
test -f tasks.md && echo "✅ tasks.md exists" || echo "❌ tasks.md missing"
# Check references to tasks in other files
grep -r "Task" --include="*.md" .
grep -r "task" --include="*.md" . | grep -v "tasks.md" | wc -l
# Verify task status consistency
grep -i "completed\|done\|finished" tasks.md
grep -i "in progress\|started" tasks.md
```
### Reference Validation Commands:
```bash
# Find cross-references between files
grep -r "see\|refer\|reference" --include="*.md" .
# Check for broken references
for file in $(grep -l "see\|refer\|reference" --include="*.md" .); do
for ref in $(grep -o '[a-zA-Z0-9_-]*\.md' $file); do
test -f $ref || echo "❌ Broken reference: $ref in $file"
done
done
```
## 📋 1️⃣ DEPENDENCY VERIFICATION PROCESS (Original)
This validation point ensures all required packages are correctly installed.
### Command Execution:
```bash
# Check if packages are installed
npm list react react-dom tailwindcss postcss autoprefixer
# Verify package versions match requirements
npm list | grep -E "react|tailwind|postcss"
# Check for peer dependency warnings
npm ls --depth=0
```
### Validation Criteria:
- All required packages must be installed
- Versions must be compatible with requirements
- No critical peer dependency warnings
- Required dev dependencies must be present
### Common Fixes:
- `npm install [missing-package]` - Install missing packages
- `npm install [package]@[version]` - Fix version mismatches
- `npm install --save-dev [dev-dependency]` - Add development dependencies
## 📝 2️⃣ CONFIGURATION VALIDATION PROCESS (Original)
This validation point ensures configuration files are in the correct format for the project.
### Command Execution:
```bash
# Check package.json for module type
grep "\"type\":" package.json
# Verify configuration file extensions match module type
find . -name "*.config.*" | grep -E "\.(js|cjs|mjs)$"
# Test configuration syntax
node -c *.config.js || node -c *.config.cjs || node -c *.config.mjs
```
### Validation Criteria:
- Configuration file extensions must match module type in package.json
- File syntax must be valid
- Configuration must reference installed packages
### Common Fixes:
- Rename `.js` to `.cjs` for CommonJS in ES module projects
- Fix syntax errors in configuration files
- Adjust configuration to reference installed packages
## 🌐 3️⃣ ENVIRONMENT VALIDATION PROCESS (Original)
This validation point ensures the development environment is correctly set up.
### Command Execution:
```bash
# Check build tools
npm run --help
# Verify node version compatibility
node -v
# Check for environment variables
printenv | grep -E "NODE_|PATH|HOME"
# Verify access permissions
ls -la .
```
### Validation Criteria:
- Node.js version must be compatible with requirements
- Build commands must be defined in package.json
- Environment must have necessary access permissions
- Required environment variables must be set
### Common Fixes:
- Update Node.js version
- Add missing scripts to package.json
- Fix file permissions with chmod/icacls
- Set required environment variables
## 🔥 4️⃣ MINIMAL BUILD TEST PROCESS (Original)
This validation point tests a minimal build to ensure basic functionality works.
### Command Execution:
```bash
# Run a minimal build
npm run build -- --dry-run || npm run dev -- --dry-run
# Test entry point file existence
find src -name "main.*" -o -name "index.*"
# Validate HTML entry point
grep -i "script.*src=" index.html
```
### Validation Criteria:
- Build process must complete without errors
- Entry point files must exist and be correctly referenced
- HTML must reference the correct JavaScript entry point
- Basic rendering must work in a test environment
### Common Fixes:
- Fix entry point references in HTML
- Correct import paths in JavaScript
- Fix build configuration errors
- Update incorrect paths or references
## 📊 ENHANCED COMPREHENSIVE QA REPORT FORMAT
```
╔═════════════════════════ 🔍 ENHANCED QA VALIDATION REPORT ═════════════════════╗
│ │
│ Project: [Project Name] Date: [Current Date] │
│ Platform: [OS Platform] Detected Phase: [Current Phase] │
│ │
│ ━━━━━━━━━━━━━━━━━━━━━━━━ UNIVERSAL VALIDATION RESULTS ━━━━━━━━━━━━━━━━━━━━━━━ │
│ │
│ 1️⃣ MEMORY BANK VERIFICATION │
│ ✓ Core Files: [Status] │
│ ✓ Content Consistency: [Status] │
│ ✓ Last Modified: [Status] │
│ │
│ 2️⃣ TASK TRACKING VERIFICATION │
│ ✓ tasks.md Status: [Status] │
│ ✓ Task References: [Status] │
│ ✓ Status Consistency: [Status] │
│ │
│ 3️⃣ REFERENCE VALIDATION │
│ ✓ Cross-References: [Status] │
│ ✓ Reference Accuracy: [Status] │
│ │
│ ━━━━━━━━━━━━━━━━━━━━━━━ PHASE-SPECIFIC VALIDATION ━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ │
│ [VAN/PLAN/CREATIVE/BUILD] PHASE VALIDATION │
│ ✓ [Phase-specific check 1]: [Status] │
│ ✓ [Phase-specific check 2]: [Status] │
│ ✓ [Phase-specific check 3]: [Status] │
│ │
│ [Technical validation section shown only for BUILD phase] │
│ │
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━ OVERALL STATUS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ │
│ ✅ VALIDATION PASSED - Project quality verified for current phase │
│ │
╚═══════════════════════════════════════════════════════════════════════════════╝
```
## 🚫 ENHANCED FAILURE REPORT FORMAT
If validation fails, a detailed failure report is generated:
```
╔═════════════════════════ ⚠️ QA VALIDATION FAILURES ═════════════════════════════╗
│ │
│ Project: [Project Name] Date: [Current Date] │
│ Platform: [OS Platform] Detected Phase: [Current Phase] │
│ │
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━ FAILED CHECKS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ │
│ ❌ MEMORY BANK ISSUES │
│ • [Specific issue details] │
│ • [Specific issue details] │
│ │
│ ❌ TASK TRACKING ISSUES │
│ • [Specific issue details] │
│ • [Specific issue details] │
│ │
│ ❌ REFERENCE ISSUES │
│ • [Specific issue details] │
│ • [Specific issue details] │
│ │
│ ❌ [PHASE]-SPECIFIC ISSUES │
│ • [Specific issue details] │
│ • [Specific issue details] │
│ │
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━ REQUIRED FIXES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ │
│ 1. [Specific fix instruction with command] │
│ 2. [Specific fix instruction with command] │
│ 3. [Specific fix instruction with command] │
│ │
│ ⚠️ VALIDATION FAILED - Please resolve issues before proceeding │
│ │
╚═════════════════════════════════════════════════════════════════════════════════╝
```
## 🔄 QA-ANYTIME ACTIVATION PROTOCOL
The enhanced QA mode can be activated at any time in the development process:
```mermaid
graph TD
Start["User Types: QA"] --> DetectContext["Detect Current Context"]
DetectContext --> RunQA["Run QA with Context-Aware Checks"]
RunQA --> GenerateReport["Generate Appropriate QA Report"]
GenerateReport --> UserResponse["Present Report to User"]
UserResponse --> FixNeeded{"Fixes<br>Needed?"}
FixNeeded -->|"Yes"| SuggestFixes["Display Fix Instructions"]
FixNeeded -->|"No"| ContinueWork["Continue Current Phase Work"]
style Start fill:#4da6ff,stroke:#0066cc,color:white
style FixNeeded fill:#f6546a,stroke:#c30052,color:white
style SuggestFixes fill:#ff5555,stroke:#dd3333,color:white
style ContinueWork fill:#10b981,stroke:#059669,color:white
```
This enhanced QA mode serves as a "quality guardian" throughout the development process, ensuring documentation is consistently maintained and all phase requirements are met before proceeding to the next phase.
@@ -0,0 +1,229 @@
---
description: Visual process map for REFLECT mode (Task Reflection)
globs: "**/reflect*/**", "**/review*/**", "**/retrospect*/**"
alwaysApply: false
---
# REFLECT MODE: TASK REVIEW PROCESS MAP
> **TL;DR:** This visual map guides the REFLECT mode process, focusing on structured review of the implementation, documenting lessons learned, and preparing insights for future reference.
## 🧭 REFLECT MODE PROCESS FLOW
```mermaid
graph TD
Start["START REFLECT MODE"] --> ReadTasks["Read tasks.md<br>and progress.md"]
%% Initial Assessment
ReadTasks --> VerifyImplement{"Implementation<br>Complete?"}
VerifyImplement -->|"No"| ReturnBuild["Return to<br>BUILD Mode"]
VerifyImplement -->|"Yes"| AssessLevel{"Determine<br>Complexity Level"}
%% Level-Based Reflection
AssessLevel -->|"Level 1"| L1Reflect["LEVEL 1 REFLECTION<br>Level1/reflection-basic.md"]
AssessLevel -->|"Level 2"| L2Reflect["LEVEL 2 REFLECTION<br>Level2/reflection-standard.md"]
AssessLevel -->|"Level 3"| L3Reflect["LEVEL 3 REFLECTION<br>Level3/reflection-comprehensive.md"]
AssessLevel -->|"Level 4"| L4Reflect["LEVEL 4 REFLECTION<br>Level4/reflection-advanced.md"]
%% Level 1 Reflection (Quick)
L1Reflect --> L1Review["Review<br>Bug Fix"]
L1Review --> L1Document["Document<br>Solution"]
L1Document --> L1Update["Update<br>tasks.md"]
%% Level 2 Reflection (Standard)
L2Reflect --> L2Review["Review<br>Enhancement"]
L2Review --> L2WWW["Document<br>What Went Well"]
L2WWW --> L2Challenges["Document<br>Challenges"]
L2Challenges --> L2Lessons["Document<br>Lessons Learned"]
L2Lessons --> L2Update["Update<br>tasks.md"]
%% Level 3-4 Reflection (Comprehensive)
L3Reflect & L4Reflect --> L34Review["Review Implementation<br>& Creative Phases"]
L34Review --> L34Plan["Compare Against<br>Original Plan"]
L34Plan --> L34WWW["Document<br>What Went Well"]
L34WWW --> L34Challenges["Document<br>Challenges"]
L34Challenges --> L34Lessons["Document<br>Lessons Learned"]
L34Lessons --> L34ImproveProcess["Document Process<br>Improvements"]
L34ImproveProcess --> L34Update["Update<br>tasks.md"]
%% Completion & Transition
L1Update & L2Update & L34Update --> CreateReflection["Create<br>reflection.md"]
CreateReflection --> UpdateSystem["Update System<br>Documentation"]
UpdateSystem --> Transition["NEXT MODE:<br>ARCHIVE MODE"]
```
## 📋 REFLECTION STRUCTURE
The reflection should follow this structured format:
```mermaid
graph TD
subgraph "Reflection Document Structure"
Header["# TASK REFLECTION: [Task Name]"]
Summary["## SUMMARY<br>Brief summary of completed task"]
WWW["## WHAT WENT WELL<br>Successful aspects of implementation"]
Challenges["## CHALLENGES<br>Difficulties encountered during implementation"]
Lessons["## LESSONS LEARNED<br>Key insights gained from the experience"]
ProcessImp["## PROCESS IMPROVEMENTS<br>How to improve for future tasks"]
TechImp["## TECHNICAL IMPROVEMENTS<br>Better approaches for similar tasks"]
NextSteps["## NEXT STEPS<br>Follow-up actions or future work"]
end
Header --> Summary --> WWW --> Challenges --> Lessons --> ProcessImp --> TechImp --> NextSteps
```
## 📊 REQUIRED FILE STATE VERIFICATION
Before reflection can begin, verify file state:
```mermaid
graph TD
Start["File State<br>Verification"] --> CheckTasks{"tasks.md has<br>implementation<br>complete?"}
CheckTasks -->|"No"| ErrorBuild["ERROR:<br>Return to BUILD Mode"]
CheckTasks -->|"Yes"| CheckProgress{"progress.md<br>has implementation<br>details?"}
CheckProgress -->|"No"| ErrorProgress["ERROR:<br>Update progress.md first"]
CheckProgress -->|"Yes"| ReadyReflect["Ready for<br>Reflection"]
```
## 🔍 IMPLEMENTATION REVIEW APPROACH
```mermaid
graph TD
subgraph "Implementation Review"
Original["Review Original<br>Requirements"]
Plan["Compare Against<br>Implementation Plan"]
Actual["Assess Actual<br>Implementation"]
Creative["Review Creative<br>Phase Decisions"]
Changes["Identify Deviations<br>from Plan"]
Results["Evaluate<br>Results"]
end
Original --> Plan --> Actual
Plan --> Creative --> Changes
Actual --> Results
Changes --> Results
```
## 📝 REFLECTION DOCUMENT TEMPLATES
### Level 1 (Basic) Reflection
```
# Bug Fix Reflection: [Bug Name]
## Summary
[Brief description of the bug and solution]
## Implementation
[Description of the fix implemented]
## Testing
[Description of testing performed]
## Additional Notes
[Any other relevant information]
```
### Levels 2-4 (Comprehensive) Reflection
```
# Task Reflection: [Task Name]
## Summary
[Brief summary of the task and what was achieved]
## What Went Well
- [Success point 1]
- [Success point 2]
- [Success point 3]
## Challenges
- [Challenge 1]: [How it was addressed]
- [Challenge 2]: [How it was addressed]
- [Challenge 3]: [How it was addressed]
## Lessons Learned
- [Lesson 1]
- [Lesson 2]
- [Lesson 3]
## Process Improvements
- [Process improvement 1]
- [Process improvement 2]
## Technical Improvements
- [Technical improvement 1]
- [Technical improvement 2]
## Next Steps
- [Follow-up task 1]
- [Follow-up task 2]
```
## 📊 REFLECTION QUALITY METRICS
```mermaid
graph TD
subgraph "Reflection Quality Metrics"
Specific["Specific<br>Not general or vague"]
Actionable["Actionable<br>Provides clear direction"]
Honest["Honest<br>Acknowledges successes and failures"]
Forward["Forward-Looking<br>Focuses on future improvement"]
Evidence["Evidence-Based<br>Based on concrete examples"]
end
```
## 📋 TASKS.MD UPDATE FORMAT
During reflection, update tasks.md with:
```
## Status
- [x] Initialization complete
- [x] Planning complete
[For Level 3-4:]
- [x] Creative phases complete
- [x] Implementation complete
- [x] Reflection complete
- [ ] Archiving
## Reflection Highlights
- **What Went Well**: [Key successes]
- **Challenges**: [Key challenges]
- **Lessons Learned**: [Key lessons]
- **Next Steps**: [Follow-up actions]
```
## 📊 REFLECTION VERIFICATION CHECKLIST
```
✓ REFLECTION VERIFICATION
- Implementation thoroughly reviewed? [YES/NO]
- What Went Well section completed? [YES/NO]
- Challenges section completed? [YES/NO]
- Lessons Learned section completed? [YES/NO]
- Process Improvements identified? [YES/NO]
- Technical Improvements identified? [YES/NO]
- Next Steps documented? [YES/NO]
- reflection.md created? [YES/NO]
- tasks.md updated with reflection status? [YES/NO]
→ If all YES: Reflection complete - ready for ARCHIVE mode
→ If any NO: Complete missing reflection elements
```
## 🔄 MODE TRANSITION NOTIFICATION
When reflection is complete, notify user with:
```
## REFLECTION COMPLETE
✅ Implementation thoroughly reviewed
✅ Reflection document created
✅ Lessons learned documented
✅ Process improvements identified
✅ tasks.md updated with reflection status
→ NEXT RECOMMENDED MODE: ARCHIVE MODE
```
@@ -0,0 +1,902 @@
---
description: Visual process map for VAN mode (Initialization)
globs: van-mode-map.mdc
alwaysApply: false
---
# VAN MODE: INITIALIZATION PROCESS MAP
> **TL;DR:** This visual map defines the VAN mode process for project initialization, task analysis, and technical validation. It guides users through platform detection, file verification, complexity determination, and technical validation to ensure proper setup before implementation.
## 🧭 VAN MODE PROCESS FLOW
```mermaid
graph TD
Start["START VAN MODE"] --> PlatformDetect["PLATFORM DETECTION"]
PlatformDetect --> DetectOS["Detect Operating System"]
DetectOS --> CheckPath["Check Path Separator Format"]
CheckPath --> AdaptCmds["Adapt Commands if Needed"]
AdaptCmds --> PlatformCP["⛔ PLATFORM CHECKPOINT"]
%% Basic File Verification with checkpoint
PlatformCP --> BasicFileVerify["BASIC FILE VERIFICATION"]
BasicFileVerify --> BatchCheck["Batch Check Essential Components"]
BatchCheck --> BatchCreate["Batch Create Essential Structure"]
BatchCreate --> BasicFileCP["⛔ BASIC FILE CHECKPOINT"]
%% Early Complexity Determination
BasicFileCP --> EarlyComplexity["EARLY COMPLEXITY DETERMINATION"]
EarlyComplexity --> AnalyzeTask["Analyze Task Requirements"]
AnalyzeTask --> EarlyLevelCheck{"Complexity Level?"}
%% Level handling paths
EarlyLevelCheck -->|"Level 1"| ComplexityCP["⛔ COMPLEXITY CHECKPOINT"]
EarlyLevelCheck -->|"Level 2-4"| CRITICALGATE["🚫 CRITICAL GATE: FORCE MODE SWITCH"]
CRITICALGATE --> ForceExit["Exit to PLAN mode"]
%% Level 1 continues normally
ComplexityCP --> InitSystem["INITIALIZE MEMORY BANK"]
InitSystem --> Complete1["LEVEL 1 INITIALIZATION COMPLETE"]
%% For Level 2+ tasks after PLAN and CREATIVE modes
ForceExit -.-> OtherModes["PLAN → CREATIVE modes"]
OtherModes -.-> VANQA["VAN QA MODE"]
VANQA --> QAProcess["Technical Validation Process"]
QAProcess --> QACheck{"All Checks Pass?"}
QACheck -->|"Yes"| BUILD["To BUILD MODE"]
QACheck -->|"No"| FixIssues["Fix Technical Issues"]
FixIssues --> QAProcess
%% Style nodes
style PlatformCP fill:#f55,stroke:#d44,color:white
style BasicFileCP fill:#f55,stroke:#d44,color:white
style ComplexityCP fill:#f55,stroke:#d44,color:white
style CRITICALGATE fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style ForceExit fill:#ff0000,stroke:#990000,color:white,stroke-width:2px
style VANQA fill:#4da6ff,stroke:#0066cc,color:white,stroke-width:3px
style QAProcess fill:#4da6ff,stroke:#0066cc,color:white
style QACheck fill:#4da6ff,stroke:#0066cc,color:white
style FixIssues fill:#ff5555,stroke:#dd3333,color:white
```
## 🌐 PLATFORM DETECTION PROCESS
```mermaid
graph TD
PD["Platform Detection"] --> CheckOS["Detect Operating System"]
CheckOS --> Win["Windows"]
CheckOS --> Mac["macOS"]
CheckOS --> Lin["Linux"]
Win & Mac & Lin --> Adapt["Adapt Commands<br>for Platform"]
Win --> WinPath["Path: Backslash (\\)"]
Mac --> MacPath["Path: Forward Slash (/)"]
Lin --> LinPath["Path: Forward Slash (/)"]
Win --> WinCmd["Command Adaptations:<br>dir, icacls, etc."]
Mac --> MacCmd["Command Adaptations:<br>ls, chmod, etc."]
Lin --> LinCmd["Command Adaptations:<br>ls, chmod, etc."]
WinPath & MacPath & LinPath --> PathCP["Path Separator<br>Checkpoint"]
WinCmd & MacCmd & LinCmd --> CmdCP["Command<br>Checkpoint"]
PathCP & CmdCP --> PlatformComplete["Platform Detection<br>Complete"]
style PD fill:#4da6ff,stroke:#0066cc,color:white
style PlatformComplete fill:#10b981,stroke:#059669,color:white
```
## 📁 FILE VERIFICATION PROCESS
```mermaid
graph TD
FV["File Verification"] --> CheckFiles["Check Essential Files"]
CheckFiles --> CheckMB["Check Memory Bank<br>Structure"]
CheckMB --> MBExists{"Memory Bank<br>Exists?"}
MBExists -->|"Yes"| VerifyMB["Verify Memory Bank<br>Contents"]
MBExists -->|"No"| CreateMB["Create Memory Bank<br>Structure"]
CheckFiles --> CheckDocs["Check Documentation<br>Files"]
CheckDocs --> DocsExist{"Docs<br>Exist?"}
DocsExist -->|"Yes"| VerifyDocs["Verify Documentation<br>Structure"]
DocsExist -->|"No"| CreateDocs["Create Documentation<br>Structure"]
VerifyMB & CreateMB --> MBCP["Memory Bank<br>Checkpoint"]
VerifyDocs & CreateDocs --> DocsCP["Documentation<br>Checkpoint"]
MBCP & DocsCP --> FileComplete["File Verification<br>Complete"]
style FV fill:#4da6ff,stroke:#0066cc,color:white
style FileComplete fill:#10b981,stroke:#059669,color:white
style MBCP fill:#f6546a,stroke:#c30052,color:white
style DocsCP fill:#f6546a,stroke:#c30052,color:white
```
## 🧩 COMPLEXITY DETERMINATION PROCESS
```mermaid
graph TD
CD["Complexity<br>Determination"] --> AnalyzeTask["Analyze Task<br>Requirements"]
AnalyzeTask --> CheckKeywords["Check Task<br>Keywords"]
CheckKeywords --> ScopeCheck["Assess<br>Scope Impact"]
ScopeCheck --> RiskCheck["Evaluate<br>Risk Level"]
RiskCheck --> EffortCheck["Estimate<br>Implementation Effort"]
EffortCheck --> DetermineLevel{"Determine<br>Complexity Level"}
DetermineLevel -->|"Level 1"| L1["Level 1:<br>Quick Bug Fix"]
DetermineLevel -->|"Level 2"| L2["Level 2:<br>Simple Enhancement"]
DetermineLevel -->|"Level 3"| L3["Level 3:<br>Intermediate Feature"]
DetermineLevel -->|"Level 4"| L4["Level 4:<br>Complex System"]
L1 --> CDComplete["Complexity Determination<br>Complete"]
L2 & L3 & L4 --> ModeSwitch["Force Mode Switch<br>to PLAN"]
style CD fill:#4da6ff,stroke:#0066cc,color:white
style CDComplete fill:#10b981,stroke:#059669,color:white
style ModeSwitch fill:#ff0000,stroke:#990000,color:white
style DetermineLevel fill:#f6546a,stroke:#c30052,color:white
```
## 🔄 COMPLETE WORKFLOW WITH QA VALIDATION
The full workflow includes technical validation before implementation:
```mermaid
flowchart LR
VAN1["VAN MODE
(Initial Analysis)"] --> PLAN["PLAN MODE
(Task Planning)"]
PLAN --> CREATIVE["CREATIVE MODE
(Design Decisions)"]
CREATIVE --> VANQA["VAN QA MODE
(Technical Validation)"]
VANQA --> BUILD["BUILD MODE
(Implementation)"]
```
## 🔍 TECHNICAL VALIDATION OVERVIEW
The VAN QA technical validation process consists of four key validation points:
```mermaid
graph TD
VANQA["VAN QA MODE"] --> FourChecks["FOUR-POINT VALIDATION"]
FourChecks --> DepCheck["1️⃣ DEPENDENCY VERIFICATION<br>Check all required packages"]
DepCheck --> ConfigCheck["2️⃣ CONFIGURATION VALIDATION<br>Verify format & compatibility"]
ConfigCheck --> EnvCheck["3️⃣ ENVIRONMENT VALIDATION<br>Check build environment"]
EnvCheck --> MinBuildCheck["4️⃣ MINIMAL BUILD TEST<br>Test core functionality"]
MinBuildCheck --> ValidationResults{"All Checks<br>Passed?"}
ValidationResults -->|"Yes"| SuccessReport["GENERATE SUCCESS REPORT"]
ValidationResults -->|"No"| FailureReport["GENERATE FAILURE REPORT"]
SuccessReport --> BUILD["Proceed to BUILD MODE"]
FailureReport --> FixIssues["Fix Technical Issues"]
FixIssues --> ReValidate["Re-validate"]
ReValidate --> ValidationResults
style VANQA fill:#4da6ff,stroke:#0066cc,color:white
style FourChecks fill:#f6546a,stroke:#c30052,color:white
style ValidationResults fill:#f6546a,stroke:#c30052,color:white
style BUILD fill:#10b981,stroke:#059669,color:white
style FixIssues fill:#ff5555,stroke:#dd3333,color:white
```
## 📝 VALIDATION STATUS FORMAT
The QA Validation step includes clear status indicators:
```
╔═════════════════ 🔍 QA VALIDATION STATUS ═════════════════╗
│ ✓ Design Decisions │ Verified as implementable │
│ ✓ Dependencies │ All required packages installed │
│ ✓ Configurations │ Format verified for platform │
│ ✓ Environment │ Suitable for implementation │
╚════════════════════════════════════════════════════════════╝
✅ VERIFIED - Clear to proceed to BUILD mode
```
## 🚨 MODE TRANSITION TRIGGERS
### VAN to PLAN Transition
For complexity levels 2-4:
```
🚫 LEVEL [2-4] TASK DETECTED
Implementation in VAN mode is BLOCKED
This task REQUIRES PLAN mode
You MUST switch to PLAN mode for proper documentation and planning
Type 'PLAN' to switch to planning mode
```
### CREATIVE to VAN QA Transition
After completing the CREATIVE mode:
```
⏭️ NEXT MODE: VAN QA
To validate technical requirements before implementation, please type 'VAN QA'
```
### VAN QA to BUILD Transition
After successful validation:
```
✅ TECHNICAL VALIDATION COMPLETE
All prerequisites verified successfully
You may now proceed to BUILD mode
Type 'BUILD' to begin implementation
```
## 🔒 BUILD MODE PREVENTION MECHANISM
The system prevents moving to BUILD mode without passing QA validation:
```mermaid
graph TD
Start["User Types: BUILD"] --> CheckQA{"QA Validation<br>Completed?"}
CheckQA -->|"Yes and Passed"| AllowBuild["Allow BUILD Mode"]
CheckQA -->|"No or Failed"| BlockBuild["BLOCK BUILD MODE"]
BlockBuild --> Message["Display:<br>⚠️ QA VALIDATION REQUIRED"]
Message --> ReturnToVANQA["Prompt: Type VAN QA"]
style CheckQA fill:#f6546a,stroke:#c30052,color:white
style BlockBuild fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style Message fill:#ff5555,stroke:#dd3333,color:white
style ReturnToVANQA fill:#4da6ff,stroke:#0066cc,color:white
```
## 🔄 QA COMMAND PRECEDENCE
QA validation can be called at any point in the process flow, and takes immediate precedence over any other current steps, including forced mode switches:
```mermaid
graph TD
UserQA["User Types: QA"] --> HighPriority["⚠️ HIGH PRIORITY COMMAND"]
HighPriority --> CurrentTask["Pause Current Task/Process"]
CurrentTask --> LoadQA["Load QA Mode Map"]
LoadQA --> RunQA["Execute QA Validation Process"]
RunQA --> QAResults{"QA Results"}
QAResults -->|"PASS"| ResumeFlow["Resume Prior Process Flow"]
QAResults -->|"FAIL"| FixIssues["Fix Identified Issues"]
FixIssues --> ReRunQA["Re-run QA Validation"]
ReRunQA --> QAResults
style UserQA fill:#f8d486,stroke:#e8b84d,color:black
style HighPriority fill:#ff0000,stroke:#cc0000,color:white,stroke-width:3px
style LoadQA fill:#4da6ff,stroke:#0066cc,color:white
style RunQA fill:#4da6ff,stroke:#0066cc,color:white
style QAResults fill:#f6546a,stroke:#c30052,color:white
```
### QA Interruption Rules
When a user types **QA** at any point:
1. **The QA command MUST take immediate precedence** over any current operation, including the "FORCE MODE SWITCH" triggered by complexity assessment.
2. The system MUST:
- Immediately load the QA mode map
- Execute the full QA validation process
- Address any failures before continuing
3. **Required remediation steps take priority** over any pending mode switches or complexity rules
4. After QA validation is complete and passes:
- Resume the previously determined process flow
- Continue with any required mode switches
```
⚠️ QA OVERRIDE ACTIVATED
All other processes paused
QA validation checks now running...
Any issues found MUST be remediated before continuing with normal process flow
```
## 📋 CHECKPOINT VERIFICATION TEMPLATE
Each major checkpoint in VAN mode uses this format:
```
✓ SECTION CHECKPOINT: [SECTION NAME]
- Requirement 1? [YES/NO]
- Requirement 2? [YES/NO]
- Requirement 3? [YES/NO]
→ If all YES: Ready for next section
→ If any NO: Fix missing items before proceeding
```
## 🚀 VAN MODE ACTIVATION
When the user types "VAN", respond with a confirmation and start the process:
```
User: VAN
Response: OK VAN - Beginning Initialization Process
```
After completing CREATIVE mode, when the user types "VAN QA", respond:
```
User: VAN QA
Response: OK VAN QA - Beginning Technical Validation
```
This ensures clear communication about which phase of VAN mode is active.
## 🔍 DETAILED QA VALIDATION PROCESS
### 1️⃣ DEPENDENCY VERIFICATION
This step verifies that all required packages are installed and compatible:
```mermaid
graph TD
Start["Dependency Verification"] --> ReadDeps["Read Required Dependencies<br>from Creative Phase"]
ReadDeps --> CheckInstalled["Check if Dependencies<br>are Installed"]
CheckInstalled --> DepStatus{"All Dependencies<br>Installed?"}
DepStatus -->|"Yes"| VerifyVersions["Verify Versions<br>and Compatibility"]
DepStatus -->|"No"| InstallMissing["Install Missing<br>Dependencies"]
InstallMissing --> VerifyVersions
VerifyVersions --> VersionStatus{"Versions<br>Compatible?"}
VersionStatus -->|"Yes"| DepSuccess["Dependencies Verified<br>✅ PASS"]
VersionStatus -->|"No"| UpgradeVersions["Upgrade/Downgrade<br>as Needed"]
UpgradeVersions --> RetryVerify["Retry Verification"]
RetryVerify --> VersionStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style DepSuccess fill:#10b981,stroke:#059669,color:white
style DepStatus fill:#f6546a,stroke:#c30052,color:white
style VersionStatus fill:#f6546a,stroke:#c30052,color:white
```
#### Windows (PowerShell) Implementation:
```powershell
# Example: Verify Node.js dependencies for a React project
function Verify-Dependencies {
$requiredDeps = @{
"node" = ">=14.0.0"
"npm" = ">=6.0.0"
}
$missingDeps = @()
$incompatibleDeps = @()
# Check Node.js version
$nodeVersion = $null
try {
$nodeVersion = node -v
if ($nodeVersion -match "v(\d+)\.(\d+)\.(\d+)") {
$major = [int]$Matches[1]
if ($major -lt 14) {
$incompatibleDeps += "node (found $nodeVersion, required >=14.0.0)"
}
}
} catch {
$missingDeps += "node"
}
# Check npm version
$npmVersion = $null
try {
$npmVersion = npm -v
if ($npmVersion -match "(\d+)\.(\d+)\.(\d+)") {
$major = [int]$Matches[1]
if ($major -lt 6) {
$incompatibleDeps += "npm (found $npmVersion, required >=6.0.0)"
}
}
} catch {
$missingDeps += "npm"
}
# Display results
if ($missingDeps.Count -eq 0 -and $incompatibleDeps.Count -eq 0) {
Write-Output "✅ All dependencies verified and compatible"
return $true
} else {
if ($missingDeps.Count -gt 0) {
Write-Output "❌ Missing dependencies: $($missingDeps -join ', ')"
}
if ($incompatibleDeps.Count -gt 0) {
Write-Output "❌ Incompatible versions: $($incompatibleDeps -join ', ')"
}
return $false
}
}
```
#### Mac/Linux (Bash) Implementation:
```bash
#!/bin/bash
# Example: Verify Node.js dependencies for a React project
verify_dependencies() {
local missing_deps=()
local incompatible_deps=()
# Check Node.js version
if command -v node &> /dev/null; then
local node_version=$(node -v)
if [[ $node_version =~ v([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
local major=${BASH_REMATCH[1]}
if (( major < 14 )); then
incompatible_deps+=("node (found $node_version, required >=14.0.0)")
fi
fi
else
missing_deps+=("node")
fi
# Check npm version
if command -v npm &> /dev/null; then
local npm_version=$(npm -v)
if [[ $npm_version =~ ([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
local major=${BASH_REMATCH[1]}
if (( major < 6 )); then
incompatible_deps+=("npm (found $npm_version, required >=6.0.0)")
fi
fi
else
missing_deps+=("npm")
fi
# Display results
if [ ${#missing_deps[@]} -eq 0 ] && [ ${#incompatible_deps[@]} -eq 0 ]; then
echo "✅ All dependencies verified and compatible"
return 0
else
if [ ${#missing_deps[@]} -gt 0 ]; then
echo "❌ Missing dependencies: ${missing_deps[*]}"
fi
if [ ${#incompatible_deps[@]} -gt 0 ]; then
echo "❌ Incompatible versions: ${incompatible_deps[*]}"
fi
return 1
fi
}
```
### 2️⃣ CONFIGURATION VALIDATION
This step validates configuration files format and compatibility:
```mermaid
graph TD
Start["Configuration Validation"] --> IdentifyConfigs["Identify Configuration<br>Files"]
IdentifyConfigs --> ReadConfigs["Read Configuration<br>Files"]
ReadConfigs --> ValidateSyntax["Validate Syntax<br>and Format"]
ValidateSyntax --> SyntaxStatus{"Syntax<br>Valid?"}
SyntaxStatus -->|"Yes"| CheckCompatibility["Check Compatibility<br>with Platform"]
SyntaxStatus -->|"No"| FixSyntax["Fix Syntax<br>Errors"]
FixSyntax --> RetryValidate["Retry Validation"]
RetryValidate --> SyntaxStatus
CheckCompatibility --> CompatStatus{"Compatible with<br>Platform?"}
CompatStatus -->|"Yes"| ConfigSuccess["Configurations Validated<br>✅ PASS"]
CompatStatus -->|"No"| AdaptConfigs["Adapt Configurations<br>for Platform"]
AdaptConfigs --> RetryCompat["Retry Compatibility<br>Check"]
RetryCompat --> CompatStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style ConfigSuccess fill:#10b981,stroke:#059669,color:white
style SyntaxStatus fill:#f6546a,stroke:#c30052,color:white
style CompatStatus fill:#f6546a,stroke:#c30052,color:white
```
#### Configuration Validation Implementation:
```powershell
# Example: Validate configuration files for a web project
function Validate-Configurations {
$configFiles = @(
"package.json",
"tsconfig.json",
"vite.config.js"
)
$invalidConfigs = @()
$incompatibleConfigs = @()
foreach ($configFile in $configFiles) {
if (Test-Path $configFile) {
# Check JSON syntax for JSON files
if ($configFile -match "\.json$") {
try {
Get-Content $configFile -Raw | ConvertFrom-Json | Out-Null
} catch {
$invalidConfigs += "$configFile (JSON syntax error: $($_.Exception.Message))"
continue
}
}
# Specific configuration compatibility checks
if ($configFile -eq "vite.config.js") {
$content = Get-Content $configFile -Raw
# Check for React plugin in Vite config
if ($content -notmatch "react\(\)") {
$incompatibleConfigs += "$configFile (Missing React plugin for React project)"
}
}
} else {
$invalidConfigs += "$configFile (file not found)"
}
}
# Display results
if ($invalidConfigs.Count -eq 0 -and $incompatibleConfigs.Count -eq 0) {
Write-Output "✅ All configurations validated and compatible"
return $true
} else {
if ($invalidConfigs.Count -gt 0) {
Write-Output "❌ Invalid configurations: $($invalidConfigs -join ', ')"
}
if ($incompatibleConfigs.Count -gt 0) {
Write-Output "❌ Incompatible configurations: $($incompatibleConfigs -join ', ')"
}
return $false
}
}
```
### 3️⃣ ENVIRONMENT VALIDATION
This step checks if the environment is properly set up for the implementation:
```mermaid
graph TD
Start["Environment Validation"] --> CheckEnv["Check Build Environment"]
CheckEnv --> VerifyBuildTools["Verify Build Tools"]
VerifyBuildTools --> ToolsStatus{"Build Tools<br>Available?"}
ToolsStatus -->|"Yes"| CheckPerms["Check Permissions<br>and Access"]
ToolsStatus -->|"No"| InstallTools["Install Required<br>Build Tools"]
InstallTools --> RetryTools["Retry Verification"]
RetryTools --> ToolsStatus
CheckPerms --> PermsStatus{"Permissions<br>Sufficient?"}
PermsStatus -->|"Yes"| EnvSuccess["Environment Validated<br>✅ PASS"]
PermsStatus -->|"No"| FixPerms["Fix Permission<br>Issues"]
FixPerms --> RetryPerms["Retry Permission<br>Check"]
RetryPerms --> PermsStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style EnvSuccess fill:#10b981,stroke:#059669,color:white
style ToolsStatus fill:#f6546a,stroke:#c30052,color:white
style PermsStatus fill:#f6546a,stroke:#c30052,color:white
```
#### Environment Validation Implementation:
```powershell
# Example: Validate environment for a web project
function Validate-Environment {
$requiredTools = @(
@{Name = "git"; Command = "git --version"},
@{Name = "node"; Command = "node --version"},
@{Name = "npm"; Command = "npm --version"}
)
$missingTools = @()
$permissionIssues = @()
# Check build tools
foreach ($tool in $requiredTools) {
try {
Invoke-Expression $tool.Command | Out-Null
} catch {
$missingTools += $tool.Name
}
}
# Check write permissions in project directory
try {
$testFile = ".__permission_test"
New-Item -Path $testFile -ItemType File -Force | Out-Null
Remove-Item -Path $testFile -Force
} catch {
$permissionIssues += "Current directory (write permission denied)"
}
# Check if port 3000 is available (commonly used for dev servers)
try {
$listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Loopback, 3000)
$listener.Start()
$listener.Stop()
} catch {
$permissionIssues += "Port 3000 (already in use or access denied)"
}
# Display results
if ($missingTools.Count -eq 0 -and $permissionIssues.Count -eq 0) {
Write-Output "✅ Environment validated successfully"
return $true
} else {
if ($missingTools.Count -gt 0) {
Write-Output "❌ Missing tools: $($missingTools -join ', ')"
}
if ($permissionIssues.Count -gt 0) {
Write-Output "❌ Permission issues: $($permissionIssues -join ', ')"
}
return $false
}
}
```
### 4️⃣ MINIMAL BUILD TEST
This step performs a minimal build test to ensure core functionality:
```mermaid
graph TD
Start["Minimal Build Test"] --> CreateTest["Create Minimal<br>Test Project"]
CreateTest --> BuildTest["Attempt<br>Build"]
BuildTest --> BuildStatus{"Build<br>Successful?"}
BuildStatus -->|"Yes"| RunTest["Run Basic<br>Functionality Test"]
BuildStatus -->|"No"| FixBuild["Fix Build<br>Issues"]
FixBuild --> RetryBuild["Retry Build"]
RetryBuild --> BuildStatus
RunTest --> TestStatus{"Test<br>Passed?"}
TestStatus -->|"Yes"| TestSuccess["Minimal Build Test<br>✅ PASS"]
TestStatus -->|"No"| FixTest["Fix Test<br>Issues"]
FixTest --> RetryTest["Retry Test"]
RetryTest --> TestStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style TestSuccess fill:#10b981,stroke:#059669,color:white
style BuildStatus fill:#f6546a,stroke:#c30052,color:white
style TestStatus fill:#f6546a,stroke:#c30052,color:white
```
#### Minimal Build Test Implementation:
```powershell
# Example: Perform minimal build test for a React project
function Perform-MinimalBuildTest {
$buildSuccess = $false
$testSuccess = $false
# Create minimal test project
$testDir = ".__build_test"
if (Test-Path $testDir) {
Remove-Item -Path $testDir -Recurse -Force
}
try {
# Create minimal test directory
New-Item -Path $testDir -ItemType Directory | Out-Null
Push-Location $testDir
# Initialize minimal package.json
@"
{
"name": "build-test",
"version": "1.0.0",
"description": "Minimal build test",
"main": "index.js",
"scripts": {
"build": "echo Build test successful"
}
}
"@ | Set-Content -Path "package.json"
# Attempt build
npm run build | Out-Null
$buildSuccess = $true
# Create minimal test file
@"
console.log('Test successful');
"@ | Set-Content -Path "index.js"
# Run basic test
node index.js | Out-Null
$testSuccess = $true
} catch {
Write-Output "❌ Build test failed: $($_.Exception.Message)"
} finally {
Pop-Location
if (Test-Path $testDir) {
Remove-Item -Path $testDir -Recurse -Force
}
}
# Display results
if ($buildSuccess -and $testSuccess) {
Write-Output "✅ Minimal build test passed successfully"
return $true
} else {
if (-not $buildSuccess) {
Write-Output "❌ Build process failed"
}
if (-not $testSuccess) {
Write-Output "❌ Basic functionality test failed"
}
return $false
}
}
```
## 📋 COMPREHENSIVE QA REPORT FORMAT
After running all validation steps, a comprehensive report is generated:
```
╔═════════════════════ 🔍 QA VALIDATION REPORT ══════════════════════╗
│ │
│ PROJECT: [Project Name] │
│ TIMESTAMP: [Current Date/Time] │
│ │
│ 1️⃣ DEPENDENCY VERIFICATION │
│ ✓ Required: [List of required dependencies] │
│ ✓ Installed: [List of installed dependencies] │
│ ✓ Compatible: [Yes/No] │
│ │
│ 2️⃣ CONFIGURATION VALIDATION │
│ ✓ Config Files: [List of configuration files] │
│ ✓ Syntax Valid: [Yes/No] │
│ ✓ Platform Compatible: [Yes/No] │
│ │
│ 3️⃣ ENVIRONMENT VALIDATION │
│ ✓ Build Tools: [Available/Missing] │
│ ✓ Permissions: [Sufficient/Insufficient] │
│ ✓ Environment Ready: [Yes/No] │
│ │
│ 4️⃣ MINIMAL BUILD TEST │
│ ✓ Build Process: [Successful/Failed] │
│ ✓ Functionality Test: [Passed/Failed] │
│ ✓ Build Ready: [Yes/No] │
│ │
│ 🚨 FINAL VERDICT: [PASS/FAIL] │
│ ➡️ [Success message or error details] │
╚═════════════════════════════════════════════════════════════════════╝
```
## ❌ FAILURE REPORT FORMAT
If any validation step fails, a detailed failure report is generated:
```
⚠️⚠️⚠️ QA VALIDATION FAILED ⚠️⚠️⚠️
The following issues must be resolved before proceeding to BUILD mode:
1️⃣ DEPENDENCY ISSUES:
- [Detailed description of dependency issues]
- [Recommended fix]
2️⃣ CONFIGURATION ISSUES:
- [Detailed description of configuration issues]
- [Recommended fix]
3️⃣ ENVIRONMENT ISSUES:
- [Detailed description of environment issues]
- [Recommended fix]
4️⃣ BUILD TEST ISSUES:
- [Detailed description of build test issues]
- [Recommended fix]
⚠️ BUILD MODE IS BLOCKED until these issues are resolved.
Type 'VAN QA' after fixing the issues to re-validate.
```
## 🔄 INTEGRATION WITH DESIGN DECISIONS
The VAN QA mode reads and validates design decisions from the CREATIVE phase:
```mermaid
graph TD
Start["Read Design Decisions"] --> ReadCreative["Parse Creative Phase<br>Documentation"]
ReadCreative --> ExtractTech["Extract Technology<br>Choices"]
ExtractTech --> ExtractDeps["Extract Required<br>Dependencies"]
ExtractDeps --> BuildValidationPlan["Build Validation<br>Plan"]
BuildValidationPlan --> StartValidation["Start Four-Point<br>Validation Process"]
style Start fill:#4da6ff,stroke:#0066cc,color:white
style ExtractTech fill:#f6546a,stroke:#c30052,color:white
style BuildValidationPlan fill:#10b981,stroke:#059669,color:white
style StartValidation fill:#f6546a,stroke:#c30052,color:white
```
### Technology Extraction Process:
```powershell
# Example: Extract technology choices from creative phase documentation
function Extract-TechnologyChoices {
$techChoices = @{}
# Read from systemPatterns.md
if (Test-Path "memory-bank\systemPatterns.md") {
$content = Get-Content "memory-bank\systemPatterns.md" -Raw
# Extract framework choice
if ($content -match "Framework:\s*(\w+)") {
$techChoices["framework"] = $Matches[1]
}
# Extract UI library choice
if ($content -match "UI Library:\s*(\w+)") {
$techChoices["ui_library"] = $Matches[1]
}
# Extract state management choice
if ($content -match "State Management:\s*([^\\n]+)") {
$techChoices["state_management"] = $Matches[1].Trim()
}
}
return $techChoices
}
```
## 🚨 IMPLEMENTATION PREVENTION MECHANISM
If QA validation fails, the system prevents moving to BUILD mode:
```powershell
# Example: Enforce QA validation before allowing BUILD mode
function Check-QAValidationStatus {
$qaStatusFile = "memory-bank\.qa_validation_status"
if (Test-Path $qaStatusFile) {
$status = Get-Content $qaStatusFile -Raw
if ($status -match "PASS") {
return $true
}
}
# Display block message
Write-Output "`n`n"
Write-Output "🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫"
Write-Output "⛔️ BUILD MODE BLOCKED: QA VALIDATION REQUIRED"
Write-Output "⛔️ You must complete QA validation before proceeding to BUILD mode"
Write-Output "`n"
Write-Output "Type 'VAN QA' to perform technical validation"
Write-Output "`n"
Write-Output "🚫 NO IMPLEMENTATION CAN PROCEED WITHOUT VALIDATION 🚫"
Write-Output "🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫"
return $false
}
```
## 🧪 COMMON QA VALIDATION FIXES
Here are common fixes for issues encountered during QA validation:
### Dependency Issues:
- **Missing Node.js**: Install Node.js from https://nodejs.org/
- **Outdated npm**: Run `npm install -g npm@latest` to update
- **Missing packages**: Run `npm install` or `npm install [package-name]`
### Configuration Issues:
- **Invalid JSON**: Use a JSON validator to check syntax
- **Missing React plugin**: Add `import react from '@vitejs/plugin-react'` and `plugins: [react()]` to vite.config.js
- **Incompatible TypeScript config**: Update `tsconfig.json` with correct React settings
### Environment Issues:
- **Permission denied**: Run terminal as administrator (Windows) or use sudo (Mac/Linux)
- **Port already in use**: Kill process using the port or change the port in configuration
- **Missing build tools**: Install required command-line tools
### Build Test Issues:
- **Build fails**: Check console for specific error messages
- **Test fails**: Verify minimal configuration is correct
- **Path issues**: Ensure paths use correct separators for the platform
## 🔒 FINAL QA VALIDATION CHECKPOINT
```
✓ SECTION CHECKPOINT: QA VALIDATION
- Dependency Verification Passed? [YES/NO]
- Configuration Validation Passed? [YES/NO]
- Environment Validation Passed? [YES/NO]
- Minimal Build Test Passed? [YES/NO]
→ If all YES: Ready for BUILD mode
→ If any NO: Fix identified issues before proceeding
```
@@ -0,0 +1,142 @@
---
description: Visual process map for VAN mode complexity determination
globs: van-complexity-determination.mdc
alwaysApply: false
---
# VAN MODE: COMPLEXITY DETERMINATION
> **TL;DR:** This component determines the appropriate complexity level (1-4) for the current task and directs the workflow accordingly.
## 🔍 COMPLEXITY DECISION TREE
```mermaid
graph TD
Start["New Task"] --> Q1{"Bug fix or<br>error correction?"}
Q1 -->|Yes| Q1a{"Affects single<br>component?"}
Q1a -->|Yes| L1["Level 1:<br>Quick Bug Fix"]
Q1a -->|No| Q1b{"Affects multiple<br>components?"}
Q1b -->|Yes| L2["Level 2:<br>Simple Enhancement"]
Q1b -->|No| Q1c{"Affects system<br>architecture?"}
Q1c -->|Yes| L3["Level 3:<br>Intermediate Feature"]
Q1c -->|No| L2
Q1 -->|No| Q2{"Adding small<br>feature or<br>enhancement?"}
Q2 -->|Yes| Q2a{"Self-contained<br>change?"}
Q2a -->|Yes| L2
Q2a -->|No| Q2b{"Affects multiple<br>components?"}
Q2b -->|Yes| L3
Q2b -->|No| L2
Q2 -->|No| Q3{"Complete feature<br>requiring multiple<br>components?"}
Q3 -->|Yes| Q3a{"Architectural<br>implications?"}
Q3a -->|Yes| L4["Level 4:<br>Complex System"]
Q3a -->|No| L3
Q3 -->|No| Q4{"System-wide or<br>architectural<br>change?"}
Q4 -->|Yes| L4
Q4 -->|No| L3
style Start fill:#4da6ff,stroke:#0066cc,color:white
style L1 fill:#10b981,stroke:#059669,color:white
style L2 fill:#f6546a,stroke:#c30052,color:white
style L3 fill:#f6546a,stroke:#c30052,color:white
style L4 fill:#f6546a,stroke:#c30052,color:white
```
## 📋 LEVEL INDICATORS
### Level 1: Quick Bug Fix
- **Keywords**: fix, bug, error, crash, issue
- **Scope**: Single component
- **Time**: Minutes to hours
- **Risk**: Low, isolated
- **Example**: Button not working, styling issue
### Level 2: Simple Enhancement
- **Keywords**: add, improve, update, enhance
- **Scope**: Single component/subsystem
- **Time**: Hours to 1-2 days
- **Risk**: Moderate, contained
- **Example**: Add form field, improve validation
### Level 3: Intermediate Feature
- **Keywords**: implement, create, develop
- **Scope**: Multiple components
- **Time**: Days to 1-2 weeks
- **Risk**: Significant
- **Example**: User authentication, dashboard
### Level 4: Complex System
- **Keywords**: system, architecture, redesign
- **Scope**: Multiple subsystems
- **Time**: Weeks to months
- **Risk**: High, architectural
- **Example**: Payment system, microservices
## 📋 COMPLEXITY CHECKLIST
```
✓ COMPLEXITY DETERMINATION
- Task type identified? [YES/NO]
- Scope assessed? [YES/NO]
- Time estimated? [YES/NO]
- Risk evaluated? [YES/NO]
- Dependencies mapped? [YES/NO]
→ If all YES: Proceed with level-specific workflow
→ If any NO: Complete assessment
```
## 🔄 LEVEL TRANSITION TRIGGERS
```mermaid
graph TD
Current["Current Level"] --> Higher["Level Up Triggers"]
Current --> Lower["Level Down Triggers"]
Higher --> H1["Multiple Components"]
Higher --> H2["Design Decisions"]
Higher --> H3["System Impact"]
Lower --> L1["Isolated Change"]
Lower --> L2["Simple Fix"]
Lower --> L3["No Design Needed"]
style Current fill:#4da6ff,stroke:#0066cc,color:white
style Higher fill:#f6546a,stroke:#c30052,color:white
style Lower fill:#10b981,stroke:#059669,color:white
```
## 📋 WORKFLOW LOADING
Based on determined level:
- Level 1: Continue in VAN mode
- Level 2-4: Transition to PLAN mode
**Next Step:** Load appropriate level-specific workflow
## 🚨 MODE TRANSITION TRIGGER (VAN to PLAN)
If complexity is determined to be Level 2, 3, or 4:
```
🚫 LEVEL [2-4] TASK DETECTED
Implementation in VAN mode is BLOCKED
This task REQUIRES PLAN mode
You MUST switch to PLAN mode for proper documentation and planning
Type 'PLAN' to switch to planning mode
```
## 📋 CHECKPOINT VERIFICATION TEMPLATE (Example)
```
✓ SECTION CHECKPOINT: COMPLEXITY DETERMINATION
- Task Analyzed? [YES/NO]
- Complexity Level Determined? [YES/NO]
→ If Level 1: Proceed to VAN Mode Completion.
→ If Level 2-4: Trigger PLAN Mode transition.
```
**Next Step (Level 1):** Complete VAN Initialization (e.g., initialize Memory Bank if needed).
**Next Step (Level 2-4):** Exit VAN mode and initiate PLAN mode.
@@ -0,0 +1,302 @@
---
description: Visual process map for VAN mode file verification
globs: van-file-verification.mdc
alwaysApply: false
---
# OPTIMIZED FILE VERIFICATION SYSTEM
🚨 CRITICAL: MEMORY BANK VERIFICATION REQUIRED 🚨
Memory Bank structure MUST exist before any file operations
This check MUST be executed first in all verification processes
> **TL;DR:** This system provides a structured approach to verify file structure integrity before task implementation, with emphasis on efficient checks and clear status reporting.
## 🔍 FILE VERIFICATION WORKFLOW
```mermaid
graph TD
%% Critical Memory Bank verification - MUST be first
Start["Start File Verification"] --> MemBankCheck{"Memory Bank<br>Exists?"}
MemBankCheck -->|"No"| CreateMemBank["CREATE MEMORY BANK<br>[CRITICAL]"]
MemBankCheck -->|"Yes"| VerifyMemBankComplete["Verify Memory Bank<br>Structure Complete"]
CreateMemBank --> VerifyMemBankComplete
VerifyMemBankComplete --> PassCheck{"All Critical<br>Checks Pass?"}
PassCheck -->|"No"| AbortAll["⛔ ABORT ALL OPERATIONS<br>Fix Memory Bank First"]
PassCheck -->|"Yes"| MainVerification
%% Regular verification flow continues here
MainVerification["Start Full<br>File Verification"] --> BatchVerify["Batch Verification<br>Using Patterns"]
BatchVerify --> BrokenLinks["Check for<br>Broken References"]
BrokenLinks --> DirectoryStructure["Verify Directory<br>Structure"]
DirectoryStructure --> Status{"All Verifications<br>Successful?"}
Status -->|"Yes"| Complete["Verification<br>Complete ✓"]
Status -->|"No"| Diagnose["Diagnose<br>Issues"]
Diagnose --> Attempt{"Attempt Auto<br>Resolution?"}
Attempt -->|"Yes"| AutoFix["Auto-Fix<br>Issues"]
Attempt -->|"No"| ReportIssue["Report Issues to<br>User"]
AutoFix --> Recheck{"Issues<br>Resolved?"}
Recheck -->|"Yes"| ReportSuccess["Report Success<br>to User"]
Recheck -->|"No"| ReportIssue
ReportSuccess --> Complete
ReportIssue --> UserAction["Wait for<br>User Action"]
UserAction --> ReVerify["Re-Verify<br>After User Action"]
ReVerify --> Status
style MemBankCheck fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style CreateMemBank fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style VerifyMemBankComplete fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style PassCheck fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style AbortAll fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style Status fill:#f6546a,stroke:#c30052,color:white
style Complete fill:#10b981,stroke:#059669,color:white
```
## 🧩 MEMORY BANK VERIFICATION - CRITICAL COMPONENT
Memory Bank verification MUST be executed first in any file verification process:
```javascript
function verifyMemoryBank() {
// Check if Memory Bank exists
const memoryBankExists = checkDirectoryExists("memory-bank");
if (!memoryBankExists) {
console.error("⛔ CRITICAL ERROR: Memory Bank does not exist");
createMemoryBankStructure();
return verifyMemoryBankCreation();
}
// Check required subdirectories
const requiredDirs = [
"memory-bank/active-context",
"memory-bank/system-patterns",
"memory-bank/creative-phase",
"memory-bank/implementation"
];
const missingDirs = requiredDirs.filter(dir => !checkDirectoryExists(dir));
if (missingDirs.length > 0) {
console.error(`⛔ CRITICAL ERROR: Missing Memory Bank directories: ${missingDirs.join(", ")}`);
createMissingDirectories(missingDirs);
return verifyMemoryBankCreation();
}
// Check critical files
const criticalFiles = [
"memory-bank/active-context/activeContext.md",
"memory-bank/system-patterns/systemPatterns.md"
];
const missingFiles = criticalFiles.filter(file => !checkFileExists(file));
if (missingFiles.length > 0) {
console.error(`⛔ CRITICAL ERROR: Missing critical files: ${missingFiles.join(", ")}`);
createMissingFiles(missingFiles);
return verifyMemoryBankCreation();
}
return true; // Memory Bank verification successful
}
// MANDATORY: This must be called before any other verification
const memoryBankVerified = verifyMemoryBank();
if (!memoryBankVerified) {
throw new Error("⛔ MEMORY BANK VERIFICATION FAILED - CANNOT PROCEED");
}
```
## 📋 MEMORY BANK VERIFICATION CHECKLIST
```
✓ MEMORY BANK VERIFICATION CHECKLIST
- Memory Bank directory exists? [YES/NO]
- Required subdirectories exist? [YES/NO]
- Critical files exist? [YES/NO]
- File content is valid? [YES/NO]
→ If ALL YES: Memory Bank verification passed - Continue file verification
→ If ANY NO: STOP ALL PROCESSING and FIX MEMORY BANK
```
## 🔍 BATCH VERIFICATION WORKFLOW
## 📋 OPTIMIZED DIRECTORY CREATION
```mermaid
graph TD
Start["Directory<br>Creation"] --> DetectOS["Detect Operating<br>System"]
DetectOS -->|"Windows"| WinCmd["Batch Create<br>Windows Command"]
DetectOS -->|"Mac/Linux"| UnixCmd["Batch Create<br>Unix Command"]
WinCmd & UnixCmd --> Verify["Verify<br>Creation Success"]
Verify --> Complete["Directory Setup<br>Complete"]
```
### Platform-Specific Commands
#### Windows (PowerShell)
```powershell
# Create all directories in one command
mkdir memory-bank, docs, docs\archive -ErrorAction SilentlyContinue
# Create all required files
$files = @(".cursorrules", "tasks.md",
"memory-bank\projectbrief.md",
"memory-bank\productContext.md",
"memory-bank\systemPatterns.md",
"memory-bank\techContext.md",
"memory-bank\activeContext.md",
"memory-bank\progress.md")
foreach ($file in $files) {
if (-not (Test-Path $file)) {
New-Item -Path $file -ItemType File -Force
}
}
```
#### Mac/Linux (Bash)
```bash
# Create all directories in one command
mkdir -p memory-bank docs/archive
# Create all required files
touch .cursorrules tasks.md \
memory-bank/projectbrief.md \
memory-bank/productContext.md \
memory-bank/systemPatterns.md \
memory-bank/techContext.md \
memory-bank/activeContext.md \
memory-bank/progress.md
```
## 📝 STREAMLINED VERIFICATION PROCESS
Instead of checking each component separately, perform batch verification:
```powershell
# Windows - PowerShell
$requiredDirs = @("memory-bank", "docs", "docs\archive")
$requiredFiles = @(".cursorrules", "tasks.md")
$mbFiles = @("projectbrief.md", "productContext.md", "systemPatterns.md",
"techContext.md", "activeContext.md", "progress.md")
$missingDirs = $requiredDirs | Where-Object { -not (Test-Path $_) -or -not (Test-Path $_ -PathType Container) }
$missingFiles = $requiredFiles | Where-Object { -not (Test-Path $_) -or (Test-Path $_ -PathType Container) }
$missingMBFiles = $mbFiles | ForEach-Object { "memory-bank\$_" } |
Where-Object { -not (Test-Path $_) -or (Test-Path $_ -PathType Container) }
if ($missingDirs.Count -eq 0 -and $missingFiles.Count -eq 0 -and $missingMBFiles.Count -eq 0) {
Write-Output "✓ All required components verified"
} else {
# Create all missing items at once
if ($missingDirs.Count -gt 0) {
$missingDirs | ForEach-Object { mkdir $_ -Force }
}
if ($missingFiles.Count -gt 0 -or $missingMBFiles.Count -gt 0) {
$allMissingFiles = $missingFiles + $missingMBFiles
$allMissingFiles | ForEach-Object { New-Item -Path $_ -ItemType File -Force }
}
}
```
## 📝 TEMPLATE INITIALIZATION
Optimize template creation with a single script:
```powershell
# Windows - PowerShell
$templates = @{
"tasks.md" = @"
# Memory Bank: Tasks
## Current Task
[Task not yet defined]
## Status
- [ ] Task definition
- [ ] Implementation plan
- [ ] Execution
- [ ] Documentation
## Requirements
[No requirements defined yet]
"@
"memory-bank\activeContext.md" = @"
# Memory Bank: Active Context
## Current Focus
[No active focus defined]
## Status
[No status defined]
## Latest Changes
[No changes recorded]
"@
# Add other templates here
}
foreach ($file in $templates.Keys) {
if (Test-Path $file) {
Set-Content -Path $file -Value $templates[$file]
}
}
```
## 🔍 PERFORMANCE OPTIMIZATION BEST PRACTICES
1. **Batch Operations**: Always use batch operations instead of individual commands
```
# GOOD: Create all directories at once
mkdir memory-bank docs docs\archive
# BAD: Create directories one at a time
mkdir memory-bank
mkdir docs
mkdir docs\archive
```
2. **Pre-Check Optimization**: Check all requirements first, then create only what's missing
```
# First check what's missing
$missingItems = ...
# Then create only what's missing
if ($missingItems) { ... }
```
3. **Error Handling**: Include error handling in all commands
```
mkdir memory-bank, docs, docs\archive -ErrorAction SilentlyContinue
```
4. **Platform Adaptation**: Auto-detect platform and use appropriate commands
```
if ($IsWindows) {
# Windows commands
} else {
# Unix commands
}
```
5. **One-Pass Verification**: Verify directory structure in a single pass
```
$requiredPaths = @("memory-bank", "docs", "docs\archive", ".cursorrules", "tasks.md")
$missingPaths = $requiredPaths | Where-Object { -not (Test-Path $_) }
```
## 📝 VERIFICATION REPORT FORMAT
```
✅ VERIFICATION COMPLETE
- Created directories: [list]
- Created files: [list]
- All components verified
Memory Bank system ready for use.
```
@@ -0,0 +1,914 @@
---
description: Visual process map for VAN mode (Index/Entry Point)
globs: van-mode-map.mdc
alwaysApply: false
---
# VAN MODE: INITIALIZATION PROCESS MAP
🚨 MANDATORY FIRST STEP: MEMORY BANK CREATION 🚨
NO OPERATION CAN PROCEED WITHOUT MEMORY BANK STRUCTURE
> **TL;DR:** This visual map defines the VAN mode process for project initialization, task analysis, and technical validation. It guides users through platform detection, file verification, complexity determination, and technical validation to ensure proper setup before implementation.
## 🧭 VAN MODE PROCESS FLOW
```mermaid
graph TD
Start["START VAN MODE"] --> PlatformDetect["PLATFORM DETECTION"]
PlatformDetect --> DetectOS["Detect Operating System"]
DetectOS --> CheckPath["Check Path Separator Format"]
CheckPath --> AdaptCmds["Adapt Commands if Needed"]
AdaptCmds --> PlatformCP["⛔ PLATFORM CHECKPOINT"]
%% Add Critical Memory Bank Checkpoint
PlatformCP --> MemoryBankCheck{"Memory Bank<br>Exists?"}
MemoryBankCheck -->|"No"| CreateMemoryBank["CREATE MEMORY BANK<br>[CRITICAL STEP]"]
MemoryBankCheck -->|"Yes"| BasicFileVerify["BASIC FILE VERIFICATION"]
CreateMemoryBank --> MemoryBankCP["⛔ MEMORY BANK VERIFICATION [REQUIRED]"]
MemoryBankCP --> BasicFileVerify
%% Basic File Verification with checkpoint
BasicFileVerify --> BatchCheck["Batch Check Essential Components"]
BatchCheck --> BatchCreate["Batch Create Essential Structure"]
BatchCreate --> BasicFileCP["⛔ BASIC FILE CHECKPOINT"]
%% Early Complexity Determination
BasicFileCP --> EarlyComplexity["EARLY COMPLEXITY DETERMINATION"]
EarlyComplexity --> AnalyzeTask["Analyze Task Requirements"]
AnalyzeTask --> EarlyLevelCheck{"Complexity Level?"}
%% Level handling paths
EarlyLevelCheck -->|"Level 1"| ComplexityCP["⛔ COMPLEXITY CHECKPOINT"]
EarlyLevelCheck -->|"Level 2-4"| CRITICALGATE["🚫 CRITICAL GATE: FORCE MODE SWITCH"]
CRITICALGATE --> ForceExit["Exit to PLAN mode"]
%% Level 1 continues normally
ComplexityCP --> InitSystem["INITIALIZE MEMORY BANK"]
InitSystem --> Complete1["LEVEL 1 INITIALIZATION COMPLETE"]
%% For Level 2+ tasks after PLAN and CREATIVE modes
ForceExit -.-> OtherModes["PLAN → CREATIVE modes"]
OtherModes -.-> VANQA["VAN QA MODE"]
VANQA --> QAProcess["Technical Validation Process"]
QAProcess --> QACheck{"All Checks Pass?"}
QACheck -->|"Yes"| BUILD["To BUILD MODE"]
QACheck -->|"No"| FixIssues["Fix Technical Issues"]
FixIssues --> QAProcess
%% Style nodes
style PlatformCP fill:#f55,stroke:#d44,color:white
style MemoryBankCP fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style MemoryBankCheck fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style CreateMemoryBank fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style BasicFileCP fill:#f55,stroke:#d44,color:white
style ComplexityCP fill:#f55,stroke:#d44,color:white
style CRITICALGATE fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style ForceExit fill:#ff0000,stroke:#990000,color:white,stroke-width:2px
style VANQA fill:#4da6ff,stroke:#0066cc,color:white,stroke-width:3px
style QAProcess fill:#4da6ff,stroke:#0066cc,color:white
style QACheck fill:#4da6ff,stroke:#0066cc,color:white
style FixIssues fill:#ff5555,stroke:#dd3333,color:white
```
## 🌐 PLATFORM DETECTION PROCESS
```mermaid
graph TD
PD["Platform Detection"] --> CheckOS["Detect Operating System"]
CheckOS --> Win["Windows"]
CheckOS --> Mac["macOS"]
CheckOS --> Lin["Linux"]
Win & Mac & Lin --> Adapt["Adapt Commands<br>for Platform"]
Win --> WinPath["Path: Backslash (\\)"]
Mac --> MacPath["Path: Forward Slash (/)"]
Lin --> LinPath["Path: Forward Slash (/)"]
Win --> WinCmd["Command Adaptations:<br>dir, icacls, etc."]
Mac --> MacCmd["Command Adaptations:<br>ls, chmod, etc."]
Lin --> LinCmd["Command Adaptations:<br>ls, chmod, etc."]
WinPath & MacPath & LinPath --> PathCP["Path Separator<br>Checkpoint"]
WinCmd & MacCmd & LinCmd --> CmdCP["Command<br>Checkpoint"]
PathCP & CmdCP --> PlatformComplete["Platform Detection<br>Complete"]
style PD fill:#4da6ff,stroke:#0066cc,color:white
style PlatformComplete fill:#10b981,stroke:#059669,color:white
```
## 📁 FILE VERIFICATION PROCESS
```mermaid
graph TD
FV["File Verification"] --> CheckFiles["Check Essential Files"]
CheckFiles --> CheckMB["Check Memory Bank<br>Structure"]
CheckMB --> MBExists{"Memory Bank<br>Exists?"}
MBExists -->|"Yes"| VerifyMB["Verify Memory Bank<br>Contents"]
MBExists -->|"No"| CreateMB["Create Memory Bank<br>Structure"]
CheckFiles --> CheckDocs["Check Documentation<br>Files"]
CheckDocs --> DocsExist{"Docs<br>Exist?"}
DocsExist -->|"Yes"| VerifyDocs["Verify Documentation<br>Structure"]
DocsExist -->|"No"| CreateDocs["Create Documentation<br>Structure"]
VerifyMB & CreateMB --> MBCP["Memory Bank<br>Checkpoint"]
VerifyDocs & CreateDocs --> DocsCP["Documentation<br>Checkpoint"]
MBCP & DocsCP --> FileComplete["File Verification<br>Complete"]
style FV fill:#4da6ff,stroke:#0066cc,color:white
style FileComplete fill:#10b981,stroke:#059669,color:white
style MBCP fill:#f6546a,stroke:#c30052,color:white
style DocsCP fill:#f6546a,stroke:#c30052,color:white
```
## 🧩 COMPLEXITY DETERMINATION PROCESS
```mermaid
graph TD
CD["Complexity<br>Determination"] --> AnalyzeTask["Analyze Task<br>Requirements"]
AnalyzeTask --> CheckKeywords["Check Task<br>Keywords"]
CheckKeywords --> ScopeCheck["Assess<br>Scope Impact"]
ScopeCheck --> RiskCheck["Evaluate<br>Risk Level"]
RiskCheck --> EffortCheck["Estimate<br>Implementation Effort"]
EffortCheck --> DetermineLevel{"Determine<br>Complexity Level"}
DetermineLevel -->|"Level 1"| L1["Level 1:<br>Quick Bug Fix"]
DetermineLevel -->|"Level 2"| L2["Level 2:<br>Simple Enhancement"]
DetermineLevel -->|"Level 3"| L3["Level 3:<br>Intermediate Feature"]
DetermineLevel -->|"Level 4"| L4["Level 4:<br>Complex System"]
L1 --> CDComplete["Complexity Determination<br>Complete"]
L2 & L3 & L4 --> ModeSwitch["Force Mode Switch<br>to PLAN"]
style CD fill:#4da6ff,stroke:#0066cc,color:white
style CDComplete fill:#10b981,stroke:#059669,color:white
style ModeSwitch fill:#ff0000,stroke:#990000,color:white
style DetermineLevel fill:#f6546a,stroke:#c30052,color:white
```
## 🔄 COMPLETE WORKFLOW WITH QA VALIDATION
The full workflow includes technical validation before implementation:
```mermaid
flowchart LR
VAN1["VAN MODE
(Initial Analysis)"] --> PLAN["PLAN MODE
(Task Planning)"]
PLAN --> CREATIVE["CREATIVE MODE
(Design Decisions)"]
CREATIVE --> VANQA["VAN QA MODE
(Technical Validation)"]
VANQA --> BUILD["BUILD MODE
(Implementation)"]
```
## 🔍 TECHNICAL VALIDATION OVERVIEW
The VAN QA technical validation process consists of four key validation points:
```mermaid
graph TD
VANQA["VAN QA MODE"] --> FourChecks["FOUR-POINT VALIDATION"]
FourChecks --> DepCheck["1️⃣ DEPENDENCY VERIFICATION<br>Check all required packages"]
DepCheck --> ConfigCheck["2️⃣ CONFIGURATION VALIDATION<br>Verify format & compatibility"]
ConfigCheck --> EnvCheck["3️⃣ ENVIRONMENT VALIDATION<br>Check build environment"]
EnvCheck --> MinBuildCheck["4️⃣ MINIMAL BUILD TEST<br>Test core functionality"]
MinBuildCheck --> ValidationResults{"All Checks<br>Passed?"}
ValidationResults -->|"Yes"| SuccessReport["GENERATE SUCCESS REPORT"]
ValidationResults -->|"No"| FailureReport["GENERATE FAILURE REPORT"]
SuccessReport --> BUILD["Proceed to BUILD MODE"]
FailureReport --> FixIssues["Fix Technical Issues"]
FixIssues --> ReValidate["Re-validate"]
ReValidate --> ValidationResults
style VANQA fill:#4da6ff,stroke:#0066cc,color:white
style FourChecks fill:#f6546a,stroke:#c30052,color:white
style ValidationResults fill:#f6546a,stroke:#c30052,color:white
style BUILD fill:#10b981,stroke:#059669,color:white
style FixIssues fill:#ff5555,stroke:#dd3333,color:white
```
## 📝 VALIDATION STATUS FORMAT
The QA Validation step includes clear status indicators:
```
╔═════════════════ 🔍 QA VALIDATION STATUS ═════════════════╗
│ ✓ Design Decisions │ Verified as implementable │
│ ✓ Dependencies │ All required packages installed │
│ ✓ Configurations │ Format verified for platform │
│ ✓ Environment │ Suitable for implementation │
╚════════════════════════════════════════════════════════════╝
✅ VERIFIED - Clear to proceed to BUILD mode
```
## 🚨 MODE TRANSITION TRIGGERS
### VAN to PLAN Transition
For complexity levels 2-4:
```
🚫 LEVEL [2-4] TASK DETECTED
Implementation in VAN mode is BLOCKED
This task REQUIRES PLAN mode
You MUST switch to PLAN mode for proper documentation and planning
Type 'PLAN' to switch to planning mode
```
### CREATIVE to VAN QA Transition
After completing the CREATIVE mode:
```
⏭️ NEXT MODE: VAN QA
To validate technical requirements before implementation, please type 'VAN QA'
```
### VAN QA to BUILD Transition
After successful validation:
```
✅ TECHNICAL VALIDATION COMPLETE
All prerequisites verified successfully
You may now proceed to BUILD mode
Type 'BUILD' to begin implementation
```
## 🔒 BUILD MODE PREVENTION MECHANISM
The system prevents moving to BUILD mode without passing QA validation:
```mermaid
graph TD
Start["User Types: BUILD"] --> CheckQA{"QA Validation<br>Completed?"}
CheckQA -->|"Yes and Passed"| AllowBuild["Allow BUILD Mode"]
CheckQA -->|"No or Failed"| BlockBuild["BLOCK BUILD MODE"]
BlockBuild --> Message["Display:<br>⚠️ QA VALIDATION REQUIRED"]
Message --> ReturnToVANQA["Prompt: Type VAN QA"]
style CheckQA fill:#f6546a,stroke:#c30052,color:white
style BlockBuild fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style Message fill:#ff5555,stroke:#dd3333,color:white
style ReturnToVANQA fill:#4da6ff,stroke:#0066cc,color:white
```
## 🔄 QA COMMAND PRECEDENCE
QA validation can be called at any point in the process flow, and takes immediate precedence over any other current steps, including forced mode switches:
```mermaid
graph TD
UserQA["User Types: QA"] --> HighPriority["⚠️ HIGH PRIORITY COMMAND"]
HighPriority --> CurrentTask["Pause Current Task/Process"]
CurrentTask --> LoadQA["Load QA Mode Map"]
LoadQA --> RunQA["Execute QA Validation Process"]
RunQA --> QAResults{"QA Results"}
QAResults -->|"PASS"| ResumeFlow["Resume Prior Process Flow"]
QAResults -->|"FAIL"| FixIssues["Fix Identified Issues"]
FixIssues --> ReRunQA["Re-run QA Validation"]
ReRunQA --> QAResults
style UserQA fill:#f8d486,stroke:#e8b84d,color:black
style HighPriority fill:#ff0000,stroke:#cc0000,color:white,stroke-width:3px
style LoadQA fill:#4da6ff,stroke:#0066cc,color:white
style RunQA fill:#4da6ff,stroke:#0066cc,color:white
style QAResults fill:#f6546a,stroke:#c30052,color:white
```
### QA Interruption Rules
When a user types **QA** at any point:
1. **The QA command MUST take immediate precedence** over any current operation, including the "FORCE MODE SWITCH" triggered by complexity assessment.
2. The system MUST:
- Immediately load the QA mode map
- Execute the full QA validation process
- Address any failures before continuing
3. **Required remediation steps take priority** over any pending mode switches or complexity rules
4. After QA validation is complete and passes:
- Resume the previously determined process flow
- Continue with any required mode switches
```
⚠️ QA OVERRIDE ACTIVATED
All other processes paused
QA validation checks now running...
Any issues found MUST be remediated before continuing with normal process flow
```
## 📋 CHECKPOINT VERIFICATION TEMPLATE
Each major checkpoint in VAN mode uses this format:
```
✓ SECTION CHECKPOINT: [SECTION NAME]
- Requirement 1? [YES/NO]
- Requirement 2? [YES/NO]
- Requirement 3? [YES/NO]
→ If all YES: Ready for next section
→ If any NO: Fix missing items before proceeding
```
## 🚀 VAN MODE ACTIVATION
When the user types "VAN", respond with a confirmation and start the process:
```
User: VAN
Response: OK VAN - Beginning Initialization Process
```
After completing CREATIVE mode, when the user types "VAN QA", respond:
```
User: VAN QA
Response: OK VAN QA - Beginning Technical Validation
```
This ensures clear communication about which phase of VAN mode is active.
## 🔍 DETAILED QA VALIDATION PROCESS
### 1️⃣ DEPENDENCY VERIFICATION
This step verifies that all required packages are installed and compatible:
```mermaid
graph TD
Start["Dependency Verification"] --> ReadDeps["Read Required Dependencies<br>from Creative Phase"]
ReadDeps --> CheckInstalled["Check if Dependencies<br>are Installed"]
CheckInstalled --> DepStatus{"All Dependencies<br>Installed?"}
DepStatus -->|"Yes"| VerifyVersions["Verify Versions<br>and Compatibility"]
DepStatus -->|"No"| InstallMissing["Install Missing<br>Dependencies"]
InstallMissing --> VerifyVersions
VerifyVersions --> VersionStatus{"Versions<br>Compatible?"}
VersionStatus -->|"Yes"| DepSuccess["Dependencies Verified<br>✅ PASS"]
VersionStatus -->|"No"| UpgradeVersions["Upgrade/Downgrade<br>as Needed"]
UpgradeVersions --> RetryVerify["Retry Verification"]
RetryVerify --> VersionStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style DepSuccess fill:#10b981,stroke:#059669,color:white
style DepStatus fill:#f6546a,stroke:#c30052,color:white
style VersionStatus fill:#f6546a,stroke:#c30052,color:white
```
#### Windows (PowerShell) Implementation:
```powershell
# Example: Verify Node.js dependencies for a React project
function Verify-Dependencies {
$requiredDeps = @{
"node" = ">=14.0.0"
"npm" = ">=6.0.0"
}
$missingDeps = @()
$incompatibleDeps = @()
# Check Node.js version
$nodeVersion = $null
try {
$nodeVersion = node -v
if ($nodeVersion -match "v(\d+)\.(\d+)\.(\d+)") {
$major = [int]$Matches[1]
if ($major -lt 14) {
$incompatibleDeps += "node (found $nodeVersion, required >=14.0.0)"
}
}
} catch {
$missingDeps += "node"
}
# Check npm version
$npmVersion = $null
try {
$npmVersion = npm -v
if ($npmVersion -match "(\d+)\.(\d+)\.(\d+)") {
$major = [int]$Matches[1]
if ($major -lt 6) {
$incompatibleDeps += "npm (found $npmVersion, required >=6.0.0)"
}
}
} catch {
$missingDeps += "npm"
}
# Display results
if ($missingDeps.Count -eq 0 -and $incompatibleDeps.Count -eq 0) {
Write-Output "✅ All dependencies verified and compatible"
return $true
} else {
if ($missingDeps.Count -gt 0) {
Write-Output "❌ Missing dependencies: $($missingDeps -join ', ')"
}
if ($incompatibleDeps.Count -gt 0) {
Write-Output "❌ Incompatible versions: $($incompatibleDeps -join ', ')"
}
return $false
}
}
```
#### Mac/Linux (Bash) Implementation:
```bash
#!/bin/bash
# Example: Verify Node.js dependencies for a React project
verify_dependencies() {
local missing_deps=()
local incompatible_deps=()
# Check Node.js version
if command -v node &> /dev/null; then
local node_version=$(node -v)
if [[ $node_version =~ v([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
local major=${BASH_REMATCH[1]}
if (( major < 14 )); then
incompatible_deps+=("node (found $node_version, required >=14.0.0)")
fi
fi
else
missing_deps+=("node")
fi
# Check npm version
if command -v npm &> /dev/null; then
local npm_version=$(npm -v)
if [[ $npm_version =~ ([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
local major=${BASH_REMATCH[1]}
if (( major < 6 )); then
incompatible_deps+=("npm (found $npm_version, required >=6.0.0)")
fi
fi
else
missing_deps+=("npm")
fi
# Display results
if [ ${#missing_deps[@]} -eq 0 ] && [ ${#incompatible_deps[@]} -eq 0 ]; then
echo "✅ All dependencies verified and compatible"
return 0
else
if [ ${#missing_deps[@]} -gt 0 ]; then
echo "❌ Missing dependencies: ${missing_deps[*]}"
fi
if [ ${#incompatible_deps[@]} -gt 0 ]; then
echo "❌ Incompatible versions: ${incompatible_deps[*]}"
fi
return 1
fi
}
```
### 2️⃣ CONFIGURATION VALIDATION
This step validates configuration files format and compatibility:
```mermaid
graph TD
Start["Configuration Validation"] --> IdentifyConfigs["Identify Configuration<br>Files"]
IdentifyConfigs --> ReadConfigs["Read Configuration<br>Files"]
ReadConfigs --> ValidateSyntax["Validate Syntax<br>and Format"]
ValidateSyntax --> SyntaxStatus{"Syntax<br>Valid?"}
SyntaxStatus -->|"Yes"| CheckCompatibility["Check Compatibility<br>with Platform"]
SyntaxStatus -->|"No"| FixSyntax["Fix Syntax<br>Errors"]
FixSyntax --> RetryValidate["Retry Validation"]
RetryValidate --> SyntaxStatus
CheckCompatibility --> CompatStatus{"Compatible with<br>Platform?"}
CompatStatus -->|"Yes"| ConfigSuccess["Configurations Validated<br>✅ PASS"]
CompatStatus -->|"No"| AdaptConfigs["Adapt Configurations<br>for Platform"]
AdaptConfigs --> RetryCompat["Retry Compatibility<br>Check"]
RetryCompat --> CompatStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style ConfigSuccess fill:#10b981,stroke:#059669,color:white
style SyntaxStatus fill:#f6546a,stroke:#c30052,color:white
style CompatStatus fill:#f6546a,stroke:#c30052,color:white
```
#### Configuration Validation Implementation:
```powershell
# Example: Validate configuration files for a web project
function Validate-Configurations {
$configFiles = @(
"package.json",
"tsconfig.json",
"vite.config.js"
)
$invalidConfigs = @()
$incompatibleConfigs = @()
foreach ($configFile in $configFiles) {
if (Test-Path $configFile) {
# Check JSON syntax for JSON files
if ($configFile -match "\.json$") {
try {
Get-Content $configFile -Raw | ConvertFrom-Json | Out-Null
} catch {
$invalidConfigs += "$configFile (JSON syntax error: $($_.Exception.Message))"
continue
}
}
# Specific configuration compatibility checks
if ($configFile -eq "vite.config.js") {
$content = Get-Content $configFile -Raw
# Check for React plugin in Vite config
if ($content -notmatch "react\(\)") {
$incompatibleConfigs += "$configFile (Missing React plugin for React project)"
}
}
} else {
$invalidConfigs += "$configFile (file not found)"
}
}
# Display results
if ($invalidConfigs.Count -eq 0 -and $incompatibleConfigs.Count -eq 0) {
Write-Output "✅ All configurations validated and compatible"
return $true
} else {
if ($invalidConfigs.Count -gt 0) {
Write-Output "❌ Invalid configurations: $($invalidConfigs -join ', ')"
}
if ($incompatibleConfigs.Count -gt 0) {
Write-Output "❌ Incompatible configurations: $($incompatibleConfigs -join ', ')"
}
return $false
}
}
```
### 3️⃣ ENVIRONMENT VALIDATION
This step checks if the environment is properly set up for the implementation:
```mermaid
graph TD
Start["Environment Validation"] --> CheckEnv["Check Build Environment"]
CheckEnv --> VerifyBuildTools["Verify Build Tools"]
VerifyBuildTools --> ToolsStatus{"Build Tools<br>Available?"}
ToolsStatus -->|"Yes"| CheckPerms["Check Permissions<br>and Access"]
ToolsStatus -->|"No"| InstallTools["Install Required<br>Build Tools"]
InstallTools --> RetryTools["Retry Verification"]
RetryTools --> ToolsStatus
CheckPerms --> PermsStatus{"Permissions<br>Sufficient?"}
PermsStatus -->|"Yes"| EnvSuccess["Environment Validated<br>✅ PASS"]
PermsStatus -->|"No"| FixPerms["Fix Permission<br>Issues"]
FixPerms --> RetryPerms["Retry Permission<br>Check"]
RetryPerms --> PermsStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style EnvSuccess fill:#10b981,stroke:#059669,color:white
style ToolsStatus fill:#f6546a,stroke:#c30052,color:white
style PermsStatus fill:#f6546a,stroke:#c30052,color:white
```
#### Environment Validation Implementation:
```powershell
# Example: Validate environment for a web project
function Validate-Environment {
$requiredTools = @(
@{Name = "git"; Command = "git --version"},
@{Name = "node"; Command = "node --version"},
@{Name = "npm"; Command = "npm --version"}
)
$missingTools = @()
$permissionIssues = @()
# Check build tools
foreach ($tool in $requiredTools) {
try {
Invoke-Expression $tool.Command | Out-Null
} catch {
$missingTools += $tool.Name
}
}
# Check write permissions in project directory
try {
$testFile = ".__permission_test"
New-Item -Path $testFile -ItemType File -Force | Out-Null
Remove-Item -Path $testFile -Force
} catch {
$permissionIssues += "Current directory (write permission denied)"
}
# Check if port 3000 is available (commonly used for dev servers)
try {
$listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Loopback, 3000)
$listener.Start()
$listener.Stop()
} catch {
$permissionIssues += "Port 3000 (already in use or access denied)"
}
# Display results
if ($missingTools.Count -eq 0 -and $permissionIssues.Count -eq 0) {
Write-Output "✅ Environment validated successfully"
return $true
} else {
if ($missingTools.Count -gt 0) {
Write-Output "❌ Missing tools: $($missingTools -join ', ')"
}
if ($permissionIssues.Count -gt 0) {
Write-Output "❌ Permission issues: $($permissionIssues -join ', ')"
}
return $false
}
}
```
### 4️⃣ MINIMAL BUILD TEST
This step performs a minimal build test to ensure core functionality:
```mermaid
graph TD
Start["Minimal Build Test"] --> CreateTest["Create Minimal<br>Test Project"]
CreateTest --> BuildTest["Attempt<br>Build"]
BuildTest --> BuildStatus{"Build<br>Successful?"}
BuildStatus -->|"Yes"| RunTest["Run Basic<br>Functionality Test"]
BuildStatus -->|"No"| FixBuild["Fix Build<br>Issues"]
FixBuild --> RetryBuild["Retry Build"]
RetryBuild --> BuildStatus
RunTest --> TestStatus{"Test<br>Passed?"}
TestStatus -->|"Yes"| TestSuccess["Minimal Build Test<br>✅ PASS"]
TestStatus -->|"No"| FixTest["Fix Test<br>Issues"]
FixTest --> RetryTest["Retry Test"]
RetryTest --> TestStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style TestSuccess fill:#10b981,stroke:#059669,color:white
style BuildStatus fill:#f6546a,stroke:#c30052,color:white
style TestStatus fill:#f6546a,stroke:#c30052,color:white
```
#### Minimal Build Test Implementation:
```powershell
# Example: Perform minimal build test for a React project
function Perform-MinimalBuildTest {
$buildSuccess = $false
$testSuccess = $false
# Create minimal test project
$testDir = ".__build_test"
if (Test-Path $testDir) {
Remove-Item -Path $testDir -Recurse -Force
}
try {
# Create minimal test directory
New-Item -Path $testDir -ItemType Directory | Out-Null
Push-Location $testDir
# Initialize minimal package.json
@"
{
"name": "build-test",
"version": "1.0.0",
"description": "Minimal build test",
"main": "index.js",
"scripts": {
"build": "echo Build test successful"
}
}
"@ | Set-Content -Path "package.json"
# Attempt build
npm run build | Out-Null
$buildSuccess = $true
# Create minimal test file
@"
console.log('Test successful');
"@ | Set-Content -Path "index.js"
# Run basic test
node index.js | Out-Null
$testSuccess = $true
} catch {
Write-Output "❌ Build test failed: $($_.Exception.Message)"
} finally {
Pop-Location
if (Test-Path $testDir) {
Remove-Item -Path $testDir -Recurse -Force
}
}
# Display results
if ($buildSuccess -and $testSuccess) {
Write-Output "✅ Minimal build test passed successfully"
return $true
} else {
if (-not $buildSuccess) {
Write-Output "❌ Build process failed"
}
if (-not $testSuccess) {
Write-Output "❌ Basic functionality test failed"
}
return $false
}
}
```
## 📋 COMPREHENSIVE QA REPORT FORMAT
After running all validation steps, a comprehensive report is generated:
```
╔═════════════════════ 🔍 QA VALIDATION REPORT ══════════════════════╗
│ │
│ PROJECT: [Project Name] │
│ TIMESTAMP: [Current Date/Time] │
│ │
│ 1️⃣ DEPENDENCY VERIFICATION │
│ ✓ Required: [List of required dependencies] │
│ ✓ Installed: [List of installed dependencies] │
│ ✓ Compatible: [Yes/No] │
│ │
│ 2️⃣ CONFIGURATION VALIDATION │
│ ✓ Config Files: [List of configuration files] │
│ ✓ Syntax Valid: [Yes/No] │
│ ✓ Platform Compatible: [Yes/No] │
│ │
│ 3️⃣ ENVIRONMENT VALIDATION │
│ ✓ Build Tools: [Available/Missing] │
│ ✓ Permissions: [Sufficient/Insufficient] │
│ ✓ Environment Ready: [Yes/No] │
│ │
│ 4️⃣ MINIMAL BUILD TEST │
│ ✓ Build Process: [Successful/Failed] │
│ ✓ Functionality Test: [Passed/Failed] │
│ ✓ Build Ready: [Yes/No] │
│ │
│ 🚨 FINAL VERDICT: [PASS/FAIL] │
│ ➡️ [Success message or error details] │
╚═════════════════════════════════════════════════════════════════════╝
```
## ❌ FAILURE REPORT FORMAT
If any validation step fails, a detailed failure report is generated:
```
⚠️⚠️⚠️ QA VALIDATION FAILED ⚠️⚠️⚠️
The following issues must be resolved before proceeding to BUILD mode:
1️⃣ DEPENDENCY ISSUES:
- [Detailed description of dependency issues]
- [Recommended fix]
2️⃣ CONFIGURATION ISSUES:
- [Detailed description of configuration issues]
- [Recommended fix]
3️⃣ ENVIRONMENT ISSUES:
- [Detailed description of environment issues]
- [Recommended fix]
4️⃣ BUILD TEST ISSUES:
- [Detailed description of build test issues]
- [Recommended fix]
⚠️ BUILD MODE IS BLOCKED until these issues are resolved.
Type 'VAN QA' after fixing the issues to re-validate.
```
## 🔄 INTEGRATION WITH DESIGN DECISIONS
The VAN QA mode reads and validates design decisions from the CREATIVE phase:
```mermaid
graph TD
Start["Read Design Decisions"] --> ReadCreative["Parse Creative Phase<br>Documentation"]
ReadCreative --> ExtractTech["Extract Technology<br>Choices"]
ExtractTech --> ExtractDeps["Extract Required<br>Dependencies"]
ExtractDeps --> BuildValidationPlan["Build Validation<br>Plan"]
BuildValidationPlan --> StartValidation["Start Four-Point<br>Validation Process"]
style Start fill:#4da6ff,stroke:#0066cc,color:white
style ExtractTech fill:#f6546a,stroke:#c30052,color:white
style BuildValidationPlan fill:#10b981,stroke:#059669,color:white
style StartValidation fill:#f6546a,stroke:#c30052,color:white
```
### Technology Extraction Process:
```powershell
# Example: Extract technology choices from creative phase documentation
function Extract-TechnologyChoices {
$techChoices = @{}
# Read from systemPatterns.md
if (Test-Path "memory-bank\systemPatterns.md") {
$content = Get-Content "memory-bank\systemPatterns.md" -Raw
# Extract framework choice
if ($content -match "Framework:\s*(\w+)") {
$techChoices["framework"] = $Matches[1]
}
# Extract UI library choice
if ($content -match "UI Library:\s*(\w+)") {
$techChoices["ui_library"] = $Matches[1]
}
# Extract state management choice
if ($content -match "State Management:\s*([^\\n]+)") {
$techChoices["state_management"] = $Matches[1].Trim()
}
}
return $techChoices
}
```
## 🚨 IMPLEMENTATION PREVENTION MECHANISM
If QA validation fails, the system prevents moving to BUILD mode:
```powershell
# Example: Enforce QA validation before allowing BUILD mode
function Check-QAValidationStatus {
$qaStatusFile = "memory-bank\.qa_validation_status"
if (Test-Path $qaStatusFile) {
$status = Get-Content $qaStatusFile -Raw
if ($status -match "PASS") {
return $true
}
}
# Display block message
Write-Output "`n`n"
Write-Output "🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫"
Write-Output "⛔️ BUILD MODE BLOCKED: QA VALIDATION REQUIRED"
Write-Output "⛔️ You must complete QA validation before proceeding to BUILD mode"
Write-Output "`n"
Write-Output "Type 'VAN QA' to perform technical validation"
Write-Output "`n"
Write-Output "🚫 NO IMPLEMENTATION CAN PROCEED WITHOUT VALIDATION 🚫"
Write-Output "🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫"
return $false
}
```
## 🧪 COMMON QA VALIDATION FIXES
Here are common fixes for issues encountered during QA validation:
### Dependency Issues:
- **Missing Node.js**: Install Node.js from https://nodejs.org/
- **Outdated npm**: Run `npm install -g npm@latest` to update
- **Missing packages**: Run `npm install` or `npm install [package-name]`
### Configuration Issues:
- **Invalid JSON**: Use a JSON validator to check syntax
- **Missing React plugin**: Add `import react from '@vitejs/plugin-react'` and `plugins: [react()]` to vite.config.js
- **Incompatible TypeScript config**: Update `tsconfig.json` with correct React settings
### Environment Issues:
- **Permission denied**: Run terminal as administrator (Windows) or use sudo (Mac/Linux)
- **Port already in use**: Kill process using the port or change the port in configuration
- **Missing build tools**: Install required command-line tools
### Build Test Issues:
- **Build fails**: Check console for specific error messages
- **Test fails**: Verify minimal configuration is correct
- **Path issues**: Ensure paths use correct separators for the platform
## 🔒 FINAL QA VALIDATION CHECKPOINT
```
✓ SECTION CHECKPOINT: QA VALIDATION
- Dependency Verification Passed? [YES/NO]
- Configuration Validation Passed? [YES/NO]
- Environment Validation Passed? [YES/NO]
- Minimal Build Test Passed? [YES/NO]
→ If all YES: Ready for BUILD mode
→ If any NO: Fix identified issues before proceeding
```
@@ -0,0 +1,50 @@
---
description: Visual process map for VAN mode platform detection
globs: van-platform-detection.mdc
alwaysApply: false
---
# VAN MODE: PLATFORM DETECTION
> **TL;DR:** Detects the OS, determines path separators, and notes command adaptations required.
## 🌐 PLATFORM DETECTION PROCESS
```mermaid
graph TD
PD["Platform Detection"] --> CheckOS["Detect Operating System"]
CheckOS --> Win["Windows"]
CheckOS --> Mac["macOS"]
CheckOS --> Lin["Linux"]
Win & Mac & Lin --> Adapt["Adapt Commands<br>for Platform"]
Win --> WinPath["Path: Backslash (\\)"]
Mac --> MacPath["Path: Forward Slash (/)"]
Lin --> LinPath["Path: Forward Slash (/)"]
Win --> WinCmd["Command Adaptations:<br>dir, icacls, etc."]
Mac --> MacCmd["Command Adaptations:<br>ls, chmod, etc."]
Lin --> LinCmd["Command Adaptations:<br>ls, chmod, etc."]
WinPath & MacPath & LinPath --> PathCP["Path Separator<br>Checkpoint"]
WinCmd & MacCmd & LinCmd --> CmdCP["Command<br>Checkpoint"]
PathCP & CmdCP --> PlatformComplete["Platform Detection<br>Complete"]
style PD fill:#4da6ff,stroke:#0066cc,color:white
style PlatformComplete fill:#10b981,stroke:#059669,color:white
```
## 📋 CHECKPOINT VERIFICATION TEMPLATE (Example)
```
✓ SECTION CHECKPOINT: PLATFORM DETECTION
- Operating System Detected? [YES/NO]
- Path Separator Confirmed? [YES/NO]
- Command Adaptations Noted? [YES/NO]
→ If all YES: Platform Detection Complete.
→ If any NO: Resolve before proceeding.
```
**Next Step:** Load and process `van-file-verification.mdc`.
@@ -0,0 +1,117 @@
---
description: Process map for VAN QA minimal build test
globs: van-qa-checks/build-test.mdc
alwaysApply: false
---
# VAN QA: MINIMAL BUILD TEST
> **TL;DR:** This component performs a minimal build test to ensure core build functionality works properly.
## 4️⃣ MINIMAL BUILD TEST PROCESS
```mermaid
graph TD
Start["Minimal Build Test"] --> CreateTest["Create Minimal<br>Test Project"]
CreateTest --> BuildTest["Attempt<br>Build"]
BuildTest --> BuildStatus{"Build<br>Successful?"}
BuildStatus -->|"Yes"| RunTest["Run Basic<br>Functionality Test"]
BuildStatus -->|"No"| FixBuild["Fix Build<br>Issues"]
FixBuild --> RetryBuild["Retry Build"]
RetryBuild --> BuildStatus
RunTest --> TestStatus{"Test<br>Passed?"}
TestStatus -->|"Yes"| TestSuccess["Minimal Build Test<br>✅ PASS"]
TestStatus -->|"No"| FixTest["Fix Test<br>Issues"]
FixTest --> RetryTest["Retry Test"]
RetryTest --> TestStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style TestSuccess fill:#10b981,stroke:#059669,color:white
style BuildStatus fill:#f6546a,stroke:#c30052,color:white
style TestStatus fill:#f6546a,stroke:#c30052,color:white
```
### Minimal Build Test Implementation:
```powershell
# Example: Perform minimal build test for a React project
function Perform-MinimalBuildTest {
$buildSuccess = $false
$testSuccess = $false
# Create minimal test project
$testDir = ".__build_test"
if (Test-Path $testDir) {
Remove-Item -Path $testDir -Recurse -Force
}
try {
# Create minimal test directory
New-Item -Path $testDir -ItemType Directory | Out-Null
Push-Location $testDir
# Initialize minimal package.json
@"
{
"name": "build-test",
"version": "1.0.0",
"description": "Minimal build test",
"main": "index.js",
"scripts": {
"build": "echo Build test successful"
}
}
"@ | Set-Content -Path "package.json"
# Attempt build
npm run build | Out-Null
$buildSuccess = $true
# Create minimal test file
@"
console.log('Test successful');
"@ | Set-Content -Path "index.js"
# Run basic test
node index.js | Out-Null
$testSuccess = $true
} catch {
Write-Output "❌ Build test failed: $($_.Exception.Message)"
} finally {
Pop-Location
if (Test-Path $testDir) {
Remove-Item -Path $testDir -Recurse -Force
}
}
# Display results
if ($buildSuccess -and $testSuccess) {
Write-Output "✅ Minimal build test passed successfully"
return $true
} else {
if (-not $buildSuccess) {
Write-Output "❌ Build process failed"
}
if (-not $testSuccess) {
Write-Output "❌ Basic functionality test failed"
}
return $false
}
}
```
## 📋 MINIMAL BUILD TEST CHECKPOINT
```
✓ CHECKPOINT: MINIMAL BUILD TEST
- Test project creation successful? [YES/NO]
- Build process completed successfully? [YES/NO]
- Basic functionality test passed? [YES/NO]
→ If all YES: QA Validation complete, proceed to generate success report.
→ If any NO: Fix build issues before continuing.
```
**Next Step (on PASS):** Load `van-qa-utils/reports.mdc` to generate success report.
**Next Step (on FAIL):** Check `van-qa-utils/common-fixes.mdc` for build test fixes.
@@ -0,0 +1,103 @@
---
description: Process map for VAN QA configuration validation
globs: van-qa-checks/config-check.mdc
alwaysApply: false
---
# VAN QA: CONFIGURATION VALIDATION
> **TL;DR:** This component validates configuration files for proper syntax and compatibility with the project and platform.
## 2️⃣ CONFIGURATION VALIDATION PROCESS
```mermaid
graph TD
Start["Configuration Validation"] --> IdentifyConfigs["Identify Configuration<br>Files"]
IdentifyConfigs --> ReadConfigs["Read Configuration<br>Files"]
ReadConfigs --> ValidateSyntax["Validate Syntax<br>and Format"]
ValidateSyntax --> SyntaxStatus{"Syntax<br>Valid?"}
SyntaxStatus -->|"Yes"| CheckCompatibility["Check Compatibility<br>with Platform"]
SyntaxStatus -->|"No"| FixSyntax["Fix Syntax<br>Errors"]
FixSyntax --> RetryValidate["Retry Validation"]
RetryValidate --> SyntaxStatus
CheckCompatibility --> CompatStatus{"Compatible with<br>Platform?"}
CompatStatus -->|"Yes"| ConfigSuccess["Configurations Validated<br>✅ PASS"]
CompatStatus -->|"No"| AdaptConfigs["Adapt Configurations<br>for Platform"]
AdaptConfigs --> RetryCompat["Retry Compatibility<br>Check"]
RetryCompat --> CompatStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style ConfigSuccess fill:#10b981,stroke:#059669,color:white
style SyntaxStatus fill:#f6546a,stroke:#c30052,color:white
style CompatStatus fill:#f6546a,stroke:#c30052,color:white
```
### Configuration Validation Implementation:
```powershell
# Example: Validate configuration files for a web project
function Validate-Configurations {
$configFiles = @(
"package.json",
"tsconfig.json",
"vite.config.js"
)
$invalidConfigs = @()
$incompatibleConfigs = @()
foreach ($configFile in $configFiles) {
if (Test-Path $configFile) {
# Check JSON syntax for JSON files
if ($configFile -match "\.json$") {
try {
Get-Content $configFile -Raw | ConvertFrom-Json | Out-Null
} catch {
$invalidConfigs += "$configFile (JSON syntax error: $($_.Exception.Message))"
continue
}
}
# Specific configuration compatibility checks
if ($configFile -eq "vite.config.js") {
$content = Get-Content $configFile -Raw
# Check for React plugin in Vite config
if ($content -notmatch "react\(\)") {
$incompatibleConfigs += "$configFile (Missing React plugin for React project)"
}
}
} else {
$invalidConfigs += "$configFile (file not found)"
}
}
# Display results
if ($invalidConfigs.Count -eq 0 -and $incompatibleConfigs.Count -eq 0) {
Write-Output "✅ All configurations validated and compatible"
return $true
} else {
if ($invalidConfigs.Count -gt 0) {
Write-Output "❌ Invalid configurations: $($invalidConfigs -join ', ')"
}
if ($incompatibleConfigs.Count -gt 0) {
Write-Output "❌ Incompatible configurations: $($incompatibleConfigs -join ', ')"
}
return $false
}
}
```
## 📋 CONFIGURATION VALIDATION CHECKPOINT
```
✓ CHECKPOINT: CONFIGURATION VALIDATION
- All configuration files found? [YES/NO]
- All configuration syntax valid? [YES/NO]
- All configurations compatible with platform? [YES/NO]
→ If all YES: Continue to Environment Validation.
→ If any NO: Fix configuration issues before continuing.
```
**Next Step (on PASS):** Load `van-qa-checks/environment-check.mdc`.
**Next Step (on FAIL):** Check `van-qa-utils/common-fixes.mdc` for configuration fixes.
@@ -0,0 +1,147 @@
---
description: Process map for VAN QA dependency verification
globs: van-qa-checks/dependency-check.mdc
alwaysApply: false
---
# VAN QA: DEPENDENCY VERIFICATION
> **TL;DR:** This component verifies that all required dependencies are installed and compatible with the project requirements.
## 1️⃣ DEPENDENCY VERIFICATION PROCESS
```mermaid
graph TD
Start["Dependency Verification"] --> ReadDeps["Read Required Dependencies<br>from Creative Phase"]
ReadDeps --> CheckInstalled["Check if Dependencies<br>are Installed"]
CheckInstalled --> DepStatus{"All Dependencies<br>Installed?"}
DepStatus -->|"Yes"| VerifyVersions["Verify Versions<br>and Compatibility"]
DepStatus -->|"No"| InstallMissing["Install Missing<br>Dependencies"]
InstallMissing --> VerifyVersions
VerifyVersions --> VersionStatus{"Versions<br>Compatible?"}
VersionStatus -->|"Yes"| DepSuccess["Dependencies Verified<br>✅ PASS"]
VersionStatus -->|"No"| UpgradeVersions["Upgrade/Downgrade<br>as Needed"]
UpgradeVersions --> RetryVerify["Retry Verification"]
RetryVerify --> VersionStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style DepSuccess fill:#10b981,stroke:#059669,color:white
style DepStatus fill:#f6546a,stroke:#c30052,color:white
style VersionStatus fill:#f6546a,stroke:#c30052,color:white
```
### Windows (PowerShell) Implementation:
```powershell
# Example: Verify Node.js dependencies for a React project
function Verify-Dependencies {
$requiredDeps = @{ "node" = ">=14.0.0"; "npm" = ">=6.0.0" }
$missingDeps = @(); $incompatibleDeps = @()
# Check Node.js version
try {
$nodeVersion = node -v
if ($nodeVersion -match "v(\d+)\.(\d+)\.(\d+)") {
$major = [int]$Matches[1]
if ($major -lt 14) {
$incompatibleDeps += "node (found $nodeVersion, required >=14.0.0)"
}
}
} catch {
$missingDeps += "node"
}
# Check npm version
try {
$npmVersion = npm -v
if ($npmVersion -match "(\d+)\.(\d+)\.(\d+)") {
$major = [int]$Matches[1]
if ($major -lt 6) {
$incompatibleDeps += "npm (found $npmVersion, required >=6.0.0)"
}
}
} catch {
$missingDeps += "npm"
}
# Display results
if ($missingDeps.Count -eq 0 -and $incompatibleDeps.Count -eq 0) {
Write-Output "✅ All dependencies verified and compatible"
return $true
} else {
if ($missingDeps.Count -gt 0) {
Write-Output "❌ Missing dependencies: $($missingDeps -join ', ')"
}
if ($incompatibleDeps.Count -gt 0) {
Write-Output "❌ Incompatible versions: $($incompatibleDeps -join ', ')"
}
return $false
}
}
```
### Mac/Linux (Bash) Implementation:
```bash
#!/bin/bash
# Example: Verify Node.js dependencies for a React project
verify_dependencies() {
local missing_deps=()
local incompatible_deps=()
# Check Node.js version
if command -v node &> /dev/null; then
local node_version=$(node -v)
if [[ $node_version =~ v([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
local major=${BASH_REMATCH[1]}
if (( major < 14 )); then
incompatible_deps+=("node (found $node_version, required >=14.0.0)")
fi
fi
else
missing_deps+=("node")
fi
# Check npm version
if command -v npm &> /dev/null; then
local npm_version=$(npm -v)
if [[ $npm_version =~ ([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
local major=${BASH_REMATCH[1]}
if (( major < 6 )); then
incompatible_deps+=("npm (found $npm_version, required >=6.0.0)")
fi
fi
else
missing_deps+=("npm")
fi
# Display results
if [ ${#missing_deps[@]} -eq 0 ] && [ ${#incompatible_deps[@]} -eq 0 ]; then
echo "✅ All dependencies verified and compatible"
return 0
else
if [ ${#missing_deps[@]} -gt 0 ]; then
echo "❌ Missing dependencies: ${missing_deps[*]}"
fi
if [ ${#incompatible_deps[@]} -gt 0 ]; then
echo "❌ Incompatible versions: ${incompatible_deps[*]}"
fi
return 1
fi
}
```
## 📋 DEPENDENCY VERIFICATION CHECKPOINT
```
✓ CHECKPOINT: DEPENDENCY VERIFICATION
- Required dependencies identified? [YES/NO]
- All dependencies installed? [YES/NO]
- All versions compatible? [YES/NO]
→ If all YES: Continue to Configuration Validation.
→ If any NO: Fix dependency issues before continuing.
```
**Next Step (on PASS):** Load `van-qa-checks/config-check.mdc`.
**Next Step (on FAIL):** Check `van-qa-utils/common-fixes.mdc` for dependency fixes.
@@ -0,0 +1,104 @@
---
description: Process map for VAN QA environment validation
globs: van-qa-checks/environment-check.mdc
alwaysApply: false
---
# VAN QA: ENVIRONMENT VALIDATION
> **TL;DR:** This component verifies that the build environment is properly set up with required tools and permissions.
## 3️⃣ ENVIRONMENT VALIDATION PROCESS
```mermaid
graph TD
Start["Environment Validation"] --> CheckEnv["Check Build Environment"]
CheckEnv --> VerifyBuildTools["Verify Build Tools"]
VerifyBuildTools --> ToolsStatus{"Build Tools<br>Available?"}
ToolsStatus -->|"Yes"| CheckPerms["Check Permissions<br>and Access"]
ToolsStatus -->|"No"| InstallTools["Install Required<br>Build Tools"]
InstallTools --> RetryTools["Retry Verification"]
RetryTools --> ToolsStatus
CheckPerms --> PermsStatus{"Permissions<br>Sufficient?"}
PermsStatus -->|"Yes"| EnvSuccess["Environment Validated<br>✅ PASS"]
PermsStatus -->|"No"| FixPerms["Fix Permission<br>Issues"]
FixPerms --> RetryPerms["Retry Permission<br>Check"]
RetryPerms --> PermsStatus
style Start fill:#4da6ff,stroke:#0066cc,color:white
style EnvSuccess fill:#10b981,stroke:#059669,color:white
style ToolsStatus fill:#f6546a,stroke:#c30052,color:white
style PermsStatus fill:#f6546a,stroke:#c30052,color:white
```
### Environment Validation Implementation:
```powershell
# Example: Validate environment for a web project
function Validate-Environment {
$requiredTools = @(
@{Name = "git"; Command = "git --version"},
@{Name = "node"; Command = "node --version"},
@{Name = "npm"; Command = "npm --version"}
)
$missingTools = @()
$permissionIssues = @()
# Check build tools
foreach ($tool in $requiredTools) {
try {
Invoke-Expression $tool.Command | Out-Null
} catch {
$missingTools += $tool.Name
}
}
# Check write permissions in project directory
try {
$testFile = ".__permission_test"
New-Item -Path $testFile -ItemType File -Force | Out-Null
Remove-Item -Path $testFile -Force
} catch {
$permissionIssues += "Current directory (write permission denied)"
}
# Check if port 3000 is available (commonly used for dev servers)
try {
$listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Loopback, 3000)
$listener.Start()
$listener.Stop()
} catch {
$permissionIssues += "Port 3000 (already in use or access denied)"
}
# Display results
if ($missingTools.Count -eq 0 -and $permissionIssues.Count -eq 0) {
Write-Output "✅ Environment validated successfully"
return $true
} else {
if ($missingTools.Count -gt 0) {
Write-Output "❌ Missing tools: $($missingTools -join ', ')"
}
if ($permissionIssues.Count -gt 0) {
Write-Output "❌ Permission issues: $($permissionIssues -join ', ')"
}
return $false
}
}
```
## 📋 ENVIRONMENT VALIDATION CHECKPOINT
```
✓ CHECKPOINT: ENVIRONMENT VALIDATION
- All required build tools installed? [YES/NO]
- Project directory permissions sufficient? [YES/NO]
- Required ports available? [YES/NO]
→ If all YES: Continue to Minimal Build Test.
→ If any NO: Fix environment issues before continuing.
```
**Next Step (on PASS):** Load `van-qa-checks/build-test.mdc`.
**Next Step (on FAIL):** Check `van-qa-utils/common-fixes.mdc` for environment fixes.
@@ -0,0 +1,142 @@
---
description: Visual process map for VAN QA mode (Technical Validation Entry Point)
globs: van-qa-main.mdc
alwaysApply: false
---
# VAN MODE: QA TECHNICAL VALIDATION (Main Entry)
> **TL;DR:** This is the entry point for the QA validation process that executes *after* CREATIVE mode and *before* BUILD mode. It ensures technical requirements are met before implementation begins.
## 📣 HOW TO USE THESE QA RULES
To access any QA validation rule or component, use the `fetch_rules` tool with exact rule names:
```
// CRITICAL: Always use fetch_rules to load validation components
// For detailed examples and guidance, load:
// isolation_rules/visual-maps/van-qa-utils/rule-calling-guide
```
## 🚀 VAN QA MODE ACTIVATION
After completing CREATIVE mode, when the user types "VAN QA", respond:
```mermaid
graph TD
UserQA["User Types: QA"] --> HighPriority["⚠️ HIGH PRIORITY COMMAND"]
HighPriority --> CurrentTask["Pause Current Task/Process"]
CurrentTask --> LoadQA["Load QA Main Map (This File)"]
LoadQA --> RunQA["Execute QA Validation Process"]
RunQA --> QAResults{"QA Results"}
QAResults -->|"PASS"| ResumeFlow["Resume Prior Process Flow"]
QAResults -->|"FAIL"| FixIssues["Fix Identified Issues"]
FixIssues --> ReRunQA["Re-run QA Validation"]
ReRunQA --> QAResults
style UserQA fill:#f8d486,stroke:#e8b84d,color:black
style HighPriority fill:#ff0000,stroke:#cc0000,color:white,stroke-width:3px
style LoadQA fill:#4da6ff,stroke:#0066cc,color:white
style RunQA fill:#4da6ff,stroke:#0066cc,color:white
style QAResults fill:#f6546a,stroke:#c30052,color:white
```
### QA Interruption Rules
1. **Immediate Precedence:** `QA` command interrupts everything.
2. **Load & Execute:** Load this map (`van-qa-main.mdc`) and its components (see below).
3. **Remediation Priority:** Fixes take priority over pending mode switches.
4. **Resume:** On PASS, resume the previous flow.
```
⚠️ QA OVERRIDE ACTIVATED
All other processes paused
QA validation checks now running...
Any issues found MUST be remediated before continuing with normal process flow
```
## 🔍 TECHNICAL VALIDATION OVERVIEW
Four-point validation process with selective loading:
```mermaid
graph TD
VANQA["VAN QA MODE"] --> FourChecks["FOUR-POINT VALIDATION"]
FourChecks --> DepCheck["1️⃣ DEPENDENCY VERIFICATION
Load: van-qa-checks/dependency-check.mdc"]
DepCheck --> ConfigCheck["2️⃣ CONFIGURATION VALIDATION
Load: van-qa-checks/config-check.mdc"]
ConfigCheck --> EnvCheck["3️⃣ ENVIRONMENT VALIDATION
Load: van-qa-checks/environment-check.mdc"]
EnvCheck --> MinBuildCheck["4️⃣ MINIMAL BUILD TEST
Load: van-qa-checks/build-test.mdc"]
MinBuildCheck --> ValidationResults{"All Checks<br>Passed?"}
ValidationResults -->|"Yes"| SuccessReport["GENERATE SUCCESS REPORT
Load: van-qa-utils/reports.mdc"]
ValidationResults -->|"No"| FailureReport["GENERATE FAILURE REPORT
Load: van-qa-utils/reports.mdc"]
SuccessReport --> BUILD_Transition["Trigger BUILD Mode
Load: van-qa-utils/mode-transitions.mdc"]
FailureReport --> FixIssues["Fix Technical Issues
Load: van-qa-utils/common-fixes.mdc"]
FixIssues --> ReValidate["Re-validate (Re-run VAN QA)"]
ReValidate --> FourChecks
style VANQA fill:#4da6ff,stroke:#0066cc,color:white
style FourChecks fill:#f6546a,stroke:#c30052,color:white
style ValidationResults fill:#f6546a,stroke:#c30052,color:white
style BUILD_Transition fill:#10b981,stroke:#059669,color:white
style FixIssues fill:#ff5555,stroke:#dd3333,color:white
```
## 🔄 INTEGRATION WITH DESIGN DECISIONS
Reads Creative Phase outputs to inform validation:
```mermaid
graph TD
Start["Read Design Decisions"] --> ReadCreative["Parse Creative Phase<br>Documentation"]
ReadCreative --> ExtractTech["Extract Technology<br>Choices"]
ExtractTech --> ExtractDeps["Extract Required<br>Dependencies"]
ExtractDeps --> BuildValidationPlan["Build Validation<br>Plan"]
BuildValidationPlan --> StartValidation["Start Four-Point<br>Validation Process"]
style Start fill:#4da6ff,stroke:#0066cc,color:white
style ExtractTech fill:#f6546a,stroke:#c30052,color:white
style BuildValidationPlan fill:#10b981,stroke:#059669,color:white
style StartValidation fill:#f6546a,stroke:#c30052,color:white
```
## 📋 COMPONENT LOADING SEQUENCE
The QA validation process follows this selective loading sequence:
1. **Main Entry (This File)**: `van-qa-main.mdc`
2. **Validation Checks**:
- `van-qa-checks/dependency-check.mdc`
- `van-qa-checks/config-check.mdc`
- `van-qa-checks/environment-check.mdc`
- `van-qa-checks/build-test.mdc`
3. **Utilities (As Needed)**:
- `van-qa-utils/reports.mdc`
- `van-qa-utils/common-fixes.mdc`
- `van-qa-utils/mode-transitions.mdc`
## 📋 FINAL QA VALIDATION CHECKPOINT
```
✓ SECTION CHECKPOINT: QA VALIDATION
- Dependency Verification Passed? [YES/NO]
- Configuration Validation Passed? [YES/NO]
- Environment Validation Passed? [YES/NO]
- Minimal Build Test Passed? [YES/NO]
→ If all YES: Ready for BUILD mode transition.
→ If any NO: Fix identified issues and re-run VAN QA.
```
**Next Step (on PASS):** Trigger BUILD mode (load `van-qa-utils/mode-transitions.mdc`).
**Next Step (on FAIL):** Address issues (load `van-qa-utils/common-fixes.mdc`) and re-run `VAN QA`.
@@ -0,0 +1,92 @@
---
description: Utility for VAN QA common validation fixes
globs: van-qa-utils/common-fixes.mdc
alwaysApply: false
---
# VAN QA: COMMON VALIDATION FIXES
> **TL;DR:** This component provides common fixes for issues that may arise during the QA validation process.
## 🧪 COMMON QA VALIDATION FIXES BY CATEGORY
### Dependency Issues
| Issue | Fix |
|-------|-----|
| **Missing Node.js** | Download and install Node.js from https://nodejs.org/ |
| **Outdated npm** | Run `npm install -g npm@latest` to update |
| **Missing packages** | Run `npm install` or `npm install [package-name]` |
| **Package version conflicts** | Adjust versions in package.json and run `npm install` |
| **Dependency resolution issues** | Run `npm cache clean -f` and try installing again |
### Configuration Issues
| Issue | Fix |
|-------|-----|
| **Invalid JSON** | Use a JSON validator (e.g., jsonlint) to check syntax |
| **Missing React plugin** | Add `import react from '@vitejs/plugin-react'` and `plugins: [react()]` to vite.config.js |
| **Incompatible TypeScript config** | Update `tsconfig.json` with correct React settings |
| **Mismatched version references** | Ensure consistent versions across configuration files |
| **Missing entries in config files** | Add required fields to configuration files |
### Environment Issues
| Issue | Fix |
|-------|-----|
| **Permission denied** | Run terminal as administrator (Windows) or use sudo (Mac/Linux) |
| **Port already in use** | Kill process using the port: `netstat -ano \| findstr :PORT` then `taskkill /F /PID PID` (Windows) or `lsof -i :PORT` then `kill -9 PID` (Mac/Linux) |
| **Missing build tools** | Install required command-line tools (git, node, etc.) |
| **Environment variable issues** | Set required environment variables: `$env:VAR_NAME = "value"` (PowerShell) or `export VAR_NAME="value"` (Bash) |
| **Disk space issues** | Free up disk space, clean npm/package cache files |
### Build Test Issues
| Issue | Fix |
|-------|-----|
| **Build fails** | Check console for specific error messages |
| **Test fails** | Verify minimal configuration is correct |
| **Path issues** | Ensure paths use correct separators for the platform (`\` for Windows, `/` for Mac/Linux) |
| **Missing dependencies** | Make sure all required dependencies are installed |
| **Script permissions** | Ensure script files have execution permissions (chmod +x on Unix) |
## 📝 ISSUE DIAGNOSIS PROCEDURES
### 1. Dependency Diagnosis
```powershell
# Find conflicting dependencies
npm ls [package-name]
# Check for outdated packages
npm outdated
# Check for vulnerabilities
npm audit
```
### 2. Configuration Diagnosis
```powershell
# List all configuration files
Get-ChildItem -Recurse -Include "*.json","*.config.js" | Select-Object FullName
# Find missing references in tsconfig.json
if (Test-Path "tsconfig.json") {
$tsconfig = Get-Content "tsconfig.json" -Raw | ConvertFrom-Json
if (-not $tsconfig.compilerOptions.jsx) {
Write-Output "Missing jsx setting in tsconfig.json"
}
}
```
### 3. Environment Diagnosis
```powershell
# Check process using a port (Windows)
netstat -ano | findstr ":3000"
# List environment variables
Get-ChildItem Env:
# Check disk space
Get-PSDrive C | Select-Object Used,Free
```
**Next Step:** Return to the validation process or follow the specific fix recommendations provided above.
@@ -0,0 +1,101 @@
---
description: Utility for VAN QA mode transitions
globs: van-qa-utils/mode-transitions.mdc
alwaysApply: false
---
# VAN QA: MODE TRANSITIONS
> **TL;DR:** This component handles transitions between modes, particularly the QA validation to BUILD mode transition, and prevents BUILD mode access without successful QA validation.
## 🔒 BUILD MODE PREVENTION MECHANISM
The system prevents moving to BUILD mode without passing QA validation:
```mermaid
graph TD
Start["User Types: BUILD"] --> CheckQA{"QA Validation<br>Completed?"}
CheckQA -->|"Yes and Passed"| AllowBuild["Allow BUILD Mode"]
CheckQA -->|"No or Failed"| BlockBuild["BLOCK BUILD MODE"]
BlockBuild --> Message["Display:<br>⚠️ QA VALIDATION REQUIRED"]
Message --> ReturnToVANQA["Prompt: Type VAN QA"]
style CheckQA fill:#f6546a,stroke:#c30052,color:white
style BlockBuild fill:#ff0000,stroke:#990000,color:white,stroke-width:3px
style Message fill:#ff5555,stroke:#dd3333,color:white
style ReturnToVANQA fill:#4da6ff,stroke:#0066cc,color:white
```
### Implementation Example (PowerShell):
```powershell
# Check QA status before allowing BUILD mode
function Check-QAValidationStatus {
$qaStatusFile = "memory-bank\.qa_validation_status" # Assumes status is written by reports.mdc
if (Test-Path $qaStatusFile) {
$status = Get-Content $qaStatusFile -Raw
if ($status -match "PASS") {
return $true
}
}
# Display block message
Write-Output "`n`n"
Write-Output "🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫"
Write-Output "⛔️ BUILD MODE BLOCKED: QA VALIDATION REQUIRED"
Write-Output "⛔️ You must complete QA validation before proceeding to BUILD mode"
Write-Output "`n"
Write-Output "Type 'VAN QA' to perform technical validation"
Write-Output "`n"
Write-Output "🚫 NO IMPLEMENTATION CAN PROCEED WITHOUT VALIDATION 🚫"
Write-Output "🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫🚫"
return $false
}
```
## 🚨 MODE TRANSITION TRIGGERS
### CREATIVE to VAN QA Transition:
After completing the CREATIVE phase, trigger this message to prompt QA validation:
```
⏭️ NEXT MODE: VAN QA
To validate technical requirements before implementation, please type 'VAN QA'
```
### VAN QA to BUILD Transition (On Success):
After successful QA validation, trigger this message to allow BUILD mode:
```
✅ TECHNICAL VALIDATION COMPLETE
All prerequisites verified successfully
You may now proceed to BUILD mode
Type 'BUILD' to begin implementation
```
### Manual BUILD Mode Access (When QA Already Passed):
When the user manually types 'BUILD', check the QA status before allowing access:
```powershell
# Handle BUILD mode request
function Handle-BuildModeRequest {
if (Check-QAValidationStatus) {
# Allow transition to BUILD mode
Write-Output "`n"
Write-Output "✅ QA VALIDATION CHECK: PASSED"
Write-Output "Loading BUILD mode..."
Write-Output "`n"
# Here you would load the BUILD mode map
# [Code to load BUILD mode map]
return $true
}
# QA validation failed or not completed, BUILD mode blocked
return $false
}
```
**Next Step (on QA SUCCESS):** Continue to BUILD mode.
**Next Step (on QA FAILURE):** Return to QA validation process.
@@ -0,0 +1,149 @@
---
description: Utility for VAN QA validation reports
globs: van-qa-utils/reports.mdc
alwaysApply: false
---
# VAN QA: VALIDATION REPORTS
> **TL;DR:** This component contains the formats for comprehensive success and failure reports generated upon completion of the QA validation process.
## 📋 COMPREHENSIVE SUCCESS REPORT FORMAT
After all four validation points pass, generate this success report:
```
╔═════════════════════ 🔍 QA VALIDATION REPORT ══════════════════════╗
│ PROJECT: [Project Name] | TIMESTAMP: [Current Date/Time] │
├─────────────────────────────────────────────────────────────────────┤
│ 1️⃣ DEPENDENCIES: ✓ Compatible │
│ 2️⃣ CONFIGURATION: ✓ Valid & Compatible │
│ 3️⃣ ENVIRONMENT: ✓ Ready │
│ 4️⃣ MINIMAL BUILD: ✓ Successful & Passed │
├─────────────────────────────────────────────────────────────────────┤
│ 🚨 FINAL VERDICT: PASS │
│ ➡️ Clear to proceed to BUILD mode │
╚═════════════════════════════════════════════════════════════════════╝
```
### Success Report Generation Example:
```powershell
function Generate-SuccessReport {
param (
[string]$ProjectName = "Current Project"
)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$report = @"
╔═════════════════════ 🔍 QA VALIDATION REPORT ══════════════════════╗
│ PROJECT: $ProjectName | TIMESTAMP: $timestamp │
├─────────────────────────────────────────────────────────────────────┤
│ 1️⃣ DEPENDENCIES: ✓ Compatible │
│ 2️⃣ CONFIGURATION: ✓ Valid & Compatible │
│ 3️⃣ ENVIRONMENT: ✓ Ready │
│ 4️⃣ MINIMAL BUILD: ✓ Successful & Passed │
├─────────────────────────────────────────────────────────────────────┤
│ 🚨 FINAL VERDICT: PASS │
│ ➡️ Clear to proceed to BUILD mode │
╚═════════════════════════════════════════════════════════════════════╝
"@
# Save validation status (used by BUILD mode prevention mechanism)
"PASS" | Set-Content -Path "memory-bank\.qa_validation_status"
return $report
}
```
## ❌ FAILURE REPORT FORMAT
If any validation step fails, generate this detailed failure report:
```
⚠️⚠️⚠️ QA VALIDATION FAILED ⚠️⚠️⚠️
The following issues must be resolved before proceeding to BUILD mode:
1️⃣ DEPENDENCY ISSUES:
- [Detailed description of dependency issues]
- [Recommended fix]
2️⃣ CONFIGURATION ISSUES:
- [Detailed description of configuration issues]
- [Recommended fix]
3️⃣ ENVIRONMENT ISSUES:
- [Detailed description of environment issues]
- [Recommended fix]
4️⃣ BUILD TEST ISSUES:
- [Detailed description of build test issues]
- [Recommended fix]
⚠️ BUILD MODE IS BLOCKED until these issues are resolved.
Type 'VAN QA' after fixing the issues to re-validate.
```
### Failure Report Generation Example:
```powershell
function Generate-FailureReport {
param (
[string[]]$DependencyIssues = @(),
[string[]]$ConfigIssues = @(),
[string[]]$EnvironmentIssues = @(),
[string[]]$BuildIssues = @()
)
$report = @"
⚠️⚠️⚠️ QA VALIDATION FAILED ⚠️⚠️⚠️
The following issues must be resolved before proceeding to BUILD mode:
"@
if ($DependencyIssues.Count -gt 0) {
$report += @"
1️⃣ DEPENDENCY ISSUES:
$(($DependencyIssues | ForEach-Object { "- $_" }) -join "`n")
"@
}
if ($ConfigIssues.Count -gt 0) {
$report += @"
2️⃣ CONFIGURATION ISSUES:
$(($ConfigIssues | ForEach-Object { "- $_" }) -join "`n")
"@
}
if ($EnvironmentIssues.Count -gt 0) {
$report += @"
3️⃣ ENVIRONMENT ISSUES:
$(($EnvironmentIssues | ForEach-Object { "- $_" }) -join "`n")
"@
}
if ($BuildIssues.Count -gt 0) {
$report += @"
4️⃣ BUILD TEST ISSUES:
$(($BuildIssues | ForEach-Object { "- $_" }) -join "`n")
"@
}
$report += @"
⚠️ BUILD MODE IS BLOCKED until these issues are resolved.
Type 'VAN QA' after fixing the issues to re-validate.
"@
# Save validation status (used by BUILD mode prevention mechanism)
"FAIL" | Set-Content -Path "memory-bank\.qa_validation_status"
return $report
}
```
**Next Step (on SUCCESS):** Load `van-qa-utils/mode-transitions.mdc` to handle BUILD mode transition.
**Next Step (on FAILURE):** Load `van-qa-utils/common-fixes.mdc` for issue remediation guidance.
@@ -0,0 +1,66 @@
---
description: Comprehensive guide for calling VAN QA rules
globs: van-qa-utils/rule-calling-guide.mdc
alwaysApply: false
---
# VAN QA: COMPREHENSIVE RULE CALLING GUIDE
> **TL;DR:** This reference guide shows how to properly call all VAN QA rules at the right time during the validation process.
## 🔍 RULE CALLING BASICS
Remember these key principles:
1. Always use the `fetch_rules` tool to load rules
2. Use exact rule paths
3. Load components only when needed
## 📋 MAIN QA ENTRY POINT
When user types "VAN QA", load the main entry point:
```
fetch_rules with "isolation_rules/visual-maps/van-qa-main"
```
## 📋 VALIDATION CHECKS
Load these components sequentially during validation:
```
1. fetch_rules with "isolation_rules/visual-maps/van-qa-checks/dependency-check"
2. fetch_rules with "isolation_rules/visual-maps/van-qa-checks/config-check"
3. fetch_rules with "isolation_rules/visual-maps/van-qa-checks/environment-check"
4. fetch_rules with "isolation_rules/visual-maps/van-qa-checks/build-test"
```
## 📋 UTILITY COMPONENTS
Load these when needed based on validation results:
```
- For reports: fetch_rules with "isolation_rules/visual-maps/van-qa-utils/reports"
- For fixes: fetch_rules with "isolation_rules/visual-maps/van-qa-utils/common-fixes"
- For transitions: fetch_rules with "isolation_rules/visual-maps/van-qa-utils/mode-transitions"
```
## ⚠️ CRITICAL REMINDERS
Remember to call these rules at these specific points:
- ALWAYS load the main QA entry point when "VAN QA" is typed
- ALWAYS load dependency-check before starting validation
- ALWAYS load reports after completing validation
- ALWAYS load mode-transitions after successful validation
- ALWAYS load common-fixes after failed validation
## 🔄 FULL VALIDATION SEQUENCE
Complete sequence for a QA validation process:
1. Load main entry: `isolation_rules/visual-maps/van-qa-main`
2. Load first check: `isolation_rules/visual-maps/van-qa-checks/dependency-check`
3. Load second check: `isolation_rules/visual-maps/van-qa-checks/config-check`
4. Load third check: `isolation_rules/visual-maps/van-qa-checks/environment-check`
5. Load fourth check: `isolation_rules/visual-maps/van-qa-checks/build-test`
6. If pass, load: `isolation_rules/visual-maps/van-qa-utils/reports`
7. If pass, load: `isolation_rules/visual-maps/van-qa-utils/mode-transitions`
8. If fail, load: `isolation_rules/visual-maps/van-qa-utils/common-fixes`
@@ -0,0 +1,19 @@
---
description: Utility for remembering how to call VAN QA rules
globs: van-qa-utils/rule-calling-help.mdc
alwaysApply: false
---
# VAN QA: HOW TO CALL RULES
> **TL;DR:** This file provides examples and reminders on how to properly call VAN QA rules using the fetch_rules tool.
## 🚨 RULE CALLING SYNTAX
Always use the `fetch_rules` tool with the correct syntax:
```
<function_calls>
<invoke name="fetch_rules">
<parameter name="rule_names">["isolation_rules/visual-maps/rule-name"]
</invoke>
</function_calls>
@@ -0,0 +1,363 @@
# VAN MODE: QA TECHNICAL VALIDATION (Pre-BUILD)
> **TL;DR:** This map details the technical validation process executed *after* CREATIVE mode and *before* BUILD mode, triggered by the `VAN QA` command. It ensures dependencies, configuration, environment, and basic build functionality are sound.
## 🚀 VAN QA MODE ACTIVATION
After completing CREATIVE mode, when the user types "VAN QA", respond:
```
User: VAN QA
Response: OK VAN QA - Beginning Technical Validation
Loading QA Validation map...
```
## 🔄 QA COMMAND PRECEDENCE (QA Override)
QA validation can be called at any point (`QA` command) and takes immediate precedence:
```mermaid
graph TD
UserQA["User Types: QA"] --> HighPriority["⚠️ HIGH PRIORITY COMMAND"]
HighPriority --> CurrentTask["Pause Current Task/Process"]
CurrentTask --> LoadQA["Load QA Validation Map (This File)"]
LoadQA --> RunQA["Execute QA Validation Process"]
RunQA --> QAResults{"QA Results"}
QAResults -->|"PASS"| ResumeFlow["Resume Prior Process Flow"]
QAResults -->|"FAIL"| FixIssues["Fix Identified Issues"]
FixIssues --> ReRunQA["Re-run QA Validation"]
ReRunQA --> QAResults
style UserQA fill:#f8d486,stroke:#e8b84d,color:black
style HighPriority fill:#ff0000,stroke:#cc0000,color:white,stroke-width:3px
style LoadQA fill:#4da6ff,stroke:#0066cc,color:white
style RunQA fill:#4da6ff,stroke:#0066cc,color:white
style QAResults fill:#f6546a,stroke:#c30052,color:white
```
### QA Interruption Rules
1. **Immediate Precedence:** `QA` command interrupts everything.
2. **Load & Execute:** Load this map (`van-qa-validation.mdc`) and run the full process.
3. **Remediation Priority:** Fixes take priority over pending mode switches.
4. **Resume:** On PASS, resume the previous flow.
```
⚠️ QA OVERRIDE ACTIVATED
All other processes paused
QA validation checks now running...
Any issues found MUST be remediated before continuing with normal process flow
```
## 🔍 TECHNICAL VALIDATION OVERVIEW
Four-point validation process:
```mermaid
graph TD
VANQA["VAN QA MODE"] --> FourChecks["FOUR-POINT VALIDATION"]
FourChecks --> DepCheck["1️⃣ DEPENDENCY VERIFICATION"]
DepCheck --> ConfigCheck["2️⃣ CONFIGURATION VALIDATION"]
ConfigCheck --> EnvCheck["3️⃣ ENVIRONMENT VALIDATION"]
EnvCheck --> MinBuildCheck["4️⃣ MINIMAL BUILD TEST"]
MinBuildCheck --> ValidationResults{"All Checks<br>Passed?"}
ValidationResults -->|"Yes"| SuccessReport["GENERATE SUCCESS REPORT"]
ValidationResults -->|"No"| FailureReport["GENERATE FAILURE REPORT"]
SuccessReport --> BUILD_Transition["Trigger BUILD Mode"]
FailureReport --> FixIssues["Fix Technical Issues"]
FixIssues --> ReValidate["Re-validate (Re-run VAN QA)"]
ReValidate --> FourChecks
style VANQA fill:#4da6ff,stroke:#0066cc,color:white
style FourChecks fill:#f6546a,stroke:#c30052,color:white
style ValidationResults fill:#f6546a,stroke:#c30052,color:white
style BUILD_Transition fill:#10b981,stroke:#059669,color:white
style FixIssues fill:#ff5555,stroke:#dd3333,color:white
```
## 🔄 INTEGRATION WITH DESIGN DECISIONS
Reads Creative Phase outputs (e.g., `memory-bank/systemPatterns.md`) to inform validation:
```mermaid
graph TD
Start["Read Design Decisions"] --> ReadCreative["Parse Creative Phase<br>Documentation"]
ReadCreative --> ExtractTech["Extract Technology<br>Choices"]
ExtractTech --> ExtractDeps["Extract Required<br>Dependencies"]
ExtractDeps --> BuildValidationPlan["Build Validation<br>Plan"]
BuildValidationPlan --> StartValidation["Start Four-Point<br>Validation Process"]
style Start fill:#4da6ff,stroke:#0066cc,color:white
style ExtractTech fill:#f6546a,stroke:#c30052,color:white
style BuildValidationPlan fill:#10b981,stroke:#059669,color:white
style StartValidation fill:#f6546a,stroke:#c30052,color:white
```
### Example Technology Extraction (PowerShell):
```powershell
# Example: Extract technology choices from creative phase documentation
function Extract-TechnologyChoices {
$techChoices = @{}
# Read from systemPatterns.md
if (Test-Path "memory-bank\systemPatterns.md") {
$content = Get-Content "memory-bank\systemPatterns.md" -Raw
if ($content -match "Framework:\s*(\w+)") { $techChoices["framework"] = $Matches[1] }
if ($content -match "UI Library:\s*(\w+)") { $techChoices["ui_library"] = $Matches[1] }
if ($content -match "State Management:\s*([^\n]+)") { $techChoices["state_management"] = $Matches[1].Trim() }
}
return $techChoices
}
```
## 🔍 DETAILED QA VALIDATION STEPS & SCRIPTS
### 1️⃣ DEPENDENCY VERIFICATION
```mermaid
# Mermaid graph for Dependency Verification (as in original file)
graph TD
Start["Dependency Verification"] --> ReadDeps["Read Required Dependencies<br>from Creative Phase"]
ReadDeps --> CheckInstalled["Check if Dependencies<br>are Installed"]
CheckInstalled --> DepStatus{"All Dependencies<br>Installed?"}
DepStatus -->|"Yes"| VerifyVersions["Verify Versions<br>and Compatibility"]
DepStatus -->|"No"| InstallMissing["Install Missing<br>Dependencies"]
InstallMissing --> VerifyVersions
VerifyVersions --> VersionStatus{"Versions<br>Compatible?"}
VersionStatus -->|"Yes"| DepSuccess["Dependencies Verified<br>✅ PASS"]
VersionStatus -->|"No"| UpgradeVersions["Upgrade/Downgrade<br>as Needed"]
UpgradeVersions --> RetryVerify["Retry Verification"]
RetryVerify --> VersionStatus
style Start fill:#4da6ff; style DepSuccess fill:#10b981; style DepStatus fill:#f6546a; style VersionStatus fill:#f6546a;
```
#### Example Implementation (PowerShell):
```powershell
# Verify-Dependencies function (as in original file)
function Verify-Dependencies {
$requiredDeps = @{ "node" = ">=14.0.0"; "npm" = ">=6.0.0" }
$missingDeps = @(); $incompatibleDeps = @()
try { $nodeVersion = node -v; if ($nodeVersion -match "v(\d+).*") { if ([int]$Matches[1] -lt 14) { $incompatibleDeps += "node" } } } catch { $missingDeps += "node" }
try { $npmVersion = npm -v; if ($npmVersion -match "(\d+).*") { if ([int]$Matches[1] -lt 6) { $incompatibleDeps += "npm" } } } catch { $missingDeps += "npm" }
if ($missingDeps.Count -eq 0 -and $incompatibleDeps.Count -eq 0) { Write-Output "✅ Deps OK"; return $true } else { Write-Output "❌ Deps FAIL"; return $false }
}
```
#### Example Implementation (Bash):
```bash
# verify_dependencies function (as in original file)
verify_dependencies() {
local missing_deps=(); local incompatible_deps=()
if command -v node &> /dev/null; then node_version=$(node -v); if [[ $node_version =~ v([0-9]+) ]]; then if (( ${BASH_REMATCH[1]} < 14 )); then incompatible_deps+=("node"); fi; fi; else missing_deps+=("node"); fi
if command -v npm &> /dev/null; then npm_version=$(npm -v); if [[ $npm_version =~ ([0-9]+) ]]; then if (( ${BASH_REMATCH[1]} < 6 )); then incompatible_deps+=("npm"); fi; fi; else missing_deps+=("npm"); fi
if [ ${#missing_deps[@]} -eq 0 ] && [ ${#incompatible_deps[@]} -eq 0 ]; then echo "✅ Deps OK"; return 0; else echo "❌ Deps FAIL"; return 1; fi
}
```
### 2️⃣ CONFIGURATION VALIDATION
```mermaid
# Mermaid graph for Configuration Validation (as in original file)
graph TD
Start["Configuration Validation"] --> IdentifyConfigs["Identify Files"]
IdentifyConfigs --> ReadConfigs["Read Files"]
ReadConfigs --> ValidateSyntax["Validate Syntax"]
ValidateSyntax --> SyntaxStatus{"Valid?"}
SyntaxStatus -->|"Yes"| CheckCompatibility["Check Compatibility"]
SyntaxStatus -->|"No"| FixSyntax["Fix Syntax"]
FixSyntax --> RetryValidate["Retry"]
RetryValidate --> SyntaxStatus
CheckCompatibility --> CompatStatus{"Compatible?"}
CompatStatus -->|"Yes"| ConfigSuccess["Configs Validated ✅ PASS"]
CompatStatus -->|"No"| AdaptConfigs["Adapt Configs"]
AdaptConfigs --> RetryCompat["Retry Check"]
RetryCompat --> CompatStatus
style Start fill:#4da6ff; style ConfigSuccess fill:#10b981; style SyntaxStatus fill:#f6546a; style CompatStatus fill:#f6546a;
```
#### Example Implementation (PowerShell):
```powershell
# Validate-Configurations function (as in original file)
function Validate-Configurations {
$configFiles = @("package.json", "tsconfig.json", "vite.config.js")
$invalidConfigs = @(); $incompatibleConfigs = @()
foreach ($configFile in $configFiles) {
if (Test-Path $configFile) {
if ($configFile -match "\.json$") { try { Get-Content $configFile -Raw | ConvertFrom-Json | Out-Null } catch { $invalidConfigs += "$configFile (JSON)"; continue } }
if ($configFile -eq "vite.config.js") { $content = Get-Content $configFile -Raw; if ($content -notmatch "react\(\)") { $incompatibleConfigs += "$configFile (React)" } }
} else { $invalidConfigs += "$configFile (missing)" }
}
if ($invalidConfigs.Count -eq 0 -and $incompatibleConfigs.Count -eq 0) { Write-Output "✅ Configs OK"; return $true } else { Write-Output "❌ Configs FAIL"; return $false }
}
```
### 3️⃣ ENVIRONMENT VALIDATION
```mermaid
# Mermaid graph for Environment Validation (as in original file)
graph TD
Start["Environment Validation"] --> CheckEnv["Check Env"]
CheckEnv --> VerifyBuildTools["Verify Tools"]
VerifyBuildTools --> ToolsStatus{"Available?"}
ToolsStatus -->|"Yes"| CheckPerms["Check Permissions"]
ToolsStatus -->|"No"| InstallTools["Install Tools"]
InstallTools --> RetryTools["Retry"]
RetryTools --> ToolsStatus
CheckPerms --> PermsStatus{"Sufficient?"}
PermsStatus -->|"Yes"| EnvSuccess["Environment Validated ✅ PASS"]
PermsStatus -->|"No"| FixPerms["Fix Permissions"]
FixPerms --> RetryPerms["Retry Check"]
RetryPerms --> PermsStatus
style Start fill:#4da6ff; style EnvSuccess fill:#10b981; style ToolsStatus fill:#f6546a; style PermsStatus fill:#f6546a;
```
#### Example Implementation (PowerShell):
```powershell
# Validate-Environment function (as in original file)
function Validate-Environment {
$requiredTools = @(@{Name='git';Cmd='git --version'},@{Name='node';Cmd='node --version'},@{Name='npm';Cmd='npm --version'})
$missingTools = @(); $permissionIssues = @()
foreach ($tool in $requiredTools) { try { Invoke-Expression $tool.Cmd | Out-Null } catch { $missingTools += $tool.Name } }
try { $testFile = ".__perm_test"; New-Item $testFile -ItemType File -Force | Out-Null; Remove-Item $testFile -Force } catch { $permissionIssues += "CWD Write" }
try { $L = New-Object Net.Sockets.TcpListener([Net.IPAddress]::Loopback, 3000); $L.Start(); $L.Stop() } catch { $permissionIssues += "Port 3000" }
if ($missingTools.Count -eq 0 -and $permissionIssues.Count -eq 0) { Write-Output "✅ Env OK"; return $true } else { Write-Output "❌ Env FAIL"; return $false }
}
```
### 4️⃣ MINIMAL BUILD TEST
```mermaid
# Mermaid graph for Minimal Build Test (as in original file)
graph TD
Start["Minimal Build Test"] --> CreateTest["Create Test Proj"]
CreateTest --> BuildTest["Attempt Build"]
BuildTest --> BuildStatus{"Success?"}
BuildStatus -->|"Yes"| RunTest["Run Basic Test"]
BuildStatus -->|"No"| FixBuild["Fix Build Issues"]
FixBuild --> RetryBuild["Retry Build"]
RetryBuild --> BuildStatus
RunTest --> TestStatus{"Passed?"}
TestStatus -->|"Yes"| TestSuccess["Build Test ✅ PASS"]
TestStatus -->|"No"| FixTest["Fix Test Issues"]
FixTest --> RetryTest["Retry Test"]
RetryTest --> TestStatus
style Start fill:#4da6ff; style TestSuccess fill:#10b981; style BuildStatus fill:#f6546a; style TestStatus fill:#f6546a;
```
#### Example Implementation (PowerShell):
```powershell
# Perform-MinimalBuildTest function (as in original file)
function Perform-MinimalBuildTest {
$buildSuccess = $false; $testSuccess = $false; $testDir = ".__build_test"
if (Test-Path $testDir) { Remove-Item $testDir -Recurse -Force }
try {
New-Item $testDir -ItemType Directory | Out-Null; Push-Location $testDir
'{"name": "build-test","scripts": {"build": "echo Build test successful"}}' | Set-Content package.json
npm run build | Out-Null; $buildSuccess = $true
'console.log("Test successful");' | Set-Content index.js
node index.js | Out-Null; $testSuccess = $true
} catch { Write-Output "❌ Build test exception" } finally { Pop-Location; if (Test-Path $testDir) { Remove-Item $testDir -Recurse -Force } }
if ($buildSuccess -and $testSuccess) { Write-Output "✅ Build Test OK"; return $true } else { Write-Output "❌ Build Test FAIL"; return $false }
}
```
## 📝 VALIDATION REPORT FORMATS
### Comprehensive Success Report:
```
╔═════════════════════ 🔍 QA VALIDATION REPORT ══════════════════════╗
│ PROJECT: [Project Name] | TIMESTAMP: [Current Date/Time] │
├─────────────────────────────────────────────────────────────────────┤
│ 1️⃣ DEPENDENCIES: ✓ Compatible │
│ 2️⃣ CONFIGURATION: ✓ Valid & Compatible │
│ 3️⃣ ENVIRONMENT: ✓ Ready │
│ 4️⃣ MINIMAL BUILD: ✓ Successful & Passed │
├─────────────────────────────────────────────────────────────────────┤
│ 🚨 FINAL VERDICT: PASS │
│ ➡️ Clear to proceed to BUILD mode │
╚═════════════════════════════════════════════════════════════════════╝
```
### Detailed Failure Report:
```
⚠️⚠️⚠️ QA VALIDATION FAILED ⚠️⚠️⚠️
Issues must be resolved before BUILD mode:
1️⃣ DEPENDENCY ISSUES: [Details/Fix]
2️⃣ CONFIGURATION ISSUES: [Details/Fix]
3️⃣ ENVIRONMENT ISSUES: [Details/Fix]
4️⃣ BUILD TEST ISSUES: [Details/Fix]
⚠️ BUILD MODE BLOCKED. Type 'VAN QA' after fixing to re-validate.
```
## 🧪 COMMON QA VALIDATION FIXES
- **Dependencies:** Install Node/npm, run `npm install`, check versions.
- **Configuration:** Validate JSON, check required plugins (e.g., React for Vite), ensure TSConfig compatibility.
- **Environment:** Check permissions (Admin/sudo), ensure ports are free, install missing CLI tools (git, etc.).
- **Build Test:** Check logs for errors, verify minimal config, check path separators.
## 🔒 BUILD MODE PREVENTION MECHANISM
Logic to check QA status before allowing BUILD mode transition.
```mermaid
graph TD
Start["User Types: BUILD"] --> CheckQA{"QA Validation<br>Passed?"}
CheckQA -->|"Yes"| AllowBuild["Allow BUILD Mode"]
CheckQA -->|"No"| BlockBuild["BLOCK BUILD MODE"]
BlockBuild --> Message["Display:<br>⚠️ QA VALIDATION REQUIRED"]
Message --> ReturnToVANQA["Prompt: Type VAN QA"]
style CheckQA fill:#f6546a; style BlockBuild fill:#ff0000,stroke:#990000; style Message fill:#ff5555; style ReturnToVANQA fill:#4da6ff;
```
### Example Implementation (PowerShell):
```powershell
# Example: Check QA status before allowing BUILD
function Check-QAValidationStatus {
$qaStatusFile = "memory-bank\.qa_validation_status" # Assumes status is written here
if (Test-Path $qaStatusFile) {
if ((Get-Content $qaStatusFile -Raw) -match "PASS") { return $true }
}
Write-Output "🚫 BUILD MODE BLOCKED: QA VALIDATION REQUIRED. Type 'VAN QA'. 🚫"
return $false
}
```
## 🚨 MODE TRANSITION TRIGGERS (Relevant to QA)
### CREATIVE to VAN QA Transition:
```
⏭️ NEXT MODE: VAN QA
To validate technical requirements before implementation, please type 'VAN QA'
```
### VAN QA to BUILD Transition (On Success):
```
✅ TECHNICAL VALIDATION COMPLETE
All prerequisites verified successfully
You may now proceed to BUILD mode
Type 'BUILD' to begin implementation
```
## 📋 FINAL QA VALIDATION CHECKPOINT
```
✓ SECTION CHECKPOINT: QA VALIDATION
- Dependency Verification Passed? [YES/NO]
- Configuration Validation Passed? [YES/NO]
- Environment Validation Passed? [YES/NO]
- Minimal Build Test Passed? [YES/NO]
→ If all YES: Ready for BUILD mode transition.
→ If any NO: Fix identified issues and re-run VAN QA.
```
**Next Step (on PASS):** Trigger BUILD mode.
**Next Step (on FAIL):** Address issues and re-run `VAN QA`.