Initial commit: Brachnha Insight project setup

- Next.js 14+ with App Router and TypeScript
- Tailwind CSS and ShadCN UI styling
- Zustand state management
- Dexie.js for IndexedDB (local-first data)
- Auth.js v5 for authentication
- BMAD framework integration

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Max
2026-01-26 12:28:43 +07:00
commit 3fbbb1a93b
812 changed files with 150531 additions and 0 deletions

View File

@@ -0,0 +1,199 @@
---
name: 'step-02-frontmatter-validation'
description: 'Validate frontmatter compliance across all step files'
nextStepFile: './step-02b-path-violations.md'
targetWorkflowPath: '{workflow_folder_path}'
validationReportFile: '{workflow_folder_path}/validation-report-{datetime}.md'
frontmatterStandards: '../data/frontmatter-standards.md'
---
# Validation Step 2: Frontmatter Validation
## STEP GOAL:
To validate that EVERY step file's frontmatter follows the frontmatter standards - correct variables, proper relative paths, NO unused variables.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 DO NOT BE LAZY - VALIDATE EVERY FILE'S FRONTMATTER
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step, ensure entire file is read
- ✅ Validation does NOT stop for user input - auto-proceed through all validation steps
- ⚙️ If any instruction references a subprocess, subagent, or tool you do not have access to, you MUST still achieve the outcome in your main context thread
### Step-Specific Rules:
- 🎯 Validate EVERY step file's frontmatter using subprocess optimization - each file in its own subprocess
- 🚫 DO NOT skip any files or checks - DO NOT BE LAZY
- 💬 Subprocess must either update validation report directly OR return structured findings to parent for aggregation
- 🚪 This is validation - systematic and thorough using per-file deep analysis (Pattern 2)
## EXECUTION PROTOCOLS:
- 🎯 Load frontmatter standards first, then validate each file in its own subprocess for deep analysis
- 💾 Subprocesses must either update validation report OR return findings for parent aggregation
- 📖 Aggregate all findings into validation report before loading next step
- 🚫 DO NOT halt for user input - validation runs to completion
## CONTEXT BOUNDARIES:
- All step files in the workflow must be validated
- Load {frontmatterStandards} for validation criteria
- Check for: unused variables, non-relative paths, missing required fields, forbidden patterns
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly. Do not skip or shortcut.
### 1. Load Frontmatter Standards
Load {frontmatterStandards} to understand validation criteria.
**Key Rules:**
1. Only variables USED in the step may be in frontmatter
2. All file references MUST use `{variable}` format
3. Paths within workflow folder MUST be relative - NO `workflow_path` allowed
**Forbidden Patterns:**
- `workflow_path: '...'` - use relative paths instead
- `thisStepFile: '...'` - remove unless actually referenced in body
- `workflowFile: '...'` - remove unless actually referenced in body
- `./...` - use `./step-XX.md`
- `{workflow_path}/templates/...` - use `../template.md`
### 2. Validate EVERY Step File - Systematic Algorithm with Subprocess Optimization
**DO NOT BE LAZY - For EACH step file, launch a subprocess that:**
1. Loads that file
2. Loads {frontmatterStandards} to understand validation criteria
3. Performs all frontmatter validation checks on that file (extract variables, check usage, validate paths)
4. **EITHER** updates the validation report directly with its findings
5. **OR** returns structured findings to parent for aggregation
**SUBPROCESS ANALYSIS PATTERN:**
For each file, the subprocess performs the following deep analysis:
#### Step 2.1: Extract Frontmatter Variables
```python
# Algorithm to extract variables from frontmatter:
1. Find content between first `---` and second `---`
2. For each line, extract key before `:`
3. Skip `name`, `description`, and comment lines starting with `#`
4. Collect all variable names
```
Example frontmatter:
```yaml
---
# File References
nextStepFile: './step-02-vision.md'
outputFile: '{planning_artifacts}/product-brief-{{project_name}}.md'
workflow_path: '{project-root}/...' # ❌ FORBIDDEN
thisStepFile: './step-01-init.md' # ❌ Likely unused
---
```
Variables extracted: `nextStepFile`, `outputFile`, `workflow_path`, `thisStepFile`
#### Step 2.2: Check Each Variable Is Used
```python
# Algorithm to check variable usage:
for each variable in extracted_variables:
search_body = "{variableName}" # with curly braces
if search_body NOT found in step body (after frontmatter):
MARK_AS_UNUSED(variable)
```
**Example:**
- Variable `nextStepFile`: Search body for `{nextStepFile}` → Found in line 166 ✅
- Variable `thisStepFile`: Search body for `{thisStepFile}` → Not found ❌ VIOLATION
#### Step 2.3: Check Path Formats
For each variable containing a file path:
```python
# Algorithm to validate paths:
if path contains "{workflow_path}":
MARK_AS_VIOLATION("workflow_path is forbidden - use relative paths")
if path is to another step file:
if not path.startswith("./step-"):
MARK_AS_VIOLATION("Step-to-step paths must be ./filename.md")
if path is to parent folder template:
if not path.startswith("../"):
MARK_AS_VIOLATION("Parent folder paths must be ../filename.md")
if path contains "{project-root}" and is internal workflow reference:
MARK_AS_VIOLATION("Internal paths must be relative, not project-root")
```
**RETURN FORMAT:**
Subprocess returns file name, frontmatter compliance status, unused variables found, path violations, and overall status (PASS/FAIL). Include specific variable names and violation details for documentation.
Check ALL files systematically. Return findings for compilation and appendage to validation report.
### 3. Aggregate Findings and Document Results
Document frontmatter validation results in the validation report showing:
- Which files were checked
- Frontmatter compliance status for each file
- Unused variables found in each file
- Path violations detected
- Overall pass/fail status for each file
### 4. List All Violations
Document all violations found in the validation report, including:
- Specific files with violations
- Unused variable names and why they're unused
- Forbidden patterns detected with explanation
- Path format violations with details
- Files that passed all checks
### 5. Append to Report
Update {validationReportFile} - replace "## Frontmatter Validation *Pending...*" with actual findings.
### 6. Save Report and Auto-Proceed
**CRITICAL:** Save the validation report BEFORE loading next step.
Then immediately load, read entire file, then execute {nextStepFile}.
**Display:**
"**Frontmatter validation complete.** Proceeding to Menu Handling Validation..."
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- EVERY step file validated using subprocess optimization (Pattern 2: per-file deep analysis)
- Each subprocess validates frontmatter, checks variable usage, validates paths
- Structured findings returned to parent OR report updated directly by subprocesses
- All violations documented with specific variable names
- Findings aggregated into validation report
- Report saved before proceeding
- Next validation step loaded
### ❌ SYSTEM FAILURE:
- Not validating every file using subprocess optimization
- Not systematically checking each variable for usage in subprocess
- Missing forbidden pattern detection
- Not documenting violations with specific details
- Not returning structured findings OR updating report from subprocess
- Not saving report before proceeding
**Master Rule:** Validation is systematic and thorough using subprocess optimization. DO NOT BE LAZY. For EACH file, launch a subprocess that validates frontmatter, checks variable usage, validates paths, and returns findings. Auto-proceed through all validation steps.