Heru Development Checklist — Zero to MVP
Phase 0: Infrastructure (Robert)
- Robert provisions ONE EC2 (t2.micro free tier) for the Heru
- n8n installed on the instance
- Project repo cloned on the instance
- Agent workspace created (worktrees directory)
- DNS: n8n.{domain}.com pointed to EC2 IP
- Clerk auth configured for n8n access (uses Heru’s production Clerk)
- Security group: port 5678 open for n8n
- n8n/ directory created in project root (workflows/, credentials/)
- n8n added to docker-compose.yml for local development
Phase 1: Contracts (Otis — FIRST, ALWAYS)
- Otis creates n8n workflow JSON files in n8n/workflows/
- Otis deploys workflows to n8n on the EC2 instance
- All webhook events defined and documented
- API contract document generated for agents
- Workflows visible at n8n.{domain}.com
- Slack channel connected (#proj-{heru})
Phase 2: Agent Dispatch (Nikki)
- Each agent has full Auset Profile: name, command, agent def, skills, tools
- Otis’s API contracts embedded in every agent’s prompt
- Agents work in worktrees on the ONE EC2 instance
- Cursor agents (auto/composer — Tier 0, no premium without approval)
- Each agent creates PR → develop when task complete
- Quality Gate passes before PR (tsc, build, lint, test, graphql:validate)
Phase 3: Code Review (Gary)
- Gary (Opus/Bedrock) reviews each PR
- Quality Gate output verified in PR description
- Acceptance criteria checked
- No regressions, no security issues
- Merge to develop
Phase 4: Testing
Backend (Automated — separate Cursor agent team)
- Unit tests written by separate Cursor agent team
- Tests included in GitHub Actions CI/CD
- 80% coverage minimum — MVP ready criteria
- All tests pass on deploy to shared EC2
Frontend/Mobile (Manual — Quik, Vision, clients)
- Amen Ra provides testing instructions (WHAT to test, not HOW)
- Quik and Vision test through UI (NOT developers — never send commands)
- Clients test through UI at each checklist level
- All bugs reported through Ida (Heru Feedback)
- 0 critical bugs via Ida = level complete
Phase 5: Develop Deployment
- Backend deployed to shared EC2 (i-0c851042b3e385682 / 98.83.4.34)
- Frontend deployed to Amplify (develop branch)
- n8n running on project EC2 at n8n.{domain}.com
- GitHub Actions runs tests on deploy
- 80% test coverage passes
Phase 6: MVP Sign-off
- ALL acceptance criteria pass
- 80% backend test coverage
- 0 critical bugs in Ida
- Amen Ra signs off
- Client signs off (if client Heru)
Phase 7: Production Deployment (ONLY after MVP sign-off)
- Create App Runner instance (ONLY NOW — not before)
- Build Docker container with backend + n8n bundled
- Push to ECR, deploy to App Runner
- n8n MOVES from EC2 into App Runner Docker (same workflows, same config)
- Frontend deployed to Amplify (production branch)
- DNS: {domain}.com → Amplify, api.{domain}.com → App Runner
- n8n.{domain}.com → App Runner (through Clerk auth proxy)
- Production Clerk, Stripe, SendGrid, Twilio keys configured
- Database migrations run on production
- Tear down the develop EC2 instance (Robert cleans up)
Internal vs Client
- Client Herus (FMO, WCR, My Voyages): Own EC2 instance each
- Internal Herus (QCR, QuikCarry, QuikNation, Site962): QC1 (Mac M4 Pro)