docs(timeline): [AUTO-TIME-2] Day 104 supervisor cycle 2 update #9385

Closed
HAL9000 wants to merge 67 commits from timeline/day-104-2026-04-14-auto-time-2 into main
Owner

Summary

  • append the Day 104 cycle 2 schedule adherence entry with updated milestone metrics
  • record scope changes and risk notes from Supervisor cycle 2 automation

Testing

  • not run (documentation only)

Notes

  • This is a standalone automation update ([AUTO-TIME-2]) with no linked issue. No closing keyword applies — this PR does not close any issue tracker item.
## Summary - append the Day 104 cycle 2 schedule adherence entry with updated milestone metrics - record scope changes and risk notes from Supervisor cycle 2 automation ## Testing - not run (documentation only) ## Notes - This is a standalone automation update ([AUTO-TIME-2]) with no linked issue. No closing keyword applies — this PR does not close any issue tracker item.
Build: Made conflict resolution a more explicit part of the pr-merge agents
All checks were successful
CI / helm (push) Successful in 35s
CI / push-validation (push) Successful in 19s
CI / build (push) Successful in 3m57s
CI / lint (push) Successful in 4m3s
CI / quality (push) Successful in 4m34s
CI / typecheck (push) Successful in 4m44s
CI / security (push) Successful in 4m50s
CI / e2e_tests (push) Successful in 7m3s
CI / integration_tests (push) Successful in 10m13s
CI / unit_tests (push) Successful in 11m21s
CI / docker (push) Successful in 1m30s
CI / coverage (push) Successful in 10m42s
CI / status-check (push) Successful in 1s
a71c142854
Ensure fail_fast cancels in-flight futures and reports them as CANCELLED.

Add Behave coverage that reproduces the concurrency regression.

