Clone

git clone git@git.secluded.site:agent-skills.git

README

agent-skills

A collection of Agent Skills; structured markdown that extends LLM agent capabilities through a standardised format.

Available Skills

Refer to Β§ Token stats for a detailed breakdown of each skill's token count, plus overall metadata usage. I've used and tested them most with Crush, Amp, and Shelley, and to a lesser degree, Octofriend and Pi.

  • addressing-agent-comments: Finds CR: comments in code, gathers feedback, and carries out requested changes.
  • ast-grep: Writes ast-grep rules for structural code search and modification.
  • auditing-repositories: Audits open source repositories for security, privacy, and unexpected behavior.
  • authoring-skills: Creates and reviews Agent Skills following best practices. Covers skill structure, frontmatter, and progressive disclosure patterns.
  • 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.
  • 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.
  • 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.
  • formatting-commits: Detects a project's commit style from recent history and formats messages accordingly. Supports Conventional Commits and kernel-style imperative commits.
  • getting-a-code-review: Gets an external code review of changes, commits, PRs, or patches via CLI tools like Amp, CodeRabbit, or Kodus.
  • 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.
  • handling-customer-data: Queries customer data responsiblyβ€”the agent answers questions about the data without ever seeing it directly.
  • humanizer: 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.
  • 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.
  • 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.
  • invoking-subagents: Spawns subagents with restricted tool access for parallel tasks across repositories. Requires the Pi coding agent. Useful for summarizing git history or processing large diffs without filling the main context window.
  • 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.
  • managing-and-navigating-worktrees: Manages git worktrees using wt with a bare repository structure. Each branch lives in its own sibling directory. Requires wt, git, and gum.
  • monitoring-with-munin: Deploys and manages Munin monitoring across servers. Sets up munin-node on hosts, writes plugins, configures masters, and handles alerts.
  • notifying-through-ntfy: Sends push notifications via ntfy.sh when requested, such as at the end of its turn.
  • 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.
  • 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.
  • resuming-work-through-lunatask: Resumes deferred work from Lunatask handoff notes via lune.
  • scripting-with-go: Creates executable Go scripts using a shell trick (not a true shebang). For automation and tooling outside of Go projects.
  • testing-with-gocuke-and-gherkin: Drives BDD, red/green TDD, and property-based testing in Go projects using gocuke and Gherkin feature files.
  • updating-llm-client-model-lists: Synchronizes model configurations across Zed, Crush, Octofriend, and Pi from Plexus' /v1/models endpoint.
  • using-exe-dev: Guides working with exe.dev VMs, which provide Linux VMs with persistent disks, instant HTTPS, and built-in auth via SSH.
  • using-jujutsu: Guides jujutsu (jj) workflows, covering commit selection, change creation, diff reading, and common pitfalls that trip up agents.
  • working-with-tmux: Spawns and manages background processes via tmux. Creates windows, sends commands, and captures output without blocking the main session. Useful for servers and long tasks.
  • writing-git-tags: Generates git tag annotations from commit history following Semantic Versioning and Conventional Commits via git-format.
  • writing-roc-lang: Writes Roc code with strong static types, helpful compiler errors, and functional programming. Covers both full applications and one-off scripts.
  • 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.

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.

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

With Make

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

# 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 Amp
make uninstall-authoring-skills SKILL_DIR=$HOME/.config/agents/skills

