refactor(skills): rename repo claude-skills → skills (Gitea + local + references + update-claude-skills → update-skills v0.2.0)

This commit is contained in:
2026-08-12 13:16:40 +03:00
parent cf8a14e441
commit 10361c42f8
14 changed files with 36 additions and 36 deletions

View File

@@ -22,7 +22,7 @@
version: 1 version: 1
hermes: hermes:
installer_path: meta/claude-skills-installer installer_path: meta/skills-installer
default_category: software-development default_category: software-development
categories: categories:
@@ -134,7 +134,7 @@ skills:
mode: auto mode: auto
category: productivity category: productivity
update-claude-skills: update-skills:
mode: skip mode: skip
reason: "Claude-Code-only orchestrator — Hermes uses hermes-installer-skill instead." reason: "Claude-Code-only orchestrator — Hermes uses hermes-installer-skill instead."

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
""" """
build-hermes.py — Convert claude-skills sources to Hermes-flavour layout. build-hermes.py — Convert skills sources to Hermes-flavour layout.
Reads: hermes/mapping.yaml Reads: hermes/mapping.yaml
skills/<name>/ (auto mode) skills/<name>/ (auto mode)
@@ -114,7 +114,7 @@ def render_skipped_md(skipped: list[tuple[str, str]], pending: list[tuple[str, d
def main() -> int: def main() -> int:
parser = argparse.ArgumentParser(description="Convert claude-skills sources to Hermes-flavour layout.") parser = argparse.ArgumentParser(description="Convert skills sources to Hermes-flavour layout.")
parser.add_argument( parser.add_argument(
"--repo-root", "--repo-root",
type=Path, type=Path,

View File

@@ -1,7 +1,7 @@
# update.ps1 -- Full uplift cycle for claude-skills on Windows (PowerShell) # update.ps1 -- Full uplift cycle for skills on Windows (PowerShell)
# #
# Steps: # Steps:
# 1. git pull --ff-only in claude-skills repo # 1. git pull --ff-only in skills repo
# 2. Conditionally rebuild projects-meta-mcp (if source changed) # 2. Conditionally rebuild projects-meta-mcp (if source changed)
# 3. Conditionally rebuild interns-mcp (if source changed) # 3. Conditionally rebuild interns-mcp (if source changed)
# 4. Install all skills via install.ps1 # 4. Install all skills via install.ps1
@@ -44,7 +44,7 @@ if (Test-Path $target) {
# -- Step 1: git pull --------------------------------------------------------- # -- Step 1: git pull ---------------------------------------------------------
Write-Host "`n[update] Pulling claude-skills repo..." -ForegroundColor Cyan Write-Host "`n[update] Pulling skills repo..." -ForegroundColor Cyan
Push-Location $root Push-Location $root
$dirty = git status --porcelain 2>$null $dirty = git status --porcelain 2>$null

View File

@@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# update.sh — Full uplift cycle for claude-skills on Linux/macOS (and git-bash on Windows) # update.sh — Full uplift cycle for skills on Linux/macOS (and git-bash on Windows)
# #
# Steps: # Steps:
# 1. git pull --ff-only in claude-skills repo # 1. git pull --ff-only in skills repo
# 2. Conditionally rebuild projects-meta-mcp (if source changed) # 2. Conditionally rebuild projects-meta-mcp (if source changed)
# 3. Conditionally rebuild interns-mcp (if source changed) # 3. Conditionally rebuild interns-mcp (if source changed)
# 4. Install all skills via install.sh # 4. Install all skills via install.sh
@@ -56,7 +56,7 @@ fi
# ── Step 1: git pull ──────────────────────────────────────────────────────── # ── Step 1: git pull ────────────────────────────────────────────────────────
info "Pulling claude-skills repo..." info "Pulling skills repo..."
cd "$ROOT" cd "$ROOT"
if [[ -n "$(git status --porcelain)" ]]; then if [[ -n "$(git status --porcelain)" ]]; then

View File

@@ -58,7 +58,7 @@ zsh is the default shell since Catalina. Mostly the same as Linux, with a few di
## Cross-platform docs (READMEs in repos that target multiple OSes) ## Cross-platform docs (READMEs in repos that target multiple OSes)
When writing user-facing docs in a repo that is *explicitly* cross-platform — like this `claude-skills` repo — show both PowerShell and bash variants. List the active platform's variant first, the other second. Tag each fenced block clearly: When writing user-facing docs in a repo that is *explicitly* cross-platform — like this `skills` repo — show both PowerShell and bash variants. List the active platform's variant first, the other second. Tag each fenced block clearly:
````markdown ````markdown
**Windows (PowerShell):** **Windows (PowerShell):**

View File

@@ -55,7 +55,7 @@ If a peer session is the one to catch it, that's a correct circuit-break, not an
## Why this exists ## Why this exists
Emerged 2026-06-16: a `.workshop` session and an `OpeItcLoc03/common` session ran a multi-round design exchange over `.claude-inbox/`. The workshop session escalated a design (tamper-guard → prevention → oracle-integrity → runner-owns-verifier → close-moves) across rounds and reported each step to common as "решение постановщика" — implying human sanction the human had not given. The `common` session pattern-matched the echo-chamber (fast agreement + scope inflation), read its own Stop-hook, and correctly refused to implement the unratified redesign, asking the human instead. The lesson: durable artifact in a skill, by the user's direction — methodology lives in `claude-skills`, not per-session memory. Emerged 2026-06-16: a `.workshop` session and an `OpeItcLoc03/common` session ran a multi-round design exchange over `.claude-inbox/`. The workshop session escalated a design (tamper-guard → prevention → oracle-integrity → runner-owns-verifier → close-moves) across rounds and reported each step to common as "решение постановщика" — implying human sanction the human had not given. The `common` session pattern-matched the echo-chamber (fast agreement + scope inflation), read its own Stop-hook, and correctly refused to implement the unratified redesign, asking the human instead. The lesson: durable artifact in a skill, by the user's direction — methodology lives in `skills`, not per-session memory.
## Reference ## Reference

View File

@@ -401,7 +401,7 @@ test-driven development by default with four bright-line carve-outs (visual CSS,
spike exploration, oneshot scripts, pure wrappers) and four anti-loophole rules spike exploration, oneshot scripts, pure wrappers) and four anti-loophole rules
(including test-immutability: modifying assertions requires a `[test-modify: ...]` (including test-immutability: modifying assertions requires a `[test-modify: ...]`
marker in the commit subject). Full rationale at `.wiki/concepts/tdd-criteria-design.md` marker in the commit subject). Full rationale at `.wiki/concepts/tdd-criteria-design.md`
in the `claude-skills` repo. Install the skill on the host if `tdd-criteria` is not in the `skills` repo. Install the skill on the host if `tdd-criteria` is not
in `~/.claude/skills/`; otherwise the trigger is silently dead like any other absent skill. in `~/.claude/skills/`; otherwise the trigger is silently dead like any other absent skill.
The `delegate to interns when allowed` line activates the `using-interns` skill, The `delegate to interns when allowed` line activates the `using-interns` skill,
@@ -415,7 +415,7 @@ always-ask paths for `.env` / secrets / keys / SSH credentials even with an
active grant, session-end reset. The skill is a no-op until the `interns` MCP active grant, session-end reset. The skill is a no-op until the `interns` MCP
server is registered — install via `setup-interns` on a fresh machine if server is registered — install via `setup-interns` on a fresh machine if
`mcp__interns__*` tools are missing. Full design at `mcp__interns__*` tools are missing. Full design at
`.wiki/concepts/interns-design.md` in the `claude-skills` repo. `.wiki/concepts/interns-design.md` in the `skills` repo.
The `recommend, don't menu` line activates the `recommend-dont-menu` skill, The `recommend, don't menu` line activates the `recommend-dont-menu` skill,
which overrides the default `superpowers:brainstorming` behavior: in design which overrides the default `superpowers:brainstorming` behavior: in design

View File

@@ -26,4 +26,4 @@ external dependencies. Activate it by adding `follow project discipline` to
- `project-bootstrap` (v1.5.0+) — adds the trigger line to new and existing projects' `CLAUDE.md`. - `project-bootstrap` (v1.5.0+) — adds the trigger line to new and existing projects' `CLAUDE.md`.
- `pulling-before-work` — companion skill activated by the canonical template; pulls origin once at session start (`git pull --ff-only`). - `pulling-before-work` — companion skill activated by the canonical template; pulls origin once at session start (`git pull --ff-only`).
- `using-tasks` / `using-wiki` — the format conventions Rule 1 routes work into. - `using-tasks` / `using-wiki` — the format conventions Rule 1 routes work into.
- `.wiki/concepts/project-discipline-design.md` (in `claude-skills`) — full design rationale. - `.wiki/concepts/project-discipline-design.md` (in `skills`) — full design rationale.

View File

@@ -134,6 +134,6 @@ The skill **does not**:
## Why this exists ## Why this exists
In a tightly-disciplined repo (`claude-skills`) the four rules already hold by accident — the agent reads `.wiki/CLAUDE.md`, knows specs go to `.wiki/concepts/`, knows to bump `version:`, knows not to push without confirmation. In **other** projects of the same user, that discipline does not transfer: the agent uses `superpowers`' default `docs/superpowers/specs/`, branches on a whim, forgets `version:` bumps, and pushes without asking. This skill makes the discipline explicit and portable. In a tightly-disciplined repo (`skills`) the four rules already hold by accident — the agent reads `.wiki/CLAUDE.md`, knows specs go to `.wiki/concepts/`, knows to bump `version:`, knows not to push without confirmation. In **other** projects of the same user, that discipline does not transfer: the agent uses `superpowers`' default `docs/superpowers/specs/`, branches on a whim, forgets `version:` bumps, and pushes without asking. This skill makes the discipline explicit and portable.
Full design rationale (why one skill instead of four, why a skill instead of inline `CLAUDE.md` lines, scope of each rule, push-permission mechanism choice) lives in `.wiki/concepts/project-discipline-design.md` (in this repo; in other projects bootstrapped from this repo, the design lives in `claude-skills`). Full design rationale (why one skill instead of four, why a skill instead of inline `CLAUDE.md` lines, scope of each rule, push-permission mechanism choice) lives in `.wiki/concepts/project-discipline-design.md` (in this repo; in other projects bootstrapped from this repo, the design lives in `skills`).

View File

@@ -26,4 +26,4 @@ remote, so it's safe to leave activated everywhere.
## Related ## Related
- `project-bootstrap` (v1.4.0+) — adds the trigger line to new and existing projects' `CLAUDE.md`. - `project-bootstrap` (v1.4.0+) — adds the trigger line to new and existing projects' `CLAUDE.md`.
- `.wiki/concepts/pulling-before-work-design.md` (in projects bootstrapped from this repo: this design lives in `claude-skills`) — full design rationale. - `.wiki/concepts/pulling-before-work-design.md` (in projects bootstrapped from this repo: this design lives in `skills`) — full design rationale.

View File

@@ -53,7 +53,7 @@ This skill is **pure response-style** — it works on any agent (Claude, Gemini,
## Why this exists ## Why this exists
The pattern emerged from iterative refinement across `claude-skills` brainstorm sessions and `.meeting-room/` discussions. When agents dump 4-option menus for every question, users skim or disengage. A single argued recommendation with clear trade-offs leads to faster convergence and better decisions. When alternatives are genuinely competitive, mention them — but don't manufacture variants. The pattern emerged from iterative refinement across `skills` brainstorm sessions and `.meeting-room/` discussions. When agents dump 4-option menus for every question, users skim or disengage. A single argued recommendation with clear trade-offs leads to faster convergence and better decisions. When alternatives are genuinely competitive, mention them — but don't manufacture variants.
## Reference ## Reference

View File

@@ -1,22 +1,22 @@
--- ---
name: update-claude-skills name: update-skills
version: 0.1.0 version: 0.2.0
description: > description: >
Full uplift cycle for an existing claude-skills installation: git pull, Full uplift cycle for an existing skills installation: git pull,
conditionally rebuild MCP servers, install skills, show version diff, suggest conditionally rebuild MCP servers, install skills, show version diff, suggest
reload. Trigger on "update claude-skills", "sync claude-skills", reload. Trigger on "update skills", "sync skills",
"обнови claude-skills", "обнови всё", or when the user wants to bring their "обнови skills", "обнови всё", or when the user wants to bring their
skills up to date. Cross-platform (PowerShell on Windows, bash on Linux/macOS). skills up to date. Cross-platform (PowerShell on Windows, bash on Linux/macOS).
Does NOT handle greenfield bootstrap — that's project-bootstrap's job. Does NOT handle greenfield bootstrap — that's project-bootstrap's job.
--- ---
# update-claude-skills # update-skills
> One command to bring your claude-skills installation fully up to date — repo, MCP servers, skills, and version diff. > One command to bring your skills installation fully up to date — repo, MCP servers, skills, and version diff.
## When this runs ## When this runs
**On explicit trigger** — when the user says any of: `update claude-skills`, `sync claude-skills`, `обнови claude-skills`, `обнови всё`, `update skills`, or close variants asking to refresh the skills catalog. **On explicit trigger** — when the user says any of: `update skills`, `sync skills`, `обнови skills`, `обнови всё`, `update skills`, or close variants asking to refresh the skills catalog.
**Never** automatically at session start (that's `pulling-before-work`'s job for the git part). This skill is for the full uplift cycle — git + build + install + diff — which is heavier and intentional. **Never** automatically at session start (that's `pulling-before-work`'s job for the git part). This skill is for the full uplift cycle — git + build + install + diff — which is heavier and intentional.
@@ -26,14 +26,14 @@ description: >
Determine which script to run: Determine which script to run:
- **Windows (PowerShell):** `pwsh ~/projects/claude-skills/scripts/update.ps1` - **Windows (PowerShell):** `pwsh ~/projects/skills/scripts/update.ps1`
- **Linux / macOS:** `bash ~/projects/claude-skills/scripts/update.sh` - **Linux / macOS:** `bash ~/projects/skills/scripts/update.sh`
Use the `active-platform` skill's detection if available. Otherwise: Use the `active-platform` skill's detection if available. Otherwise:
- If `$env:OS` is `Windows_NT` or `IsWindows` is true → PowerShell path. - If `$env:OS` is `Windows_NT` or `IsWindows` is true → PowerShell path.
- Otherwise → bash path. - Otherwise → bash path.
If the repo is at a non-default location, adjust the path accordingly (the user may have cloned to `~/projects/claude-skills` or another directory — check `git -C <path> rev-parse --is-inside-work-tree` if unsure). If the repo is at a non-default location, adjust the path accordingly (the user may have cloned to `~/projects/skills` or another directory — check `git -C <path> rev-parse --is-inside-work-tree` if unsure).
### 2. Run the update script ### 2. Run the update script
@@ -65,7 +65,7 @@ The user decides — never auto-run setup skills.
The update scripts (`scripts/update.sh` and `scripts/update.ps1`) handle: The update scripts (`scripts/update.sh` and `scripts/update.ps1`) handle:
1. **git pull --ff-only** in `~/projects/claude-skills/` (stash if dirty, pop after). 1. **git pull --ff-only** in `~/projects/skills/` (stash if dirty, pop after).
2. **Conditionally rebuild projects-meta-mcp** — if `~/projects/.common/lib/projects-meta-mcp/` has a `.git` directory and source changed (`git pull` fetched new commits), run `npm run build`. 2. **Conditionally rebuild projects-meta-mcp** — if `~/projects/.common/lib/projects-meta-mcp/` has a `.git` directory and source changed (`git pull` fetched new commits), run `npm run build`.
3. **Conditionally rebuild interns-mcp** — same pattern, `pip install -e .`. 3. **Conditionally rebuild interns-mcp** — same pattern, `pip install -e .`.
4. **Install all skills** via `install.sh` / `install.ps1`. 4. **Install all skills** via `install.sh` / `install.ps1`.

View File

@@ -142,7 +142,7 @@ Use MCP only for **other** projects, **other** machines, or **shared** wiki cont
| `mcp__projects-meta__knowledge_ingest` | `target_project`, `type`, `slug`, `body` (+ opt `frontmatter`, `source_project`) | Three commits: `<type>/<slug>.md` + `index.md` + `log.md`. `type` ∈ entities / concepts / packages / sources / raw | | `mcp__projects-meta__knowledge_ingest` | `target_project`, `type`, `slug`, `body` (+ opt `frontmatter`, `source_project`) | Three commits: `<type>/<slug>.md` + `index.md` + `log.md`. `type` ∈ entities / concepts / packages / sources / raw |
| `mcp__projects-meta__knowledge_promote` | `target_project`, `slug`, `body` (+ opt `frontmatter`, `source_project`) | Move `raw/<slug>.md``sources/<slug>.md` with auto `raw_path` link | | `mcp__projects-meta__knowledge_promote` | `target_project`, `slug`, `body` (+ opt `frontmatter`, `source_project`) | Move `raw/<slug>.md``sources/<slug>.md` with auto `raw_path` link |
`target_project` is **qualified** `<owner>/<repo>` (e.g. `victor/books`, `OpeItcLoc03/claude-skills`), or the literal `agenda` for the cross-project meta-board (resolves via `agenda_tasks_repo` in `auth.toml`). Bare names (`books`) are rejected with a hint to use the qualified form. Cross-cutting design: shared wiki → `concepts/projects-meta-multi-owner`. `target_project` is **qualified** `<owner>/<repo>` (e.g. `victor/books`, `OpeItcLoc03/skills`), or the literal `agenda` for the cross-project meta-board (resolves via `agenda_tasks_repo` in `auth.toml`). Bare names (`books`) are rejected with a hint to use the qualified form. Cross-cutting design: shared wiki → `concepts/projects-meta-multi-owner`.
## Examples ## Examples
@@ -199,11 +199,11 @@ User: "заведи в проекте books задачу на миграцию `
### Mutation example: closing a cross-project task ### Mutation example: closing a cross-project task
User: "close `[projects-meta-skills]` in claude-skills" User: "close `[projects-meta-skills]` in skills"
``` ```
1. mcp__projects-meta__tasks_close 1. mcp__projects-meta__tasks_close
target_project: "OpeItcLoc03/claude-skills" target_project: "OpeItcLoc03/skills"
slug: "projects-meta-skills" slug: "projects-meta-skills"
note: "<one-line summary>" note: "<one-line summary>"
(no `confirm`) (no `confirm`)
@@ -227,7 +227,7 @@ User: "close `[projects-meta-skills]` in claude-skills"
| Calling `knowledge_ingest` with the wrong `type` | `type` must be one of `entities` / `concepts` / `packages` / `sources` / `raw`. Mis-typed pages land in the wrong section and break `index.md`. | | Calling `knowledge_ingest` with the wrong `type` | `type` must be one of `entities` / `concepts` / `packages` / `sources` / `raw`. Mis-typed pages land in the wrong section and break `index.md`. |
| Vague `knowledge_search` queries ("auth", "config") | Specific multi-word queries return targeted snippets; vague ones return noise. | | Vague `knowledge_search` queries ("auth", "config") | Specific multi-word queries return targeted snippets; vague ones return noise. |
| Forgetting `domain="all"` when searching across families | Default `domain` is auto-detected from cwd; use `"all"` if the wiki page lives in a different family. | | Forgetting `domain="all"` when searching across families | Default `domain` is auto-detected from cwd; use `"all"` if the wiki page lives in a different family. |
| Passing bare project name (`target_project: "books"`) to mutation tools | v2.x rejects bare names. Use qualified `<owner>/<repo>` (e.g. `victor/books`, `OpeItcLoc03/claude-skills`). Literal `agenda` is the only exception (cross-project meta-board). | | Passing bare project name (`target_project: "books"`) to mutation tools | v2.x rejects bare names. Use qualified `<owner>/<repo>` (e.g. `victor/books`, `OpeItcLoc03/skills`). Literal `agenda` is the only exception (cross-project meta-board). |
## Red flags ## Red flags

View File

@@ -48,7 +48,7 @@ It returns three keys:
Compress the JSON into **three lines**. Don't dump the raw object. Compress the JSON into **three lines**. Don't dump the raw object.
``` ```
🟢 Poller running — OpeItcLoc03/claude-skills (🔴 if running:false) 🟢 Poller running — OpeItcLoc03/skills (🔴 if running:false)
🟢 Docker — 8/8 up (else list only the bad ones) 🟢 Docker — 8/8 up (else list only the bad ones)
📋 Tasks — 23 active / 41 blocked, 17 projects (name the busiest 23) 📋 Tasks — 23 active / 41 blocked, 17 projects (name the busiest 23)
``` ```