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, labelledrole:mmdep-pmandtype: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-navkey: called only from AWS Lambda; hard-coded asAPI_KEYinsrc/config.py(API) and inlambda/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.