Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Support

ASecurity

Triage a GitHub issue using diagnostics archives and logs. Use this skill when the user provides a GitHub issue number or URL, says "triage", "diagnose", "look at this issue", "check this bug report", or wants to analyze a diagnostics archive. Handles decryption, log analysis, device identification, root cause narrowing, label suggestions, and drafting issue comments.

222 stars
0 votes
0 copies
0 views
Added 9/20/2026
securityrustgobashnodetestingdebugginggitapisecurity

Works with

cliapi

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add homebridge-plugins/homebridge-eufy --skill support --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Support?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Support
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/homebridge-plugins-support/badge)](https://www.skillsdirectory.com/skills/homebridge-plugins-support)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: support
description: Triage a GitHub issue using diagnostics archives and logs. Use this skill when the user provides a GitHub issue number or URL, says "triage", "diagnose", "look at this issue", "check this bug report", or wants to analyze a diagnostics archive. Handles decryption, log analysis, device identification, root cause narrowing, label suggestions, and drafting issue comments.
---

# Support / Issue Triage

You are a support triage agent for homebridge-eufy-security. Given a GitHub issue, you decrypt diagnostics, analyze logs, identify root causes, and draft user-facing responses.

Refer to CLAUDE.md for label recommendations, issue comment guidelines, and diagnostic triage basics.

## Input

The user provides `$ARGUMENTS` as either:
- A GitHub issue number (e.g. `423`)
- A GitHub issue URL (e.g. `https://github.com/homebridge-plugins/homebridge-eufy-security/issues/423`)

## Step 1 -- Fetch the issue

```bash
gh issue view <number> --repo homebridge-plugins/homebridge-eufy-security
```

Extract:
- What the user reports (symptoms, expected vs actual behavior)
- Device model/type if mentioned
- Plugin version if mentioned
- Whether a diagnostics archive is attached

If no diagnostics attached, draft a comment asking the user to export diagnostics with debug mode enabled and stop.

## Step 2 -- Download and decrypt diagnostics

Download the `.tar.gz.enc` attachment, then:

```bash
node scripts/decrypt-diagnostics.mjs <file>.tar.gz.enc
```

The script prints the archive creation date. Note if the archive is older than 90 days -- data may be stale.

## Step 3 -- Validate archive completeness

List the extracted files and check what's present:

| File | Required for |
|---|---|
| `accessories.json` | All issues |
| `eufy-security.log` | Runtime issues |
| `eufy-lib.log` | Runtime issues |
| `configui-server.log` | UI issues |
| `configui-lib.log` | UI issues |
| `ffmpeg.log` | Streaming/snapshot issues |
| `ffmpeg-<serial>.log` | Per-camera streaming issues |
| `ffmpeg-snapshots.log` | Snapshot issues |
| `unsupported.json` | Device support requests |

**Stop conditions:**
- Runtime logs missing (`eufy-security.log`, `eufy-lib.log`) -- ask user to restart Homebridge, wait for full load, re-export
- Only `accessories.json` present -- archive incomplete, can only confirm device presence

## Step 4 -- Check debug mode

In `eufy-security.log`, check the first lines:
- **Debug ON**: log level `DEBUG`, file/line references (e.g. `platform.ts:311`), logger name includes version (e.g. `[EufySecurity-4.4.2-beta.41]`)
- **Debug OFF**: log level starts at `INFO`, no file/line refs, logger name is just `[EufySecurity]`

Also check config dump for `"enableDetailedLogging":true`.

If debug is disabled, ask the user to enable `Detailed Logging` in plugin settings and re-export. Label `debug log missing`.

## Step 5 -- Extract environment

From the first lines of `eufy-security.log`:
- Plugin version
- eufy-security-client version
- Node.js version
- OS and architecture

**HOOBS check**: If the environment indicates HOOBS (storage path, OS, or user mentions it), label `hoobs` + `wontfix`, comment, and close per CLAUDE.md guidelines.

**Node.js check**: Plugin requires Node.js 20, 22, or 24. If on an unsupported version, note it.

**PKCS1 check**: Node.js 24.5+ has native PKCS1 support -- `enableEmbeddedPKCS1Support` workaround is unnecessary. For Node.js 20/22, the embedded fallback is still needed.

## Step 6 -- Check config for excluded devices

From the config dump in `eufy-security.log`:
- `ignoreDevices` -- serial numbers excluded
- `ignoreStations` -- station serials excluded
- `cleanCache` -- stale accessory pruning

In `accessories.json`:
- `disabled: true` on a station -- its devices won't load
- `ignored: true` on a device -- excluded
- `unsupported: true` -- device type not supported

## Step 7 -- Confirm device presence

Search `accessories.json` for the reported device by type, model, serial, or name. Note: `type`, `isCamera`, `isSmartDrop`, `isLock`, `isDoorbell`, `DeviceEnabled`, `standalone`.

## Step 8 -- Analyze logs

### Runtime issues (`eufy-security.log`)
- Device discovery: search for device name/serial, `register_device`
- Discovery warnings: `[DISCOVERY WARNING]`, `[DEVICE SKIP]`, `[STATION SKIP]`
- Accessory instantiation: `Constructed`, `REGISTER CHARACTERISTIC`, `SEED`
- Service pruning: `Pruning unused service`
- Property events: `Property Changes`, `ON '...`
- Errors: `Error`, stack traces

### Library issues (`eufy-lib.log`)
- Device serial presence -- did the library load it?
- `property changed` events
- Connection/authentication errors
- Push notification handling

### Boundary determination

| Symptom | Layer |
|---|---|
| Device missing from `eufy-lib.log` or API errors | `eufy-security-client` |
| Device loads in library but fails in accessory registration | `homebridge-eufy-security` |
| P2P/push/MQTT failures | `eufy-security-client` |
| HomeKit service wrong or missing | `homebridge-eufy-security` |
| Config not applied | `homebridge-eufy-security` |

### Streaming issues

Check per-camera FFmpeg log (`ffmpeg-<serial>.log`) first -- it isolates that camera's stderr. Look for codec errors, resolution mismatches, connection failures.

If logs are insufficient for livestream issues, consider requesting temporary device sharing:

```
To validate a fix and avoid back-and-forth log exchanges, I'd need to test against an actual <device model> device. Would you be willing to temporarily share your device with the following Eufy account?

homebridge.eufy.sec@gmail.com

Please also let me know which country your account is registered in.

This is entirely optional -- no obligation. I understand sharing device access requires trust. The access would only be used for debugging and can be revoked at any time once testing is complete.
```

## Step 9 -- Cross-reference with code

If needed, read the relevant source to confirm behavior. Use the Architecture section in CLAUDE.md to locate the right files.

## Step 10 -- Produce triage report

Output:

```
## Triage: #<issue-number> -- <title>

### Environment
- Plugin: <version>
- eufy-security-client: <version>
- Node.js: <version>
- OS: <os>

### Root cause
<concise explanation with file:line references if applicable>

### Layer
homebridge-eufy-security / eufy-security-client / configuration issue / inconclusive

### Suggested labels
<comma-separated labels from CLAUDE.md label table>

### Suggested action
<what to do next: fix, upstream issue, request more info, close>

### Draft comment
<user-facing comment ready to post -- formal, concise, first person, simple language, no jargon>
```

Attribution

homebridge-pluginshomebridge-plugins
View sourceMore from homebridge-plugins →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Springboot Security

Java Spring Boot 服务中关于身份验证/授权、验证、CSRF、密钥、标头、速率限制和依赖安全的 Spring Security 最佳实践。

2456590 votes

Security Review

Use this skill when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment/sensitive features. Provides comprehensive security checklist and patterns.

2456590 votes

Paperclip Task Bridge

Create, comment on, update, and list Paperclip tasks from Hermes using scoped Paperclip API credentials.

805540 votes

Summarize Status

Write a short, colloquial summary for a Paperclip summary slot: open with the 1–3 specific, concrete actions the reader needs to take right now to unblock the work, then a brief plain-language status, streaming progress as it works.

805540 votes

Paperclip Evals

Choose, inspect, validate, and report Paperclip Runner or Product E2E evaluations while preserving evidence, provenance, cost, and failure classification.

805540 votes
View all in security →