322 lines
8.6 KiB
Markdown
322 lines
8.6 KiB
Markdown
---
|
|
name: dor-validator
|
|
description: Validates user stories against Definition of Ready checklist to ensure they are ready for development
|
|
allowed-tools: mcp__atlassian__*
|
|
mcpServers:
|
|
- atlassian
|
|
---
|
|
|
|
# Definition of Ready Validator Skill
|
|
|
|
This skill validates user stories against a comprehensive Definition of Ready (DoR) checklist to ensure stories are fully prepared for AI-assisted development.
|
|
|
|
## When This Skill is Invoked
|
|
|
|
Claude will automatically use this skill when you mention:
|
|
- "validate story readiness"
|
|
- "check definition of ready"
|
|
- "is this story ready"
|
|
- "DoR validation"
|
|
- "story ready for development"
|
|
|
|
## Capabilities
|
|
|
|
### 1. DoR Checklist Validation
|
|
Evaluate stories against standard DoR criteria:
|
|
|
|
| Category | Criteria | Weight |
|
|
|----------|----------|--------|
|
|
| Clarity | Story is understandable by any team member | 15% |
|
|
| Value | Business value is clearly stated | 15% |
|
|
| Acceptance Criteria | AC are testable and complete | 20% |
|
|
| Scope | Story is appropriately sized (1-3 days) | 15% |
|
|
| Dependencies | Dependencies are identified and resolved | 10% |
|
|
| Technical Feasibility | Implementation approach is clear | 15% |
|
|
| AI-Readiness | Story is suitable for AI-assisted development | 10% |
|
|
|
|
### 2. Validation Scoring
|
|
Generate a readiness score with actionable feedback.
|
|
|
|
## How to Use This Skill
|
|
|
|
### Step 1: Fetch Story (if not provided)
|
|
|
|
**Use Atlassian MCP to get story details:**
|
|
```
|
|
mcp__atlassian__jira_get_issue(
|
|
issueKey="PROJ-123",
|
|
fields=["summary", "description", "acceptanceCriteria", "storyPoints", "labels", "components", "status", "priority"]
|
|
)
|
|
```
|
|
|
|
### Step 2: Validate Each DoR Criterion
|
|
|
|
#### Criterion 1: Clarity (15%)
|
|
**Check:**
|
|
- [ ] Story has a clear, descriptive title
|
|
- [ ] Description explains WHAT is needed
|
|
- [ ] User persona is specific (not generic "user")
|
|
- [ ] No jargon or ambiguous terms
|
|
- [ ] Any acronyms are defined
|
|
|
|
**Scoring:**
|
|
- 5/5: Perfectly clear, any team member can understand
|
|
- 4/5: Minor clarifications might help
|
|
- 3/5: Some ambiguity exists
|
|
- 2/5: Significant ambiguity
|
|
- 1/5: Unclear or confusing
|
|
- 0/5: Missing or incomprehensible
|
|
|
|
#### Criterion 2: Value (15%)
|
|
**Check:**
|
|
- [ ] "So that" clause explains WHY
|
|
- [ ] Business impact is articulated
|
|
- [ ] User benefit is measurable
|
|
- [ ] Priority is justified
|
|
|
|
**Scoring:**
|
|
- 5/5: Clear, measurable business value
|
|
- 4/5: Value stated but not quantified
|
|
- 3/5: Value implied but not explicit
|
|
- 2/5: Value unclear
|
|
- 1/5: No value statement
|
|
- 0/5: Appears to have no value
|
|
|
|
#### Criterion 3: Acceptance Criteria (20%)
|
|
**Check:**
|
|
- [ ] AC are present
|
|
- [ ] AC use Given/When/Then format (or equivalent)
|
|
- [ ] Each AC is independently testable
|
|
- [ ] Happy path covered
|
|
- [ ] Edge cases covered
|
|
- [ ] Error scenarios covered
|
|
- [ ] Non-functional requirements specified (if applicable)
|
|
|
|
**Scoring:**
|
|
- 5/5: Comprehensive, testable AC covering all scenarios
|
|
- 4/5: Good AC, minor gaps in edge cases
|
|
- 3/5: Basic AC, missing error scenarios
|
|
- 2/5: Minimal AC, only happy path
|
|
- 1/5: Vague or incomplete AC
|
|
- 0/5: No acceptance criteria
|
|
|
|
#### Criterion 4: Scope (15%)
|
|
**Check:**
|
|
- [ ] Story can be completed in 1-3 days
|
|
- [ ] Story does ONE thing (single responsibility)
|
|
- [ ] Scope boundaries are clear (out of scope noted)
|
|
- [ ] No hidden complexity
|
|
- [ ] Story points assigned (if team uses them)
|
|
|
|
**Scoring:**
|
|
- 5/5: Well-scoped, 1-3 day effort, clear boundaries
|
|
- 4/5: Appropriate scope, minor uncertainty
|
|
- 3/5: Slightly large but acceptable
|
|
- 2/5: Too large, should be split
|
|
- 1/5: Much too large or too vague to estimate
|
|
- 0/5: Scope undefined
|
|
|
|
#### Criterion 5: Dependencies (10%)
|
|
**Check:**
|
|
- [ ] External dependencies identified
|
|
- [ ] Internal dependencies identified
|
|
- [ ] Blocking dependencies resolved
|
|
- [ ] Required data/APIs available
|
|
- [ ] Team members available (if specific skills needed)
|
|
|
|
**Scoring:**
|
|
- 5/5: No dependencies OR all dependencies resolved
|
|
- 4/5: Dependencies identified, resolution planned
|
|
- 3/5: Dependencies identified, some unresolved
|
|
- 2/5: Dependencies partially identified
|
|
- 1/5: Dependencies unknown
|
|
- 0/5: Critical blocking dependencies
|
|
|
|
#### Criterion 6: Technical Feasibility (15%)
|
|
**Check:**
|
|
- [ ] Technical approach is outlined
|
|
- [ ] Required technologies are available
|
|
- [ ] Patterns to follow are identified
|
|
- [ ] Security considerations noted
|
|
- [ ] Performance requirements specified
|
|
- [ ] No technical unknowns requiring spikes
|
|
|
|
**Scoring:**
|
|
- 5/5: Clear technical path, all considerations addressed
|
|
- 4/5: Approach clear, minor unknowns acceptable
|
|
- 3/5: Approach outlined, some technical questions
|
|
- 2/5: Technical approach unclear
|
|
- 1/5: Significant technical unknowns
|
|
- 0/5: Technical feasibility not assessed
|
|
|
|
#### Criterion 7: AI-Readiness (10%)
|
|
**Check:**
|
|
- [ ] Requirements are unambiguous for AI interpretation
|
|
- [ ] Test cases can be derived from AC
|
|
- [ ] Code patterns to follow are documented
|
|
- [ ] No external human interaction required during development
|
|
- [ ] Verification criteria are objective
|
|
|
|
**Scoring:**
|
|
- 5/5: Excellent for AI-assisted development
|
|
- 4/5: Good, AI can handle with minor guidance
|
|
- 3/5: Acceptable, some human clarification may be needed
|
|
- 2/5: Challenging for AI, significant guidance needed
|
|
- 1/5: Not suitable for AI development
|
|
- 0/5: Requires human-only development
|
|
|
|
### Step 3: Calculate Overall Score
|
|
|
|
**Weighted Score Calculation:**
|
|
```python
|
|
total_score = (
|
|
(clarity_score / 5 * 0.15) +
|
|
(value_score / 5 * 0.15) +
|
|
(ac_score / 5 * 0.20) +
|
|
(scope_score / 5 * 0.15) +
|
|
(dependencies_score / 5 * 0.10) +
|
|
(technical_score / 5 * 0.15) +
|
|
(ai_readiness_score / 5 * 0.10)
|
|
) * 100
|
|
|
|
# Classification
|
|
if total_score >= 80:
|
|
status = "READY"
|
|
elif total_score >= 60:
|
|
status = "NEEDS_MINOR_WORK"
|
|
elif total_score >= 40:
|
|
status = "NEEDS_SIGNIFICANT_WORK"
|
|
else:
|
|
status = "NOT_READY"
|
|
```
|
|
|
|
### Step 4: Generate Recommendations
|
|
|
|
For each criterion scoring below 4:
|
|
- Identify specific gaps
|
|
- Provide actionable recommendations
|
|
- Suggest specific text/content to add
|
|
|
|
## Output Format
|
|
|
|
Always structure skill output as:
|
|
|
|
```markdown
|
|
# DoR Validation Report: [STORY-KEY]
|
|
|
|
## Summary
|
|
- **Overall Score:** XX/100
|
|
- **Status:** [READY / NEEDS_MINOR_WORK / NEEDS_SIGNIFICANT_WORK / NOT_READY]
|
|
- **Recommendation:** [Proceed / Revise and re-validate]
|
|
|
|
## Criterion Scores
|
|
|
|
| Criterion | Score | Status | Weight |
|
|
|-----------|-------|--------|--------|
|
|
| Clarity | X/5 | [pass/fail emoji] | 15% |
|
|
| Value | X/5 | [pass/fail emoji] | 15% |
|
|
| Acceptance Criteria | X/5 | [pass/fail emoji] | 20% |
|
|
| Scope | X/5 | [pass/fail emoji] | 15% |
|
|
| Dependencies | X/5 | [pass/fail emoji] | 10% |
|
|
| Technical Feasibility | X/5 | [pass/fail emoji] | 15% |
|
|
| AI-Readiness | X/5 | [pass/fail emoji] | 10% |
|
|
|
|
## Detailed Analysis
|
|
|
|
### Clarity
|
|
**Score: X/5**
|
|
- [Specific findings]
|
|
- [What's good]
|
|
- [What needs improvement]
|
|
|
|
### Value
|
|
**Score: X/5**
|
|
- [Specific findings]
|
|
|
|
[... continue for each criterion ...]
|
|
|
|
## Required Actions (for status != READY)
|
|
|
|
### Critical (Must Fix)
|
|
1. [Action 1 with specific guidance]
|
|
2. [Action 2 with specific guidance]
|
|
|
|
### Recommended (Should Fix)
|
|
1. [Action 1]
|
|
2. [Action 2]
|
|
|
|
### Optional (Nice to Have)
|
|
1. [Action 1]
|
|
|
|
## Suggested Improvements
|
|
|
|
### For Acceptance Criteria
|
|
```
|
|
[Specific AC text to add]
|
|
```
|
|
|
|
### For Description
|
|
```
|
|
[Specific text to add]
|
|
```
|
|
|
|
---
|
|
|
|
**Validation Timestamp:** [datetime]
|
|
**Validator:** DoR Validator Skill v1.0
|
|
```
|
|
|
|
## Special Cases
|
|
|
|
### Story Already in Progress
|
|
```markdown
|
|
**Warning:** Story [STORY-KEY] is already in progress.
|
|
|
|
**Current Status:** In Development
|
|
|
|
**Recommendation:** DoR validation is typically done before development.
|
|
Proceeding with validation for documentation purposes.
|
|
|
|
[Continue with validation]
|
|
```
|
|
|
|
### Story is a Spike
|
|
```markdown
|
|
**Note:** Story [STORY-KEY] appears to be a spike/research task.
|
|
|
|
**Adjusted Criteria:**
|
|
- Acceptance Criteria: Research questions instead of Given/When/Then
|
|
- Scope: Time-boxed research period
|
|
- Technical Feasibility: N/A for discovery
|
|
|
|
[Adjusted validation]
|
|
```
|
|
|
|
### Story Lacks Critical Information
|
|
```markdown
|
|
**Error:** Story [STORY-KEY] is missing critical information.
|
|
|
|
**Missing:**
|
|
- [ ] Description is empty
|
|
- [ ] No acceptance criteria
|
|
|
|
**Status:** NOT_READY - Cannot validate
|
|
|
|
**Required Actions:**
|
|
1. Add story description
|
|
2. Add acceptance criteria
|
|
3. Re-run validation
|
|
```
|
|
|
|
## Integration with Other Skills
|
|
|
|
This skill works with:
|
|
- **story-creator**: Validates newly created stories
|
|
- **acceptance-criteria-generator**: Generates AC if missing
|
|
- **story-refiner**: Improves stories that fail validation
|
|
- **backlog-grooming agent**: Uses for backlog health assessment
|
|
|
|
---
|
|
|
|
When invoked, this skill will comprehensively evaluate the story against DoR criteria and provide actionable feedback to ensure the story is ready for AI-assisted development.
|