docs(manual): Batch 1 — correct repository layout paths (core/feature, QuestionDao, QuestionJsonParser)
This commit is contained in:
parent
3a6ae5c69a
commit
be710a0c9d
|
|
@ -0,0 +1,92 @@
|
||||||
|
# Engineering Reference Manual Update Plan
|
||||||
|
|
||||||
|
Goal: bring `docs/Engineering_Reference_Manual.md` into alignment with the current
|
||||||
|
relationship-app codebase. Verify every claim, file path, function name,
|
||||||
|
collection name, and architectural fact. Never assume.
|
||||||
|
|
||||||
|
## Approach
|
||||||
|
|
||||||
|
- **Batch-based.** Each batch covers one major section or a coherent set of
|
||||||
|
subsections. One agent/turn per batch.
|
||||||
|
- **Evidence-first.** For every factual claim in the manual, verify against the
|
||||||
|
repo (grep, read file, run build/test if needed).
|
||||||
|
- **Log everything.** Each batch updates this plan with findings and
|
||||||
|
changes made.
|
||||||
|
- **Ripley coordinates.** Ripley does not code unless necessary; Bishop or
|
||||||
|
subagents may verify builds/docs.
|
||||||
|
|
||||||
|
## Batches
|
||||||
|
|
||||||
|
### Batch 1 — Front matter + System overview + Repository layout
|
||||||
|
- Read: `## How to use this document` through `### Shared configuration`.
|
||||||
|
- Verify all directory paths under `app/src/main/java/app/closer/`,
|
||||||
|
`functions/src/`, `functions/dist/`, `res/drawable-*`.
|
||||||
|
- Flag missing or renamed directories/files.
|
||||||
|
- Update any stale paths or naming.
|
||||||
|
|
||||||
|
### Batch 2 — Authentication, pairing, couples model
|
||||||
|
- Read: `## Authentication and pairing flow` through `### Key Cloud Functions`.
|
||||||
|
- Verify auth files, pairing flow files, `couples` collection fields,
|
||||||
|
recovery phrase implementation.
|
||||||
|
- Cross-check `firestore.rules` for the rules described.
|
||||||
|
- Update if code diverges from doc.
|
||||||
|
|
||||||
|
### Batch 3 — E2EE model + Firestore data model
|
||||||
|
- Read: `## End-to-end encryption model` and `## Firestore data model`.
|
||||||
|
- Verify crypto files, encryption versions, collection schemas, field names.
|
||||||
|
- Check `firestore.rules` regex helpers and invariants.
|
||||||
|
- Update data model tables if collections/fields changed.
|
||||||
|
|
||||||
|
### Batch 4 — Daily question lifecycle + Cloud Functions module
|
||||||
|
- Read: `## Daily question lifecycle` and `## Cloud Functions`.
|
||||||
|
- Verify function triggers, handlers, schedules, module responsibilities.
|
||||||
|
- Cross-check `functions/src/` tree.
|
||||||
|
- Update if functions were added/removed/renamed.
|
||||||
|
|
||||||
|
### Batch 5 — Firestore security rules
|
||||||
|
- Read: `## Firestore security rules`.
|
||||||
|
- Line-by-line verify against `firestore.rules`.
|
||||||
|
- Note any rules in the file not documented, or documented rules not in file.
|
||||||
|
|
||||||
|
### Batch 6 — Billing + Notifications
|
||||||
|
- Read: `## Billing` and `## Notifications`.
|
||||||
|
- Verify RevenueCat integration files, entitlement checks, webhook handler.
|
||||||
|
- Verify notification classes, quiet hours, deep-link routing.
|
||||||
|
- Update for quiet-hours server-side suppression if doc still says local-only.
|
||||||
|
|
||||||
|
### Batch 7 — iOS-specific + Build and release
|
||||||
|
- Read: `## iOS-specific notes` and `## Build and release`.
|
||||||
|
- Verify iOS project state (is it still broken? still exists?).
|
||||||
|
- Verify build commands, secrets, ProGuard, Functions deploy commands.
|
||||||
|
- Update stale commands or iOS status.
|
||||||
|
|
||||||
|
### Batch 8 — Known landmines and recent fixes (cross-cutting)
|
||||||
|
- Read: `## Known landmines and recent fixes`.
|
||||||
|
- Verify each listed issue ID and fix matches git history and current code.
|
||||||
|
- Add any missing recent landmines (e.g., theme scanner, quiet hours server-side).
|
||||||
|
- Prune obsolete entries.
|
||||||
|
|
||||||
|
### Batch 9 — Final review, TOC update, formatting
|
||||||
|
- Update `## Table of Contents` if headings changed.
|
||||||
|
- Run markdown lint / build check if applicable.
|
||||||
|
- Final pass for consistency.
|
||||||
|
|
||||||
|
## Status tracking
|
||||||
|
|
||||||
|
| Batch | Status | Findings | Changes made |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 1 | todo | | |
|
||||||
|
| 2 | todo | | |
|
||||||
|
| 3 | todo | | |
|
||||||
|
| 4 | todo | | |
|
||||||
|
| 5 | todo | | |
|
||||||
|
| 6 | todo | | |
|
||||||
|
| 7 | todo | | |
|
||||||
|
| 8 | todo | | |
|
||||||
|
| 9 | todo | | |
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- If a section is found to be mostly correct, still spot-check a few claims.
|
||||||
|
- If a section is wildly out of date, rewrite it and note the divergence.
|
||||||
|
- Commit after each batch (per Git Discipline Rules).
|
||||||
|
|
@ -89,14 +89,14 @@ app/src/main/java/app/closer/
|
||||||
│ ├── analytics/ # Firebase Analytics + Crashlytics wrappers
|
│ ├── analytics/ # Firebase Analytics + Crashlytics wrappers
|
||||||
│ ├── billing/ # EntitlementChecker + FirestoreEntitlementChecker
|
│ ├── billing/ # EntitlementChecker + FirestoreEntitlementChecker
|
||||||
│ ├── crash/ # CrashReporter abstraction
|
│ ├── crash/ # CrashReporter abstraction
|
||||||
│ ├── feature/ # (reserved for feature flags; currently empty — no feature-flag code in repo today)
|
│ ├── feature/ # (reserved for feature flags; no directory exists today — no feature-flag code in repo)
|
||||||
│ ├── navigation/ # AppRoute constants, NavHost, ExternalLinks
|
│ ├── navigation/ # AppRoute constants, NavHost, ExternalLinks
|
||||||
│ └── notifications/ # AppMessagingService, NotificationHelper, NotificationPermissionHelper, QuietHours, TokenRegistrar
|
│ └── notifications/ # AppMessagingService, NotificationHelper, NotificationPermissionHelper, QuietHours, TokenRegistrar
|
||||||
├── crypto/ # E2EE: Tink AEAD, BouncyCastle Argon2id, key stores
|
├── crypto/ # E2EE: Tink AEAD, BouncyCastle Argon2id, key stores
|
||||||
├── data/
|
├── data/
|
||||||
│ ├── challenges/ # Connection Challenges data sources
|
│ ├── challenges/ # Connection Challenges data sources
|
||||||
│ ├── local/ # Room DAOs, DataStore, EncryptedSharedPreferences (RecoveryPhraseStore, SecurePreferencesFactory, SettingsDataStore)
|
│ ├── local/ # Room DAOs, DataStore, EncryptedSharedPreferences (RecoveryPhraseStore, SecurePreferencesFactory, SettingsDataStore)
|
||||||
│ ├── questions/ # Question pack data sources (QuestionDao + QuestionJsonParser)
|
│ ├── questions/ # Question pack data sources (`QuestionJsonParser`)
|
||||||
│ ├── remote/ # Firestore data sources, Cloud Functions callable wrappers
|
│ ├── remote/ # Firestore data sources, Cloud Functions callable wrappers
|
||||||
│ ├── repository/ # Repository implementations
|
│ ├── repository/ # Repository implementations
|
||||||
│ └── security/ # PlayIntegrityChecker
|
│ └── security/ # PlayIntegrityChecker
|
||||||
|
|
@ -131,7 +131,7 @@ app/src/main/java/app/closer/
|
||||||
└── wheel/ # Spin the wheel
|
└── wheel/ # Spin the wheel
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note on the manual's older description**: a `core/security/` package and `data/local/QuestionJsonParser.kt` were documented in earlier revisions of this manual but don't exist in the current source. The auth rate limiter is in `domain/security/AuthRateLimiter.kt`, and the question JSON parser is at `data/questions/QuestionJsonParser.kt`.
|
**Note on the manual's older description**: a `core/security/` package was documented in earlier revisions of this manual but doesn't exist in the current source. The auth rate limiter is in `domain/security/AuthRateLimiter.kt`, and `QuestionJsonParser` is at `data/questions/QuestionJsonParser.kt` while `QuestionDao` is in `data/local/QuestionDao.kt`.
|
||||||
|
|
||||||
The Android settings package contains: `SettingsScreen`, `SettingsViewModel`, `SettingsVisuals`, `AccountScreen`, `EditProfileScreen` + `EditProfileViewModel`, `AppearanceScreen`, `DeleteAccountScreen`, `NotificationSettingsScreen`, `PrivacyScreen`, `RelationshipSettingsScreen`, `SecurityScreen`, `SubscriptionScreen`. The `SecurityScreen` is biometric-gated for the recovery phrase reveal.
|
The Android settings package contains: `SettingsScreen`, `SettingsViewModel`, `SettingsVisuals`, `AccountScreen`, `EditProfileScreen` + `EditProfileViewModel`, `AppearanceScreen`, `DeleteAccountScreen`, `NotificationSettingsScreen`, `PrivacyScreen`, `RelationshipSettingsScreen`, `SecurityScreen`, `SubscriptionScreen`. The `SecurityScreen` is biometric-gated for the recovery phrase reveal.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue