-
Notifications
You must be signed in to change notification settings - Fork 12
Description
🤖 Kelos Self-Update Agent @gjkim42
Area: Configuration Alignment
Summary
PR #555 (merged 2026-03-08) co-located AgentConfigs with their TaskSpawners for 4 agents, but left kelos-triage and kelos-config-update on the shared kelos-dev-agent from agentconfig.yaml. This creates an inconsistent maintenance pattern: updates to agentsMD must now be applied to 6 separate locations (5 inline AgentConfigs + 1 shared file), and the README incorrectly claims all agents share a single config.
Issue #515 identified the agentsMD content drift and missing types/state fields before PR #555 was merged. This issue covers the structural fragmentation introduced by that PR, the resulting README inaccuracy, and the fact that the content drift from #515 now affects 6 copies instead of 1.
Findings
1. Incomplete co-location: 2 agents still use the shared kelos-dev-agent config
After PR #555, the AgentConfig references are:
| TaskSpawner / Task | AgentConfig | Source | Co-located? |
|---|---|---|---|
kelos-workers |
kelos-workers-agent |
kelos-workers.yaml |
Yes |
kelos-self-update |
kelos-self-update-agent |
kelos-self-update.yaml |
Yes |
kelos-fake-user |
kelos-fake-user-agent |
kelos-fake-user.yaml |
Yes |
kelos-fake-strategist |
kelos-fake-strategist-agent |
kelos-fake-strategist.yaml |
Yes |
kelos-triage |
kelos-dev-agent |
agentconfig.yaml |
No |
kelos-config-update |
kelos-dev-agent |
agentconfig.yaml |
No |
squash-commits-task |
kelos-dev-agent |
agentconfig.yaml |
No |
This means:
kelos-triageandkelos-config-updatelack distinct identities — they comment as "Kelos Agent" while the other 4 agents each have unique names (e.g., "Kelos Worker Agent", "Kelos Strategist Agent")- Updating
agentsMDconventions requires touching 5 files (4 inline + 1 shared), and the shared file only affects 3 consumers. Easy to miss one.
2. README.md line 9 is now inaccurate
self-development/README.md line 9 states:
All agents share an `AgentConfig` (`agentconfig.yaml`) that defines git identity, comment signatures, and standard constraints.
After PR #555, this is false. Only kelos-triage, kelos-config-update, and squash-commits-task use the shared config. The other 4 agents have their own co-located configs.
3. All 6 agentsMD definitions are identical and missing CLAUDE.md conventions
Every agentsMD (both the shared agentconfig.yaml and the 4 inline ones added by PR #555) contains the same content — and it's still missing the conventions from CLAUDE.md/AGENTS.md that issue #515 identified:
| Convention in CLAUDE.md / AGENTS.md | Present in agentsMD? |
|---|---|
| "Keep changes minimal. Do not refactor, reorganize, or 'improve' code beyond what was explicitly requested." | No — only has "Keep changes minimal and focused" |
| "For CI/release workflows, always use existing Makefile targets rather than reimplementing build logic in YAML." | No |
| "e2e tests are hard to run locally. Push changes and use the PR's CI jobs to run them instead." | No |
| Test scope: "(including integration, e2e)" | No |
Pull Requests section (PR template, /kind labels, release-note block) |
No |
Directory Structure section (cmd/, test/e2e/, .github/workflows/) |
No |
This matters most for kelos-workers and kelos-config-update which create PRs — they lack the PR template instructions in their agentsMD, relying on agents to find the template file themselves.
4. kelos-workers still missing explicit types and state fields
As noted in #515 (still unresolved), kelos-triage.yaml explicitly declares:
types:
- issues
state: openkelos-workers.yaml omits both. While the label filters work in practice, adding these fields makes intent explicit and keeps the two issue-driven spawners consistent.
Proposed Changes
Option A: Complete the co-location (recommended)
Finish what PR #555 started — give kelos-triage and kelos-config-update their own co-located AgentConfigs with distinct identities:
- Add an AgentConfig to
kelos-triage.yamlwith namekelos-triage-agentand identity "Kelos Triage Agent" - Add an AgentConfig to
kelos-config-update.yamlwith namekelos-config-update-agentand identity "Kelos Config-Update Agent" - Update
squash-commits-task.yamlto referencekelos-workers-agent(since it operates on worker PRs) - Delete or repurpose
agentconfig.yaml(if no consumers remain) - Update
README.mdline 9 to reflect the co-location pattern
Option B: Consolidate back to shared config
Revert to a single shared agentsMD in agentconfig.yaml and have all TaskSpawners reference it — the co-located configs would only contain the identity section (if AgentConfig supports splitting identity from agentsMD). This avoids the N-copy maintenance problem.
For either option:
- Sync all
agentsMDcontent withCLAUDE.md/AGENTS.md, including the Pull Requests section, CI/release workflow rule, e2e test guidance, test scope qualifier, explicit keep-changes-minimal rule, and Directory Structure section - Add
types: [issues]andstate: opentokelos-workers.yaml - Update
README.mdto accurately describe the current AgentConfig pattern
Relationship to existing issues
| Issue | What it covers | What this issue adds |
|---|---|---|
| #515 | agentsMD content drift from CLAUDE.md; workers missing types/state |
Structural fragmentation from PR #555; README inaccuracy; the drift now affects 6 copies; co-location completion proposal |
| #566 | Missing local verification step and PR template instructions in prompts | Prompt-level gaps (not agentsMD-level); doesn't address the AgentConfig pattern inconsistency |
| #575 | fake-strategist-task.yaml prompt diverged from TaskSpawner | Task template drift, not AgentConfig structure |
| #582 (open PR) | Adds conventions to AGENTS.md and agentconfig.yaml | Only updates the shared config, not the 4 inline configs — would widen the drift if merged without also updating the inline copies |
Impact
- Maintenance burden: Any convention update now requires 5-6 file edits instead of 1
- Identity inconsistency:
kelos-triageandkelos-config-updatecomment as generic "Kelos Agent" while others have distinct names - Stale README: New users reading the README get an inaccurate picture of how AgentConfigs work
- PR Add agent conventions from recent PR review feedback #582 risk: If merged as-is, it only updates
agentconfig.yamlandAGENTS.md, widening the gap between the shared config and the 4 inline ones
/kind cleanup