system-integration-validator

Validates system integration before deployment. Use when checking ports, database connections, frontend-backend APIs, or debugging blocked/stuck workflows. Detects dead ends, bottlenecks, circular dependencies.

$ Installieren

git clone https://github.com/BarisSozen/claude /tmp/claude && cp -r /tmp/claude/.claude/skills/system-integration-validator ~/.claude/skills/claude

// tip: Run this command in your terminal to install the skill


name: system-integration-validator description: Validates system integration before deployment. Use when checking ports, database connections, frontend-backend APIs, or debugging blocked/stuck workflows. Detects dead ends, bottlenecks, circular dependencies.

System Integration Validator

Validates system integration before deployment.

When to Use

  • Pre-deployment validation
  • Checking port availability
  • Verifying database connections
  • Debugging stuck workflows
  • Detecting dead ends or circular dependencies

Workflow

Step 1: Check Ports

Verify all required ports are free.

Step 2: Verify Databases

Test PostgreSQL and Redis connections.

Step 3: Validate API Contracts

Ensure frontend ↔ backend match.

Step 4: Analyze Data Flow

Detect dead ends, orphan inputs, bottlenecks.


Pre-Deployment Checklist

  1. Ports - All required ports free
  2. Database - Connection, pool, migrations OK
  3. API Contract - Frontend ↔ Backend match
  4. Data Flow - No dead ends or loops

Port Check

for port in 3000 3001 5432 6379 8080; do
  lsof -i :$port > /dev/null 2>&1 && echo "⚠️ $port IN USE" || echo "✅ $port free"
done

Database Check

pg_isready -h localhost -p 5432 && echo "✅ PostgreSQL OK"
redis-cli ping && echo "✅ Redis OK"

Flow Analysis

Look for:

  • Dead ends: Output never consumed
  • Orphan inputs: Input never provided
  • Bottlenecks: High in-degree (>3 inputs)
  • Circular deps: A → B → A

Common Blocks

// ❌ No timeout
await fetch(url)

// ✓ With timeout
const ctrl = new AbortController()
setTimeout(() => ctrl.abort(), 5000)
await fetch(url, { signal: ctrl.signal })