diff --git a/README.md b/README.md index 609e3c8..4723826 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ git clone skills cd skills bash scripts/install.sh # copies every skills/* into ~/.claude/skills/ # or only specific ones: -bash scripts/install.sh caveman wiki-maintainer +bash scripts/install.sh using-wiki caveman ``` **Linux / macOS (bash):** @@ -36,7 +36,7 @@ git clone skills cd skills bash scripts/install.sh # copies every skills/* into ~/.claude/skills/ # or only specific ones: -bash scripts/install.sh caveman wiki-maintainer +bash scripts/install.sh using-wiki caveman ``` The install target can be overridden with `CLAUDE_SKILLS_DIR=/path bash scripts/install.sh`. @@ -54,9 +54,8 @@ project's folder and it will, in one pass: - create a starter `README.md` - lay out `.wiki/` per the [Karpathy LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) (delegated to [`setup-wiki`](skills/setup-wiki/)) - lay out `.tasks/` with the canonical task board (delegated to [`setup-tasks`](skills/setup-tasks/)) -- write `CLAUDE.md` with skill triggers (`use superpowers`, `use project wiki`, `use task management system`, `check across all projects`, `we're on Windows`) +- write `CLAUDE.md` with skill triggers (`use project wiki`, `use task management system`, `check across all projects`, `we're on Windows`) - record the skill versions used in `.wiki/concepts/bootstrap-manifest.md` so cross-project layout drift stays debuggable -- check whether the official `superpowers@claude-plugins-official` plugin is installed and, if not, print the install command — the `use superpowers` trigger is a no-op without it Two modes, picked automatically: **init** for an empty folder, **upgrade** for an existing project (the skill only fills the gaps and never overwrites @@ -103,6 +102,24 @@ Skip and pending entries land in `dist-hermes/SKIPPED.md` with reasons. Full design rationale lives in [`.wiki/concepts/hermes-skills-rollout-design.md`](.wiki/concepts/hermes-skills-rollout-design.md). +## Sovereignty / provenance + +This catalog is sovereign: every skill is either **authored by us** or an +**adapted vendored copy** we maintain ourselves. No raw vendor plugins are +installed as dependencies — anything borrowed is vendored into this repo with +an explicit `adapted-from` marker in its frontmatter. + +| skill | provenance | +|---|---| +| `caveman`, `caveman-commit`, `caveman-compress`, `caveman-help`, `caveman-review` | `adapted-from: JuliusBrussee/caveman` (MIT) — vendored copy, upstream pin TBD | +| `find-skills` | `adapted-from: vercel-labs/skills` (MIT) — vendored copy, upstream pin TBD | +| all other `skills/*` | `author: ours` | + +Adaptation policy: a clone is rewritten to our conventions (`.tasks/` boards, +`.wiki/concepts/` specs, `using-*` skill names), never shipped with vendor junk, +and versioned under our own semver. Upstream pins are reviewed by the catalog +owner on update; no automatic upstream sync. + ## Layout ``` diff --git a/README.ru.md b/README.ru.md index feaca38..0b11bb7 100644 --- a/README.ru.md +++ b/README.ru.md @@ -22,7 +22,7 @@ git clone claude-skills cd claude-skills bash scripts/install.sh # копирует все skills/* в ~/.claude/skills/ # или конкретные: -bash scripts/install.sh caveman wiki-maintainer +bash scripts/install.sh using-wiki caveman ``` Цель установки можно переопределить переменной `CLAUDE_SKILLS_DIR=/path bash scripts/install.sh`. @@ -38,9 +38,8 @@ bash scripts/install.sh caveman wiki-maintainer - создаст стартовый `README.md` - развернёт `.wiki/` по [паттерну Karpathy LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) (делегируется в [`setup-wiki`](skills/setup-wiki/)) - развернёт `.tasks/` с канонической доской задач (делегируется в [`setup-tasks`](skills/setup-tasks/)) -- запишет `CLAUDE.md` со скилл-триггерами (`use superpowers`, `use project wiki`, `use task management system`, `check across all projects`, `we're on Windows`) +- запишет `CLAUDE.md` со скилл-триггерами (`use project wiki`, `use task management system`, `check across all projects`, `we're on Windows`) - зафиксирует версии использованных скиллов в `.wiki/concepts/bootstrap-manifest.md`, чтобы дрифт раскладки между проектами оставался отлаживаемым -- проверит, установлен ли официальный плагин `superpowers@claude-plugins-official`, и если нет — выведет команду установки (без плагина триггер `use superpowers` мёртвый) Два режима, выбирается автоматически: **init** для пустой папки и **upgrade** для существующего проекта (скилл только дозаполняет пробелы и ничего не @@ -73,8 +72,26 @@ bash scripts/build.sh caveman # один ## Layout +## Суверенитет / провенанс + +Каталог суверенный: каждый скилл либо **нашего авторства**, либо +**адаптированная вендорская копия**, которую поддерживаем сами. Никаких +сырых вендорских плагинов как зависимостей — всё заимствованное вендорится +в этот репо с явным маркером `adapted-from` во frontmatter. + +| скилл | провенанс | +|---|---| +| `caveman`, `caveman-commit`, `caveman-compress`, `caveman-help`, `caveman-review` | `adapted-from: JuliusBrussee/caveman` (MIT) — вендорная копия, пин апстрима TBD | +| `find-skills` | `adapted-from: vercel-labs/skills` (MIT) — вендорная копия, пин апстрима TBD | +| остальные `skills/*` | `author: ours` | + +Политика адаптации: клон переписывается под наши конвенции (доски `.tasks/`, +спеки `.wiki/concepts/`, имена скиллов `using-*`), вендорский мусор не +перетягивается, версионируется под нашим semver. Пины апстрима +пересматривает владелец каталога при обновлении; автосинка нет. + ``` -claude-skills/ +skills/ ├── skills/ ← исходники (по папке на скилл) ├── dist/ ← .skill архивы (коммитятся) ├── scripts/ diff --git a/dist/active-platform.skill b/dist/active-platform.skill index aa51ba7..2385015 100644 Binary files a/dist/active-platform.skill and b/dist/active-platform.skill differ diff --git a/dist/browser-cdp.skill b/dist/browser-cdp.skill new file mode 100644 index 0000000..f37e93d Binary files /dev/null and b/dist/browser-cdp.skill differ diff --git a/dist/caveman-commit.skill b/dist/caveman-commit.skill index 2a6a609..6da50a7 100644 Binary files a/dist/caveman-commit.skill and b/dist/caveman-commit.skill differ diff --git a/dist/caveman-compress.skill b/dist/caveman-compress.skill index 7451eeb..4e13b1a 100644 Binary files a/dist/caveman-compress.skill and b/dist/caveman-compress.skill differ diff --git a/dist/caveman-help.skill b/dist/caveman-help.skill index e8a7076..a5c269b 100644 Binary files a/dist/caveman-help.skill and b/dist/caveman-help.skill differ diff --git a/dist/caveman-review.skill b/dist/caveman-review.skill index 3acc6f5..b581c53 100644 Binary files a/dist/caveman-review.skill and b/dist/caveman-review.skill differ diff --git a/dist/caveman.skill b/dist/caveman.skill index 0e71dff..1d24d39 100644 Binary files a/dist/caveman.skill and b/dist/caveman.skill differ diff --git a/dist/delegate-task.skill b/dist/delegate-task.skill new file mode 100644 index 0000000..3aa9890 Binary files /dev/null and b/dist/delegate-task.skill differ diff --git a/dist/find-skills.skill b/dist/find-skills.skill index fd062a8..c8246c5 100644 Binary files a/dist/find-skills.skill and b/dist/find-skills.skill differ diff --git a/dist/inter-session-peer-discipline.skill b/dist/inter-session-peer-discipline.skill new file mode 100644 index 0000000..c8cf790 Binary files /dev/null and b/dist/inter-session-peer-discipline.skill differ diff --git a/dist/meta-host-routing.skill b/dist/meta-host-routing.skill new file mode 100644 index 0000000..5d6db47 Binary files /dev/null and b/dist/meta-host-routing.skill differ diff --git a/dist/private-dev-public-publish.skill b/dist/private-dev-public-publish.skill new file mode 100644 index 0000000..42456b3 Binary files /dev/null and b/dist/private-dev-public-publish.skill differ diff --git a/dist/project-bootstrap.skill b/dist/project-bootstrap.skill index 517df50..63105ce 100644 Binary files a/dist/project-bootstrap.skill and b/dist/project-bootstrap.skill differ diff --git a/dist/project-discipline.skill b/dist/project-discipline.skill index ee40cd5..d5b6b12 100644 Binary files a/dist/project-discipline.skill and b/dist/project-discipline.skill differ diff --git a/dist/pulling-before-work.skill b/dist/pulling-before-work.skill index 40fe413..98c7cf7 100644 Binary files a/dist/pulling-before-work.skill and b/dist/pulling-before-work.skill differ diff --git a/dist/ralph-loop-execution.skill b/dist/ralph-loop-execution.skill new file mode 100644 index 0000000..5ed2f88 Binary files /dev/null and b/dist/ralph-loop-execution.skill differ diff --git a/dist/recommend-dont-menu.skill b/dist/recommend-dont-menu.skill index 34cf945..5f301ce 100644 Binary files a/dist/recommend-dont-menu.skill and b/dist/recommend-dont-menu.skill differ diff --git a/dist/session-handoff.skill b/dist/session-handoff.skill index 048b77e..14b3bf9 100644 Binary files a/dist/session-handoff.skill and b/dist/session-handoff.skill differ diff --git a/dist/session-inbox-monitor.skill b/dist/session-inbox-monitor.skill new file mode 100644 index 0000000..8e169db Binary files /dev/null and b/dist/session-inbox-monitor.skill differ diff --git a/dist/setup-agents-task-runner.skill b/dist/setup-agents-task-runner.skill index 7c79f07..33acf17 100644 Binary files a/dist/setup-agents-task-runner.skill and b/dist/setup-agents-task-runner.skill differ diff --git a/dist/setup-context7.skill b/dist/setup-context7.skill index 277268d..0e188dd 100644 Binary files a/dist/setup-context7.skill and b/dist/setup-context7.skill differ diff --git a/dist/setup-interns.skill b/dist/setup-interns.skill index a2c52f7..02a4be6 100644 Binary files a/dist/setup-interns.skill and b/dist/setup-interns.skill differ diff --git a/dist/setup-projects-meta.skill b/dist/setup-projects-meta.skill index daf5c7d..fe14add 100644 Binary files a/dist/setup-projects-meta.skill and b/dist/setup-projects-meta.skill differ diff --git a/dist/setup-tasks.skill b/dist/setup-tasks.skill index a6dabd9..248feef 100644 Binary files a/dist/setup-tasks.skill and b/dist/setup-tasks.skill differ diff --git a/dist/setup-wiki.skill b/dist/setup-wiki.skill index fbe00ca..db362f4 100644 Binary files a/dist/setup-wiki.skill and b/dist/setup-wiki.skill differ diff --git a/dist/task-format.skill b/dist/task-format.skill new file mode 100644 index 0000000..f0bd8c1 Binary files /dev/null and b/dist/task-format.skill differ diff --git a/dist/task-loop.skill b/dist/task-loop.skill new file mode 100644 index 0000000..766c013 Binary files /dev/null and b/dist/task-loop.skill differ diff --git a/dist/tdd-criteria.skill b/dist/tdd-criteria.skill index 571831d..0ebad5c 100644 Binary files a/dist/tdd-criteria.skill and b/dist/tdd-criteria.skill differ diff --git a/dist/update-claude-skills.skill b/dist/update-claude-skills.skill deleted file mode 100644 index 973ec66..0000000 Binary files a/dist/update-claude-skills.skill and /dev/null differ diff --git a/dist/update-skills.skill b/dist/update-skills.skill new file mode 100644 index 0000000..423c0ed Binary files /dev/null and b/dist/update-skills.skill differ diff --git a/dist/using-context7.skill b/dist/using-context7.skill index 37630c7..83a66bc 100644 Binary files a/dist/using-context7.skill and b/dist/using-context7.skill differ diff --git a/dist/using-interns.skill b/dist/using-interns.skill index fd5eea8..b036008 100644 Binary files a/dist/using-interns.skill and b/dist/using-interns.skill differ diff --git a/dist/using-markitdown.skill b/dist/using-markitdown.skill index 542a41c..4b75fae 100644 Binary files a/dist/using-markitdown.skill and b/dist/using-markitdown.skill differ diff --git a/dist/using-projects-meta.skill b/dist/using-projects-meta.skill index 2f3913b..a64babf 100644 Binary files a/dist/using-projects-meta.skill and b/dist/using-projects-meta.skill differ diff --git a/dist/using-system-snapshot.skill b/dist/using-system-snapshot.skill new file mode 100644 index 0000000..9464271 Binary files /dev/null and b/dist/using-system-snapshot.skill differ diff --git a/dist/using-tasks.skill b/dist/using-tasks.skill index ce15af1..faa88a6 100644 Binary files a/dist/using-tasks.skill and b/dist/using-tasks.skill differ diff --git a/dist/using-vds-ops.skill b/dist/using-vds-ops.skill new file mode 100644 index 0000000..8bb49e0 Binary files /dev/null and b/dist/using-vds-ops.skill differ diff --git a/dist/using-wiki-graph.skill b/dist/using-wiki-graph.skill new file mode 100644 index 0000000..9d54729 Binary files /dev/null and b/dist/using-wiki-graph.skill differ diff --git a/dist/using-wiki.skill b/dist/using-wiki.skill index 1980252..556a985 100644 Binary files a/dist/using-wiki.skill and b/dist/using-wiki.skill differ diff --git a/scripts/add-provenance.py b/scripts/add-provenance.py new file mode 100644 index 0000000..9799176 --- /dev/null +++ b/scripts/add-provenance.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python3 +"""Add provenance frontmatter (author/adapted-from) + missing versions to all skills/. + +Idempotent: only inserts lines that are absent. Preserves all existing content. +Usage: python scripts/add-provenance.py (run from repo root) +""" +import os +import re +import sys + +ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..") +SKILLS = os.path.join(ROOT, "skills") + +# skill -> provenance line(s) to guarantee present in frontmatter +PROVENANCE = { + # ours — authored in this workshop/ecosystem + "active-platform": ["author: ours", "version: 0.1.0"], + "browser-cdp": ["author: ours"], + "delegate-task": ["author: ours"], + "inter-session-peer-discipline": ["author: ours"], + "meta-host-routing": ["author: ours"], + "private-dev-public-publish": ["author: ours"], + "project-bootstrap": ["author: ours"], + "project-discipline": ["author: ours"], + "pulling-before-work": ["author: ours"], + "ralph-loop-execution": ["author: ours"], + "recommend-dont-menu": ["author: ours"], + "session-handoff": ["author: ours"], + "session-inbox-monitor": ["author: ours"], + "setup-agents-task-runner": ["author: ours"], + "setup-context7": ["author: ours"], + "setup-interns": ["author: ours"], + "setup-projects-meta": ["author: ours"], + "setup-tasks": ["author: ours"], + "setup-wiki": ["author: ours"], + "task-format": ["author: ours"], + "task-loop": ["author: ours"], + "tdd-criteria": ["author: ours"], + "update-skills": ["author: ours"], + "using-context7": ["author: ours"], + "using-interns": ["author: ours"], + "using-markitdown": ["author: ours"], + "using-projects-meta": ["author: ours"], + "using-system-snapshot": ["author: ours"], + "using-tasks": ["author: ours"], + "using-vds-ops": ["author: ours"], + "using-wiki": ["author: ours"], + "using-wiki-graph": ["author: ours"], + # adapted — vendored copies, sovereignly maintained; pins to backfill (see README "Adapted from") + "caveman": ["adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD", "version: 0.1.0"], + "caveman-commit": ["adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD", "version: 0.1.0"], + "caveman-compress": ["adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD"], + "caveman-help": ["adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD", "version: 0.1.0"], + "caveman-review": ["adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD", "version: 0.1.0"], + "find-skills": ["adapted-from: vercel-labs/skills (MIT) — vendored copy, upstream pin TBD", "version: 0.1.0"], +} + +FRONTMATTER_RE = re.compile(r"^(---\s*\n)(.*?)(\n---\s*\n)", re.DOTALL) + +changed = [] +errors = [] +for name, lines in sorted(PROVENANCE.items()): + path = os.path.join(SKILLS, name, "SKILL.md") + if not os.path.exists(path): + errors.append(f"MISSING: {path}") + continue + with open(path, encoding="utf-8") as f: + text = f.read() + m = FRONTMATTER_RE.match(text) + if not m: + errors.append(f"{name}: no frontmatter") + continue + fm = m.group(2) + new_lines = [] + inserted = False + for line in fm.splitlines(): + # insert provenance after the name: line (keep name-first convention) + if not inserted and line.startswith("name:"): + new_lines.append(line) + for prov in lines: + key = prov.split(":", 1)[0] + # skip if this key already present anywhere in frontmatter + if not any(existing.startswith(key + ":") for existing in fm.splitlines()): + new_lines.append(prov) + inserted = True + continue + # drop old lines that we're replacing (e.g. duplicate version) + new_lines.append(line) + # dedupe: remove lines for keys that now appear twice + seen = {} + final = [] + for line in new_lines: + key = line.split(":", 1)[0] + if key in ("name",): + final.append(line) + continue + if key in seen and seen[key] >= 1: + continue # keep first occurrence + seen[key] = seen.get(key, 0) + 1 + final.append(line) + new_fm = "\n".join(final) + if new_fm != fm: + new_text = text[: m.start(2)] + new_fm + text[m.end(2):] + with open(path, "w", encoding="utf-8", newline="\n") as f: + f.write(new_text) + changed.append(name) + else: + print(f" = {name}: no change") + +print(f"\nChanged ({len(changed)}): {', '.join(changed)}") +if errors: + print(f"\nERRORS ({len(errors)}):") + for e in errors: + print(" ", e) + sys.exit(1) diff --git a/skills/active-platform/SKILL.md b/skills/active-platform/SKILL.md index 4351086..4eb365f 100644 --- a/skills/active-platform/SKILL.md +++ b/skills/active-platform/SKILL.md @@ -1,5 +1,7 @@ --- name: active-platform +author: ours +version: 0.1.0 description: Switches command, path, and example generation to the user's currently active development platform — Windows / Linux / macOS. Use this whenever you produce shell commands, install steps, README quick-start sections, or any output the user will paste into a terminal — even if they don't say "shell" or "command" explicitly. The default active platform is Windows / PowerShell because that's the user's primary workstation. Recognize and obey trigger phrases like "мы на винде", "мы на линуксе", "мы на маке", "we're on Windows", "we're on Linux", "we're on macOS", and close variants — they switch the active platform for the rest of the session. Also activate this skill anytime the user mentions a different machine, a remote box, or asks "how would I run this on X". --- diff --git a/skills/browser-cdp/SKILL.md b/skills/browser-cdp/SKILL.md index 275cc18..8b88f35 100644 --- a/skills/browser-cdp/SKILL.md +++ b/skills/browser-cdp/SKILL.md @@ -1,5 +1,6 @@ --- name: browser-cdp +author: ours version: 0.1.0 description: > Веб-автоматизация через минимальные CDP CLI-тулы в bash — вместо playwright-mcp diff --git a/skills/caveman-commit/SKILL.md b/skills/caveman-commit/SKILL.md index 729318c..e847b58 100644 --- a/skills/caveman-commit/SKILL.md +++ b/skills/caveman-commit/SKILL.md @@ -1,5 +1,7 @@ --- name: caveman-commit +adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD +version: 0.1.0 description: > Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when "why" diff --git a/skills/caveman-compress/SKILL.md b/skills/caveman-compress/SKILL.md index 1d5edca..e73dfb6 100644 --- a/skills/caveman-compress/SKILL.md +++ b/skills/caveman-compress/SKILL.md @@ -1,5 +1,6 @@ --- name: caveman-compress +adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD version: 1.0.0 description: > Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format diff --git a/skills/caveman-help/SKILL.md b/skills/caveman-help/SKILL.md index 078e487..f75a9a8 100644 --- a/skills/caveman-help/SKILL.md +++ b/skills/caveman-help/SKILL.md @@ -1,5 +1,7 @@ --- name: caveman-help +adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD +version: 0.1.0 description: > Quick-reference card for all caveman modes, skills, and commands. One-shot display, not a persistent mode. Trigger: /caveman-help, diff --git a/skills/caveman-review/SKILL.md b/skills/caveman-review/SKILL.md index 48f4adb..3c21f38 100644 --- a/skills/caveman-review/SKILL.md +++ b/skills/caveman-review/SKILL.md @@ -1,5 +1,7 @@ --- name: caveman-review +adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD +version: 0.1.0 description: > Ultra-compressed code review comments. Cuts noise from PR feedback while preserving the actionable signal. Each comment is one line: location, problem, fix. Use when user diff --git a/skills/caveman/SKILL.md b/skills/caveman/SKILL.md index 2ab498b..6be20c7 100644 --- a/skills/caveman/SKILL.md +++ b/skills/caveman/SKILL.md @@ -1,5 +1,7 @@ --- name: caveman +adapted-from: JuliusBrussee/caveman (MIT) — vendored copy, upstream pin TBD +version: 0.1.0 description: > Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, diff --git a/skills/delegate-task/SKILL.md b/skills/delegate-task/SKILL.md index d558063..2837f1f 100644 --- a/skills/delegate-task/SKILL.md +++ b/skills/delegate-task/SKILL.md @@ -1,5 +1,6 @@ --- name: delegate-task +author: ours version: 0.2.4 description: > Use when delegating a task to another agent or project via diff --git a/skills/find-skills/SKILL.md b/skills/find-skills/SKILL.md index 114c663..48fedd0 100644 --- a/skills/find-skills/SKILL.md +++ b/skills/find-skills/SKILL.md @@ -1,5 +1,7 @@ --- name: find-skills +adapted-from: vercel-labs/skills (MIT) — vendored copy, upstream pin TBD +version: 0.1.0 description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill. --- diff --git a/skills/inter-session-peer-discipline/SKILL.md b/skills/inter-session-peer-discipline/SKILL.md index b752556..480cf0f 100644 --- a/skills/inter-session-peer-discipline/SKILL.md +++ b/skills/inter-session-peer-discipline/SKILL.md @@ -1,5 +1,6 @@ --- name: inter-session-peer-discipline +author: ours version: 0.1.1 description: > Use whenever exchanging messages with another agent session over an inbox / diff --git a/skills/meta-host-routing/SKILL.md b/skills/meta-host-routing/SKILL.md index faee148..e1b30d3 100644 --- a/skills/meta-host-routing/SKILL.md +++ b/skills/meta-host-routing/SKILL.md @@ -1,5 +1,6 @@ --- name: meta-host-routing +author: ours version: 0.3.0 description: > Use before any tasks_create / knowledge_ingest / brainstorm-promotion against diff --git a/skills/private-dev-public-publish/SKILL.md b/skills/private-dev-public-publish/SKILL.md index efbf342..a5d460b 100644 --- a/skills/private-dev-public-publish/SKILL.md +++ b/skills/private-dev-public-publish/SKILL.md @@ -1,5 +1,6 @@ --- name: private-dev-public-publish +author: ours version: 0.2.0 description: Use when setting up or maintaining a publishable open-source port/fork that should be developed privately but published cleanly — messy development on a PRIVATE Gitea repo (with `.wiki/`+`.tasks/` inside), and a curated COPY of finished work into a PUBLIC GitHub fork that preserves upstream lineage (stays a fork, keeps attribution; GPL-clean). Triggers - «опубликовать форк/порт на гитхаб», «разработку держать приватно, релиз публичный», «приватный гитеа + публичный гитхаб», «publish a fork without exposing dev history», «curated publish to GitHub», «как правильно форкнуть open-source для публикации». NOT for purely-private projects, purely-public open development, or greenfield bootstrap (use project-bootstrap). --- diff --git a/skills/project-bootstrap/SKILL.md b/skills/project-bootstrap/SKILL.md index 932b02b..5273a6a 100644 --- a/skills/project-bootstrap/SKILL.md +++ b/skills/project-bootstrap/SKILL.md @@ -1,6 +1,7 @@ --- name: project-bootstrap -version: 1.12.0 +author: ours +version: 1.13.0 description: > Initializes or upgrades a project in the current folder: git, .gitignore, README.md, .wiki/ using Karpathy's method, .tasks/ for task tracking, CLAUDE.md with skill triggers. @@ -361,7 +362,6 @@ Template contents (`assets/CLAUDE.md.template` — source of truth): # Agent instructions. Each line is a trigger for an installed skill. talk like a caveman -use superpowers use project wiki use task management system check across all projects @@ -418,10 +418,10 @@ server is registered — install via `setup-interns` on a fresh machine if `.wiki/concepts/interns-design.md` in the `skills` repo. The `recommend, don't menu` line activates the `recommend-dont-menu` skill, -which overrides the default `superpowers:brainstorming` behavior: in design -discussions, architecture reviews, or "what should we do" questions, the agent -gives **one argued recommendation with explicit trade-offs**, not a multiple- -choice menu. User instructions always take precedence over skill defaults. +which replaces the default brainstorming behavior: in design discussions, +architecture reviews, or "what should we do" questions, the agent gives **one +argued recommendation with explicit trade-offs**, not a multiple-choice menu. +User instructions always take precedence over skill defaults. Install the skill on the host if `recommend-dont-menu` is not in `~/.claude/skills/`; otherwise the trigger is silently dead like any other absent skill. @@ -484,7 +484,6 @@ Mismatch between template and map → silent gaps in the recommendation. | Trigger line in `CLAUDE.md` | Fulfiller | Kind | Detection path | Install command | |---|---|---|---|---| | `talk like a caveman` | `caveman` | skill | `~/.claude/skills/caveman/SKILL.md` | `bash scripts/install.sh caveman` | -| `use superpowers` | `superpowers@claude-plugins-official` | plugin | key `plugins["superpowers@claude-plugins-official"]` in `~/.claude/plugins/installed_plugins.json` | `/plugin install superpowers@claude-plugins-official` | | `use project wiki` | `using-wiki` | skill | `~/.claude/skills/using-wiki/SKILL.md` | `bash scripts/install.sh using-wiki` | | `use task management system` | `using-tasks` | skill | `~/.claude/skills/using-tasks/SKILL.md` | `bash scripts/install.sh using-tasks` | | `check across all projects` | `using-projects-meta` | skill | `~/.claude/skills/using-projects-meta/SKILL.md` | `bash scripts/install.sh using-projects-meta` | diff --git a/skills/project-bootstrap/assets/CLAUDE.md.template b/skills/project-bootstrap/assets/CLAUDE.md.template index ee458ee..c0af237 100644 --- a/skills/project-bootstrap/assets/CLAUDE.md.template +++ b/skills/project-bootstrap/assets/CLAUDE.md.template @@ -2,7 +2,6 @@ # Agent instructions. Each line is a trigger for an installed skill. talk like a caveman -use superpowers use project wiki use task management system check across all projects diff --git a/skills/project-discipline/SKILL.md b/skills/project-discipline/SKILL.md index 5503e8b..933e4c9 100644 --- a/skills/project-discipline/SKILL.md +++ b/skills/project-discipline/SKILL.md @@ -1,5 +1,6 @@ --- name: project-discipline +author: ours version: 0.1.1 description: > Codifies five cross-project discipline rules: (1) project CLAUDE.md / diff --git a/skills/pulling-before-work/SKILL.md b/skills/pulling-before-work/SKILL.md index 25c2646..8db50e7 100644 --- a/skills/pulling-before-work/SKILL.md +++ b/skills/pulling-before-work/SKILL.md @@ -1,5 +1,6 @@ --- name: pulling-before-work +author: ours version: 1.0.0 description: > Pulls the current branch from origin once at session start and on explicit diff --git a/skills/ralph-loop-execution/SKILL.md b/skills/ralph-loop-execution/SKILL.md index 14d8665..1279fa6 100644 --- a/skills/ralph-loop-execution/SKILL.md +++ b/skills/ralph-loop-execution/SKILL.md @@ -1,5 +1,6 @@ --- name: ralph-loop-execution +author: ours version: 0.1.0 description: > Execute a ralph-loop task: read the task's **Verifier:** oracle-command, diff --git a/skills/recommend-dont-menu/SKILL.md b/skills/recommend-dont-menu/SKILL.md index 97a8a08..fd940a5 100644 --- a/skills/recommend-dont-menu/SKILL.md +++ b/skills/recommend-dont-menu/SKILL.md @@ -1,5 +1,6 @@ --- name: recommend-dont-menu +author: ours version: 0.1.0 description: > Use during design discussions, brainstorming, architecture reviews, or any diff --git a/skills/session-handoff/SKILL.md b/skills/session-handoff/SKILL.md index e5d0182..fa24d1b 100644 --- a/skills/session-handoff/SKILL.md +++ b/skills/session-handoff/SKILL.md @@ -1,5 +1,6 @@ --- name: session-handoff +author: ours version: 0.3.3 description: "Sliding handoff between CC sessions via .tasks/NEXT_SESSION.md. Read on session start: orient agent, ask user before action. Write on session-end phrase or substantive commit. Session-end phrases: «завершаем сессию», «сворачиваемся», «закругляемся», «wrap up session», «end session», «we're done for now». Trigger-line in CLAUDE.md: `session handoff: read on start, write on end`. Skip task-zone phrases: «закрываем эту таску», «pause», «отбой», «разбегаемся»." --- diff --git a/skills/session-inbox-monitor/SKILL.md b/skills/session-inbox-monitor/SKILL.md index be5189b..e1d6c3e 100644 --- a/skills/session-inbox-monitor/SKILL.md +++ b/skills/session-inbox-monitor/SKILL.md @@ -1,5 +1,6 @@ --- name: session-inbox-monitor +author: ours version: 0.4.0 description: > Raises a persistent Monitor (Monitor tool, NOT background Bash) on the diff --git a/skills/setup-agents-task-runner/SKILL.md b/skills/setup-agents-task-runner/SKILL.md index e8ad4b5..9a37918 100644 --- a/skills/setup-agents-task-runner/SKILL.md +++ b/skills/setup-agents-task-runner/SKILL.md @@ -1,5 +1,6 @@ --- name: setup-agents-task-runner +author: ours version: 0.1.0 description: Installs the standing-duty stack (agents-task-runner + watchdog + appeals-inbox) as platform-native OS services — systemd user units on Linux, launchd LaunchAgents on macOS, winsw-wrapped services on Windows. No node window on any OS; OS-supervised autostart + crash-restart. Fetches winsw (pinned + SHA256-verified, not vendored). Installs DISARMED — scope is runtime config (poller-scope.json), arming is a separate operator step via the appeals-inbox pult. Use when the user says "install agents-task-runner service", "set up the standing-duty service", "deploy the poller as a service", "настрой службу раннера", "поставь дежурный стек как службу", "agents-task-runner службой", or when migrating off the old start-worker.ps1 Scheduled Task. Cross-platform — Windows / Linux / macOS. Installs OS services, fetches a binary, writes a scope file; pauses for confirmation before every mutating phase. This is the L2 installer for the `agents-task-runner` factory module. --- diff --git a/skills/setup-context7/SKILL.md b/skills/setup-context7/SKILL.md index d27d93c..61a31ee 100644 --- a/skills/setup-context7/SKILL.md +++ b/skills/setup-context7/SKILL.md @@ -1,5 +1,6 @@ --- name: setup-context7 +author: ours version: 1.0.0 description: Installs and configures the official context7 MCP plugin (`context7@claude-plugins-official`), reuses the user's existing Context7 API key, and cleans out any manual `mcpServers.context7` entries from `~/.claude.json` and `~/.claude/settings.json`. Use this skill when the user says "install context7", "set up context7", "configure context7", "настрой context7", "установи context7", "context7 не работает", "context7 isn't working", or whenever the `mcp__context7__resolve-library-id` / `mcp__context7__query-docs` tools are missing in a session that needs library docs. Cross-platform — Windows / Linux / macOS. Mutates user-level config; pauses for confirmation before writing. --- diff --git a/skills/setup-interns/SKILL.md b/skills/setup-interns/SKILL.md index bd27697..9deac4a 100644 --- a/skills/setup-interns/SKILL.md +++ b/skills/setup-interns/SKILL.md @@ -1,5 +1,6 @@ --- name: setup-interns +author: ours version: 0.4.0 description: Installs and configures the local `interns` MCP server — clones the repo to `~/projects/.common/lib/interns-mcp/` (or uses an existing clone), `pip install -e` it, writes `~/.config/projects-secrets/interns.env` with endpoint API keys, and registers `mcpServers.interns` in `~/.claude.json`. Use this skill when the user says "install interns", "set up interns", "configure interns", "настрой интернов", "установи интернов", "interns не работает", "interns isn't working", or whenever the `mcp__interns__*` tools are missing in a session that needs delegation. Cross-platform — Windows / Linux / macOS. Mutates user-level config and writes secrets; pauses for confirmation before every write. --- diff --git a/skills/setup-projects-meta/SKILL.md b/skills/setup-projects-meta/SKILL.md index 9d9a62a..95df0cf 100644 --- a/skills/setup-projects-meta/SKILL.md +++ b/skills/setup-projects-meta/SKILL.md @@ -1,5 +1,6 @@ --- name: setup-projects-meta +author: ours version: 1.1.0 description: Installs and configures the local `projects-meta-mcp` stdio server — clones the repo to `~/projects/.common/lib/projects-meta-mcp`, builds it, writes `~/.config/projects-mcp/auth.toml` with the user's Gitea token, clones the shared wiki to `~/projects/.wiki/` (content lives in root), and registers `mcpServers.projects-meta` in `~/.claude.json`. Use this skill when the user says "install projects-meta", "set up projects-meta", "configure projects-meta", "настрой projects-meta", "установи projects-meta", "projects-meta не работает", "projects-meta isn't working", or whenever the `mcp__projects-meta__*` tools are missing in a session that needs cross-project task aggregation or the shared Gitea wiki. Cross-platform — Windows / Linux / macOS. Mutates user-level config and writes secrets; pauses for confirmation before every write. --- diff --git a/skills/setup-tasks/SKILL.md b/skills/setup-tasks/SKILL.md index fd8275c..79d4893 100644 --- a/skills/setup-tasks/SKILL.md +++ b/skills/setup-tasks/SKILL.md @@ -1,5 +1,6 @@ --- name: setup-tasks +author: ours version: 1.0.0 description: Creates or migrates a project's `.tasks/` board to the canonical layout — `STATUS.md` (the board, with emoji status legend) plus per-task `.md` files for each active or paused task. Use when the user says "set up tasks", "init tasks", "настрой таски", "инициализируй таски", "create task tracking", "migrate tasks to canon", "tasks broken", or whenever `using-tasks` detects a missing or non-canonical `.tasks/`. Two modes — greenfield (no `.tasks/`) and migrate (existing flat STATUS.md without per-task files). Confirmation gate before writing. Cross-platform. --- diff --git a/skills/setup-wiki/SKILL.md b/skills/setup-wiki/SKILL.md index f93f77c..c26ea2c 100644 --- a/skills/setup-wiki/SKILL.md +++ b/skills/setup-wiki/SKILL.md @@ -1,5 +1,6 @@ --- name: setup-wiki +author: ours version: 1.1.0 description: Creates or migrates a project's `.wiki/` to the canonical Karpathy LLM Wiki layout — `CLAUDE.md` schema, `index.md`, `log.md`, `overview.md`, `raw/README.md`, plus empty `entities/`, `concepts/`, `packages/`, `sources/`, `contradictions/`, `open-questions/`. Use when the user says "set up wiki", "init wiki", "настрой вики", "инициализируй вики", "create wiki", "migrate wiki to canon", "wiki сломана", "wiki layout broken", or whenever `using-wiki` detects a missing or non-canonical `.wiki/`. Two modes — greenfield (no wiki) and migrate (existing non-canonical layout). Confirmation gate before writing. Cross-platform. --- diff --git a/skills/task-format/SKILL.md b/skills/task-format/SKILL.md index 6a922a2..0a6c400 100644 --- a/skills/task-format/SKILL.md +++ b/skills/task-format/SKILL.md @@ -1,5 +1,6 @@ --- name: task-format +author: ours version: 0.1.0 description: > Use when writing or editing a task block in a `.tasks/STATUS.md` board that an diff --git a/skills/task-loop/SKILL.md b/skills/task-loop/SKILL.md index ce1f0ab..ce207a8 100644 --- a/skills/task-loop/SKILL.md +++ b/skills/task-loop/SKILL.md @@ -1,5 +1,6 @@ --- name: task-loop +author: ours version: 0.1.0 description: > Use when the user asks you to work the task board yourself, in this diff --git a/skills/tdd-criteria/SKILL.md b/skills/tdd-criteria/SKILL.md index 57ea071..13ef60b 100644 --- a/skills/tdd-criteria/SKILL.md +++ b/skills/tdd-criteria/SKILL.md @@ -1,5 +1,6 @@ --- name: tdd-criteria +author: ours version: 0.2.0 description: > TDD by default with four bright-line carve-outs. Applies before any code diff --git a/skills/update-skills/SKILL.md b/skills/update-skills/SKILL.md index a575967..1843fe7 100644 --- a/skills/update-skills/SKILL.md +++ b/skills/update-skills/SKILL.md @@ -1,5 +1,6 @@ --- name: update-skills +author: ours version: 0.2.0 description: > Full uplift cycle for an existing skills installation: git pull, diff --git a/skills/using-context7/SKILL.md b/skills/using-context7/SKILL.md index bf58df6..bc6b464 100644 --- a/skills/using-context7/SKILL.md +++ b/skills/using-context7/SKILL.md @@ -1,5 +1,6 @@ --- name: using-context7 +author: ours version: 2.0.0 description: Use when answering questions about a specific library, framework, SDK, API, or CLI tool — including setup/install, config, API syntax, version-specific behavior, migration between versions, or library-specific errors. Training data is often stale; context7 returns current docs. Skip for general programming concepts, refactoring, business-logic debugging, or when the codebase already answers the question. --- diff --git a/skills/using-interns/SKILL.md b/skills/using-interns/SKILL.md index eb9eea4..1acc215 100644 --- a/skills/using-interns/SKILL.md +++ b/skills/using-interns/SKILL.md @@ -1,5 +1,6 @@ --- name: using-interns +author: ours version: 0.3.1 description: > Use when delegating predictable bulk reads or summarization to cheap intern LLMs via the l diff --git a/skills/using-markitdown/SKILL.md b/skills/using-markitdown/SKILL.md index 154b5b4..73ea725 100644 --- a/skills/using-markitdown/SKILL.md +++ b/skills/using-markitdown/SKILL.md @@ -1,5 +1,6 @@ --- name: using-markitdown +author: ours version: 1.0.1 description: Use when capturing external content into a markdown-based knowledge base, wiki `raw/` directory, or any pipeline that must preserve the source's full text — for web pages, PDFs, DOCX/PPTX/XLSX, EPUB, CSV/JSON/XML, ZIP archives, images (with OCR/EXIF), audio (with transcription), or YouTube URLs. Also use when WebFetch returned an LLM-summarized version but the raw content is what's needed. --- diff --git a/skills/using-projects-meta/SKILL.md b/skills/using-projects-meta/SKILL.md index cea17a4..139ff1d 100644 --- a/skills/using-projects-meta/SKILL.md +++ b/skills/using-projects-meta/SKILL.md @@ -1,5 +1,6 @@ --- name: using-projects-meta +author: ours version: 1.2.0 description: Use when working across multiple projects on one or many machines — cross-project task aggregation (`mcp__projects-meta__tasks_*`), shared Gitea-backed wiki query / ingest (`mcp__projects-meta__knowledge_*`), or sync diagnostics (`mcp__projects-meta__meta_status`). Triggers on phrases like "across all projects", "what's on the boards", "check shared wiki", "search projects-wiki", "ingest into shared wiki", "что у меня на досках", "по всем проектам", "общая вики", "cross-project status", or any time the user wants to see / mutate state in another repo than the current cwd. v1.1.0 mandates a Step 0 freshness gate (probe `meta_status`, sync if stale, pull `projects-wiki` before shared-wiki writes) — see SKILL body. Mutation tools require two-step preview → confirm. Skip for the **current** project's tasks/wiki — those live on disk in `.tasks/` / `.wiki/`. --- diff --git a/skills/using-system-snapshot/SKILL.md b/skills/using-system-snapshot/SKILL.md index 7c8fdf2..68b5682 100644 --- a/skills/using-system-snapshot/SKILL.md +++ b/skills/using-system-snapshot/SKILL.md @@ -1,5 +1,6 @@ --- name: using-system-snapshot +author: ours version: 0.1.0 description: "Use at the start of an ops-context session, and ALWAYS before asserting anything about the agent poller, local docker containers, or cross-project task load — call `mcp__projects-meta__meta_system_snapshot` instead of running `tasklist` / `docker ps` / `meta_status` by hand. Triggers on «что запущено», «что сейчас крутится», «состояние системы», «состояние машины», «поллер работает?», «поллер живой?», «что с докером», «сводка по задачам», «what's running», «system status», «system snapshot», «is the poller up», «is the runner alive», «what containers are up». Read-only — no per-session grant needed. Skip for deep single-container docker diagnosis (that's using-vds-ops for the VDS / docker logs locally) and for mutating or precise per-task work (that's using-projects-meta)." --- diff --git a/skills/using-tasks/SKILL.md b/skills/using-tasks/SKILL.md index c737daf..b0fb2fb 100644 --- a/skills/using-tasks/SKILL.md +++ b/skills/using-tasks/SKILL.md @@ -1,5 +1,6 @@ --- name: using-tasks +author: ours version: 1.4.0 description: > Policy skill for working with an existing `.tasks/` board (per-task files + STATUS.md). diff --git a/skills/using-vds-ops/SKILL.md b/skills/using-vds-ops/SKILL.md index 5c550eb..72cfaa9 100644 --- a/skills/using-vds-ops/SKILL.md +++ b/skills/using-vds-ops/SKILL.md @@ -1,5 +1,6 @@ --- name: using-vds-ops +author: ours version: 0.1.1 description: "Use when diagnosing docker containers on the Rusonyx VDS — the `vds-ops` HTTP MCP server (https://opsmcp.vds.kzntsv.site/mcp) exposes 4 read-only tools — `ops.docker.ps`, `ops.docker.logs`, `ops.docker.inspect`, `ops.docker.stats` — all routed through tecnativa `vds-docker-proxy-ro` with `POST=0` (write-ops return 403). Triggers on VDS container names (`traefik`, `portainer`, `gitea`, `verdaccio`, `registry`, `joxit-ui`, `ntfy`, `postgres`, `mariadb`, `mongo`, `redis`, `vds-ops-mcp`, `vds-docker-proxy-ro`), on VDS-domain words («на VDS», «VDS», «vds.kzntsv.site», «vds-ops», «opsmcp.vds», «Rusonyx», «облачный VDS»), or on incident phrases («падает», «restart-loop», «не стартует», «unhealthy», «посмотри логи», «git.kzntsv не открывается», «verdaccio лежит», «registry медленно», «ntfy не приходит») when VDS-context. Read-only by design — no per-session grant needed. Skip for write-ops and mentions without incident signal." --- diff --git a/skills/using-wiki-graph/SKILL.md b/skills/using-wiki-graph/SKILL.md index b9917f2..2e74488 100644 --- a/skills/using-wiki-graph/SKILL.md +++ b/skills/using-wiki-graph/SKILL.md @@ -1,5 +1,6 @@ --- name: using-wiki-graph +author: ours version: 0.1.1 description: > Use when a question is RELATIONAL about a wiki — «что связывает X и Y», «как связаны», «пу diff --git a/skills/using-wiki/SKILL.md b/skills/using-wiki/SKILL.md index 64d1f26..ab17f5b 100644 --- a/skills/using-wiki/SKILL.md +++ b/skills/using-wiki/SKILL.md @@ -1,5 +1,6 @@ --- name: using-wiki +author: ours version: 1.1.0 description: Policy skill for working with an existing `.wiki/` (Karpathy LLM Wiki pattern). Use when the user asks to ingest a document, answer from the wiki, lint/health-check it, or says "use project wiki", "обнови вики", "проверь вики", "запроси вики", "заингесть", "query the wiki". Also use when modifying any file under `.wiki/` — the workflow and formats below are mandatory, and project-specific conventions live in `.wiki/CLAUDE.md`. If `.wiki/` is missing or non-canonical, delegate to `setup-wiki` first (it has its own confirmation gate). Renamed from `wiki-maintainer` at v1.0.0. ---