.claude/skills/preflight-check/SKILL.md
Performs comprehensive pre-flight validation before flow-feature-build begins. Acts as a safety gate, catching common issues early: validates context files, checks agent availability, verifies CLAUDE.md completeness, checks git status, validates dependencies, and confirms test framework setup. Automatically triggered at the start of flow-feature-build.
npx skillsauth add efiadm/informatik-ai-studio preflight-checkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Performs comprehensive pre-flight validation before flow-feature-build begins. This skill acts as a safety gate, catching common issues early and preventing wasted effort on doomed-to-fail implementations.
This skill is automatically invoked at the start of flow-feature-build (before Phase 1). It can also be manually invoked to check project health:
"Run preflight-check before starting implementation"
"Use preflight-check to validate project setup"
Check Feature Context File
context_session_feature_{NAME}.md existsResult:
Validate Context Structure
Result:
Read Feature Requirements
Verify Agent Files Exist
.claude/agents/{agent-name}.md exists for each required agentResult:
File Existence
CLAUDE.md exists at project rootRequired Sections
[stack] - Tech stack definition[methodology] - Development workflow[core_team] - Core agents list[code_standards] - Coding standardsResult:
Methodology Validation
[methodology].workflow is setResult:
Stack Completeness
Result:
Execute only if modular architecture is detected.
Detect Modular Architecture (JSON Index Preferred)
IS_MODULAR = false
USE_JSON_INDEX = false
MODULAR_INDEX = null
# Check for machine-readable modular index first (preferred)
IF .claude/cache/modular_index.json exists:
MODULAR_INDEX = JSON.parse(".claude/cache/modular_index.json")
IS_MODULAR = true
USE_JSON_INDEX = true
Log: "Using modular_index.json for validation"
ELSE IF .claude/rules/ directory exists AND contains .md files:
IS_MODULAR = true
USE_JSON_INDEX = false
Log: "Falling back to directory scan (modular_index.json not found)"
ELSE IF CLAUDE.md contains [modular_index] section:
IS_MODULAR = true
USE_JSON_INDEX = false
If IS_MODULAR == true, validate modular structure:
a) Required Rules Existence (JSON Index Preferred):
MISSING_RULES = []
IF USE_JSON_INDEX:
# Use JSON index for validation (more reliable)
For each item in MODULAR_INDEX.auto_loaded WHERE item.required == true:
IF file item.file does not exist:
MISSING_RULES.append(item.file)
ELSE:
# Fallback: hardcoded list
REQUIRED_RULES = [
".claude/rules/code-standards.md",
".claude/rules/testing-policy.md",
".claude/rules/security-policy.md",
".claude/rules/git-workflow.md",
".claude/rules/agent-coordination.md"
]
For each rule in REQUIRED_RULES:
IF file does not exist:
MISSING_RULES.append(rule)
Result:
b) Reference Integrity Check (JSON Index Preferred):
BROKEN_REFS = []
ORPHAN_FILES = []
IF USE_JSON_INDEX:
# Validate all files in JSON index exist
ALL_INDEX_FILES = [
...MODULAR_INDEX.auto_loaded.map(i => i.file),
...MODULAR_INDEX.path_specific.map(i => i.file),
...MODULAR_INDEX.on_demand.map(i => i.file)
]
For each file_path in ALL_INDEX_FILES:
IF file does not exist:
BROKEN_REFS.append(file_path)
# Check for orphan files not in JSON index
ALL_ACTUAL_FILES = scan(.claude/rules/**/*.md, .claude/docs/**/*.md)
For each actual_file in ALL_ACTUAL_FILES:
IF actual_file not in ALL_INDEX_FILES:
ORPHAN_FILES.append(actual_file)
ELSE:
# Fallback: parse from CLAUDE.md
Parse CLAUDE.md for [modular_index] section
For each file referenced in modular_index:
IF file does not exist:
BROKEN_REFS.append(file)
# Check for orphan files
For each .md file in .claude/rules/ and .claude/docs/:
IF file not in modular_index:
ORPHAN_FILES.append(file)
Result:
c) Path-Specific Rules Validation (JSON Index Preferred):
INVALID_FRONTMATTER = []
IF USE_JSON_INDEX:
# Validate path patterns from JSON index
For each item in MODULAR_INDEX.path_specific:
IF item.paths is empty or undefined:
INVALID_FRONTMATTER.append({file: item.file, error: "missing paths in index"})
ELSE:
For each path in item.paths:
IF not valid_glob_pattern(path):
INVALID_FRONTMATTER.append({file: item.file, error: "invalid pattern: " + path})
ELSE:
# Fallback: parse YAML frontmatter from files
For each file in .claude/rules/domain/:
TRY:
Parse YAML frontmatter
IF 'paths' not in frontmatter:
INVALID_FRONTMATTER.append({file: "missing paths"})
ELSE:
For each path in frontmatter.paths:
IF not valid_glob_pattern(path):
INVALID_FRONTMATTER.append({file: "invalid pattern: " + path})
CATCH:
INVALID_FRONTMATTER.append({file: "invalid YAML"})
Result:
d) Size Compliance (JSON Index Preferred):
SIZE_WARNINGS = []
IF USE_JSON_INDEX:
# Use size limits from JSON index
LIMITS = MODULAR_INDEX.validation.size_limits
# Core CLAUDE.md
core_lines = count_lines(CLAUDE.md)
IF core_lines > LIMITS.core_claude_md:
SIZE_WARNINGS.append("CLAUDE.md: {core_lines} lines (target: {LIMITS.core_claude_md})")
# Global rule files
For each item in MODULAR_INDEX.auto_loaded:
lines = count_lines(item.file)
IF lines > LIMITS.global_rules:
SIZE_WARNINGS.append("{item.file}: {lines} lines (target: {LIMITS.global_rules})")
# Path-specific rule files
For each item in MODULAR_INDEX.path_specific:
lines = count_lines(item.file)
IF lines > LIMITS.path_rules:
SIZE_WARNINGS.append("{item.file}: {lines} lines (target: {LIMITS.path_rules})")
ELSE:
# Fallback: hardcoded limits
core_lines = count_lines(CLAUDE.md)
IF core_lines > 300:
SIZE_WARNINGS.append("CLAUDE.md: {core_lines} lines (target: 100-300)")
For each file in .claude/rules/:
lines = count_lines(file)
IF lines > 150:
SIZE_WARNINGS.append("{file}: {lines} lines (target: 50-150)")
Result:
e) Checksum Validation (JSON Index Only):
CHECKSUM_MISMATCHES = []
IF USE_JSON_INDEX:
For each item in [...MODULAR_INDEX.auto_loaded, ...MODULAR_INDEX.path_specific]:
IF item.checksum exists AND file exists:
current_checksum = sha256(read_file(item.file))
IF current_checksum != item.checksum:
CHECKSUM_MISMATCHES.append(item.file)
IF CHECKSUM_MISMATCHES not empty:
Log WARNING: "Files modified since modular_index.json was generated:"
For each file in CHECKSUM_MISMATCHES:
Log: " - {file}"
Log: "Consider running flow-md-architect to regenerate index"
Result:
Modular Validation Summary:
IF BROKEN_REFS not empty OR INVALID_FRONTMATTER not empty:
MODULAR_STATUS = "FAIL"
ELSE IF MISSING_RULES not empty OR ORPHAN_FILES not empty OR SIZE_WARNINGS not empty OR CHECKSUM_MISMATCHES not empty:
MODULAR_STATUS = "WARNING"
ELSE:
MODULAR_STATUS = "PASS"
Log: "Modular validation: {MODULAR_STATUS} (source: {USE_JSON_INDEX ? 'modular_index.json' : 'directory scan'})"
Working Tree Status
git status --porcelain
Result:
Branch Status
Result:
Worktree Conflicts
.trees/feature-{NAME} already existsResult:
Required Tools
Command:
which git && which python3 && which npm && which gh
Result:
Project Dependencies
package-lock.json or requirements.txt existsnode_modules/ existsResult:
Auto-Fix (v1.1 Enhancement):
/dependency-installer skillTest Configuration
jest.config.js, vitest.config.ts, playwright.config.tspytest.ini, tox.iniResult:
Test Directory
tests/, __tests__/, src/**/*.test.tstests/, test_*.pyResult:
Invoke Pre-Flight Script
python3 .claude/skills/preflight-check/scripts/preflight.py \
--feature "{FEATURE_NAME}" \
--output ".claude/logs/preflight_report.json"
Aggregate Results
Present Report to User
Format:
================================
PRE-FLIGHT CHECK REPORT
================================
Feature: user_authentication
OVERALL STATUS: GO WITH WARNINGS
✅ PASS (4):
- Context file exists and is valid
- All required agents available
- Git working tree is clean
- Required CLI tools installed
⚠️ WARNING (2):
- Methodology workflow not set (defaulting to Standard)
- Dependencies may not be installed
❌ FAIL (0):
(none)
RECOMMENDATION: Proceed with caution. Address warnings if possible.
User Decision
The pre-flight check is invoked before Phase 1 of flow-feature-build:
## Phase 0: Pre-Flight Check (NEW in v3.1)
1. Invoke preflight-check skill
2. Analyze results
3. Decision:
- GO → Proceed to Phase 0.5
- GO WITH WARNINGS → Ask user, then proceed or abort
- NO-GO → Block, show errors, exit
Feature: Email notification service
Checks:
context_session_feature_email_notifications.md existsResult: GO - Proceed immediately
Feature: User dashboard
Checks:
Result: GO WITH WARNINGS - Ask user to confirm
User Prompt:
Pre-flight check found 3 warnings:
1. Methodology workflow not set (will use Standard)
2. Uncommitted changes in working tree
3. No test directory found
Proceed despite warnings? (y/n)
Feature: Authentication system
Checks:
Result: NO-GO - Block execution
Error Report:
❌ PRE-FLIGHT CHECK FAILED
Critical errors detected:
1. Context file missing
Fix: Run "flow-plan feature authentication_system"
2. Agent not found: database-architect
Fix: Invoke @agent-librarian to draft agent
3. Merge conflicts detected
Fix: Resolve conflicts with "git merge --continue" or "git merge --abort"
4. CLI tool missing: gh
Fix: Install with "npm install -g @github/cli"
Cannot proceed until these errors are resolved.
Current Version: 1.3.0 Last Updated: 2026-01-17 Status: Production
.claude/cache/modular_index.json over directory scan/dependency-installer skill for auto-fixing missing dependenciesdevelopment
Comprehensive frontend development skill for building modern, performant web applications using ReactJS, NextJS, TypeScript, Tailwind CSS. Includes component scaffolding, performance optimization, bundle analysis, and UI best practices. Use when developing frontend features, optimizing performance, implementing UI/UX designs, managing state, or reviewing frontend code.
tools
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup, infrastructure as code, deployment automation, and monitoring. Use when setting up pipelines, deploying applications, managing infrastructure, implementing monitoring, or optimizing deployment processes.
development
World-class data science skill for statistical modeling, experimentation, causal inference, and advanced analytics. Expertise in Python (NumPy, Pandas, Scikit-learn), R, SQL, statistical methods, A/B testing, time series, and business intelligence. Includes experiment design, feature engineering, model evaluation, and stakeholder communication. Use when designing experiments, building predictive models, performing causal analysis, or driving data-driven decisions.
development
World-class data engineering skill for building scalable data pipelines, ETL/ELT systems, and data infrastructure. Expertise in Python, SQL, Spark, Airflow, dbt, Kafka, and modern data stack. Includes data modeling, pipeline orchestration, data quality, and DataOps. Use when designing data architectures, building data pipelines, optimizing data workflows, or implementing data governance.