triage-issue
The triage-issue skill analyzes GitHub issues submitted to the Hive repository by fetching issue details, investigating claims against the actual codebase, and determining validity. It categorizes issues as valid bugs, feature requests, misunderstandings, duplicates, or incomplete reports, then drafts technical responses explaining the behavior and rationale before closing invalid issues.
git clone --depth 1 https://github.com/aden-hive/hive /tmp/triage-issue && cp -r /tmp/triage-issue/.claude/skills/triage-issue ~/.claude/skills/triage-issueSKILL.md
# Triage Issue Skill Analyze a GitHub issue, verify claims against the codebase, and close invalid issues with a technical response. ## Trigger User provides a GitHub issue URL or number, e.g.: - `/triage-issue 1970` - `/triage-issue https://github.com/adenhq/hive/issues/1970` ## Workflow ### Step 1: Fetch Issue Details ```bash gh issue view <number> --repo adenhq/hive --json title,body,state,labels,author ``` Extract: - Title - Body (the claim/bug report) - Current state - Labels - Author If issue is already closed, inform user and stop. ### Step 2: Analyze the Claim Read the issue body and identify: 1. **The core claim** - What is the user asserting? 2. **Technical specifics** - File paths, function names, code snippets mentioned 3. **Expected behavior** - What do they think should happen? 4. **Severity claimed** - Security issue? Bug? Feature request? ### Step 3: Investigate the Codebase For each technical claim: 1. Find the referenced code using Grep/Glob/Read 2. Understand the actual implementation 3. Check if the claim accurately describes the behavior 4. Look for related tests, documentation, or design decisions ### Step 4: Evaluate Validity Categorize the issue as one of: | Category | Action | |----------|--------| | **Valid Bug** | Do NOT close. Inform user this is a real issue. | | **Valid Feature Request** | Do NOT close. Suggest labeling appropriately. | | **Misunderstanding** | Prepare technical explanation for why behavior is correct. | | **Fundamentally Flawed** | Prepare critique explaining the technical impossibility or design rationale. | | **Duplicate** | Find the original issue and prepare duplicate notice. | | **Incomplete** | Prepare request for more information. | ### Step 5: Draft Response For issues to be closed, draft a response that: 1. **Acknowledges the concern** - Don't be dismissive 2. **Explains the actual behavior** - With code references 3. **Provides technical rationale** - Why it works this way 4. **References industry standards** - If applicable 5. **Offers alternatives** - If there's a better approach for the user Use this template: ```markdown ## Analysis [Brief summary of what was investigated] ## Technical Details [Explanation with code references] ## Why This Is Working As Designed [Rationale] ## Recommendation [What the user should do instead, if applicable] --- *This issue was reviewed and closed by the maintainers.* ``` ### Step 6: User Review Present the draft to the user with: ``` ## Issue #<number>: <title> **Claim:** <summary of claim> **Finding:** <valid/invalid/misunderstanding/etc> **Draft Response:** <the markdown response> --- Do you want me to post this comment and close the issue? ``` Use AskUserQuestion with options: - "Post and close" - Post comment, close issue - "Edit response" - Let user modify the response - "Skip" - Don't take action ### Step 7: Execute Action If user approves: ```bash # Post comment gh issue comment <number> --repo adenhq/hive --body "<response>" # Close issue gh issue close <number> --repo adenhq/hive --reason "not planned" ``` Report success with link to the issue. ## Important Guidelines 1. **Never close valid issues** - If there's any merit to the claim, don't close it 2. **Be respectful** - The reporter took time to file the issue 3. **Be technical** - Provide code references and evidence 4. **Be educational** - Help them understand, don't just dismiss 5. **Check twice** - Make sure you understand the code before declaring something invalid 6. **Consider edge cases** - Maybe their environment reveals a real issue ## Example Critiques ### Security Misunderstanding > "The claim that secrets are exposed in plaintext misunderstands the encryption architecture. While `SecretStr` is used for logging protection, actual encryption is provided by Fernet (AES-128-CBC) at the storage layer. The code path is: serialize → encrypt → write. Only encrypted bytes touch disk." ### Impossible Request > "The requested feature would require [X] which violates [fundamental constraint]. This is not a limitation of our implementation but a fundamental property of [technology/protocol]." ### Already Handled > "This scenario is already handled by [code reference]. The reporter may be using an older version or misconfigured environment."
SOP for debugging browser automation failures on complex websites. Use when browser tools fail on specific sites like LinkedIn, Twitter/X, SPAs, or sites with Shadow DOM.
Required before any hive-browser CLI command. The browser is driven from the terminal by running `hive-browser <command> ... --json` via terminal_exec — not via MCP tools. Teaches the browser lifecycle rules (the bridge attaches to the USER'S running Chrome — never kill or launch browser processes; timeouts are transport issues, not crashes), the screenshot + coordinate workflow (hive-browser interact with a fractional coordinate) that reaches shadow-DOM inputs selectors can't see, the viewport-fraction coordinate rule (not pixels), rich-text editor quirks ("send button stays disabled" failures), and CSP gotchas. Covers Chrome via CDP through the GCU Beeline extension.
Required reading whenever any chart_* tool is available. Teaches the one-tool embedding contract (call chart_render → live chart appears in chat AND a downloadable PNG lands in the queen session dir), the ECharts (data viz) vs Mermaid (structural diagrams) decision, the BI/financial-grade aesthetic baseline (no chartjunk, restrained palette, proper typography, single message per chart), and the canonical spec patterns for the 12 most-common chart types. Skipping this leads to 1990s-Excel charts, missing downloads, and the agent writing markdown image links by hand instead of letting chart_render drive the UI.
Claim tasks, record step progress, and verify SOP gates in the colony SQLite queue. Applies when your spawn message includes a db_path field.
Proactively extract critical values from tool results into working notes before automatic context pruning destroys them.
Follow a structured recovery decision tree when tool calls fail instead of blindly retrying or giving up.
Required before calling image_generate. Create and edit images from a prompt — generate an image, make a picture / logo / illustration / icon / banner / poster / thumbnail / hero image / mockup / product shot / social graphic, or edit / restyle / combine existing images from reference images. Uses OpenAI gpt-image-2 through the Hive image service, billed to the user's Hive credits like an LLM call (no API key needed). Teaches the exact call shape, the quality/cost tradeoff (quality="low" is the default and cheapest), reference-image editing, how to show the result to the user with attach_file, and the failure modes (out of credits, model unavailable, moderation).
Read before automating LinkedIn with browser_* tools. LinkedIn combines shadow DOM (#interop-outlet), strict Trusted Types CSP that silently drops innerHTML, Lexical composer, native beforeunload dialogs that hang the bridge, and aggressive spam filters — each has bitten us at least once. Verified flows for profile messaging, connection-request acceptance, feed composition, and search. Requires hive.browser-automation. Verified against logged-in production 2026-04-11.