chore(agents): improve ca-uat-tester — enforce comment-based progress reports

Approved proposal: #2369
Pattern: prompt_compliance_failure
Evidence: ~180 spam progress report issues created as separate Forgejo
issues instead of comments on the tracking issue. Issues #2182-#2359
are almost all individual progress report issues despite the agent
definition already containing instructions to use comments.
Fix: Add prominent WARNING box with exact tool names, concrete
negative/positive examples, self-check step, and explicit tool call
in pseudocode to make the distinction unmistakable.

ISSUES CLOSED: #2369
This commit is contained in:
2026-04-03 18:42:06 +00:00
parent c6596f764b
commit fa5ebe1301
+26 -6
View File
@@ -102,6 +102,17 @@ set timeout explicitly. You MUST NOT voluntarily exit — sleep and re-poll.
### Pool Supervision Loop
> ⚠️ **CRITICAL: Progress reports are COMMENTS on a tracking issue, NOT new issues.**
>
> Use `forgejo_create_issue_comment(owner, repo, TRACKING_ISSUE_NUMBER, body)`
> for ALL progress reports. **NEVER** use `forgejo_create_issue()` for progress
> reports — that creates separate issues and pollutes the tracker.
>
> ```
> ❌ WRONG: forgejo_create_issue(title="[UAT-SUPERVISOR] Progress Report...")
> ✅ RIGHT: forgejo_create_issue_comment(index=TRACKING_ISSUE_NUMBER, body="## Progress Report...")
> ```
**IMPORTANT: Progress reports MUST be posted as comments on a single tracking
issue — NEVER as separate new issues.** At startup, create ONE tracking issue
and reuse it for ALL progress updates throughout the session.
@@ -212,11 +223,13 @@ LOOP:
active[next_area] = NEW_SID
# ── Step 4: Post progress (as COMMENT on tracking issue) ─────
# NEVER create a new Forgejo issue for progress reports.
# Always post as a comment on TRACKING_ISSUE_NUMBER.
# ⚠️ Use forgejo_create_issue_comment — NOT forgejo_create_issue.
if cycle % 10 == 0:
post comment on issue #TRACKING_ISSUE_NUMBER:
"## UAT Pool Supervisor — Progress Report (Cycle <cycle>)
forgejo_create_issue_comment(
owner=<owner>,
repo=<repo>,
index=TRACKING_ISSUE_NUMBER,
body="## UAT Pool Supervisor — Progress Report (Cycle <cycle>)
**Time**: <current UTC timestamp>
**HEAD**: <last_master_sha[:12]>
@@ -232,6 +245,10 @@ LOOP:
---
**Automated by CleverAgents Bot**
Supervisor: UAT Testing | Agent: ca-uat-tester"
)
# SELF-CHECK: Verify you used forgejo_create_issue_comment above,
# NOT forgejo_create_issue. If you accidentally created a new issue,
# close it immediately with forgejo_issue_state_change(state="closed").
# ── IMMEDIATELY loop back ────────────────────────────────────
```
@@ -461,8 +478,11 @@ No exceptions — every comment, every issue body, every PR description.
- **NEVER create new Forgejo issues for progress reports.** In Pool
Supervisor Mode, create ONE tracking issue at startup and post ALL
progress updates as comments on that single issue. Creating separate
issues for each progress report pollutes the issue tracker.
progress updates as comments on that single issue using
`forgejo_create_issue_comment(index=TRACKING_ISSUE_NUMBER, ...)`.
Creating separate issues for each progress report pollutes the issue
tracker. If you catch yourself calling `forgejo_create_issue` for a
progress report, STOP — use `forgejo_create_issue_comment` instead.
- **NEVER work in /app.** Always use your isolated clone (Worker Mode) or
Forgejo API only (Pool Supervisor Mode).
- **NEVER modify code.** You are a tester, not a fixer. File issues only.