Files
claude-skills/skills/ralph-loop-execution/SKILL.md
vitya 255dbc777f feat(skill): add ralph-loop-execution — agent inner loop with verifier oracle
Verifier field (exit-code oracle) + Attempts tracking + re-queue on fail.
Design: OpeItcLoc03/workshop/.brainstorm/ralph-loop-inner-execution.md
2026-06-15 22:51:16 +03:00

65 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ralph-loop-execution
## When to Use
Когда задача содержит поле `**Verifier:** <command>` — это ralph-loop задача. Активируй этот скил в начале работы.
## Algorithm
1. Прочитай задачу. Извлеки:
- `**Verifier:** <cmd>` — oracle-команда
- `**Attempts:** N` — текущий счётчик (0 если отсутствует)
- `**Max-Attempts:** M` — потолок (если отсутствует, дефолт 5)
2. Выполни работу (code, tests, edits — всё что требует задача).
3. Запусти verifier:
```
<Verifier command>
```
4. **Если exit 0** → задача выполнена. Закрой задачу штатно (`**Status:** done`). Готово.
5. **Если exit ≠ 0**:
a. Вычисли новый номер попытки: `N_new = N + 1`
b. Если `N_new >= M` (бюджет исчерпан):
```
**Attempts:** <N_new>
**Status:** failed
```
Добавь в конец description:
```markdown
## Attempt <N_new> (final) — budget exhausted
<stdout+stderr verifier>
```
Завершай сессию.
c. Иначе (попытки ещё есть):
```
**Attempts:** <N_new>
**Status:** ready
```
Добавь в конец description:
```markdown
## Attempt <N_new> failure
<stdout+stderr verifier>
### Что попробовал:
<краткое резюме что делал в этой итерации>
```
Завершай сессию. Поллер подберёт задачу заново.
## Reading Attempt History
Когда клеймишь ralph-loop задачу с `**Attempts:** N > 0` — прочитай все секции `## Attempt K failure` в description. Это память о том, что уже не сработало. Не повторяй те же подходы.
## Interactive Mode (/loop)
В интерактивном `/loop` контексте: тот же алгоритм, но цикл внутренний (контекстное окно сохраняется). Запускай verifier в конце каждой итерации. `Max-Attempts` работает так же.
## Key Invariant
Verifier — единственный критерий готовности. Не закрывай задачу без `exit 0` от verifier, даже если субъективно кажется что всё правильно.