setup-semlflisted
Install: claude install-skill arloliu/semantic-linefeeds
# Set up semlf
`semlf` installs itself.
This skill exists so the agent driving it does not improvise:
no guessed package names, no hand-edited `hooks.json`, no `--force` to make a refusal go away.
Every command below is a real one.
Run them as written, and when one fails, report what it actually printed —
never translate a failure into a guessed cause.
## Gate
Two rules govern the whole procedure, and neither bends.
**Show, then ask, then run.**
Before the first install command, name the exact command and wait for the user to agree.
Before writing any file, show its exact content and wait.
An invocation the user did not intend must end having changed nothing.
**Never `--force`, never `sudo`.**
See [Refusals](#refusals) for what to do instead.
## Step 0 — is it already here?
```bash
semlf --version
```
Answers, go to [step 2](#step-2--verify-and-repair).
Does not, go to step 1.
## Step 1 — install the CLI
Only when step 0 found nothing.
Take the first rung whose tool is present, and ask before running it.
| Rung | Command |
|---|---|
| 1 | `uv tool install semlf` |
| 2 | `pipx install semlf` |
| 3 | `python3 -m pip install --user semlf` |
| 4 | `curl -fsSL https://raw.githubusercontent.com/arloliu/semantic-linefeeds/main/install.sh \| sh -s -- --auto` |
Rung 4 fetches a checkout, so it needs `git`, `curl`, and network reach to GitHub.
It also installs every detected agent's integration by itself, which makes step 2's repair a no-op afterward.
Do not add `--cli` to