<!--
SPDX-FileCopyrightText: Amolith <amolith@secluded.site>

SPDX-License-Identifier: CC0-1.0
-->

# agent-skills

A collection of [Agent Skills]: structured markdown that extends LLM agent
capabilities through a standardised format. See [§&nbsp;Available
skills](#available-skills) for the full list.

[Agent Skills]: https://agentskills.io/

I've used and tested them most with [Crush], [Pi], [Amp], and [Shelley].

[Crush]: https://github.com/charmbracelet/crush
[Pi]: https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent
[Amp]: https://ampcode.com
[Shelley]: https://github.com/boldsoftware/shelley

## Installation

If you're using [Amp], run `amp skill add
https://git.secluded.site/agent-skills`. Otherwise, clone the repository, then
install via `make` or manual symlinks.

[Amp]: https://ampcode.com

```sh
git clone https://git.secluded.site/agent-skills
cd agent-skills
```

### With Make

Skills install to `~/.agents/skills/` by default. Override by setting
`SKILL_DIR`. Tab completion works so you don't have to remember skill names or
copy/paste.

```sh
# List available skills
make list

# Install all skills to default dir
make all

# Install specific skills to Claude Code
SKILL_DIR=$HOME/.claude/skills make authoring-skills formatting-commits

# Remove a specific skill from the default dir
make uninstall-authoring-skills

# Remove all skills from Codex
make uninstall SKILL_DIR=$HOME/.codex/skills
```

### With symlinks

```sh
# Install all skills
for s in skills/*/; do ln -s "$PWD/$s" ~/.agents/skills/; done

# Install specific skills
ln -s "$PWD/skills/authoring-skills" ~/.agents/skills/

# Remove a skill
rm ~/.agents/skills/formatting-commits
```

### Agent skill directories

| Agent                     | Dir                   |
| ------------------------- | --------------------- |
| [Crush], [Shelley], [Amp] | `~/.agents/skills/`   |
| [Pi]                      | `~/.pi/agent/skills/` |
| Anthropic's Claude Code   | `~/.claude/skills/`   |
| OpenAI's Codex            | `~/.codex/skills/`    |

## Updating

```sh
cd ~/path/to/agent-skills
git pull
```

Symlinked skills update automatically.

## Available skills

Each skill below lists its install command, source path, and token counts. The
counts are computed by [./skill-stats.go](./skill-stats.go) against
[Synthetic.new]'s [/messages/count_tokens] endpoint.

[Synthetic.new]: https://synthetic.new
[/messages/count_tokens]: https://dev.synthetic.new/docs/anthropic/messages/count-tokens

### addressing-code-review-comments

Finds `CR:` comments in code, gathers feedback, and carries out requested
changes.

- Install with: `make addressing-code-review-comments`
- Source: [skills/addressing-code-review-comments/](skills/addressing-code-review-comments/)
- Name/desc: 81 tok
- SKILL.md: 444 tok
- Full skill: 525 tok (all `.md` files in the folder)

### amoliths-opinions

Applies Amolith's opinions across project setup, tooling, licensing,
dependencies, mise tasks, CLIs, TUIs, MCP servers, web apps, packaging/releases,
testing, and Go-specific ecosystem defaults.

- Install with: `make amoliths-opinions`
- Source: [skills/amoliths-opinions/](skills/amoliths-opinions/)
- Name/desc: 167 tok
- SKILL.md: 958 tok
- Full skill: 19392 tok (all `.md` files in the folder)

### ast-grep

Writes [ast-grep] rules for structural code search and modification.

[ast-grep]: https://github.com/ast-grep/ast-grep

- Install with: `make ast-grep`
- Source: [skills/ast-grep/](skills/ast-grep/)
- Name/desc: 137 tok
- SKILL.md: 4731 tok
- Full skill: 9172 tok (all `.md` files in the folder)

### auditing-repositories

Audits open source repositories for security, privacy, and unexpected behavior.

- Install with: `make auditing-repositories`
- Source: [skills/auditing-repositories/](skills/auditing-repositories/)
- Name/desc: 113 tok
- SKILL.md: 1983 tok
- Full skill: 2902 tok (all `.md` files in the folder)

### authoring-skills

Creates and reviews Agent Skills following best practices. Covers skill
structure, frontmatter, and progressive disclosure patterns.

- Install with: `make authoring-skills`
- Source: [skills/authoring-skills/](skills/authoring-skills/)
- Name/desc: 71 tok
- SKILL.md: 1499 tok
- Full skill: 6733 tok (all `.md` files in the folder)

### backing-up-with-keld

Writes and manages keld configuration for restic backups. Covers TOML preset
structure, split preset composition (`home@cloud`), config file discovery,
environment variables, and systemd timer setup.

- Install with: `make backing-up-with-keld`
- Source: [skills/backing-up-with-keld/](skills/backing-up-with-keld/)
- Name/desc: 72 tok
- SKILL.md: 3077 tok
- Full skill: 5662 tok (all `.md` files in the folder)

### collaborating-through-pr-pico-sh

Collaborates on git patches via [pr.pico.sh], a minimal patchbin service. Covers
both contributing and reviewing patch requests using `git format-patch` and
`git am`.

[pr.pico.sh]: https://pr.pico.sh

- Install with: `make collaborating-through-pr-pico-sh`
- Source: [skills/collaborating-through-pr-pico-sh/](skills/collaborating-through-pr-pico-sh/)
- Name/desc: 103 tok
- SKILL.md: 849 tok
- Full skill: 2785 tok (all `.md` files in the folder)

### computing-golden-ratio-typography

Computes Golden Ratio Typography line heights, spacing units, type scales, and
readable measures from a font file or explicit font metrics.

- Install with: `make computing-golden-ratio-typography`
- Source: [skills/computing-golden-ratio-typography/](skills/computing-golden-ratio-typography/)
- Name/desc: 120 tok
- SKILL.md: 1901 tok
- Full skill: 2021 tok (all `.md` files in the folder)

### cooking

Guides home cooking as a technically grounded collaborator. Helps plan meals,
use odds and ends, troubleshoot techniques, handle substitutions, and reason
through cuisine-specific flavor logic without flattening regional traditions.

- Install with: `make cooking`
- Source: [skills/cooking/](skills/cooking/)
- Name/desc: 283 tok
- SKILL.md: 5428 tok
- Full skill: 47930 tok (all `.md` files in the folder)

### creating-tasks-through-lunatask

Creates tasks and handoffs in [Lunatask] via [lune]. Tasks are just tasks.
Handoffs capture work to resume later across sessions without filling context
windows.

[lune]: https://git.secluded.site/lune
[Lunatask]: https://lunatask.app/

- Install with: `make creating-tasks-through-lunatask`
- Source: [skills/creating-tasks-through-lunatask/](skills/creating-tasks-through-lunatask/)
- Name/desc: 84 tok
- SKILL.md: 1190 tok
- Full skill: 3428 tok (all `.md` files in the folder)

### fallback-code-review

Provides a fallback-only external review flow via CLI tools like Amp,
CodeRabbit, or Kodus.

- Install with: `make fallback-code-review`
- Source: [skills/fallback-code-review/](skills/fallback-code-review/)
- Name/desc: 136 tok
- SKILL.md: 773 tok
- Full skill: 909 tok (all `.md` files in the folder)

### formatting-commits

Detects a project's commit style from recent history and formats messages
accordingly. Supports Conventional Commits and kernel-style imperative commits.

- Install with: `make formatting-commits`
- Source: [skills/formatting-commits/](skills/formatting-commits/)
- Name/desc: 116 tok
- SKILL.md: 514 tok
- Full skill: 2127 tok (all `.md` files in the folder)

### frontend-accessibility

Strives to generate accessible HTML, React, and frontend code following WCAG
2.2 AA. Prioritizes semantic HTML over ARIA, keyboard navigation, and screen
reader compatibility.

- Install with: `make frontend-accessibility`
- Source: [skills/frontend-accessibility/](skills/frontend-accessibility/)
- Name/desc: 112 tok
- SKILL.md: 1900 tok
- Full skill: 8058 tok (all `.md` files in the folder)

### handling-customer-data

Queries customer data responsibly—the agent answers questions about the data
without ever seeing it directly.

- Install with: `make handling-customer-data`
- Source: [skills/handling-customer-data/](skills/handling-customer-data/)
- Name/desc: 93 tok
- SKILL.md: 1221 tok
- Full skill: 1314 tok (all `.md` files in the folder)

### humanize

Removes AI-generated patterns from text like promotional fluff, weasel words,
and mechanical sentence structures. Based on Wikipedia's AI Cleanup research.
Originally from [blader/humanizer].

[blader/humanizer]: https://github.com/blader/humanizer

- Install with: `make humanize`
- Source: [skills/humanize/](skills/humanize/)
- Name/desc: 191 tok
- SKILL.md: 3110 tok
- Full skill: 8132 tok (all `.md` files in the folder)

### ideating-with-bdd

Guides collaborative discovery of behaviour through structured conversation,
iterating with the user to refine ideas into user stories and Gherkin
scenarios. Works for any language or framework.

- Install with: `make ideating-with-bdd`
- Source: [skills/ideating-with-bdd/](skills/ideating-with-bdd/)
- Name/desc: 223 tok
- SKILL.md: 2533 tok
- Full skill: 4393 tok (all `.md` files in the folder)

### in-session-review

Runs an extremely strict maintainability review for abstraction quality, giant
files, and spaghetti-condition growth.

- Install with: `make in-session-review`
- Source: [skills/in-session-review/](skills/in-session-review/)
- Name/desc: 109 tok
- SKILL.md: 3958 tok
- Full skill: 4067 tok (all `.md` files in the folder)

### initialising-and-updating-agents-md

Analyses a codebase and creates or updates `AGENTS.md` to help future agents
work effectively. Discovers commands, conventions, patterns, and gotchas from
the project's source and config files.

- Install with: `make initialising-and-updating-agents-md`
- Source: [skills/initialising-and-updating-agents-md/](skills/initialising-and-updating-agents-md/)
- Name/desc: 111 tok
- SKILL.md: 1426 tok
- Full skill: 1537 tok (all `.md` files in the folder)

### invoking-subagents

Spawns subagents with restricted tool access for parallel tasks across
repositories. Requires [the Pi coding agent][Pi]. Useful for summarizing git
history or processing large diffs without filling the main context window.

- Install with: `make invoking-subagents`
- Source: [skills/invoking-subagents/](skills/invoking-subagents/)
- Name/desc: 85 tok
- SKILL.md: 766 tok
- Full skill: 851 tok (all `.md` files in the folder)

### licensing-with-reuse

Manages REUSE-compliant licensing with the `reuse` CLI. Covers `reuse annotate`,
`.license` sidecars for prompt files, custom `LicenseRef-...` identifiers,
`LICENSES/`, project conventions, and `reuse lint`.

- Install with: `make licensing-with-reuse`
- Source: [skills/licensing-with-reuse/](skills/licensing-with-reuse/)
- Name/desc: 117 tok
- SKILL.md: 2059 tok
- Full skill: 2176 tok (all `.md` files in the folder)

### maintaining-aur-packages

Creates and updates AUR packages following Arch packaging standards. Covers
PKGBUILDs for source, `-bin`, and `-git` package types, checksums with
`updpkgsums`, linting with `namcap`, and `.SRCINFO` generation.

- Install with: `make maintaining-aur-packages`
- Source: [skills/maintaining-aur-packages/](skills/maintaining-aur-packages/)
- Name/desc: 119 tok
- SKILL.md: 2496 tok
- Full skill: 4821 tok (all `.md` files in the folder)

### managing-personal-knowledge

Works inside a personal knowledge base as an exacting steward, shaping atomic,
concept-oriented notes, a dense wikilink graph, and disciplined tags instead of
dumping transcripts. Tool-agnostic across Markdown vaults like Obsidian,
Logseq, Roam, and SilverBullet.

- Install with: `make managing-personal-knowledge`
- Source: [skills/managing-personal-knowledge/](skills/managing-personal-knowledge/)
- Name/desc: 247 tok
- SKILL.md: 2935 tok
- Full skill: 7441 tok (all `.md` files in the folder)

### monitoring-with-munin

Deploys and manages Munin monitoring across servers. Sets up munin-node on
hosts, writes plugins, configures masters, and handles alerts.

- Install with: `make monitoring-with-munin`
- Source: [skills/monitoring-with-munin/](skills/monitoring-with-munin/)
- Name/desc: 117 tok
- SKILL.md: 3432 tok
- Full skill: 5522 tok (all `.md` files in the folder)

### notifying-through-ntfy

Sends push notifications via [ntfy.sh] when requested, such as at the end of its
turn.

[ntfy.sh]: https://ntfy.sh

- Install with: `make notifying-through-ntfy`
- Source: [skills/notifying-through-ntfy/](skills/notifying-through-ntfy/)
- Name/desc: 70 tok
- SKILL.md: 1832 tok
- Full skill: 6058 tok (all `.md` files in the folder)

### rebasing-with-git

Manages git rebase workflows from simple rebases to the drop-and-repick
integration branch pattern. Assumes `upstream` remote for forks and `rerere`
enabled. Supports worktrees including `wt`-managed repos.

- Install with: `make rebasing-with-git`
- Source: [skills/rebasing-with-git/](skills/rebasing-with-git/)
- Name/desc: 137 tok
- SKILL.md: 3937 tok
- Full skill: 4074 tok (all `.md` files in the folder)

### researching-with-rumilo

Dispatches AI research subagents via [rumilo] for web search and repository
exploration. Research topics, look up library usage, or explore external
codebases without filling the main context window.

[rumilo]: https://git.secluded.site/rumilo

- Install with: `make researching-with-rumilo`
- Source: [skills/researching-with-rumilo/](skills/researching-with-rumilo/)
- Name/desc: 101 tok
- SKILL.md: 1970 tok
- Full skill: 2071 tok (all `.md` files in the folder)

### scripting-with-go

Creates executable Go scripts using a shell trick (not a true shebang). For
automation and tooling outside of Go projects. For scripting in a non-Go
project, copy the header comment and adjust as needed.

- Install with: `make scripting-with-go`
- Source: [skills/scripting-with-go/](skills/scripting-with-go/)
- Name/desc: 93 tok
- SKILL.md: 1250 tok
- Full skill: 1343 tok (all `.md` files in the folder)

### testing-with-gocuke-and-gherkin

Drives BDD, red/green TDD, and property-based testing in Go projects using
[gocuke] and Gherkin feature files.

[gocuke]: https://github.com/tenntenn/gocuke

- Install with: `make testing-with-gocuke-and-gherkin`
- Source: [skills/testing-with-gocuke-and-gherkin/](skills/testing-with-gocuke-and-gherkin/)
- Name/desc: 150 tok
- SKILL.md: 1093 tok
- Full skill: 4107 tok (all `.md` files in the folder)

### toki-pona-dictionary

Searches the [nimi.li] toki pona dictionary by English meaning. Caches word
data locally after a one-time fetch, then runs offline searches across
definitions and community usage tags.

[nimi.li]: https://nimi.li

- Install with: `make toki-pona-dictionary`
- Source: [skills/toki-pona-dictionary/](skills/toki-pona-dictionary/)
- Name/desc: 128 tok
- SKILL.md: 407 tok
- Full skill: 535 tok (all `.md` files in the folder)

### updating-llm-client-model-lists

Synchronizes model configurations across Zed, Crush, and Pi from Plexus'
/v1/models endpoint.

- Install with: `make updating-llm-client-model-lists`
- Source: [skills/updating-llm-client-model-lists/](skills/updating-llm-client-model-lists/)
- Name/desc: 99 tok
- SKILL.md: 3835 tok
- Full skill: 3934 tok (all `.md` files in the folder)

### using-exe-dev

Guides working with [exe.dev] VMs, which provide Linux VMs with persistent
disks, instant HTTPS, and built-in auth via SSH.

[exe.dev]: https://exe.dev

- Install with: `make using-exe-dev`
- Source: [skills/using-exe-dev/](skills/using-exe-dev/)
- Name/desc: 79 tok
- SKILL.md: 705 tok
- Full skill: 784 tok (all `.md` files in the folder)

### using-jujutsu

Guides [jujutsu] (jj) workflows, covering commit selection, change creation,
diff reading, and common pitfalls that trip up agents.

[jujutsu]: https://jj-vcs.github.io/jj/latest/

- Install with: `make using-jujutsu`
- Source: [skills/using-jujutsu/](skills/using-jujutsu/)
- Name/desc: 101 tok
- SKILL.md: 1170 tok
- Full skill: 1271 tok (all `.md` files in the folder)

### working-with-zmx

Manages persistent terminal sessions for background processes, dev servers, and
long-running tasks. Creates sessions, runs commands detached, checks output, and
writes files into sessions over SSH.

- Install with: `make working-with-zmx`
- Source: [skills/working-with-zmx/](skills/working-with-zmx/)
- Name/desc: 108 tok
- SKILL.md: 838 tok
- Full skill: 946 tok (all `.md` files in the folder)

### writing-git-tags

Generates git tag annotations from commit history following Semantic Versioning
and Conventional Commits via [git-format].

[git-format]: https://git.secluded.site/git-format

- Install with: `make writing-git-tags`
- Source: [skills/writing-git-tags/](skills/writing-git-tags/)
- Name/desc: 80 tok
- SKILL.md: 1440 tok
- Full skill: 1557 tok (all `.md` files in the folder)

### writing-rust

Writes idiomatic Rust with strict quality gates: `cargo fmt`, `clippy -- -D
warnings`, and required tests. Enforces `thiserror` for libs, `anyhow` for apps,
warns against common anti-patterns.

- Install with: `make writing-rust`
- Source: [skills/writing-rust/](skills/writing-rust/)
- Name/desc: 91 tok
- SKILL.md: 2348 tok
- Full skill: 5426 tok (all `.md` files in the folder)

## Contributions

Patch requests are in [amolith/llm-projects] on [pr.pico.sh]. You don't need a
new account to contribute, you don't need to fork this repo, you don't need to
fiddle with `git send-email`, you don't need to faff with your email client to
get `git request-pull` working...

You just need:

- Git
- SSH
- An SSH key

```sh
# Clone this repo, make your changes, and commit them
# Create a new patch request with
git format-patch origin/main --stdout | ssh pr.pico.sh pr create amolith/llm-projects
# After potential feedback, submit a revision to an existing patch request with
git format-patch origin/main --stdout | ssh pr.pico.sh pr add {prID}
# List patch requests
ssh pr.pico.sh pr ls amolith/llm-projects
```

See "How do Patch Requests work?" on [pr.pico.sh]'s home page for a more
complete example workflow.

[amolith/llm-projects]: https://pr.pico.sh/r/amolith/llm-projects
[pr.pico.sh]: https://pr.pico.sh

---

Some other tools if these interested you

- [wt](https://git.secluded.site/wt) - CLI for managing git worktrees
- [git-format](https://git.secluded.site/git-format) - CLI that turns LLM input
  into well-formatted conventional commits and tags
- [garble](https://git.secluded.site/garble) - transform stdin with an LLM (fix
  typos, translate, reformat)
- [lune](https://git.secluded.site/lune) - CLI and MCP server for
  [Lunatask.app](https://lunatask.app)
