Tether (install/uninstall) statusline-tools Stop hook to ~/.claude/settings.json. Renamed from 'hooks' to avoid clashing with.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add terrylica/cc-skills --skill tether --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Tether?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/terrylica-tether-c7f8ffe3)More formats (shields.io, HTML) on the badges page.
---
name: tether
description: Tether (install/uninstall) statusline-tools Stop hook to ~/.claude/settings.json. Renamed from 'hooks' to avoid clashing with.
allowed-tools: Read, Bash, TodoWrite, TodoRead, AskUserQuestion
argument-hint: "[install|uninstall|status]"
model: haiku
disable-model-invocation: true
---
> **Navigation**: [Plugin CLAUDE.md](../../CLAUDE.md) | [Root CLAUDE.md](../../../../CLAUDE.md)
# Status Line Hooks Manager
Manage Stop hook installation for link validation and path linting.
The Stop hook runs at session end to:
1. Validate markdown links using lychee
2. Check for relative path violations using lint-relative-paths
3. Cache results for status line display
> **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.
## Actions
| Action | Description |
| ----------- | ----------------------------------- |
| `install` | Add Stop hook to settings.json |
| `uninstall` | Remove Stop hook from settings.json |
| `status` | Show current hook configuration |
## Coexistence Note
This hook can coexist with other Stop hooks (like check-links-hybrid.sh). Both will run on session end - statusline-tools caches results for display, while other hooks may take different actions.
## Execution
### Skip Logic
- If action provided (`install`, `uninstall`, `status`) -> execute directly
- If no arguments -> check current status, then use AskUserQuestion flow
### Workflow
1. **Check Current State**: Run `status` to show current hook configuration
2. **Action Selection**: Use AskUserQuestion to select action:
- "Install hook" -> add Stop hook for link validation
- "Uninstall hook" -> remove Stop hook
- "Just show status" -> display and exit
3. **Execute**: Run the management script
4. **Verify**: Confirm changes applied
### AskUserQuestion Flow (No Arguments)
When invoked without arguments, guide the user interactively:
```
Question: "What would you like to do with the statusline-tools Stop hook?"
Options:
- "Install" -> "Add Stop hook for link validation and path linting on session end"
- "Uninstall" -> "Remove the Stop hook from settings.json"
- "Status" -> "Show current hook configuration"
```
### Direct Execution (With Arguments)
Parse `$ARGUMENTS` and run the management script:
```bash
/usr/bin/env bash << 'HOOKS_SCRIPT_EOF'
PLUGIN_DIR="$(cc-plugin-root statusline-tools)"
ACTION="${ARGUMENTS:-status}"
bash "$PLUGIN_DIR/scripts/manage-hooks.sh" $ACTION
HOOKS_SCRIPT_EOF
```
## Post-Action Reminder
After install/uninstall operations:
**IMPORTANT: Restart Claude Code session for changes to take effect.**
Hooks are loaded at session start. Modifications to settings.json require a restart.
## Examples
```bash
# Check current installation status
/statusline-tools:tether status
# Install the Stop hook for link validation
/statusline-tools:tether install
# Uninstall hooks
/statusline-tools:tether uninstall
```
## Troubleshooting
| Issue | Cause | Solution |
| -------------------------- | ---------------------------- | ---------------------------------------------------------------------------------------- |
| jq not found | jq not installed | `brew install jq` |
| lychee not found | Link validator not installed | `brew install lychee` |
| Hooks not working | Session not restarted | Restart Claude Code session |
| lint-relative-paths errors | Invalid path patterns | Check file paths in SKILL.md files |
| Cache stale | Stop hook failed | Check `.lychee-results.json` and `.lint-relative-paths-results.txt` in the git repo root |
## Note on hooks.json Hooks
`cron-tracker.ts` and `stop-cron-gc.ts` are registered directly in `hooks.json` and are **not** managed by `manage-hooks.sh`. They run automatically via the hooks framework and do not need manual install/uninstall.
## 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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!