Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Validate that input meets prerequisites based on the user's saved standards for the project type. Use at the start of any quality pipeline to ensure the user has provided sufficient requirements.
.claude/skills/aiskillstore-validate-requirements/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 5% | 0% |
Ensures the user's input (requirements, description, source material) meets the prerequisites defined in their standards for this project type. This is the first gate in the quality pipeline.
Based on the user's saved standards for the project type, verify:
Access standards through StandardsRepository:
javascriptconst standards = standardsRepository.getStandards(context.projectType) if (standards && standards.validationRules) { // Check input against their validation rules checkAgainstRules(input, standards.validationRules) } else { // No custom standards yet, use general validation performGeneralValidation(input) }
See .claude/lib/standards-repository.md for interface details.
Return a structured validation result:
json{ "status": "valid" or "invalid", "issues": [ "list of specific problems found", "e.g., 'Missing example code to refactor'", "e.g., 'Unclear what success looks like'" ], "validationDetails": { "clarity": "pass" or "needs_clarification", "completeness": "pass" or "incomplete", "contextSufficient": "pass" or "needs_more_context" }, "recommendation": "proceed_to_next_step" or "ask_user_to_clarify_X", "summary": "Brief description of validation result" }
✓ Status is "valid" ✓ No critical issues found ✓ Input aligns with their standards ✓ Enough information to proceed to generation
Project Type: React Components
User Input: "Create a dropdown component"
Validation Process:
json { "status": "invalid", "issues": [ "Need more detail on component purpose (e.g., where will it be used?)", "Should specify what props the dropdown needs", "Should describe dropdown behavior (open/close, keyboard nav, etc.)" ], "recommendation": "Ask user to provide more detail before generating" }
User's Updated Input: "Create a searchable dropdown component for selecting team members. It should have keyboard navigation (arrow keys, enter to select). Props: options (array), onSelect (callback), placeholder (string)."
Validation Result:
json{ "status": "valid", "issues": [], "summary": "Requirements are clear, specific, and complete" }
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | fail→fail | 12,188 | 8,003 | -34% | 1 | 1 | 0% | 2,071 | 2,352 | +14% | 0 | 0 | — |
case-01 | fail→pass | 10,322 | 5,528 | -46% | 1 | 1 | 0% | 1,976 | 2,074 | +5% | 0 | 0 | — |
case-02 | fail→fail | 9,724 | 6,958 | -28% | 1 | 1 | 0% | 1,808 | 2,312 | +28% | 0 | 0 | — |
case-03 | fail→pass | 8,885 | 8,680 | -2% | 1 | 1 | 0% | 1,611 | 2,508 | +56% | 0 | 0 | — |
case-04 | fail→pass | 13,281 | 5,290 | -60% | 1 | 1 | 0% | 2,248 | 1,946 | -13% | 0 | 0 | — |
case-05 | fail→pass | 9,679 | 5,024 | -48% | 1 | 1 | 0% | 1,938 | 1,879 | -3% | 0 | 0 | — |
case-06 | fail→pass | 9,766 | 4,124 | -58% | 1 | 1 | 0% | 1,623 | 1,698 | +5% | 0 | 0 | — |
case-07 | pass→pass | 10,173 | 8,461 | -17% | 1 | 1 | 0% | 1,725 | 2,328 | +35% | 0 | 0 | — |
case-08 | fail→pass | 12,832 | 7,303 | -43% | 1 | 1 | 0% | 2,187 | 2,257 | +3% | 0 | 0 | — |
case-09 | fail→pass | 13,524 | 5,187 | -62% | 1 | 1 | 0% | 2,317 | 2,033 | -12% | 0 | 0 | — |
case-10 | fail→pass | 7,854 | 5,612 | -29% | 1 | 1 | 0% | 1,333 | 1,980 | +49% | 0 | 0 | — |
case-11 | fail→pass | 8,567 | 5,304 | -38% | 1 | 1 | 0% | 1,496 | 1,948 | +30% | 0 | 0 | — |
case-12 | fail→fail | 10,794 | 9,938 | -8% | 1 | 1 | 0% | 2,039 | 2,757 | +35% | 0 | 0 | — |
case-13 | fail→fail | 12,107 | 8,568 | -29% | 1 | 1 | 0% | 2,060 | 2,461 | +19% | 0 | 0 | — |
case-15 | fail→pass | 8,101 | 6,030 | -26% | 1 | 1 | 0% | 1,435 | 2,041 | +42% | 0 | 0 | — |
case-16 | fail→pass | 13,817 | 4,180 | -70% | 1 | 1 | 0% | 2,368 | 1,699 | -28% | 0 | 0 | — |
case-17 | fail→fail | 11,003 | 6,928 | -37% | 1 | 1 | 0% | 1,767 | 2,080 | +18% | 0 | 0 | — |
case-18 | fail→pass | 11,190 | 6,999 | -37% | 1 | 1 | 0% | 1,692 | 2,162 | +28% | 0 | 0 | — |
case-19 | fail→pass | 11,155 | 4,792 | -57% | 1 | 1 | 0% | 1,918 | 1,874 | -2% | 0 | 0 | — |
case-20 | pass→pass | 12,168 | 12,273 | +1% | 1 | 1 | 0% | 2,237 | 3,370 | +51% | 0 | 0 | — |
case-21 | pass→fail | 10,854 | 4,298 | -60% | 1 | 1 | 0% | 1,830 | 1,853 | +1% | 0 | 0 | — |
case-22 | pass→fail | 15,010 | 9,194 | -39% | 1 | 1 | 0% | 3,221 | 2,610 | -19% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.