From 3166877839ffbe095edd700da6c562e8446924eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabor=20K=C3=B6rber?= Date: Sat, 30 May 2026 15:19:23 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Add=20Codex=20marketplace=20meta?= =?UTF-8?q?data?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/plugins/marketplace.json | 56 ++++++++++++++++++++ .codex/config.toml | 16 ++++++ AGENTS.md | 15 ++++++ README.md | 25 +++++++++ plugins/dioxus/.codex-plugin/plugin.json | 22 ++++++++ plugins/g4b_ai/.codex-plugin/plugin.json | 23 ++++++++ plugins/gitea/.codex-plugin/plugin.json | 23 ++++++++ plugins/project-uv/.codex-plugin/plugin.json | 22 ++++++++ 8 files changed, 202 insertions(+) create mode 100644 .agents/plugins/marketplace.json create mode 100644 .codex/config.toml create mode 100644 AGENTS.md create mode 100644 plugins/dioxus/.codex-plugin/plugin.json create mode 100644 plugins/g4b_ai/.codex-plugin/plugin.json create mode 100644 plugins/gitea/.codex-plugin/plugin.json create mode 100644 plugins/project-uv/.codex-plugin/plugin.json diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 0000000..1cab41e --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,56 @@ +{ + "name": "reliquary", + "interface": { + "displayName": "Reliquary" + }, + "plugins": [ + { + "name": "g4b_ai", + "source": { + "source": "local", + "path": "./plugins/g4b_ai" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Productivity" + }, + { + "name": "dioxus", + "source": { + "source": "local", + "path": "./plugins/dioxus" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Coding" + }, + { + "name": "project-uv", + "source": { + "source": "local", + "path": "./plugins/project-uv" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Coding" + }, + { + "name": "gitea", + "source": { + "source": "local", + "path": "./plugins/gitea" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Productivity" + } + ] +} diff --git a/.codex/config.toml b/.codex/config.toml new file mode 100644 index 0000000..a6d8b90 --- /dev/null +++ b/.codex/config.toml @@ -0,0 +1,16 @@ +[marketplaces.claude-plugins-official] +source_type = "git" +source = "https://github.com/anthropics/claude-plugins-official.git" + +[marketplaces.reliquary] +source_type = "git" +source = "git@git.g4b.org:dirigence/reliquary.git" + +[plugins."superpowers@claude-plugins-official"] +enabled = true + +[plugins."g4b_ai@reliquary"] +enabled = true + +[plugins."gitea@reliquary"] +enabled = true diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..d352f45 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,15 @@ +# reliquary - repo-level instructions + +This repo is a marketplace, not a single project. Each plugin under `plugins/` is self-contained; its own agent instructions, if present, govern work inside it. + +## Commit messages + +Use gitmoji prefixes. The full convention, including the custom agent-file prefix and initial-commit rule, lives in [`docs/workpad/specs/commit-conventions.md`](./docs/workpad/specs/commit-conventions.md). Read it before committing. + +## Development: Use g4b_ai skills + +See `plugins/g4b_ai/skills` and use those skills in this repository when developing. + +## Concepting: 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 819509e..58780de 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,26 @@ From a local clone: Each plugin's own README documents its skills and any per-plugin install paths. +## Install as a Codex marketplace + +Reliquary also publishes Codex-native plugin metadata via `.agents/plugins/marketplace.json` and per-plugin `.codex-plugin/plugin.json` manifests. + +From the git marketplace: + +```sh +codex plugin marketplace add git@git.g4b.org:dirigence/reliquary.git +codex plugin add g4b_ai@reliquary +``` + +From a local clone: + +```sh +codex plugin marketplace add /path/to/reliquary +codex plugin add g4b_ai@reliquary +``` + +A project can mirror the checked-in `.codex/config.toml` shape to prefer Codex-native marketplace and plugin declarations. + ## ✂️ Grab pieces independently A skill is just a folder containing `SKILL.md`. You don't need the plugin or marketplace machinery to use one: @@ -67,6 +87,11 @@ ln -s /tmp/reliquary/plugins/g4b_ai/skills/workpad ~/.claude/skills/workpad ``` reliquary/ +├── .agents/ +│ └── plugins/ +│ └── marketplace.json # Codex marketplace listing +├── .codex/ +│ └── config.toml # Codex project plugin setup example ├── .claude-plugin/ │ └── marketplace.json # the marketplace listing ├── plugins/ diff --git a/plugins/dioxus/.codex-plugin/plugin.json b/plugins/dioxus/.codex-plugin/plugin.json new file mode 100644 index 0000000..eec61f2 --- /dev/null +++ b/plugins/dioxus/.codex-plugin/plugin.json @@ -0,0 +1,22 @@ +{ + "name": "dioxus", + "version": "0.1.0", + "description": "Dioxus Rust UI library reference skills, pinned per Dioxus version (currently 0.7).", + "author": { + "name": "Gabor Korber", + "email": "gab@g4b.org" + }, + "skills": "./skills/", + "interface": { + "displayName": "Dioxus", + "shortDescription": "Per-version Dioxus Rust UI reference skills.", + "longDescription": "Dioxus 0.7+ API reference for Rust UI work, including components, signals, RSX, assets, routing, fullstack, and hydration.", + "developerName": "Gabor Korber", + "category": "Coding", + "capabilities": ["Skills"], + "defaultPrompt": [ + "Use Dioxus 0.7 patterns for this Rust UI change.", + "Check this Dioxus component against 0.7 APIs." + ] + } +} diff --git a/plugins/g4b_ai/.codex-plugin/plugin.json b/plugins/g4b_ai/.codex-plugin/plugin.json new file mode 100644 index 0000000..75cc677 --- /dev/null +++ b/plugins/g4b_ai/.codex-plugin/plugin.json @@ -0,0 +1,23 @@ +{ + "name": "g4b_ai", + "version": "0.1.0", + "description": "Gabor's personal Codex skills: workpad, research-tree, implementation-orchestration, markdown-embedded-svg.", + "author": { + "name": "Gabor Korber", + "email": "gab@g4b.org" + }, + "skills": "./skills/", + "interface": { + "displayName": "g4b_ai", + "shortDescription": "Personal project workflow skills for Codex.", + "longDescription": "Workpad placement, research orchestration, implementation orchestration, and Markdown SVG guidance.", + "developerName": "Gabor Korber", + "category": "Productivity", + "capabilities": ["Skills"], + "defaultPrompt": [ + "Use workpad for this project's planning notes.", + "Research this as a dependency tree.", + "Plan and execute this implementation." + ] + } +} diff --git a/plugins/gitea/.codex-plugin/plugin.json b/plugins/gitea/.codex-plugin/plugin.json new file mode 100644 index 0000000..af10b0e --- /dev/null +++ b/plugins/gitea/.codex-plugin/plugin.json @@ -0,0 +1,23 @@ +{ + "name": "gitea", + "version": "0.1.0", + "description": "Gitea issue integration: fetch/create/list/close tickets, post comments, scaffold labels. Workpad-aware.", + "author": { + "name": "Gabor Korber", + "email": "gab@g4b.org" + }, + "skills": "./skills/", + "interface": { + "displayName": "Gitea", + "shortDescription": "Work with Gitea tickets from Codex.", + "longDescription": "Fetch, create, list, close, and comment on Gitea issues using self-contained uv scripts, with workpad-aware workflows.", + "developerName": "Gabor Korber", + "category": "Productivity", + "capabilities": ["Skills", "Scripts"], + "defaultPrompt": [ + "Fetch this Gitea ticket for context.", + "Create a Gitea issue from this goal.", + "Post this report as a Gitea comment." + ] + } +} diff --git a/plugins/project-uv/.codex-plugin/plugin.json b/plugins/project-uv/.codex-plugin/plugin.json new file mode 100644 index 0000000..d902742 --- /dev/null +++ b/plugins/project-uv/.codex-plugin/plugin.json @@ -0,0 +1,22 @@ +{ + "name": "project-uv", + "version": "0.1.0", + "description": "Detects how uv is configured in the current Python project and advertises the right invocation patterns.", + "author": { + "name": "Gabor Korber", + "email": "gab@g4b.org" + }, + "skills": "./skills/", + "interface": { + "displayName": "project-uv", + "shortDescription": "Probe uv project layout before running Python commands.", + "longDescription": "Context-aware uv project tooling detection for Python repositories. Probes project layout, lockfiles, and script declarations before suggesting uv commands.", + "developerName": "Gabor Korber", + "category": "Coding", + "capabilities": ["Skills"], + "defaultPrompt": [ + "Probe this Python project's uv setup.", + "Find the right uv command for this repo." + ] + } +}