Sprint issue classification reference -- complexity tiers, parallelizability categories, team routing, estimation matrix, autopilot enrichment, and priority scoring. Use this skill whenever classifying Linear tickets for sprints, estimating work, deciding autopilot eligibility, or routing issues to agents. Also use when someone asks about issue complexity, sprint capacity, or work categorization.
Goal: Classify sprint issues by complexity, parallelizability, and priority, then produce structured JSON output for sprint planning.
Inputs:
Steps:
Checks:
Stop Conditions:
Recovery:
Reference data for classifying sprint issues. Provides complexity definitions, parallelizability categories, team agent routing, and estimation guidelines.
Tasks that agents can handle independently without human oversight.
Characteristics:
Examples:
Tasks requiring human and AI collaboration throughout.
Characteristics:
Examples:
Tasks requiring significant human judgment and oversight.
Characteristics:
Examples:
Reference: team-members.json for complete structure.
Note: Agent routing (general-purpose vs language-specific engineers) is determined at execution time by Araba based on current operational state. Refer to
workspace:development-pipelinefor the pipeline order.
| Plugin | Agents | Focus |
|---|---|---|
| Swift | swift-architect, swift-engineer, swift-code-reviewer, swift-security-reviewer | iOS/SwiftUI |
| Python | python-architect, python-engineer, python-code-reviewer, python-security-reviewer | Tooling, MCP |
| TypeScript | typescript-architect, typescript-engineer, typescript-code-reviewer, typescript-security-reviewer | Web, Next.js |
| Agent | Focus |
|---|---|
| design-ux-reviewer | User flows, information architecture |
| design-ui-web-reviewer | Accessibility, semantic HTML, React |
| design-motion-reviewer | Animation timing, physics, performance |
| design-system-web-reviewer | Tokens, Tailwind, visual consistency |
| design-swift-ui-reviewer | SwiftUI implementation, iOS HIG |
| design-swift-ux-reviewer | iOS navigation, user flows |
| design-swift-motion-reviewer | Springs, transitions, 60fps |
| design-swift-system-reviewer | iOS tokens, Dynamic Type |
| Situation | Route To |
|---|---|
| Engineering questions | Addy → CTO (if escalated) → Board |
| Design questions | Alara → CDO (if escalated) → Board |
| Product strategy | Alara → Board |
| Cross-functional conflicts | Addy + Alara → Board |
| Complex sprint decisions | Sprint → Addy + Alara → Board |
| Complexity | ai-parallel | human-ai | human-required |
|---|---|---|---|
| Low | 2h | 3h | 4h |
| Medium | 4h | 6h | 8h |
| High | 8h | 12h | 16h |
| Issue | Complexity | Parallelizable | Estimate |
|---|---|---|---|
| Fix typo in README | Low | ai-parallel | 2h |
| Add form validation | Medium | human-ai | 6h |
| Implement OAuth flow | High | human-required | 16h |
| Update API documentation | Low | ai-parallel | 2h |
| Build chart component | Medium | human-ai | 6h |
Apply when:
Apply when:
Never create dependency chains where weekend work blocks weekday work.
Bad Pattern:
Mon: WOR-100 (blocked by WOR-101)
Sat: WOR-101 (weekendOk: true) ← WRONG: blocks Monday work
Good Pattern:
Mon-Thu: WOR-100 (critical path)
Sat: WOR-102 (independent stretch) ← OK: no dependencies
Evaluates from technical perspective:
Evaluates from product perspective:
Priority = (UserImpact × 3) + (TechnicalUrgency × 2) + (DependencyScore × 2) + (GoalAlignment × 1)
| Score Range | Priority Level |
|---|---|
| 20+ | Urgent (do first) |
| 15-19 | High |
| 10-14 | Normal |
| < 10 | Low (stretch goal) |
Return this JSON structure for each classified issue:
{
"issueId": "WOR-123",
"title": "Issue title",
"complexity": "low|medium|high",
"parallelizable": "ai-parallel|human-ai|human-required",
"estimateHours": 6,
"suggestedAgent": "typescript engineer",
"weekendOk": false,
"dependencies": ["WOR-120", "WOR-121"],
"goalAlignment": "Q1 Goal: Ship auth feature",
"notes": "Needs design review checkpoint"
}
| Field | Type | Description |
|---|---|---|
| issueId | string | Linear issue identifier |
| title | string | Issue title |
| complexity | enum | low, medium, high |
| parallelizable | enum | ai-parallel, human-ai, human-required |
| estimateHours | number | Estimated hours to complete |
| suggestedAgent | string | Language + role (e.g., "typescript engineer"); agent type resolved at runtime by Araba |
| weekendOk | boolean | Can be stretch goal |
| dependencies | string[] | Blocking issue IDs |
| goalAlignment | string | Which goal this advances |
| notes | string | Additional context |
Reference for auditing tickets against autopilot eligibility requirements.
Every autopilot-eligible ticket MUST have:
| Label Type | Valid Values | Required |
|---|---|---|
| Language | typescript, python, swift | Yes |
| Project | portfolio, drift, viewport, design-system, oh-context, viewport-interactions | Yes |
| Automation | autopilot | Yes (for opt-in) |
Ticket description MUST contain acceptance criteria in one of these forms:
## Acceptance Criteria or ## AC- [ ] criteria item1. requirementMinimum: 2 acceptance criteria items.
Ticket MUST have a Linear estimate set. Use the estimation matrix from Section 4 to propose values.
When a ticket has a project label but no language label, infer language:
| Project Label | Inferred Language |
|---|---|
portfolio | typescript |
drift | swift |
viewport | swift |
design-system | typescript |
oh-context | swift |
viewport-interactions | swift |
{
"issueId": "WOR-240",
"identifier": "WOR-240",
"title": "Issue title",
"status": "ready | needs-enrichment",
"missing_labels": ["typescript"],
"missing_estimate": true,
"missing_acceptance_criteria": false,
"proposed_labels": ["typescript"],
"proposed_estimate": 4,
"notes": "Language inferred from project label 'portfolio'"
}
All ticket execution follows the workspace:development-pipeline skill as the canonical pipeline order. This applies to both manual and autopilot ticket execution.
workspace:development-pipeline skill for pipeline orderWhen classifying multiple issues:
{
"classification": [
{ "issueId": "WOR-123", "..." },
{ "issueId": "WOR-124", "..." }
],
"totalHours": 16,
"weekdayHours": 12,
"weekendStretch": 4,
"notes": "WOR-123 blocks WOR-124"
}