claude-plugins: ship a hyperhive-authored notes-hygiene skill by default
This commit is contained in:
parent
4d885df9ad
commit
bc83fde4ad
8 changed files with 152 additions and 11 deletions
48
nix/packages/claude-plugins.nix
Normal file
48
nix/packages/claude-plugins.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
stdenv,
|
||||
}:
|
||||
|
||||
# hyperhive-authored Claude Code plugin marketplace (source tree at
|
||||
# ../../claude-plugins), shipped as a standalone derivation and spliced
|
||||
# into the *default* `hyperhive.claudeMarketplaces`/`claudePlugins` lists
|
||||
# (nix/agent-modules/claude-settings.nix) as a local marketplace source.
|
||||
# `claude plugin marketplace add` accepts a plain filesystem path (verified:
|
||||
# `claude plugin marketplace add --help` → "Add a marketplace from a URL,
|
||||
# path, or GitHub repo"), and registers it under the marketplace.json's own
|
||||
# `name` field ("hyperhive") rather than the path — so
|
||||
# `<plugin>@hyperhive` is a stable plugin spec regardless of the store
|
||||
# path's hash. The built store path IS the marketplace: no forge repo, no
|
||||
# git remote, no PAT/PR ceremony needed to ship a skill hive-wide.
|
||||
#
|
||||
# Every hive-authored skill lives under its own `plugins/<name>/` subtree
|
||||
# in the source tree; add one there plus a matching entry in
|
||||
# `.claude-plugin/marketplace.json`'s `plugins` list to ship another.
|
||||
#
|
||||
# Pure data: nothing to build, `$out` is the tree as-is (mirrors
|
||||
# ./reference-docs.nix). `cp -r . "$out"` (not `cp -r ./* $out`) because
|
||||
# the marketplace/plugin manifests live under `.claude-plugin/` — a
|
||||
# hidden directory a shell glob (`*`) would silently skip.
|
||||
stdenv.mkDerivation {
|
||||
pname = "hyperhive-claude-plugins";
|
||||
version = "0.1.0";
|
||||
# Narrow src keeps this derivation's input hash decoupled from the rest
|
||||
# of the tree — a skill edit only re-hashes this.
|
||||
src = ../../claude-plugins;
|
||||
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -r . "$out"/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
dontFixup = true;
|
||||
|
||||
meta = {
|
||||
description = "hyperhive-authored Claude Code plugin marketplace (skills shipped hive-wide)";
|
||||
homepage = "https://forge.darkest.space/hyperhive/hyperhive";
|
||||
};
|
||||
}
|
||||
|
|
@ -139,6 +139,11 @@ in
|
|||
# so the binary derivation stays cached when a prompt edit ripples
|
||||
# through.
|
||||
assets = pkgs.callPackage ./assets.nix { };
|
||||
# hyperhive-authored Claude Code plugin marketplace (source tree at
|
||||
# ../../claude-plugins) — a local-path marketplace spliced into the
|
||||
# default `hyperhive.claudeMarketplaces`/`claudePlugins` lists. See
|
||||
# ./claude-plugins.nix for the "why a store path, not a repo" rationale.
|
||||
claude-plugins = pkgs.callPackage ./claude-plugins.nix { };
|
||||
# The repo docs/ markdown tree as a standalone derivation —
|
||||
# agents read it in-container (added as a claude additional
|
||||
# directory) and the website repo reuses it as a flake input,
|
||||
|
|
|
|||
Loading…
Reference in a new issue