Cc-skills health
Gmail Commander health check across all subsystems. TRIGGERS - gmail health, email bot status, gmail diagnostics, gmail bot check.
install
source · Clone the upstream repo
git clone https://github.com/terrylica/cc-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/terrylica/cc-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/gmail-commander/skills/health" ~/.claude/skills/terrylica-cc-skills-health-4a05b0 && rm -rf "$T"
manifest:
plugins/gmail-commander/skills/health/SKILL.mdsource content
Gmail Commander Health Check
Run diagnostics across all subsystems.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
Check All Subsystems
echo "=== 1. Gmail CLI Binary ===" ls -la "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/gmail-commander/scripts/gmail-cli/gmail" 2>/dev/null && echo "OK" || echo "MISSING — run: cd scripts/gmail-cli && bun install && bun run build" echo "" echo "=== 2. Environment Variables ===" echo "GMAIL_OP_UUID: ${GMAIL_OP_UUID:+SET}" echo "TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:+SET}" echo "TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID:-NOT_SET}" echo "HAIKU_MODEL: ${HAIKU_MODEL:-NOT_SET}" echo "OP_SERVICE_ACCOUNT_TOKEN: ${OP_SERVICE_ACCOUNT_TOKEN:+SET}" echo "" echo "=== 3. 1Password CLI ===" op account list 2>&1 | head -3 echo "" echo "=== 4. Bot Process ===" if [ -f /tmp/gmail-commander-bot.pid ]; then PID=$(cat /tmp/gmail-commander-bot.pid) if kill -0 "$PID" 2>/dev/null; then echo "Running (PID $PID)" else echo "STALE PID file (process $PID not found)" fi else echo "Not running" fi echo "" echo "=== 5. Digest Process ===" if [ -f /tmp/gmail-digest.pid ]; then PID=$(cat /tmp/gmail-digest.pid) if kill -0 "$PID" 2>/dev/null; then echo "Running (PID $PID)" else echo "Not running (stale PID)" fi else echo "Not running" fi echo "" echo "=== 6. launchd Jobs ===" launchctl list | grep gmail-commander 2>/dev/null || echo "No launchd jobs registered" echo "" echo "=== 7. Circuit Breakers ===" for f in /tmp/gmail-digest-circuit.json /tmp/gmail-commander-agent-circuit.json; do if [ -f "$f" ]; then echo "$(basename $f): $(cat $f)" else echo "$(basename $f): CLOSED (healthy)" fi done echo "" echo "=== 8. Recent Audit Logs ===" AUDIT_DIR="${AUDIT_DIR:-$HOME/own/amonic/logs/audit}" if [ -d "$AUDIT_DIR" ]; then LATEST=$(ls -t "$AUDIT_DIR"/*.ndjson 2>/dev/null | head -1) if [ -n "$LATEST" ]; then echo "Latest: $(basename $LATEST)" tail -5 "$LATEST" | while read -r line; do echo " $line" | cut -c1-120 done else echo "No audit logs found" fi else echo "Audit directory not found: $AUDIT_DIR" fi
Post-Execution Reflection
After this skill completes, check before closing:
- Did the command succeed? — If not, fix the instruction or error table that caused the failure.
- Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
- Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.
Only update if the issue is real and reproducible — not speculative.