Skip to content

Instantly share code, notes, and snippets.

View rjcorwin's full-sized avatar

R.J. (Steinert) Corwin rjcorwin

View GitHub Profile
@rjcorwin
rjcorwin / scene-A-default.png.base64
Created September 1, 2026 11:18
Seacat #465 round 2 diagnostic: default in-game view at 3a5ecb7c, world objects in view but unpainted; decode with base64 -d
iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAIAAABAH0oBAAAQAElEQVR4nOzdB5hU1d3H8XOnz2yFpRcREEQUECmKaMQSY4mJJqYYoylYgkRfS8QuYOzGEhtJLDGaxPSYGDVRoxhFFEEEpAgC0qQsC1unz9z3nDmzd2enbN9lYb6f5z6XM3fO3JldTJbf/k9x3GKKFhr0+dm6sXXAC6L1rJc/+0jy5Rde3oobtvPdW6KJT2jpvHdvCesTWrrV55Hft1b9nXb4x/hg0WJ5njR5ovVUsx/jj2VDsl7/VsWm1IdPugfL8/3neUXnu+75uNWOxpLtsFv9D9UVjZ7ldFvPvhiMp77QYbdZ/aXD7PYJXkM2lgTUa9cJUz97SaF5yytbZONPvxwmz6G4cePvI7JxRZHqdu3LW56bN1w29EXZ+Y5J02Uj7nbKs33FX6ceeY5svOOPyXPvN5/+bqFDNu56ZYNogYLzR+pGzIiqh2caWbvFIw3twKvm+T9THzvuCIvc3v9++q2uWTFe7KP/DjPfNO0/0ays/25b9f+Hlo76Spv4qKn/y+qkd2+JXP973+f//5OpbT/s2vkxWvXfj/UJLd3/57KW+tO5m/wctD5GO/+107Y3bdvLLdwn63067/9Xm/g//C74n1Wm9vw7qlNl/p1a38NV940Une/oy/vpxhXHfkWeb3vpD16f+tfIj78+Qp7dLkfYtOkOkbj6Z5LTpv4FUxiN7bV5ZKNA2PWzc576MPPmZsypG394Sf2byhTqoSEijfqEk/e3L5D/jnOKHCYeXZb68KiC5E3+t8Kf2XnN7kDqw1G9cv7jtomeYwYn/901dWy/zBcuWL5DN+65eJBufHXuZnmOxIwW3j/rh4mb6uuyGc7mO5dHhaE6T5zcL2sHQwAAAAAAkAdsAgAAAACAPEAABgAAAADkBQIwAAAAACAvEIABAAAAAHmBAAwAAAAAyAsEYAAAAABAXiAAAwAAAADyAgEYAAAAAJAXCMAAAAAAgLxAAAYAAAAA5AUC
@rjcorwin
rjcorwin / round2-crop-500x400-plus390-plus270.png.base64
Created September 1, 2026 11:18
Seacat #465 round 2 exact 500x400+390+270 crop at 3a5ecb7c resized 1500x1200; decode with base64 -d
iVBORw0KGgoAAAANSUhEUgAABdwAAASwCAIAAABuFh+mAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAAAEAAAABAE8lxNYAAAAHdElNRQfqCQELETJZ/AohAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA5LTAxVDExOjEzOjI1KzAwOjAwdHtE1AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wOS0wMVQxMToxMzoyNSswMDowMAUm/GgAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjYtMDktMDFUMTE6MTc6NTArMDA6MDADJVtzAACAAElEQVR42uz9WZMsSXYmiH3nHFUz8yW2u+aeta9AAejC2mhypslhv/BpREihDClCIf8ZRUb4whdy2DJCET6wOd3DbnQDKNSKqso982beNXZfbFE95/BBzTziZlUBhW7U9OafhMSN6+Hhbm6mpmbn0+98H0VaYo899tjjP1DQre//LnB3B/zlV+aXX9lvfS9PUSIFGWAAAIYzEOC3//Bzf0UCZg8CBhgAYAozZIUa1KBOzKGWakFSa1ZNKczmr3zlq1/43e++9rVvHN69F0JsV1eP3/nBe3/+P3z2s+8PqysQIJEtstVscXplB5nDQHbrI7GQEKCek6fsCgijqavF3Tv3Hjx8uFzOu25zfv786urcLDMLiNKgbZ+GpA6CCLHA3c0BBzFEQEzunJXUACIA8IQNsL1bn/xX/6t//L//P/w3/9U//l/Ol3Ocwx7b9rPr1ScXw/O22sYDP5xjzomhZvOcv+zb30qfLZ/+f/7i//tP/7v/54fvfvhHf/TH/6f/4//59//B7//w+z/6b/8v/+1//9//v55cvQAioSESZmYidzfL5uoYDwdBCIERAKbpGExfDqCS+vje3fuvPpwdLDfb7fPnzy7PznVI4iQgc1NXd42wCh7hBHe4wRVZKRsM
@rjcorwin
rjcorwin / round2-frame-41-1280x720.png.base64
Created September 1, 2026 11:18
Seacat #465 round 2 exact 1280x720 t=41 source frame at 3a5ecb7c; decode with base64 -d
iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAIAAABAH0oBAAAACXBIWXMAAAABAAAAAQBPJcTWAAAQAElEQVR4nOx9B7wdRb3/zOzuKffe3CSEQAIktNB77016VQxPxagPBf++x7Mg74lPEQUUQVAR9amINEEFIaCAnSKIoQYIgSQEkISEJKTfctqWmf/8fjO7O3v2nHPPJbkpN/v7JOfu2TM7Mzv19/21oVfe+BBpSILJD0Z49GkJn1JKRM11XeGuhs9qvxDCpi6kp5jGsiC9wBuU+r5v27ZMKT8nTJiw86Sd5B3GuPykIsA0mJQwlT76VMSoHV3ffPPNRxxxxO677y5LlKVUIypXarVab2/v6tWrly1bpooLgoDmCl2SNttyxIgRNDeKMRZgboK7xWJx3NjNx40bJy9kcZxzmR5+EqLuc61T+HZcXcvaFjvyshqO48hrzv2odEXJp+C+qnClUvE8T76pfHcXSb6CbFWZAO/78qu8lindmr7G3BhFiuojC5Utg7nCTZk+0QWCkWSPmNeK5ONrv5WwfRTlcrm4LMHrUpqlm9fpeqbvq2v1VOt3TN7nLcrVd2iyGaNSxMDPyocHrEkiOTFKEThuKVcjhwHBhWPF88ivuY3zcYw0vh9dC2oNWAfepJqi0X1zhMc5cF6XRr677PqOjg45O/L5vHwTcxZIkmO+1F8pl8tyCsgKyxyMxmQqQyhCsIYzOvqqLqIKDDjx6+ofqMcDaD1dAVwPPQ/z4TB6hepT6uODeI0zK2qfVA2bzan4vq62ygFzC3B0+XjHw36vWXC/akNil1C5yBQ7O2SrqlW6zfdt+PppUjURFLpJ1kGuQuVqDVYnn6v7xBgnsrUdRmW3dhXkR75IoD5y2EL9rVJUCuV29HZyrUqVie3JcKzijAuMASfMuSNsWRO5ZsrPQgFGVK6Qh/TYXxUXfurDeeHgKOigrLu7u8vJy5XTDoQxDevXn1Z3w/7Vb82g/WVZfX198vXV2IblV8Rjj6tWwonPCazkqs4e
@rjcorwin
rjcorwin / round1-crop-500x400-plus390-plus270.png.base64
Created September 1, 2026 07:20
Seacat #465 shared-boundary round 1 exact 500x400+390+270 crop resized to 1500x1200; decode with base64 -d
iVBORw0KGgoAAAANSUhEUgAABdwAAASwCAIAAABuFh+mAAAAIGNIUk0AAHomAACAhAAA+gAAAIDo
AAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAAAEAAAABAE8l
xNYAAAAHdElNRQfqCQEHEjSSqAWzAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA5LTAxVDA3OjE4
OjUyKzAwOjAwfhO2HwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wOS0wMVQwNzoxODo1MiswMDow
MA9ODqMAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjYtMDktMDFUMDc6MTg6NTIrMDA6MDBYWy98
AACAAElEQVR42uz9WbNkWXYeBn5rrb3POe5+55gzI6eqQhUKBVSDoAhAkCjK1DLrNmuzHvQX27qf
9KCmGR/U1i2JLQoDyQKImivniMiY444+nGHvtVY/7HP83qgqEByQHED/LJGVuNevu5/RfX37G4jp
CDvssMN/QHAQAP+XPIJAcBDo3/J5dvh3AALENcDEleEADJwpDlRlig4ejxERiEE0HjFXto69Je/L
X4HZqrnVBxoaDAO6FvXinW/+3jd/73//7rf/s8XxXSLqrt68/OTPH//F//Tykx+0V2fmALPBjdxp
OhPcyZTdyG16MTJiA4HF3UF8cu/OP/iv/vC/+7/8H//B3/+Du3duOVwHi0MTNw0tZXjdb14uNxeb
@rjcorwin
rjcorwin / round1-frame-41-1280x720.png.base64
Created September 1, 2026 07:20
Seacat #465 shared-boundary round 1 exact 1280x720 t=41 source frame; decode with base64 -d
iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAIAAABAH0oBAAAACXBIWXMAAAABAAAAAQBPJcTWAAAQ
AElEQVR4nOy9B/xdRZU4PnPbK9+WAqGEDhEIVVmaCwhSAyKi0kRYxMW1IrioqyiIsqwo4E+Q9neF
pciCSGcXo+BSlBZ6rwklCYS0b3vllpn5n3PmlrmvfPO+KRDgHfjc3O99c+dOOTNz+uGnvDA3DMNt
RU1K+cy8OZZlCTaJcx4WCo7j9CvBGBsIQrgGDhSRVYH3bqFYKBR6HCzDZKRSYFjeUnBhUAlLIL5X
FlwizrCgxeFb8Onh4eEoklBbuVjyPA9Kwq8Wy0DXpkFy456uCxa8hRVzfKNU6oGroPtaWEvfXXPC
pLgqAMajKBqtVur1uue4/f398Gl4Al9NG2zL7CtmL8yWmGC2KmkXdddsLbUqFAK6XIsCIQR8FJtj
cQTF9PjBc9u24YFLULRdeMvR40lXHLoOQDc7vUJLaGYV9b3q+z5MXF9fX4n6DtPa3F/4EPwUEEAB
y3GgYdgRKeEnuEJT4erxClT1qRdffeGFFyZWBfz0+ic/US6XB6cOwP36b86BYksefZxGY8paa631
2nYfgVl27R6oTdA0i9woZePM23S0YVR1g6GRNT+AfoWKQ83SdeDrNRFSa620ZpvGuWhb0PeyW4Bf
HYZ4mMysbP7cuCDBBCutqx74lUrFj0LotZIcZl9ZUs84jFsPLqOCZ9ms1appAdzALlqbCVaIpjIy
@rjcorwin
rjcorwin / item89-replay.cjs
Created September 1, 2026 06:48
Seacat #465 item 91 exact QA wrapper script
const fs = require('fs');
let source = fs.readFileSync('scratch/item79-replay.cjs', 'utf8')
.replaceAll('item79', 'item89')
.replaceAll('Item 79 · exact f2a800bc', 'Item 89 · exact 430c8639')
.replaceAll("head:'f2a800bc'", "head:'430c8639'")
.replace("http://127.0.0.1:5173/?debug=1", "http://127.0.0.1:5173/?debug=1&staging=0");
source = source.replace(
" const inspector = await new Client('ws://127.0.0.1:5173/colyseus').joinOrCreate('seacat', { omniscient: true, name: 'qa-item89-inspector' });",
@rjcorwin
rjcorwin / item91-frame-41.png.base64
Created September 1, 2026 06:48
Seacat #465 item 91 exact 1280x720 t=41s source frame; decode with base64 -d
iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAIAAABAH0oBAAAACXBIWXMAAAABAAAAAQBPJcTWAAAQ
AElEQVR4nOx9B4BdRdXwzG2vbE1CQhNIpEiXIoaiIAoaQBABRRFEsGD9UFE+wQ8EReW3gYqfIiKf
CAJKR5Gi9CZgpIUeakL6Zssrt87855y5Zd6+d3ffJhsI8I54c/e+e6fPmdMP/9LTizjn265Y6jjO
Y8teYIyJaCpcg24Drj1BiFfO4cq4gEvVDYUQjmXC+1N7+g3D4FJEAJI1Ab7PDe0HiWWGVJjkhmVZ
vu8PDw/X655t293lLiiTU12GVorRouQMFq9cEn9iYIHp8yAypZTq22l9/fAO3MMTq+B4nletVl3X
LRQKvb29cA2CQIZRy/JV4WODyHlFqE7Tr27gQ6V+GEBPoUyoER7CPb4gJYwfjGrBdsrlMrQn7TWn
q5UzAjznucxrj/YcqhsYGIBmQHXrrLOO9pzB+NRqNTU+OG4wxZxHHNsJX8E19D2YqVKpBFfLzMo0
pGhdsVb7omVLrQT6urpVT2UCY3zeXJppmtB+WD9whRZCgXDVC+nr69M/gR6pfpWceN5h2PX5zRvP
9kGNvOC4ftVYhIHAFkYhLk7TwpXGcd5FiCPfXSjhdIc+7aOshLSXbdRptH7M/dEPqKeRKGGrhAjD
cMStwTWgWoSBA9hL7emiRhgRTjfsem2Ixm9P3l7IazNMI7ZKYnuGanWoMRQRTGKhXEKs4gdwX7RM
@rjcorwin
rjcorwin / item91-perched-crop.jpg.base64
Created September 1, 2026 06:45
Seacat #465 item 91 exact t=41s refutation crop; decode with base64 -d
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkI
CQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQ
EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCASwBdwDAREA
AhEBAxEB/8QAHQABAAEEAwEAAAAAAAAAAAAAAAECBgcIAwQFCf/EAFMQAAIBAwIEBAMFBQYCBQoD
CQABAgMEEQUGBxIhMQgTQVEiYZIUFRYyVUJSU3GBCRcjkaGxM0MkNGJywRglSGR0goSywtEmJ0Rj
kzU2N3NUg/D/xAAcAQEAAgMBAQEAAAAAAAAAAAAAAQIDBAUGBwj/xAAzEQEAAgIBAwIGAgICAgMB
AAMAAQIDEQQSEyEFMRQiMkFRYQZSFSMzcQckJUKBNBY1kf/aAAwDAQACEQMRAD8A+Wh0AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+xErV91JNVrWhUuxE+6ku
azcftVLL/bj/ALm1xKz3Ya+ad0nT6ETnL/ycpQiuj0//AMD0nT1V8OLxLxiyT1/d89ptU6lXPfnk
eR52Oa8idOz0zfUw4s8z5jYtaLU1Hu2KR0zuUT+J4ZrTWae7Jknr9iH+HLKZq2pa19keKqpS5nln

Plans

A Research-Plan-Implement (RPI) workflow for AI-assisted software development with human-in-the-loop checkpoints. This document serves as a reference for both AIs and humans, ensuring quality through structured research, planning, and implementation phases, with AI self-review applied to implementation.

Learn about the theory behind RPI from Dax: https://www.youtube.com/watch?v=rmvDxxNubIg

All work for a feature or change happens in a dedicated plan folder (e.g., plans/a7z-feature-name/). Each plan folder has a corresponding git branch and pull request, keeping code changes tied to their documentation.

Workflow

@rjcorwin
rjcorwin / arpi
Last active February 22, 2026 23:18
Prompt less, Automate Research-Plan-Implement (arpi, pronounced like Archie)
#!/usr/bin/env bash
set -euo pipefail
trap 'echo "ERROR: Script failed at line $LINENO (exit code $?)" >&2' ERR
# arpi: Automates the RPI (Research-Plan-Implement) workflow using Claude Code.
#
# Usage:
# arpi new "Your feature ask here"
# arpi research <slug>
# arpi plan <slug>