LifeLoveMe

Lightweight Architecture Audit

Structure, UCF readiness, deploy/testing, risks, and next milestones — documentation-only pass.

Date: 2026-05-11. Scope: Documentation-only audit. Large JSON corpora, deploy/, media/, dependency trees, and backup folders were not loaded end-to-end.

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

AreaRole today
Home (web/home/)Brand entry; Life / Love / Me pillars; footer links. No Ask LifeLoveMe single-box routing yet (Grand Vision §5).
LibraryStatic collection cards + Ask UI shell (not wired to global routing in the audit).
DocsIndex, vision/architecture HTML, journey, commands.
RCM HubCollection landing; Explorer vs Experience Player messaging.
RCM ReferenceManifest-driven cards + hub links.
RCM ExplorerSearch modes, inline AIR read-along, LineRef + legacy plumbing.
Experience PlayerFull player / plans; heavy JSON under app (not byte-audited).
web/data/collections/Manifest + RCM index/media/search aliases. YOGA not in manifest yet.
Scripts / deployprepare_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 Ramcharitmanas JSON and RCM media paths.
  • Explorer logic: legacy LineRef builders, LineID/RCMID, kand/doha/metre, Antakshari helpers, AIR ranges.
  • prepare_deploy.sh hard-coded PROJECT_ROOT (portability risk).

6. Legacy or unused-looking code candidates

Candidates only — verify before any removal.

  • ANTAKSHARI_KAND_NAMES, normalizeHindiLineForAntakshari in rcm-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

ModeRole (high level)
SmartinterpretSmartSearch / structured interpretation; logging on fallbacks.
TextField-scanned matching.
StartsPrefix-oriented Devanagari/Roman.
IndexLineRef and legacy index patterns.
MeaningEnglish/Hindi meaning fields.
Wildcard / booleanExamples in testing plan; confirm parsers in a dedicated pass.
AliasesKnowledge JSON + search_aliases.json.
LineRef-firstPrimary 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.json when present.
  • Experience Player in a separate tab from Hub/Explorer nav.
  • media_manifest.json beta rows with publicPath.
  • 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.sh per testing plan.

10. Readiness for a second collection (Yoga Sutra or Gita)

CategoryAssessment
ReadyUCF docs; manifest pattern; RCM index template; media tier vocabulary; Yoga ingestion plan doc.
Partially readyLibrary slots; Docs; validation script names.
Not ready yetNo 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

  1. Confirm duplicate Play via user journey.
  2. Reduce LineID prominence in default result UI.
  3. Library polish; optional read-only manifest-driven cards.
  4. Document or parameterize PROJECT_ROOT in deploy script.
  5. Yoga or Gita sample rows + manifest entries + read-only mini page.
  6. Universal media placeholder (external tier + clear unavailable copy).
  7. 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:

Document-only or one small mechanical fix: (A) Add a short subsection to docs/testing/Local_Web_App_Testing_Plan.md explaining that scripts/prepare_deploy.sh uses a fixed PROJECT_ROOT and how to override or symlink for local development; or (B) change only prepare_deploy.sh to resolve PROJECT_ROOT relative to the script location, with no other behavior changes. After (B), run prepare_deploy and test_local_pages against a running server. Do not edit deploy/web_public by hand, do not modify RCM Explorer search logic, and do not load large JSON into the chat.

End of audit report.