From 0448f9cc010359f986b5fb89498f5ae066829b5e Mon Sep 17 00:00:00 2001 From: Defame1297 Date: Sun, 20 Sep 2026 19:39:08 +0000 Subject: [PATCH] feat(onedev): redistribute TOD's agent skills through a plugin wrapper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OneDev ships TOD, an official CLI, and eight SKILL.md files alongside it. apm installs raw SKILL.md sources straight from a git repo, so those skills need no reauthoring — but a `marketplace.packages` entry takes a local `source:` path, so a third-party repo cannot be listed for redistribution on its own. plugins/onedev is that wrapper. It carries no primitives yet: it pins code.onedev.io/onedev/tod#v4.3.4 so consumers installing `onedev` from the holocron marketplace pick up TOD's eight skills transitively, and it is where this repo's own OneDev skills and orchestrator agent will live once there is a gap worth filling. The pin is deliberate. The six first-party dependencies stay unpinned for default-branch parity because they are this repo's own content; tracking a third-party project's main would import an outside project's drift instead. Impact: root apm.yml consumes the wrapper by git+path, so `apm install` does not resolve until this is on the remote's main — including the copy kyberforge's SessionStart hook runs on launch. Accepted deliberately; this merges immediately. Gitea remains the tracker of record and ADR-0007 is untouched. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01NwD8Egs5r4ndqeFLmhusX2 --- .claude-plugin/marketplace.json | 7 +++++ apm.yml | 16 +++++++++++ plugins/onedev/apm.yml | 47 +++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 plugins/onedev/apm.yml diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index c8c2d32..916aea0 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -36,6 +36,13 @@ "category": "Version Control", "source": "./plugins/gitea" }, + { + "name": "onedev", + "description": "Skills and agents for working with a OneDev forge through the TOD CLI — the forge's own objects, as distinct from the local git clone.", + "version": "0.1.0", + "category": "Version Control", + "source": "./plugins/onedev" + }, { "name": "core", "description": "Skills for authoring and auditing a repo's AGENTS.md and the provider adapter files that defer to it.", diff --git a/apm.yml b/apm.yml index 8cf85f3..9791d8b 100644 --- a/apm.yml +++ b/apm.yml @@ -28,6 +28,18 @@ dependencies: path: plugins/kyberforge - git: git@git.dev.rkdr.net:Defame1297/holocron.git path: plugins/lint + # TOD's skills arrive transitively through this wrapper rather than as a + # direct entry, so the marketplace and this repo consume onedev by the same + # path. The pin lives in plugins/onedev/apm.yml: third-party content is + # pinned, unlike the six first-party entries above, which stay unpinned for + # default-branch parity. + # + # Resolves only once plugins/onedev is on the remote's main — until then + # `apm install` fails, which includes the copy kyberforge's SessionStart + # hook runs on launch. Accepted deliberately: this branch is merging + # immediately. + - git: git@git.dev.rkdr.net:Defame1297/holocron.git + path: plugins/onedev mcp: [] # Turns apm's executable-trust gate ON. Without this block the gate is disabled @@ -97,6 +109,10 @@ marketplace: source: ./plugins/gitea category: Version Control + - name: onedev + source: ./plugins/onedev + category: Version Control + - name: core source: ./plugins/core category: Productivity diff --git a/plugins/onedev/apm.yml b/plugins/onedev/apm.yml new file mode 100644 index 0000000..f3bab01 --- /dev/null +++ b/plugins/onedev/apm.yml @@ -0,0 +1,47 @@ +name: onedev +version: 0.1.0 +description: Skills and agents for working with a OneDev forge through the TOD CLI — the forge's own objects, as distinct from the local git clone. +author: + name: Defame1297 + email: defame1297@rkdr.net + url: https://git.dev.rkdr.net/Defame1297/ +license: MIT +homepage: https://git.dev.rkdr.net/Defame1297/holocron/src/branch/main/plugins/onedev +repository: https://git.dev.rkdr.net/Defame1297/holocron/src/branch/main/plugins/onedev +keywords: + - onedev + - tod + - issues + - pulls + - builds + - iterations + +# Constrains what .apm/ may contain: instructions, skill, hybrid, or prompts +type: hybrid + +targets: + - claude + - copilot + - codex + +# "auto" publishes the authoritative local source layout, or list explicit +# repo paths to define the complete publication set. +includes: auto + +# This package currently carries no primitives of its own — it exists so the +# marketplace can redistribute upstream TOD. `marketplace.packages` entries +# take `source: ./plugins/` (a local path), so a third-party git repo +# cannot be listed directly; a consumer installing `onedev` from the holocron +# marketplace picks up TOD's eight skills transitively through this entry. +# +# Pinned on purpose, unlike the six first-party dependencies in the root +# apm.yml. Those are unpinned for default-branch parity because they are this +# repo's own published content; TOD is third-party, so tracking its `main` +# would import someone else's drift. Bump this tag deliberately. +dependencies: + apm: + - code.onedev.io/onedev/tod#v4.3.4 + mcp: [] +devDependencies: + apm: [] +scripts: {} -- 2.43.0