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-code-review-comments](skills/addressing-code-review-comments/SKILL.md):
 27  Finds `CR:` 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- [backing-up-with-keld](skills/backing-up-with-keld/SKILL.md): Writes and
 37  manages keld configuration for restic backups. Covers TOML preset structure,
 38  split preset composition (`home@cloud`), config file discovery, environment
 39  variables, and systemd timer setup.
 40- [collaborating-through-pr-pico-sh](skills/collaborating-through-pr-pico-sh/SKILL.md):
 41  Collaborates on git patches via [pr.pico.sh], a minimal patchbin service.
 42  Covers both contributing and reviewing patch requests using `git format-patch`
 43  and `git am`.
 44- [creating-tasks-through-lunatask](skills/creating-tasks-through-lunatask/SKILL.md):
 45  Creates tasks and handoffs in [Lunatask] via [lune]. Tasks are just tasks.
 46  Handoffs capture work to resume later across sessions without filling context
 47  windows.
 48- [formatting-commits](skills/formatting-commits/SKILL.md): Detects a project's
 49  commit style from recent history and formats messages accordingly. Supports
 50  Conventional Commits and kernel-style imperative commits.
 51- [fallback-code-review](skills/fallback-code-review/SKILL.md): Provides a
 52  fallback-only external review flow via CLI tools like Amp, CodeRabbit, or
 53  Kodus.
 54- [frontend-accessibility](skills/frontend-accessibility/SKILL.md): Strives to
 55  generate accessible HTML, React, and frontend code following WCAG 2.2 AA.
 56  Prioritizes semantic HTML over ARIA, keyboard navigation, and screen reader
 57  compatibility.
 58- [handling-customer-data](skills/handling-customer-data/SKILL.md): Queries
 59  customer data responsiblyβ€”the agent answers questions about the data without
 60  ever seeing it directly.
 61- [humanizer](skills/humanizer/SKILL.md): Removes AI-generated patterns from
 62  text like promotional fluff, weasel words, and mechanical sentence structures.
 63  Based on Wikipedia's AI Cleanup research. Originally from [blader/humanizer].
 64- [ideating-with-bdd](skills/ideating-with-bdd/SKILL.md): Guides collaborative
 65  discovery of behaviour through structured conversation, iterating with the user
 66  to refine ideas into user stories and Gherkin scenarios. Works for any
 67  language or framework.
 68- [initialising-and-updating-agents-md](skills/initialising-and-updating-agents-md/SKILL.md):
 69  Analyses a codebase and creates or updates `AGENTS.md` to help future agents
 70  work effectively. Discovers commands, conventions, patterns, and gotchas from
 71  the project's source and config files.
 72- [invoking-subagents](skills/invoking-subagents/SKILL.md): Spawns subagents
 73  with restricted tool access for parallel tasks across repositories. Requires
 74  [the Pi coding agent][Pi]. Useful for summarizing git history or processing
 75  large diffs without filling the main context window.
 76- [maintaining-aur-packages](skills/maintaining-aur-packages/SKILL.md): Creates
 77  and updates AUR packages following Arch packaging standards. Covers PKGBUILDs
 78  for source, `-bin`, and `-git` package types, checksums with `updpkgsums`,
 79  linting with `namcap`, and `.SRCINFO` generation.
 80- [managing-and-navigating-worktrees](skills/managing-and-navigating-worktrees/SKILL.md):
 81  Manages git worktrees using [wt] with a bare repository structure. Each branch
 82  lives in its own sibling directory. Requires [wt], git, and [gum].
 83- [monitoring-with-munin](skills/monitoring-with-munin/SKILL.md): Deploys and
 84  manages Munin monitoring across servers. Sets up munin-node on hosts, writes
 85  plugins, configures masters, and handles alerts.
 86- [notifying-through-ntfy](skills/notifying-through-ntfy/SKILL.md): Sends push
 87  notifications via [ntfy.sh] when requested, such as at the end of its turn.
 88- [rebasing-with-git](skills/rebasing-with-git/SKILL.md): Manages git rebase
 89  workflows from simple rebases to the drop-and-repick integration branch
 90  pattern. Assumes `upstream` remote for forks and `rerere` enabled. Supports
 91  worktrees including `wt`-managed repos.
 92- [researching-with-rumilo](skills/researching-with-rumilo/SKILL.md): Dispatches
 93  AI research subagents via [rumilo] for web search and repository exploration.
 94  Research topics, look up library usage, or explore external codebases without
 95  filling the main context window.
 96- [resuming-work-through-lunatask](skills/resuming-work-through-lunatask/SKILL.md):
 97  Resumes deferred work from [Lunatask] handoff notes via [lune].
 98- [scripting-with-go](skills/scripting-with-go/SKILL.md): Creates executable Go
 99  scripts using a shell trick (not a true shebang). For automation and tooling
