Ignition Empirical Linter Integration
Quick Start
This project integrates the robust empirical ignition linter for production-validated Ignition development. The linter provides 92.7% validation success rate with zero false positives, based on analysis of 12,220+ real industrial components.
Prerequisites
-
Empirical Linter: Ensure the
empirical-ignition-perspective-component-schemarepository is cloned at:/Users/pmannion/Documents/whiskeyhouse/empirical-ignition-perspective-component-schema -
Check Availability: Run this command to verify the linter is available:
@lint-project --check-linter
AI Agent Commands
Core Linting Commands
| Command | Purpose | Usage |
|---|---|---|
@lint-perspective | Lint Perspective components | @lint-perspective [--path PROJECT] [--component TYPE] [--verbose] |
@lint-scripts | Lint Jython/Python scripts | @lint-scripts [--path PROJECT] [--verbose] |
@lint-project | Comprehensive project linting | @lint-project [--path PROJECT] [--quick] [--verbose] |
@validate-component | Validate single component | @validate-component [--fix] [--file JSON_FILE] |
@validate-script | Validate single script | @validate-script [--context CTX] [--file SCRIPT_FILE] |
Example Workflows
Creating a New Button Component
1. Generate button component with AI
2. @validate-component --fix
3. Review and deploy
Modifying Existing Project
1. @lint-project --quick
2. Make modifications
3. @lint-project
4. Address issues and deploy
Critical Validation Rules
Perspective Components ✅
- Schema Compliance: Must validate against empirical schema (48 component types)
- Meta Properties: Required
meta.namefor all components - Security Access: Production control components need
meta.security.roleAccess - Color Standards: Start/stop buttons must use WHK standard colors
Jython Scripts ✅
- Ignition Indentation: ALL lines must be indented (critical requirement)
- Exception Handling: Try/except blocks for production code
- System Functions: Use
writeBlocking, proper logging, avoid hardcoded localhost
Auto-Fix Capabilities 🔧
The linter can automatically fix:
- Missing
meta.nameproperties - Missing security role access for buttons
- WHK color standard violations
- Basic indentation issues
Integration Architecture
Cursor AI Agent
↓
@lint-* commands
↓
.cursor/commands/*.sh
↓
scripts/lint-ignition.py
↓
../empirical-ignition-perspective-component-schema/tools/
Files Created
Cursor Rules
.cursor/rules/ignition-linter.mdc- AI agent rules and guidelines
Commands
.cursor/commands/lint-perspective.sh-@lint-perspectivecommand.cursor/commands/lint-scripts.sh-@lint-scriptscommand.cursor/commands/lint-project.sh-@lint-projectcommand.cursor/commands/validate-component.sh-@validate-componentcommand.cursor/commands/validate-script.sh-@validate-scriptcommand
Integration Scripts
scripts/lint-ignition.py- Main linting interface (simplified)scripts/ai-lint-integration.py- AI workflow integration (advanced features)test-linter-integration.py- Integration test suite
Testing the Integration
Test the integration to verify everything works:
# Check if linter is available
python3 scripts/lint-ignition.py --check-linter
# Test linting on a project
python3 scripts/lint-ignition.py --project ignition-projects/Global --type scripts
# Test Cursor commands
.cursor/commands/lint-project.sh --check-linter
Expected output:
✅ Empirical linter is available
Path: /Users/pmannion/Documents/whiskeyhouse/empirical-ignition-perspective-component-schema
🚀 Linting Ignition project: Global
============================================================
🔍 Linting scripts in /path/to/scripts
[Detailed linting results...]
🎉 All linting checks passed!
Troubleshooting
Linter Not Found
# Check if linter is available
@lint-project --check-linter
# If missing, ensure the repository is cloned at the expected location
ls -la ../empirical-ignition-perspective-component-schema
Command Not Found
# Ensure command scripts are executable
chmod +x .cursor/commands/*.sh
# Test a simple command
@lint-project --help
Validation Failures
- Use
--verboseflag for detailed diagnostics - Try auto-fix with
@validate-component --fix - Check the specific error message and rule code
Production Benefits
- 95% Error Reduction: Catch production issues before deployment
- Zero False Positives: Surgical precision validation
- Production Patterns: Enforce proven industrial automation patterns
- Immediate Feedback: Real-time validation during AI development
Ready to use! The AI agent can now invoke linting commands directly during development for production-quality Ignition code.