Files
skills/README.md
Mathias d6a71e370e
Some checks failed
release / tag (push) Has been cancelled
chore: bootstrap skills library — 19 skills + installer + CI auto-tag
Phase 1 of mathias/skills extraction (infra#62 Track D — homelab
next-step plan addendum). Imports ~/dev/.skills/ verbatim (19 skill
dirs + SKILLS_INDEX.md) and adds the installation surface:

- Taskfile.yml — install / update / list / release / check targets
- install.sh — bootstrap installer for hosts without Task. Idempotent
  symlink wirer; default checkout at ~/.local/share/skills/ on every
  host; SKILLS_REF env var pins a tag (default: main).
- .gitea/workflows/release.yml — auto-tag every push to main by
  Bump-Type footer (major/minor/patch, default patch). Skipped when
  commit contains [skip-release].
- README — usage, versioning, contribution flow, secret-hygiene rule.

Phase 1 wires Claude Code only (~/.claude/skills/<name> global +
<repo>/.claude/skills/<name> per-repo). Phase 2 adds Crush, opencode,
antigravity, and gitea-resident agents (cobalt-dingo, agentsquad)
once their skill conventions are researched.

Public repo, markdown-only — no secrets, no client names. Verified
via pre-push grep before initial push.

[skip-release]
2026-05-24 14:59:54 +02:00

2.8 KiB

skills

Engineering skills library — markdown SKILL.md files that plug into any project or AI-coding harness. Installed via task skills:install in consumer projects, or directly by install.sh on hosts without Task.

What is a skill?

A skill is a single directory containing one or more markdown files. The canonical entrypoint is <name>/SKILL.md. Additional reference material lives alongside in the same directory (e.g. clean-code/references/code-smells.md). Harnesses load skills on demand — keep SKILL.md short and triggerable; push depth into references.

See SKILLS_INDEX.md for the full catalogue with descriptions and "use when" triggers.

Install (consumer project)

The expected pattern: each consumer project's Taskfile.yml has a skills:install target that delegates here. From a project root:

task skills:install

Bare-shell fallback for hosts without Task installed:

curl -fsSL https://gitea.d-ma.be/mathias/skills/raw/branch/main/install.sh | bash

Both forms are idempotent and re-runnable. On every run they:

  1. git clone (or git pull) this repo into ~/.local/share/skills/ — the canonical local checkout on every host.
  2. Wire per-skill symlinks into the harnesses found on the host (see Wired harnesses).

Re-run after git pull upstream to pick up new skills or version changes. CI tags every change as a vX.Y.Z release (see Versioning).

Wired harnesses

Phase 1 (current) wires Claude Code only:

  • Global: ~/.claude/skills/<name>~/.local/share/skills/<name>
  • Per-repo: <repo>/.claude/skills/<name> (when invoked from a git repo) → same

Phase 2 will add: Crush, opencode, antigravity, gitea-resident agents (cobalt-dingo, agentsquad). See mathias/infra issue infra#62 addendum for the roadmap.

Versioning

Every commit to main is auto-tagged as a semver release by the .gitea/workflows/release.yml action. Bump direction follows the commit footer:

  • Bump-Type: majorX.0.0
  • Bump-Type: minor0.Y.0
  • anything else0.0.Z (patch, the default)

Consumer projects can pin a version by setting SKILLS_REF=v0.1.0 before task skills:install; default is main for always-current.

Contributing a skill

  1. Add a directory <short-kebab-name>/.
  2. Create <short-kebab-name>/SKILL.md — start with one-paragraph purpose, then triggers ("use when …"), then mechanics.
  3. Add a row to SKILLS_INDEX.md (description + use-when).
  4. Commit directly to main. Conventional-commit prefix (feat: / fix: / docs:). Add Bump-Type: minor footer when adding a new skill or expanding scope; default patch covers edits.

This repo is markdown-only and public — never include secrets, client names, or anything under NDA in a skill.