Kickoff Renderer Migration
Start the autonomous Prism Renderer Migration Ralph loop in the background and stream iteration-by-iteration progress into this c…
---
description: Start the autonomous Prism Renderer Migration Ralph loop in the background and stream iteration-by-iteration progress into this chat. Runs until all 10 tasks complete, a task fails 3×, or you stop it. One task per child Claude process.
argument-hint: (none)
---
# Kickoff: Prism Renderer Migration
You are the operator of the renderer migration. The user typed
`/kickoff-renderer-migration` in this chat. Your job:
1. Verify the harness is ready.
2. Launch the autonomous loop in the background.
3. Stream iteration progress into this chat as it happens.
4. Stay reachable so the user can ask questions or stop the loop.
5. When the loop terminates, produce a final summary.
Do **not** run `/ralph-step` yourself in this session. The outer loop spawns
fresh `claude --print` processes for that. Your role here is operator and
narrator, not worker.
## Step 0 — capture your model (CRITICAL — must be Opus, no exceptions)
You currently know which model you are because your system prompt names it
(e.g. "powered by the model named Opus 4.7", "the exact model ID is
'claude-opus-4-7'"). The user has set a hard rule: **the ralph loop runs
on Opus only.** Sonnet and Haiku are explicitly forbidden for ralph coding
work — `scripts/ralph.sh` will refuse to launch on anything that doesn't
start with `claude-opus-`.
Write your full model ID to `.claude/.ralph-model`. The ID MUST start with
`claude-opus-` and MUST be the full canonical form of the user's
currently-selected Opus version (e.g. `claude-opus-4-7`).
```bash
echo 'claude-opus-4-7' > /Users/loganbaird/Prototype_Prism/Design-trials/.claude/.ralph-model
If your system-prompt model ID is anything other than an Opus variant, STOP. Tell the user their UI dropdown is set to a forbidden model (Sonnet/Haiku) and abort the kickoff.
After writing, prove the model is real by running ALL of the following and showing each output to the user:
echo "=== MODEL PROOF ==="
echo "1. Wrote to .claude/.ralph-model:"; cat /Users/loganbaird/Prototype_Prism/Design-trials/.claude/.ralph-model
echo ""; echo "2. Self-reported model ID from MY system prompt: <print the model ID you read from your own system prompt — quote it exactly>"
echo ""; echo "3. SHA256 of model-file (tamper check):"; shasum -a 256 /Users/loganbaird/Prototype_Prism/Design-trials/.claude/.ralph-model
echo ""; echo "4. Starts-with-claude-opus check:"; grep -q '^claude-opus-' /Users/loganbaird/Prototype_Prism/Design-trials/.claude/.ralph-model && echo PASS || echo FAIL
Show the user the literal output. Do not paraphrase. The user wants runtime proof, not assurances.
The file is git-ignored.
Step 1 — preflight (do this synchronously before launching)
Run these checks in parallel via Bash:
git -C /Users/loganbaird/Prototype_Prism/Design-trials rev-parse --abbrev-ref HEAD→ must equalprism-renderer-ralphjq -r '.status, (.tasks | map(select(.status != "done")) | length), (.tasks | map(select(.status == "done")) | length)' /Users/loganbaird/Prototype_Prism/Design-trials/kid-kode-landing/notes/ralph-state.json→ status must berunningorpaused-*; reportdoneandpendingcountscommand -v claude && command -v jq→ both must resolvetest -x /Users/loganbaird/Prototype_Prism/Design-trials/kid-kode-landing/scripts/ralph.sh→ must succeedtest -s /Users/loganbaird/Prototype_Prism/Design-trials/.claude/.ralph-model→ step 0 captured a non-empty model IDgrep -q '^claude-opus-' /Users/loganbaird/Prototype_Prism/Design-trials/.claude/.ralph-model→ captured model is an Opus variant (Sonnet/Haiku rejected here)
If any check fails, stop. Tell the user exactly what's wrong and how to fix it. Do not proceed.
If status is complete, tell the user the migration is already done and
ask if they want to (a) merge into prism-main, (b) review the resumption
doc, or (c) reset state for another run. Do not relaunch.
If status is failed, read the failed task's notes field, surface the
reason, and ask the user what to do (refine the task, bump
maxAttemptsPerTask, or revise the spec).
Step 2 — tell the user what's about to happen
In one short message:
- The done/pending task counts.
- That you'll launch
scripts/ralph.shin the background. - That iteration updates will appear in this chat.
- That they can interrupt at any time by saying "stop the loop" (you'll then
call
TaskStopon the bash task, see Step 6).
Don't be verbose. Two or three sentences.
Step 3 — launch the outer loop in the background
Use the Bash tool with run_in_background: true:
cd /Users/loganbaird/Prototype_Prism/Design-trials/kid-kode-landing && ./scripts/ralph.sh
The Bash tool returns a task id and an output file path. Save both — you need them for monitoring (Step 4) and stopping (Step 6).
Do not set a timeout; the loop may run for hours. run_in_background
means it survives independent of any single tool call.
Step 4 — set up the iteration-progress monitor
Use the Monitor tool with persistent: true and a command that polls
both the script's output file and ralph-state.json for boundary events,
emitting one line per event. The monitor exits naturally when state goes
terminal (complete or failed).
Use this exact monitor command, with <OUTPUT_PATH> replaced by the output
file path you got from Step 3:
STATE=/Users/loganbaird/Prototype_Prism/Design-trials/kid-kode-landing/notes/ralph-state.json
LOG=<OUTPUT_PATH>
last_size=0
last_done=$(jq -r '[.tasks[] | select(.status=="done") | .id] | join(",")' "$STATE" 2>/dev/null || echo "")
last_status=""
while sleep 6; do
if [[ -f "$LOG" ]]; then
cur_size=$(stat -f%z "$LOG" 2>/dev/null || stat -c%s "$LOG" 2>/dev/null || echo 0)
if (( cur_size > last_size )); then
tail -c +$((last_size+1)) "$LOG" 2>/dev/null | \
grep -E "ralph\.sh: iter|Ralph iter|loop complete|loop failed|breakpoint|claude exited non-zero" | \
head -20
last_s
Maintain Kickoff Renderer Migration?
Let people know it's listed here — add the badge (live metrics, light/dark aware) or a plain link to your README or docs.
[Kickoff Renderer Migration on getagentictools](https://getagentictools.com/loops/flickinny11-kickoff-prism-renderer-migration?ref=badge) npx agentictools info loops/flickinny11-kickoff-prism-renderer-migration The second line is the CLI lookup for this page — handy in READMEs and docs.