Skip to content

Portfolio facts sheet

1. Corrections to the ChatGPT handover

# ChatGPT handover said Fact Status
C1 webapp-sakai is a legacy/reference source; the website source of truth is money-marche/money-marche-website moneymarche/webapp-sakai, branch dashboard, is the production website (moneymarche.com). money-marche/money-marche-website is WPDev, the parallel next-generation site (wpdev.moneymarche.com) STALE → VERIFIED (Atul)
C2 Production website work: not mentioned Production website maintenance is active. Label streams: Maintenance, SEO, API, MCRM, WPDev. Agent: ChatGPT project "Money Marche Website Maintenance Convergence". SEO work needed. Dashboard pages exist, untested and without users; preserve them VERIFIED (Atul)
C3 MMCLONE is an environment, not a repo; Testing Sandbox (project 86460958) unknown MMCLONE = mmclone.arevalifestyle.com on Bluehost, an exact production replica; every change is tested there first. Repo: money-marche-testing/money-marche-sandbox (tests and differences from production). Project ID 86460958 likely this repo VERIFIED (Atul); ID CHECK
C4 Staging = moneymarche/api-stg (ID 85925474) Website staging repo money-marche-group/money-marche-website-staging (extracted by TEA); old implementation; its database has a richer catalogue never moved to production. ID 85925474 is this repo (triage 12 Oct); moneymarche/api-stg returned 404, so its existence is unconfirmed VERIFIED; api-stg UNVERIFIED
C5 Governance repo owner not stated Owned by MMDEP-PM (Claude, reviewer chat), delegating to agents; writes through Atul or delegated agents DECISION (Atul, 11 Oct)
C6 "MMDEP repository" = governance repo only Two things: MMDEP governance repo (GitLab) and MMDEP orchestrator (GitHub moneymarche-dev/MMDEP, hub on Atul's laptop, iterations 1–2) VERIFIED
C7 MCRM: catalogue authority open MCRM owns the new dashboard framework, calculators, the catalogue (delinking from the WordPress DB, served by the API), Mautic and user forms. Its backlog waits on an independent reviewer. G-gates as of 5 Oct still CHECK VERIFIED (Atul); gates CHECK
C8 API/MM-Cron: Release-C MR set unknown API has ~38 open MRs, MM-Cron ~20, none merged; entry points API !160 (status register), MM-Cron !80, !75. CI blocked since the GitLab quota ran out in September. The agent commits as Ajay's account VERIFIED (PM read, 11 Oct)
C9 NAV freshness: open TEA found NAV persistence stopped 19 Aug 2026 with no alert; current state to ask Ajay VERIFIED finding; current CHECK
C10 — Security: a live /save-nav write token is committed in mm-crons; rotation pending (Atul/Ajay). Never copy its value VERIFIED
C11 Hosting not stated One 2 GB Lightsail server hosts production, staging, dev, both APIs, Mautic, SuiteCRM, MM-Cron. PE dev on Bluehost, moving to the AWS tools box after the test VERIFIED
C12 webapp (62798730) listed moneymarche/webapp is old and unused VERIFIED (Atul)
C13 Recommendation engine: not mentioned Future project: combines insurance, investments and finance to recommend solutions VERIFIED (Atul)
C14 TEA/TEM roles active in ChatGPT TEA retires from ChatGPT to deterministic collectors (runner/Gemini); TEM goes to a developer agent DECISION (proposal, operating model §4)
C15 Claude TEM review (MR !52) outcome unknown CHECK whether !52 was reviewed; Claude chat has no record CHECK

2. Kept from the ChatGPT handover (useful, still to verify in step 3)

  • GitLab project IDs: governance 85626046, api 56853677, mm-crons 58612114, website (WPDev) 85745572, webapp-sakai 65807128, wordpress_plugins 57525236, api-stg 85925474.
  • Governance MRs !51 (cross-project investigation inventory) and !52 (TEM review package): status CHECK.
  • PE: main 0710014 (24 Sep); #255, #309/#310, #252/#253, #312 (Gateway proposal, not an approved decision): status CHECK.
  • MCRM: PRs #34–#37, issue #31: status CHECK.
  • TEM issues #11, #17–#27; TEA #24, #25; intended repo money-marche-group/technology-estate-manager (existence CHECK).
  • Parked: renderer/Elementor investigation until the legacy developer supplies evidence. Keep parked.
  • Boundaries to preserve: no MCRM authority or G4 decisions on the owner's behalf; PE #312 is a proposal; no autonomous production action.
  • Non-engineering workstreams (Aayati PAI Fund, Scuzo, Jaipur Golden Hospital, TheHealthSIP): out of MMDEP scope unless Atul says otherwise.

3. ChatGPT automations

Automation State (11 Oct) Decision
Weekly MMDEP Triage (Mon ~09:00 IST, ID 6a96c9e8…) Enabled; output only in the ChatGPT chat; notifications and email off; last run 5 Oct Keep, re-scoped (§4)
MCRM Autonomous Work, MCRM Autonomous Progress, MM Website Progression, PE Architecture Maturity Watch, PE Phase 1 Review Disabled Leave disabled; delete after the vacation unless a project lead wants one

4. The weekly triage after the PM handover

  • A ChatGPT scheduled task belongs to the ChatGPT account and its chat, not to the role. Retiring the PM role doesn't stop it; it keeps running in that chat until someone edits or deletes it.
  • Today its output stays inside that chat, so nobody else sees it, and its prompt asks it to "update the requisite MMDEP sections", i.e. to write governance content from stale facts.
  • Re-scope (proposal): it becomes a triage collector seat reporting to MMDEP-PM, not a PM:
  • reads this facts sheet and the project cards first each run;
  • read-only on all repos; writes nothing except one issue per run in GitHub moneymarche-dev/MMDEP, labelled role:mmdep-pm and type:triage (GitHub, because its GitLab access failed on 5 Oct);
  • lists changes since last week, new blockers, and questions; no decisions.
  • MMDEP-PM reads that issue and updates cards through the outbox.
  • Schedule (Atul, 11 Oct 17:12): daily at 09:00 IST for the week of 12 Oct, covering changes since the last run; the schedule for the vacation and after is decided before 16 Oct.
  • Replaced by MCL stages S1–S2 once MCL is proven; then the task is deleted.

5. Schedulers as an instruction channel (Atul, 11 Oct 17:26)

ChatGPT allows 3 scheduled tasks per account (A-35), and all 3 are used. Together with AGENTS.md, they are how MMDEP-PM instructs the ChatGPT agents. A change to any of them goes through Atul and is recorded here.

Slot Scheduler Serves Prompt held by
1 Weekly MMDEP Triage (daily during the week of 12 Oct) MMDEP-PM and Portfolio Engine (PE had no slot left) This sheet (below)
2 MCRM MCRM To collect from Atul
3 MWMC (Money Marche Website Maintenance and Convergence) Production website To collect from Atul

PE requirement carried over from the original prompt (must not be lost): use the MMDEP triage as the governance-level source for PE architecture maturity, including any documented maturity-stage change in the PE Data Gateway/cache architecture. If a documented stage has been reached and an implementation is now justified, record the stage, the evidence and the next implementation task. Never trigger implementation, and never infer maturity from unapproved work (PE PR #312 is a proposal).

Triage prompt v2 (11 Oct). Applied by Atul at 17:33 and confirmed by the agent: exact daily schedule, 09:00 IST, 12–15 Oct inclusive; the five disabled automations untouched.

Read-only daily triage for MMDEP-PM (Claude). First read docs/handovers/2026-10-11-portfolio-facts-sheet.md in GitHub moneymarche-dev/MMDEP (branch docs/2026-10-10-sync until merged). Then check each project repo for changes since the last run: merged/opened MRs and PRs, new issues, new blockers, pipeline state. Do not edit any repository, issue or document.
Portfolio Engine (this triage is PE's governance source): report the current architecture-maturity stage of the PE Data Gateway/cache, any documented stage change with evidence (repo/path/ref), and, only if a documented stage has been reached and implementation is now justified, the specific next implementation task. Do not trigger implementation; do not infer maturity from unapproved work (PR #312 is a proposal).
Output: open ONE GitHub issue in moneymarche-dev/MMDEP titled 'Triage YYYY-MM-DD' with sections: Changes / New blockers / Portfolio Engine architecture maturity / Questions for owners / Facts in the sheet that look wrong. If nothing changed, still open the issue and say so. Mark each item EVIDENCE (repo/path/ref) or UNVERIFIED. No decisions.
Schedule: daily at 09:00 IST until 15 Oct. Leave the five disabled automations disabled.

The PE agent's AGENTS.md MMDEP section must tell it to read the latest Triage issue in moneymarche-dev/MMDEP for architecture-maturity status.

6. Findings from the triage of 12 Oct (ChatGPT, posted in chat; issue creation was blocked)

The agent couldn't create the GitHub issue (blocked by ChatGPT safety checks), so it disabled the scheduler itself. Findings to act on:

# Finding Action / owner
T1 PE PR #321 says "PM-approved", but PE issue #315 says "METHODOLOGY REQUIRED — NOT IMPLEMENTED". MMDEP-PM (Claude) has approved nothing in PE PE owner reconciles; nothing merges on the strength of that wording
T2 MM-Cron main commit 46d55823 (7 Oct) "fix: nav download", manually deployed to the server Ask Ajay: has NAV persistence resumed, and since when? Manual deploy needs a trace record
T3 Testing sandbox has an open P0 for database-access rotation Possible second credential exposure: check with Ajay alongside the /save-nav token
T4 Staging crawl/index protection is an open P0 (website-staging repo, duplicated in the webapp tracker) SEO risk (duplicate content); website maintenance stream; pick one tracker
T5 API issue #29: mm_product_holdings missing in staging Ties to the holdings finding in API !155
T6 GitLab pipeline listing returns 403 for most projects GitLab reads need our own collector with a read-only token
T7 New PE items: issues #315–#317, PRs #314, #319–#321; MCRM PRs #89–#97, issues #94, #96 Into the project cards
T8 PE Gateway/cache maturity: no accepted stage in merged evidence; the only stage model is unmerged PR #249 ("Stage 0 — Current"); #312 open No implementation task justified

7. From Ajay (MMDEP doc, 12 Oct, verified by Ajay)

  • /save-nav key: called only from AWS Lambda; hard-coded as API_KEY in src/config.py (API) and in lambda/navdata/lib/navdata.py (mm-crons); last rotated during initial development. Rotation: change both, restart the API (about 1 minute, MF data briefly unavailable), update the Lambda; the Lambda runs daily at 15:30.
  • WordPress databases differ between staging and production; mm_data is shared by both.
  • Vacation cover: restart the server if it is unreachable; if services stay down, restore the last valid snapshot. Daily snapshots are scheduled; a monthly snapshot is also needed.
  • Open with Ajay: GitLab runner (question 3); whether staging can write to mm_data; the rotation slot.