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- [computing-golden-ratio-typography](skills/computing-golden-ratio-typography/SKILL.md):
45 Computes Golden Ratio Typography line heights, spacing units, type scales, and
46 readable measures from a font file or explicit font metrics.
47- [cooking](skills/cooking/SKILL.md): Guides home cooking as a technically
48 grounded collaborator. Helps plan meals, use odds and ends, troubleshoot
49 techniques, handle substitutions, and reason through cuisine-specific flavor
50 logic without flattening regional traditions.
51- [creating-tasks-through-lunatask](skills/creating-tasks-through-lunatask/SKILL.md):
52 Creates tasks and handoffs in [Lunatask] via [lune]. Tasks are just tasks.
53 Handoffs capture work to resume later across sessions without filling context
54 windows.
55- [fallback-code-review](skills/fallback-code-review/SKILL.md): Provides a
56 fallback-only external review flow via CLI tools like Amp, CodeRabbit, or
57 Kodus.
58- [formatting-commits](skills/formatting-commits/SKILL.md): Detects a project's
59 commit style from recent history and formats messages accordingly. Supports
60 Conventional Commits and kernel-style imperative commits.
61- [frontend-accessibility](skills/frontend-accessibility/SKILL.md): Strives to
62 generate accessible HTML, React, and frontend code following WCAG 2.2 AA.
63 Prioritizes semantic HTML over ARIA, keyboard navigation, and screen reader
64 compatibility.
65- [handling-customer-data](skills/handling-customer-data/SKILL.md): Queries
66 customer data responsiblyβthe agent answers questions about the data without
67 ever seeing it directly.
68- [humanize](skills/humanize/SKILL.md): Removes AI-generated patterns from
69 text like promotional fluff, weasel words, and mechanical sentence structures.
70 Based on Wikipedia's AI Cleanup research. Originally from [blader/humanizer].
71- [ideating-with-bdd](skills/ideating-with-bdd/SKILL.md): Guides collaborative
72 discovery of behaviour through structured conversation, iterating with the user
73 to refine ideas into user stories and Gherkin scenarios. Works for any
74 language or framework.
75- [initialising-and-updating-agents-md](skills/initialising-and-updating-agents-md/SKILL.md):
76 Analyses a codebase and creates or updates `AGENTS.md` to help future agents
77 work effectively. Discovers commands, conventions, patterns, and gotchas from
78 the project's source and config files.
79- [invoking-subagents](skills/invoking-subagents/SKILL.md): Spawns subagents
80 with restricted tool access for parallel tasks across repositories. Requires
81 [the Pi coding agent][Pi]. Useful for summarizing git history or processing
82 large diffs without filling the main context window.
83- [licensing-with-reuse](skills/licensing-with-reuse/SKILL.md): Manages
84 REUSE-compliant licensing with the `reuse` CLI. Covers `reuse annotate`,
85 `.license` sidecars for prompt files, custom `LicenseRef-...` identifiers,
86 `LICENSES/`, project conventions, and `reuse lint`.
87- [maintaining-aur-packages](skills/maintaining-aur-packages/SKILL.md): Creates
88 and updates AUR packages following Arch packaging standards. Covers PKGBUILDs
89 for source, `-bin`, and `-git` package types, checksums with `updpkgsums`,
90 linting with `namcap`, and `.SRCINFO` generation.
91- [monitoring-with-munin](skills/monitoring-with-munin/SKILL.md): Deploys and
92 manages Munin monitoring across servers. Sets up munin-node on hosts, writes
93 plugins, configures masters, and handles alerts.
94- [notifying-through-ntfy](skills/notifying-through-ntfy/SKILL.md): Sends push
95 notifications via [ntfy.sh] when requested, such as at the end of its turn.
96- [rebasing-with-git](skills/rebasing-with-git/SKILL.md): Manages git rebase
97 workflows from simple rebases to the drop-and-repick integration branch
98 pattern. Assumes `upstream` remote for forks and `rerere` enabled. Supports
99 worktrees including `wt`-managed repos.
100- [researching-with-rumilo](skills/researching-with-rumilo/SKILL.md): Dispatches
101 AI research subagents via [rumilo] for web search and repository exploration.
102 Research topics, look up library usage, or explore external codebases without
103 filling the main context window.
104- [scripting-with-go](skills/scripting-with-go/SKILL.md): Creates executable Go
105 scripts using a shell trick (not a true shebang). For automation and tooling
106 outside of Go projects.
107- [testing-with-gocuke-and-gherkin](skills/testing-with-gocuke-and-gherkin/SKILL.md):
108 Drives BDD, red/green TDD, and property-based testing in Go projects using
109 [gocuke] and Gherkin feature files.
110- [toki-pona-dictionary](skills/toki-pona-dictionary/SKILL.md): Searches the
111 [nimi.li] toki pona dictionary by English meaning. Caches word data locally
112 after a one-time fetch, then runs offline searches across definitions and
113 community usage tags.
114- [updating-llm-client-model-lists](skills/updating-llm-client-model-lists/SKILL.md):
115 Synchronizes model configurations across Zed, Crush, Octofriend, and Pi from
116 Plexus' /v1/models endpoint.
117- [using-exe-dev](skills/using-exe-dev/SKILL.md): Guides working with [exe.dev]
118 VMs, which provide Linux VMs with persistent disks, instant HTTPS, and
119 built-in auth via SSH.
120- [using-jujutsu](skills/using-jujutsu/SKILL.md): Guides [jujutsu] (jj)
121 workflows, covering commit selection, change creation, diff reading, and
122 common pitfalls that trip up agents.
123- [working-with-zmx](skills/working-with-zmx/SKILL.md): Manages persistent
124 terminal sessions for background processes, dev servers, and long-running tasks.
125 Creates sessions, runs commands detached, checks output, and writes files into
126 sessions over SSH.
127- [writing-git-tags](skills/writing-git-tags/SKILL.md): Generates git tag
128 annotations from commit history following Semantic Versioning and Conventional
129 Commits via [git-format].
130- [writing-rust](skills/writing-rust/SKILL.md): Writes idiomatic Rust with
131 strict quality gates: `cargo fmt`, `clippy -- -D warnings`, and required
132 tests. Enforces `thiserror` for libs, `anyhow` for apps, warns against common
133 anti-patterns.
134
135[blader/humanizer]: https://github.com/blader/humanizer
136[ast-grep]: https://github.com/ast-grep/ast-grep
137[git-format]: https://git.secluded.site/git-format
138[gocuke]: https://github.com/tenntenn/gocuke
139[lune]: https://git.secluded.site/lune
140[Lunatask]: https://lunatask.app/
141[nimi.li]: https://nimi.li
142[ntfy.sh]: https://ntfy.sh
143[rumilo]: https://git.secluded.site/rumilo
144[synu]: https://git.secluded.site/synu
145[wt]: https://git.secluded.site/wt
146[exe.dev]: https://exe.dev
147[jujutsu]: https://jj-vcs.github.io/jj/latest/
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 (107 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=== cooking ===
325
326Token breakdown:
327 Name: 6 tokens
328 Description: 157 tokens
329 Body: 2805 tokens (117 lines)
330 References:
331 cuisines/_index.md 1274 tokens
332 cuisines/caribbean/dish-boundaries.md 232 tokens
333 cuisines/caribbean/overview.md 730 tokens
334 cuisines/caribbean/pantry-techniques.md 399 tokens
335 cuisines/caribbean/regions.md 450 tokens
336 cuisines/chinese-regional/overview.md 1140 tokens
337 cuisines/chinese-regional/regions.md 500 tokens
338 cuisines/chinese-regional/substitutions.md 225 tokens
339 cuisines/chinese-regional/techniques-pantry.md 278 tokens
340 cuisines/german.md 642 tokens
341 cuisines/hawaiian.md 931 tokens
342 cuisines/indian/overview.md 873 tokens
343 cuisines/indian/pantry-substitutions.md 267 tokens
344 cuisines/indian/regions-communities.md 524 tokens
345 cuisines/indian/techniques.md 243 tokens
346 cuisines/irish-british.md 641 tokens
347 cuisines/japanese-home.md 673 tokens
348 cuisines/korean.md 761 tokens
349 cuisines/levantine.md 659 tokens
350 cuisines/mexican-regional/overview.md 761 tokens
351 cuisines/mexican-regional/pantry-substitutions.md 288 tokens
352 cuisines/mexican-regional/regions.md 402 tokens
353 cuisines/mexican-regional/techniques.md 237 tokens
354 cuisines/north-african-middle-eastern/egypt.md 146 tokens
355 cuisines/north-african-middle-eastern/gulf.md 149 tokens
356 cuisines/north-african-middle-eastern/maghreb.md 218 tokens
357 cuisines/north-african-middle-eastern/overview.md 820 tokens
358 cuisines/north-african-middle-eastern/pantry-techniques.md 266 tokens
359 cuisines/north-african-middle-eastern/persian.md 159 tokens
360 cuisines/sichuan/flavor-profiles.md 301 tokens
361 cuisines/sichuan/overview.md 774 tokens
362 cuisines/sichuan/pantry.md 225 tokens
363 cuisines/sichuan/pivots-history.md 151 tokens
364 cuisines/sichuan/techniques.md 195 tokens
365 example-conversations.md 1873 tokens
366 foundations.md 1335 tokens
367 introductions.md 532 tokens
368 searching-sources.md 693 tokens
369 substitutions-and-pivots.md 1086 tokens
370 techniques.md 2584 tokens
371 βββββββββββββββββββββββββββββββββββββββββββββββ
372 Total: 27605 tokens
373
374=== creating-tasks-through-lunatask ===
375
376Token breakdown:
377 Name: 12 tokens
378 Description: 41 tokens
379 Body: 741 tokens (88 lines)
380 References:
381 cli.md 218 tokens
382 handoff.md 1035 tokens
383 installing-lune.md 65 tokens
384 βββββββββββββββββββββββββββββββββββββββββββββββ
385 Total: 2112 tokens
386
387=== fallback-code-review ===
388
389Token breakdown:
390 Name: 7 tokens
391 Description: 79 tokens
392 Body: 489 tokens (56 lines)
393 βββββββββββββββββββββββββββββββββββββββββββββββ
394 Total: 575 tokens
395
396=== formatting-commits ===
397
398Token breakdown:
399 Name: 8 tokens
400 Description: 57 tokens
401 Body: 310 tokens (34 lines)
402 References:
403 conventional-commits.md 362 tokens
404 installing-git-format.md 22 tokens
405 kernel-style.md 526 tokens
406 βββββββββββββββββββββββββββββββββββββββββββββββ
407 Total: 1285 tokens
408
409=== frontend-accessibility ===
410
411Token breakdown:
412 Name: 7 tokens
413 Description: 52 tokens
414 Body: 1091 tokens (172 lines)
415 References:
416 antipatterns.md 1341 tokens
417 patterns.md 2279 tokens
418 βββββββββββββββββββββββββββββββββββββββββββββββ
419 Total: 4770 tokens
420
421=== handling-customer-data ===
422
423Token breakdown:
424 Name: 9 tokens
425 Description: 46 tokens
426 Body: 715 tokens (115 lines)
427 βββββββββββββββββββββββββββββββββββββββββββββββ
428 Total: 770 tokens
429
430=== humanize ===
431
432Token breakdown:
433 Name: 6 tokens
434 Description: 100 tokens
435 Body: 1886 tokens (152 lines)
436 References:
437 DETAILED_PATTERNS.md 1903 tokens
438 REPLACEMENTS.md 1125 tokens
439 βββββββββββββββββββββββββββββββββββββββββββββββ
440 Total: 5020 tokens
441
442=== ideating-with-bdd ===
443
444Token breakdown:
445 Name: 9 tokens
446 Description: 133 tokens
447 Body: 1582 tokens (177 lines)
448 References:
449 gherkin-reference.md 984 tokens
450 βββββββββββββββββββββββββββββββββββββββββββββββ
451 Total: 2708 tokens
452
453=== initialising-and-updating-agents-md ===
454
455Token breakdown:
456 Name: 12 tokens
457 Description: 59 tokens
458 Body: 850 tokens (63 lines)
459 βββββββββββββββββββββββββββββββββββββββββββββββ
460 Total: 921 tokens
461
462=== invoking-subagents ===
463
464Token breakdown:
465 Name: 8 tokens
466 Description: 42 tokens
467 Body: 450 tokens (20 lines)
468 βββββββββββββββββββββββββββββββββββββββββββββββ
469 Total: 500 tokens
470
471=== licensing-with-reuse ===
472
473Token breakdown:
474 Name: 9 tokens
475 Description: 51 tokens
476 Body: 1282 tokens (142 lines)
477 βββββββββββββββββββββββββββββββββββββββββββββββ
478 Total: 1342 tokens
479
480=== maintaining-aur-packages ===
481
482Token breakdown:
483 Name: 9 tokens
484 Description: 58 tokens
485 Body: 1481 tokens (105 lines)
486 References:
487 build-patterns.md 1120 tokens
488 βββββββββββββββββββββββββββββββββββββββββββββββ
489 Total: 2668 tokens
490
491=== monitoring-with-munin ===
492
493Token breakdown:
494 Name: 10 tokens
495 Description: 62 tokens
496 Body: 1981 tokens (238 lines)
497 References:
498 writing-plugins.md 1151 tokens
499 βββββββββββββββββββββββββββββββββββββββββββββββ
500 Total: 3204 tokens
501
502=== notifying-through-ntfy ===
503
504Token breakdown:
505 Name: 10 tokens
506 Description: 37 tokens
507 Body: 1052 tokens (89 lines)
508 References:
509 ht.md 383 tokens
510 httpie.md 385 tokens
511 nodejs.md 541 tokens
512 python.md 517 tokens
513 wget.md 430 tokens
514 βββββββββββββββββββββββββββββββββββββββββββββββ
515 Total: 3355 tokens
516
517=== rebasing-with-git ===
518
519Token breakdown:
520 Name: 8 tokens
521 Description: 71 tokens
522 Body: 2317 tokens (239 lines)
523 βββββββββββββββββββββββββββββββββββββββββββββββ
524 Total: 2396 tokens
525
526=== researching-with-rumilo ===
527
528Token breakdown:
529 Name: 10 tokens
530 Description: 60 tokens
531 Body: 1217 tokens (112 lines)
532 βββββββββββββββββββββββββββββββββββββββββββββββ
533 Total: 1287 tokens
534
535=== scripting-with-go ===
536
537Token breakdown:
538 Name: 8 tokens
539 Description: 46 tokens
540 Body: 727 tokens (141 lines)
541 βββββββββββββββββββββββββββββββββββββββββββββββ
542 Total: 781 tokens
543
544=== testing-with-gocuke-and-gherkin ===
545
546Token breakdown:
547 Name: 14 tokens
548 Description: 77 tokens
549 Body: 633 tokens (67 lines)
550 References:
551 bdd-practices.md 261 tokens
552 gocuke-api.md 1427 tokens
553 βββββββββββββββββββββββββββββββββββββββββββββββ
554 Total: 2412 tokens
555
556=== toki-pona-dictionary ===
557
558Token breakdown:
559 Name: 11 tokens
560 Description: 86 tokens
561 Body: 250 tokens (24 lines)
562 βββββββββββββββββββββββββββββββββββββββββββββββ
563 Total: 347 tokens
564
565=== updating-llm-client-model-lists ===
566
567Token breakdown:
568 Name: 13 tokens
569 Description: 50 tokens
570 Body: 1205 tokens (134 lines)
571 βββββββββββββββββββββββββββββββββββββββββββββββ
572 Total: 1268 tokens
573
574=== using-exe-dev ===
575
576Token breakdown:
577 Name: 8 tokens
578 Description: 32 tokens
579 Body: 380 tokens (45 lines)
580 βββββββββββββββββββββββββββββββββββββββββββββββ
581 Total: 420 tokens
582
583=== using-jujutsu ===
584
585Token breakdown:
586 Name: 9 tokens
587 Description: 55 tokens
588 Body: 735 tokens (92 lines)
589 βββββββββββββββββββββββββββββββββββββββββββββββ
590 Total: 799 tokens
591
592=== working-with-zmx ===
593
594Token breakdown:
595 Name: 8 tokens
596 Description: 58 tokens
597 Body: 522 tokens (69 lines)
598 βββββββββββββββββββββββββββββββββββββββββββββββ
599 Total: 588 tokens
600
601=== writing-git-tags ===
602
603Token breakdown:
604 Name: 7 tokens
605 Description: 38 tokens
606 Body: 846 tokens (109 lines)
607 References:
608 installing-git-format.md 22 tokens
609 βββββββββββββββββββββββββββββββββββββββββββββββ
610 Total: 913 tokens
611
612=== writing-rust ===
613
614Token breakdown:
615 Name: 7 tokens
616 Description: 45 tokens
617 Body: 1324 tokens (139 lines)
618 References:
619 idioms.md 1708 tokens
620 βββββββββββββββββββββββββββββββββββββββββββββββ
621 Total: 3084 tokens
622
623============================================================
624SUMMARY
625============================================================
626
627Skills: 32
628Metadata: 2265 tokens
629Combined bodies: 35092 tokens
630Overall: 94780 tokens
631Validation errors: 0
632
633Largest skills (by total tokens):
634 1. cooking 27605 tokens
635 2. amoliths-go-opinions 7694 tokens
636 3. ast-grep 5363 tokens
637 4. humanize 5020 tokens
638 5. frontend-accessibility 4770 tokens
639```
640
641---
642
643Some other tools if these interested you
644
645- [wt](https://git.secluded.site/wt) - CLI for managing git worktrees
646- [git-format](https://git.secluded.site/git-format) - CLI that turns LLM input
647 into well-formatted conventional commits and tags
648- [garble](https://git.secluded.site/garble) - transform stdin with an LLM (fix
649 typos, translate, reformat)
650- [lune](https://git.secluded.site/lune) - CLI and MCP server for
651 [Lunatask.app](https://lunatask.app)