README.md

  1<!--
  2SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
  3
  4SPDX-License-Identifier: CC0-1.0
  5-->
  6
  7# agent-skills
  8
  9A collection of [Agent Skills]; structured markdown that extends LLM
 10agent capabilities through a standardised format.
 11
 12[Agent Skills]: https://agentskills.io/
 13
 14## Available Skills
 15
 16Refer to [Β§ Token stats](#token-stats) for a detailed breakdown of each skill's
 17token count, plus overall metadata usage. I've used and tested them most with
 18[Crush], [Amp], and [Shelley], and to a lesser degree, [Octofriend] and [Pi].
 19
 20[Crush]: https://github.com/charmbracelet/crush
 21[Amp]: https://ampcode.com
 22[Shelley]: https://github.com/boldsoftware/shelley
 23[Octofriend]: https://github.com/synthetic-lab/octofriend
 24[Pi]: https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent
 25
 26- [addressing-agent-comments](skills/addressing-agent-comments/SKILL.md): Finds
 27  `AGENT:` comments in code, gathers feedback, and carries out requested
 28  changes.
 29- [ast-grep](skills/ast-grep/SKILL.md): Writes [ast-grep] rules for structural
 30  code search and modification.
 31- [auditing-repositories](skills/auditing-repositories/SKILL.md): Audits open
 32  source repositories for security, privacy, and unexpected behavior.
 33- [authoring-skills](skills/authoring-skills/SKILL.md): Creates and reviews
 34  Agent Skills following best practices. Covers skill structure, frontmatter,
 35  and progressive disclosure patterns.
 36- [creating-tasks-through-lunatask](skills/creating-tasks-through-lunatask/SKILL.md):
 37  Creates tasks and handoffs in [Lunatask] via [lune]. Tasks are just tasks.
 38  Handoffs capture work to resume later across sessions without filling context
 39  windows.
 40- [formatting-commits](skills/formatting-commits/SKILL.md): Creates commits
 41  following Conventional Commits format via [git-format].
 42- [frontend-accessibility](skills/frontend-accessibility/SKILL.md): Strives to
 43  generate accessible HTML, React, and frontend code following WCAG 2.2 AA.
 44  Prioritizes semantic HTML over ARIA, keyboard navigation, and screen reader
 45  compatibility.
 46- [handling-customer-data](skills/handling-customer-data/SKILL.md): Queries
 47  customer data responsiblyβ€”the agent answers questions about the data without
 48  ever seeing it directly.
 49- [humanizer](skills/humanizer/SKILL.md): Removes AI-generated patterns from
 50  text like promotional fluff, weasel words, and mechanical sentence structures.
 51  Based on Wikipedia's AI Cleanup research. Originally from [blader/humanizer].
 52- [invoking-subagents](skills/invoking-subagents/SKILL.md): Spawns subagents
 53  with restricted tool access for parallel tasks across repositories. Requires
 54  [synu] and the `claude` CLI. Useful for summarizing git history or processing
 55  large diffs without filling the main context window.
 56- [managing-and-navigating-worktrees](skills/managing-and-navigating-worktrees/SKILL.md):
 57  Manages git worktrees using [wt] with a bare repository structure. Each branch
 58  lives in its own sibling directory. Requires [wt], git, and [gum].
 59- [notifying-through-ntfy](skills/notifying-through-ntfy/SKILL.md): Sends push
 60  notifications via [ntfy.sh] when requested, such as at the end of its turn.
 61- [rebasing-with-git](skills/rebasing-with-git/SKILL.md): Manages git rebase
 62  workflows from simple rebases to the drop-and-repick integration branch
 63  pattern. Assumes `upstream` remote for forks and `rerere` enabled. Supports
 64  worktrees including `wt`-managed repos.
 65- [researching-with-rumilo](skills/researching-with-rumilo/SKILL.md): Dispatches
 66  AI research subagents via [rumilo] for web search and repository exploration.
 67  Research topics, look up library usage, or explore external codebases without
 68  filling the main context window.
 69- [resuming-work-through-lunatask](skills/resuming-work-through-lunatask/SKILL.md):
 70  Resumes deferred work from [Lunatask] handoff notes via [lune].
 71- [reviewing-code](skills/reviewing-code/SKILL.md): Reviews changes, commits,
 72  PRs, and patches using Kodus, CodeRabbit, or Amp, preferring whichever is
 73  available in that order.
 74- [scripting-with-go](skills/scripting-with-go/SKILL.md): Creates executable Go
 75  scripts using a shell trick (not a true shebang). For automation and tooling
 76  outside of Go projects.
 77- [working-with-tmux](skills/working-with-tmux/SKILL.md): Spawns and manages
 78  background processes via tmux. Creates windows, sends commands, and captures
 79  output without blocking the main session. Useful for servers and long tasks.
 80- [writing-git-tags](skills/writing-git-tags/SKILL.md): Generates git tag
 81  annotations from commit history following Semantic Versioning and Conventional
 82  Commits via [git-format].
 83- [writing-roc-lang](skills/writing-roc-lang/SKILL.md): Writes Roc code with
 84  strong static types, helpful compiler errors, and functional programming.
 85  Covers both full applications and one-off scripts.
 86- [writing-rust](skills/writing-rust/SKILL.md): Writes idiomatic Rust with
 87  strict quality gates: `cargo fmt`, `clippy -- -D warnings`, and required
 88  tests. Enforces `thiserror` for libs, `anyhow` for apps, warns against common
 89  anti-patterns.
 90
 91[blader/humanizer]: https://github.com/blader/humanizer
 92[ast-grep]: https://github.com/ast-grep/ast-grep
 93[git-format]: https://git.secluded.site/git-format
 94[lune]: https://git.secluded.site/lune
 95[Lunatask]: https://lunatask.app/
 96[ntfy.sh]: https://ntfy.sh
 97[rumilo]: https://git.secluded.site/rumilo
 98[synu]: https://git.secluded.site/synu
 99[wt]: https://git.secluded.site/wt
100[gum]: https://github.com/charmbracelet/gum
101
102## Installation
103
104If you're using [Amp], run `amp skill add
105https://git.secluded.site/agent-skills`. Otherwise, clone the repository, then
106install via `make` or manual symlinks.
107
108[Amp]: https://ampcode.com
109
110```sh
111git clone https://git.secluded.site/agent-skills
112cd agent-skills
113```
114
115### With Make
116
117Skills install to `~/.config/agents/skills/` by default. Override by
118setting `SKILL_DIR`. Tab completion works so you don't have to remember
119skill names or copy/paste.
120
121```sh
122# List available skills
123make list
124
125# Install all skills to default dir
126make all
127
128# Install specific skills to Claude Code
129SKILL_DIR=$HOME/.claude/skills make authoring-skills formatting-commits
130
131# Remove a specific skill from Amp
132make uninstall-authoring-skills SKILL_DIR=$HOME/.config/agents/skills
133
134# Remove all skills from Codex
135make uninstall SKILL_DIR=$HOME/.codex/skills
136```
137
138### With symlinks
139
140```sh
141# Install all skills
142for s in skills/*/; do ln -s "$PWD/$s" ~/.config/agents/skills/; done
143
144# Install specific skills
145ln -s "$PWD/skills/authoring-skills" ~/.config/agents/skills/
146
147# Remove a skill
148rm ~/.config/agents/skills/formatting-commits
149```
150
151### Agent skill directories
152
153| Agent                                   | Dir                        |
154| --------------------------------------- | -------------------------- |
155| [Crush], [Octofriend], [Shelley], [Amp] | `~/.config/agents/skills/` |
156| [Pi]                                    | `~/.pi/agent/skills/`      |
157| Anthropic's Claude Code                 | `~/.claude/skills/`        |
158| OpenAI's Codex                          | `~/.codex/skills/`         |
159
160## Updating
161
162```sh
163cd ~/path/to/agent-skills
164git pull
165```
166
167Symlinked skills update automatically.
168
169## Contributions
170
171Patch requests are in [amolith/llm-projects] on [pr.pico.sh]. You don't need a
172new account to contribute, you don't need to fork this repo, you don't need to
173fiddle with `git send-email`, you don't need to faff with your email client to
174get `git request-pull` working...
175
176You just need:
177
178- Git
179- SSH
180- An SSH key
181
182```sh
183# Clone this repo, make your changes, and commit them
184# Create a new patch request with
185git format-patch origin/main --stdout | ssh pr.pico.sh pr create amolith/llm-projects
186# After potential feedback, submit a revision to an existing patch request with
187git format-patch origin/main --stdout | ssh pr.pico.sh pr add {prID}
188# List patch requests
189ssh pr.pico.sh pr ls amolith/llm-projects
190```
191
192See "How do Patch Requests work?" on [pr.pico.sh]'s home page for a more
193complete example workflow.
194
195[amolith/llm-projects]: https://pr.pico.sh/r/amolith/llm-projects
196[pr.pico.sh]: https://pr.pico.sh
197
198## Token stats
199
200Real token stats as reported by [Synthetic.new]'s [/messages/count_tokens]
201endpoint with [./skill-stats.go](./skill-stats.go).
202
203[Synthetic.new]: https://synthetic.new
204[/messages/count_tokens]: https://dev.synthetic.new/docs/anthropic/messages/count-tokens
205
206```
207=== addressing-agent-comments ===
208
209Token breakdown:
210  Name:           22 tokens
211  Description:    96 tokens
212  Body:          706 tokens (40 lines)
213  ───────────────────────────────────────────────
214  Total:         824 tokens
215
216=== ast-grep ===
217
218Token breakdown:
219  Name:           18 tokens
220  Description:   198 tokens
221  Body:         7503 tokens (469 lines)
222  References:
223    rule_reference.md                         6814 tokens
224  ───────────────────────────────────────────────
225  Total:       14533 tokens
226  ⚠️  Body exceeds recommended 5000 token budget!
227
228=== auditing-repositories ===
229
230Token breakdown:
231  Name:           20 tokens
232  Description:   140 tokens
233  Body:         2840 tokens (156 lines)
234  References:
235    llm-security.md                           1138 tokens
236  ───────────────────────────────────────────────
237  Total:        4138 tokens
238
239=== authoring-skills ===
240
241Token breakdown:
242  Name:           20 tokens
243  Description:    86 tokens
244  Body:         2000 tokens (102 lines)
245  References:
246    checklist.md                               806 tokens
247    patterns.md                               2415 tokens
248    process.md                                 833 tokens
249    specification.md                          3890 tokens
250  ───────────────────────────────────────────────
251  Total:       10050 tokens
252
253=== creating-tasks-through-lunatask ===
254
255Token breakdown:
256  Name:           30 tokens
257  Description:   108 tokens
258  Body:         1841 tokens (84 lines)
259  References:
260    cli.md                                     589 tokens
261    handoff.md                                2769 tokens
262    installing-lune.md                         176 tokens
263  ───────────────────────────────────────────────
264  Total:        5513 tokens
265
266=== formatting-commits ===
267
268Token breakdown:
269  Name:           22 tokens
270  Description:    98 tokens
271  Body:          992 tokens (43 lines)
272  References:
273    installing-git-format.md                    64 tokens
274  ───────────────────────────────────────────────
275  Total:        1176 tokens
276
277=== frontend-accessibility ===
278
279Token breakdown:
280  Name:           20 tokens
281  Description:   140 tokens
282  Body:         2891 tokens (148 lines)
283  References:
284    antipatterns.md                           3638 tokens
285    patterns.md                               6233 tokens
286  ───────────────────────────────────────────────
287  Total:       12922 tokens
288
289=== handling-customer-data ===
290
291Token breakdown:
292  Name:           22 tokens
293  Description:   123 tokens
294  Body:         1983 tokens (107 lines)
295  ───────────────────────────────────────────────
296  Total:        2128 tokens
297
298=== humanizer ===
299
300Token breakdown:
301  Name:           15 tokens
302  Description:    84 tokens
303  Body:         8536 tokens (462 lines)
304  ───────────────────────────────────────────────
305  Total:        8635 tokens
306  ⚠️  Body exceeds recommended 5000 token budget!
307
308=== invoking-subagents ===
309
310Token breakdown:
311  Name:           20 tokens
312  Description:   113 tokens
313  Body:          796 tokens (13 lines)
314  References:
315    installing-synu.md                         140 tokens
316  ───────────────────────────────────────────────
317  Total:        1069 tokens
318
319=== managing-and-navigating-worktrees ===
320
321Token breakdown:
322  Name:           32 tokens
323  Description:   164 tokens
324  Body:         1912 tokens (96 lines)
325  ───────────────────────────────────────────────
326  Total:        2108 tokens
327
328=== notifying-through-ntfy ===
329
330Token breakdown:
331  Name:           25 tokens
332  Description:    93 tokens
333  Body:         2884 tokens (89 lines)
334  References:
335    ht.md                                     1063 tokens
336    httpie.md                                 1067 tokens
337    nodejs.md                                 1497 tokens
338    python.md                                 1468 tokens
339    wget.md                                   1216 tokens
340  ───────────────────────────────────────────────
341  Total:        9313 tokens
342
343=== rebasing-with-git ===
344
345Token breakdown:
346  Name:           22 tokens
347  Description:   188 tokens
348  Body:         6282 tokens (232 lines)
349  ───────────────────────────────────────────────
350  Total:        6492 tokens
351  ⚠️  Body exceeds recommended 5000 token budget!
352
353=== researching-with-rumilo ===
354
355Token breakdown:
356  Name:           25 tokens
357  Description:   159 tokens
358  Body:         3133 tokens (111 lines)
359  ───────────────────────────────────────────────
360  Total:        3317 tokens
361
362=== resuming-work-through-lunatask ===
363
364Token breakdown:
365  Name:           30 tokens
366  Description:   113 tokens
367  Body:         1241 tokens (42 lines)
368  References:
369    cli.md                                     528 tokens
370    installing-lune.md                         176 tokens
371  ───────────────────────────────────────────────
372  Total:        2088 tokens
373
374=== reviewing-code ===
375
376Token breakdown:
377  Name:           18 tokens
378  Description:   132 tokens
379  Body:          972 tokens (46 lines)
380  ───────────────────────────────────────────────
381  Total:        1122 tokens
382
383=== scripting-with-go ===
384
385Token breakdown:
386  Name:           20 tokens
387  Description:   120 tokens
388  Body:         1968 tokens (138 lines)
389  ───────────────────────────────────────────────
390  Total:        2108 tokens
391
392=== working-with-tmux ===
393
394Token breakdown:
395  Name:           22 tokens
396  Description:    84 tokens
397  Body:         1465 tokens (87 lines)
398  ───────────────────────────────────────────────
399  Total:        1571 tokens
400
401=== writing-git-tags ===
402
403Token breakdown:
404  Name:           22 tokens
405  Description:   101 tokens
406  Body:         2232 tokens (107 lines)
407  References:
408    installing-git-format.md                    64 tokens
409  ───────────────────────────────────────────────
410  Total:        2419 tokens
411
412=== writing-roc-lang ===
413
414Token breakdown:
415  Name:           22 tokens
416  Description:   142 tokens
417  Body:         1846 tokens (117 lines)
418  References:
419    builtins-llms.md                         67881 tokens
420    llms.md                                  11324 tokens
421    scripting.md                              1722 tokens
422  ───────────────────────────────────────────────
423  Total:       82937 tokens
424
425=== writing-rust ===
426
427Token breakdown:
428  Name:           18 tokens
429  Description:   120 tokens
430  Body:         3628 tokens (139 lines)
431  References:
432    idioms.md                                 4605 tokens
433  ───────────────────────────────────────────────
434  Total:        8371 tokens
435
436============================================================
437SUMMARY
438============================================================
439
440Skills: 21
441Metadata: 3067 tokens
442Combined bodies: 57651 tokens
443Overall: 182834 tokens
444Validation errors: 0
445
446Largest skills (by total tokens):
447  1. writing-roc-lang                         82937 tokens
448  2. ast-grep                                 14533 tokens
449  3. frontend-accessibility                   12922 tokens
450  4. authoring-skills                         10050 tokens
451  5. notifying-through-ntfy                    9313 tokens
452```
453
454---
455
456Some other tools if these interested you
457
458- [wt](https://git.secluded.site/wt) - CLI for managing git worktrees
459- [git-format](https://git.secluded.site/git-format) - CLI that turns LLM input
460  into well-formatted conventional commits and tags
461- [garble](https://git.secluded.site/garble) - transform stdin with an LLM (fix
462  typos, translate, reformat)
463- [lune](https://git.secluded.site/lune) - CLI and MCP server for
464  [Lunatask.app](https://lunatask.app)