feat: add scan-ralph skill for polling ralph_code overnight results
Wraps scripts/scan-ralph-candidates to inject scan output at load time. Shows unmerged agent-fork branches with changed files and inferred spec IDs. Designed for /loop 5m /scan-ralph continuous polling. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
82
skills/scan-ralph/SKILL.md
Normal file
82
skills/scan-ralph/SKILL.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
name: scan-ralph
|
||||||
|
description: >
|
||||||
|
Scan agent-fork branches for unmerged implementations from ralph_code overnight runs.
|
||||||
|
Reports changed files and inferred spec IDs. Use with "/loop 5m /scan-ralph" to poll
|
||||||
|
continuously for new work.
|
||||||
|
allowed-tools: Read, Edit, Bash(git *), Bash(python3 *), Bash(scripts/scan-ralph-candidates *), Bash(grep *), Bash(date *)
|
||||||
|
---
|
||||||
|
|
||||||
|
# /scan-ralph
|
||||||
|
|
||||||
|
<command-name>scan-ralph</command-name>
|
||||||
|
|
||||||
|
You are reporting on unmerged implementations from overnight ralph_code agent runs.
|
||||||
|
|
||||||
|
## Pre-gathered context
|
||||||
|
|
||||||
|
### Scan timestamp
|
||||||
|
!`date +"%Y-%m-%d %H:%M"`
|
||||||
|
|
||||||
|
### Candidate branches (fetched from agent-fork now)
|
||||||
|
!`scripts/scan-ralph-candidates 2>&1`
|
||||||
|
|
||||||
|
### Recent main commits (last 5)
|
||||||
|
!`git log --oneline -5 main 2>/dev/null`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
### Step 1: Check scan output
|
||||||
|
|
||||||
|
The "Candidate branches" block above contains either:
|
||||||
|
|
||||||
|
- Lines of the form `=== task-<uuid> ===` followed by file paths and spec IDs
|
||||||
|
- Or the message "No unmerged candidate branches found..."
|
||||||
|
|
||||||
|
If the scan failed (e.g. "not in a git repository" or a Python traceback), report the error
|
||||||
|
and stop. The user should `cd` into the `agent-runtimes` repo first.
|
||||||
|
|
||||||
|
### Step 2: Report results
|
||||||
|
|
||||||
|
**No candidates:**
|
||||||
|
> No new implementations found. All recent agent-fork branches are already merged or empty.
|
||||||
|
|
||||||
|
**Candidates found** — present as a compact list:
|
||||||
|
|
||||||
|
```
|
||||||
|
Branch: task-<uuid>
|
||||||
|
path/to/file.py → SPEC-ID, SPEC-ID
|
||||||
|
```
|
||||||
|
|
||||||
|
Then say: "**N branch(es) with unmerged implementations found.**"
|
||||||
|
|
||||||
|
### Step 3: Suggest next action
|
||||||
|
|
||||||
|
If candidates exist:
|
||||||
|
> To integrate, follow the workflow in `prompts/ralph_integration.md`.
|
||||||
|
> Start with the branch covering the highest-priority spec IDs.
|
||||||
|
>
|
||||||
|
> Quick recap:
|
||||||
|
> 1. `git checkout agent-fork/task-XXXX -- path/to/file.py`
|
||||||
|
> 2. Run the xfail test: `python -m pytest tests/test_foo.py::test_bar -v`
|
||||||
|
> 3. If XPASS(strict): remove the `@pytest.mark.xfail` decorator, commit
|
||||||
|
>
|
||||||
|
> Run `/scan-ralph` again after each integration to see the updated candidate list.
|
||||||
|
|
||||||
|
If no candidates:
|
||||||
|
> Run `scripts/scan-ralph-candidates --hours 168` to look back 7 days if you expect
|
||||||
|
> more results, or check `git fetch agent-fork` ran successfully.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Loop usage
|
||||||
|
|
||||||
|
This skill is designed for:
|
||||||
|
```
|
||||||
|
/loop 5m /scan-ralph
|
||||||
|
```
|
||||||
|
|
||||||
|
Each firing re-fetches `agent-fork` and rescans, so new overnight branches appear
|
||||||
|
automatically without manual intervention.
|
||||||
Reference in New Issue
Block a user