diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 996d073..50d446b 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,14 +1,14 @@ { - "name": "ai-skills", + "name": "reliquary", "owner": { "name": "Gabor KΓΆrber", "email": "gab@g4b.org" }, "plugins": [ { - "name": "ai-skills", - "source": "./", - "description": "Personal Claude Code skills: workpad, research-tree, implementation-orchestration, markdown-embedded-svg" + "name": "g4b_ai", + "source": "./plugins/g4b_ai", + "description": "Gabor's personal Claude Code skills: workpad, research-tree, implementation-orchestration, markdown-embedded-svg" } ] } diff --git a/CLAUDE.md b/CLAUDE.md index e807e7e..8a79810 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,2 +1,11 @@ -when committing, use gitmjoi prefixes instead of "chore" etc. +# reliquary β€” repo-level instructions +This repo is a marketplace, not a single project. Each plugin under `plugins/` is self-contained; its own `CLAUDE.md` (if any) governs work inside it. + +## Commit messages + +Use gitmoji prefixes. The full convention β€” including the custom `πŸ€–` for agent-file changes and the `πŸ¦‡ BATMAN` initial-commit rule β€” lives in [`docs/workpad/specs/commit-conventions.md`](./docs/workpad/specs/commit-conventions.md). Read it before committing. + +## Workpad + +Working documents (plans, research, goals, designs, reports) live in `docs/workpad/`. The `workpad` skill in `plugins/g4b_ai/skills/workpad/` is authoritative for placement and naming. diff --git a/README.md b/README.md index 98b5603..6b45e80 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,22 @@ -# ai_skills +# reliquary -A small collection of personal [Claude Code](https://docs.claude.com/en/docs/claude-code) skills, packaged as a plugin so other projects can install them via a marketplace. +A marketplace for personal agent tooling β€” skills, plugins, prompts, configs β€” for [Claude Code](https://docs.claude.com/en/docs/claude-code) and, over time, other coding agents. -## Skills +The repo doubles as a **Claude Code marketplace** (`.claude-plugin/marketplace.json`) and a plain git tree you can cherry-pick from. It is intended to grow additional, themed plugins alongside the current one, and to host non-Claude formats (AGENTS.md bundles, MCP servers, Codex/Gemini/OpenCode skills) in parallel. -- **workpad** β€” Decides *where* and *when* to put working documents (reports, plans, brainstorms, designs, research notes, specs). Steers other skills toward a single predictable location for thinking-in-markdown instead of scattering files across `/tmp`, the repo root, or per-skill scratch directories. -- **research-tree** β€” Orchestrates multi-topic research as a dependency tree of parallel phases. Within a phase agents run in parallel; between phases later agents inherit earlier reports. Use it for "research X, Y and Z" / "do a deep dive on…" prompts where a single agent would skim. -- **implementation-orchestration** β€” How to drive non-trivial implementation work across one or more agents: when to delegate vs. work inline, how to sequence agents, and how to handle test/compile failures without thrashing. Defaults to sequential execution; parallel only when work is genuinely independent. -- **markdown-embedded-svg** β€” Rules and defaults for putting SVG into Markdown. Different renderers (GitHub, Gitea, Obsidian, VS Code) sanitize inline SVG very differently, so the default is to save SVGs as separate files and reference them via image-link syntax; inline SVG is treated as a special case. +## Plugins -## Install as a plugin (whole repo) +| Plugin | Description | +|---|---| +| [`g4b_ai`](./plugins/g4b_ai) | Core personal Claude Code skills β€” workpad, research-tree, implementation-orchestration, markdown-embedded-svg | -The repo ships a marketplace at `.claude-plugin/marketplace.json` exposing one plugin (`ai-skills`). +More plugins will land in `plugins/` as they're carved out. -### From `git.g4b.org` - -Interactive: +## Install as a Claude Code marketplace ``` -/plugin marketplace add git@git.g4b.org:g4borg/ai_skills.git -/plugin install ai-skills@ai-skills +/plugin marketplace add git@git.g4b.org:dirigence/reliquary.git +/plugin install g4b_ai@reliquary ``` Or declaratively in a project's `.claude/settings.json`: @@ -27,101 +24,58 @@ Or declaratively in a project's `.claude/settings.json`: ```json { "extraKnownMarketplaces": { - "ai-skills": { + "reliquary": { "source": { "source": "git", - "url": "git@git.g4b.org:g4borg/ai_skills.git" + "url": "git@git.g4b.org:dirigence/reliquary.git" } } }, "enabledPlugins": { - "ai-skills@ai-skills": true + "g4b_ai@reliquary": true } } ``` -### From a local clone - -If you have the repo cloned locally and want to develop against it: +From a local clone: ``` -/plugin marketplace add /path/to/ai_skills -/plugin install ai-skills@ai-skills +/plugin marketplace add /path/to/reliquary +/plugin install g4b_ai@reliquary ``` -Or in `settings.json`: +Each plugin's own README documents its skills and any per-plugin install paths. -```json -{ - "extraKnownMarketplaces": { - "ai-skills": { - "source": { "source": "local", "path": "/path/to/ai_skills" } - } - }, - "enabledPlugins": { "ai-skills@ai-skills": true } -} -``` +## Grab pieces independently -### From GitHub (mirror) - -If the repo is mirrored to GitHub as `/ai_skills`: - -``` -/plugin marketplace add /ai_skills -/plugin install ai-skills@ai-skills -``` - -Or in `settings.json`: - -```json -{ - "extraKnownMarketplaces": { - "ai-skills": { - "source": { "source": "github", "repo": "/ai_skills" } - } - }, - "enabledPlugins": { "ai-skills@ai-skills": true } -} -``` - -## Fetch individual skills - -If you only want one or two skills (no plugin, no marketplace), copy them straight into a target project's or user-level skills directory. - -User-level (available in every project): +A skill is just a folder containing `SKILL.md`. You don't need the plugin or marketplace machinery to use one: ```sh -git clone git@git.g4b.org:g4borg/ai_skills.git /tmp/ai_skills +git clone git@git.g4b.org:dirigence/reliquary.git /tmp/reliquary mkdir -p ~/.claude/skills -cp -r /tmp/ai_skills/skills/workpad ~/.claude/skills/ -cp -r /tmp/ai_skills/skills/research-tree ~/.claude/skills/ +cp -r /tmp/reliquary/plugins/g4b_ai/skills/workpad ~/.claude/skills/ ``` -Project-level (only the current project): +Symlink instead of copy if you want to follow upstream: ```sh -mkdir -p .claude/skills -cp -r /tmp/ai_skills/skills/workpad .claude/skills/ +ln -s /tmp/reliquary/plugins/g4b_ai/skills/workpad ~/.claude/skills/workpad ``` -Or symlink instead of copying so the skill stays in sync with the upstream clone: - -```sh -ln -s /tmp/ai_skills/skills/workpad ~/.claude/skills/workpad -``` - -A skill is just a directory containing a `SKILL.md` β€” no further wiring is needed. - ## Layout ``` -ai_skills/ +reliquary/ β”œβ”€β”€ .claude-plugin/ -β”‚ β”œβ”€β”€ plugin.json # plugin manifest -β”‚ └── marketplace.json # marketplace listing -└── skills/ - β”œβ”€β”€ workpad/SKILL.md - β”œβ”€β”€ research-tree/SKILL.md - β”œβ”€β”€ implementation-orchestration/SKILL.md - └── markdown-embedded-svg/SKILL.md +β”‚ └── marketplace.json # the marketplace listing +β”œβ”€β”€ plugins/ +β”‚ └── g4b_ai/ +β”‚ β”œβ”€β”€ .claude-plugin/plugin.json +β”‚ β”œβ”€β”€ skills/ +β”‚ └── README.md +└── docs/ # workpad: notes, research, goals, plans ``` + +## Conventions + +Commit messages use gitmoji prefixes β€” see [`docs/workpad/specs/commit-conventions.md`](./docs/workpad/specs/commit-conventions.md). diff --git a/.claude-plugin/plugin.json b/plugins/g4b_ai/.claude-plugin/plugin.json similarity index 91% rename from .claude-plugin/plugin.json rename to plugins/g4b_ai/.claude-plugin/plugin.json index dfc2054..bb8d26a 100644 --- a/.claude-plugin/plugin.json +++ b/plugins/g4b_ai/.claude-plugin/plugin.json @@ -1,5 +1,5 @@ { - "name": "ai-skills", + "name": "g4b_ai", "version": "0.1.0", "description": "Gabor's personal Claude Code skills (workpad, research-tree, implementation-orchestration, markdown-embedded-svg)", "author": { diff --git a/plugins/g4b_ai/CLAUDE.md b/plugins/g4b_ai/CLAUDE.md new file mode 100644 index 0000000..e807e7e --- /dev/null +++ b/plugins/g4b_ai/CLAUDE.md @@ -0,0 +1,2 @@ +when committing, use gitmjoi prefixes instead of "chore" etc. + diff --git a/plugins/g4b_ai/README.md b/plugins/g4b_ai/README.md new file mode 100644 index 0000000..5c9f15e --- /dev/null +++ b/plugins/g4b_ai/README.md @@ -0,0 +1,102 @@ +# g4b_ai + +A small collection of personal [Claude Code](https://docs.claude.com/en/docs/claude-code) skills, packaged as a plugin and served via the [reliquary](../../README.md) marketplace. + +## Skills + +- **workpad** β€” Decides *where* and *when* to put working documents (reports, plans, brainstorms, designs, research notes, specs). Steers other skills toward a single predictable location for thinking-in-markdown instead of scattering files across `/tmp`, the repo root, or per-skill scratch directories. +- **research-tree** β€” Orchestrates multi-topic research as a dependency tree of parallel phases. Within a phase agents run in parallel; between phases later agents inherit earlier reports. Use it for "research X, Y and Z" / "do a deep dive on…" prompts where a single agent would skim. +- **implementation-orchestration** β€” How to drive non-trivial implementation work across one or more agents: when to delegate vs. work inline, how to sequence agents, and how to handle test/compile failures without thrashing. Defaults to sequential execution; parallel only when work is genuinely independent. +- **markdown-embedded-svg** β€” Rules and defaults for putting SVG into Markdown. Different renderers (GitHub, Gitea, Obsidian, VS Code) sanitize inline SVG very differently, so the default is to save SVGs as separate files and reference them via image-link syntax; inline SVG is treated as a special case. + +## Install as a plugin + +The reliquary marketplace exposes this plugin as `g4b_ai@reliquary`. + +### From `git.g4b.org` + +Interactive: + +``` +/plugin marketplace add git@git.g4b.org:dirigence/reliquary.git +/plugin install g4b_ai@reliquary +``` + +Or declaratively in a project's `.claude/settings.json`: + +```json +{ + "extraKnownMarketplaces": { + "reliquary": { + "source": { + "source": "git", + "url": "git@git.g4b.org:dirigence/reliquary.git" + } + } + }, + "enabledPlugins": { + "g4b_ai@reliquary": true + } +} +``` + +### From a local clone + +``` +/plugin marketplace add /path/to/reliquary +/plugin install g4b_ai@reliquary +``` + +Or in `settings.json`: + +```json +{ + "extraKnownMarketplaces": { + "reliquary": { + "source": { "source": "local", "path": "/path/to/reliquary" } + } + }, + "enabledPlugins": { "g4b_ai@reliquary": true } +} +``` + +## Fetch individual skills + +If you only want one or two skills (no plugin, no marketplace), copy them straight into a target project's or user-level skills directory. + +User-level (available in every project): + +```sh +git clone git@git.g4b.org:dirigence/reliquary.git /tmp/reliquary +mkdir -p ~/.claude/skills +cp -r /tmp/reliquary/plugins/g4b_ai/skills/workpad ~/.claude/skills/ +cp -r /tmp/reliquary/plugins/g4b_ai/skills/research-tree ~/.claude/skills/ +``` + +Project-level (only the current project): + +```sh +mkdir -p .claude/skills +cp -r /tmp/reliquary/plugins/g4b_ai/skills/workpad .claude/skills/ +``` + +Or symlink instead of copying so the skill stays in sync with the upstream clone: + +```sh +ln -s /tmp/reliquary/plugins/g4b_ai/skills/workpad ~/.claude/skills/workpad +``` + +A skill is just a directory containing a `SKILL.md` β€” no further wiring is needed. + +## Layout + +``` +plugins/g4b_ai/ +β”œβ”€β”€ .claude-plugin/ +β”‚ └── plugin.json +└── skills/ + β”œβ”€β”€ workpad/SKILL.md + β”œβ”€β”€ research-tree/SKILL.md + β”œβ”€β”€ implementation-orchestration/SKILL.md + └── markdown-embedded-svg/SKILL.md +``` diff --git a/skills/implementation-orchestration/SKILL.md b/plugins/g4b_ai/skills/implementation-orchestration/SKILL.md similarity index 100% rename from skills/implementation-orchestration/SKILL.md rename to plugins/g4b_ai/skills/implementation-orchestration/SKILL.md diff --git a/skills/markdown-embedded-svg/SKILL.md b/plugins/g4b_ai/skills/markdown-embedded-svg/SKILL.md similarity index 100% rename from skills/markdown-embedded-svg/SKILL.md rename to plugins/g4b_ai/skills/markdown-embedded-svg/SKILL.md diff --git a/skills/research-tree/SKILL.md b/plugins/g4b_ai/skills/research-tree/SKILL.md similarity index 100% rename from skills/research-tree/SKILL.md rename to plugins/g4b_ai/skills/research-tree/SKILL.md diff --git a/skills/workpad/SKILL.md b/plugins/g4b_ai/skills/workpad/SKILL.md similarity index 100% rename from skills/workpad/SKILL.md rename to plugins/g4b_ai/skills/workpad/SKILL.md