Files
agent-skills/bin/agents-config.example.json
T
Miguel Palhas e90137b17c fix(pr-daemon): rate-limit and coalesce hints
Every hint costs the receiving session a full model turn. The daemon sent
one per forge event with no quiet period, so a busy PR produced 20+ in a
day and sometimes repeated a payload verbatim.

Reasons are now banked per PR and role until a hint actually goes out, so
a busy pane or a cooldown delays one but never loses it. After a hint,
the next waits hintCooldownSeconds (default 300) and carries everything
that accumulated. A payload identical to the last is dropped, as is a ci
hint to a land session whose worktree already holds that head commit.

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

175 lines
3.1 KiB
JSON

{
"pollSeconds": 60,
"reconcileSeconds": 120,
"maxSessionsPerTick": 2,
"hintCooldownSeconds": 300,
"reviewProfile": "review",
"group": "pr",
"webhookPort": 7474,
"notifyWaiting": true,
"ledger": "/home/you/.local/state/reviewer/reviewers.jsonl",
"pathRoots": [
"/home/you/code",
"/home/you/work"
],
"forges": {
"gitea": {
"api": "https://git.example.com/api/v1",
"tokenEnv": "REVIEWER_GITEA_TOKEN",
"reviewTokenEnv": "REVIEWER_GITEA_REVIEW_TOKEN",
"webhookSecretEnv": "REVIEWER_GITEA_SECRET",
"self": [
"you",
"you-bot"
]
},
"github": {
"api": "https://api.github.com",
"tokenEnv": "REVIEWER_GITHUB_TOKEN",
"webhookSecretEnv": "REVIEWER_GITHUB_SECRET",
"self": "you"
}
},
"repos": [
{
"forge": "gitea",
"repo": "*",
"mode": "drive",
"tool": "claude",
"selfReview": true
},
{
"forge": "github",
"repo": "acme/webapp",
"mode": "review"
}
],
"agents": [
{
"id": "claude/sonnet@med",
"tool": "claude",
"args": [
"--model",
"sonnet"
],
"roles": [
"blitz"
],
"tiers": [
"execution"
]
},
{
"id": "claude/opus@med",
"tool": "claude",
"args": [
"--model",
"opus",
"--effort",
"medium"
],
"tiers": [
"design"
]
},
{
"id": "claude/opus@high",
"tool": "claude",
"args": [
"--model",
"opus",
"--effort",
"high"
],
"tiers": [
"design",
"subtle"
]
},
{
"id": "pi/gpt5.6@high",
"tool": "pi",
"args": [
"--model",
"openai-codex/gpt-5.6-sol:high"
],
"tiers": [
"design",
"subtle"
]
},
{
"id": "pi/gpt5.6@med",
"tool": "pi",
"args": [
"--model",
"openai-codex/gpt-5.6-sol:medium"
],
"tiers": [
"execution",
"design"
]
},
{
"id": "claude/fable@high",
"tool": "claude",
"args": [
"--model",
"fable",
"--effort",
"high"
],
"tiers": [
"subtle"
]
},
{
"id": "oc/gpt5.6",
"tool": "opencode",
"args": [
"--model",
"openai/gpt-5.6-sol"
],
"roles": [
"review"
]
},
{
"id": "codex/gpt5.6@med",
"tool": "codex",
"args": [
"-c",
"model_reasoning_effort=medium"
],
"roles": [
"review",
"blitz"
],
"tiers": [
"execution",
"design"
]
},
{
"id": "codex/gpt5.6@high",
"tool": "codex",
"args": [
"-c",
"model_reasoning_effort=high"
],
"roles": [
"review",
"blitz"
],
"tiers": [
"design",
"subtle"
]
}
],
"blitz": {
"maxSessions": 2,
"notifyService": "mobile_app_pixel_7_naps"
}
}