Update Linear Post-Job
Update Linear Post-Job
When to Use
Use this skill when:
- Job completion (Tracking Agent): After QA validates implementation and Planning Agent confirms job complete
- Phase 7 of TDD workflow: Tracking Agent handles PR/documentation and Linear updates
- Work block tracking: Need to update child issue status and check parent completion
Triggers:
- Planning Agent confirms job completion
- QA Agent approves implementation
- PR is merged and job is ready for closure
- Need to track work block progress in Linear
TDD Workflow Context:
- 7-Phase TDD: Research → Spec → Linear Enrichment → QA (tests) → Action (code) → QA (validate) → Tracking (PR/docs) → Dashboard Update
- This skill: Executes during Phase 7 (Tracking Agent responsibilities)
Workflow
Step 1: Update Child Issue Status
Purpose: Mark the completed job (child issue) as Done in Linear
Prerequisites:
- Planning Agent confirmed job completion
- QA Agent approved implementation
- PR merged (if applicable)
- Handoff includes child issue ID
Execute:
// Update child issue to Done
await mcp__linear-server__update_issue({
id: "LAW-5", // Child issue ID from handoff
state: "Done"
})
Then add completion comment:
await mcp__linear-server__create_comment({
issueId: "LAW-5",
body: `✅ **Job Complete**
**PR**: #14 (https://github.com/org/repo/pull/14)
**QA Status**: ✅ All tests passing
**Files Changed**: 8 files, +420/-15 lines
Ready for merge.`
})
Comment Template Fields:
- PR: Link to merged pull request (if applicable)
- QA Status: Confirmation that QA validation passed
- Files Changed: Summary of code changes
- Additional Notes: Any relevant completion details
Error Handling:
If update fails, add comment instead and continue:
try {
await mcp__linear-server__update_issue({ id: "LAW-5", state: "Done" })
} catch (error) {
await mcp__linear-server__create_comment({
issueId: "LAW-5",
body: `⚠️ **Tracking Agent**: Could not update issue status to Done.
Error: ${error.message}
Job completion confirmed by Planning Agent. Manual status update needed.`
})
// Continue to Step 2 - don't block on child update failure
}
Step 2: Check Parent Work Block Completion
Purpose: Determine if all child jobs in the work block are complete
Execute:
// 1. Get parent issue details
const parentIssue = await mcp__linear-server__get_issue({
id: "LAW-4" // Parent work block ID from handoff
})
// 2. Get all child issues of parent
const childIssues = await mcp__linear-server__list_issues({
team: "Linear-First-Agentic-Workflow", // From .project-context.md
parentId: "LAW-4" // Parent work block ID
})
// 3. Check if ALL children are Done
const allChildrenDone = childIssues.nodes.every(
issue => issue.state.name === "Done"
)
Decision Point:
- If
allChildrenDone === true: Proceed to Step 3 (update parent) - If
allChildrenDone === false: Skip to Step 4 (report to Planning Agent)
What to check:
- All child issues must have
state.name === "Done" - Check all siblings (other child issues under same parent)
- Do not update parent if any child is still In Progress, Todo, or Blocked
Step 3: Update Parent Work Block (If All Children Complete)
Purpose: Mark parent work block as Done when all child jobs complete
Execute only if Step 2 determined all children are Done:
// Update parent work block to Done
await mcp__linear-server__update_issue({
id: "LAW-4",
state: "Done"
})
// Add completion comment to parent
await mcp__linear-server__create_comment({
issueId: "LAW-4",
body: `✅ **Work Block Complete**
All child jobs completed:
- LAW-5: Research Agent Upgrade ✅
- LAW-6: Planning Agent Refactor ✅
- LAW-7: Tracking Agent Updates ✅
[... list all completed children ...]
All PRs merged. Work block ready for closure.`
})
Comment Template for Parent:
- List all completed child jobs
- Confirm all PRs merged
- Note that work block is ready for closure
Error Handling:
If parent update fails, report to Planning Agent but don't block:
try {
await mcp__linear-server__update_issue({ id: "LAW-4", state: "Done" })
} catch (error) {
// Report error to Planning Agent
// Continue - job is still complete even if parent update fails
}
Step 4: Report to Planning Agent
Purpose: Notify Planning Agent of completion and any issues
Write completion report to handoff location (specified by Planning Agent):
If all updates successful:
**Tracking Agent Completion Report**
✅ **All Linear Updates Complete**
**Child Issue**: LAW-5 updated to Done
**Parent Work Block**: LAW-4 [updated to Done | still has N incomplete children]
**Summary**:
- PR #14 merged successfully
- Linear issues updated
- Work block [complete | in progress]
[If parent complete] Master Dashboard update delegated to Traycer per Phase 7 protocol.
Ready for next job.
If errors occurred:
**Tracking Agent Completion Report**
⚠️ **Linear Updates Completed With Errors**
**Child Issue**: LAW-5 - [updated successfully | update failed, manual intervention needed]
**Parent Work Block**: LAW-4 - [checked, N of M children complete | check failed]
**Errors**:
- [List any errors encountered]
**Action Required**:
- [List manual steps needed to resolve errors]
Job completion confirmed despite Linear update errors.
Important: Do NOT update Master Dashboard - this is delegated by Traycer per Phase 7 protocol
Reference
Complete Example Flow
Scenario: LAW-5 (Research Agent Upgrade) complete, parent is LAW-4
// Step 1: Update child issue
await mcp__linear-server__update_issue({
id: "LAW-5",
state: "Done"
})
await mcp__linear-server__create_comment({
issueId: "LAW-5",
body: "✅ Job complete. PR #14 merged."
})
// Step 2: Check parent completion
const parentIssue = await mcp__linear-server__get_issue({ id: "LAW-4" })
const childIssues = await mcp__linear-server__list_issues({
team: "Linear-First-Agentic-Workflow",
parentId: "LAW-4"
})
const allDone = childIssues.nodes.every(i => i.state.name === "Done")
// Step 3: Update parent if all children complete
if (allDone) {
// All 9 child jobs complete
await mcp__linear-server__update_issue({
id: "LAW-4",
state: "Done"
})
await mcp__linear-server__create_comment({
issueId: "LAW-4",
body: "✅ All 9 child jobs complete. Work block done."
})
}
// Step 4: Report to Planning Agent
// Write completion report to handoff location
// Do NOT update Master Dashboard (delegated by Traycer)
Branch Creation Context
Note: This skill executes AFTER branch creation and PR merge
7-Phase TDD Workflow:
- Phase 1: Research (no branch yet)
- Phase 2: Spec clarification (no branch yet)
- Phase 3: Linear Enrichment (no branch yet)
- Just before Phase 4: Create branch
- Phase 4-6: QA creates tests → Action implements → QA validates (on branch)
- Phase 7: Tracking Agent handles PR/docs and Linear updates ← This skill
Branch Naming Convention (for reference):
Pattern: feat/<parent-issue-id>-<child-issue-id>-<slug>
Examples:
# Work Block: LAW-4, Child Job: LAW-5
feat/law-4-law-5-research-agent-upgrade
# Work Block: LAW-350, Child Job: LAW-351
feat/law-350-law-351-webhook-server-setup
Related Tools
- Linear MCP:
mcp__linear-server__update_issue,mcp__linear-server__get_issue,mcp__linear-server__list_issues,mcp__linear-server__create_comment - Project Context:
.project-context.md(contains team name for Linear queries) - Handoff Files: Planning Agent provides child/parent issue IDs
Related Documentation
- Original Reference: post-job-linear-updates.md (deprecated - use this skill instead)
- Agent Prompts:
- Tracking Agent:
docs/agents/tracking/tracking-agent.md - Planning Agent:
docs/agents/planning/planning-agent.md
- Tracking Agent:
- Related Ref-Docs:
tdd-workflow-protocol.md- Full 7-phase TDD workflowmaster-dashboard-creation-protocol.md- Dashboard update protocol (delegated by Traycer)linear-update-protocol.md- General Linear API usage
Decision Matrix
| Condition | Action |
|---|---|
| Child update succeeds | Proceed to parent check |
| Child update fails | Add error comment, continue to parent check |
| All children Done | Update parent to Done, add completion comment |
| Some children incomplete | Skip parent update, report status to Planning Agent |
| Parent update fails | Report error, continue (don't block on parent failure) |
| All updates complete | Report success to Planning Agent |
Common Pitfalls to Avoid
❌ Don't: Update Master Dashboard directly
- Why: Dashboard updates are delegated by Traycer per Phase 7 protocol
- Instead: Report completion to Planning Agent, let Traycer coordinate dashboard update
❌ Don't: Block if parent update fails
- Why: Child job is complete regardless of parent status
- Instead: Report error to Planning Agent, mark job as complete
❌ Don't: Assume all children Done without querying
- Why: Another agent might have deferred a child job
- Instead: Always query all child issues and check state
❌ Don't: Update child issue state to "Closed" or "Canceled"
- Why: "Done" is the correct state for completed jobs
- Instead: Always use "Done" state
Version History
- v1.0 (2025-11-05): Converted from post-job-linear-updates.md to skill format
- Extracted 3-step workflow from reference doc
- Added error handling examples
- Clarified decision points and delegation boundaries
- Included complete example flow
More from auldsyababua/instructor-workflow
side-hustle-maker
Active coordinator for building AI-powered side-gigs in 2025. Use when users want to build micro-niche products, validate business ideas, create MVPs, or launch profitable side businesses. This skill orchestrates sub-agents to execute market research, product design, business validation, and launch planning. Triggers include "help me build a side hustle," "validate my business idea," "find market opportunities," "build an AI product," or "launch a side-gig.
33travel-planner
This skill should be used whenever users need help planning trips, creating travel itineraries, managing travel budgets, or seeking destination advice. On first use, collects comprehensive travel preferences including budget level, travel style, interests, and dietary restrictions. Generates detailed travel plans with day-by-day itineraries, budget breakdowns, packing checklists, cultural do's and don'ts, and region-specific schedules. Maintains database of preferences and past trips for personalized recommendations.
14csv-data-visualizer
This skill should be used when working with CSV files to create interactive data visualizations, generate statistical plots, analyze data distributions, create dashboards, or perform automatic data profiling. It provides comprehensive tools for exploratory data analysis using Plotly for interactive visualizations.
6finance-manager
Comprehensive personal finance management system for analyzing transaction data, generating insights, creating visualizations, and providing actionable financial recommendations. Use when users need to analyze spending patterns, track budgets, visualize financial data, extract transactions from PDFs, calculate savings rates, identify spending trends, generate financial reports, or receive personalized budget recommendations. Triggers include requests like "analyze my finances", "track my spending", "create a financial report", "extract transactions from PDF", "visualize my budget", "where is my money going", "financial insights", "spending breakdown", or any finance-related analysis tasks.
5startup-validator
Comprehensive startup idea validation and market analysis tool. Use when users need to evaluate a startup idea, assess market fit, analyze competition, validate problem-solution fit, or determine market positioning. Triggers include requests to "validate my startup idea", "analyze market opportunity", "check if there's demand for", "research competition for", "evaluate business idea", or "see if my idea is viable". Provides data-driven analysis using web search, market frameworks, competitive research, and positioning recommendations.
5token-budget-advisor
Proactive token budget assessment and task chunking strategy. Use this skill when queries involve multiple large file uploads, requests for comprehensive multi-document analysis, complex multi-step workflows with heavy research (10+ tool calls), phrases like "complete analysis", "full audit", "thorough review", "deep dive", or tasks combining extensive research with large output artifacts. This skill helps assess token consumption risk early and recommend chunking strategies before beginning work.
5