From d21a5752349e7382f1929422d0aa3cd1eb52ede4 Mon Sep 17 00:00:00 2001 From: Nikolai Emil Damm Date: Sat, 18 Jul 2026 09:11:28 +0200 Subject: [PATCH] feat(repositories): declare discovery topics for the agent libraries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both agent-skills and agent-plugins carried ZERO GitHub topics, so neither appeared in any topic-based browse or directory crawl. `agent-skills` is the canonical topic convention (10,416 public repos; anthropics/skills, github/awesome-copilot and fluxcd/agent-skills all carry it) and `claude-code-plugin` is its plugin-side counterpart (4,230 repos). The topic was never applied to agent-skills because `gh skill publish` only offers to add it on its INTERACTIVE path — cd.yaml calls it as `gh skill publish --tag "$TAG"`, which skips that step entirely. Also corrects two descriptions: - agent-plugins referenced `devantler-tech/skills`, a repo name that no longer exists after the rename to `agent-skills`. - agent-skills read as Copilot-only, contradicting the completed tool-neutral rescope; the skills are agentskills.io-spec and agent-neutral. Verified: `topics` is present in the live Repository CRD schema (repo.github.m.upbound.io/v1alpha1) and 8 sibling repo CRs already use it; `kubectl kustomize deploy/` builds clean. --- deploy/repositories/agent-plugins.yaml | 14 +++++++++++--- deploy/repositories/agent-skills.yaml | 16 +++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/deploy/repositories/agent-plugins.yaml b/deploy/repositories/agent-plugins.yaml index 1690053..d88975a 100644 --- a/deploy/repositories/agent-plugins.yaml +++ b/deploy/repositories/agent-plugins.yaml @@ -10,8 +10,9 @@ metadata: crossplane.io/external-name: agent-plugins spec: # Squash-only merge policy + webCommitSignoffRequired come from the shared - # patch; description is declared here so the config is AUTHORITATIVE for it - # (previously LateInitialized); everything else is adopted via LateInitialize. + # patch; description and topics are declared here so the config is + # AUTHORITATIVE for them (description was previously LateInitialized, topics + # were unset); everything else is adopted via LateInitialize. managementPolicies: - Observe - Create @@ -19,7 +20,14 @@ spec: - LateInitialize forProvider: name: agent-plugins - description: "Industry-standard agent-plugin marketplace — bundles curated skills from devantler-tech/skills into category-based plugins for VS Code, GitHub Copilot CLI, and Claude Code (dual manifests)." + # Fixes a stale repo reference: `devantler-tech/skills` was renamed to + # `devantler-tech/agent-skills`, so the old description pointed at a name + # that no longer exists. Also names the bundled MCP servers and agents — + # the marketplace is deliberately not skills-only. + description: "Tool-neutral agent-plugin marketplace — bundles curated skills, MCP servers and agents from devantler-tech/agent-skills into category plugins for VS Code, GitHub Copilot CLI, and Claude Code" + # Discovery surface — the repo carried no topics at all, so it was invisible + # to every topic-based browse and directory crawl. + topics: ["agent-plugins", "agent-skills", "ai-agents", "claude-code", "claude-code-marketplace", "claude-code-plugin", "claude-plugin", "github-copilot", "plugin-marketplace", "vscode"] providerConfigRef: kind: ProviderConfig name: default diff --git a/deploy/repositories/agent-skills.yaml b/deploy/repositories/agent-skills.yaml index 3713ac7..e7f0e97 100644 --- a/deploy/repositories/agent-skills.yaml +++ b/deploy/repositories/agent-skills.yaml @@ -11,8 +11,9 @@ metadata: crossplane.io/external-name: agent-skills spec: # Squash-only merge policy + webCommitSignoffRequired come from the shared - # patch; description is declared here so the config is AUTHORITATIVE for it - # (previously LateInitialized); everything else is adopted via LateInitialize. + # patch; description and topics are declared here so the config is + # AUTHORITATIVE for them (description was previously LateInitialized, topics + # were unset); everything else is adopted via LateInitialize. managementPolicies: - Observe - Create @@ -20,7 +21,16 @@ spec: - LateInitialize forProvider: name: agent-skills - description: "Generic Copilot / agent skills, installable via gh skill" + # De-Copilot-branded: these skills are agent-neutral (agentskills.io spec) + # and install into Claude Code, Cursor, Codex and Gemini CLI as well, via + # either `gh skill install` or `npx skills add`. The old wording undersold + # that and read as Copilot-only. + description: "Agent-neutral skills for Claude Code, Copilot, Cursor and Codex — install with `gh skill install` or `npx skills add`" + # Discovery surface. `gh skill publish --tag` runs non-interactively in + # cd.yaml and therefore SKIPS the interactive "add the agent-skills topic" + # step, so the canonical topic was never applied — this declares it instead. + # The rest are the terms users actually browse/search by. + topics: ["agent-skills", "agent-skill", "ai-agents", "claude-code", "claude-skill", "codex", "cursor", "github-copilot", "gitops", "kubernetes", "skills"] providerConfigRef: kind: ProviderConfig name: default