]> git.giacomolli.uk - onechat/commit
Add Nix-built Go program and agent rules
authorAnderson A. Giacomolli <agiacomolli@gmail.com>
Fri, 6 Nov 2026 12:50:06 +0000 (09:50 -0300)
committerAnderson A. Giacomolli <agiacomolli@gmail.com>
Fri, 6 Nov 2026 12:50:06 +0000 (09:50 -0300)
commit80fa33c0fd65e4110f88f0cab9b19ca26c27d1f6
treeb961c89369917c004711dec2bb621e02945a7cf2
Add Nix-built Go program and agent rules

OneChat is a Go program that prints its name. A Nix flake pins the Go
toolchain and every tool, builds the program with nix build, and runs
the binary in an install check. The development shell supplies the
formatters, the linters, and a pinned Vim, and it turns on the commit
message hook.

AGENTS.md holds the rules that apply to every task, such as the Nix
environment, the current-state-only rule, and the rule against revealing
infrastructure. The skills in .agents/skills hold the procedures for Go
code, documentation and comments, checks, and commits, so an agent loads
each one only for the task that needs it.

bin/format and bin/check cover every Go, Nix, RST, and Markdown file
that Git knows about. bin/reflow wraps comment paragraphs the same way
on every machine because it does not use a personal Vim configuration.
CLAUDE.md and .claude/skills are links to the same files, so Claude Code
reads one copy of the rules and skills.
21 files changed:
.agents/skills/check/SKILL.md [new file with mode: 0644]
.agents/skills/commit/SKILL.md [new file with mode: 0644]
.agents/skills/docs/SKILL.md [new file with mode: 0644]
.agents/skills/go-code/SKILL.md [new file with mode: 0644]
.claude/skills [new symlink]
.envrc [new file with mode: 0644]
.githooks/commit-msg [new file with mode: 0755]
.gitignore [new file with mode: 0644]
.mdformat.toml [new file with mode: 0644]
AGENTS.md [new file with mode: 0644]
CLAUDE.md [new symlink]
README.rst [new file with mode: 0644]
bin/check [new file with mode: 0755]
bin/format [new file with mode: 0755]
bin/reflow [new file with mode: 0755]
flake.lock [new file with mode: 0644]
flake.nix [new file with mode: 0644]
go.mod [new file with mode: 0644]
main.go [new file with mode: 0644]
nix/devshell.nix [new file with mode: 0644]
nix/package.nix [new file with mode: 0644]