Pulls the public docs forward to match the current state of the repo. No behavior changes — every edit is informational. - CURRENT-STATE.md: bump date to 2026-05-07; add entries for PR #159 (Diátaxis User Guides), #160 (sidebar IA + account redesign), #161 (self-serve Phase 1 backend), #162 (Phase 2 frontend cutover), #163 (seed users email-verified), #164 (open: taxonomy + INTERNAL_TESTER_EMAILS allowlist). Refresh "What's In Progress" and "What's Next" to reflect Phase O cutover as the active work. - 03-DEVELOPMENT-ROADMAP.md: add a "Status as of 2026-05-07" preamble at the top so the months-stale historical content underneath is clearly framed as historical record. Replace stale "In Progress" rows (PR #114, ConnectWise Advanced) with current ones (#164 cutover, external Director-of-Onboarding validation calls). Add Phase O cutover checklist as the new near-term priority section. Mark search-and-recall complete (shipped via Voyage AI embeddings). - README.md: replace `docker start patherly_postgres` (legacy container name) with `docker compose -f docker-compose.dev.yml up -d`. Repath project tree from `patherly/` to `resolutionflow/` and add `.ai/` + `scripts/` directories. Replace `UI-DESIGN-SYSTEM.md` (superseded) with `DESIGN-SYSTEM.md` in the documentation table; add `AGENTS.md`, `PROJECT_CONTEXT.md`, `PRODUCT.md`. - DECISIONS.md: append entries for the two architectural decisions made today — plan taxonomy reconciliation (rename team→enterprise, add starter) and the INTERNAL_TESTER_EMAILS allowlist for self-serve soft cutover. - .env.example: add INTERNAL_TESTER_EMAILS line (user edit, paired with the backend allowlist that landed in the prior commit). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
.ai/ — dual-agent handoff system
ResolutionFlow uses two coding agents: Claude Code (primary) and OpenAI Codex (resume when Claude hits session or weekly limits). This directory holds the shared state that lets either agent start a session with full context.
Files
| File | Holds | Written when | Read when |
|---|---|---|---|
| PROJECT_CONTEXT.md | Stable repo truth: stack, structure, SaaS shape, ConnectWise, coding standards, frontend patterns, critical lessons | Only when the repo's shape changes | Every session start |
| CURRENT_TASK.md | The single active task: goal, DoD, assumptions, out-of-scope | On task start; status updates during work | Every session start |
| HANDOFF.md | Exact resume point: branch, where you left off, next steps, blockers | On session end / context-window limit | Every session start (most important) |
| TODO.md | Backlog of work NOT currently active | When deferring or queueing work | Only when CURRENT_TASK.md is complete |
| DECISIONS.md | Append-only architectural decision log | When an architectural choice is made | Skim top entries each session |
| SESSION_LOG.md | Append-only chronological history | On session end | Only when broader context is needed |
Agent-specific tooling lives at the repo root:
- ../CLAUDE.md — Claude Code's tooling (GitNexus, gstack slash commands, Claude trailer)
- ../AGENTS.md — OpenAI Codex's tooling (grep/rg fallbacks, Codex trailer)
Both root files contain an identical shared-protocol block. If you edit one, edit the other.
The handoff ritual
At session end (limit hit, task complete, or user stop): update HANDOFF.md to reflect the new resume point, update CURRENT_TASK.md status if it changed, append to DECISIONS.md if you made an architectural call, append a session entry to SESSION_LOG.md, and WIP-commit any dirty working tree with wip(handoff): <one-line> unless told otherwise. Don't push.
How to invoke a resume
Tell the agent:
Read CLAUDE.md (or AGENTS.md) and follow its instructions.
The agent will read its root file, which directs it to .ai/PROJECT_CONTEXT.md, .ai/CURRENT_TASK.md, and .ai/HANDOFF.md before doing anything else.
Recovery
The previous monolithic CLAUDE.md is recoverable via:
git show pre-ai-handoff:CLAUDE.md
(Tag pre-ai-handoff on commit e110fed — the snapshot taken before this migration.)