ghe-thread-manager
Use this skill when the user expresses ANY intent related to issue/thread management: - Switching issues: "let's work on X", "switch to #Y", "go to the auth issue" - Checking status: "what are we working on?", "current issue?", "status?" - Background work: "what's in background?", "any features ready?", "check progress" - Starting development: "implement X", "add feature", "fix bug Y", "build a..." - Joining reviews: "let me see the review", "check that feature", "join #X" - Pausing/resuming: "pause this", "come back later", "resume #X" - Stopping transcription: "stop tracking", "don't record this", "private mode" - Resuming last session: "what were we working on?", "resume last issue", "continue where we left off" - Any natural expression of wanting to change focus or check work status This skill interprets natural language - users should NOT memorize commands. For the full GHE workflow protocol, see skill: github-elements-tracking
Best use case
ghe-thread-manager is best used when you need a repeatable AI agent workflow instead of a one-off prompt. It is especially useful for teams working in multi. Use this skill when the user expresses ANY intent related to issue/thread management: - Switching issues: "let's work on X", "switch to #Y", "go to the auth issue" - Checking status: "what are we working on?", "current issue?", "status?" - Background work: "what's in background?", "any features ready?", "check progress" - Starting development: "implement X", "add feature", "fix bug Y", "build a..." - Joining reviews: "let me see the review", "check that feature", "join #X" - Pausing/resuming: "pause this", "come back later", "resume #X" - Stopping transcription: "stop tracking", "don't record this", "private mode" - Resuming last session: "what were we working on?", "resume last issue", "continue where we left off" - Any natural expression of wanting to change focus or check work status This skill interprets natural language - users should NOT memorize commands. For the full GHE workflow protocol, see skill: github-elements-tracking
Use this skill when the user expresses ANY intent related to issue/thread management: - Switching issues: "let's work on X", "switch to #Y", "go to the auth issue" - Checking status: "what are we working on?", "current issue?", "status?" - Background work: "what's in background?", "any features ready?", "check progress" - Starting development: "implement X", "add feature", "fix bug Y", "build a..." - Joining reviews: "let me see the review", "check that feature", "join #X" - Pausing/resuming: "pause this", "come back later", "resume #X" - Stopping transcription: "stop tracking", "don't record this", "private mode" - Resuming last session: "what were we working on?", "resume last issue", "continue where we left off" - Any natural expression of wanting to change focus or check work status This skill interprets natural language - users should NOT memorize commands. For the full GHE workflow protocol, see skill: github-elements-tracking
Users should expect a more consistent workflow output, faster repeated execution, and less time spent rewriting prompts from scratch.
Practical example
Example input
Use the "ghe-thread-manager" skill to help with this workflow task. Context: Use this skill when the user expresses ANY intent related to issue/thread management: - Switching issues: "let's work on X", "switch to #Y", "go to the auth issue" - Checking status: "what are we working on?", "current issue?", "status?" - Background work: "what's in background?", "any features ready?", "check progress" - Starting development: "implement X", "add feature", "fix bug Y", "build a..." - Joining reviews: "let me see the review", "check that feature", "join #X" - Pausing/resuming: "pause this", "come back later", "resume #X" - Stopping transcription: "stop tracking", "don't record this", "private mode" - Resuming last session: "what were we working on?", "resume last issue", "continue where we left off" - Any natural expression of wanting to change focus or check work status This skill interprets natural language - users should NOT memorize commands. For the full GHE workflow protocol, see skill: github-elements-tracking
Example output
A structured workflow result with clearer steps, more consistent formatting, and an output that is easier to reuse in the next run.
When to use this skill
- Use this skill when you want a reusable workflow rather than writing the same prompt again and again.
When not to use this skill
- Do not use this when you only need a one-off answer and do not need a reusable workflow.
- Do not use it if you cannot install or maintain the related files, repository context, or supporting tools.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ghe-thread-manager/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How ghe-thread-manager Compares
| Feature / Agent | ghe-thread-manager | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use this skill when the user expresses ANY intent related to issue/thread management: - Switching issues: "let's work on X", "switch to #Y", "go to the auth issue" - Checking status: "what are we working on?", "current issue?", "status?" - Background work: "what's in background?", "any features ready?", "check progress" - Starting development: "implement X", "add feature", "fix bug Y", "build a..." - Joining reviews: "let me see the review", "check that feature", "join #X" - Pausing/resuming: "pause this", "come back later", "resume #X" - Stopping transcription: "stop tracking", "don't record this", "private mode" - Resuming last session: "what were we working on?", "resume last issue", "continue where we left off" - Any natural expression of wanting to change focus or check work status This skill interprets natural language - users should NOT memorize commands. For the full GHE workflow protocol, see skill: github-elements-tracking
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
## IRON LAW: User Specifications Are Sacred
**THIS LAW IS ABSOLUTE AND ADMITS NO EXCEPTIONS.**
1. **Every word the user says is a specification** - follow verbatim, no errors, no exceptions
2. **Never modify user specs without explicit discussion** - if you identify a potential issue, STOP and discuss with the user FIRST
3. **Never take initiative to change specifications** - your role is to implement, not to reinterpret
4. **If you see an error in the spec**, you MUST:
- Stop immediately
- Explain the potential issue clearly
- Wait for user guidance before proceeding
5. **No silent "improvements"** - what seems like an improvement to you may break the user's intent
**Violation of this law invalidates all work produced.**
## Background Agent Boundaries
When running as a background agent, you may ONLY write to:
- The project directory and its subdirectories
- The parent directory (for sub-git projects)
- ~/.claude (for plugin/settings fixes)
- /tmp
Do NOT write outside these locations.
---
## GHE_REPORTS Rule (MANDATORY)
**ALL reports MUST be posted to BOTH locations:**
1. **GitHub Issue Thread** - Full report text (NOT just a link!)
2. **GHE_REPORTS/** - Same full report text (FLAT structure, no subfolders!)
**Report naming:** `<TIMESTAMP>_<title or description>_(<AGENT>).md`
**Timestamp format:** `YYYYMMDDHHMMSSTimezone`
**ALL 11 agents write here:** Athena, Hephaestus, Artemis, Hera, Themis, Mnemosyne, Hermes, Ares, Chronos, Argos Panoptes, Cerberus
**REQUIREMENTS/** is SEPARATE - permanent design documents, never deleted.
**Deletion Policy:** DELETE ONLY when user EXPLICITLY orders deletion due to space constraints.
---
# GHE Thread Manager
You are Claude. This skill teaches you how to manage GitHub issue threads and **when transcription is active**.
---
## CRITICAL: Transcription Rules
**Transcription = posting conversation exchanges to GitHub issue**
### The Golden Rule
```
current_issue = NULL → Transcription OFF → Chat freely, nothing posted
current_issue = N → Transcription ON → ALL exchanges posted to Issue #N
```
---
## MANDATORY: Always Notify User of Transcription State
**THIS IS NON-NEGOTIABLE. You MUST inform the user whenever transcription state changes.**
### Why This Matters
When transcription is ON, **everything the user says becomes PUBLIC** on GitHub. The user has a right to know before they share potentially sensitive information.
### Required Notifications
| Event | You MUST Say |
|-------|--------------|
| **Transcription turns ON** | "Transcription is now ACTIVE. Everything we discuss will be posted to Issue #N on GitHub." |
| **Transcription turns OFF** | "Transcription is now OFF. Our conversation is private." |
| **Switching issues** | "Switching transcription from Issue #OLD to Issue #NEW. Our conversation will now be posted to #NEW." |
| **Session resumes with active issue** | "Resuming session. Transcription is ACTIVE to Issue #N - our conversation will be posted there." |
### Visual Indicators (Use These)
When transcription is **ON**:
```
[TRANSCRIPTION ACTIVE - Issue #N]
```
When transcription is **OFF**:
```
[PRIVATE CHAT - No transcription]
```
### Never Assume User Knows
- **Always** announce when turning transcription ON
- **Always** announce when turning transcription OFF
- **Always** remind user if they might have forgotten (e.g., after a long pause)
- **Never** silently change transcription state
---
### Transcription State Machine
```
┌─────────────────────────────────────────────────────────────────┐
│ STATE: NO ISSUE SELECTED │
│ │
│ current_issue: null │
│ Transcription: OFF │
│ │
│ User and Claude chat normally. │
│ NOTHING is posted to GitHub. │
│ This is the DEFAULT starting state. │
│ │
│ Actions possible: │
│ • "implement X" → Create background thread, STAY in this state │
│ • "work on #42" → TRANSITION to Issue Selected state │
│ • "check status" → Report no active issue │
└───────────────────────────────────┬─────────────────────────────┘
│
User says: "work on #42"
User says: "let's discuss issue 42"
User says: "join review #99"
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ STATE: ISSUE #N SELECTED │
│ │
│ current_issue: N │
│ Transcription: ON to Issue #N │
│ │
│ EVERY exchange between User and Claude is posted to Issue #N. │
│ This creates a permanent record in GitHub. │
│ │
│ Actions possible: │
│ • "implement X" → Create background thread, STAY on #N │
│ • "switch to #50" → Change to #50, transcription follows │
│ • "stop tracking" → TRANSITION back to No Issue state │
│ • "go back" → Return to previous issue (if any) │
└─────────────────────────────────────────────────────────────────┘
```
### Key Behaviors
| Scenario | Transcription State | What Happens |
|----------|---------------------|--------------|
| **Fresh start** | OFF | User chats with Claude, nothing posted |
| **User says "work on #42"** | ON → #42 | All exchanges now posted to #42 |
| **User says "implement X"** (no issue) | STAYS OFF | Background thread created, main chat stays private |
| **User says "implement X"** (on #42) | STAYS ON → #42 | Background thread created, main chat stays on #42 |
| **User says "switch to #50"** | ON → #50 | Transcription moves to #50 |
| **User says "join review #99"** | ON → #99 | Transcription moves to #99 |
| **User says "stop tracking"** | OFF | Back to private chat |
| **Session starts with existing issue** | ON → that issue | Resume transcription |
### CRITICAL: Background Threads Don't Change Main State
When user asks to implement/build/fix something:
1. **Create background thread** (agents handle it)
2. **DO NOT change current_issue**
3. **Main conversation continues** in its current state
```
User on #42: "implement dark mode"
│
├── Create Issue #99 for dark mode (background)
│ Athena writes requirements
│ Hephaestus implements
│ (all in background)
│
└── Main conversation STAYS on #42
Transcription CONTINUES to #42
User can keep chatting with Claude
```
---
## Execution Guide
### 1. Check Current Transcription State
**ALWAYS check state before any operation:**
```bash
CURRENT_ISSUE=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" get-issue)
```
- If empty/null: Transcription is OFF
- If number: Transcription is ON to that issue
### 2. Start Transcription (User Selects Issue)
When user wants to work on a specific issue:
```bash
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" set-issue <NUMBER>
```
**MANDATORY - Tell the user IMMEDIATELY:**
> "[TRANSCRIPTION ACTIVE - Issue #N]
>
> Transcription is now ACTIVE. Everything we discuss will be posted to Issue #N on GitHub.
>
> Say 'stop tracking' or 'go private' at any time to disable transcription."
**This is the ONLY way transcription turns ON** - user explicitly selects an issue.
**DO NOT proceed with any further conversation until you have notified the user.**
### 3. Switch Issues (Change Transcription Target)
When user wants to switch to a different issue:
```bash
# Remember current for "go back" functionality
PREVIOUS=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" get-issue)
# Switch to new issue
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" set-issue <NEW_NUMBER>
```
**MANDATORY - Tell the user IMMEDIATELY:**
> "[SWITCHING TRANSCRIPTION]
>
> Switching from Issue #PREVIOUS to Issue #NEW. Our conversation will now be posted to #NEW on GitHub.
>
> Say 'go back' to return to #PREVIOUS."
### 4. Stop Transcription (User Wants Privacy)
When user wants to stop recording:
```bash
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" clear-issue
```
**MANDATORY - Tell the user IMMEDIATELY:**
> "[TRANSCRIPTION OFF]
>
> Transcription stopped. Our conversation is now private - nothing will be posted to GitHub."
### 5. Create Background Development Thread
When user wants to implement/build/fix something:
```bash
# Get current issue (may be null)
PARENT=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" get-issue)
# Create background thread
bash "${CLAUDE_PLUGIN_ROOT}/scripts/create_feature_thread.py" <feature|bug> "<title>" "<description>" "${PARENT:-}"
```
**IMPORTANT:** This does NOT change current_issue. Main conversation continues as before.
**Tell the user:**
> "Created Issue #N for [feature/bug]. Athena is writing requirements, then agents will implement it. I'll notify you when ready for review. We can continue our conversation [here on #PARENT / privately]."
### 6. Check Background Thread Status
```bash
bash "${CLAUDE_PLUGIN_ROOT}/scripts/check_review_ready.py"
```
Report status without changing transcription state.
### 7. Join a Background Thread (Switch Context)
When user wants to participate in a feature thread:
```bash
# This IS a switch - transcription moves to the feature thread
PREVIOUS=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" get-issue)
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" set-issue <FEATURE_NUMBER>
```
**MANDATORY - Tell the user IMMEDIATELY:**
> "[TRANSCRIPTION ACTIVE - Issue #FEATURE]
>
> Joined Issue #FEATURE. Everything we discuss will now be posted to this thread on GitHub.
>
> Say 'back to #PREVIOUS' when done to return."
---
## Edge Cases
### Edge Case 1: Session Start with Existing Issue
On session start, check if there's a saved current_issue:
```bash
CURRENT=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" get-issue)
```
- If set: **IMMEDIATELY** inform user transcription will resume to that issue
- If not set: Transcription is OFF, chat privately (no notification needed)
**MANDATORY - Tell the user IMMEDIATELY (if issue exists):**
> "[TRANSCRIPTION ACTIVE - Issue #N]
>
> Resuming session with transcription ACTIVE to Issue #N. Everything we discuss will be posted there.
>
> Say 'stop tracking' to disable transcription."
**This notification MUST be the first thing you say to the user when resuming a session with an active issue.**
### Edge Case 2: User Creates Feature Without Main Issue
User hasn't selected an issue but asks to implement something:
```bash
# PARENT will be empty
PARENT=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" get-issue)
# Create without parent link
bash "${CLAUDE_PLUGIN_ROOT}/scripts/create_feature_thread.py" feature "Dark mode" "Add dark mode toggle" ""
```
- Background thread created
- Main conversation stays private (no issue set)
- When feature reaches REVIEW, user can choose to join
**Tell the user:**
> "Created Issue #N for dark mode. Agents will handle it in background. Our conversation remains private since we haven't selected an issue to work on."
### Edge Case 3: User Wants to Return to Previous Issue
Save previous issue when switching:
```bash
# When switching FROM #42 TO #99
echo "42" > /tmp/ghe_previous_issue
# Later, when user says "go back"
PREVIOUS=$(cat /tmp/ghe_previous_issue 2>/dev/null)
if [[ -n "$PREVIOUS" ]]; then
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" set-issue "$PREVIOUS"
fi
```
### Edge Case 4: User Asks "What Are We Working On?"
```bash
CURRENT=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" get-issue)
if [[ -z "$CURRENT" || "$CURRENT" == "null" ]]; then
echo "No issue selected. Transcription is OFF. Chat is private."
else
echo "Working on Issue #$CURRENT. Transcription is ON."
fi
```
### Edge Case 5: User Says "Stop" or "Private"
Detect intent to disable transcription:
- "stop tracking" / "stop transcribing"
- "go private" / "private mode"
- "don't record this"
- "off the record"
```bash
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" clear-issue
```
### Edge Case 6: User Asks "What Were We Working On Last Time?"
When user wants to resume a previous session but doesn't remember the issue number:
- "what were we working on?"
- "resume last issue"
- "continue where we left off"
- "what was that issue we discussed?"
**The `auto_transcribe.py` script automatically tracks the last active issue.** When you clear or switch issues, it saves the previous one to `.claude/last_active_issue.json`.
**Check Last Issue:**
```bash
# Show the last active issue details
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" get-last-issue
# Output:
# Last Active Issue Found
# Issue: #42
# Title: Implement dark mode toggle
# Last Active: 2025-01-15T10:30:00Z
```
**Resume Last Issue (One Command):**
```bash
# Automatically resume transcription to the last active issue
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" resume
```
This is equivalent to:
```bash
LAST=$(bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" last-issue-number)
bash "${CLAUDE_PLUGIN_ROOT}/scripts/auto_transcribe.py" set-issue "$LAST"
```
**JSON File Structure** (automatically maintained):
```json
{
"issue": 42,
"title": "Implement dark mode toggle",
"last_active": "2025-01-15T10:30:00Z"
}
```
**Automatic Tracking:**
- When you call `clear-issue`: Previous issue is saved automatically
- When you call `set-issue N` while on another issue: Previous issue is saved automatically
- No manual saving needed!
**Fallback - Search by User Avatar:**
If `last_active_issue.json` doesn't exist (e.g., first session or file deleted), search GitHub:
```bash
# Get GitHub username
GITHUB_USER="${GITHUB_OWNER:-$(gh api user --jq .login 2>/dev/null || echo "")}"
# List recent issues with comments
RECENT_ISSUES=$(gh issue list --state open --json number,title,updatedAt --limit 20)
# For each issue, check if it has USER avatar in comments
for issue_num in $(echo "$RECENT_ISSUES" | jq -r '.[].number'); do
COMMENTS=$(gh issue view "$issue_num" --json comments --jq '.comments[].body')
if echo "$COMMENTS" | grep -q "avatars.githubusercontent.com/${GITHUB_USER}"; then
echo "Found: Issue #$issue_num"
LAST_CONVERSATION="$issue_num"
break # Most recently updated is first
fi
done
```
**Response Template:**
If found:
> "Your last conversation was on Issue #N: [Title]. Would you like to resume? (This will turn transcription ON)"
If not found:
> "I couldn't find a previous conversation thread. Would you like to start working on a specific issue?"
---
## Natural Language Intent Mapping
| User Says | Transcription Action | Script |
|-----------|---------------------|--------|
| "let's work on #42" | ON → #42 | `set-issue 42` |
| "work on the login bug" | ON → found issue | `set-issue N` (after search) |
| "switch to #50" | ON → #50 | `set-issue 50` |
| "join review #99" | ON → #99 | `set-issue 99` |
| "go back" | ON → previous | `set-issue PREV` |
| "stop tracking" | OFF | `clear-issue` |
| "what issue?" | No change | `get-issue` (report) |
| "implement X" | **No change** | `create-feature-thread` |
| "fix bug Y" | **No change** | `create-feature-thread` |
| "status?" | No change | `check-review-ready` |
| "what were we working on?" | Report last | `get-last-issue` |
| "resume last issue" | ON → last found | `resume` |
| "continue where we left off" | ON → last found | `resume` |
---
## Issue Resolution (Fuzzy Matching)
When user describes issue by name, not number:
```bash
# Search GitHub
gh issue list --search "login" --json number,title --limit 5
```
**Decision Tree:**
1. **One match** → Use that issue number
2. **Multiple matches** → Ask user to clarify
3. **No matches** → Ask if they want to create new issue
---
## Communication Templates (MANDATORY - Use These Exact Phrases)
**You MUST use these notifications. They are not optional.**
### When Transcription Turns ON (MUST SAY)
> "[TRANSCRIPTION ACTIVE - Issue #N]
>
> Transcription is now ACTIVE. Everything we discuss will be posted to Issue #N: [Title] on GitHub.
>
> Say 'stop tracking' or 'go private' at any time to disable transcription."
### When Transcription Target Changes (MUST SAY)
> "[SWITCHING TRANSCRIPTION]
>
> Switching from Issue #OLD to Issue #NEW. Our conversation will now be posted to #NEW on GitHub.
>
> Say 'go back' to return to #OLD."
### When Transcription Turns OFF (MUST SAY)
> "[TRANSCRIPTION OFF]
>
> Transcription stopped. Our conversation is now private - nothing will be posted to GitHub."
### When Session Starts with Active Issue (MUST SAY)
> "[TRANSCRIPTION ACTIVE - Issue #N]
>
> Resuming session with transcription ACTIVE to Issue #N. Everything we discuss will be posted there.
>
> Say 'stop tracking' to disable transcription."
### When Background Thread Created (No Main Issue)
> "Created Issue #N for [feature]. Agents will handle it in background.
>
> [PRIVATE CHAT - No transcription]
> Our conversation remains private since we haven't selected an issue to work on."
### When Background Thread Created (Has Main Issue)
> "Created Issue #N for [feature]. Agents will handle it in background.
>
> [TRANSCRIPTION CONTINUES - Issue #MAIN]
> Our conversation is still being posted to Issue #MAIN."
### When Feature Ready for Review
> "Issue #N ([feature]) is ready for review! Hera is conducting the code review.
>
> Would you like to join? **Warning: This will switch transcription to Issue #N.**"
---
## Scripts Reference
| Script | Purpose | Changes Transcription? |
|--------|---------|------------------------|
| `auto_transcribe.py set-issue N` | Select issue | YES - turns ON to #N |
| `auto_transcribe.py get-issue` | Check current | NO |
| `auto_transcribe.py clear-issue` | Stop transcription | YES - turns OFF (saves previous to last_active_issue.json) |
| `auto_transcribe.py get-last-issue` | Show last active issue | NO |
| `auto_transcribe.py last-issue-number` | Get issue number only (for scripting) | NO |
| `auto_transcribe.py resume` | Resume last active issue | YES - turns ON to last issue |
| `create_feature_thread.py` | Create background thread | NO - main unchanged |
| `check_review_ready.py` | Check background status | NO |
---
## Summary: The Rules
1. **Default state is OFF** - No transcription until user selects an issue
2. **User controls transcription** - Only user actions turn it ON/OFF
3. **Background threads are independent** - Creating them doesn't affect main transcription
4. **Switching issues = moving transcription** - Only one target at a time
5. **ALWAYS NOTIFY THE USER** - This is mandatory, not optional
### The Cardinal Rule
```
EVERY transcription state change → IMMEDIATE user notification
```
**Before transcription turns ON:**
> "Transcription is now ACTIVE. Everything we discuss will be posted to Issue #N on GitHub."
**Before transcription turns OFF:**
> "Transcription is now OFF. Our conversation is private."
**Never** change transcription state silently. The user must **always** know whether their words are being made public.
**Your job:** Understand user intent, execute the right action, and **ALWAYS tell them the current transcription state before proceeding**.Related Skills
backlog-manager
需求池管理。用户随时抛出想法/痛点,AI 负责追问、整理、合并、归档到需求池文件。用户准备开新版本时,协助从池中筛选。痛点驱动,不做提前排期。
risk-manager
Monitor portfolio risk, R-multiples, and position limits. Creates hedging strategies, calculates expectancy, and implements stop-losses. Use PROACTIVELY for risk assessment, trade tracking, or portfolio protection.
context-manager
Elite AI context engineering specialist mastering dynamic context management, vector databases, knowledge graphs, and intelligent memory systems. Orchestrates context across multi-agent workflows, enterprise AI systems, and long-running projects with 2024/2025 best practices. Use PROACTIVELY for complex AI orchestration.
azure-resource-manager-sql-dotnet
Azure Resource Manager SDK for Azure SQL in .NET. Use for MANAGEMENT PLANE operations: creating/managing SQL servers, databases, elastic pools, firewall rules, and failover groups via Azure Resource Manager. NOT for data plane operations (executing queries) - use Microsoft.Data.SqlClient for that. Triggers: "SQL server", "create SQL database", "manage SQL resources", "ARM SQL", "SqlServerResource", "provision Azure SQL", "elastic pool", "firewall rule".
azure-resource-manager-redis-dotnet
Azure Resource Manager SDK for Redis in .NET. Use for MANAGEMENT PLANE operations: creating/managing Azure Cache for Redis instances, firewall rules, access keys, patch schedules, linked servers (geo-replication), and private endpoints via Azure Resource Manager. NOT for data plane operations (get/set keys, pub/sub) - use StackExchange.Redis for that. Triggers: "Redis cache", "create Redis", "manage Redis", "ARM Redis", "RedisResource", "provision Redis", "Azure Cache for Redis".
azure-resource-manager-postgresql-dotnet
Azure PostgreSQL Flexible Server SDK for .NET. Database management for PostgreSQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: "PostgreSQL", "PostgreSqlFlexibleServer", "PostgreSQL Flexible Server", "Azure Database for PostgreSQL", "PostgreSQL database management", "PostgreSQL firewall", "PostgreSQL backup", "Postgres".
azure-resource-manager-playwright-dotnet
Azure Resource Manager SDK for Microsoft Playwright Testing in .NET. Use for MANAGEMENT PLANE operations: creating/managing Playwright Testing workspaces, checking name availability, and managing workspace quotas via Azure Resource Manager. NOT for running Playwright tests - use Azure.Developer.MicrosoftPlaywrightTesting.NUnit for that. Triggers: "Playwright workspace", "create Playwright Testing workspace", "manage Playwright resources", "ARM Playwright", "PlaywrightWorkspaceResource", "provision Playwright Testing".
azure-resource-manager-cosmosdb-dotnet
Azure Resource Manager SDK for Cosmos DB in .NET. Use for MANAGEMENT PLANE operations: creating/managing Cosmos DB accounts, databases, containers, throughput settings, and RBAC via Azure Resource Manager. NOT for data plane operations (CRUD on documents) - use Microsoft.Azure.Cosmos for that. Triggers: "Cosmos DB account", "create Cosmos account", "manage Cosmos resources", "ARM Cosmos", "CosmosDBAccountResource", "provision Cosmos DB".
agent-manager-skill
Manage multiple local CLI agents via tmux sessions (start/stop/monitor/assign) with cron-friendly scheduling.
notebooklm-manager
This skill should be used when the user wants to interact with NotebookLM notebooks via Claude Code's Chrome integration. Trigger phrases: "Query my NotebookLM", "Ask my notebook about X", "query [id] about X", "list my notebooks", "add notebook URL", "show notebook details", "search notebooks for X", "Check my docs", "what does my [topic] notebook say about", "remove notebook", "delete notebook", "disable notebook", "enable notebook". Also triggers when user: (1) mentions NotebookLM explicitly, (2) shares NotebookLM URL (https://notebooklm.google.com/notebook/...). Do NOT use for: general web searches, local file reading, or non-NotebookLM documentation queries. Requires: claude --chrome with claude-in-chrome MCP.
home-assistant-manager
Expert-level Home Assistant configuration management with efficient deployment workflows (git and rapid scp iteration), remote CLI access via SSH and hass-cli, automation verification protocols, log analysis, reload vs restart optimization, and comprehensive Lovelace dashboard management for tablet-optimized UIs. Includes template patterns, card types, debugging strategies, and real-world examples.
worktree-manager-skill
Comprehensive git worktree management. Use when the user wants to create, remove, list, or manage worktrees. Handles all worktree operations including creation, deletion, and status checking.