README.md

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 AGENT: 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.
  • 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: Creates commits following Conventional Commits format via git-format.
  • 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.
  • invoking-subagents: Spawns subagents with restricted tool access for parallel tasks across repositories. Requires synu and the claude CLI. Useful for summarizing git history or processing large diffs without filling the main context window.
  • 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.
  • 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.
  • reviewing-code: Reviews code for correctness, security, reliability, performance, and quality. Covers PRs, diffs, and general change review.
  • scripting-with-go: Creates executable Go scripts using a shell trick (not a true shebang). For automation and tooling outside of Go projects.
  • 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-agent-comments ===

Token breakdown:
  Name:           22 tokens
  Description:    96 tokens
  Body:          706 tokens (40 lines)
  ───────────────────────────────────────────────
  Total:         824 tokens

=== ast-grep ===

Token breakdown:
  Name:           18 tokens
  Description:   198 tokens
  Body:         7503 tokens (469 lines)
  References:
    rule_reference.md                         6814 tokens
  ───────────────────────────────────────────────
  Total:       14533 tokens
  ⚠️  Body exceeds recommended 5000 token budget!

=== auditing-repositories ===

Token breakdown:
  Name:           20 tokens
  Description:   140 tokens
  Body:         2840 tokens (156 lines)
  References:
    llm-security.md                           1138 tokens
  ───────────────────────────────────────────────
  Total:        4138 tokens

=== authoring-skills ===

Token breakdown:
  Name:           20 tokens
  Description:    86 tokens
  Body:         2000 tokens (102 lines)
  References:
    checklist.md                               806 tokens
    patterns.md                               2415 tokens
    process.md                                 833 tokens
    specification.md                          3890 tokens
  ───────────────────────────────────────────────
  Total:       10050 tokens

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

Token breakdown:
  Name:           30 tokens
  Description:   108 tokens
  Body:         1841 tokens (84 lines)
  References:
    cli.md                                     589 tokens
    handoff.md                                2769 tokens
    installing-lune.md                         176 tokens
  ───────────────────────────────────────────────
  Total:        5513 tokens

=== formatting-commits ===

Token breakdown:
  Name:           22 tokens
  Description:    98 tokens
  Body:          992 tokens (43 lines)
  References:
    installing-git-format.md                    64 tokens
  ───────────────────────────────────────────────
  Total:        1176 tokens

=== frontend-accessibility ===

Token breakdown:
  Name:           20 tokens
  Description:   140 tokens
  Body:         2891 tokens (148 lines)
  References:
    antipatterns.md                           3638 tokens
    patterns.md                               6233 tokens
  ───────────────────────────────────────────────
  Total:       12922 tokens

=== handling-customer-data ===

Token breakdown:
  Name:           22 tokens
  Description:   123 tokens
  Body:         1983 tokens (107 lines)
  ───────────────────────────────────────────────
  Total:        2128 tokens

=== humanizer ===

Token breakdown:
  Name:           15 tokens
  Description:    84 tokens
  Body:         8536 tokens (462 lines)
  ───────────────────────────────────────────────
  Total:        8635 tokens
  ⚠️  Body exceeds recommended 5000 token budget!

=== invoking-subagents ===

Token breakdown:
  Name:           20 tokens
  Description:   113 tokens
  Body:          796 tokens (13 lines)
  References:
    installing-synu.md                         140 tokens
  ───────────────────────────────────────────────
  Total:        1069 tokens

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

Token breakdown:
  Name:           32 tokens
  Description:   164 tokens
  Body:         1912 tokens (96 lines)
  ───────────────────────────────────────────────
  Total:        2108 tokens

=== notifying-through-ntfy ===

Token breakdown:
  Name:           25 tokens
  Description:    93 tokens
  Body:         2212 tokens (72 lines)
  References:
    ht.md                                     1063 tokens
    httpie.md                                 1067 tokens
    nodejs.md                                 1497 tokens
    python.md                                 1468 tokens
    wget.md                                   1216 tokens
  ───────────────────────────────────────────────
  Total:        8641 tokens

=== rebasing-with-git ===

Token breakdown:
  Name:           22 tokens
  Description:   188 tokens
  Body:         6282 tokens (232 lines)
  ───────────────────────────────────────────────
  Total:        6492 tokens
  ⚠️  Body exceeds recommended 5000 token budget!

=== researching-with-rumilo ===

Token breakdown:
  Name:           25 tokens
  Description:   159 tokens
  Body:         3133 tokens (111 lines)
  ───────────────────────────────────────────────
  Total:        3317 tokens

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

Token breakdown:
  Name:           30 tokens
  Description:   113 tokens
  Body:         1241 tokens (42 lines)
  References:
    cli.md                                     528 tokens
    installing-lune.md                         176 tokens
  ───────────────────────────────────────────────
  Total:        2088 tokens

=== reviewing-code ===

Token breakdown:
  Name:           18 tokens
  Description:   125 tokens
  Body:         1880 tokens (121 lines)
  ───────────────────────────────────────────────
  Total:        2023 tokens

=== scripting-with-go ===

Token breakdown:
  Name:           20 tokens
  Description:   120 tokens
  Body:         1968 tokens (138 lines)
  ───────────────────────────────────────────────
  Total:        2108 tokens

=== working-with-tmux ===

Token breakdown:
  Name:           22 tokens
  Description:    84 tokens
  Body:         1465 tokens (87 lines)
  ───────────────────────────────────────────────
  Total:        1571 tokens

=== writing-git-tags ===

Token breakdown:
  Name:           22 tokens
  Description:   101 tokens
  Body:         2232 tokens (107 lines)
  References:
    installing-git-format.md                    64 tokens
  ───────────────────────────────────────────────
  Total:        2419 tokens

=== writing-roc-lang ===

Token breakdown:
  Name:           22 tokens
  Description:   142 tokens
  Body:         1846 tokens (117 lines)
  References:
    builtins-llms.md                         67881 tokens
    llms.md                                  11324 tokens
    scripting.md                              1722 tokens
  ───────────────────────────────────────────────
  Total:       82937 tokens

=== writing-rust ===

Token breakdown:
  Name:           18 tokens
  Description:   120 tokens
  Body:         3628 tokens (139 lines)
  References:
    idioms.md                                 4605 tokens
  ───────────────────────────────────────────────
  Total:        8371 tokens

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

Skills: 21
Metadata: 3060 tokens
Combined bodies: 57887 tokens
Overall: 183063 tokens
Validation errors: 0

Largest skills (by total tokens):
  1. writing-roc-lang                         82937 tokens
  2. ast-grep                                 14533 tokens
  3. frontend-accessibility                   12922 tokens
  4. authoring-skills                         10050 tokens
  5. notifying-through-ntfy                    8641 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