Project status
Markdown file
docs/STATUS.md
Project status
This is the single source of truth for “where are we” + “what’s next”.
Quick resume (90 seconds)
- What this is: Shopify app growth agent micro‑SaaS (lead discovery → compliant outreach → install/value telemetry → review prompting).
- Primary loop: ingest events → recompute activation → decide prompt; plus campaign ticks to discover/compose/send outreach.
- Where to start: scan In progress, then execute Next up top-to-bottom.
Current focus
- Milestone: v0.1 “end-to-end loop working locally”
- Goal: run
POST /api/agent/run, approve drafts (if needed), see outbound sends recorded, ingest telemetry, and see activation/prompt decisions.
Deployment plan (now → later)
Recommendation
Keep the same production shape you’ll scale with (web + worker + Postgres + Redis/Key Value) and start on the smallest tier that supports it. This avoids refactoring the queue/worker architecture later.
Phase 0: “Live testing” (minimal change, low cost)
- Platform: Render Blueprint via
render.yaml(root) - Services
- Web (
app-growth-agent-web): start on free (OK for manual testing; note cold starts) - Worker (
app-growth-agent-worker): starter required (Render doesn’t support free workers) - Postgres: start on free (upgrade if you hit limits)
- Key Value (Redis): start on free
- Web (
- Migrations:
prisma migrate deployruns at process start (free tier doesn’t supportpreDeployCommand) - Project grouping: optional. Some free workspaces are limited to one Render Project; if you already have a project, keep these resources ungrouped until you upgrade the workspace or remove the other project.
Phase 1: “Real webhooks + reliability”
- Upgrade Web to starter to avoid cold starts (Shopify webhooks + dashboards feel much better).
- Add a scheduler (Render cron / external cron) to call
POST /api/agent/run.- Current plan: Render Cron (
app-growth-agent-cron) hitshttps://app-growth-agent-web.onrender.com/api/agent/run
- Current plan: Render Cron (
Phase 2: “Scale”
- Increase plans (web/worker) and upgrade Postgres/Key Value as needed.
- Consider splitting environments (staging/prod) and enabling previews.
What’s true right now
- Web: Next.js App Router UI pages (
/,/campaigns,/leads,/approvals,/installs,/context,/runs). - UI system: Tailwind CSS v4 + shadcn base components (cards, buttons, badges, inputs).
- Worker: BullMQ worker processes
CAMPAIGN_TICK,RECOMPUTE_INSTALL,MESSAGE_SEND. - Agent orchestration: LLM-driven multi-step pipeline with
AgentRun/AgentSteptraces + context packs. - DB: Prisma schema + orchestration models exist; Postgres required.
- Redis: required for BullMQ.
- Auth: Approvals now require admin login (NextAuth Credentials).
- Outreach: Reddit via
snoowrap; email viaEMAIL_PROVIDER(Postmark default, Resend supported).
In progress
- Agent orchestration research: confirm best practices for multi-agent flows and tool use.
- UI cleanup: convert remaining pages to shadcn/Tailwind styles.
Next up (do these next)
- Research agent orchestration
- Review OpenAI Cookbook + Agents/Agent Builder docs + orchestration guidance
- Summarize recommended patterns for planner/critic/tool separation
- Verify shadcn + Tailwind v4 setup
- Confirm
@config+@import "tailwindcss"flow is stable
- Confirm
- Exercise core loop with orchestration
- Create/confirm an active campaign
- Call
POST /api/agent/run - Approve drafts in
/approvals(if manual approval required)
- Telemetry loop
- Send sample events to
/api/webhooks/shopify-events - Verify
ActivationMetricupdates andReviewPromptcreation logic
- Send sample events to
Risks / sharp edges
- Connector credentials: outreach requires env vars set in the environment where the worker runs (see
docs/INFRA_SETUP.md). - Auth: approvals require admin login; ensure
ADMIN_EMAIL/ADMIN_PASSWORDare set. - Ops: cron is host-specific (Vercel via
vercel.json, or Render Cron if you deploy web on Render). - Render free tier: web services can cold-start after inactivity; consider
starterfor webhook reliability.
Open questions
- Outreach channel: Reddit + email are now selected (see ADR).
- Email provider: Postmark + Resend are both supported; confirm which you want as primary.
- Review prompting: exact copy/versioning + Shopify review policy constraints to codify.
Pointers
- Today’s handoff:
docs/handoffs/2026-02-04.md - Architecture:
docs/ARCHITECTURE.md - Runbook:
docs/RUNBOOK.md - Decision:
docs/decisions/ADR-2026-02-03-outreach-channels.md