100  outside of Go projects.
101- [testing-with-gocuke-and-gherkin](skills/testing-with-gocuke-and-gherkin/SKILL.md):
102  Drives BDD, red/green TDD, and property-based testing in Go projects using
103  [gocuke] and Gherkin feature files.
104- [updating-llm-client-model-lists](skills/updating-llm-client-model-lists/SKILL.md):
105  Synchronizes model configurations across Zed, Crush, Octofriend, and Pi from
106  Plexus' /v1/models endpoint.
107- [using-exe-dev](skills/using-exe-dev/SKILL.md): Guides working with [exe.dev]
108  VMs, which provide Linux VMs with persistent disks, instant HTTPS, and
109  built-in auth via SSH.
110- [using-goji](skills/using-goji/SKILL.md): Manages goji workspaces and zmx
111  sessions for git worktrees and jj workspaces. Covers conversion, creation,
112  listing, attaching, removal, JSON output, and safe temp-repo testing.
113- [using-jujutsu](skills/using-jujutsu/SKILL.md): Guides [jujutsu] (jj)
114  workflows, covering commit selection, change creation, diff reading, and
115  common pitfalls that trip up agents.
116- [using-silverbullet](skills/using-silverbullet/SKILL.md): Manages notes in
117  [SilverBullet] via the CLI and Space Lua. Covers searching, reading, writing,
118  and editing pages, plus journal and task workflows.
119- [working-with-zmx](skills/working-with-zmx/SKILL.md): Manages persistent
120  terminal sessions for background processes, dev servers, and long-running tasks.
121  Creates sessions, runs commands detached, checks output, and writes files into
122  sessions over SSH.
123- [writing-git-tags](skills/writing-git-tags/SKILL.md): Generates git tag
124  annotations from commit history following Semantic Versioning and Conventional
125  Commits via [git-format].
126- [writing-roc-lang](skills/writing-roc-lang/SKILL.md): Writes Roc code with
127  strong static types, helpful compiler errors, and functional programming.
128  Covers both full applications and one-off scripts.
129- [writing-rust](skills/writing-rust/SKILL.md): Writes idiomatic Rust with
130  strict quality gates: `cargo fmt`, `clippy -- -D warnings`, and required
131  tests. Enforces `thiserror` for libs, `anyhow` for apps, warns against common
132  anti-patterns.
133
134[blader/humanizer]: https://github.com/blader/humanizer
135[ast-grep]: https://github.com/ast-grep/ast-grep
136[git-format]: https://git.secluded.site/git-format
137[gocuke]: https://github.com/tenntenn/gocuke
138[lune]: https://git.secluded.site/lune
139[Lunatask]: https://lunatask.app/
140[ntfy.sh]: https://ntfy.sh
141[rumilo]: https://git.secluded.site/rumilo
142[synu]: https://git.secluded.site/synu
143[wt]: https://git.secluded.site/wt
144[gum]: https://github.com/charmbracelet/gum
145[exe.dev]: https://exe.dev
146[jujutsu]: https://jj-vcs.github.io/jj/latest/
147[SilverBullet]: https://silverbullet.md
148
149## Installation
150
151If you're using [Amp], run `amp skill add
152https://git.secluded.site/agent-skills`. Otherwise, clone the repository, then
153install via `make` or manual symlinks.
154
155[Amp]: https://ampcode.com
156
157```sh
158git clone https://git.secluded.site/agent-skills
159cd agent-skills
160```
161
162### With Make
163
164Skills install to `~/.config/agents/skills/` by default. Override by
165setting `SKILL_DIR`. Tab completion works so you don't have to remember
166skill names or copy/paste.
167
168```sh
169# List available skills
170make list
171
172# Install all skills to default dir
173make all
174
175# Install specific skills to Claude Code
176SKILL_DIR=$HOME/.claude/skills make authoring-skills formatting-commits
177
178# Remove a specific skill from Amp
179make uninstall-authoring-skills SKILL_DIR=$HOME/.config/agents/skills
180
181# Remove all skills from Codex
182make uninstall SKILL_DIR=$HOME/.codex/skills
183```
184
185### With symlinks
186
187```sh
188# Install all skills
189for s in skills/*/; do ln -s "$PWD/$s" ~/.config/agents/skills/; done
190
191# Install specific skills
192ln -s "$PWD/skills/authoring-skills" ~/.config/agents/skills/
193
194# Remove a skill
195rm ~/.config/agents/skills/formatting-commits
196```
197
198### Agent skill directories
199
200| Agent                                   | Dir                        |
201| --------------------------------------- | -------------------------- |
202| [Crush], [Octofriend], [Shelley], [Amp] | `~/.config/agents/skills/` |
203| [Pi]                                    | `~/.pi/agent/skills/`      |
204| Anthropic's Claude Code                 | `~/.claude/skills/`        |
205| OpenAI's Codex                          | `~/.codex/skills/`         |
206
207## Updating
208
209```sh
210cd ~/path/to/agent-skills
211git pull
212```
213
214Symlinked skills update automatically.
215
216## Contributions
217
218Patch requests are in [amolith/llm-projects] on [pr.pico.sh]. You don't need a
219new account to contribute, you don't need to fork this repo, you don't need to
220fiddle with `git send-email`, you don't need to faff with your email client to
221get `git request-pull` working...
222
223You just need:
224
225- Git
226- SSH
227- An SSH key
228
229```sh
230# Clone this repo, make your changes, and commit them
231# Create a new patch request with
232git format-patch origin/main --stdout | ssh pr.pico.sh pr create amolith/llm-projects
233# After potential feedback, submit a revision to an existing patch request with
234git format-patch origin/main --stdout | ssh pr.pico.sh pr add {prID}
235# List patch requests
236ssh pr.pico.sh pr ls amolith/llm-projects
237```
238
239See "How do Patch Requests work?" on [pr.pico.sh]'s home page for a more
240complete example workflow.
241
242[amolith/llm-projects]: https://pr.pico.sh/r/amolith/llm-projects
243[pr.pico.sh]: https://pr.pico.sh
244
245## Token stats
246
247Real token stats as reported by [Synthetic.new]'s [/messages/count_tokens]
248endpoint with [./skill-stats.go](./skill-stats.go).
249
250[Synthetic.new]: https://synthetic.new
251[/messages/count_tokens]: https://dev.synthetic.new/docs/anthropic/messages/count-tokens
252
253```
254=== addressing-code-review-comments ===
255
256Token breakdown:
257  Name:            9 tokens
258  Description:    40 tokens
259  Body:          290 tokens (38 lines)
260  ───────────────────────────────────────────────
261  Total:         339 tokens
262
263=== ast-grep ===
264
265Token breakdown:
266  Name:            7 tokens
267  Description:    76 tokens
268  Body:         2765 tokens (469 lines)
269  References:
270    rule_reference.md                         2515 tokens
271  ───────────────────────────────────────────────
272  Total:        5363 tokens
273
274=== auditing-repositories ===
275
276Token breakdown:
277  Name:            8 tokens
278  Description:    51 tokens
279  Body:         1046 tokens (156 lines)
280  References:
281    llm-security.md                            427 tokens
282  ───────────────────────────────────────────────
283  Total:        1532 tokens
284
285=== authoring-skills ===
286
287Token breakdown:
288  Name:            8 tokens
289  Description:    32 tokens
290  Body:          861 tokens (105 lines)
291  References:
292    checklist.md                               301 tokens
293    patterns.md                                880 tokens
294    process.md                                 311 tokens
295    specification.md                          1441 tokens
296  ───────────────────────────────────────────────
297  Total:        3834 tokens
298
299=== backing-up-with-keld ===
300
301Token breakdown:
302  Name:            9 tokens
303  Description:    39 tokens
304  Body:         1742 tokens (235 lines)
305  References:
306    config-examples.md                        1415 tokens
307    installation.md                             19 tokens
308  ───────────────────────────────────────────────
309  Total:        3224 tokens
310
311=== collaborating-through-pr-pico-sh ===
312
313Token breakdown:
314  Name:           12 tokens
315  Description:    47 tokens
316  Body:          521 tokens (43 lines)
317  References:
318    contributing.md                            162 tokens
319    jujutsu.md                                 516 tokens
320    reviewing.md                               406 tokens
321  ───────────────────────────────────────────────
322  Total:        1664 tokens
323
324=== creating-tasks-through-lunatask ===
325
326Token breakdown:
327  Name:           12 tokens
328  Description:    41 tokens
329  Body:          741 tokens (88 lines)
330  References:
331    cli.md                                     218 tokens
332    handoff.md                                1035 tokens
333    installing-lune.md                          65 tokens
334  ───────────────────────────────────────────────
335  Total:        2112 tokens
336
337=== formatting-commits ===
338
339Token breakdown:
340  Name:            8 tokens
341  Description:    57 tokens
342  Body:          310 tokens (34 lines)
343  References:
344    conventional-commits.md                    362 tokens
345    installing-git-format.md                    22 tokens
346    kernel-style.md                            526 tokens
347  ───────────────────────────────────────────────
348  Total:        1285 tokens
349
350=== frontend-accessibility ===
351
352Token breakdown:
353  Name:            7 tokens
354  Description:    52 tokens
355  Body:         1080 tokens (148 lines)
356  References:
357    antipatterns.md                           1341 tokens
358    patterns.md                               2279 tokens
359  ───────────────────────────────────────────────
360  Total:        4759 tokens
361
362=== fallback-code-review ===
363
364Token breakdown:
365  Name:            8 tokens
366  Description:    98 tokens
367  Body:          489 tokens (56 lines)
368  ───────────────────────────────────────────────
369  Total:         595 tokens
370
371=== handling-customer-data ===
372
373Token breakdown:
374  Name:            9 tokens
375  Description:    46 tokens
376  Body:          718 tokens (107 lines)
377  ───────────────────────────────────────────────
378  Total:         773 tokens
379
380=== humanizer ===
381
382Token breakdown:
383  Name:            6 tokens
384  Description:    31 tokens
385  Body:         3274 tokens (462 lines)
386  ───────────────────────────────────────────────
387  Total:        3311 tokens
388
389=== ideating-with-bdd ===
390
391Token breakdown:
392  Name:            9 tokens
393  Description:   133 tokens
394  Body:         1582 tokens (177 lines)
395  References:
396    gherkin-reference.md                       984 tokens
397  ───────────────────────────────────────────────
398  Total:        2708 tokens
399
400=== initialising-and-updating-agents-md ===
401
402Token breakdown:
403  Name:           12 tokens
404  Description:    59 tokens
405  Body:          850 tokens (63 lines)
406  ───────────────────────────────────────────────
407  Total:         921 tokens
408
409=== invoking-subagents ===
410
411Token breakdown:
412  Name:            8 tokens
413  Description:    42 tokens
414  Body:          450 tokens (20 lines)
415  ───────────────────────────────────────────────
416  Total:         500 tokens
417
418=== maintaining-aur-packages ===
419
420Token breakdown:
421  Name:            9 tokens
422  Description:    58 tokens
423  Body:         1439 tokens (103 lines)
424  References:
425    build-patterns.md                         1120 tokens
426  ───────────────────────────────────────────────
427  Total:        2626 tokens
428
429=== managing-and-navigating-worktrees ===
430
431Token breakdown:
432  Name:           11 tokens
433  Description:    60 tokens
434  Body:          703 tokens (96 lines)
435  ───────────────────────────────────────────────
436  Total:         774 tokens
437
438=== monitoring-with-munin ===
439
440Token breakdown:
441  Name:           10 tokens
442  Description:    62 tokens
443  Body:         1981 tokens (238 lines)
444  References:
445    writing-plugins.md                        1151 tokens
446  ───────────────────────────────────────────────
447  Total:        3204 tokens
448
449=== notifying-through-ntfy ===
450
451Token breakdown:
452  Name:           10 tokens
453  Description:    37 tokens
454  Body:         1052 tokens (89 lines)
455  References:
456    ht.md                                      383 tokens
457    httpie.md                                  385 tokens
458    nodejs.md                                  541 tokens
459    python.md                                  517 tokens
460    wget.md                                    430 tokens
461  ───────────────────────────────────────────────
462  Total:        3355 tokens
463
464=== rebasing-with-git ===
465
466Token breakdown:
467  Name:            8 tokens
468  Description:    71 tokens
469  Body:         2317 tokens (232 lines)
470  ───────────────────────────────────────────────
471  Total:        2396 tokens
472
473=== researching-with-rumilo ===
474
475Token breakdown:
476  Name:           10 tokens
477  Description:    60 tokens
478  Body:         1217 tokens (112 lines)
479  ───────────────────────────────────────────────
480  Total:        1287 tokens
481
482=== resuming-work-through-lunatask ===
483
484Token breakdown:
485  Name:           12 tokens
486  Description:    44 tokens
487  Body:          466 tokens (42 lines)
488  References:
489    cli.md                                     195 tokens
490    installing-lune.md                          65 tokens
491  ───────────────────────────────────────────────
492  Total:         782 tokens
493
494=== scripting-with-go ===
495
496Token breakdown:
497  Name:            8 tokens
498  Description:    46 tokens
499  Body:          727 tokens (138 lines)
500  ───────────────────────────────────────────────
501  Total:         781 tokens
502
503=== testing-with-gocuke-and-gherkin ===
504
505Token breakdown:
506  Name:           14 tokens
507  Description:    77 tokens
508  Body:          633 tokens (67 lines)
509  References:
510    bdd-practices.md                           261 tokens
511    gocuke-api.md                             1427 tokens
512  ───────────────────────────────────────────────
513  Total:        2412 tokens
514
515=== updating-llm-client-model-lists ===
516
517Token breakdown:
518  Name:           13 tokens
519  Description:    51 tokens
520  Body:         1124 tokens (131 lines)
521  ───────────────────────────────────────────────
522  Total:        1188 tokens
523
524=== using-exe-dev ===
525
526Token breakdown:
527  Name:            8 tokens
528  Description:    32 tokens
529  Body:          380 tokens (45 lines)
530  ───────────────────────────────────────────────
531  Total:         420 tokens
532
533=== using-jujutsu ===
534
535Token breakdown:
536  Name:            9 tokens
537  Description:    55 tokens
538  Body:          735 tokens (92 lines)
539  ───────────────────────────────────────────────
540  Total:         799 tokens
541
542=== working-with-zmx ===
543
544Token breakdown:
545  Name:            8 tokens
546  Description:    58 tokens
547  Body:          564 tokens (71 lines)
548  ───────────────────────────────────────────────
549  Total:         630 tokens
550
551=== writing-git-tags ===
552
553Token breakdown:
554  Name:            7 tokens
555  Description:    38 tokens
556  Body:          821 tokens (107 lines)
557  References:
558    installing-git-format.md                    22 tokens
559  ───────────────────────────────────────────────
560  Total:         888 tokens
561
562=== writing-roc-lang ===
563
564Token breakdown:
565  Name:            8 tokens
566  Description:    53 tokens
567  Body:          693 tokens (117 lines)
568  References:
569    builtins-llms.md                         25216 tokens
570    llms.md                                   4253 tokens
571    scripting.md                               614 tokens
572  ───────────────────────────────────────────────
573  Total:       30837 tokens
574
575=== writing-rust ===
576
577Token breakdown:
578  Name:            7 tokens
579  Description:    45 tokens
580  Body:         1324 tokens (139 lines)
581  References:
582    idioms.md                                 1708 tokens
583  ───────────────────────────────────────────────
584  Total:        3084 tokens
585
586============================================================
587SUMMARY
588============================================================
589
590Skills: 31
591Metadata: 1975 tokens
592Combined bodies: 32895 tokens
593Overall: 88383 tokens
594Validation errors: 0
595
596Largest skills (by total tokens):
597  1. writing-roc-lang                         30837 tokens
598  2. ast-grep                                  5363 tokens
599  3. frontend-accessibility                    4759 tokens
600  4. authoring-skills                          3834 tokens
601  5. notifying-through-ntfy                    3355 tokens
602```
603
604---
605
606Some other tools if these interested you
607
608- [wt](https://git.secluded.site/wt) - CLI for managing git worktrees
609- [git-format](https://git.secluded.site/git-format) - CLI that turns LLM input
610  into well-formatted conventional commits and tags
611- [garble](https://git.secluded.site/garble) - transform stdin with an LLM (fix
612  typos, translate, reformat)
613- [lune](https://git.secluded.site/lune) - CLI and MCP server for
614  [Lunatask.app](https://lunatask.app)