Home / Ops / More in this area
Updated Jul 02, 2026 · DEPLOY_HANDOFF.md
Two Claude Code chats on the same Mac coordinate via SHARED FILES (no human relay needed).
This chat = the Profile/data + get_profile + creations tracker. Code chat = cloud-Fish +
run_audio + the Mirror batch runner + send.
/Users/jeffreyparker/CLAUDE/AFFIRMOLOGY/.mirror_clear - written by the CODE CHAT when its
cloud-Fish verify is GREEN and its in-flight renders are done. Means: safe for the Profile chat
to push/redeploy the studio./Users/jeffreyparker/CLAUDE/AFFIRMOLOGY/.get_profile_live - written by THE PROFILE CHAT after
deploy #1 is live and verified. Means: the Code chat may proceed to deploy #2.echo done > .mirror_clear.
(A dirty tree makes the Profile chat's git rebase fail, which stalls deploy #1.).mirror_clear and no .get_profile_live,
auto-runs deploy #1: git fetch && git rebase origin/main (picks up cloud-Fish; aborts + reports
on conflict, never force), git push, poll Render live, verify GET /api/profile + /api/creations,
then write .get_profile_live. Held commits deploying: get_profile endpoint + function + creations tracker..get_profile_live): push deploy #2 (run_audio -> get_profile +
batch runner).get_profile contract (what the Code chat consumes)from api.profile_report import get_profile; get_profile(person) where person = profile id / email /
name. Returns {id, email, name, birth_date, birth_time, birth_location, quick_profile, chart,
transits, progressions, report_url}. Also GET /api/profile?email= / ?id=. Full JSON on R2 at
profiles/<id>/report.json (public at media.affirmology.ai). Record deliveries with
from api.demo_render import record_creation.