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