Quik Cloud Naming Convention (as of 2026-03-13)

NameMachineIPType
QC1Mac M4 Pro (at Quik’s)100.113.53.80 (Tailscale)Mac
QC2EC2 t3.large (farm-1)44.200.66.249EC2
QC3EC2 t3.large (farm-2)100.55.154.135EC2

“Quik Cloud” = ALL three machines. QC1/QC2/QC3 when referring to a specific one.

QC1 — Mac M4 Pro at Quik’s — OPERATIONAL as of 2026-03-11

Hardware & Software

  • Hardware: M4 Pro, 24GB RAM, 746GB free disk, macOS 15.5
  • Node.js: 20.20.1 (via Homebrew)
  • Ollama: 0.17.7 — Qwen 2.5 Coder 7B (~30 tok/sec) + Llama 3.2 3B
  • AWS CLI: Installed, configured with same IAM as local machine
  • Git: SSH key quik-cloud-build added to GitHub org

Access (ALL in SSM — never hardcode)

  • /quik-nation/quik-cloud/ssh-key — SSH private key (SecureString)
  • /quik-nation/quik-cloud/ssh-username — SSH username (SecureString)
  • /quik-nation/quik-cloud/ssh-host — Tailscale IP (SecureString)
  • Local SSH config: Host quik-cloud in ~/.ssh/config on Amen Ra’s machine

Build Farm Configuration

  • Max agents: 6 concurrent (was 2, increased for M4 Pro)
  • Primary model: Qwen 2.5 Coder 7B via Ollama (local, $0, ~30 tok/sec)
  • Fallback models: Groq → Cerebras → SambaNova → Google → OpenRouter (API keys from EC2 farm)
  • Workspace: /Users/ayoungboy/projects/{world-cup-ready, quik-nation-ai-boilerplate}
  • Scripts: ~/agentic-loop.js, ~/phase0-parse-workqueue.sh, ~/phase0-dispatch.sh, ~/phase0-workqueue-loop.sh
  • Parser: v2 with blockquote prompt fix. Currently handles P88-P112 (Heru Feedback + Maat Slack Approval Loop)

Automated Jobs (launchd)

  • com.quiknation.phase0-loop — Dispatch loop every 2 min
  • com.quiknation.farm-sync — S3 status sync every 2 min
  • com.quiknation.hourly-slack — Hourly summary to maat-agents

Cross-Farm Sync (Status + Workqueue)

  • S3 bucket: s3://quiknation-farm-status/status/ — status files (*-done.md)
  • S3 workqueue: s3://quiknation-farm-status/workqueue/maat-workqueue.md
  • All three workers push/pull status files every 2 min
  • Workqueue sync: GitHub Action → SCPs to EC2s + uploads to S3. Quik Cloud pulls workqueue from S3 every 2 min via farm-status-sync.sh.
  • EC2 farms get workqueue via SCP (GitHub Action). Quik Cloud gets it via S3.
  • CRITICAL: farm-status-sync.sh needs export PATH="/opt/homebrew/bin:..." — launchd doesn’t inherit shell PATH

Slack Notifications

  • Hourly summary to maat-agents (same as EC2 farms)
  • Per-task completion/failure notifications via ~/notify-task-complete.sh

Tailscale Note

  • EC2 farms CANNOT reach Quik Cloud directly (not on Tailscale mesh)
  • Coordination is via S3 status sync, not SSH between farms
  • Only Amen Ra’s machine (on Tailscale) can SSH to Quik Cloud

EC2 Build Farm SSH Access

  • SSH key source: AWS SSM /quik-nation/build-farm/ssh-key (us-east-1)
  • Fetch: aws ssm get-parameter --name "/quik-nation/build-farm/ssh-key" --with-decryption --query 'Parameter.Value' --output text --region us-east-1 > /tmp/build-farm-key.pem && chmod 600 /tmp/build-farm-key.pem
  • Farm-1: ssh -i /tmp/build-farm-key.pem ec2-user@44.200.66.249
  • Farm-2: ssh -i /tmp/build-farm-key.pem ec2-user@100.55.154.135
  • NOTE: Local ~/.ssh/quik-nation-build-farm.pem is STALE — always fetch from SSM

Current Farm Parser (as of 2026-03-11)

  • Parser v2 on all three farms — fixes blockquote prompt parsing bug
  • Range: P1-P999 (ALL tasks) — was locked to P88-P106, widened March 12 2026
  • DreamiHairCare cloned on both EC2 farms (was causing error loop)
  • P88 status file parser bug: Worker prompts using > blockquotes (not ``` fences) were consuming all subsequent tasks. Fixed by checking for --- separators and ### P headers as termination conditions.