Skip to content

Agents direct, the design harness, three horizons

Atul, 22 Oct: - Agents should reach MMDEP directly. - Claude is for design, decisions and critical code, not for relaying. - ChatGPT should produce more between two PROCEEDs, and the code harness should act after every ChatGPT run. - No OpenRouter credit yet. - Heavy tools should be judged on utility first, then cost, at three horizons.

A. Agents talk to MMDEP directly (the Actions panel stops being a relay)

Why Claude relays today: the Actions panel is a claude.ai artifact. Only a Claude session can write its data, so every agent message has had to pass through me. The agents, the harness and the collector all share GitHub instead. So the inbox moves to GitHub.

Now (from S2 week 1) Medium term (server, S3) Long term
Where messages live GitHub issues in moneymarche-dev/MMDEP, labelled for-atul, plus a type label (decide, do, question), the project and the risk. GitLab question-atul issues are mirrored here The MMDEP hub (mmdep/store.py and the MCP server already exist) on the AWS server, behind HTTPS with one token per agent Same hub, on a database, with roles for Atul, Ajay and developers
How an agent raises one Commits a small file for-atul/<project>/<date>-<slug>.md (front matter: type, choices, blocking, risk), or opens the issue itself. The hourly actions sync turns files into issues (B39) Calls raise_item on the hub. ChatGPT projects add the hub as a custom (MCP) connector, if the plan allows developer-mode connectors (to verify) Same
How Atul answers In the GitHub mobile app: tick a choice or comment. Notifications come to the phone, and the comments are the trail Web page on the server, or the GitHub app Web and mobile
How the answer reaches the agent Actions sync copies it to docs/relay/answers.md and to the source issue or file (exists: #57) The hub delivers it to the agent's next list_items Same
Overview page An "Actions" page on the docs site, rebuilt hourly from issues, grouped by project and sprint (B41) Hub web view Same
The claude.ai panel Read-only for 2 weeks in parallel, then retired — —

From then on, Claude reads the same inbox only when there is a design or decision to make.

B. The design harness loop: more output between two PROCEEDs

flowchart LR
  C[Claude: prompt pack per project per sprint] --> Q[(prompts/QUEUE.md in the repo)]
  A[Atul: one PROCEED] --> G[ChatGPT project]
  Q --> G
  G -->|step output on a branch, runs/step-N.md| R[(repository)]
  R --> CI[CI: design check, tests]
  R --> H[Local harness: post-step job]
  H -->|issues from LLD, code on ready issues, data checks| R
  CI --> F[runs/step-N-feedback.md]
  H --> F
  F --> G
  G -->|next step, until blocked or the queue is empty| R
  1. Claude writes a prompt pack per project at sprint start: 5–10 numbered steps in prompts/<project>/S<n>/, plus QUEUE.md. Each step names:
  2. its input files;
  3. the exact output files;
  4. a machine check;
  5. the harness job that follows.

This is design work, not relaying: Claude decides what good output looks like. 2. Atul sends one PROCEED ("PROCEED: run the queue"). The ChatGPT project: - takes the next step whose dependencies are met; - commits the output on a branch with runs/step-N.md; - goes straight on to the next step.

It stops only when blocked, when the queue is empty, or when its context runs out, and writes runs/STOPPED.md with the reason. MWMC's chats already show "Completed next 5 tasks" from one PROCEED, so multi-step runs work. 3. After every step, the code harness acts (B40). A commit under runs/ triggers: - CI: the design check (B35) and the tests; - the local harness's post-step job, which does one of: - turn an approved LLD into ready issues (B36); - run the code harness on ready issues; - run the data checks.

It writes runs/step-N-feedback.md, which the next ChatGPT step reads first. 4. Between PROCEEDs the harness keeps working the ready issues hourly, so output doesn't stop when ChatGPT does. 5. To test in S2 week 1: ChatGPT scheduled tasks. Chat titles such as "MCRM Scheduled Progression" and "API and MM-Cron hourly" show they were tried. If they can run the queue reliably, PROCEED becomes automatic within the ChatGPT plan's limits.

Measured per sprint: - steps completed per PROCEED (target 5 or more); - harness jobs per step; - step outputs accepted first time; - Atul-minutes.

C. Heavy tools: utility first, then cost, at three horizons

Horizons: - Now: to the end of Nov; ₹0 to small spend. - Medium: Dec–Feb; the server, one good machine, the developer. - Long: projects earning; scale by the value line.

Costs are estimates to confirm at purchase.

Tool Utility (why it matters) Now Medium Long
Large local models (32–70B) Medium. The real value is processing client data that may not leave our machines (renewal lists, call notes), plus unlimited bulk tokens. For coding quality, paid Gemini Flash already beats local 7B 3–7B on the inventory machines via LiteLLM, for classification and extraction on client data. Coding: OpenRouter free plus Gemini paid One GPU desktop. A used RTX 3090 24 GB build, about ₹1.0–1.3 lakh, runs 32B coding models at working speed. Or a Mac mini M4 Pro 48 GB, about ₹2–2.3 lakh: quieter, runs 70B slowly Second GPU, or rented GPU hours for bursts. Choose by cost per merged PR against paid APIs
Image generation (SDXL/Flux) Medium. Fund and NFO page visuals and social posts. Script-made templated images (fund name, category, riskometer) cover most needs and are always compliant Templated images by script (₹0). Occasional Gemini image calls (a few rupees each) On the same GPU desktop (12 GB video memory or more): ComfyUI with SDXL or Flux-schnell Same; batch campaigns
Call transcription (Whisper) High, once calls are recorded with consent. Objections and outcomes feed renewal points (₹10,000 per point) faster-whisper (small/medium) on a 16 GB CPU machine: fine for 10–20 calls a day, ₹0 GPU desktop: large-v3, fast Speaker separation, daily coaching reports
Product analytics (PostHog) Medium. Funnels and session replay. GA4 plus Search Console cover the S2 baseline; Umami covers first-party funnels GA4 + Search Console (free) Umami on the server (light) PostHog Cloud (free tier, but data leaves India: check DPDP) or self-hosted on a 16 GB server
n8n (business flows) High for the renewal cadence and lead routing: direct revenue Python jobs on the laptop jobs runner (renewal list, reminder files) n8n on the server (1–2 GB), flows exported to git Queue mode with workers
RAG / vector store Medium now (facts for content), high later (chat, support) File search and the knowledge extracts pgvector in the server's Postgres. Embeddings from a small local model (CPU) or Gemini Dedicated store
Website chatbot Medium–high later, but high compliance risk — FAQ bot on published pages only, with lead capture Assistant grounded on our content and CRM
Lighthouse CI, crawler High, light On the laptop runner now Server runner Same

Server sizing: SRV-1's 2 vCPU / 4 GB takes LiteLLM, n8n and Umami at low load. When Postgres, n8n and analytics grow, move to 4 vCPU / 16 GB. Heavy model work stays on the office GPU desktop.

OpenRouter, utility first. Without any credit purchased, free models allow 50 requests a day (20 a minute). After a one-time purchase of 10 credits (US$10, about ₹900), the same free models allow 1,000 a day. The credit isn't consumed by free models, and the harness calls only free models unless a paid one is configured. - Each harness task makes 1–4 calls, so at 50 a day free models handle roughly 15–25 tasks a day. - Recommendation: when the harness queue exceeds that (S2 week 2), buy the US$10 once. Keep the key's limit low.

D. What changes for whom

Who Change
Claude Writes prompt packs, designs, ADRs and critical code. Reviews high-risk items. No relaying after B39/B41
ChatGPT projects Run their queue from one PROCEED. Raise for-atul files or issues. Read feedback files
Local code harness Post-step jobs after every ChatGPT step. Hourly work on ready issues
Sonnet B39 (inbox on GitHub), B40 (post-step jobs), B41 (Actions page), then B35/B36
Atul Answers in the GitHub app. One PROCEED per project per day or less