Compare commits

...

2 Commits

Author SHA1 Message Date
HAL9000 746db6e5bc docs(spec): clarify default global automation profile is supervised per ADR-017
Aligns specification.md with ADR-017 which specifies supervised as the
default global automation profile. Resolves three-way contradiction between
ADR-017, reference docs, and implementation. Closes #9152.

[AUTO-ARCH-13]
2026-04-15 01:00:08 +00:00
HAL9000 8f67b29191 fix(agents): make bug-hunt-pool-supervisor tracking non-blocking to prevent initialization hangs 2026-04-15 01:00:07 +00:00
2 changed files with 14 additions and 10 deletions
+2 -1
View File
@@ -95,7 +95,7 @@ Each cycle:
4. **Monitor workers.** Count active workers, check for stuck sessions.
5. **Update tracking.** Every 3 cycles, create a status tracking issue via `automation-tracking-manager` with prefix `AUTO-BUG-POOL`.
5. **Update tracking (non-blocking).** Every 3 cycles, attempt to create a status tracking issue via `automation-tracking-manager` with prefix `AUTO-BUG-POOL`. This step is **best-effort** — if the call does not complete within a reasonable time or fails, skip it and continue to the next cycle. **Never block the main loop waiting for tracking.** Tracking is informational only; the supervisor's core function (module scanning and worker dispatch) must continue regardless.
## Finding Validation Gate
@@ -130,3 +130,4 @@ Supervisor: Bug Hunt Pool | Agent: bug-hunt-pool-supervisor
7. **Apply labels via `forgejo-label-manager`.** Never apply labels directly or using the Forgejo MCP/task. All label operations must go through `forgejo-label-manager`.
8. **Exhaustive pagination for all list results.** Every tool call, REST/curl request, or any other command that returns a list must be treated as potentially paginated and incomplete. Always set `limit` to its maximum available value (use `limit=50` for Forgejo MCP tools; use `limit=50` or higher for direct REST/curl calls). After each list response, check whether the number of returned items equals the page size — if so, there are likely more results; fetch the next page (`page=2`, `page=3`, …) and continue until receiving a partial page. Never assume the first response is the complete result. This rule applies to every list-returning call without exception. *Examples specific to this agent (not exhaustive):* `forgejo_list_repo_issues` (default 20 — use `limit=50` and paginate to check for all existing bug issues before filing duplicates); `forgejo_list_repo_pull_requests` (same — check all open PRs that may already address a discovered bug).
9. **Tracking is non-blocking.** The `automation-tracking-manager` call in step 5 must never block the main loop. If it hangs or fails, skip it and proceed. Core functionality (module mapping, worker dispatch, monitoring) takes priority over status reporting.
+12 -9
View File
@@ -17037,9 +17037,9 @@ List all available automation profiles (built-in and custom).
╭─ Automation Profiles ──────────────────────────────────────────────────────────╮
│ <span style="color: cyan; font-weight: 600;">Name</span> <span style="color: cyan; font-weight: 600;">Source</span> <span style="color: cyan; font-weight: 600;">Auto-Apply</span> <span style="color: cyan; font-weight: 600;">Sandbox</span> <span style="color: cyan; font-weight: 600;">Description</span> │
│ <span style="opacity: 0.7;">────────────────── ──────── ────────── ─────── ────────────────────────</span> │
│ manual built-in 1.0 yes Human-driven (default)
│ manual built-in 1.0 yes Human-driven
│ review built-in 1.0 yes Auto-phase, manual decisions │
│ supervised built-in 1.0 yes Auto-plan, manual exec
│ supervised built-in 1.0 yes Auto-plan, manual exec (default)
│ cautious built-in 1.0 yes Confidence-gated automation │
│ trusted built-in 1.0 yes Auto-exec, manual apply │
│ auto built-in 1.0 yes Full auto except apply │
@@ -17065,9 +17065,9 @@ List all available automation profiles (built-in and custom).
Automation Profiles
Name Source Auto-Apply Sandbox Description
------------------ -------- ---------- ------- ----------------------------
manual built-in 1.0 yes Human-driven (default)
manual built-in 1.0 yes Human-driven
review built-in 1.0 yes Auto-phase, manual decisions
supervised built-in 1.0 yes Auto-plan, manual exec
supervised built-in 1.0 yes Auto-plan, manual exec (default)
cautious built-in 1.0 yes Confidence-gated automation
trusted built-in 1.0 yes Auto-exec, manual apply
auto built-in 1.0 yes Full auto except apply
@@ -17092,9 +17092,9 @@ List all available automation profiles (built-in and custom).
"exit_code": 0,
"data": {
"profiles": [
{ "name": "manual", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Human-driven (default)" },
{ "name": "manual", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Human-driven" },
{ "name": "review", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Auto-phase, manual decisions" },
{ "name": "supervised", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Auto-plan, manual exec" },
{ "name": "supervised", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Auto-plan, manual exec (default)" },
{ "name": "cautious", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Confidence-gated automation" },
{ "name": "trusted", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Auto-exec, manual apply" },
{ "name": "auto", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Full auto except apply" },
@@ -17121,7 +17121,7 @@ List all available automation profiles (built-in and custom).
source: built-in
select_tool: 1.0
sandbox: true
description: "Human-driven (default)"
description: "Human-driven"
- name: review
source: built-in
select_tool: 1.0
@@ -17131,7 +17131,7 @@ List all available automation profiles (built-in and custom).
source: built-in
select_tool: 1.0
sandbox: true
description: "Auto-plan, manual exec"
description: "Auto-plan, manual exec (default)"
- name: cautious
source: built-in
select_tool: 1.0
@@ -28567,7 +28567,7 @@ Threshold values are shown for each flag. A value of **0.0** means always automa
| `safety.max_total_cost` | null | null | null | null | null | null | null | null |
| `safety.max_retries_per_step` | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
**`manual`**: Maximum human control. All thresholds set to 1.0 — every phase transition, every decision, every child plan requires explicit human approval regardless of confidence. Sandbox and checkpoints are mandatory. Unsafe tools are blocked. This is the default starting point. Use for: new users learning the system, critical production systems, first-time exploration of an unfamiliar codebase, sensitive projects, regulatory environments.
**`manual`**: Maximum human control. All thresholds set to 1.0 — every phase transition, every decision, every child plan requires explicit human approval regardless of confidence. Sandbox and checkpoints are mandatory. Unsafe tools are blocked. Use for: new users learning the system, critical production systems, first-time exploration of an unfamiliar codebase, sensitive projects, regulatory environments.
**`review`**: Phases run automatically (Strategize and Execute proceed without pausing), and most decisions within those phases require human approval (thresholds set to 1.0), except transient retries and child plan spawning which are automatic (thresholds 0.0). Apply is manual. The system does the work but consults you on every choice point. Use for: teams that want to stay in the decision loop without manually triggering each phase, code reviews where architectural choices matter more than execution mechanics.
@@ -28591,6 +28591,9 @@ Automation profiles are determined using this precedence (highest to lowest):
2. **Action-level**: Set on the action via `--automation-profile` on `agents action create`
3. **Project-level**: Set via `agents config set core.automation-profile <PROFILE> --project <PROJECT>`
4. **Global-level**: Set via `agents config set core.automation-profile <PROFILE>`
5. **Built-in default**: `supervised` (per [ADR-017](adr/ADR-017-automation-profiles.md))
The default global automation profile is `supervised` (configurable via `core.automation-profile`). When no profile is configured at any level (plan, action, project, global), the resolved profile is `supervised`.
The **effective profile** for a plan is resolved at the moment of `agents plan use`. Once resolved, the profile is **locked to that plan** — subsequent changes to project or global profiles do not affect running plans.