Files
AgentHub/plugins/agenthub-devtools/skills/hook-diagnostics/SKILL.md
T
nntrivi2001 17d56d0e01 refactor!: rebrand CCAM to AgentHub
Clean break, no compatibility alias. Renames the product name, the CLI
binary (`ccam` -> `agenthub`), the env var prefix (`CCAM_` ->
`AGENTHUB_`), the Prometheus metric namespace (`ccam_*` ->
`agenthub_*`), the tmux session prefix (`ccam-lane-<id>` ->
`agenthub-lane-<id>`), the per-repo runtime profile directory
(`.ccam/profile` -> `.agenthub/profile`), the lanes state root
(`~/.claude/ccam-lanes` -> `~/.claude/agenthub-lanes`), the bundled
plugins (`plugins/ccam*` -> `plugins/agenthub*`) and their slash
commands (`/ccam-doctor` -> `/agenthub-doctor`, `/ccam:*` ->
`/agenthub:*`).

Because there is no alias, an existing install has to be updated by
hand: rename its `.ccam/profile` directory and any `CCAM_*` variables,
and reinstall the plugin under its new name.

Two other name families are deliberately left alone here, since they are
not just strings: the `Claude-Code-Monitor` repository/marketplace name,
and the `agent-dashboard` npm package plus its `~/.claude/agent-dashboard`
runtime directory, which holds the live database and needs a migration
rather than a rename.

Verified: server 1406/1406, client 459/459, `grep -i ccam` clean across
tracked files, `openapi.yaml` regenerated (95 paths, unchanged count).
2026-09-07 12:09:15 +07:00

2.7 KiB

description
description
Diagnose Claude Code hook installation, delivery, and ingestion issues. Checks hook configuration, connectivity, event flow, and identifies common problems. Use when events are not appearing in the dashboard.

Hook Diagnostics

Diagnose hook integration issues between Claude Code and the Agent Monitor.

Input

The user provides: $ARGUMENTS

This may be:

  • "full" or empty (default: run all diagnostics)
  • "install" to check hook installation only
  • "connectivity" to check dashboard connectivity only
  • "events" to check event delivery only

Procedure

Run diagnostic checks in this order:

1. Hook Installation Check

Verify hooks are installed in Claude Code settings:

# Check if hooks exist in Claude Code settings
cat ~/.claude/settings.json | jq '.hooks // empty'

Verify:

  • All 7 expected hook types are registered: PreToolUse, PostToolUse, Stop, SubagentStop, Notification, SessionStart, SessionEnd
  • Hook commands point to the correct handler script path
  • Handler script exists and is readable at the configured path

2. Dashboard Connectivity

Test that the dashboard API is reachable:

curl -sf http://localhost:4820/api/health

Verify:

  • Dashboard responds with 200 OK
  • Response includes expected health fields
  • WebSocket endpoint is accessible

3. Hook Handler Validation

Check the hook handler script:

# Verify handler exists and is executable
ls -la <handler-path>
# Syntax check
node --check <handler-path>

4. Event Delivery Test

Send a test event and verify it arrives:

echo '{"hook_type":"test","session_id":"diag-test","data":{}}' | \
  curl -sf -X POST http://localhost:4820/api/hooks/event \
  -H 'Content-Type: application/json' -d @-

5. Database Check

Verify the database is writable and events are persisted:

curl -sf http://localhost:4820/api/stats
curl -sf http://localhost:4820/api/events?limit=5

6. Recent Event Flow

Check if events are flowing:

  • Time since last event received
  • Events received in last hour
  • Any gaps in event delivery

Output Format

Present as a diagnostic report with:

Hook Diagnostics Report
━━━━━━━━━━━━━━━━━━━━━━
✅ Hook Installation .............. PASS
✅ Dashboard Connectivity ......... PASS
✅ Handler Script ................. PASS
⚠️ Event Delivery ................ WARN (slow)
✅ Database ....................... PASS
❌ Recent Event Flow .............. FAIL (no events in 2h)
━━━━━━━━━━━━━━━━━━━━━━
Overall: 5/6 checks passed

For each failed or warning check, include:

  • What was expected vs what was found
  • Specific remediation steps
  • Commands to fix the issue