From qa
Generates project-specific QA artifacts into .claude/ directory. Takes qa-scanner report + templates and produces customized skills, agents, commands, and qa-config.json. Respects selected test types — only generates artifacts for types the user chose. Use during /qa:init or /qa:sync rebuild.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qa:qa-scaffolderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate the complete QA infrastructure for a project's `.claude/` directory using the scanner report and template files.
Generate the complete QA infrastructure for a project's .claude/ directory using the scanner report and template files.
Called by /qa:init after the qa-scanner produces its report. Receives:
Read template files from the plugin's templates/ directory based on what needs to be generated.
Always read (base templates):
templates/skills/use-case-identifier.mdtemplates/skills/scenario-writer.mdtemplates/skills/coverage-analyzer.mdtemplates/skills/test-reviewer.mdtemplates/agents/test-runner.mdtemplates/agents/coverage-checker.mdtemplates/agents/test-reviewer.mdtemplates/commands/test.mdtemplates/commands/test-coverage.mdtemplates/commands/test-review.mdRead per selected test type:
templates/skills/test-writer.mdtemplates/skills/integration-test-writer.mdtemplates/skills/e2e-test-writer.mdtemplates/skills/api-test-writer.mdFor each template, substitute project-specific details:
Variables to replace:
{{language}} — detected language (e.g., "kotlin"){{framework}} — detected framework (e.g., "spring"){{testRunner}} — detected test runner (e.g., "junit"){{testCommand}} — detected unit test command (e.g., "gradle test"){{integrationTestCommand}} — integration test command (e.g., "gradle integrationTest"){{e2eTestCommand}} — e2e test command (e.g., "npx playwright test"){{apiTestCommand}} — API test command (e.g., "gradle test --tests '*ApiTest'"){{e2eRunner}} — e2e framework (e.g., "playwright", "cypress", "selenium"){{coverageTool}} — detected coverage tool (e.g., "jacoco"){{packageManager}} — detected package manager (e.g., "gradle"){{testLocation}} — test location convention (e.g., "src/test/"){{namingPattern}} — test naming pattern (e.g., "*Test.kt"){{modules}} — list of project modules from scanner{{existingPatterns}} — existing test patterns (if any)Beyond simple substitution:
{
"stack": {
"language": "{{language}}",
"framework": "{{framework}}",
"testRunner": "{{testRunner}}",
"coverageTool": "{{coverageTool}}",
"packageManager": "{{packageManager}}"
},
"testTypes": {
"unit": {
"enabled": true,
"runner": "{{testRunner}}",
"command": "{{testCommand}}"
},
"integration": {
"enabled": false,
"runner": null,
"command": null
},
"e2e": {
"enabled": false,
"runner": null,
"command": null
},
"api": {
"enabled": false,
"runner": null,
"command": null
}
},
"emphasis": {
"unit": "standard",
"integration": "standard",
"e2e": "standard",
"useCases": "standard"
},
"conventions": {
"testLocation": "{{testLocation}}",
"namingPattern": "{{namingPattern}}",
"fixturePattern": "{{fixturePattern}}"
},
"coverage": {
"tool": "{{coverageTool}}",
"thresholds": { "lines": 80, "branches": 70 }
},
"generatedAt": "{{timestamp}}",
"pluginVersion": "0.1.0"
}
Set enabled: true and populate runner + command only for test types the user selected in init Step 4.
Write all generated files to the project's .claude/ directory:
Always written (base):
.claude/qa-config.json.claude/skills/qa-use-case-identifier/SKILL.md.claude/skills/qa-scenario-writer/SKILL.md.claude/skills/qa-coverage-analyzer/SKILL.md.claude/skills/qa-test-reviewer/SKILL.md.claude/agents/qa-test-runner/AGENT.md.claude/agents/qa-coverage-checker/AGENT.md.claude/agents/qa-test-reviewer/AGENT.md.claude/commands/test/COMMAND.md.claude/commands/test-coverage/COMMAND.md.claude/commands/test-review/COMMAND.mdWritten per selected test type:
12. Unit → .claude/skills/qa-test-writer/SKILL.md
13. Integration → .claude/skills/qa-integration-test-writer/SKILL.md
14. E2E → .claude/skills/qa-e2e-test-writer/SKILL.md
15. API → .claude/skills/qa-api-test-writer/SKILL.md
Run verify-setup.js --project-root <path> to confirm all artifacts are valid.
If validation fails → fix the failing artifacts before completing.
.claude/skills/qa-* files already exist, ask the user before overwriting.npx claudepluginhub kokoszsz/qa-plugin --plugin qaProvides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.