feat(prd): add US-015 — Ralph agent-agnostic runner + status-field dashboard
Status-field awareness: - Replace passes:bool with status field in ralph_progress.py - Six buckets: done, attention, active, in-design, ready, blocked - Dashboard shows ⚠ Attention Required section for to-revise/needs-review - auto skips attention stories by default; --include-revise overrides Agent agnosticism: - --agent codex|claude|openrouter|custom on all run commands - Persistent config in .ralph-tui/agent-config.json via set-agent subcommand - OpenRouter adapter: calls API directly when ralph-tui lacks native plugin - custom: --agent-cmd <script> receives prompt file as $1 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -353,10 +353,33 @@
|
||||
"US-013"
|
||||
],
|
||||
"status": "open"
|
||||
},
|
||||
{
|
||||
"id": "US-015",
|
||||
"title": "15 \u2014 Ralph: agent-agnostic runner + status-field-aware dashboard",
|
||||
"description": "Two improvements to the Ralph workflow tooling. (1) Status-field awareness: replace all passes:true/false reads in ralph_progress.py with the rich status field. Surface to-revise and needs-review stories as an attention list in the dashboard; auto command skips them by default. (2) Agent agnosticism: make the agent selectable per session \u2014 codex (existing), claude (Claude Code CLI), openrouter (unified API for GPT-4/Mistral/Llama/DeepSeek via OPENROUTER_API_KEY + --model), or custom (--agent-cmd path to any script). Persist agent choice to .ralph-tui/agent-config.json. When ralph-tui does not natively support a requested agent, ralph_progress.py falls back to a thin adapter that calls the agent API directly with the task prompt.",
|
||||
"acceptanceCriteria": [
|
||||
"All story.get('passes') reads in ralph_progress.py replaced with _is_done() helper that reads status field with passes fallback",
|
||||
"_story_sets() returns six buckets: done, attention (to-revise/needs-review), active (in-progress), in-design, ready, blocked",
|
||||
"Dashboard shows \u26a0 Attention required section listing to-revise/needs-review stories with status_reason",
|
||||
"auto command skips to-revise and needs-review stories; --include-revise flag overrides",
|
||||
"_review_report includes Attention Required section with status_reason for all affected stories",
|
||||
"ralph_progress.py set-agent --agent <name> [--model <model>] writes .ralph-tui/agent-config.json",
|
||||
"--agent codex|claude|openrouter|custom accepted by show, run-next, auto, review subcommands",
|
||||
"run-next --agent openrouter --model openai/gpt-4o successfully runs a task via OpenRouter API",
|
||||
"run-next --agent custom --agent-cmd ./my-agent.sh runs a task via custom script (prompt file as $1)",
|
||||
"Saved agent config is loaded as default when --agent is not passed on the CLI",
|
||||
"python -m pytest passes from repo root",
|
||||
"Commit only this story's changes"
|
||||
],
|
||||
"priority": 15,
|
||||
"status": "open",
|
||||
"notes": "Source issue: .scratch/distributed-inference-network/issues/15-ralph-agent-agnostic-status-aware.md",
|
||||
"dependsOn": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"updatedAt": "2026-06-29T13:15:00.000Z",
|
||||
"updatedAt": "2026-06-29T13:20:00.000Z",
|
||||
"statusVocabulary": {
|
||||
"open": "Not started",
|
||||
"in-design": "Decisions pending before implementation can begin",
|
||||
|
||||
Reference in New Issue
Block a user