---
name: tether
description: Tether (install/uninstall) hooks for auto-backup on session end. Renamed from 'hooks' to avoid clashing with Claude Code's.
allowed-tools: Bash, Read, Write, AskUserQuestion
argument-hint: "[install|uninstall|status] [--backup-on-stop] [--convert-on-stop] [-y|--yes]"
disable-model-invocation: true
---

# /asciinema-tools:tether

Manage Claude Code hooks for asciinema-tools automation.

> **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.

## Arguments

| Argument            | Description                     |
| ------------------- | ------------------------------- |
| `install`           | Add hooks to settings.json      |
| `uninstall`         | Remove asciinema-tools hooks    |
| `status`            | Show current hook configuration |
| `--backup-on-stop`  | Auto-backup when session ends   |
| `--convert-on-stop` | Auto-convert on session end     |
| `-y, --yes`         | Skip confirmation prompts       |

## Hook Definitions

### PostToolUse Hook (backup-on-stop)

```json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "command": "asciinema-backup-if-active"
      }
    ]
  }
}
```

## Execution

### Skip Logic

- If action provided -> execute directly
- If hook type flags provided -> use specific hooks

### Workflow

1. **Status**: Read current ~/.claude/settings.json
2. **Action**: AskUserQuestion for action type
3. **Hooks**: AskUserQuestion for hook selection
4. **Execute**: Modify settings.json
5. **Verify**: Confirm changes applied

## Examples

```bash
# Check current hook status
/asciinema-tools:tether status

# Install auto-backup hook
/asciinema-tools:tether install --backup-on-stop

# Install without prompts
/asciinema-tools:tether install -y

# Remove all asciinema hooks
/asciinema-tools:tether uninstall
```

## Troubleshooting

| Issue                   | Cause                    | Solution                          |
| ----------------------- | ------------------------ | --------------------------------- |
| jq not found            | jq not installed         | `brew install jq`                 |
| Settings file not found | ~/.claude/ doesn't exist | Create with `mkdir -p ~/.claude`  |
| Hooks not working       | Session not restarted    | Restart Claude Code session       |
| Backup not triggering   | No active recordings     | Start recording first with daemon |

## Post-Execution Reflection

After this skill completes, check before closing:

1. **Did the command succeed?** — If not, fix the instruction or error table that caused the failure.
2. **Did parameters or output change?** — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
3. **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.
