chore: gardener housekeeping 2026-03-21

This commit is contained in:
openhands 2026-03-21 18:07:37 +00:00
parent 80a64cd3e4
commit b4f1666a80
10 changed files with 15 additions and 13 deletions

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Disinto — Agent Instructions # Disinto — Agent Instructions
## What this repo is ## What this repo is

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Action Agent # Action Agent
**Role**: Execute operational tasks described by action formulas — run scripts, **Role**: Execute operational tasks described by action formulas — run scripts,
@ -12,13 +12,13 @@ issues labeled `action` that have no active tmux session, then spawns
**Key files**: **Key files**:
- `action/action-poll.sh` — Cron scheduler: finds open action issues with no active tmux session, spawns action-agent.sh - `action/action-poll.sh` — Cron scheduler: finds open action issues with no active tmux session, spawns action-agent.sh
- `action/action-agent.sh` — Orchestrator: fetches issue body + prior comments, creates tmux session (`action-{issue_num}`) with interactive `claude`, injects formula prompt with phase protocol, enters `monitor_phase_loop` (shared via `dev/phase-handler.sh`) for CI/review lifecycle or direct completion - `action/action-agent.sh` — Orchestrator: fetches issue body + prior comments, creates tmux session (`action-{project}-{issue_num}`) with interactive `claude`, injects formula prompt with phase protocol, enters `monitor_phase_loop` (shared via `dev/phase-handler.sh`) for CI/review lifecycle or direct completion
**Session lifecycle**: **Session lifecycle**:
1. `action-poll.sh` finds open `action` issues with no active tmux session. 1. `action-poll.sh` finds open `action` issues with no active tmux session.
2. Spawns `action-agent.sh <issue_num>`. 2. Spawns `action-agent.sh <issue_num>`.
3. Agent creates Matrix thread, exports `MATRIX_THREAD_ID` so Claude's output streams to the thread via a Stop hook (`on-stop-matrix.sh`). 3. Agent creates Matrix thread, exports `MATRIX_THREAD_ID` so Claude's output streams to the thread via a Stop hook (`on-stop-matrix.sh`).
4. Agent creates tmux session `action-{issue_num}`, injects prompt (formula + prior comments + phase protocol). 4. Agent creates tmux session `action-{project}-{issue_num}`, injects prompt (formula + prior comments + phase protocol).
5. Agent enters `monitor_phase_loop` (shared with dev-agent via `dev/phase-handler.sh`). 5. Agent enters `monitor_phase_loop` (shared with dev-agent via `dev/phase-handler.sh`).
6. **Path A (git output):** Claude pushes branch → `PHASE:awaiting_ci` → handler creates PR, polls CI → injects failures → Claude fixes → push → re-poll → CI passes → `PHASE:awaiting_review` → handler polls reviews → injects REQUEST_CHANGES → Claude fixes → approved → merge → cleanup. 6. **Path A (git output):** Claude pushes branch → `PHASE:awaiting_ci` → handler creates PR, polls CI → injects failures → Claude fixes → push → re-poll → CI passes → `PHASE:awaiting_review` → handler polls reviews → injects REQUEST_CHANGES → Claude fixes → approved → merge → cleanup.
7. **Path B (no git output):** Claude posts results as comment, closes issue → `PHASE:done` → handler cleans up (kill session, docker compose down, remove temp files). 7. **Path B (no git output):** Claude posts results as comment, closes issue → `PHASE:done` → handler cleans up (kill session, docker compose down, remove temp files).

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Dev Agent # Dev Agent
**Role**: Implement issues autonomously — write code, push branches, address **Role**: Implement issues autonomously — write code, push branches, address

View file

@ -1,8 +1,10 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Gardener Agent # Gardener Agent
**Role**: Backlog grooming — detect duplicate issues, missing acceptance **Role**: Backlog grooming — detect duplicate issues, missing acceptance
criteria, oversized issues, stale issues, and circular dependencies. Invoke criteria, oversized issues, stale issues, and circular dependencies. Enforces
the quality gate: strips the `backlog` label from issues that lack acceptance
criteria checkboxes (`- [ ]`) or an `## Affected files` section. Invokes
Claude to fix or escalate to a human via Matrix. Claude to fix or escalate to a human via Matrix.
**Trigger**: `gardener-run.sh` runs 4x/day via cron. It creates a tmux **Trigger**: `gardener-run.sh` runs 4x/day via cron. It creates a tmux

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Shared Helpers (`lib/`) # Shared Helpers (`lib/`)
All agents source `lib/env.sh` as their first action. Additional helpers are All agents source `lib/env.sh` as their first action. Additional helpers are

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Planner Agent # Planner Agent
**Role**: Strategic planning, executed directly from cron via tmux + Claude. **Role**: Strategic planning, executed directly from cron via tmux + Claude.

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Predictor Agent # Predictor Agent
**Role**: Infrastructure pattern detection (the "goblin"). Runs a 3-step **Role**: Infrastructure pattern detection (the "goblin"). Runs a 3-step

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Review Agent # Review Agent
**Role**: AI-powered PR review — post structured findings and formal **Role**: AI-powered PR review — post structured findings and formal

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Supervisor Agent # Supervisor Agent
**Role**: Health monitoring and auto-remediation, executed as a formula-driven **Role**: Health monitoring and auto-remediation, executed as a formula-driven

View file

@ -1,4 +1,4 @@
<!-- last-reviewed: 038581e555403586f4595f8a5f77d7dbb311779b --> <!-- last-reviewed: 80a64cd3e4d2836bfab3c46230a780e3e233125d -->
# Vault Agent # Vault Agent
**Role**: Safety gate for dangerous or irreversible actions. Actions enter a **Role**: Safety gate for dangerous or irreversible actions. Actions enter a