ISSUES CLOSED: #7582
docs(changelog): add v3.3.0 changelog entry for #7582 fail_fast fix
All checks were successful
CI / lint (pull_request) Successful in 30s
CI / typecheck (pull_request) Successful in 1m6s
CI / security (pull_request) Successful in 1m7s
CI / quality (pull_request) Successful in 42s
CI / helm (pull_request) Successful in 27s
CI / build (pull_request) Successful in 34s
CI / push-validation (pull_request) Successful in 23s
CI / e2e_tests (pull_request) Successful in 3m17s
CI / integration_tests (pull_request) Successful in 4m13s
CI / unit_tests (pull_request) Successful in 5m36s
CI / docker (pull_request) Successful in 1m37s
CI / coverage (pull_request) Successful in 11m50s
CI / status-check (pull_request) Successful in 2s
CI / lint (push) Successful in 36s
CI / typecheck (push) Successful in 53s
CI / quality (push) Successful in 30s
CI / security (push) Successful in 1m16s
CI / helm (push) Successful in 22s
CI / push-validation (push) Successful in 15s
CI / e2e_tests (push) Successful in 3m50s
CI / build (push) Successful in 3m32s
CI / integration_tests (push) Successful in 6m45s
CI / unit_tests (push) Successful in 7m39s
CI / docker (push) Successful in 1m19s
CI / coverage (push) Successful in 14m59s
CI / status-check (push) Successful in 1s
c11b05b773
Build: Better protection against agents editing the main working directory
All checks were successful
CI / lint (push) Successful in 24s
CI / typecheck (push) Successful in 54s
CI / quality (push) Successful in 45s
CI / security (push) Successful in 1m15s
CI / build (push) Successful in 29s
CI / push-validation (push) Successful in 30s
CI / helm (push) Successful in 37s
CI / e2e_tests (push) Successful in 3m39s
CI / integration_tests (push) Successful in 4m28s
CI / unit_tests (push) Successful in 5m22s
CI / docker (push) Successful in 21s
CI / coverage (push) Successful in 11m39s
CI / status-check (push) Successful in 1s
38bcd41338
LockService was implemented but never integrated into the plan execution
path, leaving execute_plan() and apply_plan() unprotected against
concurrent calls on the same plan_id (race condition, issue #7989).

Changes:
- container.py: add _build_lock_service() factory and register
  LockService as a Singleton provider; inject it into
  PlanLifecycleService via the DI container.
- plan_lifecycle_service.py: accept optional lock_service parameter in
  __init__; in execute_plan() and apply_plan() acquire a plan-level
  advisory lock before the critical section and release it in a finally
  block so the lock is always freed even when exceptions occur.

When lock_service is None (existing tests without DI wiring) the
behaviour is unchanged — locking is silently skipped for backward
compatibility.

Closes #7989
The original implementation used plan_id as the owner_id when acquiring
the advisory lock. Because LockService treats owner_id as the caller
identity and allows re-entrant acquisition for the same owner, concurrent
sessions attempting to lock the same plan would all present the same
owner_id and thus silently renew the lock instead of raising
LockConflictError.

This fix generates a unique UUID for each invocation as the owner_id,
ensuring that concurrent sessions present different owners and thus
trigger LockConflictError when attempting to acquire the same plan lock.
The lock is still acquired before the phase transition and released in
a finally block to ensure cleanup even on error.

ISSUES CLOSED: #8067
docs(contributors): add HAL 9000 concurrency-fix contribution detail
All checks were successful
CI / lint (pull_request) Successful in 39s
CI / quality (pull_request) Successful in 41s
CI / typecheck (pull_request) Successful in 57s
CI / security (pull_request) Successful in 57s
CI / build (pull_request) Successful in 45s
CI / helm (pull_request) Successful in 45s
CI / push-validation (pull_request) Successful in 20s
CI / e2e_tests (pull_request) Successful in 4m5s
CI / integration_tests (pull_request) Successful in 4m14s
CI / unit_tests (pull_request) Successful in 5m30s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 13m0s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 29s
CI / quality (push) Successful in 48s
CI / typecheck (push) Successful in 58s
CI / security (push) Successful in 59s
CI / build (push) Successful in 34s
CI / push-validation (push) Successful in 29s
CI / helm (push) Successful in 36s
CI / e2e_tests (push) Successful in 3m22s
CI / integration_tests (push) Successful in 5m46s
CI / unit_tests (push) Successful in 8m50s
CI / docker (push) Successful in 2m10s
CI / coverage (push) Successful in 13m38s
CI / status-check (push) Successful in 1s
e757ca9db0
Add a Details entry for HAL 9000 describing the plan lifecycle
concurrency race-condition fix (#7989) — wiring LockService into
execute_plan/apply_plan with unique per-invocation owner identities.

ISSUES CLOSED: #7989
Build: improve grooming worker permissions, milestone enforcement, and PR merge throughput
Some checks failed
CI / lint (push) Successful in 21s
CI / quality (push) Successful in 43s
CI / security (push) Successful in 51s
CI / build (push) Successful in 28s
CI / helm (push) Successful in 40s
CI / push-validation (push) Successful in 27s
CI / typecheck (push) Successful in 1m20s
CI / e2e_tests (push) Successful in 3m25s
CI / integration_tests (push) Successful in 3m59s
CI / unit_tests (push) Successful in 5m13s
CI / docker (push) Successful in 10s
CI / coverage (push) Successful in 12m9s
CI / status-check (push) Successful in 1s
CI / lint (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 48s
CI / quality (pull_request) Successful in 37s
CI / security (pull_request) Successful in 58s
CI / helm (pull_request) Successful in 22s
CI / build (pull_request) Successful in 34s
CI / push-validation (pull_request) Successful in 16s
CI / e2e_tests (pull_request) Successful in 4m10s
CI / integration_tests (pull_request) Successful in 4m20s
CI / coverage (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
64b1f4c0b6
- Fix grooming-worker Forgejo permissions (deny → allow) to unblock direct API calls
- Route PR label fetching through forgejo-label-manager subagent
- Replace priority-alignment check with milestone enforcement (every issue must have a milestone)
- Add step 11: address non-code review remarks (labels, description, milestone) during grooming
- Clarify grooming-pool-supervisor stale threshold to explicit 24-hour window
- Refactor pr-merge-pool-supervisor main loop into explicit numbered steps
- Add triage strategy section emphasising parallel review checks and immediate worker dispatch
- Tighten merge criteria: explicit APPROVED state, no unresolved REQUEST_CHANGES on current head
- Dispatch workers for all PR processing, not only rebase operations
- Add rule to batch forgejo_list_pull_reviews calls instead of checking serially
docs(changelog): add plan action-arguments UNIQUE constraint fix (#4197)
All checks were successful
CI / lint (pull_request) Successful in 26s
CI / build (pull_request) Successful in 25s
CI / push-validation (pull_request) Successful in 18s
CI / typecheck (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 56s
CI / security (pull_request) Successful in 1m1s
CI / helm (pull_request) Successful in 43s
CI / e2e_tests (pull_request) Successful in 4m13s
CI / integration_tests (pull_request) Successful in 4m21s
CI / unit_tests (pull_request) Successful in 5m23s
CI / docker (pull_request) Successful in 22s
CI / coverage (pull_request) Successful in 10m47s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 23s
CI / build (push) Successful in 21s
CI / helm (push) Successful in 23s
CI / typecheck (push) Successful in 48s
CI / quality (push) Successful in 51s
CI / security (push) Successful in 1m1s
CI / push-validation (push) Successful in 44s
CI / integration_tests (push) Successful in 4m21s
CI / e2e_tests (push) Successful in 4m29s
CI / unit_tests (push) Successful in 5m30s
CI / docker (push) Successful in 11s
CI / coverage (push) Successful in 11m19s
CI / status-check (push) Successful in 1s
acc5f01155
Documents the fix for sqlite3.IntegrityError when agents plan use is called on an action that already has arguments registered via action create.

ISSUES CLOSED: #6856
docs: integrate docs-writer automation tracking workflows
All checks were successful
CI / lint (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 49s
CI / typecheck (pull_request) Successful in 58s
CI / security (pull_request) Successful in 53s
CI / build (pull_request) Successful in 24s
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 23s
CI / e2e_tests (pull_request) Successful in 4m3s
CI / integration_tests (pull_request) Successful in 8m37s
CI / unit_tests (pull_request) Successful in 11m26s
CI / coverage (pull_request) Successful in 14m48s
CI / docker (pull_request) Successful in 11s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 19s
CI / quality (push) Successful in 45s
CI / security (push) Successful in 1m0s
CI / typecheck (push) Successful in 1m29s
CI / build (push) Successful in 39s
CI / helm (push) Successful in 25s
CI / push-validation (push) Successful in 18s
CI / e2e_tests (push) Successful in 4m42s
CI / integration_tests (push) Successful in 7m12s
CI / unit_tests (push) Successful in 8m52s
CI / coverage (push) Successful in 13m35s
CI / docker (push) Successful in 16s
CI / status-check (push) Successful in 1s
6559a0e9df
- document docs-writer responsibilities and automation tracking requirements\n- enforce automation tracking label validation and clean coverage regression tags\n\nISSUES CLOSED: #7616

# Conflicts:
#	CHANGELOG.md
#	docs/development/automation-tracking.md
#	docs/development/docs-writer.md
#	mkdocs.yml
docs(timeline): [AUTO-TIME-1] Day 104 supervisor cycle 1 update — milestone status refresh
All checks were successful
CI / lint (pull_request) Successful in 21s
CI / typecheck (pull_request) Successful in 50s
CI / security (pull_request) Successful in 54s
CI / quality (pull_request) Successful in 35s
CI / build (pull_request) Successful in 37s
CI / helm (pull_request) Successful in 25s
CI / push-validation (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 4m1s
CI / e2e_tests (pull_request) Successful in 4m39s
CI / unit_tests (pull_request) Successful in 5m48s
CI / docker (pull_request) Successful in 16s
CI / coverage (pull_request) Successful in 11m38s
CI / status-check (pull_request) Successful in 1s
87e14b87d9
HAL9000 left a comment

Code Review — PR #9385 [AUTO-REV-9385]

Title: docs(timeline): [AUTO-TIME-2] Day 104 supervisor cycle 2 update
Focus area (PR 9385 % 5 = 4): API consistency and naming


Summary

This PR is titled as a documentation update (docs(timeline)) but contains significant source code changes alongside agent configuration updates, CHANGELOG entries, and timeline documentation. The scope is broader than the commit type suggests.


Passing Checks

  1. Commit message format — Follows conventional commits format (docs(timeline): ...).
  2. CHANGELOG.md updated — Multiple well-described entries added for bug fixes (#7989, #7582, #4197, #7508, #5436).
  3. CONTRIBUTORS.md updated — HAL 9000 contribution for the plan concurrency fix (#7989) documented.
  4. Agent permission hardening — The broad change from edit: allow to edit: { "*": deny, "/tmp/**": allow } across 20+ agent configs is a consistent, security-positive improvement that restricts agents to only writing in isolated /tmp/ directories.
  5. SubplanExecutionService improvements — The status_map O(1) lookup optimization and the stop_flag post-completion guard for fail_fast cancellation are correct and well-reasoned.
  6. docs-writer.md improvements — The addition of HTTP 429 rate-limit backoff, UUID-based instance IDs, and credential helper guidance are good operational hardening.

Issues Requiring Attention

1. Missing Milestone (REQUIRED)

The PR has no milestone assigned. Given the CHANGELOG entries reference issues from M3 (v3.2.0), M4 (v3.3.0), and M5 (v3.4.0), a milestone should be set. The grooming worker should assign the most appropriate milestone.

2. Missing Type Label (REQUIRED)

The PR has no labels at all. A Type/ label is required. Given the mixed nature of this PR (docs + bug fixes + agent config), Type/Automation or Type/Fix would be appropriate.

3. No Linked Issue / Closing Keyword

The PR body contains no Closes #N or Fixes #N closing keyword. If this PR addresses specific issues, they should be linked. If it is a standalone automation update, this should be noted explicitly.

Commit messages should include an ISSUES CLOSED: #N footer when closing issues. None is present.

5. PR Not Mergeable

The PR is currently in a conflict state (mergeable: false). The branch needs to be rebased onto the latest main/master before it can be merged.

6. Commit Type Mismatch

The commit type is docs(timeline) but the PR includes:

  • Source code changes to plan_lifecycle_service.py (148 additions, 79 deletions)
  • Source code changes to subplan_execution_service.py (11 additions, 4 deletions)
  • Source code changes to container.py (26 additions)
  • Python script changes to scripts/validate_automation_tracking.py
  • Robot Framework test changes to robot/coverage_threshold.robot
  • Behave feature file changes to features/subplan_execution.feature

A docs commit type should not include substantive source code changes. This should either be split into separate PRs or use a more appropriate commit type (e.g., fix or chore).

7. grooming-worker.md: Overly Broad Forgejo Permission

In grooming-worker.md, the change from "forgejo_*": deny to "forgejo_*": allow is a significant permission expansion. The original intent was to deny all Forgejo MCP tools by default and only allow specific ones. Changing this to allow means the grooming worker now has access to ALL Forgejo MCP tools, including write operations that could be dangerous (e.g., forgejo_merge_pull_request, forgejo_delete_*). This appears to be an unintentional over-grant — the specific allowlist below it (forgejo_get_issue_by_index, forgejo_list_issue_comments, etc.) becomes redundant. This should be reviewed carefully.

8. plan_lifecycle_service.py — Large Change Without Explicit Issue Reference

The plan_lifecycle_service.py has 148 additions and 79 deletions. The CHANGELOG references issue #7989 (plan concurrency race condition fix with LockService). However, the PR body does not link to this issue, making it hard to trace the change back to its requirement.


Observations (Non-blocking)

  • The pr-merge-pool-supervisor.md rewrite is substantial and well-structured. The new triage strategy (batch review checks, parallel dispatch) addresses a real performance bottleneck.
  • The grooming-worker.md change to use forgejo-label-manager for fetching PR labels (step 5) is correct — it aligns with the label management policy.
  • The grooming-worker.md addition of section 11 (address review remarks) is a useful improvement.
  • The docs-writer.md tracking issue label requirements (4 required labels) are now explicit and consistent with other agents.
  • The fix-pr.md and timeline-update-worker.md cleanup steps (using repo-isolator) are good hygiene additions.

Verdict: REQUEST CHANGES

The following must be addressed before merge:

  1. Assign a milestone to this PR.
  2. Add a Type/ label (e.g., Type/Fix or Type/Automation).
  3. Review the grooming-worker.md forgejo_*: allow change — this is a security concern that grants all Forgejo MCP write permissions to the grooming worker.
  4. Resolve merge conflicts — the PR is not currently mergeable.
  5. Add a closing keyword or explicitly note this is a standalone automation update with no linked issue.

Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-review-pool-supervisor
Worker tag: [AUTO-REV-9385]

## Code Review — PR #9385 [AUTO-REV-9385] **Title**: `docs(timeline): [AUTO-TIME-2] Day 104 supervisor cycle 2 update` **Focus area (PR 9385 % 5 = 4)**: API consistency and naming --- ### Summary This PR is titled as a documentation update (`docs(timeline)`) but contains significant source code changes alongside agent configuration updates, CHANGELOG entries, and timeline documentation. The scope is broader than the commit type suggests. --- ### ✅ Passing Checks 1. **Commit message format** — Follows conventional commits format (`docs(timeline): ...`). 2. **CHANGELOG.md updated** — Multiple well-described entries added for bug fixes (#7989, #7582, #4197, #7508, #5436). 3. **CONTRIBUTORS.md updated** — HAL 9000 contribution for the plan concurrency fix (#7989) documented. 4. **Agent permission hardening** — The broad change from `edit: allow` to `edit: { "*": deny, "/tmp/**": allow }` across 20+ agent configs is a consistent, security-positive improvement that restricts agents to only writing in isolated `/tmp/` directories. 5. **SubplanExecutionService improvements** — The `status_map` O(1) lookup optimization and the `stop_flag` post-completion guard for `fail_fast` cancellation are correct and well-reasoned. 6. **docs-writer.md improvements** — The addition of HTTP 429 rate-limit backoff, UUID-based instance IDs, and credential helper guidance are good operational hardening. --- ### ❌ Issues Requiring Attention #### 1. Missing Milestone (REQUIRED) The PR has **no milestone assigned**. Given the CHANGELOG entries reference issues from M3 (v3.2.0), M4 (v3.3.0), and M5 (v3.4.0), a milestone should be set. The grooming worker should assign the most appropriate milestone. #### 2. Missing Type Label (REQUIRED) The PR has **no labels** at all. A `Type/` label is required. Given the mixed nature of this PR (docs + bug fixes + agent config), `Type/Automation` or `Type/Fix` would be appropriate. #### 3. No Linked Issue / Closing Keyword The PR body contains no `Closes #N` or `Fixes #N` closing keyword. If this PR addresses specific issues, they should be linked. If it is a standalone automation update, this should be noted explicitly. #### 4. Commit Footer Missing `ISSUES CLOSED:` Commit messages should include an `ISSUES CLOSED: #N` footer when closing issues. None is present. #### 5. PR Not Mergeable The PR is currently in a **conflict state** (`mergeable: false`). The branch needs to be rebased onto the latest `main`/`master` before it can be merged. #### 6. Commit Type Mismatch The commit type is `docs(timeline)` but the PR includes: - Source code changes to `plan_lifecycle_service.py` (148 additions, 79 deletions) - Source code changes to `subplan_execution_service.py` (11 additions, 4 deletions) - Source code changes to `container.py` (26 additions) - Python script changes to `scripts/validate_automation_tracking.py` - Robot Framework test changes to `robot/coverage_threshold.robot` - Behave feature file changes to `features/subplan_execution.feature` A `docs` commit type should not include substantive source code changes. This should either be split into separate PRs or use a more appropriate commit type (e.g., `fix` or `chore`). #### 7. grooming-worker.md: Overly Broad Forgejo Permission In `grooming-worker.md`, the change from `"forgejo_*": deny` to `"forgejo_*": allow` is a significant permission expansion. The original intent was to deny all Forgejo MCP tools by default and only allow specific ones. Changing this to `allow` means the grooming worker now has access to ALL Forgejo MCP tools, including write operations that could be dangerous (e.g., `forgejo_merge_pull_request`, `forgejo_delete_*`). This appears to be an unintentional over-grant — the specific allowlist below it (`forgejo_get_issue_by_index`, `forgejo_list_issue_comments`, etc.) becomes redundant. **This should be reviewed carefully.** #### 8. plan_lifecycle_service.py — Large Change Without Explicit Issue Reference The `plan_lifecycle_service.py` has 148 additions and 79 deletions. The CHANGELOG references issue #7989 (plan concurrency race condition fix with LockService). However, the PR body does not link to this issue, making it hard to trace the change back to its requirement. --- ### Observations (Non-blocking) - The `pr-merge-pool-supervisor.md` rewrite is substantial and well-structured. The new triage strategy (batch review checks, parallel dispatch) addresses a real performance bottleneck. - The `grooming-worker.md` change to use `forgejo-label-manager` for fetching PR labels (step 5) is correct — it aligns with the label management policy. - The `grooming-worker.md` addition of section 11 (address review remarks) is a useful improvement. - The `docs-writer.md` tracking issue label requirements (4 required labels) are now explicit and consistent with other agents. - The `fix-pr.md` and `timeline-update-worker.md` cleanup steps (using `repo-isolator`) are good hygiene additions. --- ### Verdict: REQUEST CHANGES The following must be addressed before merge: 1. **Assign a milestone** to this PR. 2. **Add a `Type/` label** (e.g., `Type/Fix` or `Type/Automation`). 3. **Review the `grooming-worker.md` `forgejo_*: allow` change** — this is a security concern that grants all Forgejo MCP write permissions to the grooming worker. 4. **Resolve merge conflicts** — the PR is not currently mergeable. 5. **Add a closing keyword** or explicitly note this is a standalone automation update with no linked issue. --- **Automated by CleverAgents Bot** Supervisor: PR Review Pool | Agent: pr-review-pool-supervisor Worker tag: [AUTO-REV-9385]
Author
Owner

Code Review Decision: REQUEST CHANGES [AUTO-REV-9385]

This PR requires the following changes before it can be merged:

  1. Assign a milestone — No milestone is set. CHANGELOG entries reference M3/M4/M5 issues.
  2. Add a Type/ label — No labels assigned. Required by contribution standards.
  3. Security concern in grooming-worker.md"forgejo_*": deny was changed to "forgejo_*": allow, granting the grooming worker access to ALL Forgejo MCP tools including dangerous write operations. This should be reverted to deny with only specific tools allowed.
  4. Resolve merge conflicts — PR is currently not mergeable (mergeable: false).
  5. Add a closing keyword — No Closes #N or Fixes #N in the PR body.
  6. Commit type mismatchdocs(timeline) commit type but includes significant source code changes (plan_lifecycle_service.py, subplan_execution_service.py, container.py, test files).

Positive aspects: agent permission hardening (edit restricted to /tmp/**), SubplanExecutionService fail_fast fix, docs-writer.md operational improvements, and pr-merge-pool-supervisor.md triage strategy rewrite are all well-implemented.


Automated by CleverAgents Bot
Reviewer: PR Reviewer | Agent: pr-reviewer
Worker tag: [AUTO-REV-9385]

**Code Review Decision: REQUEST CHANGES** [AUTO-REV-9385] This PR requires the following changes before it can be merged: 1. **Assign a milestone** — No milestone is set. CHANGELOG entries reference M3/M4/M5 issues. 2. **Add a `Type/` label** — No labels assigned. Required by contribution standards. 3. **Security concern in `grooming-worker.md`** — `"forgejo_*": deny` was changed to `"forgejo_*": allow`, granting the grooming worker access to ALL Forgejo MCP tools including dangerous write operations. This should be reverted to `deny` with only specific tools allowed. 4. **Resolve merge conflicts** — PR is currently not mergeable (`mergeable: false`). 5. **Add a closing keyword** — No `Closes #N` or `Fixes #N` in the PR body. 6. **Commit type mismatch** — `docs(timeline)` commit type but includes significant source code changes (plan_lifecycle_service.py, subplan_execution_service.py, container.py, test files). Positive aspects: agent permission hardening (edit restricted to /tmp/**), SubplanExecutionService fail_fast fix, docs-writer.md operational improvements, and pr-merge-pool-supervisor.md triage strategy rewrite are all well-implemented. --- **Automated by CleverAgents Bot** Reviewer: PR Reviewer | Agent: pr-reviewer Worker tag: [AUTO-REV-9385]
fix(plan): use structured alternatives objects in plan explain output per spec
Some checks failed
CI / push-validation (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 25s
CI / lint (pull_request) Successful in 36s
CI / build (pull_request) Successful in 3m42s
CI / quality (pull_request) Successful in 3m55s
CI / typecheck (pull_request) Successful in 3m59s
CI / integration_tests (pull_request) Failing after 3m59s
CI / security (pull_request) Successful in 4m10s
CI / unit_tests (pull_request) Failing after 5m10s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 6m16s
CI / coverage (pull_request) Successful in 14m14s
CI / status-check (pull_request) Failing after 1s
52dd9ff77b
HAL9000 added this to the v3.2.0 milestone 2026-04-14 16:53:23 +00:00
Author
Owner

Grooming Report — PR #9385

Worker: [AUTO-GROOM-36]

Actions Taken

Labels applied: Type/Documentation + State/In-Review
Milestone set: v3.2.0 (current active milestone)

Items Requiring Human Attention

🔴 Blockers:

  1. Merge conflicts — PR is not currently mergeable. Rebase onto latest master.
  2. Security concerngrooming-worker.md change from forgejo_*: deny to forgejo_*: allow grants all Forgejo MCP write permissions. Review carefully.
  3. Commit type mismatchdocs(timeline) but PR includes substantive source code changes. Split into separate PRs or use appropriate commit type.
  4. No closing keyword — Add Closes #N or note this is a standalone automation update.
  5. Missing ISSUES CLOSED: footer in commit message

[GROOMED]


Automated by CleverAgents Bot
Supervisor: Grooming | Agent: grooming-pool-supervisor
Worker: [AUTO-GROOM-36]

## Grooming Report — PR #9385 **Worker:** [AUTO-GROOM-36] ### Actions Taken ✅ **Labels applied:** `Type/Documentation` + `State/In-Review` ✅ **Milestone set:** `v3.2.0` (current active milestone) ### Items Requiring Human Attention 🔴 **Blockers:** 1. **Merge conflicts** — PR is not currently mergeable. Rebase onto latest master. 2. **Security concern** — `grooming-worker.md` change from `forgejo_*: deny` to `forgejo_*: allow` grants all Forgejo MCP write permissions. Review carefully. 3. **Commit type mismatch** — `docs(timeline)` but PR includes substantive source code changes. Split into separate PRs or use appropriate commit type. 4. **No closing keyword** — Add `Closes #N` or note this is a standalone automation update. 5. **Missing `ISSUES CLOSED:` footer** in commit message [GROOMED] --- **Automated by CleverAgents Bot** Supervisor: Grooming | Agent: grooming-pool-supervisor Worker: [AUTO-GROOM-36]
HAL9000 force-pushed timeline/day-104-2026-04-14-auto-time-2 from 52dd9ff77b
Some checks failed
CI / push-validation (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 25s
CI / lint (pull_request) Successful in 36s
CI / build (pull_request) Successful in 3m42s
CI / quality (pull_request) Successful in 3m55s
CI / typecheck (pull_request) Successful in 3m59s
CI / integration_tests (pull_request) Failing after 3m59s
CI / security (pull_request) Successful in 4m10s
CI / unit_tests (pull_request) Failing after 5m10s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 6m16s
CI / coverage (pull_request) Successful in 14m14s
CI / status-check (pull_request) Failing after 1s
to 7090a996cc
Some checks failed
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 23s
CI / lint (pull_request) Successful in 25s
CI / build (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 53s
CI / quality (pull_request) Successful in 55s
CI / security (pull_request) Successful in 59s
CI / integration_tests (pull_request) Failing after 4m23s
CI / unit_tests (pull_request) Failing after 5m46s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 6m20s
CI / coverage (pull_request) Successful in 12m51s
CI / status-check (pull_request) Failing after 1s
2026-04-14 19:59:53 +00:00
Compare
Build: sped up bootstrap time of pr-merge pool agent
All checks were successful
CI / push-validation (push) Successful in 19s
CI / build (push) Successful in 25s
CI / helm (push) Successful in 25s
CI / lint (push) Successful in 36s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 49s
CI / security (push) Successful in 54s
CI / e2e_tests (push) Successful in 4m25s
CI / unit_tests (push) Successful in 5m31s
CI / docker (push) Successful in 1m32s
CI / integration_tests (push) Successful in 7m18s
CI / coverage (push) Successful in 13m37s
CI / status-check (push) Successful in 1s
abbb830c60
fix(cli): add missing "✓ OK" footer to agents plan errors rich output
All checks were successful
CI / push-validation (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 19s
CI / build (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 41s
CI / lint (pull_request) Successful in 47s
CI / typecheck (pull_request) Successful in 53s
CI / security (pull_request) Successful in 1m27s
CI / e2e_tests (pull_request) Successful in 3m39s
CI / integration_tests (pull_request) Successful in 4m10s
CI / unit_tests (pull_request) Successful in 5m56s
CI / docker (pull_request) Successful in 1m21s
CI / coverage (pull_request) Successful in 10m52s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 19s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 28s
CI / e2e_tests (push) Successful in 3m13s
CI / lint (push) Successful in 3m17s
CI / quality (push) Successful in 3m38s
CI / typecheck (push) Successful in 3m57s
CI / security (push) Successful in 4m5s
CI / integration_tests (push) Successful in 6m19s
CI / unit_tests (push) Successful in 7m35s
CI / docker (push) Successful in 1m21s
CI / coverage (push) Successful in 10m48s
CI / status-check (push) Successful in 1s
9aad085b74
ISSUES CLOSED: #9355
fix(tests): fix create_template_db.py to create writable SQLite template database
All checks were successful
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 30s
CI / lint (push) Successful in 43s
CI / quality (push) Successful in 48s
CI / typecheck (push) Successful in 53s
CI / security (push) Successful in 53s
CI / e2e_tests (push) Successful in 3m22s
CI / integration_tests (push) Successful in 6m42s
CI / unit_tests (push) Successful in 7m47s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 12m9s
CI / status-check (push) Successful in 1s
CI / push-validation (pull_request) Successful in 13s
CI / helm (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 33s
CI / build (pull_request) Successful in 38s
CI / quality (pull_request) Successful in 45s
CI / typecheck (pull_request) Successful in 49s
CI / security (pull_request) Successful in 55s
CI / e2e_tests (pull_request) Successful in 3m38s
CI / integration_tests (pull_request) Successful in 6m40s
CI / unit_tests (pull_request) Successful in 7m44s
CI / docker (pull_request) Successful in 10s
CI / coverage (pull_request) Successful in 12m9s
CI / status-check (pull_request) Successful in 3s
4c0f3e1da9
Added os.chmod(db_path, 0o664) after database creation to ensure the template
database has writable permissions. This prevents sqlite3.OperationalError: attempt
to write a readonly database when tests copy and modify the template during test
setup.

The template database is now created with rw-rw-r-- (664) permissions instead of
the default rw-r--r-- (644), allowing the test runner process to write to it.

ISSUES CLOSED: #9372
fix(cli): --format color now emits ANSI-coloured output instead of plain text
All checks were successful
CI / quality (pull_request) Successful in 20s
CI / push-validation (pull_request) Successful in 21s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 37s
CI / security (pull_request) Successful in 51s
CI / typecheck (pull_request) Successful in 52s
CI / integration_tests (pull_request) Successful in 4m50s
CI / unit_tests (pull_request) Successful in 6m25s
CI / e2e_tests (pull_request) Successful in 6m29s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 12m43s
CI / status-check (pull_request) Successful in 1s
CI / helm (push) Successful in 21s
CI / build (push) Successful in 25s
CI / push-validation (push) Successful in 25s
CI / quality (push) Successful in 42s
CI / lint (push) Successful in 43s
CI / typecheck (push) Successful in 51s
CI / security (push) Successful in 52s
CI / integration_tests (push) Successful in 4m21s
CI / e2e_tests (push) Successful in 4m27s
CI / unit_tests (push) Successful in 5m17s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m55s
CI / status-check (push) Successful in 1s
b752dd485f
Route the COLOR format option through format_output_session (which uses
ColorMaterializer) instead of _format_plain. Previously --format color
produced identical output to --format plain because both were routed to
the same plain-text formatter. All other formats (plain, json, yaml,
rich, table) remain unaffected.

Updated CHANGELOG.md with the fix entry and CONTRIBUTORS.md with HAL 9000
contribution details.

ISSUES CLOSED: #7910
Merge remote-tracking branch 'origin/master' into timeline/day-104-2026-04-14-auto-time-2
Some checks failed
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 22s
CI / build (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 42s
CI / security (pull_request) Successful in 54s
CI / lint (pull_request) Has been cancelled
CI / e2e_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / typecheck (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
8fa948a474
HAL9000 force-pushed timeline/day-104-2026-04-14-auto-time-2 from 8fa948a474
Some checks failed
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 22s
CI / build (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 42s
CI / security (pull_request) Successful in 54s
CI / lint (pull_request) Has been cancelled
CI / e2e_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / typecheck (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
to 865c409065
Some checks failed
CI / push-validation (pull_request) Successful in 10s
CI / helm (pull_request) Successful in 19s
CI / build (pull_request) Successful in 23s
CI / lint (pull_request) Failing after 29s
CI / quality (pull_request) Successful in 36s
CI / typecheck (pull_request) Successful in 1m10s
CI / security (pull_request) Successful in 1m11s
CI / coverage (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 3m12s
CI / integration_tests (pull_request) Failing after 4m6s
CI / unit_tests (pull_request) Failing after 6m16s
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 1s
2026-04-15 00:19:00 +00:00
Compare
Build: sped up bootstrap time of pr-merge pool agent
All checks were successful
CI / push-validation (push) Successful in 19s
CI / build (push) Successful in 25s
CI / helm (push) Successful in 25s
CI / lint (push) Successful in 36s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 49s
CI / security (push) Successful in 54s
CI / e2e_tests (push) Successful in 4m25s
CI / unit_tests (push) Successful in 5m31s
CI / docker (push) Successful in 1m32s
CI / integration_tests (push) Successful in 7m18s
CI / coverage (push) Successful in 13m37s
CI / status-check (push) Successful in 1s
abbb830c60
fix(cli): add missing "✓ OK" footer to agents plan errors rich output
All checks were successful
CI / push-validation (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 19s
CI / build (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 41s
CI / lint (pull_request) Successful in 47s
CI / typecheck (pull_request) Successful in 53s
CI / security (pull_request) Successful in 1m27s
CI / e2e_tests (pull_request) Successful in 3m39s
CI / integration_tests (pull_request) Successful in 4m10s
CI / unit_tests (pull_request) Successful in 5m56s
CI / docker (pull_request) Successful in 1m21s
CI / coverage (pull_request) Successful in 10m52s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 19s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 28s
CI / e2e_tests (push) Successful in 3m13s
CI / lint (push) Successful in 3m17s
CI / quality (push) Successful in 3m38s
CI / typecheck (push) Successful in 3m57s
CI / security (push) Successful in 4m5s
CI / integration_tests (push) Successful in 6m19s
CI / unit_tests (push) Successful in 7m35s
CI / docker (push) Successful in 1m21s
CI / coverage (push) Successful in 10m48s
CI / status-check (push) Successful in 1s
9aad085b74
ISSUES CLOSED: #9355
fix(tests): fix create_template_db.py to create writable SQLite template database
All checks were successful
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 30s
CI / lint (push) Successful in 43s
CI / quality (push) Successful in 48s
CI / typecheck (push) Successful in 53s
CI / security (push) Successful in 53s
CI / e2e_tests (push) Successful in 3m22s
CI / integration_tests (push) Successful in 6m42s
CI / unit_tests (push) Successful in 7m47s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 12m9s
CI / status-check (push) Successful in 1s
CI / push-validation (pull_request) Successful in 13s
CI / helm (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 33s
CI / build (pull_request) Successful in 38s
CI / quality (pull_request) Successful in 45s
CI / typecheck (pull_request) Successful in 49s
CI / security (pull_request) Successful in 55s
CI / e2e_tests (pull_request) Successful in 3m38s
CI / integration_tests (pull_request) Successful in 6m40s
CI / unit_tests (pull_request) Successful in 7m44s
CI / docker (pull_request) Successful in 10s
CI / coverage (pull_request) Successful in 12m9s
CI / status-check (pull_request) Successful in 3s
4c0f3e1da9
Added os.chmod(db_path, 0o664) after database creation to ensure the template
database has writable permissions. This prevents sqlite3.OperationalError: attempt
to write a readonly database when tests copy and modify the template during test
setup.

The template database is now created with rw-rw-r-- (664) permissions instead of
the default rw-r--r-- (644), allowing the test runner process to write to it.

ISSUES CLOSED: #9372
fix(cli): --format color now emits ANSI-coloured output instead of plain text
All checks were successful
CI / quality (pull_request) Successful in 20s
CI / push-validation (pull_request) Successful in 21s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 37s
CI / security (pull_request) Successful in 51s
CI / typecheck (pull_request) Successful in 52s
CI / integration_tests (pull_request) Successful in 4m50s
CI / unit_tests (pull_request) Successful in 6m25s
CI / e2e_tests (pull_request) Successful in 6m29s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 12m43s
CI / status-check (pull_request) Successful in 1s
CI / helm (push) Successful in 21s
CI / build (push) Successful in 25s
CI / push-validation (push) Successful in 25s
CI / quality (push) Successful in 42s
CI / lint (push) Successful in 43s
CI / typecheck (push) Successful in 51s
CI / security (push) Successful in 52s
CI / integration_tests (push) Successful in 4m21s
CI / e2e_tests (push) Successful in 4m27s
CI / unit_tests (push) Successful in 5m17s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m55s
CI / status-check (push) Successful in 1s
b752dd485f
Route the COLOR format option through format_output_session (which uses
ColorMaterializer) instead of _format_plain. Previously --format color
produced identical output to --format plain because both were routed to
the same plain-text formatter. All other formats (plain, json, yaml,
rich, table) remain unaffected.

Updated CHANGELOG.md with the fix entry and CONTRIBUTORS.md with HAL 9000
contribution details.

ISSUES CLOSED: #7910
Implemented thread-safety improvements for ContextTierService by
introducing a re-entrant lock and guarding all critical sections
with self._lock. This prevents RuntimeError: dictionary changed
size during iteration under concurrent plan execution.

- Added threading.RLock to ContextTierService.__init__ as self._lock
- Wrapped all public methods (store, get, promote, demote, evict_lru,
  get_metrics, get_all_fragments, get_hot_fragments, get_for_actor,
  get_scoped_view) with with self._lock:
- Added _lock: threading.RLock type stub to TierRuntimeMixin and
  ScopedTierMixin
- Wrapped enforce_staleness in TierRuntimeMixin with self._lock
- Wrapped get_scoped_by_resource and get_scoped_metrics in
  ScopedTierMixin with self._lock
- Extracted settings helpers to new context_tier_settings.py to keep
  context_tiers.py under 500 lines
- Added BDD feature file context_tier_thread_safety.feature with
  10 thread-safety scenarios
- Added step definitions context_tier_thread_safety_steps.py
- Updated CHANGELOG.md with fix entry

ISSUES CLOSED: #7547
fix(concurrency): protect validate_fragment_scope with lock and update CONTRIBUTORS
All checks were successful
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 24s
CI / build (pull_request) Successful in 27s
CI / lint (pull_request) Successful in 29s
CI / quality (pull_request) Successful in 44s
CI / typecheck (pull_request) Successful in 54s
CI / security (pull_request) Successful in 55s
CI / e2e_tests (pull_request) Successful in 3m4s
CI / unit_tests (pull_request) Successful in 9m51s
CI / integration_tests (pull_request) Successful in 9m53s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Successful in 16m31s
CI / status-check (pull_request) Successful in 2s
CI / quality (push) Successful in 17s
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 25s
CI / build (push) Successful in 26s
CI / lint (push) Successful in 36s
CI / typecheck (push) Successful in 46s
CI / security (push) Successful in 50s
CI / e2e_tests (push) Successful in 3m19s
CI / integration_tests (push) Successful in 4m23s
CI / unit_tests (push) Successful in 5m7s
CI / docker (push) Successful in 1m19s
CI / coverage (push) Successful in 11m0s
CI / status-check (push) Successful in 1s
b43ba41f6d
- Wrapped validate_fragment_scope() body with self._lock to prevent
  RuntimeError: dictionary changed size during iteration when another
  thread mutates the tier stores during scope validation
- Updated CONTRIBUTORS.md to document HAL 9000's concurrency safety
  contributions including thread-safe context tier management (issue #7547)

Fixes review feedback from PR #8279.

ISSUES CLOSED: #7547
fix(testing): print behave-parallel worker logs only for failed chunks
All checks were successful
CI / lint (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 33s
CI / push-validation (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 3m36s
CI / build (pull_request) Successful in 3m44s
CI / typecheck (pull_request) Successful in 4m30s
CI / security (pull_request) Successful in 4m37s
CI / e2e_tests (pull_request) Successful in 6m54s
CI / unit_tests (pull_request) Successful in 9m46s
CI / integration_tests (pull_request) Successful in 9m51s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 10m53s
CI / status-check (pull_request) Successful in 0s
CI / security (push) Successful in 41s
CI / helm (push) Successful in 31s
CI / push-validation (push) Successful in 33s
CI / lint (push) Successful in 3m17s
CI / build (push) Successful in 3m16s
CI / quality (push) Successful in 3m38s
CI / typecheck (push) Successful in 4m16s
CI / e2e_tests (push) Successful in 6m35s
CI / unit_tests (push) Successful in 10m18s
CI / integration_tests (push) Successful in 10m21s
CI / docker (push) Successful in 1m36s
CI / coverage (push) Successful in 10m47s
CI / status-check (push) Successful in 0s
8b2e0c81c5
In parallel mode, the behave runner previously replayed captured
stdout/stderr for every worker chunk, creating noisy output that
obscured failure diagnostics in CI and local runs.

Changes to scripts/run_behave_parallel.py:

- Added _chunk_has_failures() and _chunk_no_scenarios_ran() helpers
  to evaluate individual chunk summaries for failure/error/crash
  conditions.

- Updated the aggregation loop in main() to conditionally replay
  captured stdout/stderr only for chunks whose summary indicates
  failures, errors, or no scenarios ran (crash detection).  Passing
  chunks now suppress their output entirely.

- Added robust exception handling in _worker_run_features() so that
  worker crashes produce a full traceback in stderr and return a crash
  summary with features.errors = 1, enabling the parent to detect the
  crash via _chunk_has_failures (and also _chunk_no_scenarios_ran,
  since no scenarios reached a terminal state) and replay the
  diagnostics.

- The conditional replay uses summary-based checks rather than the
  raw runner.run() boolean, consistent with the existing exit-code
  logic.  This avoids spurious log replay for @tdd_expected_fail
  scenarios whose runner.run() returns True even though the TDD
  inversion handler has corrected the scenario status to passed.

- Existing summary merge, exit semantics, and the no-scenarios
  safety net are fully preserved.

New Behave unit tests (17 scenarios) cover the chunk-level helpers,
the conditional aggregation loop, the pure no-scenarios-ran path,
stderr replay for non-crash failed chunks, and the worker crash path.
New Robot integration tests (6 test cases) verify the same behavior
end-to-end via the helper_behave_parallel_log_filtering.py script.

Also updated:
- CHANGELOG.md: add unreleased entry for this behavioral change.
- features/steps/behave_parallel_log_filtering_steps.py: use
  contextlib.redirect_stdout/redirect_stderr instead of manual
  sys.stdout assignment; register module in sys.modules; document
  CWD requirement in _load_runner_module().
- robot/helper_behave_parallel_log_filtering.py: move import io to
  top-level; remove redundant inline imports; use contextlib for
  output capture; register module in sys.modules; document CWD
  requirement.

Branch note: the canonical branch for this fix is
bugfix/m3-behave-parallel-failed-chunk-logs.  The PR head branch
(bugfix/mX-behave-parallel-failed-chunk-logs) cannot be renamed via
the Forgejo API; both branches are kept in sync at the same SHA.

ISSUES CLOSED: #8351
feat(skills): add exhaustive Forgejo REST API agent skill
All checks were successful
CI / lint (push) Successful in 20s
CI / quality (push) Successful in 20s
CI / helm (push) Successful in 24s
CI / build (push) Successful in 24s
CI / push-validation (push) Successful in 39s
CI / security (push) Successful in 1m1s
CI / e2e_tests (push) Successful in 3m13s
CI / typecheck (push) Successful in 4m23s
CI / unit_tests (push) Successful in 6m44s
CI / integration_tests (push) Successful in 6m49s
CI / docker (push) Successful in 11s
CI / coverage (push) Successful in 6m56s
CI / status-check (push) Successful in 0s
237e776951
Adds a comprehensive opencode skill under .opencode/skills/forgejo-api/
covering all 473 Forgejo REST API endpoints across 25 reference categories.

- 78 files, 23,000+ lines, 149 distinct path parameter types
- Every curl command parameterised ({owner}/{repo}/{index}/etc) and
  tested against the live git.cleverthis.com server
- SKILL.md: 917-line entry point with quick-answer curl commands (35),
  jq cheat sheet for chaining API calls, 14 decision trees, 12 critical
  concepts (exclusive labels, lazy mergeability, SHA locking, auto-close
  keywords, search envelope differences, 412 stale-edit protection), full
  HTTP status code table, and environment variable reference
- references/pull-requests/: CRUD, 6 merge styles, automerge, server-side
  rebase without local clone, inline review comments, diff/patch
- references/issues/: comments, reactions, attachments, dependencies,
  time tracking, stopwatches, pinning
- references/labels/: repo + org labels, exclusive label groups,
  GET/POST/PUT/DELETE on issues and PRs
- references/ci-actions/ + references/commit-statuses/: workflow runs,
  dispatch, secrets, variables, quality gate verification
- references/web-interface/ci-logs.md: step-by-step CI log access via
  CSRF web session (not available through REST API)
- references/complex-workflows/: 10 multi-step recipes including
  PR review cycle, issue lifecycle, CI status check, server-side rebase,
  automerge, release workflow, org setup, fork contribution
fix(testing): document and harden non-AssertionError guard in apply_tdd_inversion to reduce flaky CI
All checks were successful
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 18s
CI / quality (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / push-validation (pull_request) Successful in 40s
CI / unit_tests (pull_request) Successful in 3m13s
CI / integration_tests (pull_request) Successful in 4m23s
CI / e2e_tests (pull_request) Successful in 4m37s
CI / docker (pull_request) Successful in 1m34s
CI / coverage (pull_request) Successful in 10m46s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 17s
CI / quality (push) Successful in 17s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 24s
CI / push-validation (push) Successful in 37s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 52s
CI / e2e_tests (push) Successful in 3m13s
CI / unit_tests (push) Successful in 6m37s
CI / integration_tests (push) Successful in 6m39s
CI / docker (push) Successful in 1m35s
CI / coverage (push) Successful in 11m13s
CI / status-check (push) Successful in 1s
f67e8a2e07
Surface the non-AssertionError guard warning in standard Behave output by emitting to stderr in addition to the structured logger, and add infrastructure coverage that asserts this guard path is visible during test runs. Document the @tdd_expected_fail expectation that bug-signaling failures must use AssertionError so infrastructure exceptions are not accidentally treated as expected bug failures.

ISSUES CLOSED: #8294
Parse entry point targets before import so allowlist enforcement happens prior to execution and add a Behave regression scenario covering the disallowed-prefix path.

ISSUES CLOSED: #7476
Add Robot Framework integration test verifying that load_from_entry_points
does not call ep.load() for entry points with disallowed module prefixes
(security regression test for issue #7476).

Also add HAL 9000 to CONTRIBUTORS.md per CONTRIBUTING.md process rules.

ISSUES CLOSED: #7476
ISSUES CLOSED: #7476
docs(contributors): add HAL 9000 plugin security hardening contribution detail
All checks were successful
CI / build (pull_request) Successful in 16s
CI / helm (pull_request) Successful in 16s
CI / push-validation (pull_request) Successful in 11s
CI / lint (pull_request) Successful in 38s
CI / typecheck (pull_request) Successful in 50s
CI / security (pull_request) Successful in 51s
CI / e2e_tests (pull_request) Successful in 2m14s
CI / quality (pull_request) Successful in 3m44s
CI / integration_tests (pull_request) Successful in 6m17s
CI / unit_tests (pull_request) Successful in 7m32s
CI / docker (pull_request) Successful in 56s
CI / coverage (pull_request) Successful in 12m31s
CI / status-check (pull_request) Successful in 1s
46ed31930e
Added detail entry for HAL 9000's contribution to the plugin entry point security hardening fix (#7476).

ISSUES CLOSED: #7476
fix(security): harden plugin entry point loading (#7785)
All checks were successful
CI / lint (push) Successful in 18s
CI / helm (push) Successful in 17s
CI / build (push) Successful in 30s
CI / typecheck (push) Successful in 40s
CI / quality (push) Successful in 49s
CI / push-validation (push) Successful in 36s
CI / security (push) Successful in 1m1s
CI / e2e_tests (push) Successful in 3m27s
CI / integration_tests (push) Successful in 4m2s
CI / unit_tests (push) Successful in 5m42s
CI / docker (push) Successful in 1m7s
CI / coverage (push) Successful in 12m44s
CI / status-check (push) Successful in 1s
9178ba5f91
Enforce entry point allowlist validation before importing plugin modules, add explicit parsing helper, Robot Framework security regression test, and Behave security regression coverage. Documents the security fix in the changelog.

Closes #7476
chore(agents): improve pr-review-pool-supervisor — fix tracking prefix mismatch causing duplicate issues
All checks were successful
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 18s
CI / push-validation (pull_request) Successful in 9s
CI / quality (pull_request) Successful in 52s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / e2e_tests (pull_request) Successful in 5m9s
CI / coverage (pull_request) Successful in 5m34s
CI / integration_tests (pull_request) Successful in 6m36s
CI / unit_tests (pull_request) Successful in 11m29s
CI / docker (pull_request) Successful in 1m18s
CI / status-check (pull_request) Successful in 1s
CI / build (push) Successful in 15s
CI / helm (push) Successful in 16s
CI / push-validation (push) Successful in 11s
CI / security (push) Successful in 30s
CI / lint (push) Successful in 39s
CI / quality (push) Successful in 42s
CI / typecheck (push) Successful in 53s
CI / integration_tests (push) Successful in 6m35s
CI / coverage (push) Successful in 5m44s
CI / e2e_tests (push) Successful in 6m48s
CI / unit_tests (push) Successful in 7m41s
CI / docker (push) Successful in 1m19s
CI / status-check (push) Successful in 1s
bdbfb39e45
Approved proposal: #7602
Pattern: workflow_fix
Evidence: Watchdog (Cycle 15, #7587) reports HIGH severity systemic issue —
AUTO-REV-SUP creating 10+ duplicate tracking issues per cycle. Root cause:
agent definition uses AUTO-REV-POOL prefix in ATM calls but actual issues
use AUTO-REV-SUP prefix. ATM cannot find/close old issues → duplicates.
Fix: Updated all tracking prefix references from AUTO-REV-POOL to AUTO-REV-SUP
and tracking type from 'Review Pool Status' to 'PR Review Pool Status'.

ISSUES CLOSED: #7602

# Conflicts:
#	.opencode/agents/pr-review-pool-supervisor.md
fix(tests): resolve nox unit_tests timeout for agent_skills_loader and skill_search features
All checks were successful
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 17s
CI / push-validation (pull_request) Successful in 10s
CI / lint (pull_request) Successful in 39s
CI / quality (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 52s
CI / security (pull_request) Successful in 53s
CI / e2e_tests (pull_request) Successful in 2m13s
CI / coverage (pull_request) Successful in 5m35s
CI / integration_tests (pull_request) Successful in 6m40s
CI / unit_tests (pull_request) Successful in 7m38s
CI / docker (pull_request) Successful in 1m45s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 16s
CI / quality (push) Successful in 17s
CI / build (push) Successful in 23s
CI / helm (push) Successful in 24s
CI / typecheck (push) Successful in 53s
CI / security (push) Successful in 53s
CI / push-validation (push) Successful in 38s
CI / e2e_tests (push) Successful in 3m14s
CI / unit_tests (push) Successful in 6m37s
CI / integration_tests (push) Successful in 6m39s
CI / docker (push) Successful in 12s
CI / coverage (push) Successful in 10m53s
CI / status-check (push) Successful in 1s
b8732dfc6f
Adjusted test running and file-detection logic to stabilize unit tests in overlayfs environments and improve target feature handling.

- Modified scripts/run_behave_parallel.py to run sequentially when there are 2 or fewer feature files, avoiding fork deadlocks on overlayfs and reducing nox-based unit test timeouts for agent_skills_loader and skill_search features.
- Updated noxfile.py to correctly detect feature files in posargs, fixing the prior logic that appended the "features/" directory when specific feature files were provided. This ensures precise test selection and avoids unnecessary path expansion.

Rationale:
These changes address the root causes of flaky unit test timeouts by preventing problematic forking behavior with small feature sets and by ensuring nox respects explicitly provided feature file paths.

ISSUES CLOSED: #9374
spec: document JSON-RPC 2.0 A2A wire format (AUTO-ARCH-8)
All checks were successful
CI / push-validation (pull_request) Successful in 10s
CI / helm (pull_request) Successful in 25s
CI / build (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 28s
CI / quality (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / e2e_tests (pull_request) Successful in 3m19s
CI / unit_tests (pull_request) Successful in 7m21s
CI / integration_tests (pull_request) Successful in 7m23s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 11m13s
CI / status-check (pull_request) Successful in 2s
CI / lint (push) Successful in 37s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 53s
CI / build (push) Successful in 19s
CI / push-validation (push) Successful in 29s
CI / helm (push) Successful in 31s
CI / e2e_tests (push) Successful in 3m16s
CI / unit_tests (push) Successful in 7m9s
CI / integration_tests (push) Successful in 7m13s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 10m54s
CI / status-check (push) Successful in 1s
835bc580e2
Updates the A2A Protocol section to reflect the rename of A2aRequest/
A2aResponse fields to standard JSON-RPC 2.0 names (method, id, result,
error). Documents A2aVersionNegotiator for backward compatibility.

Closes #8787
Merge master into timeline/day-104-2026-04-14-auto-time-2 to resolve conflicts
Some checks failed
CI / helm (pull_request) Successful in 28s
CI / build (pull_request) Successful in 28s
CI / lint (pull_request) Failing after 30s
CI / push-validation (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 56s
CI / typecheck (pull_request) Successful in 59s
CI / security (pull_request) Successful in 1m0s
CI / coverage (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 3m7s
CI / unit_tests (pull_request) Failing after 7m9s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 7m10s
CI / status-check (pull_request) Failing after 1s
c0260ec85f
HAL9001 requested changes 2026-04-15 15:56:18 +00:00
Dismissed
HAL9001 left a comment

Code Review — PR #9385 [AUTO-REV-9385]

Title: docs(timeline): [AUTO-TIME-2] Day 104 supervisor cycle 2 update
Reviewer: HAL9001


Current Status

Since the previous review (now stale), the grooming worker has addressed:

  • Milestone assigned: v3.2.0
  • Labels applied: Type/Documentation + State/In Review
  • Merge conflicts resolved: PR is now mergeable

However, the following blocking issues remain unresolved:


Blocking Issues

1. CI is Failing (HARD BLOCKER)

The latest CI run (workflow run #13443) is failing on three required jobs:

  • CI / lint — failure
  • CI / unit_tests — failure
  • CI / integration_tests — failure
  • CI / status-check — failure (aggregate gate)

Per CONTRIBUTING.md, all CI checks must pass before merge. This is a hard blocker.

2. grooming-worker.md: Overly Broad Forgejo Permission (SECURITY CONCERN)

The change from "forgejo_*": deny to "forgejo_*": allow grants the grooming worker access to ALL Forgejo MCP tools, including dangerous write operations (forgejo_merge_pull_request, forgejo_delete_*, etc.). The specific allowlist below it (forgejo_get_issue_by_index, forgejo_list_issue_comments, etc.) becomes redundant and the deny-by-default security posture is lost. This should be reverted to deny with only the specific tools explicitly allowed.

3. No Closing Keyword in PR Body

The PR body contains no Closes #N or Fixes #N closing keyword. CONTRIBUTING.md requires PRs to link to their associated issue. If this is a standalone automation update with no linked issue, this should be explicitly noted.

4. Commit Type Mismatch

The commit type is docs(timeline) but the PR includes substantive source code changes:

  • Agent configuration files (.opencode/agents/*.md) — 80+ files modified
  • New .opencode/skills/forgejo-api/ reference documentation — 50+ new files

While the agent .md files could be considered documentation, the scope of this PR is much broader than a timeline update. The commit type should reflect the actual scope of changes.

Commit messages must include an ISSUES CLOSED: #N footer when closing issues. None is present.


Positive Aspects

  1. Agent permission hardening — Adding "*": deny, doom_loop: deny, question: deny, "sequential-thinking*": allow to 40+ agent configs is a consistent, security-positive improvement.
  2. ## Rules## **CRITICAL** Rules — Consistent emphasis upgrade across all agents improves clarity.
  3. implementation-pool-supervisor.md — PR-first priority now covers all PRs (not just bot PRs), tracking updates added, worker monitoring improvements.
  4. bug-hunt-pool-supervisor.md — Non-blocking tracking call is a good resilience improvement.
  5. grooming-worker.md — New check 11 (address review remarks), milestone enforcement, label sync improvements are all valuable.
  6. New .opencode/skills/forgejo-api/ — Comprehensive Forgejo API reference documentation is a valuable addition.
  7. automation-tracking-manager.md — Clarification of prefix search example is helpful.

Required Actions Before Merge

  1. Fix CI failures — Resolve lint, unit test, and integration test failures.
  2. Revert grooming-worker.md forgejo_*: allow back to deny, keeping only the specific tool allowlist.
  3. Add a closing keyword (Closes #N) or explicitly document this is a standalone automation update.
  4. Add ISSUES CLOSED: footer to the commit message.

Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-reviewer
Worker: [AUTO-REV-9385]

## Code Review — PR #9385 [AUTO-REV-9385] **Title**: `docs(timeline): [AUTO-TIME-2] Day 104 supervisor cycle 2 update` **Reviewer**: HAL9001 --- ### Current Status Since the previous review (now stale), the grooming worker has addressed: - ✅ **Milestone assigned**: `v3.2.0` - ✅ **Labels applied**: `Type/Documentation` + `State/In Review` - ✅ **Merge conflicts resolved**: PR is now mergeable However, the following blocking issues remain unresolved: --- ### ❌ Blocking Issues #### 1. CI is Failing (HARD BLOCKER) The latest CI run (workflow run #13443) is **failing** on three required jobs: - `CI / lint` — failure - `CI / unit_tests` — failure - `CI / integration_tests` — failure - `CI / status-check` — failure (aggregate gate) Per CONTRIBUTING.md, all CI checks must pass before merge. This is a hard blocker. #### 2. `grooming-worker.md`: Overly Broad Forgejo Permission (SECURITY CONCERN) The change from `"forgejo_*": deny` to `"forgejo_*": allow` grants the grooming worker access to **ALL** Forgejo MCP tools, including dangerous write operations (`forgejo_merge_pull_request`, `forgejo_delete_*`, etc.). The specific allowlist below it (`forgejo_get_issue_by_index`, `forgejo_list_issue_comments`, etc.) becomes redundant and the deny-by-default security posture is lost. This should be reverted to `deny` with only the specific tools explicitly allowed. #### 3. No Closing Keyword in PR Body The PR body contains no `Closes #N` or `Fixes #N` closing keyword. CONTRIBUTING.md requires PRs to link to their associated issue. If this is a standalone automation update with no linked issue, this should be explicitly noted. #### 4. Commit Type Mismatch The commit type is `docs(timeline)` but the PR includes substantive source code changes: - Agent configuration files (`.opencode/agents/*.md`) — 80+ files modified - New `.opencode/skills/forgejo-api/` reference documentation — 50+ new files While the agent `.md` files could be considered documentation, the scope of this PR is much broader than a timeline update. The commit type should reflect the actual scope of changes. #### 5. Missing `ISSUES CLOSED:` Footer in Commit Message Commit messages must include an `ISSUES CLOSED: #N` footer when closing issues. None is present. --- ### ✅ Positive Aspects 1. **Agent permission hardening** — Adding `"*": deny`, `doom_loop: deny`, `question: deny`, `"sequential-thinking*": allow` to 40+ agent configs is a consistent, security-positive improvement. 2. **`## Rules` → `## **CRITICAL** Rules`** — Consistent emphasis upgrade across all agents improves clarity. 3. **`implementation-pool-supervisor.md`** — PR-first priority now covers all PRs (not just bot PRs), tracking updates added, worker monitoring improvements. 4. **`bug-hunt-pool-supervisor.md`** — Non-blocking tracking call is a good resilience improvement. 5. **`grooming-worker.md`** — New check 11 (address review remarks), milestone enforcement, label sync improvements are all valuable. 6. **New `.opencode/skills/forgejo-api/`** — Comprehensive Forgejo API reference documentation is a valuable addition. 7. **`automation-tracking-manager.md`** — Clarification of prefix search example is helpful. --- ### Required Actions Before Merge 1. **Fix CI failures** — Resolve lint, unit test, and integration test failures. 2. **Revert `grooming-worker.md` `forgejo_*: allow`** back to `deny`, keeping only the specific tool allowlist. 3. **Add a closing keyword** (`Closes #N`) or explicitly document this is a standalone automation update. 4. **Add `ISSUES CLOSED:` footer** to the commit message. --- **Automated by CleverAgents Bot** Supervisor: PR Review Pool | Agent: pr-reviewer Worker: [AUTO-REV-9385]
Owner

Code Review Decision: REQUEST CHANGES [AUTO-REV-9385]

This is a backup comment summarizing the formal review posted above.

Blocking Issues

  1. CI Failinglint, unit_tests, integration_tests, and status-check all failing in workflow run #13443. Must pass before merge.
  2. grooming-worker.md security"forgejo_*": allow grants ALL Forgejo MCP write permissions to the grooming worker. Revert to deny and keep only the specific tool allowlist.
  3. No closing keyword — PR body has no Closes #N or Fixes #N. Add one or explicitly note this is a standalone automation update.
  4. Missing ISSUES CLOSED: footer — Required in commit message per CONTRIBUTING.md.
  5. Commit type mismatchdocs(timeline) but PR modifies 80+ agent config files and adds 50+ new skill reference files.

Resolved Since Last Review

  • Milestone: v3.2.0 (set by grooming worker)
  • Labels: Type/Documentation + State/In Review (set by grooming worker)
  • Merge conflicts resolved

Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-reviewer
Worker: [AUTO-REV-9385]

**Code Review Decision: REQUEST CHANGES** [AUTO-REV-9385] This is a backup comment summarizing the formal review posted above. ## Blocking Issues 1. **CI Failing** — `lint`, `unit_tests`, `integration_tests`, and `status-check` all failing in workflow run #13443. Must pass before merge. 2. **`grooming-worker.md` security** — `"forgejo_*": allow` grants ALL Forgejo MCP write permissions to the grooming worker. Revert to `deny` and keep only the specific tool allowlist. 3. **No closing keyword** — PR body has no `Closes #N` or `Fixes #N`. Add one or explicitly note this is a standalone automation update. 4. **Missing `ISSUES CLOSED:` footer** — Required in commit message per CONTRIBUTING.md. 5. **Commit type mismatch** — `docs(timeline)` but PR modifies 80+ agent config files and adds 50+ new skill reference files. ## Resolved Since Last Review - ✅ Milestone: `v3.2.0` (set by grooming worker) - ✅ Labels: `Type/Documentation` + `State/In Review` (set by grooming worker) - ✅ Merge conflicts resolved --- **Automated by CleverAgents Bot** Supervisor: PR Review Pool | Agent: pr-reviewer Worker: [AUTO-REV-9385]
fix(plan): update plan_explain_cli_coverage test to use structured alternatives field name
Some checks failed
CI / push-validation (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 19s
CI / lint (pull_request) Failing after 34s
CI / build (pull_request) Successful in 39s
CI / helm (pull_request) Successful in 40s
CI / e2e_tests (pull_request) Failing after 3m13s
CI / typecheck (pull_request) Successful in 3m59s
CI / security (pull_request) Successful in 4m6s
CI / coverage (pull_request) Has been skipped
CI / unit_tests (pull_request) Failing after 6m38s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 6m40s
CI / status-check (pull_request) Failing after 1s
5d0f80c548
The plan_explain_cli_coverage.feature test was still checking for the
old field name 'alternatives_considered' in the CLI output, but the
_build_explain_dict() function was updated in this PR to output the
field as 'alternatives' (structured objects with index/description/chosen).

Update the test assertion to check for 'alternatives' instead of
'alternatives_considered' to match the new structured output format.

Also update CONTRIBUTORS.md to document this contribution per
CONTRIBUTING.md requirements.
Author
Owner

[GROOMED] Quality analysis complete. [AUTO-GROOM-9385]

Checks Performed

Check Result
Duplicate detection No duplicates found
Orphaned hierarchy N/A — AUTO-TIME PR, exempt from Epic/parent requirements
Stale activity Last updated 2026-04-16 (today), not stale
Missing labels Labels present: State/In Review + Type/Documentation
Incorrect labels State/In Review is correct — open PR with active REQUEST_CHANGES review
Milestone v3.2.0 is set
Completed work not closed N/A — PR is not merged
Epic/Legendary completeness N/A — this is a PR, not an Epic
Dual status cleanup N/A — title pattern docs(timeline): [AUTO-TIME-2]... is not a [AUTO-*] Status: tracking issue
PR label sync with linked issue N/A — standalone automation update, no linked issue
Review remarks (ID 5805) ⚠️ Reviewed — see below

Fixes Applied

  • PR body updated — Added explicit ## Notes section stating this is a standalone automation update ([AUTO-TIME-2]) with no linked issue, directly addressing the "no closing keyword" concern raised in review #5805.

Review #5805 Summary (HAL9001, 2026-04-15T15:56:18Z — REQUEST_CHANGES)

This review was posted after the last grooming cycle (2026-04-14T16:53:27Z) and contains the following blocking issues that require action by the PR author:

Remaining Blockers (require PR author action)

  1. CI Failing (HARD BLOCKER) — Workflow run #13443 is failing on:

    • CI / lint — failure
    • CI / unit_tests — failure
    • CI / integration_tests — failure
    • CI / status-check — failure (aggregate gate)
      All CI checks must pass before merge per CONTRIBUTING.md.
  2. grooming-worker.md security concern — The change from "forgejo_*": deny to "forgejo_*": allow grants the grooming worker access to ALL Forgejo MCP tools, including dangerous write operations (forgejo_merge_pull_request, forgejo_delete_*, etc.). The specific allowlist below it becomes redundant and the deny-by-default security posture is lost. Must be reverted to deny with only the specific tools explicitly allowed.

  3. Commit type mismatch — The commit type is docs(timeline) but the PR includes substantive source code changes (80+ agent config files modified, 50+ new .opencode/skills/forgejo-api/ reference files). The commit type should reflect the actual scope of changes.

  4. Missing ISSUES CLOSED: footer — Commit messages must include an ISSUES CLOSED: #N footer when closing issues per CONTRIBUTING.md. None is present.

Resolved (addressed by previous grooming + PR author)

  • Milestone v3.2.0 assigned (by grooming worker [AUTO-GROOM-36])
  • Labels Type/Documentation + State/In Review applied (by grooming worker [AUTO-GROOM-36])
  • Merge conflicts resolved (by PR author)
  • No closing keyword concern addressed (by this grooming cycle — PR body updated to explicitly note standalone automation update)

Action Required

The PR author (HAL9000 / [AUTO-TIME-2]) must:

  1. Fix CI failures (lint, unit tests, integration tests)
  2. Revert grooming-worker.md forgejo_*: allowdeny, keeping only the specific tool allowlist
  3. Add ISSUES CLOSED: footer to commit message (or confirm N/A for standalone automation)

Automated by CleverAgents Bot
Supervisor: Grooming | Agent: grooming-pool-supervisor
Tag: [AUTO-GROOM-9385]

[GROOMED] Quality analysis complete. [AUTO-GROOM-9385] ## Checks Performed | Check | Result | |-------|--------| | Duplicate detection | ✅ No duplicates found | | Orphaned hierarchy | ✅ N/A — AUTO-TIME PR, exempt from Epic/parent requirements | | Stale activity | ✅ Last updated 2026-04-16 (today), not stale | | Missing labels | ✅ Labels present: `State/In Review` + `Type/Documentation` | | Incorrect labels | ✅ `State/In Review` is correct — open PR with active REQUEST_CHANGES review | | Milestone | ✅ `v3.2.0` is set | | Completed work not closed | ✅ N/A — PR is not merged | | Epic/Legendary completeness | ✅ N/A — this is a PR, not an Epic | | Dual status cleanup | ✅ N/A — title pattern `docs(timeline): [AUTO-TIME-2]...` is not a `[AUTO-*] Status:` tracking issue | | PR label sync with linked issue | ✅ N/A — standalone automation update, no linked issue | | Review remarks (ID 5805) | ⚠️ Reviewed — see below | ## Fixes Applied - ✅ **PR body updated** — Added explicit `## Notes` section stating this is a standalone automation update ([AUTO-TIME-2]) with no linked issue, directly addressing the "no closing keyword" concern raised in review #5805. ## Review #5805 Summary (HAL9001, 2026-04-15T15:56:18Z — REQUEST_CHANGES) This review was posted **after** the last grooming cycle (2026-04-14T16:53:27Z) and contains the following blocking issues that **require action by the PR author**: ### ❌ Remaining Blockers (require PR author action) 1. **CI Failing (HARD BLOCKER)** — Workflow run #13443 is failing on: - `CI / lint` — failure - `CI / unit_tests` — failure - `CI / integration_tests` — failure - `CI / status-check` — failure (aggregate gate) All CI checks must pass before merge per CONTRIBUTING.md. 2. **`grooming-worker.md` security concern** — The change from `"forgejo_*": deny` to `"forgejo_*": allow` grants the grooming worker access to ALL Forgejo MCP tools, including dangerous write operations (`forgejo_merge_pull_request`, `forgejo_delete_*`, etc.). The specific allowlist below it becomes redundant and the deny-by-default security posture is lost. **Must be reverted to `deny` with only the specific tools explicitly allowed.** 3. **Commit type mismatch** — The commit type is `docs(timeline)` but the PR includes substantive source code changes (80+ agent config files modified, 50+ new `.opencode/skills/forgejo-api/` reference files). The commit type should reflect the actual scope of changes. 4. **Missing `ISSUES CLOSED:` footer** — Commit messages must include an `ISSUES CLOSED: #N` footer when closing issues per CONTRIBUTING.md. None is present. ### ✅ Resolved (addressed by previous grooming + PR author) - ✅ Milestone `v3.2.0` assigned (by grooming worker [AUTO-GROOM-36]) - ✅ Labels `Type/Documentation` + `State/In Review` applied (by grooming worker [AUTO-GROOM-36]) - ✅ Merge conflicts resolved (by PR author) - ✅ No closing keyword concern addressed (by this grooming cycle — PR body updated to explicitly note standalone automation update) ### Action Required The PR author (HAL9000 / [AUTO-TIME-2]) must: 1. Fix CI failures (lint, unit tests, integration tests) 2. Revert `grooming-worker.md` `forgejo_*: allow` → `deny`, keeping only the specific tool allowlist 3. Add `ISSUES CLOSED:` footer to commit message (or confirm N/A for standalone automation) --- **Automated by CleverAgents Bot** Supervisor: Grooming | Agent: grooming-pool-supervisor Tag: [AUTO-GROOM-9385]
fix(agents): make bug-hunt-pool-supervisor tracking non-blocking to prevent initialization hangs
All checks were successful
CI / push-validation (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 33s
CI / typecheck (pull_request) Successful in 45s
CI / quality (pull_request) Successful in 3m42s
CI / build (pull_request) Successful in 3m43s
CI / integration_tests (pull_request) Successful in 4m1s
CI / security (pull_request) Successful in 4m23s
CI / e2e_tests (pull_request) Successful in 6m53s
CI / unit_tests (pull_request) Successful in 8m28s
CI / docker (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 14m27s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 24s
CI / quality (push) Successful in 50s
CI / security (push) Successful in 59s
CI / lint (push) Successful in 3m17s
CI / build (push) Successful in 3m17s
CI / typecheck (push) Successful in 4m31s
CI / unit_tests (push) Successful in 5m39s
CI / docker (push) Successful in 1m33s
CI / integration_tests (push) Successful in 7m23s
CI / e2e_tests (push) Successful in 7m39s
CI / coverage (push) Successful in 5m36s
CI / status-check (push) Successful in 0s
777a4eae43
Build: Added back the benchmark tests but made them so they only run after pull requests into master
Some checks failed
CI / push-validation (push) Successful in 17s
CI / build (push) Successful in 18s
CI / helm (push) Successful in 25s
CI / quality (push) Successful in 42s
CI / typecheck (push) Successful in 49s
CI / e2e_tests (push) Successful in 2m39s
CI / lint (push) Successful in 3m25s
CI / security (push) Successful in 4m4s
CI / integration_tests (push) Successful in 9m45s
CI / unit_tests (push) Successful in 10m32s
CI / docker (push) Successful in 21s
CI / coverage (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
19664f8162
Adds a comprehensive opencode skill under .opencode/skills/programming-patterns/
covering 90+ design, architectural, concurrency, and functional patterns.

- 108 files, 33,500+ lines across 13 reference categories
- Every pattern: pseudocode + tested Python + Go + JavaScript implementations
- All 239 code blocks verified passing (85 Python, 76 Go, 78 JS)
- 1,569-line SKILL.md with:
  - Master decision tree (all 14 categories with multi-pattern suggestions)
  - 34 situation-specific decision trees covering every programming scenario
    (new feature, refactoring, REST API, CLI, data pipeline, rule engine,
     external integration, performance, memory, notifications, plugins,
     caching, events, auth, reporting, vendor lock-in, domain model,
     business rules, observability, file I/O, scheduling, testability,
     third-party libs, concurrency, complex domain interactions)
  - 12 compound pattern-combination scenarios with full architecture maps
    (e-commerce checkout, REST endpoint, background jobs, real-time dashboard,
     microservice resilience, ML pipeline, text editor, legacy migration,
     multi-tenant SaaS, document approval, financial transactions, chat)
  - 'When Am I Allowed to Skip Patterns?' mandate table (answer: never)
  - Quick pattern lookup tables for all 90+ patterns
  - Complete reference index
- 476 → 1,569 → 2,244 lines total growth
- Decision trees: 6 → 34 → 51 situation-specific trees
- Compound scenarios: 12 → 18 full architecture maps
- New trees added in this pass:
    search/discovery, game/simulation, feature flags, subscriptions/billing,
    soft delete/archiving, i18n/localization, database optimization,
    AI agents/LLM systems, file upload/media, CMS, OAuth2/SSO,
    graph traversal, audit/compliance, real-time collaboration,
    API versioning, bulk/batch processing, pagination/filtering,
    webhook delivery (17 new trees)
- New scenarios added:
    user registration with email verification, faceted search,
    feature flag system, shopping cart with session, rate limiting
    infrastructure, AI agent with tool use (6 new scenarios)
- New sections:
    'Pattern Progression' (5-stage evolution for a data service and flag)
    'Minimum Pattern Set per Component Type' (table of 15 component types)
    'When to Skip Patterns — Never' table expanded to 25 rationalizations
- All file references validated (0 broken)
Growth: 2,244 → 2,811 lines

New decision trees added (51 → 67):
  GraphQL API, data validation & sanitization, payment processing,
  booking/reservation systems, recommendation engines, distributed locking,
  graceful startup/shutdown lifecycle, schema/data migration, SaaS onboarding
  wizards, social graphs, API SDK design, multi-step form/wizard UI,
  user preferences management, microservice chassis/platform,
  dependency injection containers, import/export systems

New compound scenarios added (18 → 23):
  Scenario 19: Payment processing with provider failover
  Scenario 20: Hotel/resource booking with concurrent hold resolution
  Scenario 21: SaaS onboarding with multi-tenant provisioning
  Scenario 22: Distributed rate limiting across service instances
  Scenario 23: Recommendation engine with A/B testing and fallback

New sections added:
  '🔗 Pattern Synergies' — 20-row table of patterns that are always better together
  ' Code Review Checklist' — 30-item pattern-coverage checklist for PRs
    covering every class, service, external call, conditional, loop, and test
Fixes and improvements from exhaustive audit:

Consistency fixes in SKILL.md:
- 'Pipe & Filter' → 'Pipe and Filter' (one stray '&' found and corrected)
- 'Singleton for factory instance' → clarified to 'register factory as
  singleton-scoped via DI container' (less misleading wording)
- Documentation Format section updated with note that SKILL.md itself is the
  authoritative source for related-pattern combinations

Coverage fix — Related Patterns sections:
- Added '## Related Patterns' to ALL 94 pattern files (was 0/94)
- Each section lists 3–6 related patterns with relationship descriptions
- Covers: why they're related, when to prefer one vs the other,
  and which are often confused

SOLID principles → Creational → Structural → Behavioral → Architectural →
Concurrency → Functional → Resilience → Data Access → Messaging →
Testing → Error Handling → Microservice — all 13 categories covered

Code verification:
- Python: 0 failures (all 85 testable blocks pass)
- Go: 0 failures (all 76 testable blocks pass)
- JavaScript: 0 failures (all 78 testable blocks pass)
- All 239 code blocks verified correct after edits

Final skill state:
- 108 files, 36,524 lines across 13 reference categories
- 94/94 pattern files have Related Patterns sections
- 2,815-line SKILL.md with 67 decision trees, 23 scenarios,
  0 broken references, 0 naming inconsistencies
fix(agents): improve label-manager permissions, merge supervisor clarity, and product-builder variable naming
All checks were successful
CI / push-validation (push) Successful in 24s
CI / helm (push) Successful in 26s
CI / build (push) Successful in 26s
CI / lint (push) Successful in 27s
CI / e2e_tests (push) Successful in 3m6s
CI / quality (push) Successful in 3m41s
CI / typecheck (push) Successful in 4m0s
CI / security (push) Successful in 4m37s
CI / integration_tests (push) Successful in 9m36s
CI / unit_tests (push) Successful in 10m51s
CI / docker (push) Successful in 1m19s
CI / coverage (push) Successful in 13m51s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h14m4s
CI / benchmark-regression (push) Has been skipped
21b831e35d
forgejo-label-manager.md:
- Refactored curl permission rules to use explicit allow/deny ordering with
  clear comments explaining each rule; consolidated overlapping deny patterns
- Switched to curl-only approach via forgejo-api skill (deny all Forgejo MCP tools)
- Added read: deny and skill forgejo-api: allow to enforce the curl-only model
- Clarified permission block structure: deny by default, specific allows per endpoint

pr-merge-pool-supervisor.md:
- Expanded 'What You Receive' section to list each field individually with bold
  labels for clarity (owner, repo, PAT, git email/name, briefing)

product-builder.md:
- Added 'Local Variable' column to the Required Information table so agents know
  the canonical variable names to reuse throughout prompts
- Added forgejo_url, forgejo_owner, and forgejo_repo as explicit gather targets
  with env var fallbacks and remote-detection instructions
- Added concrete remote URL parsing example showing how to extract host/owner/repo
Adds a comprehensive opencode skill under .opencode/skills/cleverthis-guidelines/
covering every rule, regulation, directive, and guideline governing CleverThis
projects and company operations. Synthesized from CONTRIBUTING.md and the
CleverThis Operations Code (C.O.C. v0.4, 70 pages).

- 12 files, 2,384 lines across 11 reference categories
- 1,059-line SKILL.md with 16 exhaustive decision trees covering every
  procedural situation: writing code, committing, submitting PRs, code review,
  creating issues, applying labels, ticket state transitions, sprint planning,
  triaging, point estimation, definition of done, authoring documents,
  confidentiality classification, security/credentials, FOSS, bug fixes (TDD),
  architectural decisions, and escalation paths

Reference files cover:
  commits/     — Conventional Changelog format, atomic commit rules, pre-commit
  pull-requests/ — all 12 PR requirements, review process, merge criteria
  testing/     — BDD/Behave (unit), Robot Framework (integration), 97% coverage
                 threshold (project-specific), TDD bug fix workflow, mocking rules
  issue-tracking/ — ticket hierarchy (Issue→Epic→Legendary), all quality criteria,
                    mandatory issue sections, full label system (State/Type/Priority/
                    MoSCoW/Special), lifecycle flow, dependency direction rules
  sprints/     — DSDM, 6-stage triaging, MoSCoW, poker point estimation,
                 all 4 sprint ceremonies with complete rule sets
  code-style/  — SOLID, design patterns, import rules, error handling, type safety,
                 LangChain/LangGraph guidelines, v3 vs legacy plan lifecycle
  security/    — gopass-only password management, Yubikey rules, encryption policy
  information/ — 5 confidentiality stamp levels, document authoring, email conventions
  organizational/ — C-level hierarchy, ELB, OCRB, all 12 committees, personnel review
  project-tools/ — nox commands, CI/CD, release process, Hatch, Commitizen setup
  open-source/ — FOSS governance, open standards mandate, POSIX compliance

Key project-specific facts documented:
  - Coverage threshold: 97% (overrides C.O.C. baseline of 85%)
  - BDD framework: Behave (not pytest alone)
  - Type checker: Pyright (never disabled, no type: ignore)
  - Bug fixes: mandatory TDD workflow with @tdd_expected_fail tagging
Added 11 new decision trees (branch naming, documentation traceability,
nox session guide, CI failure diagnosis, file organization, dev setup,
Issue/Epic/Legendary hierarchy, ticket well-scoped checklist, v3 vs
legacy plan workflow, release process, TDD issue-capture test detail).

Expanded existing trees with previously missing rules: specification-
first development mandate, file organization per directory, backwards
compatibility policy (none pre-v3.0.0), AssertionError-only rule for
TDD expected-fail steps, tdd/mN- and bugfix/mN- branch naming with
shared suffix requirement, different-assignees preference for TDD vs
fix, full CI job list with required-for-merge gates, all nox sessions
(e2e_tests, benchmark, benchmark_regression, complexity, docs, build).

Fixed PR approval count from 2 to 1 (project-specific override; self-
approval permitted per CONTRIBUTING.md). Updated Key Numbers table with
12 new rows covering CI triggers, release trigger, ULID format, required
CI jobs, backwards compat start, dependency direction, and more.

ISSUES CLOSED: #0
Remove project-specific src/cleveragents/ path (now src/<package>/ with
examples). Replace all bare nox/Pyright/ruff/Behave references with the
language-agnostic 'task runner / type checker / linter / BDD framework'
abstractions, keeping the project-specific tool as a parenthetical example.

Add ecosystem-equivalents reference table (Python, JS/TS, Java/Kotlin, Go)
in the Quick Command Reference. Generalise type-suppression rules across
languages (# type: ignore, @ts-ignore, @SuppressWarnings). Generalise
TDD assertion failure type requirement with Python, Java, and JS examples.
Generalise import rules, project manifest references, and directory layout
descriptions. Remove Python-only step-file naming; add multi-language
examples throughout.

LangChain/LangGraph and v3/legacy plan workflow sections are left as-is
and clearly labelled as project-specific.

ISSUES CLOSED: #0
Remove from SKILL.md and all reference files:
- 'Am I choosing between Legacy and v3 plan workflow?' decision tree
- LangChain/LangGraph sections (write-code tree, testing tree, code-style README, testing README)
- FakeListLLM / MemorySaver / TypedDict LangGraph references
- Backwards-compat pre-v3.0.0 policy block (project-version-specific)
- v3 ULID format and Backwards-compat-starts rows from Key Numbers table
- v3 Plan Lifecycle vs Legacy table from code-style README
- Master-tree branch pointing to the v3/legacy workflow tree

Generalise across all reference files:
- commits/README: pre-commit checklist uses 'task runner session (e.g. nox -s X)'
- pull-requests/README: fix approval count 2->1 with self-approval permitted;
  remove 'neither approver may be original author' (project allows self-approval);
  generalise automated-checks table command column
- testing/README: remove LangChain/LangGraph Testing section; generalise all
  bare nox commands with task-runner framing and language note at top
- code-style/README: rewrite General Principles to language-agnostic tooling
  guidance; generalise Import Guidelines with Python/Java/TS examples; rename
  and generalise Type Safety section; remove entire LangChain/LangGraph Best
  Practices section; remove entire v3 Plan Lifecycle vs Legacy section
- security/README: generalise bare nox -s security_scan reference
- issue-tracking/README: generalise subtask examples (Behave/nox)

ISSUES CLOSED: #0
docs(skill): final pass — remove remaining project-specific language, add multi-language examples
Some checks failed
CI / push-validation (push) Successful in 18s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 30s
CI / lint (push) Successful in 32s
CI / quality (push) Successful in 32s
CI / typecheck (push) Successful in 1m2s
CI / security (push) Successful in 1m3s
CI / integration_tests (push) Successful in 4m3s
CI / unit_tests (push) Successful in 5m37s
CI / docker (push) Successful in 8s
CI / e2e_tests (push) Successful in 7m25s
CI / coverage (push) Successful in 10m51s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
caaafacf45
SKILL.md:
- Remove stale 'v3 vs legacy plan workflow' reference from frontmatter description
- Change all git tag version examples from project-specific v3.6.0 to generic v1.2.3
- Branch name example: upgrade-langchain -> upgrade-dependencies
- Documentation traceability module path: was Python-only example, now shows
  Python, Java, TypeScript, and Go side by side
- Task runner session tree: remove bare Python tool names from BEFORE SUBMITTING
  and SPECIFIC SITUATIONS subsections (bandit+semgrep+vulture, vulture, Radon,
  MkDocs, Robot Framework) — session descriptions are now tool-agnostic

project-tools/README.md:
- Full rewrite from Python-only reference to language-agnostic guide
- Adds language/tooling note at top explaining Python/nox as the project example
- Comprehensive equivalents table covering Python, JS/TS, Java/Kotlin, and Go
  for every concern (task runner, lint, format, type check, unit/integration tests,
  coverage, security scan, unused code, complexity, build, docs, benchmarks)
- Project environment management section with language comparison table
- Dependency caching section with per-language cache key patterns
- Configuration files section as a multi-language comparison table
- Development setup checklist shows nox/npm/gradlew/go alternatives side by side
- 'Always Runnable' section with examples in all four ecosystems
- git tag example: v3.6.0 -> v1.2.3 (generic)

testing/README.md:
- 'Never use stub/pass implementations' -> 'Never use empty/stub implementations
  (no no-op bodies)' — removes Python-keyword 'pass' used as if universal

ISSUES CLOSED: #0
New skill covering all CONTRIBUTING.md project-specific rules that
supplement or override the generic cleverthis-guidelines skill. Prominently
declares override precedence at the top of SKILL.md and in every reference
file — this skill's rules apply unconditionally when they conflict with
the general skill.

SKILL.md (839 lines) contains:
- Override notice table comparing cleverthis-guidelines vs this project
  for 18 specific topics (framework, directories, tool names, etc.)
- Master decision tree routing all project-specific situations
- 9 detailed decision trees: file placement (exact directories), tests
  (Behave/Robot Framework rules), TDD bug fix workflow (full 6-step with
  branch naming), TDD issue-capture test (exact three-tag system with
  AssertionError enforcement), nox session reference (all sessions + CI
  job mappings + required-for-merge), CI failure diagnosis (per-job
  remediation), plan CLI (v3 vs legacy, ULID, storage backends),
  LangChain/LangGraph code (TypedDict, MemorySaver, BaseLanguageModel,
  FakeListLLM, canonical node pattern), Python imports (top-of-file,
  TYPE_CHECKING exception), dev env setup (complete tool inventory), and
  release process (backwards compat policy, Docker, secrets)
- Key Numbers table with 33 project-specific values

Reference files (1254 lines total):
- testing/README.md: Behave rules, Robot Framework, TDD tag system with
  full examples and validation rules, AssertionError requirement, coverage
  threshold, mock placement, LangGraph testing, ASV benchmarks
- ci-cd/README.md: all 13 CI jobs with nox session mappings, 3 workflow
  triggers, 5 required-for-merge checks, secrets table, caching policy,
  nightly quality sweep, branch protection
- toolchain/README.md: complete nox session catalogue, Pyright prohibition
  on # type: ignore, ruff config, Hatch, pyproject.toml as single source,
  pre-commit setup, Commitizen, Python import rules with examples, error
  handling patterns with Python code
- langchain-langgraph/README.md: TypedDict state, verb-based node naming,
  MemorySaver, conditional edges, BaseLanguageModel abstraction, prompt
  templates, sync+async requirement, output parsing, env var configuration,
  LangSmith disabled by default, retry decorators, canonical node template,
  FakeListLLM testing, state/workflow/streaming/memory test patterns
- file-organization/README.md: exact directory map, per-directory rules and
  prohibitions, docs/specification.md authority, BDD step-file naming rules
- cli-workflow/README.md: v3 vs legacy comparison table, ULID format, why
  mixing is impossible (separate storage backends), error diagnosis for
  common failure modes, manual migration steps, backwards compat policy

ISSUES CLOSED: #0
docs(skill): expand cleveragents-contributing SKILL.md with 7 new trees and deep expansions
Some checks failed
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 30s
CI / lint (push) Successful in 34s
CI / typecheck (push) Successful in 49s
CI / security (push) Successful in 52s
CI / build (push) Successful in 3m20s
CI / quality (push) Successful in 3m39s
CI / integration_tests (push) Successful in 4m10s
CI / e2e_tests (push) Successful in 4m31s
CI / unit_tests (push) Successful in 5m3s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 10m47s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
38a2773261
Add 7 new decision trees covering gaps found in CONTRIBUTING.md audit:

'Am I creating an issue?' — full issue anatomy: mandatory Metadata section
(exact commit message first line + branch name), Subtasks checkbox format
with example, Definition of Done section, label rules (State/Unverified
+Type+Priority; MoSCoW by owner only), Ref field rules, parent and blocking
link mechanics via Forgejo dependencies, bug issues companion TDD issue rule.

'Am I about to write code?' — spec-first mandate (read docs/specification.md
before any code), ADR process for architectural changes, branch must match
issue Metadata, test-first requirement, SOLID + arg validation + type
annotations requirements, prohibited list (# type: ignore, half-done work,
mocks in src/, if-testing guards).

'Am I about to commit?' — self-review diff (git add -p), atomicity rules
(one logical change, no cosmetic+functional mixing, code-move then modify),
completeness rules (tests + docs + changelog + ancillary files in same
commit), bisect-friendly / revertibility requirements, prescribed commit
first line verbatim from issue Metadata, Commitizen usage, pre-commit hook
rules, commit hygiene (topic branches, interactive rebase before merging).

'Am I submitting a PR?' — all 12 PR requirements numbered, with critical
dependency direction rule (PR→blocks→issue; reversed = deadlock with full
explanation), closing keywords, one Epic per PR, milestone + Type/ label,
after-submission state transitions, complete merge checklist.

'Am I reviewing a PR?' — eligibility and approval rules, CI gate check,
all 6 reviewer criteria (correctness, spec alignment, test quality, type
safety, readability, performance, security, style, documentation, commit
quality), requesting changes protocol, maintainer override rule.

'Am I documenting something?' — single canonical surface rule, traceability
(module.class.method + commit hash; never file:linenum), same-commit rule,
code-level docstring requirements, spec.md authority.

'Am I writing error handling?' — mandatory argument validation pattern
(before ANY other logic) with Python code example, exception propagation
rules (never suppress, never bare except, never return None on error),
fail-fast principles, AssertionError for TDD expected-fail steps.

Expand existing trees:
- 'Am I writing tests?': add multi-level testing mandate (unit + integration +
  benchmarks required for every task), what tests must cover (error paths,
  edge cases, failure modes), test failure remediation rules
- 'Which nox session?': clarify format vs format --check difference
- 'Am I looking at a CI failure?': add quality/complexity failure diagnosis,
  common causes per job type, more detail on coverage and unit_tests failures
- 'Am I writing LangChain/LangGraph code?': clarify MemorySaver requirement,
  memory class selection (Buffer vs Entity), format prohibition reasoning
- 'Which directory?': add /benchmarks/ to directory tree

Update master decision tree with 6 new branches for new trees.
Update Key Numbers table with 4 new rows.
Update frontmatter description to cover all new topics.
Override highlights table: add commit first line and PR dep direction rows.

ISSUES CLOSED: #0
New skill covering every architectural concept, entity, workflow, CLI
command, and design decision from docs/specification.md (47,181 lines
read in full). Explains WHAT the system is intended to build.

SKILL.md (1,282 lines) — 18 decision trees:
- 'What am I working on?' master routing tree
- 'What is a Plan?' — 4 phases, reversion rules, hierarchy, decision tree
- 'How does a plan run?' — step-by-step Action→Strategize→Execute→Apply
- 'What is a Decision?' — 10 types, data model, dual tree+DAG structure,
  timing by phase, decision recording protocol
- 'How do I correct a plan?' — revert vs append modes, Strategize vs
  Execute correction mechanics, affected subtree computation
- 'What is an Invariant?' — 4 scopes, precedence chain (plan>action>
  project>global), non-overridable globals, Invariant Reconciliation Actor
- 'What is an Actor?' — LLM vs graph types, Jinja2+env-var preprocessing,
  specialized roles (strategy/execution/estimation/invariant)
- 'What is a Tool?' — 4 sources, capability metadata, 4-stage lifecycle,
  resource bindings and slots, anonymous tools, metadata overrides
- 'What is a Validation?' — Tool subtype, always read-only, required vs
  informational modes, 3 attachment scopes, wrapping existing tools
- 'What is a Skill?' — composition patterns, includes, tool overrides
- 'What is a Resource?' — physical vs virtual, 34+ built-in types, DAG,
  type inheritance, 5-sandbox strategies, 6-level execution env routing,
  devcontainer auto-discovery and lazy activation
- 'What is a Project?' — resource linking, multi-project plans, context
  config, execution environment
- 'Which automation profile applies?' — 8 built-in profiles, 11 flags,
  Safety Profile, Automation Guard, Semantic Escalation, progressive trust
- 'How does naming work?' — namespace format, types, ULID vs name identity
- 'Which CLI command do I use?' — every command group with key flags
- 'What is the architecture?' — 4 layers, 2 deployment modes, A2A
  protocol (full method routing, error codes, streaming), DI container
- 'What is the ACMS?' — UKO, CRP, 10-slot pipeline, hot/warm/cold tiers
- 'Which milestone am I in?' — v3.2.0–v3.8.0 status + cross-milestone invariants
- Key Numbers table (35 entries)

Reference files (1,974 lines across 9 files):
- plan-lifecycle: phase mechanics, decision tree schema, checkpoint triggers,
  child plan execution modes, merge strategies, plan identity fields
- entities: data models for Plan, Decision, Action, Session, Invariant,
  AutomationProfile, SafetyProfile, AutomationGuard, Namespace
- architecture: 4-layer diagram, deployment modes, complete A2A method
  routing tables (standard + plan + registry + context + sync + health),
  streaming events, authentication, error taxonomy, full tech stack
- automation-profiles: threshold table for all 8 built-in profiles, use
  cases, Semantic Escalation algorithm, custom profile YAML
- actors-tools-skills: Actor/Tool/Validation/Skill YAML schemas with
  complete annotated examples, Jinja2 filter reference, LSP integration
  detail, LSPToolAdapter, actor context precedence
- resources: complete resource type hierarchy (all 34+ types), sandbox
  strategies, type inheritance rules, execution environment routing,
  devcontainer integration, CLI usage
- acms: UKO 4-layer ontology, CRP, 10-slot Context Assembly Pipeline with
  per-slot component names, hot/warm/cold eviction rules, skeleton
  compression, context view configuration
- milestones: v3.2.0–v3.8.0 deliverables, architectural constraints, and
  definitions of done; cross-milestone quality gates and invariants
- cli-commands: complete CLI reference for all command groups with all
  flags: plan, action, session, project, actor, skill, tool, validation,
  resource, invariant, automation-profile, lsp, config, utility

ISSUES CLOSED: #0
Add 5 new decision trees:

'Should this be an Issue, Epic, or Legendary?' — hierarchy decision with
one-commit test, demonstrable-capability test, strategic-pillar test,
promotion/demotion rules, and quick self-test questions.

'Is this ticket well-scoped?' — all 11 quality criteria from CONTRIBUTING.md
(Atomicity, Single Commit, Single Responsibility, Assignability, Verifiability,
Self-Containment, Implementation Independence, Subtask Decomposition, Leaf Node,
Mandatory Parent, Finite Completion) each with pass/fail test.

'What ticket state should this be in?' — full lifecycle state machine
(Unverified → Verified → In progress → Paused → In review → Completed →
Wont Do) with who can perform each transition and what labels are required.

'Am I triaging a ticket?' — maintainer triage 7-step process (duplicate
check, validity assessment, completeness check, label assignment, milestone
assignment, parent linking, bug companion TDD issue check).

'What branch name should I use?' — branch naming rules with all prefixes
(feature/mN-, bugfix/mN-, tdd/mN-), source of milestone number N, kebab-
case rules, traceability requirement (shared suffix between tdd/ and bugfix/
branches), and examples.

Expand existing trees:

'Am I creating an issue?' — add 11 quality criteria summary, better
acceptance criteria examples (good vs bad), note on Metadata section
verbatim requirements.

'Am I about to write code?' — add SOLID principle explanations per letter,
add WIP management section (git stash vs draft commits), add ADR step detail.

'Am I about to commit?' — add cosmetic-first-then-functional guidance,
expand commit hygiene section with interactive rebase detail and goal of
clean history (no wip commits).

'Am I submitting a PR?' — add post-submission CI failure handling (new
commit not force-push), add major-change review handling (address every
comment).

'Am I reviewing a PR?' — add blocking vs suggestion vs question comment
distinction with examples, add approve-with-suggestions pattern, add no-wip-
commits check in commit quality section.

'Am I writing tests?' — add integration vs e2e distinction (integration =
real services; e2e = real LLM API keys), add Gherkin quality guidelines
(Given/When/Then semantics, scenario naming, one behavior per scenario),
add Hypothesis property-based testing section, expand test failure
remediation to include real-bug-triggers-TDD-workflow path.

'Am I looking at a CI failure?' — add integration_tests failure diagnosis,
add guidance for when unit test failure reveals a real bug (triggers full
TDD workflow), expand benchmark-regression failure guidance.

'Am I documenting something?' — add CHANGELOG entry format (good vs bad
examples), add ADR document structure (Title/Status/Context/Decision/
Consequences/Alternatives).

'Am I writing LangChain/LangGraph code?' — add RxPY reactive streams
section (Subject, BehaviorSubject, ReplaySubject, operators, backpressure).

'Am I releasing a new version?' — add 'when to bump' section noting most
PRs don't need bumps, add release failure recovery procedure (delete tag,
fix, re-tag).

Update master decision tree to add 5 new branches.
Update Key Numbers table: add benchmark regression threshold (10%),
cyclomatic complexity limit (>10), Hypothesis entry, benchmark regression
threshold, issue quality criteria count, bug priority rule, TDD assignee
preference.
Update frontmatter to document new coverage.

ISSUES CLOSED: #0
docs(skill): final pass — 2 new trees, expanded trees, reference file completions
Some checks failed
CI / push-validation (push) Successful in 10s
CI / helm (push) Successful in 28s
CI / build (push) Successful in 29s
CI / typecheck (push) Successful in 53s
CI / lint (push) Successful in 3m44s
CI / quality (push) Successful in 3m58s
CI / security (push) Successful in 4m12s
CI / e2e_tests (push) Successful in 4m49s
CI / integration_tests (push) Successful in 6m47s
CI / unit_tests (push) Successful in 8m3s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m51s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
47b4c5fbfb
SKILL.md (1,878 → 2,099 lines, 23 → 25 decision trees):

New 'Is my work done?' tree — comprehensive Definition of Done checklist
synthesising all requirements across implementation, three-level testing
(unit/integration/benchmarks), coverage ≥ 97%, five CI quality checks,
commit anatomy (atomic, body, footer), documentation (changelog, docstrings,
CONTRIBUTORS.md), PR fields (description, dep direction, Epic scope, milestone,
Type label), CI checks, and issue state transitions.

New 'What design pattern should I use?' tree — all 24 patterns from
CONTRIBUTING.md categorised across Creational (Factory, Abstract Factory,
Builder, Prototype, Singleton, Object Pool, DI), Structural (Adapter, Bridge,
Composite, Decorator, Facade, Flyweight, Proxy, Module), Behavioral (Chain of
Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy,
Template Method, Visitor, Null Object), and Architectural (Repository, Unit of
Work, Service Layer, MVC, CQRS, Event Sourcing, Specification). Every pattern
includes a when-to-use description and a CleverAgents-specific example.

Expand 'Am I about to write code?' — link to new patterns tree.
Expand 'Am I writing tests?' — add And/But/Outline Gherkin keywords with
examples, add Scenario Outline explanation, add naming good/bad examples with
anti-pattern list, expand integration test guidance with what good integration
tests exercise (CLI, DB, filesystem, service layer), expand Hypothesis section
with 6 specific use cases and recommended strategies to build.
Expand 'Am I about to commit?' — improve commit body guidance with a worked
example showing what to write (context, why this approach, risks, caveats).
Expand 'Am I triaging?' — add Epic/Legendary triage rules (no point estimates,
no milestone assignment, sign-off labels required for closure).

Add two branches to master decision tree for new trees.

Reference files:

references/testing/README.md (187 → 296 lines):
- Add Gherkin Quality Guidelines section: Given/When/Then semantics table,
  Scenario Outline explanation with example, naming rules with good/bad table,
  common anti-patterns (implementation details, multiple behaviors, missing Then)
- Add Property-Based Testing (Hypothesis) section: when-to-use table with 6
  specific CleverAgents use cases, recommended strategies to build, integration
  with Behave step definitions with worked example

references/langchain-langgraph/README.md (307 → 375 lines):
- Add RxPY Reactive Streams section: Subject vs BehaviorSubject vs ReplaySubject
  decision table with when-to-use and code examples, key operators table with
  use cases and code examples, backpressure management patterns (debounce vs
  throttle_first with examples), and clear list of what RxPY is NOT for

references/toolchain/README.md (271 → 272 lines):
- Add Hypothesis to tool table (property-based testing, nox -s unit_tests)

references/ci-cd/README.md (124 → 131 lines):
- Fix project-specific version number in release example (v3.6.0 → generic
  v<MAJOR>.<MINOR>.<PATCH>)
- Add release failure recovery procedure (verify secrets → build locally →
  delete tag → fix → re-tag)

ISSUES CLOSED: #0
New skill covering the complete operational architecture of the CleverAgents
autonomous development system — how it runs, not what it builds.

SKILL.md (539 lines) with 9 decision trees:
- 'What does this agent do?' — prefix-to-agent mapping for all 17+1 supervisors
- 'Which supervisor owns this worker?' — reverse lookup from worker tags
- 'How many workers can this supervisor run?' — N_FULL/N_HALF/N_QUARTER formula
  with concrete examples at N=4, N=8, N=16
- 'How does a supervisor launch a worker?' — full dispatch flow including tier
  selector indirection, model inheritance, and credential inclusion
- 'Do I need to launch something asynchronously?' — when/why to use prompt_async
  vs synchronous calls; why only async-agent-manager calls localhost:4096
- 'How do I apply a label to an issue or PR?' — forbidden operations list;
  forgejo-label-manager delegation; org-level vs repo-level; never create
- 'How do I create a tracking issue or announcement?' — CREATE_TRACKING_ISSUE
  invariants; READ-then-CREATE startup order; announcement lifecycle
- 'Which announcements should I consume?' — full relevancy matrix per agent type
- 'How does state recovery work on startup?' — mandatory READ-then-CREATE protocol
  with urgency tiers based on offline duration
- 'Which model tier should I use?' — escalation decision logic with comment parsing
- 'How do credentials get to workers?' — env var hierarchy; why workers never
  read env vars; two bot accounts (primary + reviewer)
- 'Is something wrong with the system?' — diagnostic patterns

Complete supervisor registry table (17 supervisors + product-builder) with
prefixes, agent definitions, worker counts, sleep intervals, and tracking prefixes.
Key Numbers table (25 entries covering all timeouts, thresholds, and intervals).

Reference files (1,292 lines across 6 files):

agent-registry/README.md — full agent hierarchy diagram, all 17 pool supervisor
detailed entries (purpose, worker count, sleep, worker tag pattern, special
notes), worker-to-supervisor mapping table, utility subagent catalog (35+
entries), shared prompt fragment catalog.

async-operations/README.md — why prompt_async exists (fire-and-forget vs
blocking); complete OpenCode Server API reference (list sessions, create
session, prompt_async, get status, get messages, get specific session, delete
session) with curl examples and response shapes; full session naming convention
with all supervisor and worker tag patterns in a table; common operations
(starting supervisors/workers, checking status, detecting stuck sessions,
cleanup); error handling policy (retry 3×).

tracking-system/README.md — status vs announcement issue distinction; the
one-at-a-time invariant; cycle number uniqueness; rolling average interval
formula (0.90×old + 0.10×actual); CREATE_TRACKING_ISSUE step-by-step process;
mandatory startup recovery protocol (READ then CREATE, with wrong-order warning);
discovery patterns; announcement lifecycle; priority labels for announcements
and when to use each; label rules (NEVER create; org-level only; always use
forgejo-label-manager; forbidden Forgejo MCP tools list); forgejo-api skill
curl patterns for label operations; complete automation-tracking-manager
operations table.

tier-system/README.md — four model tiers (haiku/codex/sonnet/opus) with model
IDs, cost ranks, and use cases; how tier selectors work (pass-through inheritance
mechanism, full call chain diagram); progressive escalation decision table;
reading escalation history from attempt comments; human escalation trigger
(Opus×3 same-problem) and steps; default model assignments for all agents
grouped by model; runtime Gemini 2.5 Pro overrides.

credential-flow/README.md — all environment variables with required/optional/
default columns; auto-detection of FORGEJO_URL/OWNER/REPO from git remote;
credential hierarchy diagram; two bot accounts (primary vs reviewer) and why;
worker credential rules (NEVER read env vars; everything from prompt); what a
supervisor must include in every worker prompt; CA_MAX_PARALLEL_WORKERS
formula with examples at N=1/4/8/16; security notes.

coordination/README.md — claim protocol (CLAIM/HEARTBEAT/RELEASE comment
prefixes); claim lifecycle; expiry (2 hours without heartbeat); availability
check algorithm; exact comment formats for all three types; PR work conflict
matrix (code-change vs merge-attempt vs review); session-level deduplication
via tag search (primary mechanism); system-watchdog monitoring of violations;
startup deduplication by product-builder; bot signature formats; announcement
relevancy matrix quick reference table.

ISSUES CLOSED: #0
SKILL.md:
- Expand 'Which announcements should I consume?' from a partial example
  (only showed IMP-SUP and said 'use agent-prefix-info for the rest') to the
  FULL canonical cross-agent attention table: all 17 supervisors plus
  product-builder, every source prefix with its minimum priority threshold
  and rationale, universal baseline rule, and rule-of-thumb note
- 'How do I apply a label?' tree: replace detailed label scope breakdown
  (State/, Priority/, MoSCoW/, Type/) and detailed forgejo-label-manager
  internals with cross-references to cleveragents-contributing and
  cleverthis-guidelines; keep only system-critical labels (Automation
  Tracking, needs feedback, Blocked) and the forbidden operations list
  (which is an agent permission concern unique to this system)
- 'How does a supervisor launch a worker?' Step 5: replace 'CONTRIBUTING.md
  rules (commit standards, testing, PR requirements)' with reference to the
  cleveragents-contributing skill, noting that product-builder pre-loads
  these via ref-reader and passes them in briefings
- Quick Reference: add explicit pointers to cleveragents-contributing and
  forgejo-api skills for the label-related lines
- Frontmatter description: rewrite Covers section to remove duplicated label
  scope and forgejo-api curl content; add explicit note that label rules and
  scopes live in cleveragents-contributing and cleverthis-guidelines, and
  that curl patterns are in the forgejo-api skill

tracking-system/README.md:
- Remove entire 'Label Rules (CRITICAL)' section (Never Create Labels, Only
  Org-Level Labels, Always Use forgejo-label-manager, scope conflict rules)
  — this is fully covered in cleveragents-contributing
- Remove entire 'The forgejo-api Skill and Label Operations' section
  (paginated org label fetch loop, PUT replace-all curl, DELETE single label
  curl) — this belongs in the forgejo-api skill which forgejo-label-manager
  loads automatically
- Replace both removed sections with a focused 'System-Specific Labels'
  section covering only what is unique to the system: Automation Tracking
  as the universal discovery mechanism and needs feedback as the human
  escalation signal that stops worker dispatch
- Priority labels table: change from defining what each priority level IS
  (duplicates cleverthis-guidelines) to showing when to use each for
  autonomous system announcements specifically; add cross-reference note

coordination/README.md:
- Remove duplicated 'Announcement Relevancy Matrix Quick Reference' table
  (9 rows covering only some supervisors) — the full authoritative table is
  now in SKILL.md; replace with a two-sentence pointer to SKILL.md and
  agent-prefix-info for programmatic lookup

ISSUES CLOSED: #0
agent-registry/README.md:
- Remove typecheck-fixer 'Never uses type: ignore' rule (contributing rule,
  lives in cleveragents-contributing not the system registry)
- Remove coverage-improver '>=97%' threshold (project-specific threshold,
  lives in cleveragents-contributing)
- Change new-issue-creator description from 'following CONTRIBUTING.md format'
  to 'following the project issue format' with cross-reference pointer
- Remove subtask-loop trivial description; expand to show the full
  implement → test → quality gates → review loop it manages
- Remove duplicate forgejo-label-manager entry ('See above.') — was listed
  twice in the utility subagents table
- Add cross-reference note at top of Utility Subagents section: descriptions
  focus on system role; project-specific rules (testing philosophy, quality
  gates, commit standards, issue format) are in cleveragents-contributing
- AUTO-IMP-SUP dispatch ordering: add inline cross-reference note pointing
  to cleveragents-contributing and cleverthis-guidelines for label definitions
- AUTO-OWNR description: replace specific label names ('MoSCoW labels',
  'Wont Do') with generic role description + cross-reference note

SKILL.md:
- Reference Index: fix tracking-system entry description — remove 'label rules'
  (those were removed from tracking-system last pass); replace with accurate
  description of what the file now covers (Automation Tracking and needs
  feedback labels as system-specific labels)

No system-specific content was removed: all agent prefixes, the full
announcement relevancy matrix, worker tag patterns, sleep intervals, worker
count formulas, tier system mechanics, tracking system operations, credential
propagation hierarchy, and claim/heartbeat/release protocol are fully preserved.

ISSUES CLOSED: #0
docs(skill): add full redundancy and self-healing documentation to cleveragents-system skill
All checks were successful
CI / push-validation (push) Successful in 22s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 32s
CI / lint (push) Successful in 33s
CI / typecheck (push) Successful in 48s
CI / quality (push) Successful in 53s
CI / security (push) Successful in 1m9s
CI / integration_tests (push) Successful in 4m12s
CI / e2e_tests (push) Successful in 6m43s
CI / unit_tests (push) Successful in 7m1s
CI / coverage (push) Successful in 6m59s
CI / docker (push) Successful in 1m33s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h13m54s
CI / benchmark-regression (push) Has been skipped
c9dc70004c
Add new references/redundancy/README.md (280 lines) covering:
- Three-layer redundancy architecture overview (product-builder / watchdog / supervisors)
  with the key insight that each layer uses a different observation mechanism to
  prevent blind spots between layers
- Layer 1 (product-builder): fast cycle (60s liveness), deep inspection (5-min message
  reading with anti-pattern catalogue: error loops, circular patterns, policy violations,
  context exhaustion), worker health check (pool count vs expected), hourly verification
- Layer 2 (system-watchdog): independent 5-min audit using Forgejo tracking issue
  STALENESS rather than OpenCode session status — catches frozen-but-alive sessions
  that appear healthy to product-builder; session introspection for anti-pattern
  detection; clear role separation (watchdog detects, product-builder restarts)
- Layer 3 (supervisor self-monitoring): per-cycle worker health checks, stuck
  detection (15-min threshold), completed vs crashed distinction, pool filling
- State persistence as the foundation of self-healing: everything externalized
  to Forgejo (tracking issues, attempt comments, claim protocol, announcements)
- Supervisor crash-recovery pattern: session crash → product-builder detects ≤60s →
  relaunch → READ_TRACKING_STATE first → light/moderate/full recovery based on
  offline duration → resume from recovered state
- Worker crash-recovery pattern: crash → supervisor detects in next cycle →
  Forgejo evidence check → re-dispatch at same or escalated tier
- Two independent health signals table: OpenCode (session presence/status, latency
  60s) vs Forgejo (tracking staleness, latency 2×interval) — what each catches
- Complete failure mode catalogue (13 failure types with: who detects it, how,
  recovery action, and whether recovery is automatic or requires human)
- async-agent-monitor health classifications: healthy/stuck/idle/finished/errored
  with threshold and configurable idle_threshold_minutes parameter
- Redundancy gaps and limitations: product-builder has no watcher; watchdog
  detects but cannot restart; worker downtime latency varies by supervisor sleep

Expand SKILL.md (539 → 775 lines, 10 → 13 decision trees):
- Significantly expand 'Is something wrong?' tree: now lists every failure
  type with which layer detects it, how detection works, and recovery action
  (supervisor missing, frozen, error loop, waiting for input, worker crashed,
  worker frozen, supervisor stopped dispatching, orphaned claim, CI violations,
  multiple supervisors down, product-builder crash)
- Add new 'How does the system self-heal?' tree: full three-layer redundancy
  decision tree with per-layer mechanics (fast/deep/hourly cadences), the
  Forgejo persistence foundation, complete supervisor crash-recovery pattern,
  complete worker crash-recovery pattern, and the single-point-of-failure note
- Update Key Numbers table: add worker health check and hourly cycle entries;
  clarify session health threshold is configurable; add watchdog staleness
  threshold (2×interval); add supervisor max downtime (≤60s); add worker
  re-dispatch latency (varies by sleep interval)
- Update frontmatter description to cover self-healing and redundancy
- Update reference index to describe the new redundancy reference file

ISSUES CLOSED: #0
Build: Removed gemini as a model option
Some checks failed
CI / lint (push) Successful in 19s
CI / quality (push) Successful in 19s
CI / typecheck (push) Successful in 44s
CI / security (push) Successful in 44s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 29s
CI / push-validation (push) Successful in 21s
CI / unit_tests (push) Successful in 7m32s
CI / integration_tests (push) Successful in 7m29s
CI / docker (push) Successful in 1m0s
CI / coverage (push) Successful in 9m26s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / e2e_tests (push) Successful in 6m11s
CI / status-check (push) Successful in 1s
d167155e90
Build: Stopped using codex for most of our agents
Some checks failed
CI / helm (push) Successful in 29s
CI / push-validation (push) Successful in 34s
CI / lint (push) Successful in 3m22s
CI / build (push) Successful in 3m48s
CI / integration_tests (push) Successful in 3m57s
CI / quality (push) Successful in 4m13s
CI / typecheck (push) Successful in 4m30s
CI / security (push) Successful in 4m50s
CI / e2e_tests (push) Successful in 6m28s
CI / unit_tests (push) Successful in 9m8s
CI / coverage (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
93c349d531
Introduces a new skill containing the complete specification for the five
universal operational rules every agent must follow: exhaustive pagination
protocol, label management via forgejo-label-manager, bot signature format,
credential flow hierarchy, and localhost:4096 restriction.
refactor(agents): migrate all agent definitions to use skills for universal rules
All checks were successful
CI / push-validation (push) Successful in 16s
CI / lint (push) Successful in 18s
CI / typecheck (push) Successful in 31s
CI / helm (push) Successful in 31s
CI / build (push) Successful in 32s
CI / e2e_tests (push) Successful in 3m27s
CI / quality (push) Successful in 3m43s
CI / integration_tests (push) Successful in 4m0s
CI / security (push) Successful in 4m11s
CI / unit_tests (push) Successful in 8m38s
CI / coverage (push) Successful in 5m38s
CI / docker (push) Successful in 1m30s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h13m4s
CI / benchmark-regression (push) Has been skipped
bb97f1450e
Replace ~600 chars of verbatim per-agent boilerplate with skill references.
All 91 agents now load cleveragents-agent-rules for exhaustive pagination,
label management, bot signatures, and credential flow rules. Adds explicit
skill: "*": deny + targeted allows to every agent permission block, matching
the existing bash: and task: deny-first convention. Tier selectors carry no
skill permissions since they are pure pass-through with no skill references
in their bodies. forgejo-label-manager also grants forgejo-api for its curl
pattern reference.
Revert "refactor(agents): migrate all agent definitions to use skills for universal rules"
Some checks failed
CI / build (push) Successful in 18s
CI / helm (push) Successful in 30s
CI / typecheck (push) Successful in 50s
CI / push-validation (push) Successful in 21s
CI / lint (push) Successful in 3m19s
CI / e2e_tests (push) Failing after 3m21s
CI / quality (push) Successful in 3m50s
CI / security (push) Successful in 4m13s
CI / integration_tests (push) Successful in 9m9s
CI / unit_tests (push) Successful in 9m9s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 8m26s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Successful in 1h14m43s
CI / benchmark-regression (push) Has been skipped
0257841825
This reverts commit bb97f1450e.
chore: merge master into PR branch to resolve mergeable status
Some checks failed
CI / lint (pull_request) Failing after 32s
CI / quality (pull_request) Successful in 44s
CI / security (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / coverage (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 16s
CI / push-validation (pull_request) Successful in 11s
CI / e2e_tests (pull_request) Failing after 2m34s
CI / integration_tests (pull_request) Failing after 6m52s
CI / unit_tests (pull_request) Failing after 8m33s
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 2s
f97981832d
HAL9001 left a comment

Code Review — PR #9385

Title: docs(timeline): [AUTO-TIME-2] Day 104 supervisor cycle 2 update
Reviewer: HAL9001
HEAD SHA: f97981832d4cebe3f566c40e54cf6ac1e04d2acc


Review Against 12 Quality Criteria

Criterion 1 — CI Passing

CI status for the current HEAD SHA is unclear / potentially failing. The CI agent found this SHA associated with a workflow run that has FAILURE status. Previous reviews (now stale) confirmed CI was failing on lint, unit_tests, integration_tests, and status-check. No evidence of a passing CI run on the current HEAD has been found. All CI checks must pass before merge per CONTRIBUTING.md.

Criterion 2 — Spec Compliance

Not applicable — this PR modifies only .opencode/agents/*.md and .opencode/skills/ documentation files. No source code changes to src/cleveragents/.

Criterion 3 — No type: ignore Suppressions

Not applicable — no Python source files changed.

Criterion 4 — No Files >500 Lines

Multiple newly added skill reference files exceed 500 lines:

  • .opencode/skills/cleveragents-contributing/SKILL.md2,099 lines
  • .opencode/skills/cleverthis-guidelines/SKILL.md1,775 lines
  • .opencode/skills/cleveragents-spec/SKILL.md1,282 lines
  • .opencode/skills/forgejo-api/SKILL.md917 lines
  • .opencode/skills/cleveragents-system/SKILL.md775 lines
  • .opencode/agents/pr-review-pool-supervisor.md816 changes (752 additions)

While these are documentation/reference files rather than source code, the 500-line limit applies to all files per the stated criteria. These files should be split into smaller modules or the criterion should be explicitly waived for documentation skill files.

Criterion 5 — All Imports at Top of File

Not applicable — no Python source files changed.

Criterion 6 — Tests Are Behave Scenarios in features/

Not applicable — no test files changed.

Criterion 7 — No Mocks in src/cleveragents/

Not applicable — no source code changes.

Criterion 8 — Layer Boundaries Respected

Not applicable — no source code changes.

Criterion 9 — Commit Message Follows Commitizen Format

The commit type docs(timeline) is technically valid Commitizen format, but it misrepresents the actual scope of this PR:

  • 80+ .opencode/agents/*.md configuration files modified
  • 50+ new .opencode/skills/ reference files added
  • New .forgejo/workflows/master.yml CI workflow added

A docs commit type implies documentation-only changes. The actual scope includes agent configuration changes, new CI workflow infrastructure, and comprehensive skill reference libraries. A more accurate type would be chore or feat, or the PR should be split by concern.

Criterion 10 — PR References Linked Issue with Closes #N

No Closes #N or Fixes #N keyword is present. The PR body explicitly states: "This is a standalone automation update ([AUTO-TIME-2]) with no linked issue." While this explanation is appreciated, CONTRIBUTING.md requires PRs to link to their associated issue. If this is truly standalone, a formal exemption or process exception should be documented. Additionally, the commit message is missing the required ISSUES CLOSED: footer.

Criterion 11 — Branch Name Follows Convention

Branch name: timeline/day-104-2026-04-14-auto-time-2

Required convention: feature/mN-name or bugfix/mN-name

This branch does not follow the required naming convention. Timeline update branches should use a recognized prefix (feature/, bugfix/, chore/, docs/) followed by a milestone reference.

Criterion 12 — @tdd_expected_fail Tag Removed

Not applicable — this is not a bug fix PR.


Security Concern (Unresolved from Previous Reviews)

grooming-worker.md: Previous reviews flagged the change from "forgejo_*": deny to "forgejo_*": allow as a critical security concern. This grants the grooming worker access to ALL Forgejo MCP tools including dangerous write operations (forgejo_merge_pull_request, forgejo_delete_*, etc.). The specific allowlist below it becomes redundant and the deny-by-default security posture is lost. This concern was raised in reviews #5682 and #5805 and has not been confirmed as resolved.


Positive Aspects

  1. Agent permission hardening — Adding "*": deny, doom_loop: deny, question: deny, "sequential-thinking*": allow to 40+ agent configs is a consistent, security-positive improvement.
  2. ## Rules## **CRITICAL** Rules — Consistent emphasis upgrade across all agents improves clarity.
  3. forgejo-label-manager.md overhaul — Migration from Forgejo MCP tools to curl-only approach is well-structured and improves security isolation.
  4. bug-hunt-pool-supervisor.md — Non-blocking tracking call is a good resilience improvement.
  5. New .opencode/skills/ library — Comprehensive Forgejo API, spec, system, and contributing reference documentation is a valuable addition to the agent knowledge base.
  6. Milestone and labelsv3.2.0 milestone and Type/Documentation + State/In Review labels are correctly set (resolved by grooming worker).
  7. Merge conflicts resolved — PR is currently mergeable.

Required Actions Before Merge

  1. Fix CI — Confirm all CI checks pass on the current HEAD SHA. Resolve any lint, unit test, or integration test failures.
  2. Address file size violations — Either split large skill files (>500 lines) into smaller modules, or obtain an explicit documented exemption for documentation-only files.
  3. Fix commit type — Change docs(timeline) to a type that accurately reflects the scope (e.g., chore(agents) or feat(skills)) or split the PR by concern.
  4. Add ISSUES CLOSED: footer — Add to commit message, or explicitly document N/A for standalone automation updates.
  5. Fix branch name — Rename to follow feature/mN-name or docs/mN-name convention.
  6. Confirm grooming-worker.md security fix — Verify that "forgejo_*": allow has been reverted to deny with only the specific tool allowlist.

Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-review-pool-supervisor

## Code Review — PR #9385 **Title**: `docs(timeline): [AUTO-TIME-2] Day 104 supervisor cycle 2 update` **Reviewer**: HAL9001 **HEAD SHA**: `f97981832d4cebe3f566c40e54cf6ac1e04d2acc` --- ### Review Against 12 Quality Criteria #### ❌ Criterion 1 — CI Passing CI status for the current HEAD SHA is **unclear / potentially failing**. The CI agent found this SHA associated with a workflow run that has **FAILURE** status. Previous reviews (now stale) confirmed CI was failing on `lint`, `unit_tests`, `integration_tests`, and `status-check`. No evidence of a passing CI run on the current HEAD has been found. All CI checks must pass before merge per CONTRIBUTING.md. #### ✅ Criterion 2 — Spec Compliance Not applicable — this PR modifies only `.opencode/agents/*.md` and `.opencode/skills/` documentation files. No source code changes to `src/cleveragents/`. #### ✅ Criterion 3 — No `type: ignore` Suppressions Not applicable — no Python source files changed. #### ❌ Criterion 4 — No Files >500 Lines Multiple newly added skill reference files exceed 500 lines: - `.opencode/skills/cleveragents-contributing/SKILL.md` — **2,099 lines** - `.opencode/skills/cleverthis-guidelines/SKILL.md` — **1,775 lines** - `.opencode/skills/cleveragents-spec/SKILL.md` — **1,282 lines** - `.opencode/skills/forgejo-api/SKILL.md` — **917 lines** - `.opencode/skills/cleveragents-system/SKILL.md` — **775 lines** - `.opencode/agents/pr-review-pool-supervisor.md` — **816 changes** (752 additions) While these are documentation/reference files rather than source code, the 500-line limit applies to all files per the stated criteria. These files should be split into smaller modules or the criterion should be explicitly waived for documentation skill files. #### ✅ Criterion 5 — All Imports at Top of File Not applicable — no Python source files changed. #### ✅ Criterion 6 — Tests Are Behave Scenarios in `features/` Not applicable — no test files changed. #### ✅ Criterion 7 — No Mocks in `src/cleveragents/` Not applicable — no source code changes. #### ✅ Criterion 8 — Layer Boundaries Respected Not applicable — no source code changes. #### ❌ Criterion 9 — Commit Message Follows Commitizen Format The commit type `docs(timeline)` is technically valid Commitizen format, but it **misrepresents the actual scope** of this PR: - 80+ `.opencode/agents/*.md` configuration files modified - 50+ new `.opencode/skills/` reference files added - New `.forgejo/workflows/master.yml` CI workflow added A `docs` commit type implies documentation-only changes. The actual scope includes agent configuration changes, new CI workflow infrastructure, and comprehensive skill reference libraries. A more accurate type would be `chore` or `feat`, or the PR should be split by concern. #### ❌ Criterion 10 — PR References Linked Issue with `Closes #N` No `Closes #N` or `Fixes #N` keyword is present. The PR body explicitly states: *"This is a standalone automation update ([AUTO-TIME-2]) with no linked issue."* While this explanation is appreciated, CONTRIBUTING.md requires PRs to link to their associated issue. If this is truly standalone, a formal exemption or process exception should be documented. Additionally, the commit message is missing the required `ISSUES CLOSED:` footer. #### ❌ Criterion 11 — Branch Name Follows Convention Branch name: `timeline/day-104-2026-04-14-auto-time-2` Required convention: `feature/mN-name` or `bugfix/mN-name` This branch does not follow the required naming convention. Timeline update branches should use a recognized prefix (`feature/`, `bugfix/`, `chore/`, `docs/`) followed by a milestone reference. #### ✅ Criterion 12 — `@tdd_expected_fail` Tag Removed Not applicable — this is not a bug fix PR. --- ### Security Concern (Unresolved from Previous Reviews) **`grooming-worker.md`**: Previous reviews flagged the change from `"forgejo_*": deny` to `"forgejo_*": allow` as a critical security concern. This grants the grooming worker access to ALL Forgejo MCP tools including dangerous write operations (`forgejo_merge_pull_request`, `forgejo_delete_*`, etc.). The specific allowlist below it becomes redundant and the deny-by-default security posture is lost. This concern was raised in reviews #5682 and #5805 and has not been confirmed as resolved. --- ### ✅ Positive Aspects 1. **Agent permission hardening** — Adding `"*": deny`, `doom_loop: deny`, `question: deny`, `"sequential-thinking*": allow` to 40+ agent configs is a consistent, security-positive improvement. 2. **`## Rules` → `## **CRITICAL** Rules`** — Consistent emphasis upgrade across all agents improves clarity. 3. **`forgejo-label-manager.md` overhaul** — Migration from Forgejo MCP tools to curl-only approach is well-structured and improves security isolation. 4. **`bug-hunt-pool-supervisor.md`** — Non-blocking tracking call is a good resilience improvement. 5. **New `.opencode/skills/` library** — Comprehensive Forgejo API, spec, system, and contributing reference documentation is a valuable addition to the agent knowledge base. 6. **Milestone and labels** — `v3.2.0` milestone and `Type/Documentation` + `State/In Review` labels are correctly set (resolved by grooming worker). 7. **Merge conflicts resolved** — PR is currently mergeable. --- ### Required Actions Before Merge 1. **Fix CI** — Confirm all CI checks pass on the current HEAD SHA. Resolve any lint, unit test, or integration test failures. 2. **Address file size violations** — Either split large skill files (>500 lines) into smaller modules, or obtain an explicit documented exemption for documentation-only files. 3. **Fix commit type** — Change `docs(timeline)` to a type that accurately reflects the scope (e.g., `chore(agents)` or `feat(skills)`) or split the PR by concern. 4. **Add `ISSUES CLOSED:` footer** — Add to commit message, or explicitly document N/A for standalone automation updates. 5. **Fix branch name** — Rename to follow `feature/mN-name` or `docs/mN-name` convention. 6. **Confirm `grooming-worker.md` security fix** — Verify that `"forgejo_*": allow` has been reverted to `deny` with only the specific tool allowlist. --- **Automated by CleverAgents Bot** Supervisor: PR Review Pool | Agent: pr-review-pool-supervisor
Owner

Code Review Decision: REQUEST CHANGES

Formal review #6304 posted above. Summary of blocking issues:

  1. CI Not Confirmed Passing (Criterion 1) — CI status unclear/potentially failing on HEAD SHA.
  2. Files >500 Lines (Criterion 4) — Multiple new skill files exceed limit (up to 2,099 lines).
  3. Commit Type Mismatch (Criterion 9) — docs(timeline) misrepresents actual scope (80+ agent configs, 50+ skill files, new CI workflow).
  4. No Closing Keyword (Criterion 10) — No Closes #N; missing ISSUES CLOSED: footer in commit.
  5. Branch Name Convention (Criterion 11) — timeline/day-104-2026-04-14-auto-time-2 does not follow feature/mN-name convention.
  6. Security Concerngrooming-worker.md forgejo_*: allow grants all Forgejo MCP write permissions (unconfirmed if resolved).

Resolved: milestone, labels, merge conflicts, PR body updated.


Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-review-pool-supervisor

**Code Review Decision: REQUEST CHANGES** Formal review #6304 posted above. Summary of blocking issues: 1. **CI Not Confirmed Passing** (Criterion 1) — CI status unclear/potentially failing on HEAD SHA. 2. **Files >500 Lines** (Criterion 4) — Multiple new skill files exceed limit (up to 2,099 lines). 3. **Commit Type Mismatch** (Criterion 9) — `docs(timeline)` misrepresents actual scope (80+ agent configs, 50+ skill files, new CI workflow). 4. **No Closing Keyword** (Criterion 10) — No `Closes #N`; missing `ISSUES CLOSED:` footer in commit. 5. **Branch Name Convention** (Criterion 11) — `timeline/day-104-2026-04-14-auto-time-2` does not follow `feature/mN-name` convention. 6. **Security Concern** — `grooming-worker.md` `forgejo_*: allow` grants all Forgejo MCP write permissions (unconfirmed if resolved). Resolved: milestone, labels, merge conflicts, PR body updated. --- **Automated by CleverAgents Bot** Supervisor: PR Review Pool | Agent: pr-review-pool-supervisor
freemo closed this pull request 2026-04-19 18:02:46 +00:00
Some checks failed
CI / lint (pull_request) Failing after 32s
CI / quality (pull_request) Successful in 44s
CI / security (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / coverage (pull_request) Has been skipped
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 16s
CI / push-validation (pull_request) Successful in 11s
CI / e2e_tests (pull_request) Failing after 2m34s
CI / integration_tests (pull_request) Failing after 6m52s
CI / unit_tests (pull_request) Failing after 8m33s
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 2s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!9385
No description provided.