an attempt to write skills with high-signal activation because i didn't want to ask the agent to not use head on my windows machine, among other things
dev-standards-majo— universal principles: British English, error handling, exit codes, AGENTS.md maintenanceagents-md-authoring-majo— writing effective AGENTS.md files (see the 6-core-areas framework)skill-authoring-majo— creating new skills from patterns
python-majo— Python development with UV, basedpyright, ruff, Python 3.10+ syntax, and meadow Docstring Format (MDF)js-bun-majo— JavaScript/TypeScript using Bun (not npm, i've hopped on the Bun train)shell-majo— POSIX shell scripting (pure sh, not bash), error handling, exit codescsharp-unity-majo— C# development for Unity: naming conventions, British spellings, callback patterns
git-majo— my git workflow: auto-commit after every prompt, conventional commits, never auto-pushtask-planning-majo— planning workflow for complex tasks: gather context, draft plan, 3 questions maxwriting-docs-majo— writing documentation in my voice: first person lowercase "i", casual but technical, British Englishmdf-majo- meadow Docstring Format (MDF) for Pythonmdf-md-api-docs-majo— Writing API refs or docs from code using the MDF
running-windows-commands-majo— working on Windows: maps Unix commands to PowerShell equivalents (tail→Get-Content, etc.)setting-up-public-domain-repos-majo— setting up repos with dual licensing (Unlicense OR 0BSD)
trying not to overbloat the skills as per best practices
| skill | lines | words | status |
|---|---|---|---|
agents-md-authoring-majo |
401 | 1748 | 🟢 |
csharp-unity-majo |
210 | 914 | 🟢 |
dev-standards-majo |
308 | 1374 | 🟢 |
git-majo |
201 | 798 | 🟢 |
js-bun-majo |
71 | 398 | 🟢 |
mdf-majo |
444 | 1674 | 🟢 |
mdf-md-api-docs-majo |
270 | 891 | 🟢 |
python-majo |
335 | 1281 | 🟢 |
running-windows-commands-majo |
443 | 1532 | 🟢 |
setting-up-public-domain-repos-majo |
350 | 1613 | 🟢 |
shell-majo |
450 | 1583 | 🟢 |
skill-authoring-majo |
436 | 1852 | 🟢 |
task-planning-majo |
265 | 1250 | 🟢 |
writing-docs-majo |
490 | 1451 | 🟢 |
run count.py to update this table.
for whats in a skill: https://agentskills.io
skills load in three levels:
- discovery — only
name+descriptionloaded at startup - activation — full SKILL.md loaded when the agent thinks it's relevant
- deep dive —
references/andexamples/loaded when explicitly referenced
common triggers:
- "writing Python code" →
python-majo - "this is complex" →
task-planning-majo - "commit" →
git-majo - "README" →
writing-docs-majo - "Windows" →
running-windows-commands-majo
skills stack. i usually do:
- base:
dev-standards-majo(always) - language:
python-majo,js-bun-majo, etc. - workflow:
git-majo,task-planning-majo(as needed)
- clear activation triggers — the
descriptionis the main signal. be specific: "Python with UV" not "a skill about code" - actionable instructions — tell the agent HOW ("use
uv add") not what ("uv is a package manager") - explicit boundaries — always have "when to use" AND "do NOT use" sections
- test before shipping — check that the skill triggers when it should and doesn't when it shouldn't
these work alongside AGENTS.md (project-specific knowledge):
- use AGENTS.md for: project-specific stuff, exact flags, version-matched docs
- use skills for: cross-project patterns, large content, workflows
AGENTS.md wins because it's always loaded. skills win for stuff that doesn't fit.
for my own use lol:
for /d %i in (majo-skills\*) do @echo Validating %i... && uvx --refresh --from ./agentskills/skills-ref skills-ref validate "%i"all skills are dual-licensed under The Unlicense OR BSD Zero Clause License (SPDX: Unlicense OR 0BSD).
go ham.