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): Write [ast-grep] rules for structural
30 code search and analysis. Find patterns the way the compiler sees them, not
31 just as text.
32- [authoring-skills](skills/authoring-skills/SKILL.md): Create and review Agent
33 Skills following best practices. Covers skill structure, frontmatter, and
34 progressive disclosure patterns.
35- [creating-tasks-through-lunatask](skills/creating-tasks-through-lunatask/SKILL.md):
36 Create tasks and handoffs in [Lunatask] via [lune]. Tasks are just tasks.
37 Handoffs capture work to resume later across sessions without filling context
38 windows.
39- [formatting-commits](skills/formatting-commits/SKILL.md): Create commits
40 following Conventional Commits format via [git-format].
41- [frontend-accessibility](skills/frontend-accessibility/SKILL.md): Generate
42 accessible HTML, React, and frontend code following WCAG 2.2 AA. Prioritizes
43 semantic HTML over ARIA, keyboard navigation, and screen reader compatibility.
44- [handling-customer-data](skills/handling-customer-data/SKILL.md): Query
45 customer data responsiblyβthe agent answers questions about the data without
46 ever seeing it directly.
47- [humanizer](skills/humanizer/SKILL.md): Remove AI-generated patterns from text
48 like promotional fluff, weasel words, and mechanical sentence structures.
49 Based on Wikipedia's AI Cleanup research. Originally from [blader/humanizer].
50- [invoking-subagents](skills/invoking-subagents/SKILL.md): Spawn subagents with
51 restricted tool access for parallel tasks across repositories. Requires [synu]
52 and the `claude` CLI. Useful for summarizing git history or processing large
53 diffs without filling the main context window.
54- [managing-and-navigating-worktrees](skills/managing-and-navigating-worktrees/SKILL.md):
55 Git worktree management using [wt] with a bare repository structure. Each
56 branch lives in its own sibling directory. Requires [wt], git, and [gum].
57- [querying-documentation](skills/querying-documentation/SKILL.md): Query Go
58 documentation with focused subagents for complex questions spanning multiple
59 packages or external libraries. Requires Fish shell and [synu]. Currently
60 Go-only.
61- [rebasing-with-git](skills/rebasing-with-git/SKILL.md): Git rebase workflows
62 from simple rebases to the drop-and-repick integration branch pattern. Assumes
63 `upstream` remote for forks and `rerere` enabled. Supports worktrees including
64 `wt`-managed repos.
65- [researching-with-rumilo](skills/researching-with-rumilo/SKILL.md): Dispatch AI
66 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 Resume deferred work from [Lunatask] handoff notes via [lune].
71- [reviewing-code](skills/reviewing-code/SKILL.md): Review code for correctness,
72 security, reliability, performance, and quality. Covers PRs, diffs, and
73 general change review.
74- [scripting-with-go](skills/scripting-with-go/SKILL.md): Create 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): Spawn and manage
78 background processes via tmux. Create windows, send commands, and capture
79 output without blocking the main session. Useful for servers and long tasks.
80- [writing-git-tags](skills/writing-git-tags/SKILL.md): Generate 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): Write 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): Write idiomatic Rust with strict
87 quality gates: `cargo fmt`, `clippy -- -D warnings`, and required tests.
88 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[rumilo]: https://git.secluded.site/rumilo
97[synu]: https://git.secluded.site/synu
98[wt]: https://git.secluded.site/wt
99[gum]: https://github.com/charmbracelet/gum
100
101## Installation
102
103If you're using [Amp], run `amp skill add
104https://git.secluded.site/agent-skills`. Otherwise, clone the repository, then
105install via `make` or manual symlinks.
106
107[Amp]: https://ampcode.com
108
109```sh
110git clone https://git.secluded.site/agent-skills
111cd agent-skills
112```
113
114### With Make
115
116Skills install to `~/.config/agents/skills/` by default. Override by
117setting `SKILL_DIR`. Tab completion works so you don't have to remember
118skill names or copy/paste.
119
120```sh
121# List available skills
122make list
123
124# Install all skills to default dir
125make all
126
127# Install specific skills to Claude Code
128SKILL_DIR=$HOME/.claude/skills make authoring-skills formatting-commits
129
130# Remove a specific skill from Amp
131make uninstall-authoring-skills SKILL_DIR=$HOME/.config/agents/skills
132
133# Remove all skills from Codex
134make uninstall SKILL_DIR=$HOME/.codex/skills
135```
136
137### With symlinks
138
139```sh
140# Install all skills
141for s in skills/*/; do ln -s "$PWD/$s" ~/.config/agents/skills/; done
142
143# Install specific skills
144ln -s "$PWD/skills/authoring-skills" ~/.config/agents/skills/
145
146# Remove a skill
147rm ~/.config/agents/skills/formatting-commits
148```
149
150### Agent skill directories
151
152| Agent | Dir |
153| --------------------------------------- | -------------------------- |
154| [Crush], [Octofriend], [Shelley], [Amp] | `~/.config/agents/skills/` |
155| [Pi] | `~/.pi/agent/skills/` |
156| Anthropic's Claude Code | `~/.claude/skills/` |
157| OpenAI's Codex | `~/.codex/skills/` |
158
159## Updating
160
161```sh
162cd ~/path/to/agent-skills
163git pull
164```
165
166Symlinked skills update automatically.
167
168## Contributions
169
170Patch requests are in [amolith/llm-projects] on [pr.pico.sh]. You don't
171need a new account to contribute, you don't need to fork this repo, you
172don't need to fiddle with `git send-email`, you don't need to faff with
173your email client to get `git request-pull` working...
174
175You just need:
176
177- Git
178- SSH
179- An SSH key
180
181```sh
182# Clone this repo, make your changes, and commit them
183# Create a new patch request with
184git format-patch origin/main --stdout | ssh pr.pico.sh pr create amolith/llm-projects
185# After potential feedback, submit a revision to an existing patch request with
186git format-patch origin/main --stdout | ssh pr.pico.sh pr add {prID}
187# List patch requests
188ssh pr.pico.sh pr ls amolith/llm-projects
189```
190
191See "How do Patch Requests work?" on [pr.pico.sh]'s home page for a more
192complete example workflow.
193
194[amolith/llm-projects]: https://pr.pico.sh/r/amolith/llm-projects
195[pr.pico.sh]: https://pr.pico.sh
196
197## Token stats
198
199Real token stats as reported by [Synthetic.new]'s [/messages/count_tokens] endpoint with [./skill-stats.go](./skill-stats.go).
200
201[Synthetic.new]: https://synthetic.new
202[/messages/count_tokens]: https://dev.synthetic.new/docs/anthropic/messages/count-tokens
203
204```
205=== addressing-agent-comments ===
206
207Token breakdown:
208 Name: 22 tokens
209 Description: 96 tokens
210 Body: 706 tokens (40 lines)
211 βββββββββββββββββββββββββββββββββββββββββββββββ
212 Total: 824 tokens
213
214=== ast-grep ===
215
216Token breakdown:
217 Name: 18 tokens
218 Description: 198 tokens
219 Body: 7503 tokens (469 lines)
220 References:
221 rule_reference.md 6814 tokens
222 βββββββββββββββββββββββββββββββββββββββββββββββ
223 Total: 14533 tokens
224 β οΈ Body exceeds recommended 5000 token budget!
225
226=== authoring-skills ===
227
228Token breakdown:
229 Name: 20 tokens
230 Description: 86 tokens
231 Body: 2000 tokens (102 lines)
232 References:
233 checklist.md 806 tokens
234 patterns.md 2415 tokens
235 process.md 833 tokens
236 specification.md 3890 tokens
237 βββββββββββββββββββββββββββββββββββββββββββββββ
238 Total: 10050 tokens
239
240=== creating-tasks-through-lunatask ===
241
242Token breakdown:
243 Name: 30 tokens
244 Description: 108 tokens
245 Body: 1927 tokens (88 lines)
246 References:
247 cli.md 589 tokens
248 handoff.md 2769 tokens
249 installing-lune.md 176 tokens
250 βββββββββββββββββββββββββββββββββββββββββββββββ
251 Total: 5599 tokens
252
253=== formatting-commits ===
254
255Token breakdown:
256 Name: 22 tokens
257 Description: 98 tokens
258 Body: 992 tokens (43 lines)
259 References:
260 installing-git-format.md 64 tokens
261 βββββββββββββββββββββββββββββββββββββββββββββββ
262 Total: 1176 tokens
263
264=== frontend-accessibility ===
265
266Token breakdown:
267 Name: 20 tokens
268 Description: 140 tokens
269 Body: 2891 tokens (148 lines)
270 References:
271 antipatterns.md 3638 tokens
272 patterns.md 6233 tokens
273 βββββββββββββββββββββββββββββββββββββββββββββββ
274 Total: 12922 tokens
275
276=== handling-customer-data ===
277
278Token breakdown:
279 Name: 22 tokens
280 Description: 123 tokens
281 Body: 1983 tokens (107 lines)
282 βββββββββββββββββββββββββββββββββββββββββββββββ
283 Total: 2128 tokens
284
285=== humanizer ===
286
287Token breakdown:
288 Name: 15 tokens
289 Description: 84 tokens
290 Body: 8536 tokens (462 lines)
291 βββββββββββββββββββββββββββββββββββββββββββββββ
292 Total: 8635 tokens
293 β οΈ Body exceeds recommended 5000 token budget!
294
295=== invoking-subagents ===
296
297Token breakdown:
298 Name: 20 tokens
299 Description: 113 tokens
300 Body: 796 tokens (13 lines)
301 References:
302 installing-synu.md 140 tokens
303 βββββββββββββββββββββββββββββββββββββββββββββββ
304 Total: 1069 tokens
305
306=== managing-and-navigating-worktrees ===
307
308Token breakdown:
309 Name: 32 tokens
310 Description: 164 tokens
311 Body: 1912 tokens (96 lines)
312 βββββββββββββββββββββββββββββββββββββββββββββββ
313 Total: 2108 tokens
314
315=== querying-documentation ===
316
317Token breakdown:
318 Name: 22 tokens
319 Description: 132 tokens
320 Body: 796 tokens (22 lines)
321 References:
322 dependencies.md 108 tokens
323 βββββββββββββββββββββββββββββββββββββββββββββββ
324 Total: 1058 tokens
325
326=== rebasing-with-git ===
327
328Token breakdown:
329 Name: 22 tokens
330 Description: 188 tokens
331 Body: 5696 tokens (202 lines)
332 βββββββββββββββββββββββββββββββββββββββββββββββ
333 Total: 5906 tokens
334 β οΈ Body exceeds recommended 5000 token budget!
335
336=== researching-with-rumilo ===
337
338Token breakdown:
339 Name: 25 tokens
340 Description: 159 tokens
341 Body: 1319 tokens (49 lines)
342 βββββββββββββββββββββββββββββββββββββββββββββββ
343 Total: 1503 tokens
344
345=== resuming-work-through-lunatask ===
346
347Token breakdown:
348 Name: 30 tokens
349 Description: 113 tokens
350 Body: 1241 tokens (42 lines)
351 References:
352 cli.md 528 tokens
353 installing-lune.md 176 tokens
354 βββββββββββββββββββββββββββββββββββββββββββββββ
355 Total: 2088 tokens
356
357=== reviewing-code ===
358
359Token breakdown:
360 Name: 18 tokens
361 Description: 125 tokens
362 Body: 1880 tokens (121 lines)
363 βββββββββββββββββββββββββββββββββββββββββββββββ
364 Total: 2023 tokens
365
366=== scripting-with-go ===
367
368Token breakdown:
369 Name: 20 tokens
370 Description: 120 tokens
371 Body: 1968 tokens (138 lines)
372 βββββββββββββββββββββββββββββββββββββββββββββββ
373 Total: 2108 tokens
374
375=== working-with-tmux ===
376
377Token breakdown:
378 Name: 22 tokens
379 Description: 84 tokens
380 Body: 1465 tokens (87 lines)
381 βββββββββββββββββββββββββββββββββββββββββββββββ
382 Total: 1571 tokens
383
384=== writing-git-tags ===
385
386Token breakdown:
387 Name: 22 tokens
388 Description: 101 tokens
389 Body: 2232 tokens (107 lines)
390 References:
391 installing-git-format.md 64 tokens
392 βββββββββββββββββββββββββββββββββββββββββββββββ
393 Total: 2419 tokens
394
395=== writing-roc-lang ===
396
397Token breakdown:
398 Name: 22 tokens
399 Description: 142 tokens
400 Body: 1846 tokens (117 lines)
401 References:
402 builtins-llms.md 67881 tokens
403 llms.md 11324 tokens
404 scripting.md 1722 tokens
405 βββββββββββββββββββββββββββββββββββββββββββββββ
406 Total: 82937 tokens
407
408=== writing-rust ===
409
410Token breakdown:
411 Name: 18 tokens
412 Description: 120 tokens
413 Body: 3628 tokens (139 lines)
414 References:
415 idioms.md 4605 tokens
416 βββββββββββββββββββββββββββββββββββββββββββββββ
417 Total: 8371 tokens
418
419============================================================
420SUMMARY
421============================================================
422
423Skills: 20
424Metadata: 2936 tokens
425Combined bodies: 51317 tokens
426Overall: 169028 tokens
427Validation errors: 0
428
429Largest skills (by total tokens):
430 1. writing-roc-lang 82937 tokens
431 2. ast-grep 14533 tokens
432 3. frontend-accessibility 12922 tokens
433 4. authoring-skills 10050 tokens
434 5. humanizer 8635 tokens
435```
436
437---
438
439Some other tools if these interested you
440
441- [wt](https://git.secluded.site/wt) - CLI for managing git worktrees
442- [git-format](https://git.secluded.site/git-format) - CLI that turns LLM input
443 into well-formatted conventional commits and tags
444- [garble](https://git.secluded.site/garble) - transform stdin with an LLM (fix
445 typos, translate, reformat)
446- [lune](https://git.secluded.site/lune) - CLI and MCP server for
447 [Lunatask.app](https://lunatask.app)