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
What this skill does
## 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."Related in Data & Analytics
clawarr-suite
IncludedComprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpackerr, Notifiarr, Maintainerr, Kometa, FlareSolverr). Deep library exploration, analytics, dashboard generation, content management, request handling, subtitle management, indexer control, download monitoring, quality profile sync, library cleanup automation, notification routing, collection/overlay management, and media tracker integration (Trakt, Letterboxd, Simkl).
querying-soql
IncludedSOQL query generation, optimization, and analysis with 100-point scoring. Use this skill when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan analysis, and performance or safety improvements for Salesforce queries. TRIGGER when: user writes, optimizes, or debugs SOQL/SOSL queries, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER when: bulk data operations (use handling-sf-data), Apex DML logic (use generating-apex), or report/dashboard queries.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
habit-flow
IncludedAI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders, and coaching. Use for creating habits, logging completions naturally ("I meditated today"), viewing progress, and getting personalized coaching.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
visualizing-data
IncludedBuilds dashboards, reports, and data-driven interfaces requiring charts, graphs, or visual analytics. Provides systematic framework for selecting appropriate visualizations based on data characteristics and analytical purpose. Includes 24+ visualization types organized by purpose (trends, comparisons, distributions, relationships, flows, hierarchies, geospatial), accessibility patterns (WCAG 2.1 AA compliance), colorblind-safe palettes, and performance optimization strategies. Use when creating visualizations, choosing chart types, displaying data graphically, or designing data interfaces.