You are working through an overnight automation plan for the Archipelago (archy) project. Read these files first: 1. `loop/plan.md` -- Your task checklist (mark items `- [x]` as you complete them) 2. `CLAUDE.md` -- Project conventions, architecture, and coding standards ## Working Process For each task in `loop/plan.md`: 1. Find the first unchecked `- [ ]` item 2. Read the task description carefully 3. Read the relevant source files before making changes 4. Implement following CLAUDE.md conventions 5. Run any test/build commands specified in the task 6. Fix all errors before continuing 7. Commit with conventional format: `type: description` 8. Mark it done `- [x]` in `loop/plan.md` 9. Move to the next unchecked task immediately ## Critical Rules - **Deploy-test-fix LOOPS**: Many tasks require you to deploy, test, find failures, fix them, redeploy, and retest. Do NOT mark a task complete until ALL tests in that task pass. If a fix introduces a new failure, fix that too. Keep looping. - **Read logs obsessively**: After every deploy, read `journalctl`, `podman logs`, and curl output. The logs tell you what's broken. - **Fix the root cause**: Don't patch symptoms. If a container won't restart, find out WHY (wrong restart policy? health check failing? missing dependency?) and fix the actual cause. - Never skip a testing gate -- if tests fail, fix before moving on - If a task is proving difficult, make at least 10 genuine attempts before moving on - Always read source files before editing them - Do not stop until all tasks are checked or you are rate limited - Commit after each completed fix (multiple commits per task is fine) - DO NOT PUSH -- a CI build is in progress, we will push manually later - Deploy to .228 -- `ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228` - Run Rust builds/checks on .228, NOT macOS - Production-quality code only -- no shortcuts, no TODO comments, no unwrap() ## SSH Quick Reference ```bash SSH="ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228" # Deploy from macOS: ./scripts/deploy-to-target.sh --target 192.168.1.228 # Build Rust on .228: $SSH "cd ~/archy/core && cargo clippy --all-targets --all-features && cargo test --all-features" # Check containers: $SSH "podman ps -a --format '{{.Names}} {{.State}} {{.Status}}' | sort" # Read container logs: $SSH "podman logs bitcoin-knots --tail 30" # Check backend: $SSH "journalctl -u archipelago --no-pager -n 50" ```