refactor(skills): rename repo claude-skills → skills (Gitea + local + references + update-claude-skills → update-skills v0.2.0)
This commit is contained in:
@@ -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."
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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):**
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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`).
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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`.
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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 2–3)
|
📋 Tasks — 23 active / 41 blocked, 17 projects (name the busiest 2–3)
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user