feat(skills): add nix style guidance #54

Merged
alexion merged 1 commits from feat/nix-style-skill into main 2026-09-16 11:30:03 -04:00
5 changed files with 89 additions and 0 deletions
Showing only changes of commit 8154feba5a - Show all commits

21
.pi/prompts/review-nix.md Normal file
View File

@@ -0,0 +1,21 @@
---
description: Review Nix changes against repository Nix style rules
argument-hint: "[target]"
---
Use the `nix-style` skill.
Audit ${ARGUMENTS:-the staged diff} for violations of the repository Nix style rules.
Report only actionable findings.
Order findings by severity.
Do not report preferences unless a loaded rule states them.
Use this format for each finding:
```text
`path:line`: Finding title.
Summary: why the code breaks the rule
Fix: suggested fix
```
It is acceptable to report no findings when the reviewed Nix already follows the loaded rules.

1
.pi/skills/nix-style Symbolic link
View File

@@ -0,0 +1 @@
../../src/skills/nix-style

View File

@@ -0,0 +1,17 @@
# Rule format
Use this structure for each rule:
```md
## Rule title
### Rule
State enforceable instructions.
### Rationale
Explain why the rule exists.
```
Add `### Examples` only when examples clarify the rule.

View File

@@ -0,0 +1,37 @@
---
name: nix-style
description: Use when creating, editing, or reviewing Nix files in this repository.
---
# nix-style
Use this skill as the source of truth for repository Nix conventions.
## Load rules
Read every Markdown file under [`rules/`](rules/) before applying this skill.
Discover rule files from the skill source:
```bash
find src/skills/nix-style/rules -maxdepth 1 -type f -name '*.md' -print | sort
```
Finish when all discovered rule files have been read.
## Apply rules
Apply the loaded rules when editing or reviewing Nix files.
When loaded rules conflict, follow the most specific rule.
After editing Nix files, run:
```bash
nix run .#fix
```
Finish when the Nix change follows the loaded rules.
## Maintain rules
When adding or changing files under [`rules/`](rules/), read [`RULE-FORMAT.md`](RULE-FORMAT.md) first.
Finish when the changed rule files follow that format.

View File

@@ -0,0 +1,13 @@
# Flake rules
## Keep `flake.nix` as flake wiring
### Rule
Add flake inputs in `flake.nix`.
Put new flake output implementation in `src/dotfiles/default.nix`.
Use `flake.nix` to pass inputs into that implementation.
### Rationale
This keeps dependency declarations separate from output logic.