skills/update-linear-post-job/SKILL.md
Three-step Linear update protocol after job completion - update child issue, check parent completion, update parent if all children done
npx skillsauth add auldsyababua/instructor-workflow Update Linear Post-JobInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when:
Triggers:
TDD Workflow Context:
Purpose: Mark the completed job (child issue) as Done in Linear
Prerequisites:
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:
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
}
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:
allChildrenDone === true: Proceed to Step 3 (update parent)allChildrenDone === false: Skip to Step 4 (report to Planning Agent)What to check:
state.name === "Done"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:
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
}
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
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)
Note: This skill executes AFTER branch creation and PR merge
7-Phase TDD Workflow:
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
mcp__linear-server__update_issue, mcp__linear-server__get_issue, mcp__linear-server__list_issues, mcp__linear-server__create_comment.project-context.md (contains team name for Linear queries)docs/agents/tracking/tracking-agent.mddocs/agents/planning/planning-agent.mdtdd-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| 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 |
❌ Don't: Update Master Dashboard directly
❌ Don't: Block if parent update fails
❌ Don't: Assume all children Done without querying
❌ Don't: Update child issue state to "Closed" or "Canceled"
tools
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
testing
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.
tools
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.
tools
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.