# Remove all skills from Codex
make uninstall SKILL_DIR=$HOME/.codex/skills
# Install all skills
for s in skills/*/; do ln -s "$PWD/$s" ~/.config/agents/skills/; done

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

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

Agent skill directories

Agent Dir
Crush, Octofriend, Shelley, Amp ~/.config/agents/skills/
Pi ~/.pi/agent/skills/
Anthropic's Claude Code ~/.claude/skills/
OpenAI's Codex ~/.codex/skills/

Updating

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

Symlinked skills update automatically.

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

Token stats

Real token stats as reported by Synthetic.new's /messages/count_tokens endpoint with ./skill-stats.go.

=== addressing-code-review-comments ===

Token breakdown:
  Name:            9 tokens
  Description:    40 tokens
  Body:          290 tokens (38 lines)
  ───────────────────────────────────────────────
  Total:         339 tokens

=== ast-grep ===

Token breakdown:
  Name:            7 tokens
  Description:    76 tokens
  Body:         2765 tokens (469 lines)
  References:
    rule_reference.md                         2515 tokens
  ───────────────────────────────────────────────
  Total:        5363 tokens

=== auditing-repositories ===

Token breakdown:
  Name:            8 tokens
  Description:    51 tokens
  Body:         1046 tokens (156 lines)
  References:
    llm-security.md                            427 tokens
  ───────────────────────────────────────────────
  Total:        1532 tokens

=== authoring-skills ===

Token breakdown:
  Name:            8 tokens
  Description:    32 tokens
  Body:          861 tokens (105 lines)
  References:
    checklist.md                               301 tokens
    patterns.md                                880 tokens
    process.md                                 311 tokens
    specification.md                          1441 tokens
  ───────────────────────────────────────────────
  Total:        3834 tokens

=== backing-up-with-keld ===

Token breakdown:
  Name:            9 tokens
  Description:    39 tokens
  Body:         1742 tokens (235 lines)
  References:
    config-examples.md                        1415 tokens
    installation.md                             19 tokens
  ───────────────────────────────────────────────
  Total:        3224 tokens

=== collaborating-through-pr-pico-sh ===

Token breakdown:
  Name:           12 tokens
  Description:    47 tokens
  Body:          521 tokens (43 lines)
  References:
    contributing.md                            162 tokens
    jujutsu.md                                 516 tokens
    reviewing.md                               406 tokens
  ───────────────────────────────────────────────
  Total:        1664 tokens

=== creating-tasks-through-lunatask ===

Token breakdown:
  Name:           12 tokens
  Description:    41 tokens
  Body:          741 tokens (88 lines)
  References:
    cli.md                                     218 tokens
    handoff.md                                1035 tokens
    installing-lune.md                          65 tokens
  ───────────────────────────────────────────────
  Total:        2112 tokens

=== formatting-commits ===

Token breakdown:
  Name:            8 tokens
  Description:    57 tokens
  Body:          310 tokens (34 lines)
  References:
    conventional-commits.md                    362 tokens
    installing-git-format.md                    22 tokens
    kernel-style.md                            526 tokens
  ───────────────────────────────────────────────
  Total:        1285 tokens

=== frontend-accessibility ===

Token breakdown:
  Name:            7 tokens
  Description:    52 tokens
  Body:         1080 tokens (148 lines)
  References:
    antipatterns.md                           1341 tokens
    patterns.md                               2279 tokens
  ───────────────────────────────────────────────
  Total:        4759 tokens

=== getting-a-code-review ===

Token breakdown:
  Name:            8 tokens
  Description:    98 tokens
  Body:          412 tokens (54 lines)
  ───────────────────────────────────────────────
  Total:         518 tokens

=== handling-customer-data ===

Token breakdown:
  Name:            9 tokens
  Description:    46 tokens
  Body:          718 tokens (107 lines)
  ───────────────────────────────────────────────
  Total:         773 tokens

=== humanizer ===

Token breakdown:
  Name:            6 tokens
  Description:    31 tokens
  Body:         3274 tokens (462 lines)
  ───────────────────────────────────────────────
  Total:        3311 tokens

=== ideating-with-bdd ===

Token breakdown:
  Name:            9 tokens
  Description:   133 tokens
  Body:         1582 tokens (177 lines)
  References:
    gherkin-reference.md                       984 tokens
  ───────────────────────────────────────────────
  Total:        2708 tokens

=== initialising-and-updating-agents-md ===

Token breakdown:
  Name:           12 tokens
  Description:    59 tokens
  Body:          850 tokens (63 lines)
  ───────────────────────────────────────────────
  Total:         921 tokens

=== invoking-subagents ===

Token breakdown:
  Name:            8 tokens
  Description:    42 tokens
  Body:          450 tokens (20 lines)
  ───────────────────────────────────────────────
  Total:         500 tokens

=== maintaining-aur-packages ===

Token breakdown:
  Name:            9 tokens
  Description:    58 tokens
  Body:         1439 tokens (103 lines)
  References:
    build-patterns.md                         1120 tokens
  ───────────────────────────────────────────────
  Total:        2626 tokens

=== managing-and-navigating-worktrees ===

Token breakdown:
  Name:           11 tokens
  Description:    60 tokens
  Body:          703 tokens (96 lines)
  ───────────────────────────────────────────────
  Total:         774 tokens

=== monitoring-with-munin ===

Token breakdown:
  Name:           10 tokens
  Description:    62 tokens
  Body:         1801 tokens (222 lines)
  References:
    writing-plugins.md                        1151 tokens
  ───────────────────────────────────────────────
  Total:        3024 tokens

=== notifying-through-ntfy ===

Token breakdown:
  Name:           10 tokens
  Description:    37 tokens
  Body:         1052 tokens (89 lines)
  References:
    ht.md                                      383 tokens
    httpie.md                                  385 tokens
    nodejs.md                                  541 tokens
    python.md                                  517 tokens
    wget.md                                    430 tokens
  ───────────────────────────────────────────────
  Total:        3355 tokens

=== rebasing-with-git ===

Token breakdown:
  Name:            8 tokens
  Description:    71 tokens
  Body:         2317 tokens (232 lines)
  ───────────────────────────────────────────────
  Total:        2396 tokens

=== researching-with-rumilo ===

Token breakdown:
  Name:           10 tokens
  Description:    60 tokens
  Body:         1217 tokens (112 lines)
  ───────────────────────────────────────────────
  Total:        1287 tokens

=== resuming-work-through-lunatask ===

Token breakdown:
  Name:           12 tokens
  Description:    44 tokens
  Body:          466 tokens (42 lines)
  References:
    cli.md                                     195 tokens
    installing-lune.md                          65 tokens
  ───────────────────────────────────────────────
  Total:         782 tokens

=== scripting-with-go ===

Token breakdown:
  Name:            8 tokens
  Description:    46 tokens
  Body:          727 tokens (138 lines)
  ───────────────────────────────────────────────
  Total:         781 tokens

=== testing-with-gocuke-and-gherkin ===

Token breakdown:
  Name:           14 tokens
  Description:    77 tokens
  Body:          633 tokens (67 lines)
  References:
    bdd-practices.md                           261 tokens
    gocuke-api.md                             1427 tokens
  ───────────────────────────────────────────────
  Total:        2412 tokens

=== updating-llm-client-model-lists ===

Token breakdown:
  Name:           13 tokens
  Description:    51 tokens
  Body:          997 tokens (126 lines)
  ───────────────────────────────────────────────
  Total:        1061 tokens

=== using-exe-dev ===

Token breakdown:
  Name:            8 tokens
  Description:    32 tokens
  Body:          380 tokens (45 lines)
  ───────────────────────────────────────────────
  Total:         420 tokens

=== using-jujutsu ===

Token breakdown:
  Name:            9 tokens
  Description:    55 tokens
  Body:          735 tokens (92 lines)
  ───────────────────────────────────────────────
  Total:         799 tokens

=== working-with-tmux ===

Token breakdown:
  Name:            8 tokens
  Description:    32 tokens
  Body:          909 tokens (128 lines)
  ───────────────────────────────────────────────
  Total:         949 tokens

=== writing-git-tags ===

Token breakdown:
  Name:            7 tokens
  Description:    38 tokens
  Body:          821 tokens (107 lines)
  References:
    installing-git-format.md                    22 tokens
  ───────────────────────────────────────────────
  Total:         888 tokens

=== writing-roc-lang ===

Token breakdown:
  Name:            8 tokens
  Description:    53 tokens
  Body:          693 tokens (117 lines)
  References:
    builtins-llms.md                         25216 tokens
    llms.md                                   4253 tokens
    scripting.md                               614 tokens
  ───────────────────────────────────────────────
  Total:       30837 tokens

=== writing-rust ===

Token breakdown:
  Name:            7 tokens
  Description:    45 tokens
  Body:         1324 tokens (139 lines)
  References:
    idioms.md                                 1708 tokens
  ───────────────────────────────────────────────
  Total:        3084 tokens

============================================================
SUMMARY
============================================================

Skills: 31
Metadata: 1949 tokens
Combined bodies: 32856 tokens
Overall: 88318 tokens
Validation errors: 0

Largest skills (by total tokens):
  1. writing-roc-lang                         30837 tokens
  2. ast-grep                                  5363 tokens
  3. frontend-accessibility                    4759 tokens
  4. authoring-skills                          3834 tokens
  5. notifying-through-ntfy                    3355 tokens

Some other tools if these interested you

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