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 token count, plus overall metadata usage.
17
18- [authoring-skills](skills/authoring-skills/SKILL.md): Creates
19 well-structured Agent Skills following best practices. Use when
20 writing new skills, reviewing existing skills, or when the user
21 mentions skill authoring.
22- [formatting-commits](skills/formatting-commits/SKILL.md): Creates
23 commits strictly following Conventional Commits format via the
24 `formatted-commit` CLI.
25- [invoking-subagents](skills/invoking-subagents/SKILL.md): Invokes
26 ad-hoc subagents to read through lots of data and extract relevant
27 information. Useful for exploring repositories, reading git logs,
28 reviewing large diffs.
29- [managing-and-navigating-worktrees](skills/managing-and-navigating-worktrees/SKILL.md):
30 Manages git worktrees and repos using the wt CLI. Use when cloning or
31 creating new repos, adding worktrees, switching branches.
32- [querying-documentation](skills/querying-documentation/SKILL.md):
33 Spawns focused agents to search specific language/framework
34 documentation and answer moderately complex queries.
35- [creating-tasks-through-lunatask](skills/creating-tasks-through-lunatask/SKILL.md):
36 Creates tasks in Lunatask for todos, reminders, deferred work, and
37 handoffs.
38- [resuming-work-through-lunatask](skills/resuming-work-through-lunatask/SKILL.md):
39 Resumes previously deferred work from Lunatask. Use when user pastes a
40 task note, shares a deep link, or references continuing earlier work.
41- [frontend-accessibility](skills/frontend-accessibility/SKILL.md):
42 Generates accessible HTML, React, and frontend code following WCAG 2.2
43 AA guidelines. Focuses on semantic HTML, keyboard accessibility, and
44 screen reader compatibility.
45- [handling-customer-data](skills/handling-customer-data/SKILL.md):
46 Handles customer data responsibly by answering questions about data
47 without ever seeing the data directly.
48- [scripting-with-go](skills/scripting-with-go/SKILL.md): Creates
49 executable Go scripts with shebang-like behavior for long-lived
50 automation.
51- [writing-roc-lang](skills/writing-roc-lang/SKILL.md): Writes Roc code
52 with strong static types, helpful compiler errors, and functional
53 programming. Covers both full applications and one-off scripts.
54- [resolving-secrets](skills/resolving-secrets/SKILL.md): Wraps shell
55 commands to resolve secret references in environment variables.
56- [reviewing-code](skills/reviewing-code/SKILL.md): Reviews code for
57 correctness, security, reliability, performance, and quality. Use when
58 asked to review code, a PR, a diff, or changes.
59
60## Installation
61
62If you're using [Amp], run `amp skill add
63https://git.secluded.site/agent-skills`. Otherwise, clone the repository, then
64install via `make` or manual symlinks.
65
66[Amp]: https://ampcode.com
67
68```sh
69git clone https://git.secluded.site/agent-skills
70cd agent-skills
71```
72
73### With Make
74
75Skills install to `~/.config/crush/skills/` by default. Override by
76setting `SKILL_DIR`. Tab completion works so you don't have to remember
77skill names or copy/paste.
78
79```sh
80# List available skills
81make list
82
83# Install all skills to default dir
84make all
85
86# Install specific skills to Claude Code
87SKILL_DIR=$HOME/.claude/skills make authoring-skills formatting-commits
88
89# Remove a specific skill from Amp
90make uninstall-authoring-skills SKILL_DIR=$HOME/.config/agents/skills
91
92# Remove all skills from Codex
93make uninstall SKILL_DIR=$HOME/.codex/skills
94```
95
96### With symlinks
97
98```sh
99# Install all skills
100for s in skills/*/; do ln -s "$PWD/$s" ~/.config/crush/skills/; done
101
102# Install specific skills
103ln -s "$PWD/skills/authoring-skills" ~/.config/crush/skills/
104
105# Remove a skill
106rm ~/.config/crush/skills/formatting-commits
107```
108
109### Agent skill directories
110
111| Agent | Dir |
112| ----------------------- | -------------------------- |
113| Crush | `~/.config/crush/skills/` |
114| Amp | `~/.config/agents/skills/` |
115| Anthropic's Claude Code | `~/.claude/skills/` |
116| OpenAI's Codex | `~/.codex/skills/` |
117
118## Updating
119
120```sh
121cd ~/path/to/agent-skills
122git pull
123```
124
125Symlinked skills update automatically.
126
127## Contributions
128
129Patch requests are in [amolith/llm-projects] on [pr.pico.sh]. You don't
130need a new account to contribute, you don't need to fork this repo, you
131don't need to fiddle with `git send-email`, you don't need to faff with
132your email client to get `git request-pull` working...
133
134You just need:
135
136- Git
137- SSH
138- An SSH key
139
140```sh
141# Clone this repo, make your changes, and commit them
142# Create a new patch request with
143git format-patch origin/main --stdout | ssh pr.pico.sh pr create amolith/llm-projects
144# After potential feedback, submit a revision to an existing patch request with
145git format-patch origin/main --stdout | ssh pr.pico.sh pr add {prID}
146# List patch requests
147ssh pr.pico.sh pr ls amolith/llm-projects
148```
149
150See "How do Patch Requests work?" on [pr.pico.sh]'s home page for a more
151complete example workflow.
152
153[amolith/llm-projects]: https://pr.pico.sh/r/amolith/llm-projects
154[pr.pico.sh]: https://pr.pico.sh
155
156## Token stats
157
158Real token stats as reported by [Synthetic.new]'s [/messages/count_tokens] endpoint with [./skill-stats.go](./skill-stats.go).
159
160[Synthetic.new]: https://synthetic.new
161[/messages/count_tokens]: https://dev.synthetic.new/docs/anthropic/messages/count-tokens
162
163```
164=== authoring-skills ===
165
166Token breakdown:
167 Name: 20 tokens
168 Description: 86 tokens
169 Body: 2000 tokens (102 lines)
170 References:
171 checklist.md 806 tokens
172 patterns.md 2415 tokens
173 process.md 833 tokens
174 specification.md 3890 tokens
175 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
176 Total: 10050 tokens
177
178=== creating-tasks-through-lunatask ===
179
180Token breakdown:
181 Name: 30 tokens
182 Description: 108 tokens
183 Body: 1927 tokens (88 lines)
184 References:
185 cli.md 589 tokens
186 handoff.md 2769 tokens
187 installing-lune.md 176 tokens
188 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
189 Total: 5599 tokens
190
191=== formatting-commits ===
192
193Token breakdown:
194 Name: 22 tokens
195 Description: 98 tokens
196 Body: 965 tokens (43 lines)
197 References:
198 installing-formatted-commit.md 296 tokens
199 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
200 Total: 1381 tokens
201
202=== frontend-accessibility ===
203
204Token breakdown:
205 Name: 20 tokens
206 Description: 140 tokens
207 Body: 2891 tokens (148 lines)
208 References:
209 antipatterns.md 3638 tokens
210 patterns.md 6233 tokens
211 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
212 Total: 12922 tokens
213
214=== handling-customer-data ===
215
216Token breakdown:
217 Name: 22 tokens
218 Description: 123 tokens
219 Body: 1983 tokens (107 lines)
220 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
221 Total: 2128 tokens
222
223=== invoking-subagents ===
224
225Token breakdown:
226 Name: 20 tokens
227 Description: 113 tokens
228 Body: 796 tokens (13 lines)
229 References:
230 installing-synu.md 140 tokens
231 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
232 Total: 1069 tokens
233
234=== managing-and-navigating-worktrees ===
235
236Token breakdown:
237 Name: 32 tokens
238 Description: 110 tokens
239 Body: 1912 tokens (96 lines)
240 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
241 Total: 2054 tokens
242
243=== querying-documentation ===
244
245Token breakdown:
246 Name: 22 tokens
247 Description: 132 tokens
248 Body: 796 tokens (22 lines)
249 References:
250 dependencies.md 108 tokens
251 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
252 Total: 1058 tokens
253
254=== resolving-secrets ===
255
256Token breakdown:
257 Name: 20 tokens
258 Description: 120 tokens
259 Body: 259 tokens (10 lines)
260 References:
261 installing-opx.md 125 tokens
262 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
263 Total: 524 tokens
264
265=== resuming-work-through-lunatask ===
266
267Token breakdown:
268 Name: 30 tokens
269 Description: 113 tokens
270 Body: 1241 tokens (42 lines)
271 References:
272 cli.md 528 tokens
273 installing-lune.md 176 tokens
274 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
275 Total: 2088 tokens
276
277=== reviewing-code ===
278
279Token breakdown:
280 Name: 18 tokens
281 Description: 125 tokens
282 Body: 1880 tokens (121 lines)
283 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
284 Total: 2023 tokens
285
286=== scripting-with-go ===
287
288Token breakdown:
289 Name: 20 tokens
290 Description: 120 tokens
291 Body: 1968 tokens (138 lines)
292 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
293 Total: 2108 tokens
294
295=== writing-roc-lang ===
296
297Token breakdown:
298 Name: 22 tokens
299 Description: 142 tokens
300 Body: 1846 tokens (117 lines)
301 References:
302 builtins-llms.md 67881 tokens
303 llms.md 11324 tokens
304 scripting.md 1722 tokens
305 โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
306 Total: 82937 tokens
307
308============================================================
309SUMMARY
310============================================================
311
312Skills: 13
313Metadata: 1828 tokens
314Combined bodies: 20464 tokens
315Overall: 125941 tokens
316Validation errors: 0
317
318Largest skills (by total tokens):
319 1. writing-roc-lang 82937 tokens
320 2. frontend-accessibility 12922 tokens
321 3. authoring-skills 10050 tokens
322 4. creating-tasks-through-lunatask 5599 tokens
323 5. handling-customer-data 2128 tokens
324```
325
326---
327
328Some other tools if these interested you
329
330- [wt](https://git.secluded.site/wt) - CLI for managing git worktrees
331- [formatted-commit](https://git.secluded.site/formatted-commit) - CLI that turns LLM input into well-formatted Conventional Commits
332- [garble](https://git.secluded.site/garble) - transform stdin with an LLM (fix typos, translate, reformat)
333- [lune](https://git.secluded.site/lune) - CLI and MCP server for [Lunatask.app](https://lunatask.app)