feat(nix): ship the pr-daemon, hourlog and week-review units
The units ran from nixos-config while the scripts they execute live here, so a fix like KillMode had to be made in the repo that does not contain the daemon. They are defined here now and each machine opts in with programs.agentSkills.<name>.enable, which keeps the property that nothing starts a session unless a host asks for it. ExecStart still points at the checkout, not the store: an edit should take effect on restart rather than needing a flake bump. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,6 +45,19 @@ imports = [ inputs.agent-skills.homeModules.default ];
|
||||
|
||||
`recursive = true` links files individually, so machine-local skills can coexist in the same dir. `nixos-rebuild switch` to apply/update.
|
||||
|
||||
The module also carries the user units — `pr-daemon`, `hourlog`, `week-review` — so each lives next to the script it runs. All three are off by default, because every one of them starts an agent session and a second machine enabling them would run the same job twice:
|
||||
|
||||
```nix
|
||||
programs.agentSkills = {
|
||||
machine = "yolo";
|
||||
prDaemon.enable = true;
|
||||
hourlog.enable = true;
|
||||
weekReview.enable = true;
|
||||
};
|
||||
```
|
||||
|
||||
`repoPath` (default `%h/tea/agent-skills`) is what the units execute from. Deliberately a checkout rather than a store path: the daemon and the scripts change far more often than the flake input is bumped, so a restart is enough to pick up an edit. The `systemd/` unit files stay for non-Nix machines, where `link.sh` installs them.
|
||||
|
||||
## Shared machine, many sessions
|
||||
|
||||
Several autonomous runs share one box. `skills/linear-common/scripts/gate.sh` is a machine-wide semaphore for heavy commands (full test suites, whole-project builds): bounded slots, memory + CPU cap via a systemd user scope, pinned build/test parallelism. Skills run scoped checks in the inner loop and put only the once-per-push full suite through the gate; exit 75 means it never ran and CI takes over. Policy lives in `linear-common/COMMON.md` under "Local verification budget".
|
||||
|
||||
Reference in New Issue
Block a user