7.0 KiB
Work on Linear Issue
Load and implement a specific Linear issue.
Usage
/linear/work-on-issue <issue-id>
Example: /linear/work-on-issue PRO-123
Prerequisites
Recommended: Activate an appropriate role first:
/roles/backend-engineer- For backend issues/roles/frontend-engineer- For frontend issues/roles/fullstack-engineer- For full-stack issues/roles/techlead- For planning/architecture issues
If no role is active, you'll work as a general engineer.
Workflow
1. Load Issue Context
Fetch the Issue:
- Use
mcp__linear-server__get_issuewith the issue ID - Read the complete issue description and acceptance criteria
- Note the current status and any existing comments
Load Project Context (if available):
- If the issue belongs to a project, use
mcp__linear-server__get_project - Read the project description to understand:
- Branch - Which branch this work belongs to
- Purpose - Why this feature exists
- Technical Approach - Overall architecture
- Dependencies - Related systems
Analyze Issue Type:
- Determine if this is primarily a backend, frontend, or fullstack task by reading:
- Issue title and description
- Technical guidance in the description
- File paths or components mentioned
- Labels/tags on the issue
Verify Role Match:
-
Check if your current role matches the issue type:
- Backend Engineer → Backend task ✓
- Frontend Engineer → Frontend task ✓
- Fullstack Engineer → Any task ✓
- Tech Lead → Any task ✓ (focus on architecture)
- No role → Any task ✓ (general approach)
-
If there's a mismatch, warn the user:
"⚠️ Role Mismatch Detected
I'm currently acting as a [current-role], but this issue appears to be primarily [issue-type] work based on:
- [Reason 1, e.g., "Issue mentions Vue components"]
- [Reason 2, e.g., "File paths reference frontend directory"]
Recommendation: Activate
/roles/[suggested-role]first for better context and conventions.Would you like me to:
- Proceed anyway with my current [role] perspective?
- Wait while you activate the correct role?"
-
Wait for user confirmation before proceeding with a mismatched role
Verify Branch:
- Get current branch:
git branch --show-current - If project specifies a branch and you're on a different one:
- Warn: "⚠️ This issue is for branch
[project-branch], but you're on[current-branch]. Would you like me to switch branches or continue on the current branch?" - Wait for user decision
- Warn: "⚠️ This issue is for branch
2. Update Issue to "In Progress"
- Use
mcp__linear-server__update_issueto set status to "In Progress" - This signals to the team that work has started
3. Implement the Issue
Work on the issue based on your active role:
Backend Engineer:
- Follow backend conventions from loaded rules
- Create: Models, Data classes, Services, Controllers, Form Requests, Tests
- Ensure proper validation, testing, and pattern adherence
- Focus on code quality and maintainability
Frontend Engineer:
- Follow frontend conventions from loaded rules
- Create: Vue components, composables, TypeScript types
- Check for existing reusable components first
- Ensure proper UX and accessibility
- Focus on component quality and user experience
Fullstack Engineer:
- Implement both backend and frontend
- Ensure clean integration between layers
- Design APIs that serve frontend needs
- Test end-to-end functionality
Tech Lead:
- Focus on architectural correctness
- Set patterns for others to follow
- Document technical decisions
- Think about long-term maintainability
4. Test Your Implementation
Backend:
- Write comprehensive tests
- Run tests:
./vendor/bin/sail php artisan test --filter=YourTest - Ensure all tests pass
Frontend:
- Test manually in the browser
- Check responsive design
- Verify user interactions work correctly
5. Update Issue to "Done"
When implementation is complete:
Update Status:
- Use
mcp__linear-server__update_issueto set status to "Done"
Add Implementation Comment:
- Use
mcp__linear-server__create_commentwith detailed summary
Comment Format:
✅ Implementation complete
**Summary:**
[1-3 sentences describing what was implemented and how it works]
**Changes:**
- `app/Services/ReportService.php:45` - Brief description of change
- `app/Data/CreateReportData.php:1` - Brief description of change
- `tests/Feature/ReportExportTest.php:1` - Brief description of change
**Uncertainties/Concerns:**
[Only if applicable - implementation decisions you're unsure about or potential issues]
⚠️ Token refresh interval is set to 15 minutes. May need adjustment for production.
**Testing:**
✅ All tests passing (8 new tests added)
[or]
✅ Tested manually in browser - all interactions working correctly
Notes
- Always update Linear at start (In Progress) and finish (Done)
- Include file references with line numbers:
path/to/file.php:123 - Be specific about uncertainties so reviewers know what to check
- Keep comments concise but informative
- If you discover additional work needed, ask if you should create a new Linear issue
- Follow conventions from your active role's loaded rules
Example Sessions
Example 1: Role Matches Task
User: /roles/backend-engineer
[Backend engineer role activated, rules loaded]
User: /linear/work-on-issue PRO-456
You: Loading issue PRO-456: "Add export functionality to reports"
This is a backend task (mentions Services, Controllers, API endpoints).
You're currently acting as Backend Engineer ✓
Branch: feature/report-export (you're on it ✓)
I'll update the issue to "In Progress" and begin implementation.
[Updates Linear, implements, tests]
You: Issue PRO-456 complete! Created ReportExportService, added API endpoint, wrote tests.
Marking as Done in Linear.
Example 2: Role Mismatch (Warning Given)
User: /roles/backend-engineer
[Backend engineer role activated]
User: /linear/work-on-issue PRO-789
You: Loading issue PRO-789: "Create export dialog component"
⚠️ **Role Mismatch Detected**
I'm currently acting as a **Backend Engineer**, but this issue appears to be primarily **Frontend** work based on:
- Issue title mentions "dialog component"
- Description references Vue components in resources/js/
- Labels include "frontend"
**Recommendation:** Activate `/roles/frontend-engineer` first for better context and conventions.
Would you like me to:
- **Proceed anyway** with my current Backend Engineer perspective?
- **Wait** while you activate the correct role?
User: Wait
You: Understood. Please activate `/roles/frontend-engineer` and then run `/linear/work-on-issue PRO-789` again.
Example 3: Fullstack or Tech Lead (No Warning)
User: /roles/fullstack-engineer
User: /linear/work-on-issue PRO-101
You: Loading issue PRO-101: "Create export dialog component"
This is a frontend task. As a Fullstack Engineer, I can handle this ✓
[Proceeds with implementation]