Files
agent-skills/systemd/pr-daemon.service
T
Miguel PalhasandClaude Opus 5 787f133fdc feat: PR daemon + reviewer/author skill split
One systemd daemon watches GitHub and Gitea and routes each PR to an aoe
session: `land` for PRs you authored, `review-pr` for everyone else's.
It reads metadata only and sends a single inert hint line, so untrusted
PR text never passes through the thing that types into agent prompts.

Routing is derived from `aoe list --json --all` by worktree branch, so
no claim files and no daemon database. Dedupe stays in the session via
`pr-<N>-seen`, which makes hints idempotent and a swallowed send
self-healing.

`land` loses its watcher machinery to the daemon and keeps the policy
and per-event handlers; `pr-common` holds what both skills share.

Review sessions run non-yolo without trusted hooks and never run the
branch's code.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 18:51:43 +01:00

23 lines
817 B
Desktop File

[Unit]
Description=PR daemon — watches GitHub/Gitea PRs and routes them to aoe sessions
Documentation=https://git.naps.pt/yolo/agent-skills
After=network.target
ConditionPathExists=%h/.config/reviewer/config.json
ConditionPathExists=%h/.config/reviewer/env
# MUST stay 0: at RestartSec=5 a fast-crashing daemon burns the default
# 5-starts-per-10s budget and systemd parks the unit in `failed` until a
# manual `systemctl --user reset-failed`.
StartLimitIntervalSec=0
[Service]
Type=simple
WorkingDirectory=%h
Environment=PATH=%h/.local/bin:%h/.nix-profile/bin:/etc/profiles/per-user/naps62/bin:/run/current-system/sw/bin:/usr/local/bin:/usr/bin:/bin
EnvironmentFile=%h/.config/reviewer/env
ExecStart=bun %h/tea/yolo/agent-skills/bin/reviewer-poll.ts
Restart=always
RestartSec=5
[Install]
WantedBy=default.target