Repository navigation
Description
🤖 Kelos Agent @gjkim42
Latest verdict
-
Status:
VALID -
Checked at:
2026-11-03T06:01:30Z -
Evidence: Kelos
mainmoved froma6f6225tod0ae450through #1867 (shareable Console session URLs) and #1868 (Session subsessions). Neither touchesself-development/orinternal/examples/self_development_test.go. The last commit touchingself-development/is still 3040ff1 (Oct 15), andb1e0398...mainchanges none of the cited files, so the permalinks below still matchmain. The prompt still has the problem:- In
agora-config-update.yaml, line 65 still callsagentconfig.yaml"shared Agora role instructions". - Lines 93–99 still route "Shared changes (affect all Agora agents)" there.
- Lines 115–121 still give no way to withdraw an unsupported change from the agent's own PR.
- README line 253 repeats the wording.
The wiring is unchanged and still pinned by
internal/examples/self_development_test.go(lines 202–211):agora-workersandagora-pr-responder(Codex,gpt-6.1-sol) load onlybase-agent.agora-dev-agentis loaded only byagora-triageandagora-squash-commits.
PR #1664 is still open and unassigned at
30a8a25. It still adds only a two-line docs rule toagentconfig.yaml, which the Documentation completeness check inagora-reviewer.yaml(line 214) already covers. It has had no activity since the Sept 24 comment, and is still the only open PR touchingself-development/agora/. On the Agora side:mainis still2f3ddab(#7, July 7), and there are no open PRs.- The only open issues are the unassigned fake-user slot #5 and fake-strategist slot #8. Both were refreshed in the last day.
- Agora's Makefile targets (
test,update,verify,build,build-cli,build-server,image,run,clean) still match whatagentconfig.yamllists.
The Open Actions counterpart, #1626, is still open and unassigned. #766 still covers a different fleet. I rechecked the lower-ranked candidates, and none outranks this one:
- The
agora-reviewersticky lookup (lines 329–333) still pairs--slurpwith--jq, whichgh2.103.3 rejects. PR Add CLI tool for task management #7 still has a single sticky comment, so no Agora failure has been observed. The same lookup appears in reviewer files across all four fleets, so it does not fit an Agora-only slot. - Line 81 of the fake-user prompt still suggests
go run ./cmd/agora. - Step 7 of
agora-squash-commits(lines 120–122) still addskelos/needs-input, which no Agora spawner filters on.
The last two remain minor.
- In
Area
Prompt Tuning
Problem and impact
agora-config-update is the only loop that turns Agora PR review feedback into agent configuration. Its prompt describes self-development/agora/agentconfig.yaml as "shared Agora role instructions" and routes "Shared changes (affect all Agora agents)" there. The fleet is not wired that way:
agora-dev-agent(agentconfig.yaml) is loaded only byagora-triageandagora-squash-commits. Neither of them writes Agora code.- The agents whose PRs get reviewed are the
agora-workersandagora-pr-responderSessions, which run Codex (gpt-6.1-sol). They load onlybase-agent, which the Codex entrypoint writes to$CODEX_HOME/AGENTS.md. They take Agora's project conventions fromAGENTS.mdin thekelos-dev/agoracheckout, which Codex reads natively. This wiring is deliberate and pinned byinternal/examples/self_development_test.go. - The planner, reviewer, fake-user, and fake-strategist each load their own inline AgentConfig.
The map went stale on July 23, when 612303d moved agora-pr-responder from agora-dev-agent to base-agent only. Since then, a lesson about implementation output, which is the most common kind of review feedback, lands in a file that no implementing agent reads. The resulting PR looks like a fix but changes nothing for the agents that made the mistake. The prompt also has no path for withdrawing such a change once a run notices it, so the PR stays open.
Evidence from the workflows and agent activity
- PR #1664 is the only PR
agora-config-updatehas ever opened. It has been open and unassigned since Aug 19, and was last pushed Aug 31. It adds a docs rule toagentconfig.yamlin response to Agora PR #7, and its description says "The shared rule lives inself-development/agora/agentconfig.yamlso all Agora implementation agents receive it." In fact the rule reaches only triage and squash-commits. - The Sept 24 run commented on that PR that "the line added here never reaches the agents that left out the docs in Require AGORA_URL for server CLI commands agora#7". It then left the PR open and handed the decision to a maintainer. It said the SessionSpawner fix was "outside the
self-development/agora/scope this agent is allowed to edit", but both files are underself-development/agora/. The prompt gives the agent no accurate picture of which agent loads which config, and no allowed action once it finds its own PR is wrong. - The PR Add CLI tool for task management #7 lapse was already caught where a check can reach it. The Documentation completeness check in
agora-reviewerhas existed since the initial port. It flagged the missing docs as P2, and the responder fixed them in the same cycle. - Prompt:
agora-config-update.yamlfile map, lines 62–66, routing, lines 90–99, and existing-PR handling, lines 115–121. - Wiring:
agora-workers.yamllines 56–57,agora-pr-responder.yamllines 63–64,agora-triage.yamllines 49–51,agora-squash-commits.yamllines 59–61, and the test pins. - The README's How It Works section describes the wiring correctly, but its config-update section, line 253 repeats the prompt's "shared Agora role instructions in
agentconfig.yaml" wording.
Proposed change
In self-development/agora/agora-config-update.yaml:
-
Replace the
agentconfig.yamlbullet in the file map (line 65) with:self-development/agora/agentconfig.yaml:agora-dev-agent, loaded only byagora-triageandagora-squash-commits- The inline AgentConfigs in
agora-planner.yaml,agora-reviewer.yaml,agora-fake-user.yaml, andagora-fake-strategist.yaml, each loaded only by its own spawner - The
agora-workersandagora-pr-responderSessions load onlybase-agent, and read Agora's project conventions fromAGENTS.mdin thekelos-dev/agorarepository, which this agent does not edit
-
Replace the "Shared changes" and "Task-specific changes" blocks (lines 93–99) with routing by the agent that produced the output under review. Keep the base-agent skills rule.
Route each lesson to the configuration that the agent behind the reviewed output actually loads:
- Triage or squash-commits behavior:
agentconfig.yaml - Planner, reviewer, fake-user, or fake-strategist behavior: that spawner's prompt or inline AgentConfig
- Implementation output from
agora-workersoragora-pr-responder(code, tests, docs, commits, PR descriptions): no file here reaches those Sessions. Do not add these rules toagentconfig.yaml, and do not expand the Sessions' minimalinitialPrompt. If a review-time check would catch the problem andagora-reviewer.yamldoes not already have it, add it there. Otherwise, make no change for that lesson. - Keep shared skills only in
self-development/base-agent.yaml. Do not duplicate them in Agora role AgentConfigs.
- Triage or squash-commits behavior:
-
Extend the existing-PR constraint (lines 115–121) with:
If an existing unassigned PR from this agent contains changes that this routing does not allow, or that the evidence no longer supports, remove them. If no changes remain, close the PR with a comment explaining why.
Then update line 253 of self-development/agora/README.md to describe the same routing.
Acceptance criteria
agora-config-update.yamlstates which agents loadagentconfig.yaml, which load each inline AgentConfig, and which load onlybase-agent. It no longer saysagentconfig.yamlaffects all Agora agents.- Lessons are routed by the agent that produced the reviewed output. Rules for worker or responder implementation output never go to
agentconfig.yaml. They go toagora-reviewer.yamlwhen a review-time check fits and is not already there. - The agent may remove unsupported changes from its own unassigned PR, and close that PR when nothing remains. The assigned-PR guard, the one-PR-per-run rule,
/kind cleanup, andrelease-note: NONEare unchanged. self-development/agora/README.mddescribes the same routing.agentConfigRefsdo not change, sointernal/examples/self_development_test.goneeds no update. Only files underself-development/agora/change, andmake verifypasses.- Post-merge check: the next
agora-config-updaterun closes PR #1664. Its only change adds an implementation rule toagentconfig.yaml, andagora-reviewer.yamlalready has the matching check.
Related work and scope
- PR #1664 is the misrouted PR itself. This issue fixes the prompt that produced it, and closing Teach Agora agents to document public contract changes #1664 is the expected outcome rather than a separate change.
- #766 covers
kelos-config-updateand Kelos's inline AgentConfigs, a different fleet and a different gap. - Adding
agora-dev-agentto the two SessionSpawners is not proposed. Thebase-agent-only Session wiring is deliberate across all four fleets and pinned by the test.agora-dev-agentalso carries ephemeral-container and bot-identity text that does not fit Sessions running on the maintainer's token with a persistent volume. - Open question for the maintainer: should lessons that no review-time check can catch be proposed for Agora's
AGENTS.md(for example, as akelos-dev/agoraissue)? That would mirror howkelos-config-updateupdates the KelosAGENTS.md. This proposal leaves it out. - The Kanon and Open Actions config-update prompts use the same "affect all … agents" wording. They are outside this issue's scope.
- Also considered, ranked lower:
- The fake-user prompt's
go run ./cmd/agorastarts the CLI, not the server, andmake buildis described as "the agora binary" although it buildsbin/agoraandbin/agora-server. Agents fall back tomake run. - The public-contract lists in triage, planner, and reviewer omit the
agoraCLI commands and flags. No triage, plan, or review run has happened since July, so no failure has been observed yet.
- The fake-user prompt's
Activity
[-][agora-self-update] Prompt Tuning: preserve Agora proposals during verdict refreshes[/-][+][agora-self-update] Prompt Tuning: fold validated corrections into retained Agora proposals, not the verdict[/+][-][agora-self-update] Prompt Tuning: fold validated corrections into retained Agora proposals, not the verdict[/-][+][agora-self-update] Prompt Tuning: agora-config-update routes implementation lessons to an AgentConfig no implementing agent loads[/+]