with one click
healthcheck
ADA system health check and diagnostic export
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
ADA system health check and diagnostic export
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | healthcheck |
| description | ADA system health check and diagnostic export |
| disable-model-invocation | true |
Check system health and dependencies for ADA capture and analysis workflows. Create a diagnostic ZIP bundling capture sessions, analysis sessions, and Claude Code session transcripts from the current session.
MANDATORY: Before running any ada command, resolve the packaged ReadyCheck release and set the environment:
READYCHECK_PLUGIN_ROOT="$(${CLAUDE_PLUGIN_ROOT}/scripts/ensure_release.sh)"
export ADA_BIN_DIR="${READYCHECK_PLUGIN_ROOT}/bin"
export ADA_LIB_DIR="${READYCHECK_PLUGIN_ROOT}/lib"
ensure_release.sh automatically prefers a valid local dist/ runtime when the plugin is being tested from a ReadyCheck checkout.
If $PREFLIGHT_CHECK is set to 1:
ada doctor check to show current status (user explicitly requested it)If $PREFLIGHT_CHECK is not set:
ada doctor check$PREFLIGHT_CHECK = 1Run the doctor command:
${ADA_BIN_DIR}/ada doctor check
For JSON output (useful for programmatic parsing):
${ADA_BIN_DIR}/ada doctor check --format json
Present the results to the user:
ADA Doctor
==========
Core:
✓ frida agent: /path/to/libfrida_agent.dylib
Analysis:
✓ whisper: /path/to/bin/whisper-cli
✓ ffmpeg: /path/to/bin/ffmpeg
Status: All checks passed
{
"status": "ok",
"checks": {
"frida_agent": { "ok": true, "path": "/path/to/lib/libfrida_agent.dylib" },
"whisper": { "ok": true, "path": "/path/to/bin/whisper-cli" },
"ffmpeg": { "ok": true, "path": "/path/to/bin/ffmpeg" }
},
"issues_count": 0
}
| Category | Check | Description |
|---|---|---|
| Core | Frida agent library | Checks ADA_AGENT_RPATH_SEARCH_PATHS or known paths for libfrida_agent.dylib |
| Analysis | Whisper installed | Checks for whisper-cli (bundled) or whisper (system) |
| Analysis | FFmpeg installed | Checks for bundled or system FFmpeg |
NOT checked by doctor (checked at runtime when capture starts):
If issues are found:
Read the Claude Code session metadata:
cat ~/.claude/sessions/$PPID.json
Parse the JSON output. Extract:
sessionId (UUID)cwd (working directory path)Set $CC_SESSION_ID to the sessionId value.
Set $CC_CWD to the cwd value.
Derive $CC_PROJECT_DIR by replacing every / in $CC_CWD with -.
/Users/wezzard/Projects/ADA becomes -Users-wezzard-Projects-ADARead $DOCTOR_CAPTURE_SESSIONS (comma-separated capture session IDs).
Read $DOCTOR_ANALYSIS_SESSIONS (comma-separated analysis session IDs).
If neither variable is set, inform the user that no ADA sessions were recorded in this Claude Code session. Continue to Step 4 to still bundle the transcript.
For each capture session ID in $DOCTOR_CAPTURE_SESSIONS:
~/.ada/sessions/<session_id>/For each analysis session ID in $DOCTOR_ANALYSIS_SESSIONS:
~/.ada/analyses/<analysis_id>/The transcript files for this session:
~/.claude/projects/{{$CC_PROJECT_DIR}}/{{$CC_SESSION_ID}}.jsonl~/.claude/projects/{{$CC_PROJECT_DIR}}/{{$CC_SESSION_ID}}/subagents/~/.claude/projects/{{$CC_PROJECT_DIR}}/{{$CC_SESSION_ID}}/tool-results/Set $TIMESTAMP to the current UTC timestamp in YYYY-MM-DD-HH-MM-SS format.
Create a ZIP at {{$CC_CWD}}/readycheck-doctor-{{$TIMESTAMP}}.zip with the following structure:
readycheck-doctor-<timestamp>/
├── capture-sessions/
│ └── <session_id>/ (full copy of ~/.ada/sessions/<id>/)
├── analysis-sessions/
│ └── <analysis_id>/ (full copy of ~/.ada/analyses/<id>/)
└── transcript/
├── main.jsonl (the session JSONL)
├── subagents/ (agent-*.jsonl + agent-*.meta.json)
└── tool-results/ (*.txt files)
Use a single zip command to bundle all collected directories.
Skip the capture-sessions/ or analysis-sessions/ directory if no corresponding sessions were recorded.
Print to the user: