diff --git a/.opencode/agents/architecture-pool-supervisor.md b/.opencode/agents/architecture-pool-supervisor.md index 23c8cbb9a..009b9160a 100644 --- a/.opencode/agents/architecture-pool-supervisor.md +++ b/.opencode/agents/architecture-pool-supervisor.md @@ -7,9 +7,14 @@ description: > mode: subagent hidden: true temperature: 0.3 -model: anthropic/claude-sonnet-4-6 +model: anthropic/claude-haiku-4-5 +reasoningEffort: "max" color: primary permission: + "*": deny + "doom_loop": deny + question: deny + "sequential-thinking*": allow edit: deny webfetch: deny bash: @@ -27,22 +32,23 @@ permission: "*": deny "async-agent-manager": allow "automation-tracking-manager": allow - forgejo: - "*": deny - "forgejo_list_repo_issues": allow - "forgejo_get_issue_by_index": allow - "forgejo_list_issue_comments": allow - "forgejo_list_repo_milestones": allow - "forgejo_list_repo_pull_requests": allow - "forgejo_get_pull_request_by_index": allow - "forgejo_update_pull_request": allow - # CRITICAL: Label creation is COMPLETELY FORBIDDEN - "forgejo_create_label": deny - "forgejo_create_org_label": deny - "forgejo_create_repo_label": deny - # CRITICAL: DO NOT use forgejo_add_issue_labels directly - # Always delegate to forgejo-label-manager for label operations - "forgejo_add_issue_labels": deny + "forgejo_*": deny + "forgejo_list_repo_issues": allow + "forgejo_get_issue_by_index": allow + "forgejo_list_issue_comments": allow + "forgejo_list_repo_milestones": allow + "forgejo_list_repo_pull_requests": allow + "forgejo_get_pull_request_by_index": allow + "forgejo_update_pull_request": allow + # CRITICAL: Never list repo-level labels — use org labels via forgejo-label-manager + "forgejo_list_repo_labels": deny + # CRITICAL: Label creation is COMPLETELY FORBIDDEN + "forgejo_create_label": deny + "forgejo_create_org_label": deny + "forgejo_create_repo_label": deny + # CRITICAL: DO NOT use forgejo_add_issue_labels directly + # Always delegate to forgejo-label-manager for label operations + "forgejo_add_issue_labels": deny --- # Architecture Supervisor @@ -121,7 +127,7 @@ When the spec grows beyond approximately 3,000 lines, workers should transition - Prefix: `AUTO-ARCH` - Cycle interval: ~30 minutes -## Rules +## **CRITICAL** Rules 1. **You are the most consequential agent.** Bad architecture cascades everywhere. Be thoughtful. 2. **Major changes need human approval.** Always use the `needs feedback` label for major changes. @@ -133,3 +139,6 @@ When the spec grows beyond approximately 3,000 lines, workers should transition **Automated by CleverAgents Bot** Supervisor: Architecture | Agent: architecture-pool-supervisor ``` + +6. **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`. +7. **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 find all spec-ambiguity reports in comments); `forgejo_list_issue_comments` (paginate fully to read all comments on each issue); `forgejo_list_repo_pull_requests` (paginate to find all spec PRs); `forgejo_list_repo_milestones` (paginate to see all milestones). diff --git a/CHANGELOG.md b/CHANGELOG.md index 46bd4bb64..24e7b55ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,16 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] +### Added + +- **Architecture Pool Supervisor Milestone Assignment** (#7521): Added a "PR Workflow + for Major Changes" section to the `architecture-pool-supervisor` agent definition + documenting the milestone assignment step for spec PRs. The agent now has + `forgejo_update_pull_request` permission to assign PRs to the current active + milestone after creation, improving traceability of specification changes within + project milestone planning. Includes BDD test coverage for the new workflow + documentation and permission configuration. + ### Fixed - **Atomic `load_from_metadata` for Autonomy Guardrails** (#7504): Fixed diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index acac574bb..65120d117 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -16,10 +16,10 @@ Below are some of the specific details of various contributions. * Jeffrey Phillips Freeman has acted as Lead Developer, daily contributor, and Project Owner. * Brent E. Edwards has contributed quality assurance, test coverage, and CI pipeline improvements. * HAL 9000 has contributed automated implementation, bug fixes, and feature development as part of the CleverAgents automation pool. -* HAL 9000 has contributed concurrency safety improvements, including thread-safe context tier management (issue #7547) for parallel plan execution. * HAL 9000 has contributed the plan concurrency race-condition fix (#7989): wired `LockService` into the plan lifecycle, guarding `execute_plan()` and `apply_plan()` with plan-level advisory locks and unique per-invocation owner identities to prevent silent concurrent state corruption. * HAL 9000 has contributed the bug-hunt-pool-supervisor non-blocking tracking fix: updated step 5 to be best-effort and added rule 9 to prevent the automation-tracking-manager call from blocking the main supervisor loop. * HAL 9000 has contributed the plugin entry point security hardening fix (#7476): enforced entry point allowlist validation before importing plugin modules to prevent malicious plugin loading. * HAL 9000 has contributed the benchmark workflow separation (#9040): moved the benchmark-regression job out of the default PR workflow into a dedicated scheduled workflow, reducing median PR CI turnaround time from 99-132 minutes to under 30 minutes. * This project was made possible thanks to considerable donation of time, money, and resources by CleverThis, Inc. * HAL 9000 has contributed automated bug fixes, CLI output formatting improvements, and ongoing maintenance as part of the CleverAgents automation system. +* HAL 9000 has contributed the file edit encoding parameter fix (PR #8258 / issue #7559). diff --git a/docs/development/agent-system-specification.md b/docs/development/agent-system-specification.md index f8c286929..e34dd8b84 100644 --- a/docs/development/agent-system-specification.md +++ b/docs/development/agent-system-specification.md @@ -1968,7 +1968,7 @@ Documented as the "#1 problem with this agent" due to historical creation of 48+ **Subagents**: `ref-reader`, `automation-tracking-manager` -**Workflow**: Checks for triggers every 30 minutes: new milestones without spec coverage, spec ambiguities reported by implementers, human requests for clarification, or initial bootstrap (no spec exists). When the spec grows beyond approximately 3,000 lines, transitions from a single `docs/specification.md` file to a `docs/specification/` directory with one file per module. Major architectural changes go through PRs with the `needs feedback` label; minor clarifications are committed directly. +**Workflow**: Checks for triggers every 30 minutes: new milestones without spec coverage, spec ambiguities reported by implementers, human requests for clarification, or initial bootstrap (no spec exists). When the spec grows beyond approximately 3,000 lines, transitions from a single `docs/specification.md` file to a `docs/specification/` directory with one file per module. Major architectural changes go through PRs with the `needs feedback` label; minor clarifications are committed directly. When creating a PR for a major spec change, the agent assigns it to the current active milestone using `forgejo_update_pull_request` (querying available milestones via `forgejo_list_repo_milestones`); if no active milestone can be determined, milestone assignment is skipped gracefully. **Specification Structure**: Must contain Overview, Module Definitions (boundaries, responsibilities, public interfaces), Cross-Cutting Concerns (error handling, logging, configuration), Integration Points, and Milestone Plan.