Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 0 additions & 25 deletions .claude/skills/orama-integration/SKILL.md

This file was deleted.

51 changes: 0 additions & 51 deletions .claude/skills/release-please/SKILL.md

This file was deleted.

5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -181,3 +181,8 @@ dist
.direnv
!.envrc

# Agent skills (managed by Nix via agent-skills-nix)
.claude/skills
.codex/skills
.opencode/skills

2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Rules and Skills Structure

- **Rules** (`.claude/rules/`): Automatically loaded based on file paths. Source of truth for project conventions.
- **Skills** (`.claude/skills/`): Manually invoked for specific integrations.
- **Skills** (`.claude/skills/`): Managed by Nix via [agent-skills-nix](https://github.com/Kyure-A/agent-skills-nix). Skills are sourced from [StackOneHQ/skills](https://github.com/StackOneHQ/skills) and installed automatically when entering `nix develop`.
- **Cursor rules** (`.cursor/rules/`): Symlinks to `.claude/rules/` for consistency.

## Available Rules
Expand Down
68 changes: 64 additions & 4 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 51 additions & 3 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,67 @@

inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";

# Agent skills management
agent-skills.url = "github:Kyure-A/agent-skills-nix";
agent-skills.inputs.nixpkgs.follows = "nixpkgs";

# StackOne skills repository (non-flake)
stackone-skills.url = "github:StackOneHQ/skills";
stackone-skills.flake = false;
};

outputs =
{ nixpkgs, ... }:
{
nixpkgs,
agent-skills,
stackone-skills,
...
}:
let
systems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
forAllSystems = nixpkgs.lib.genAttrs systems;

# Agent skills configuration
agentLib = agent-skills.lib.agent-skills;
sources = {
stackone = {
path = stackone-skills;
subdir = ".";
};
};
catalog = agentLib.discoverCatalog sources;
allowlist = agentLib.allowlistFor {
inherit catalog sources;
enable = [
"orama-integration"
"release-please"
];
};
selection = agentLib.selectSkills {
inherit catalog allowlist sources;
skills = { };
};
in
{
devShells = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
bundle = agentLib.mkBundle { inherit pkgs selection; };
# Use symlink-tree instead of copy-tree for skills
localTargets = {
claude = {
dest = ".claude/skills";
structure = "symlink-tree";
enable = true;
systems = [ ];
};
};
in
{
default = pkgs.mkShellNoCC {
Expand Down Expand Up @@ -47,13 +91,17 @@

# Install dependencies only if node_modules/.pnpm/lock.yaml is older than pnpm-lock.yaml
if [ ! -f node_modules/.pnpm/lock.yaml ] || [ pnpm-lock.yaml -nt node_modules/.pnpm/lock.yaml ]; then
echo "📦 Installing dependencies..."
echo "Installing dependencies..."
pnpm install --frozen-lockfile
fi

# Install lefthook git hooks
lefthook install > /dev/null 2>&1
'';
''
+ agentLib.mkShellHook {
inherit pkgs bundle;
targets = localTargets;
};
};
}
);
Expand Down
Loading