.cursor/skills/qa-integration-check/SKILL.md
Verify cross-file integrations. Checks CSS class references, imports/exports, component usage, and asset paths. Returns JSON with validation results.
npx skillsauth add astro44/Autonom8-Agents qa-integration-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.
Verify cross-file integrations: imports, exports, CSS class references, component usage.
{
"project_dir": "/path/to/project",
"ticket_id": "TICKET-XXX",
"files_created": [
{"path": "src/components/Foo.js", "type": "component"},
{"path": "src/styles/foo.css", "type": "stylesheet"}
],
"scope": "ticket|project"
}
Verify all CSS classes used in JS/HTML exist in stylesheets:
For each file in files_created where type == "component":
Extract class names from className="..." or class="..."
└── For each class:
└── Search *.css files for .classname {
FOUND → Valid
NOT_FOUND → Error: "orphan_class"
Verify imports resolve to actual exports:
For each import in JS files:
└── import { Foo } from './Bar'
└── Check if Bar.js exports Foo
YES → Valid
NO → Error: "broken_import"
Verify component references match actual components:
For each <ComponentName> in JSX:
└── Check if ComponentName is imported
YES → Valid
NO → Error: "undefined_component"
Verify image/font/asset paths exist:
For each src="..." or url(...):
└── Resolve path relative to project
EXISTS → Valid
NOT_EXISTS → Error: "missing_asset"
Verify JavaScript initialization preserves static HTML content:
For each HTML file with data-* attributes:
└── Extract all [data-*] selectors
└── Find JS files that querySelector these selectors
└── Check for destructive patterns BEFORE the query:
- container.innerHTML = (destroys content)
- this.element.innerHTML = (destroys content)
FOUND → Error: "content_destroyed"
NOT_FOUND → Valid
Verify map/chart containers have explicit height:
For each [data-map-container], [data-chart-container], .mapbox-container:
└── Check CSS for explicit height (px, em, rem, vh)
FOUND → Valid
NOT_FOUND (only height: 100%) → Error: "missing_dimension"
Compare element count before/after initialization:
Before init:
count = document.querySelectorAll('[data-*]').length
After init:
newCount = document.querySelectorAll('[data-*]').length
newCount >= count?
YES → Valid (preservation)
NO → Error: "elements_destroyed"
{
"skill": "qa-integration-check",
"status": "pass|fail",
"checks": {
"css_classes": {
"passed": true,
"total": 15,
"orphans": []
},
"imports": {
"passed": true,
"total": 8,
"broken": []
},
"components": {
"passed": true,
"total": 5,
"undefined": []
},
"assets": {
"passed": false,
"total": 3,
"missing": [
{"path": "src/assets/logo.png", "referenced_in": "src/components/Header.js"}
]
},
"dom_preservation": {
"passed": true,
"data_attributes_found": 12,
"violations": []
},
"container_dimensions": {
"passed": true,
"containers_checked": 3,
"missing_height": []
},
"dom_snapshot": {
"passed": true,
"before_count": 24,
"after_count": 26,
"elements_destroyed": 0
}
},
"summary": {
"total_checks": 31,
"passed": 30,
"failed": 1
},
"errors": [
{
"type": "missing_asset",
"file": "src/components/Header.js",
"line": 12,
"message": "Asset not found: src/assets/logo.png"
}
],
"warnings": [],
"next_action": "proceed|fix"
}
| Error Type | Severity | Blocks Deploy? | |------------|----------|----------------| | broken_import | CRITICAL | YES | | undefined_component | CRITICAL | YES | | content_destroyed | CRITICAL | YES | | elements_destroyed | CRITICAL | YES | | orphan_class | HIGH | YES | | missing_asset | HIGH | YES | | missing_dimension | HIGH | YES | | unused_export | LOW | NO | | unused_class | LOW | NO |
Check ticket files only:
{
"project_dir": "/projects/oxygen_site",
"ticket_id": "TICKET-OXY-001",
"files_created": [
{"path": "src/components/ImpactDashboard.js", "type": "component"},
{"path": "src/styles/impact-dashboard.css", "type": "stylesheet"}
],
"scope": "ticket"
}
Full project scan:
{
"project_dir": "/projects/oxygen_site",
"ticket_id": "TICKET-OXY-001",
"scope": "project"
}
React component with assets:
{
"project_dir": "/projects/react-app",
"ticket_id": "TICKET-APP-005",
"files_created": [
{"path": "src/components/Hero.jsx", "type": "component"},
{"path": "src/styles/Hero.module.css", "type": "stylesheet"},
{"path": "src/assets/hero-bg.webp", "type": "asset"}
],
"scope": "ticket"
}
Any CRITICAL/HIGH errors?
YES → status: "fail", next_action: "fix"
NO → status: "pass", next_action: "proceed"
development
Scores proposal complexity against codebase surface. Uses proposal text analysis and readiness stats to determine decomposition tier and agent count.
testing
Fast filesystem readiness scan — counts docs, source files, manifests, platform signals. Produces initial ReadinessReport for agent spawning decisions.
testing
Merges bookend agent reports into revised readiness, complexity, and decomposition plan. Produces the final evidence-backed assessment consumed by sprint-architect-agent.
development
Rigorously reasons about definitions, proofs, and computations in algebra, analysis, discrete math, probability, linear algebra, and applied math. Verifies derivations, spots invalid steps, and states assumptions clearly. Use when solving or proving math problems, reviewing mathematical arguments, modeling with equations, interpreting statistics, or when the user mentions proofs, lemmas, theorems, integrals, series, matrices, optimization, or numerical methods.