From ai-scrum
Validates Acceptance Criteria quality (specific, testable, user-focused) and verifies AC fulfillment after task completion. Used by dor-validator (quality check) and sprint-executor (verification before task close).
How this skill is triggered — by the user, by Claude, or both
Slash command
/ai-scrum:ac-validatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Двойная роль:
Двойная роль:
Каждое AC должно быть:
For each AC:
def validate_ac_quality(ac_text):
checks = {
'specific': not contains_vague_terms(ac_text),
'testable': has_clear_pass_fail(ac_text),
'user_focused': not is_implementation_detail(ac_text),
'measurable_if_perf': has_threshold_if_perf(ac_text),
}
return checks
Vague terms flagged:
Implementation details flagged:
For each AC: PASS/FAIL with specific issues.
## AC Quality Check for T-2
AC 1: "User can register with email"
✓ Specific
✓ Testable
✓ User-focused
Verdict: PASS
AC 2: "System should be fast"
✗ Specific - vague term "fast"
✗ Testable - no pass/fail criteria
Verdict: FAIL
Suggestion: Specify threshold like "Login completes in <500ms"
AC 3: "Use Redux for state management"
✗ User-focused - implementation detail
Verdict: FAIL
Suggestion: Reformulate as observable behavior, e.g., "User changes persist across navigation"
Запускается после executor говорит task complete но перед /sprint:checkin "task done".
For each AC of the task:
What's expected based on test_approach:
If tests can be run:
# Run only relevant tests for this task
pytest tests/ -k "test_user_registration"
# or
vitest run --grep "user registration"
Check exit code и output.
Read test files. For each test asserting AC:
This is heuristic check (LLM-based) - flag potential mismatches.
## AC Fulfillment for T-2
AC 1: "User can register with email"
Expected verification: test_user_registration_email
Status: ✓ PASS
Evidence: tests/test_auth.py::test_user_registration_email - PASS
AC 2: "Email format validated"
Expected verification: test_email_format_validation
Status: ✓ PASS
Evidence: tests/test_auth.py::test_email_format_validation - PASS
AC 3: "Password hashed with bcrypt"
Expected verification: test_password_hashing
Status: ✗ FAIL
Issue: Test exists but mocks the hash function - doesn't verify actual bcrypt usage
Suggestion: Test should call real password.set_password() and check
the resulting hash starts with $2b$ (bcrypt prefix)
If any FAIL - task NOT done, executor must address.
AC might be:
Verification:
AC might be:
Verification:
AC like "no behavior change":
Used by:
Per task, when AC validated:
.sprints/active/ac-validation-T-{N}.md with detailed results.
npx claudepluginhub shakhovskiya-create/shakhoff-claude-marketplace --plugin ai-scrumGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.