network-health-check — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited network-health-check (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Requires: network Optional: none
Verify required tools through MCP discovery before collecting data; discovery alone does not prove controller connectivity or authorization. If a required server/tool is missing or a required read fails, stop and report it unavailable. Optional sources may be skipped only when the report visibly names the missing source and resulting coverage limits. Use the product setup skill for connection help; never request secrets.
Every report must include a Coverage and Limitations section: name each requested source and its status (available, unavailable, partial, or capped), requested time window/timezone or current-state collection time, actual filters, returned counts, limits, pagination, and any failed calls or unknown fields. Counts describe retrieved records, not totals unless completeness is established. A successful empty query is an observation; a failed or missing source is unavailable, never an empty result. If a limit is reached, label the source capped unless further bounded reads establish coverage. If completeness cannot be established, label it partial. Do not claim complete coverage, all-clear, or overall health from unavailable, partial, or capped data; say “No concerning activity found in the retrieved records” when appropriate.
Separate Observations (cite source/tool, record ID and timestamp when available), Hypotheses (correlations and alternative explanations), and Identity (only explicit source-backed credential/account attribution, with its limits). Timing, similar names, proximity, or absence of a matching event alone proves neither identity nor cause. A credential event identifies the recorded account, not who physically used it. Missing mappings or clock uncertainty limit correlations.
Before running a health check, verify the MCP server is configured:
unifi-network-setup skill.unifi_tool_index to confirm available tools. If no UniFi tools are listed, the server is not connected.Use unifi_batch to gather all required data in a single parallel operation:
unifi_batch(operations=[
{ "tool": "unifi_get_system_info" },
{ "tool": "unifi_get_network_health" },
{ "tool": "unifi_list_devices" },
{ "tool": "unifi_list_alarms" }
])This single batch call replaces sequential tool calls and returns all data needed for the report. Do not call these tools one at a time.
If device or alarm issues are found and more detail is needed, a follow-up batch can add:
unifi_batch(operations=[
{ "tool": "unifi_list_clients" },
{ "tool": "unifi_get_top_clients" }
])Use these reference documents to interpret the data returned by the batch call:
references/device-states.md — maps device state integer codes to human-readable status (online, offline, isolated, etc.) and explains what each state means operationally. Do not guess at state codes — consult this reference before classifying device status.references/alarm-types.md — describes known alarm types, their severity levels, and recommended remediation steps. Consult before classifying alarm severity or suggesting actions.references/health-subsystems.md — explains the per-subsystem health fields returned by unifi_get_network_health (WAN, LAN, WLAN, VPN), how to interpret status values, and the recommended diagnostic priority order: WAN → LAN → WLAN → VPN.From the device list, identify:
state != 1; these are not all offline. Check references/device-states.md for the full state code table.upgradeable field. Report current vs available firmware version.For each active alarm, classify severity using references/alarm-types.md and provide a plain-language explanation with remediation steps from that reference.
Present findings using this structure:
## Network Health Report
**Overall Status:** [Healthy within checked scope / Warning / Critical / Unavailable / Partial]
**Controller:** [version] — uptime [X days]
### Devices ([online]/[total])
- [List any offline or problematic devices with their state code and meaning]
- [List devices needing firmware updates with current and available versions]
### Active Alarms ([count])
- [Summarize each alarm with severity and recommendation]
### Recommendations
1. [Actionable item]
2. [Actionable item]When all required reads succeeded with established coverage, summarize “No issues found in the checked scope.” Otherwise report partial or unavailable coverage, even when no issues were retrieved.
unifi_batch for initial data gathering — sequential tool calls are significantly slower.unifi_get_network_health shows WAN health issues, that likely explains many downstream problems — lead with that finding and follow the WAN → LAN → WLAN → VPN diagnostic priority from references/health-subsystems.md.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.