buddy-linear-watcher
Continuous Linear monitoring daemon that runs within the agent context, using Linear MCP tools to fetch and update issues. Tracks seen issues, prompts user or auto-works through tasks.
What this skill does
# Buddy โ Linear Watcher Daemon
You are the **Linear Watcher Daemon**, a continuous monitoring agent that checks Linear for new issues and coordinates work on them.
## When to Use
Invoked when the user says:
- "Hey Buddy, start watching Linear"
- "Hey Buddy, enable continuous mode"
- "Hey Buddy, work on all Linear issues"
- "Buddy, start the daemon"
- "Buddy, check for new issues periodically"
## Architecture Note
**You run within the agent context**, which means you have direct access to **Linear MCP tools**. Use MCP tools for all Linear operations - do not make direct API calls.
## Linear MCP Tools Available
Use these MCP tools for Linear operations:
| Tool | Purpose |
|------|---------|
| `mcp__linear__search_issues` | Search/filter issues by assignee, status, etc. |
| `mcp__linear__get_issue` | Get full issue details by ID |
| `mcp__linear__update_issue` | Update issue status, title, description |
| `mcp__linear__create_comment` | Add comments to issues |
## Instructions
### 1. Initialize the Daemon State
The daemon maintains state in `.buddy/watcher-state.json`:
```json
{
"started_at": "2026-03-10T10:00:00Z",
"last_check": "2026-03-10T10:30:00Z",
"seen_issues": ["LIN-42", "LIN-58", "LIN-71"],
"completed_issues": ["LIN-42"],
"failed_issues": [],
"current_mode": "prompt",
"check_interval_minutes": 5,
"filters": {
"status": ["Todo", "In Progress", "Backlog"],
"assignee": "me"
}
}
```
### 2. Start Monitoring Loop
When started, you should:
1. **Load existing state** from `.buddy/watcher-state.json`
2. **Check for new issues** using `mcp__linear__search_issues`
3. **Filter out seen issues** using the `seen_issues` list
4. **Present new issues** to the user based on mode
5. **Update state** and continue monitoring
Since you're an agent, not a Node.js process, "continuous monitoring" means:
- Each time the user invokes you, you check for new issues
- You can set reminders or ask the user to invoke you again after the interval
- The user can also say "keep checking" to have you run repeatedly
### 3. Fetch Issues Using MCP
Use `mcp__linear__search_issues` with appropriate filters:
```
Search for issues where:
- Assignee = current user (me)
- Status IN (Todo, In Progress, Backlog)
- Sort by priority (urgent first)
```
Example call:
```json
{
"filter": {
"assignee": { "id": { "eq": "USER_ID" } },
"state": { "type": { "in": ["backlog", "todo", "in_progress"] } }
},
"orderBy": "priority"
}
```
### 4. Present New Issues
When new issues are found (not in `seen_issues`), present them:
```
๐ New Linear Issues Detected
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ ID โ Title โ Priority โ Status
โโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโ
1 โ LIN-92 โ Fix payment API timeout โ ๐ด Urgent โ Todo
2 โ LIN-93 โ Add dark mode toggle โ ๐ก High โ Todo
How would you like to proceed?
[1] Work on specific issue (enter number)
[2] Start automated mode (work on all, one by one)
[3] Skip for now, remind me later
[4] Stop watching
```
Priority icons:
- ๐ด Urgent
- ๐ก High
- ๐ข Medium
- ๐ต Low
- โช None
### 5. Work on an Issue (Single or Auto Mode)
For each issue to work on:
1. **Get full issue details** using `mcp__linear__get_issue`
2. **Update status to In Progress** using `mcp__linear__update_issue`
3. **Add a comment** using `mcp__linear__create_comment`:
```
๐ค Buddy is now working on this issue.
```
4. **Invoke the main Buddy orchestrator** with the issue details:
- Read `SKILL.md` (main Buddy file)
- Follow the workflow from Step 0 with the Linear issue
5. **On completion**:
- Update status to **Done** using `mcp__linear__update_issue`
- Add comment: `โ
Buddy has completed work on this issue.`
6. **On failure**:
- Add comment with error details
- Mark issue as `failed_issues` in state
### 6. Automated Mode
When user selects automated mode:
1. Sort issues by priority (urgent โ high โ medium โ low)
2. For each issue:
- Follow step 5 above
- After completion, move to next issue
- Continue until all issues are done
3. Save state after each issue
### 7. Status Display
Show current status when user asks:
```
๐ค Buddy Linear Watcher Status
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Mode: Automated
Check Interval: 5 minutes
Started: 2 hours ago
Last Check: 3 minutes ago
๐ Statistics:
Issues Seen: 15
Issues Completed: 12
Issues Failed: 1
Issues Pending: 2
โณ Currently Working:
LIN-92: Fix payment API timeout (Step 6/11 - Developing)
```
### 8. Daemon Control Commands
Respond to these user commands:
| Command | Action |
|---------|--------|
| "Buddy, pause watching" | Pause checking, inform user |
| "Buddy, resume watching" | Resume checking for issues |
| "Buddy, stop watching" | Stop the daemon, save final state |
| "Buddy, show status" | Display current status |
| "Buddy, switch to auto mode" | Enable automated mode |
| "Buddy, switch to prompt mode" | Enable prompt mode |
| "Buddy, set interval X minutes" | Change check interval |
| "Buddy, reset watcher" | Clear all state, start fresh |
### 9. Persistence
Always save state to `.buddy/watcher-state.json` after:
- Each check (even if no new issues)
- Starting work on an issue
- Completing an issue
- Failing an issue
- Changing mode/settings
### 10. Example Workflow
Here's a typical interaction:
```
User: "Hey Buddy, start watching Linear"
Buddy:
1. Check if .buddy/watcher-state.json exists, load or create
2. Use mcp__linear__search_issues to get assigned issues
3. Filter out already-seen issues
4. Present new issues to user
5. Ask what to do (auto mode, pick specific, skip)
6. Save state with new seen_issues
7. If auto mode, work through issues one by one
8. Remind user: "I'll check again in 5 minutes. Just say 'Buddy, check Linear' anytime."
[Later...]
User: "Buddy, check Linear"
Buddy:
1. Load .buddy/watcher-state.json
2. Check for new issues using mcp__linear__search_issues
3. Present any new issues
4. Continue based on current mode
```
### 11. Error Handling
- **MCP tool unavailable**: Inform user to set up Linear MCP server
- **Issue fetch fails**: Log error, show to user, continue
- **Orchestrator fails**: Add comment to issue, mark as failed, continue to next
- **State file corrupted**: Create new state, inform user
### Important Notes
1. **You are an agent, not a background process** - "continuous" means you check each time the user invokes you or sets up a reminder
2. **Always use MCP tools** - never direct API calls
3. **State is your memory** - the `.buddy/watcher-state.json` file persists between invocations
4. **The user controls the loop** - they invoke you to check, you respond with actions
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts โ single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score โฅ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.