chore: prepare yanting monorepo handoff
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Decision Record
|
||||
|
||||
This is a handoff snapshot, not the product SSOT.
|
||||
|
||||
Product SSOT: mall-docs report-notebooklm docs, snapshot date: 2026-06-03.
|
||||
|
||||
## Product Decisions
|
||||
|
||||
| Date | Decision | Impact |
|
||||
|---|---|---|
|
||||
| 2026-06-02 | Phase 1 scope is a Chinese global institutional report interpretation app, not a pure audio app. | Five main tabs remain 推荐 / 研报 / 机构 / 听单 / 我的. |
|
||||
| 2026-06-02 | Phase 1 has no commercialization. | No ads, paid unlock, membership, task wall, or points. |
|
||||
| 2026-06-02 | Phase 1 does not open comments, UGC, or user-generated report interpretation. | App should not show community or publishing entry points. |
|
||||
| 2026-06-02 | Guest users can browse public content and fully listen to at least one item. | Login should not block first listening experience. |
|
||||
| 2026-06-03 | Product display name is `研听`; technical identifiers stay `report-notebooklm` / `rnb`. | Code identifiers, database schema, Redis keys, object-storage paths, and API prefixes remain brand-neutral. |
|
||||
| 2026-06-03 | Phase 1 has no report-interpretation download feature. | No top-level download icon, detail download button, profile download record, download API, or offline audio package. |
|
||||
|
||||
## API and Data Decisions
|
||||
|
||||
| Date | Decision | Impact |
|
||||
|---|---|---|
|
||||
| 2026-06-03 | Public responses expose only `cache_version`. | `display_version`, module `version`, and nested cache version objects are internal. |
|
||||
| 2026-06-03 | Heavy modules use a skeleton plus lazy full-module flow. | Detail returns previews; full content uses `/reports/{report_id}/modules/{module_id}` or a content reference. |
|
||||
| 2026-06-03 | FAQ, Study Guide, and Glossary are represented as `study_guide`. | Legacy `faq` should map to `study_guide`; no separate public `faq` type. |
|
||||
| 2026-06-03 | Public published content may use direct content references; restricted sources need short-lived backend signed URLs. | Backend keeps module endpoint and should add signed URL behavior for restricted content. |
|
||||
| 2026-06-03 | Gray broker sources may be full-text audio-ized, but need compliance/operations review before production. | Seed and production rules can allow audio, but release must remain reviewed. |
|
||||
|
||||
## Content Pipeline Decisions
|
||||
|
||||
| Date | Decision | Impact |
|
||||
|---|---|---|
|
||||
| 2026-06-02 | NotebookLM is treated as a source-driven research engine. | Use native artifacts and targeted queries; do not invent unsupported copy. |
|
||||
| 2026-06-02 | Raw artifacts stay internal. | App consumes reviewed display artifacts only. |
|
||||
| 2026-06-02 | P0 text artifacts publish first; media and enrichment are async. | Audio, infographic, research discovery, and mind map must not block text publishability. |
|
||||
| 2026-06-02 | Vision can be used as source/reference experience but not as a production runtime dependency. | Production data must not depend on local Vision runtime, local paths, or local account state. |
|
||||
|
||||
## Repository and Handoff Decisions
|
||||
|
||||
| Date | Decision | Impact |
|
||||
|---|---|---|
|
||||
| 2026-06-03 | Gitea target is a single repository. | `report-notebooklm-api/` and `report-notebooklm-app/` should be ordinary subdirectories in one repo. |
|
||||
| 2026-06-03 | Public docs must be portable. | No local absolute paths or private machine setup in committed docs. |
|
||||
| 2026-06-03 | Local-only agent and status material goes into ignored files. | Use `AGENTS.local.md` and `docs.jimme.local/`. |
|
||||
| 2026-06-03 | Long-lived decisions are public; raw sessions are local. | Distill decisions into this file; keep session pointers in ignored local docs. |
|
||||
@@ -0,0 +1,85 @@
|
||||
# Development History
|
||||
|
||||
This is a handoff snapshot, not the product SSOT.
|
||||
|
||||
Product SSOT: mall-docs report-notebooklm docs, snapshot date: 2026-06-03.
|
||||
|
||||
## 2026-06-02 - Product Scope Freeze
|
||||
|
||||
- Product scope was corrected away from the old "Wall Street listening" / pure-audio framing.
|
||||
- Phase 1 was frozen around a Chinese research-report interpretation app.
|
||||
- Main tabs were fixed as 推荐 / 研报 / 机构 / 听单 / 我的.
|
||||
- Non-goals were made explicit: no commercialization, comments, UGC, trading advice, professional terminal, or local Vision runtime dependency.
|
||||
- Vision was kept as reference/source experience, not production runtime.
|
||||
|
||||
## 2026-06-02 - Development Plan and Review
|
||||
|
||||
- Phase 1 technical baseline was selected:
|
||||
- Flutter App.
|
||||
- FastAPI backend.
|
||||
- MySQL 8.
|
||||
- Redis with `rnb:` namespace.
|
||||
- Object storage for raw artifacts, heavy modules, audio, and images.
|
||||
- Existing cloud/server deployment model.
|
||||
- External launch dependencies were identified:
|
||||
- SMS template/signature.
|
||||
- WeChat Open Platform.
|
||||
- Apple login if required.
|
||||
- AI-generated-content labeling.
|
||||
- compliance review for source and media policies.
|
||||
- The plan passed independent review with changes requested around launch blockers and implementation details.
|
||||
|
||||
## 2026-06-03 - Backend Scaffold
|
||||
|
||||
- FastAPI service created under `report-notebooklm-api/`.
|
||||
- SQLAlchemy model layer created for Phase 1 tables.
|
||||
- Alembic initial migration added.
|
||||
- Seed importer added with institutions, reports, display artifacts, display modules, audio assets, users, favorites, and playback progress.
|
||||
- Public read routes implemented:
|
||||
- `/health`
|
||||
- `/feed/recommended`
|
||||
- `/reports`
|
||||
- `/reports/{id}`
|
||||
- `/reports/{id}/modules/{module_id}`
|
||||
- `/institutions`
|
||||
- `/institutions/{id}`
|
||||
- `/listen`
|
||||
- Tests added for seed counts, public API shape, hidden/review module boundaries, gray-source behavior, and listen list behavior.
|
||||
|
||||
## 2026-06-03 - App Scaffold
|
||||
|
||||
- Flutter app shell created under `report-notebooklm-app/`.
|
||||
- Five tabs implemented.
|
||||
- API client added with explicit `RNB_API_BASE`.
|
||||
- Feature folders created for feed, reports, institutions, listen, profile, detail, and shared widgets.
|
||||
- Detail module renderer registry added.
|
||||
- Local placeholders added for blocked behaviors:
|
||||
- login
|
||||
- favorite
|
||||
- outbound confirmation
|
||||
- playback progress
|
||||
- real audio stream
|
||||
- Android platform scaffold added.
|
||||
|
||||
## 2026-06-03 - Handoff Preparation
|
||||
|
||||
- Backend and App documentation added.
|
||||
- Public docs were distilled from product documents without copying the full product-doc tree.
|
||||
- Local-only paths and raw session details were separated from public docs.
|
||||
- Root README and public AGENTS instructions were introduced for the single-repo Gitea handoff.
|
||||
|
||||
## Current Verification Snapshot
|
||||
|
||||
Validated during handoff preparation:
|
||||
|
||||
- Backend editable install with dev dependencies.
|
||||
- Backend migration.
|
||||
- Backend seed import.
|
||||
- Backend tests.
|
||||
- Backend smoke checks for health, feed, and report detail.
|
||||
- App analyze.
|
||||
- App widget test.
|
||||
- App web build.
|
||||
- App debug APK build.
|
||||
|
||||
Build artifacts are transient and are not committed.
|
||||
@@ -0,0 +1,44 @@
|
||||
# Project Overview
|
||||
|
||||
This is a handoff snapshot, not the product SSOT.
|
||||
|
||||
Product SSOT: mall-docs report-notebooklm docs, snapshot date: 2026-06-03.
|
||||
|
||||
## Purpose
|
||||
|
||||
`研听` is a Chinese app for understanding global institutional research reports. It converts difficult English research reports into reviewed Chinese reading and listening experiences.
|
||||
|
||||
The product is a research-report interpretation and annotation service. It does not provide investment advice.
|
||||
|
||||
## Technical Shape
|
||||
|
||||
| Layer | Technology | Path |
|
||||
|---|---|---|
|
||||
| App | Flutter | `report-notebooklm-app/` |
|
||||
| API | FastAPI | `report-notebooklm-api/` |
|
||||
| Database | MySQL 8 | configured by `RNB_DATABASE_URL` |
|
||||
| Cache | Redis | configured by `RNB_REDIS_URL` |
|
||||
| Storage | Object storage | planned for raw artifacts, modules, audio, images |
|
||||
|
||||
## Phase 1 Surfaces
|
||||
|
||||
- 推荐: latest and curated report interpretations.
|
||||
- 研报: all published report interpretations with basic filters.
|
||||
- 机构: institution list, institution detail, and recent reports.
|
||||
- 听单: audio-backed reports.
|
||||
- 我的: guest/login state and shallow personal-state entries.
|
||||
|
||||
## Key Engineering Principle
|
||||
|
||||
The app consumes reviewed display artifacts through the API. Raw NotebookLM artifacts are internal evidence and must not be exposed publicly.
|
||||
|
||||
NotebookLM-native content may be cleaned, mapped, reviewed, and assembled deterministically. It must not be silently replaced by local LLM rewriting.
|
||||
|
||||
## Repository Documentation
|
||||
|
||||
- `README.md`: human entry point.
|
||||
- `AGENTS.md`: public agent instructions.
|
||||
- `docs/DECISIONS.md`: durable decisions.
|
||||
- `docs/DEVELOPMENT_HISTORY.md`: major change history.
|
||||
- `report-notebooklm-api/docs/`: backend, data, API, and content pipeline details.
|
||||
- `report-notebooklm-app/docs/`: App runbook and API consumption notes.
|
||||
Reference in New Issue
Block a user