agents: discussion mode — devs talk in threads; building starts only on explicit signal
ci / lint (push) Skipped
ci / lint (pull_request) Successful in 11s
ci / lint (push) Skipped
ci / lint (pull_request) Successful in 11s
Mentioning a dev agent no longer spawns a branch + PR machinery. It is a
CONVERSATION by default: the dev reads what it needs and replies in-thread.
- route.sh: workmode=build|discuss for mode=pr agents. Build ONLY on the
explicit signals: PR-thread comments (resume), the pm delegation template
("please proceed with issue …" — a human can write it too), or the qa bounce
("please address my review …"). Everything else = discuss: no branch prep,
no "🔨 Building" notice.
- run-agent.sh: discussion ACTION for devs (read-only consult, no edits/
commits/markers). @pm gains 'ASK: @<dev> <question>' to consult devs before
planning — gather feasibility/effort input, then DELEGATE when enough is
known. One ASK per reply; never ASK+DELEGATE together.
- publish.sh: pm ASK handler posts the question as a discussion trigger; dev
discuss path posts the reply (+run report) and skips ALL git/PR machinery
(stray edits discarded). ASK marker stripped from visible replies.
- agent.yml: WORKMODE threaded to Run-agent + Publish. README documents it.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
63d9147cd7
commit
ef43d69309
@@ -53,8 +53,25 @@ vision=$(jq -r --arg a "$name" '.[$a].vision' /tmp/agents.json)
|
||||
mode=$(jq -r --arg a "$name" '.[$a].mode' /tmp/agents.json)
|
||||
# Compact JSON array of the skills this agent may load (scopes permission.skill in install-opencode.sh).
|
||||
skills=$(jq -c --arg a "$name" '.[$a].skills // []' /tmp/agents.json)
|
||||
echo "Routing to @$name (model=$model vision=$vision mode=$mode skills=$skills)"
|
||||
{ echo "name=$name"; echo "model=$model"; echo "vision=$vision"; echo "mode=$mode"; echo "skills=$skills"; } >> "$GITHUB_OUTPUT"
|
||||
|
||||
# --- WORKMODE for dev (mode=pr) agents: build vs DISCUSS. ---
|
||||
# Mentioning a dev is a CONVERSATION by default — it replies in the thread without creating a
|
||||
# branch or PR. Actual building starts ONLY on the explicit signals:
|
||||
# - a comment on a PR thread (resuming existing work), or
|
||||
# - the pm delegation template ".. please proceed with issue .." (also usable by a human), or
|
||||
# - the qa bounce template ".. please address my review ..".
|
||||
# This lets @pm (via its ASK marker) and the maintainer consult devs to gather information first,
|
||||
# and explicitly start the build later — see publish.sh / run-agent.sh.
|
||||
workmode=build
|
||||
if [ "$mode" = "pr" ] && [ -z "$IS_PR" ]; then
|
||||
if printf '%s' "$scan" | grep -qiE 'please (proceed with issue|address my review)'; then
|
||||
workmode=build
|
||||
else
|
||||
workmode=discuss
|
||||
fi
|
||||
fi
|
||||
echo "Routing to @$name (model=$model vision=$vision mode=$mode workmode=$workmode skills=$skills)"
|
||||
{ echo "name=$name"; echo "model=$model"; echo "vision=$vision"; echo "mode=$mode"; echo "workmode=$workmode"; echo "skills=$skills"; } >> "$GITHUB_OUTPUT"
|
||||
|
||||
# Act as the agent's own Gitea user when its token is set; else the built-in bot.
|
||||
case "$name" in
|
||||
@@ -67,7 +84,10 @@ git config user.email "$name@ffaerber.duckdns.org"
|
||||
API="${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}"
|
||||
hdr=(-H "Authorization: token $TOK" -H "Content-Type: application/json")
|
||||
branch_ref=""
|
||||
if [ -n "$IS_PR" ]; then # comment on a PR -> resume its branch
|
||||
if [ "$workmode" = "discuss" ]; then # conversation only — no branch, no PR machinery
|
||||
echo "discussion mode — staying on main, no branch prep"
|
||||
{ echo "branch=main"; echo "new=false"; } >> "$GITHUB_OUTPUT"
|
||||
elif [ -n "$IS_PR" ]; then # comment on a PR -> resume its branch
|
||||
ref=$(curl -s -H "Authorization: token $GT" "$API/pulls/$NUM" | jq -r .head.ref)
|
||||
branch_ref="$ref"
|
||||
git fetch origin "$ref" && git checkout "$ref"
|
||||
|
||||
Reference in New Issue
Block a user