Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add arloliu/semantic-linefeeds --skill setup-semlfgit clone --depth 1 https://github.com/arloliu/semantic-linefeedsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/arloliu/semantic-linefeeds/setup-semlf)<a href="https://agentmods.dev/skills/arloliu/semantic-linefeeds/setup-semlf"><img src="https://agentmods.dev/badge/skills/arloliu/semantic-linefeeds/setup-semlf.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00073 | $0.01796 |
| Opus 5 | $0.00036 | $0.00898 |
| Sonnet 5 | $0.00015 | $0.00359 |
| Haiku 4.5 | $0.00007 | $0.00180 |
Grade C, and why
setup-semlf scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
| 4 | `curl -fsSL https://raw.githubusercontent.com/arloliu/semantic-linefeeds/main/install.sh \| sh -s -- --auto` | Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| 4 | `curl -fsSL https://raw.githubusercontent.com/arloliu/semantic-linefeeds/main/install.sh \| sh -s -- --auto` | How it starts
The opening of the file, as written. The whole thing — 202 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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 for what to do instead.
Step 0 — is it already here?
semlf --version
Answers, go to step 2. 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 it: --auto already installs the CLI, and the two flags together are a usage error.
Rungs 2 and 3 need an interpreter at 3.9 or newer.
When python3 is older, list the python3.* names on PATH, take the newest that qualifies,
and run rung 3 through that interpreter.
For rung 2 the interpreter is the one pipx itself runs on,
so pipx install --python <interpreter> semlf is the only way to change it.
Two failures worth naming rather than guessing at:
pip install --user refuses inside an active virtual environment,
and PYTHONUSERBASE can send it outside the home.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 202 lines · 73 tokens per session scan C 86eada39378c
setup-semlf is a skill published in the GitHub repository arloliu/semantic-linefeeds (2 stars, last pushed 15d ago), licensed Apache-2.0. It adds 73 tokens to every session and 1,796 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
slopless
Use Slopless to review English Markdown for deterministic AI and human slop signals, including vague phrasing, formulaic prose, weak rhythm, filler, and cliches.
suiko
A Japanese writing and review workflow for checking whether text sounds uniform, translated, unnatural, or difficult to read. It supports writing and editing documents such as reports, guides, meeting notes, proposals, and emails.
contextlint-init
Bootstrap contextlint into a repository. Use this skill whenever the user wants to set up, install, initialize, or configure contextlint — even if they only say "lint setup", "doc integrity check", or "set up Markdown linting" without naming contextlint by name. Detects the package manager (bun/npm/pnpm/yarn), scans…
contextlint-impact
Analyze the impact of changing or deleting a Markdown document by leveraging contextlint's Context Graph. Use this skill whenever the user asks "what breaks if I change X?", "what depends on this doc?", "is it safe to delete this file?", or wants to plan a refactor / understand cross-doc dependencies — even if they…
contextlint-fix
Run contextlint over the project's structured Markdown and fix the violations it detects. Use this skill whenever the user asks to fix lint errors, clean up docs, repair broken Markdown links, or after bulk edits to documentation (especially AI-generated specs/ADRs) — even if they don't explicitly mention contextlint…
slop-chop
Remove AI writing tells from text with the slop-chop CLI. Use when the user wants to clean up a draft, strip em-dashes, semicolons, and stock buzzwords, enforce a spelling dialect, or make text read like a person wrote it instead of a chatbot. Also use before handing back a written draft, or to flag slop in Markdown…