Canonical Markdown source: data/knowledge/reports/LifeLoveMe_Lightweight_Architecture_Audit.md in the repository. This page is for local web discovery.
1. Executive summary
The repository is moving toward the Universal Collection Framework (UCF) on the data and documentation side: web/data/collections/collection_manifest.json, RCM index_definition.json, media_manifest.json with deploy tiers, UNIVERSAL_INDEX_SCHEMA.md as a pointer, and Docs surfaces for Grand Vision and UCF.
The runtime apps remain RCM-first: dedicated RCM Hub and RCM Explorer URLs, Explorer and Experience Player paths centered on Ramcharitmanas data and AIR audio, and Library collection cards that are static HTML (not yet driven by collection_manifest.json). The structure is hybrid: UCF-shaped contracts exist; generic collection apps and manifest-driven Library are not fully realized yet.
2. Current app structure
| Area | Role today |
|---|---|
Home (web/home/) | Brand entry; Life / Love / Me pillars; footer links. No Ask LifeLoveMe single-box routing yet (Grand Vision §5). |
| Library | Static collection cards + Ask UI shell (not wired to global routing in the audit). |
| Docs | Index, vision/architecture HTML, journey, commands. |
| RCM Hub | Collection landing; Explorer vs Experience Player messaging. |
| RCM Reference | Manifest-driven cards + hub links. |
| RCM Explorer | Search modes, inline AIR read-along, LineRef + legacy plumbing. |
| Experience Player | Full player / plans; heavy JSON under app (not byte-audited). |
web/data/collections/ | Manifest + RCM index/media/search aliases. YOGA not in manifest yet. |
| Scripts / deploy | prepare_deploy.sh → lean deploy/web_public; LLMVision.sh, test_local_pages.sh. |
3. Alignment with Grand Vision
Already aligned: RCM as proof-of-concept; search as the heart; Hub vs Explorer vs Player; Docs; universal collection rows in manifest; lean deploy principle.
Gaps: Ask LifeLoveMe; reader-first routing at scale; wellness depth not evaluated in the audit pass.
4. Alignment with Universal Collection Framework
Present: collection_manifest.json; RCM index_definition.json; media_manifest.json; LineRef/SortKey movement in Explorer; universal docs + schema pointer.
Partial / missing: Generic items.json location vs Experience Player corpus split; UCF filenames vs search_aliases.json / HTML help; apps not shown to read collection manifest at runtime for Library/Hub.
5. RCM-specific assumptions still present
- App names, routes, and Ramcharitmanas-only copy.
- Deploy allowlists for
RamcharitmanasJSON and RCM media paths. - Explorer logic: legacy LineRef builders, LineID/RCMID, kand/doha/metre, Antakshari helpers, AIR ranges.
prepare_deploy.shhard-codedPROJECT_ROOT(portability risk).
6. Legacy or unused-looking code candidates
Candidates only — verify before any removal.
ANTAKSHARI_KAND_NAMES,normalizeHindiLineForAntakshariinrcm-explorer.js.- Defensive duplicate Play dedupe and experience-player link stripping in result cards.
- LineID still visible in some UI strings.
- Backup app folders under
web/apps/(not shipped by default).
7. Search architecture
| Mode | Role (high level) |
|---|---|
| Smart | interpretSmartSearch / structured interpretation; logging on fallbacks. |
| Text | Field-scanned matching. |
| Starts | Prefix-oriented Devanagari/Roman. |
| Index | LineRef and legacy index patterns. |
| Meaning | English/Hindi meaning fields. |
| Wildcard / boolean | Examples in testing plan; confirm parsers in a dedicated pass. |
| Aliases | Knowledge JSON + search_aliases.json. |
| LineRef-first | Primary display and inline play; legacy fallbacks. |
Risks: regression surface; LineID visibility; console logging in search paths.
8. Media / playback architecture
- Inline Explorer playback + episode panel;
air_line_timings.jsonwhen present. - Experience Player in a separate tab from Hub/Explorer nav.
media_manifest.jsonbeta rows withpublicPath.- Netlify lean limits enforced partly by script excludes and allowlists.
- ExternalURL/CDN playback policy documented; runtime verification deferred.
9. Deploy and testing architecture
prepare_deploy.sh— rsync, excludes, large JSON and MP3 allowlists.deploy/web_public— build output only.deploy/web_public_large— strategy documented; second-target script not verified in audit.LLMVision.sh,test_local_pages.sh,open_home_only.shper testing plan.
10. Readiness for a second collection (Yoga Sutra or Gita)
| Category | Assessment |
|---|---|
| Ready | UCF docs; manifest pattern; RCM index template; media tier vocabulary; Yoga ingestion plan doc. |
| Partially ready | Library slots; Docs; validation script names. |
| Not ready yet | No YOGA row; no generic explorer; hardwired paths; Library not data-driven; unified items location. |
Verdict: A small sample slice is feasible as a spike; not ready to “flip a flag” for a full second scripture without hub/explorer strategy.
11. Recommended next milestones
- Confirm duplicate Play via user journey.
- Reduce LineID prominence in default result UI.
- Library polish; optional read-only manifest-driven cards.
- Document or parameterize
PROJECT_ROOTin deploy script. - Yoga or Gita sample rows + manifest entries + read-only mini page.
- Universal media placeholder (external tier + clear unavailable copy).
- Ask LifeLoveMe prototype (static routing table).
12. Risk list
- Breaking RCM beta; over-broad Cursor prompts; large files on Netlify.
- RCM-specific assumptions in future “shared” code.
- Search regressions; old and new IDs mixed during migration.
13. Suggested next implementation prompt (safe)
Single bounded follow-up:
End of audit report.