chore: bootstrap skills library — 19 skills + installer + CI auto-tag
Some checks failed
release / tag (push) Has been cancelled
Some checks failed
release / tag (push) Has been cancelled
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]
This commit is contained in:
81
README.md
Normal file
81
README.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# 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`](./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:
|
||||
|
||||
```bash
|
||||
task skills:install
|
||||
```
|
||||
|
||||
Bare-shell fallback for hosts without Task installed:
|
||||
|
||||
```bash
|
||||
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](#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](#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: major` → `X.0.0`
|
||||
- `Bump-Type: minor` → `0.Y.0`
|
||||
- *anything else* → `0.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.
|
||||
Reference in New Issue
Block a user