From 305aeb085cf49b4f9016dea01411e02e22931a0a Mon Sep 17 00:00:00 2001 From: Felix Faerber Date: Mon, 6 Jul 2026 10:09:52 +0300 Subject: [PATCH] publish: trigger comments speak in first person (no agent self-mention) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The fixed trigger templates referred to their own author in the third person — e.g. @qa posting 'please address @qa's review above' (seen on PR #80) or a dev posting 'the dev has pushed an update'. Reworded to first person ('my review', 'I have pushed', 'per my plan'), which also makes routing order-independent: each trigger now mentions ONLY its target agent. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitea/workflows/scripts/publish.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/scripts/publish.sh b/.gitea/workflows/scripts/publish.sh index 05cfd31..5ce5f52 100755 --- a/.gitea/workflows/scripts/publish.sh +++ b/.gitea/workflows/scripts/publish.sh @@ -107,7 +107,7 @@ if [ "$MODE" != "pr" ]; then PRN=$(resolve_pr) if grep -qiE '^[[:space:]]*APPROVE[[:space:]]*$' /tmp/agent_out.md; then post_to "$ISSN" "$(printf '✅ Reviewed PR #%s — looks good.\n\n%s%s' "${PRN:-?}" "$reply" "$activity")" - trig "$ISSN" "@pm — @qa approved PR #${PRN:-?} (issue #$ISSN). Over to you." + trig "$ISSN" "@pm — I have reviewed and approved PR #${PRN:-?} (issue #$ISSN). Over to you." elif grep -qiE '^[[:space:]]*BOUNCE:[[:space:]]*@(junior|senior|lead)' /tmp/agent_out.md; then dev=$(grep -oiE 'BOUNCE:[[:space:]]*@(junior|senior|lead)' /tmp/agent_out.md | head -1 | grep -oiE '(junior|senior|lead)' | tr '[:upper:]' '[:lower:]') [ -z "$dev" ] && [ -n "$PRN" ] && dev=$(curl -sS "${hdr[@]}" "$API/pulls/$PRN" | jq -r '.user.login // "junior"') @@ -120,7 +120,7 @@ if [ "$MODE" != "pr" ]; then post_to "$ISSN" "🛑 Still not right after 3 fix attempts on PR #${PRN:-?} — handing to @ffaerber (details on the PR)." else n=$((prior + 1)) - trig "$dest" "@${dev:-junior} please address @qa's review above and update PR #${PRN:-?} (fix attempt $n/3)." + trig "$dest" "@${dev:-junior} please address my review above and update PR #${PRN:-?} (fix attempt $n/3)." fi elif grep -qiE '^[[:space:]]*HALT([_ ]AUTOPILOT)?[[:space:]]*$' /tmp/agent_out.md; then [ "$AUTOPILOT" = "true" ] && del_autopilot_label "$ISSN" @@ -216,7 +216,7 @@ if [ "$MODE" != "pr" ]; then echo "DELEGATE:@qa but no open PR yet for issue #$ISSN — not firing" fi else - trig "$ISSN" "@$target please proceed with issue #$ISSN per the plan above (delegated by $NAME)." + trig "$ISSN" "@$target please proceed with issue #$ISSN per my plan above." fi else echo "no DELEGATE marker — not delegating (agent is asking or finished)" @@ -297,6 +297,6 @@ else # on the PR thread. The qa↔dev loop is direct — it does NOT go back through @pm each round. prpost "$prnum" "$(printf 'Pushed an update to PR #%s.%s' "$prnum" "$activity")" case "$NAME" in - junior|senior|lead) trig "$prnum" "@qa please re-verify PR #$prnum — the dev has pushed an update." ;; + junior|senior|lead) trig "$prnum" "@qa please re-verify PR #$prnum — I have pushed an update." ;; esac fi