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
- Claude writes a prompt pack per project at sprint start: 5–10 numbered steps in
prompts/<project>/S<n>/, plusQUEUE.md. Each step names: - its input files;
- the exact output files;
- a machine check;
- 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 |