Invoked as /agiflow:refine-task. In hosts without slash-prompts, this skill is triggered by matching intent and drives AgiFlow via its MCP tools.
Usage:
/agiflow:refine-task <task-slug-or-id> - Refine specific task
/agiflow:refine-task - List and select from available tasks to refine
Examples:
/agiflow:refine-task DXX-2 (using slug)
/agiflow:refine-task 01K8FABMNEJG1XTA9JGHSNFV40 (using ID)
/agiflow:refine-task (interactive selection)
Purpose
Refine task descriptions to provide sufficient context for AI agents to work autonomously. Well-refined tasks enable agents to understand scope, constraints, and expected outcomes without requiring human clarification.
Guardrails
- Refine only the task scope - do not expand or reduce the original intent.
- Ensure all required context is explicitly documented, not implied.
- Acceptance criteria must be concrete, measurable, and verifiable by an agent.
- Identify and resolve ambiguities before marking task as refined.
If a task slug/id is provided, load it with get_task; otherwise list available tasks with list_tasks for selection.
AgiFlow Project Management Guidelines
Follow the shared AgiFlow project-management guidelines in references/agiflow-agents.md — agent assignment, the task status workflow and transitions, work-unit best practices, and the tags strategy apply to this workflow.
Steps
Track these steps as TODOs and complete them one by one.
1. Task Selection & Loading
If task slug/id NOT provided:
- Use
list_tasks MCP tool to show tasks needing refinement:
- Filter by
status: "Planning" or status: "Todo" for tasks not yet started
- Look for tasks with minimal descriptions or vague acceptance criteria
- Display: slug, title, priority, acceptance criteria count
- Ask user to select which task to refine.
- Once user selects, proceed with the selected task slug/id.
If task slug/id IS provided: 4. Use get_task MCP tool with the provided slug/id to retrieve:
- Task: title, description, priority, status, acceptance criteria
- Comments: Any clarifications or discussions
- Work unit context: If part of a work unit, understand the broader scope
- Review the task to identify refinement needs:
- Is the description clear and complete?
- Are acceptance criteria specific and measurable?
- Are dependencies and constraints documented?
- Can an AI agent work on this without asking questions?
2. Analyze Context Requirements
Determine what context an AI agent would need:
Technical Context:
- Which files/modules are affected?
- What existing patterns should be followed?
- Are there related implementations to reference?
Business Context:
- What problem does this solve?
- Who is the end user or beneficiary?
- What are the success metrics?
Constraints:
- Performance requirements?
- Security considerations?
- Compatibility requirements?
- Dependencies on other tasks?
Use codebase exploration to gather missing context:
- Search for related files and patterns
- Identify existing conventions
- Find relevant documentation
3. Refine Task Description
Update task description via update_task to include:
Structure:
## Overview
[1-2 sentences explaining the goal and why it matters]
## Skills
[List skill names the executing agent should load before working on this task.
Match skills to the task domain: e.g. `backend-development` for API work,
`web-app-development` for frontend features, `react-native-development` for native UI,
`unit-testing` / `integration-testing` / `e2e-testing` for test tasks,
`frontend-design` for visual polish, `drizzle-migration` for schema changes, etc.
Only include skills that are directly relevant to the implementation.]
## Technical Context
- Related files: `path/to/file.ts`, `path/to/other.ts`
- Pattern to follow: [reference existing implementation if applicable]
- Dependencies: [list any prerequisite tasks or external dependencies]
## Implementation Notes
[Specific guidance for implementation approach]
## Out of Scope
[Explicitly list what should NOT be done to prevent scope creep]
Update description via update_task:
{
description: 'Refined description following the structure above';
}
4. Refine Acceptance Criteria
Evaluate each acceptance criterion using the SMART framework:
- Specific: Clearly states what must be done
- Measurable: Can be verified programmatically or by inspection
- Achievable: Within scope of a single task
- Relevant: Directly contributes to task goal
- Testable: An agent can verify completion
Rewrite vague criteria to be specific:
Before (Vague):
- "Handle errors properly"
- "Make it performant"
- "Add tests"
After (Specific):
- "Return HTTP 400 with error message for invalid input; return HTTP 500 for server errors with logged stack trace"
- "API response time < 200ms for p95 under 100 concurrent requests"
- "Add unit tests covering: happy path, validation errors, edge cases (empty input, max length); maintain 80% coverage"
Deriving test cases from criteria:
For each acceptance criterion, ask:
- What must be true for this to pass? (happy path test)
- What could go wrong? (error path test)
- What are the boundary conditions? (edge case test)
- What test type fits? (Unit for validation logic, Integration for API/DB, E2E for user flows)
Update acceptance criteria via update_task:
{
acceptanceCriteria: [
{ description: 'Specific criterion 1', checked: false },
{ description: 'Specific criterion 2', checked: false },
// ... more criteria
];
}
5. Add Implementation Hints (devInfo)
- Document implementation hints via
update_task devInfo:{
devInfo: {
suggestedApproach: "Brief description of recommended approach",
referenceImplementations: ["path/to/similar/file.ts:42"],
potentialChallenges: ["List any known gotchas or tricky areas"],
testingStrategy: "How to verify this works correctly",
testCases: [
"Happy path: valid input produces expected output",
"Error path: invalid input returns clear error message",
"Edge case: empty input, max length, special characters"
],
testTypes: "Unit for validation, Integration for API calls, E2E for user flows"
}
}
6. Collect & Attach Artifacts
Ask the user if they have any supporting artifacts to attach:
- Screenshots (UI bugs, current state, expected state)
- Design mockups / wireframes (screen layouts, page flows)
- Documentation (API specs, requirements docs, diagrams)
- Reference images (competitor examples, inspiration)
If the user provides artifacts, determine the appropriate scope:
Project-level artifacts (shared across tasks — upload to project):
- Screen/page mockups and wireframes
- Design system references
- Architecture diagrams
- Shared documentation (API specs, PRDs)
Use get_artifact_signed_url with action: "upload" and the project's ID:
→ get_artifact_signed_url({ action: "upload", filename: "mockup-login-page.png", contentType: "image/png" })
→ User uploads file to the returned URL
→ update_artifact({ key: "<returned-key>", status: "uploaded" })
Task-level artifacts (specific to this task — link to task):
- Bug screenshots
- Task-specific reference images
- Reproduction steps recordings
Use get_artifact_signed_url then link to the task:
→ get_artifact_signed_url({ action: "upload", filename: "bug-screenshot.png", contentType: "image/png" })
→ User uploads file to the returned URL
→ update_artifact({ key: "<returned-key>", status: "uploaded", taskId: "<task-id>" })
Reference attached artifacts in the task description or devInfo so agents know to check them.
7. AI-Readiness Validation
Before completing refinement, run this type-aware readiness check. Infer the task type from tags and title.
Check artifacts are referenced, not just uploaded:
- Use
list_artifacts to find artifacts linked to the task or its project
- For EACH artifact: verify it is explicitly mentioned in the task description or devInfo
- An uploaded but unreferenced artifact is invisible to the executing agent — add a reference or flag it
Type-specific readiness checklist:
For UI/Frontend tasks (tags: feat:ui, feat:frontend, or title indicates UI work):
| Item |
Verdict |
Notes |
| Visual spec exists (mockup, wireframe, or detailed text description of layout) |
PASS / FAIL / WARNING |
|
| Component states defined (default, loading, error, empty, disabled) |
PASS / FAIL |
|
| Data shape specified (what props/API data does the component consume?) |
PASS / FAIL |
|
| Interaction behavior described (click, hover, form submission, navigation) |
PASS / WARNING |
|
For API/Backend tasks (tags: feat:api, feat:backend, or title indicates API work):
| Item |
Verdict |
Notes |
| Endpoint path and HTTP method defined |
PASS / FAIL |
|
| Request payload shape specified (or "no payload") |
PASS / FAIL |
|
| Success response shape specified |
PASS / FAIL |
|
| Error response codes and shapes specified |
PASS / WARNING |
|
| Auth/permission requirements noted |
PASS / WARNING |
|
For Data/Schema tasks (tags: feat:db, chore:migration, or title indicates schema work):
| Item |
Verdict |
Notes |
| Table/column changes described |
PASS / FAIL |
|
| Data types and constraints specified |
PASS / FAIL |
|
| Relationships and foreign keys documented |
PASS / WARNING |
|
| Migration strategy noted (additive vs breaking) |
PASS / WARNING |
|
For all tasks:
| Item |
Verdict |
Notes |
| Acceptance criteria are SMART (not vague) |
PASS / FAIL |
|
| File paths or patterns to follow are specified |
PASS / WARNING |
|
| Out-of-scope boundaries are explicit |
PASS / WARNING |
|
| Dependencies on other tasks are documented |
PASS / WARNING |
|
| Required skills listed in description (## Skills section) |
PASS / WARNING |
|
Determine readiness verdict:
- Ready: All PASS, no FAIL items — task can be promoted
- Needs-More-Info: Has WARNING items but no FAIL — task can proceed with caveats noted for the agent
- Not-Ready: Has any FAIL item — flag what's missing and ask the user to provide it before promotion
If verdict is Not-Ready, document the specific gaps in a task comment and do NOT mark the task as refined. The user must address the FAIL items first.
8. Verify Refinement Quality
Review the refined task by asking:
If any answer is "no", iterate on that section.
9. Document Refinement
Use create_task_comment to add refinement summary:
**Task Refined**
Changes made:
- [List what was clarified or added]
Key context added:
- [Important context that was missing]
Artifacts attached:
- [List any artifacts uploaded, with scope: project-level or task-level]
AI-Readiness: [Ready / Needs-More-Info / Not-Ready]
[If Needs-More-Info or Not-Ready, list specific gaps]
If task is now ready for agent execution, no status change needed (remains "Todo").
If further human input is required, document what's needed in the comment.
Refinement Quality Checklist
Before completing refinement, verify:
| Criterion |
Status |
| Clear goal statement |
|
| Technical context (files, patterns) |
|
| Explicit scope boundaries |
|
| SMART acceptance criteria |
|
| Test cases for critical criteria (happy + error paths) |
|
| Dependencies documented |
|
| Implementation hints provided |
|
| Required skills listed in ## Skills section |
|
| Artifacts attached AND referenced in description/devInfo |
|
| Type-specific readiness checklist passes (no FAIL items) |
|
| No ambiguous language |
|
Common Refinement Patterns
API Endpoint Task
## Overview
Add GET /api/users/:id endpoint to retrieve user profile.
## Technical Context
- Route file: `src/routes/users.ts`
- Pattern: Follow existing `GET /api/organizations/:id` in `src/routes/organizations.ts:45`
- Schema: Use existing `UserSchema` from `src/schemas/user.ts`
## Implementation Notes
- Use existing `UserRepository.findById()` method
- Return 404 if user not found
## Out of Scope
- User creation (separate task)
- Authentication changes
UI Component Task
## Overview
Create UserAvatar component displaying user profile picture with fallback initials.
## Technical Context
- Component path: `src/components/UserAvatar/index.tsx`
- Pattern: Follow `src/components/OrganizationLogo/index.tsx`
- Design system: Use `@agimonai/frontend-web-ui` Avatar primitive
## Implementation Notes
- Accept size prop: 'sm' | 'md' | 'lg'
- Fallback to initials when no image URL
- Use semantic colors from design system
## Out of Scope
- Image upload functionality
- Edit mode
Common Mistakes to Avoid
- Leaving implicit assumptions undocumented
- Using vague terms like "properly", "correctly", "efficiently"
- Acceptance criteria that require subjective judgment
- Missing file paths or references
- Not specifying what's out of scope
- Expanding task scope during refinement
- Adding acceptance criteria that belong to different tasks
- Not verifying the task can be completed autonomously
1---2name: refine-task3description: Refine a task into a complete, autonomous-ready spec with SMART acceptance criteria, technical context, and AI-readiness checks. Use when a task is vague or keeps getting rejected. Invoked as /agiflow:refine-task <task>. Uses get_task, update_task, list_tasks, create_task_comment, list_artifacts.4---56> Invoked as `/agiflow:refine-task`. In hosts without slash-prompts, this skill is triggered by matching intent and drives AgiFlow via its MCP tools.78**Usage**:910- `/agiflow:refine-task <task-slug-or-id>` - Refine specific task11- `/agiflow:refine-task` - List and select from available tasks to refine1213**Examples**:1415- `/agiflow:refine-task DXX-2` (using slug)16- `/agiflow:refine-task 01K8FABMNEJG1XTA9JGHSNFV40` (using ID)17- `/agiflow:refine-task` (interactive selection)1819---2021**Purpose**22Refine task descriptions to provide sufficient context for AI agents to work autonomously. Well-refined tasks enable agents to understand scope, constraints, and expected outcomes without requiring human clarification.2324**Guardrails**2526- Refine only the task scope - do not expand or reduce the original intent.27- Ensure all required context is explicitly documented, not implied.28- Acceptance criteria must be concrete, measurable, and verifiable by an agent.29- Identify and resolve ambiguities before marking task as refined.3031If a task slug/id is provided, load it with `get_task`; otherwise list available tasks with `list_tasks` for selection.3233---3435## AgiFlow Project Management Guidelines3637Follow the shared AgiFlow project-management guidelines in [`references/agiflow-agents.md`](../../references/agiflow-agents.md) — agent assignment, the task status workflow and transitions, work-unit best practices, and the tags strategy apply to this workflow.383940---4142**Steps**43Track these steps as TODOs and complete them one by one.4445## 1. Task Selection & Loading4647**If task slug/id NOT provided:**48491. Use `list_tasks` MCP tool to show tasks needing refinement:50 - Filter by `status: "Planning"` or `status: "Todo"` for tasks not yet started51 - Look for tasks with minimal descriptions or vague acceptance criteria52 - Display: slug, title, priority, acceptance criteria count532. Ask user to select which task to refine.543. Once user selects, proceed with the selected task slug/id.5556**If task slug/id IS provided:** 4. Use `get_task` MCP tool with the provided slug/id to retrieve:5758- Task: title, description, priority, status, acceptance criteria59- Comments: Any clarifications or discussions60- Work unit context: If part of a work unit, understand the broader scope61625. Review the task to identify refinement needs:63 - Is the description clear and complete?64 - Are acceptance criteria specific and measurable?65 - Are dependencies and constraints documented?66 - Can an AI agent work on this without asking questions?6768## 2. Analyze Context Requirements69706. Determine what context an AI agent would need:7172 **Technical Context:**73 - Which files/modules are affected?74 - What existing patterns should be followed?75 - Are there related implementations to reference?7677 **Business Context:**78 - What problem does this solve?79 - Who is the end user or beneficiary?80 - What are the success metrics?8182 **Constraints:**83 - Performance requirements?84 - Security considerations?85 - Compatibility requirements?86 - Dependencies on other tasks?87887. Use codebase exploration to gather missing context:89 - Search for related files and patterns90 - Identify existing conventions91 - Find relevant documentation9293## 3. Refine Task Description94958. Update task description via `update_task` to include:9697 **Structure:**9899 ```markdown100 ## Overview101102 [1-2 sentences explaining the goal and why it matters]103104 ## Skills105106 [List skill names the executing agent should load before working on this task.107 Match skills to the task domain: e.g. `backend-development` for API work,108 `web-app-development` for frontend features, `react-native-development` for native UI,109 `unit-testing` / `integration-testing` / `e2e-testing` for test tasks,110 `frontend-design` for visual polish, `drizzle-migration` for schema changes, etc.111 Only include skills that are directly relevant to the implementation.]112113 ## Technical Context114115 - Related files: `path/to/file.ts`, `path/to/other.ts`116 - Pattern to follow: [reference existing implementation if applicable]117 - Dependencies: [list any prerequisite tasks or external dependencies]118119 ## Implementation Notes120121 [Specific guidance for implementation approach]122123 ## Out of Scope124125 [Explicitly list what should NOT be done to prevent scope creep]126 ```1271289. Update description via `update_task`:129 ```typescript130 {131 description: 'Refined description following the structure above';132 }133 ```134135## 4. Refine Acceptance Criteria13613710. Evaluate each acceptance criterion using the SMART framework:138 - **Specific**: Clearly states what must be done139 - **Measurable**: Can be verified programmatically or by inspection140 - **Achievable**: Within scope of a single task141 - **Relevant**: Directly contributes to task goal142 - **Testable**: An agent can verify completion14314411. Rewrite vague criteria to be specific:145146 **Before (Vague):**147 - "Handle errors properly"148 - "Make it performant"149 - "Add tests"150151 **After (Specific):**152 - "Return HTTP 400 with error message for invalid input; return HTTP 500 for server errors with logged stack trace"153 - "API response time < 200ms for p95 under 100 concurrent requests"154 - "Add unit tests covering: happy path, validation errors, edge cases (empty input, max length); maintain 80% coverage"155156 **Deriving test cases from criteria:**157 For each acceptance criterion, ask:158 - What must be true for this to pass? (happy path test)159 - What could go wrong? (error path test)160 - What are the boundary conditions? (edge case test)161 - What test type fits? (Unit for validation logic, Integration for API/DB, E2E for user flows)16216312. Update acceptance criteria via `update_task`:164 ```typescript165 {166 acceptanceCriteria: [167 { description: 'Specific criterion 1', checked: false },168 { description: 'Specific criterion 2', checked: false },169 // ... more criteria170 ];171 }172 ```173174## 5. Add Implementation Hints (devInfo)17517613. Document implementation hints via `update_task` devInfo:177 ```typescript178 {179 devInfo: {180 suggestedApproach: "Brief description of recommended approach",181 referenceImplementations: ["path/to/similar/file.ts:42"],182 potentialChallenges: ["List any known gotchas or tricky areas"],183 testingStrategy: "How to verify this works correctly",184 testCases: [185 "Happy path: valid input produces expected output",186 "Error path: invalid input returns clear error message",187 "Edge case: empty input, max length, special characters"188 ],189 testTypes: "Unit for validation, Integration for API calls, E2E for user flows"190 }191 }192 ```193194## 6. Collect & Attach Artifacts19519614. Ask the user if they have any supporting artifacts to attach:197 - Screenshots (UI bugs, current state, expected state)198 - Design mockups / wireframes (screen layouts, page flows)199 - Documentation (API specs, requirements docs, diagrams)200 - Reference images (competitor examples, inspiration)20120215. If the user provides artifacts, determine the appropriate scope:203204 **Project-level artifacts** (shared across tasks — upload to project):205 - Screen/page mockups and wireframes206 - Design system references207 - Architecture diagrams208 - Shared documentation (API specs, PRDs)209210 Use `get_artifact_signed_url` with `action: "upload"` and the project's ID:211212 ```213 → get_artifact_signed_url({ action: "upload", filename: "mockup-login-page.png", contentType: "image/png" })214 → User uploads file to the returned URL215 → update_artifact({ key: "<returned-key>", status: "uploaded" })216 ```217218 **Task-level artifacts** (specific to this task — link to task):219 - Bug screenshots220 - Task-specific reference images221 - Reproduction steps recordings222223 Use `get_artifact_signed_url` then link to the task:224225 ```226 → get_artifact_signed_url({ action: "upload", filename: "bug-screenshot.png", contentType: "image/png" })227 → User uploads file to the returned URL228 → update_artifact({ key: "<returned-key>", status: "uploaded", taskId: "<task-id>" })229 ```23023116. Reference attached artifacts in the task description or devInfo so agents know to check them.232233## 7. AI-Readiness Validation234235Before completing refinement, run this type-aware readiness check. Infer the task type from tags and title.23623717. **Check artifacts are referenced, not just uploaded:**238 - Use `list_artifacts` to find artifacts linked to the task or its project239 - For EACH artifact: verify it is explicitly mentioned in the task description or devInfo240 - An uploaded but unreferenced artifact is invisible to the executing agent — add a reference or flag it24124218. **Type-specific readiness checklist:**243244 **For UI/Frontend tasks** (tags: `feat:ui`, `feat:frontend`, or title indicates UI work):245246 | Item | Verdict | Notes |247 | ------------------------------------------------------------------------------ | --------------------- | ----- |248 | Visual spec exists (mockup, wireframe, or detailed text description of layout) | PASS / FAIL / WARNING | |249 | Component states defined (default, loading, error, empty, disabled) | PASS / FAIL | |250 | Data shape specified (what props/API data does the component consume?) | PASS / FAIL | |251 | Interaction behavior described (click, hover, form submission, navigation) | PASS / WARNING | |252253 **For API/Backend tasks** (tags: `feat:api`, `feat:backend`, or title indicates API work):254255 | Item | Verdict | Notes |256 | ------------------------------------------------- | -------------- | ----- |257 | Endpoint path and HTTP method defined | PASS / FAIL | |258 | Request payload shape specified (or "no payload") | PASS / FAIL | |259 | Success response shape specified | PASS / FAIL | |260 | Error response codes and shapes specified | PASS / WARNING | |261 | Auth/permission requirements noted | PASS / WARNING | |262263 **For Data/Schema tasks** (tags: `feat:db`, `chore:migration`, or title indicates schema work):264265 | Item | Verdict | Notes |266 | ----------------------------------------------- | -------------- | ----- |267 | Table/column changes described | PASS / FAIL | |268 | Data types and constraints specified | PASS / FAIL | |269 | Relationships and foreign keys documented | PASS / WARNING | |270 | Migration strategy noted (additive vs breaking) | PASS / WARNING | |271272 **For all tasks:**273274 | Item | Verdict | Notes |275 | --------------------------------------------------------- | -------------- | ----- |276 | Acceptance criteria are SMART (not vague) | PASS / FAIL | |277 | File paths or patterns to follow are specified | PASS / WARNING | |278 | Out-of-scope boundaries are explicit | PASS / WARNING | |279 | Dependencies on other tasks are documented | PASS / WARNING | |280 | Required skills listed in description (## Skills section) | PASS / WARNING | |28128219. **Determine readiness verdict:**283 - **Ready**: All PASS, no FAIL items — task can be promoted284 - **Needs-More-Info**: Has WARNING items but no FAIL — task can proceed with caveats noted for the agent285 - **Not-Ready**: Has any FAIL item — flag what's missing and ask the user to provide it before promotion28628720. If verdict is **Not-Ready**, document the specific gaps in a task comment and do NOT mark the task as refined. The user must address the FAIL items first.288289## 8. Verify Refinement Quality29029121. Review the refined task by asking:292 - [ ] Can an agent understand the goal without clarification?293 - [ ] Are all file paths and references explicit?294 - [ ] Is the scope clearly bounded (what's in vs. out)?295 - [ ] Can each acceptance criterion be verified objectively?296 - [ ] Are dependencies and blockers identified?297 - [ ] Are relevant artifacts attached AND referenced in description/devInfo?298 - [ ] Does the AI-readiness check pass for this task type?29930022. If any answer is "no", iterate on that section.301302## 9. Document Refinement30330423. Use `create_task_comment` to add refinement summary:305306 ```307 **Task Refined**308309 Changes made:310 - [List what was clarified or added]311312 Key context added:313 - [Important context that was missing]314315 Artifacts attached:316 - [List any artifacts uploaded, with scope: project-level or task-level]317318 AI-Readiness: [Ready / Needs-More-Info / Not-Ready]319 [If Needs-More-Info or Not-Ready, list specific gaps]320 ```32132224. If task is now ready for agent execution, no status change needed (remains "Todo").323 If further human input is required, document what's needed in the comment.324325---326327**Refinement Quality Checklist**328329Before completing refinement, verify:330331| Criterion | Status |332| -------------------------------------------------------- | ------ |333| Clear goal statement | |334| Technical context (files, patterns) | |335| Explicit scope boundaries | |336| SMART acceptance criteria | |337| Test cases for critical criteria (happy + error paths) | |338| Dependencies documented | |339| Implementation hints provided | |340| Required skills listed in ## Skills section | |341| Artifacts attached AND referenced in description/devInfo | |342| Type-specific readiness checklist passes (no FAIL items) | |343| No ambiguous language | |344345---346347**Common Refinement Patterns**348349### API Endpoint Task350351```markdown352## Overview353354Add GET /api/users/:id endpoint to retrieve user profile.355356## Technical Context357358- Route file: `src/routes/users.ts`359- Pattern: Follow existing `GET /api/organizations/:id` in `src/routes/organizations.ts:45`360- Schema: Use existing `UserSchema` from `src/schemas/user.ts`361362## Implementation Notes363364- Use existing `UserRepository.findById()` method365- Return 404 if user not found366367## Out of Scope368369- User creation (separate task)370- Authentication changes371```372373### UI Component Task374375```markdown376## Overview377378Create UserAvatar component displaying user profile picture with fallback initials.379380## Technical Context381382- Component path: `src/components/UserAvatar/index.tsx`383- Pattern: Follow `src/components/OrganizationLogo/index.tsx`384- Design system: Use `@agimonai/frontend-web-ui` Avatar primitive385386## Implementation Notes387388- Accept size prop: 'sm' | 'md' | 'lg'389- Fallback to initials when no image URL390- Use semantic colors from design system391392## Out of Scope393394- Image upload functionality395- Edit mode396```397398---399400**Common Mistakes to Avoid**401402- Leaving implicit assumptions undocumented403- Using vague terms like "properly", "correctly", "efficiently"404- Acceptance criteria that require subjective judgment405- Missing file paths or references406- Not specifying what's out of scope407- Expanding task scope during refinement408- Adding acceptance criteria that belong to different tasks409- Not verifying the task can be completed autonomously