.agents/skills/pi-nix-syntax/SKILL.md
Use when converting Pi config/extension/skill setup (Pi settings.json packages, ~/.pi/agent/extensions, git:... sources) into this dotfiles repo's Nix representation (skills-catalog/agent-skills-nix, modules/agents/pi/default.nix home.file links), or converting the other direction.
npx skillsauth add edmundmiller/dotfiles pi-nix-syntaxInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This repo intentionally splits responsibilities:
config/pi/settings.jsonc (rendered to ~/.pi/agent/settings.json).config/pi/extensions/*.ts and are linked into ~/.pi/agent/extensions/ by Nix.packages[].skills anymore; skills are installed via agent-skills-nix (child flake skills/).If you see skills collisions, it usually means skills were enabled both ways.
If the thing you’re converting is a Pi packages entry like:
{
"source": "git:github.com/tmustier/pi-extensions",
"extensions": ["tab-status/tab-status.ts"],
"skills": [],
}
…then in this repo it should generally remain a config/pi/settings.jsonc entry.
Nix only ensures the file gets placed at ~/.pi/agent/settings.json.
Pi-style: “I want this TS file to be a Pi extension.”
Nix-style (this repo):
config/pi/extensions/<name>.tsmodules/agents/pi/default.nix → home-manager.users.<user>.home.file.".pi/agent/extensions/<name>.ts".source = "${configDir}/pi/extensions/<name>.ts";Rule: anything under ~/.pi/agent/extensions/*.ts must default-export a factory.
We do not use config/pi/settings.jsonc packages[].skills for installing skills.
Instead:
config/agents/skills/<skill-name>/SKILL.md.
skills/flake.nix: skills.enableAll = ["local"]).skills/flake.nix:
programs.agent-skills.sources.<src> = { path = inputs.<src>.outPath; ... }programs.agent-skills.skills.explicit.<skillId> = { from = "<src>"; path = "..."; }Rule: avoid nested-symlink collisions by flattening nested IDs (example: skill-creator instead of extending-pi/skill-creator).
Given a Pi-ish request, classify it:
config/pi/settings.jsonc under packages..ts):config/pi/extensions/<name>.ts.home.file link in modules/agents/pi/default.nix.config/agents/skills/<name>/SKILL.md.skills/flake.nix (child flake) and select via skills.explicit.config/pi/settings.jsonc package entries have "skills": [] to avoid collisions.~/.pi/agent/extensions/<x>.ts, then the Pi-side view is simply:~/.pi/agent/extensions/<x>.ts.”settings.json change required.~/.pi/agent/settings.json from config/pi/settings.jsonc, then the Pi-side view is:~/.agents/skills/<name>/SKILL.md.”packages[].skills.config/agents/skills/<name>/SKILL.mdconfig/pi/extensions/<name>.tsexport default function (pi: ExtensionAPI) { ... }modules/agents/pi/default.nix under home.file.development
Read-only Linear issue access via the Linear GraphQL API.
data-ai
## <!-- Purpose: Teach agents fast day-to-day memory browse/search/read/sync workflows in pi-context-repo. --> name: searching-memory description: > Search, browse, and inspect memory quickly in pi-context-repo. Use when asked to find prior notes, inspect memory files, locate preferences, or sync recent memory updates. Trigger phrases: "search memory", "list memory files", "find in memory", "read memory file", "memory status", "sync memory". --- # Searching Memory Use this workflow for fast
development
Comprehensive guide for initializing or reorganizing agent memory into a deeply hierarchical file structure. Use when running /init, when user asks to set up memory, or when memory needs a major reorganization. Trigger phrases: "initialize memory", "set up memory", "populate memory", "build my memory", "memory init".
data-ai
Decomposes and reorganizes agent memory files into focused, single-purpose components. Use when memory has large multi-topic blocks, redundancy, or poor organization. Trigger phrases: "defrag memory", "reorganize memory", "clean up memory files", "split memory blocks".