48 lines
1.8 KiB
Nix
48 lines
1.8 KiB
Nix
{
|
|
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";
|
|
};
|
|
}
|