Built VietConnect a 'second brain' so every future session loads full context cheaply — and never re-reads the 11.4 MB pitch PDFs again.Đã xây cho VietConnect một 'bộ não thứ hai' để mỗi phiên làm việc sau này nạp đủ ngữ cảnh với chi phí thấp — và không bao giờ phải đọc lại hai file PDF pitch nặng 11.4 MB nữa.
Strategic knowledge was scattered across 5+ places and two heavy PDFs, so every new session burned tokens re-discovering the same facts and re-asking settled questions. I consolidated everything into a small, indexed docs/ folder, wired auto-loaded pointers so each session finds it for free, and converted the pitch PDFs to markdown. Additive only — no code touched, no deletions.Kiến thức chiến lược nằm rải rác ở hơn 5 nơi cùng hai file PDF nặng, nên mỗi phiên mới lại tốn token để tìm lại đúng những thông tin cũ và hỏi lại những việc đã chốt. Tôi gom tất cả vào một thư mục docs/ nhỏ gọn có mục lục, gắn các con trỏ tự nạp để mỗi phiên tìm thấy nó miễn phí, và chuyển PDF pitch sang markdown. Chỉ thêm vào — không động vào code, không xóa gì.
6-layer thinking chainChuỗi tư duy 6 tầng
"Check the whole codebase so it's efficient and clean… save tokens because each session I have to push memory again or read the PDF again… convert PDFs to Markdown so you never read them again… think of a clot that amplifies a brain.""Kiểm tra lại toàn bộ codebase cho gọn và hiệu quả… tiết kiệm token vì mỗi phiên lại phải nạp lại bộ nhớ hoặc đọc lại PDF… chuyển PDF sang Markdown để không bao giờ đọc lại nữa… nghĩ ra một thứ khuếch đại bộ não."
- The repo is already git-clean — videos (692 MB), .next (1.3 GB), and automation tooling are all gitignored. So 'bloat cleanup' was a false lead.
- The only heavy tracked items are 2 pitch PDFs (11.4 MB), and they're generated from React slides — so the real source already lives in code.
- Two memory layers exist: Claude's auto-memory (loads each session) and in-repo docs (loads only when read). The trick is to make the cheap one point to the rich one.
- Strategic knowledge sat in plans/ (untracked), pitch slides, SETUP.md, a gitignored brand JSON, and memory — no single home.
- Repo vốn đã sạch về git — video (692 MB), .next (1.3 GB) và bộ công cụ tự động hóa đều đã được gitignore. Nên 'dọn rác' là hướng sai.
- Thứ nặng duy nhất được theo dõi là 2 file PDF pitch (11.4 MB), và chúng được sinh ra từ các slide React — nên nguồn thật đã nằm sẵn trong code.
- Có hai tầng bộ nhớ: bộ nhớ tự động của Claude (nạp mỗi phiên) và tài liệu trong repo (chỉ nạp khi đọc). Mẹo là làm cho cái rẻ trỏ tới cái giàu thông tin.
- Kiến thức chiến lược nằm ở plans/ (chưa theo dõi), các slide pitch, SETUP.md, một file brand JSON bị gitignore, và bộ nhớ — không có một nơi duy nhất.
- A) Convert PDFs only — cheap, but leaves market/product knowledge scattered. (Under-solves.)
- B) Stuff everything into Claude auto-memory — loads free, but bloats every session and isn't shared/version-controlled.
- C) Full in-repo docs/ + a tiny auto-loaded pointer + decision log (chosen) — versioned, shared, and read on-demand; only a 40-line index loads by default.
- D) A dynamic RAG/retrieval system — overkill for a single repo; new infra to maintain.
- A) Chỉ chuyển PDF — rẻ, nhưng kiến thức thị trường/sản phẩm vẫn rải rác. (Giải chưa đủ.)
- B) Nhồi hết vào bộ nhớ tự động của Claude — nạp miễn phí, nhưng làm phình mỗi phiên và không chia sẻ/quản lý phiên bản được.
- C) Bộ docs/ đầy đủ trong repo + một con trỏ tự nạp nhỏ xíu + nhật ký quyết định (đã chọn) — có phiên bản, chia sẻ được, đọc theo nhu cầu; mặc định chỉ nạp một mục lục 40 dòng.
- D) Hệ thống RAG/truy hồi động — quá mức cho một repo đơn lẻ; thêm hạ tầng phải bảo trì.
How the 'second brain' saves tokensVì sao 'bộ não thứ hai' tiết kiệm token
Two files load automatically and for free at the start of every session. Both now point to a tiny index. The index maps to focused docs, so a session reads only the 1-2 it needs — and the 11.4 MB PDFs are never opened.Hai file tự động nạp miễn phí ở đầu mỗi phiên. Cả hai giờ đều trỏ tới một mục lục nhỏ xíu. Mục lục dẫn tới các tài liệu chuyên biệt, nên một phiên chỉ đọc 1-2 tài liệu cần thiết — và các file PDF 11.4 MB không bao giờ bị mở.
| Technical termThuật ngữ kỹ thuật | Plain nameTên dễ hiểu | RoleVai trò |
|---|---|---|
AGENTS.md / CLAUDE.md | The always-on instructionsHướng dẫn luôn bật | Auto-loaded into every session at zero extra cost. Now tells any AI tool: read docs/INDEX.md first, never read the pitch PDFs, check decisions.md before asking.Tự nạp vào mọi phiên mà không tốn thêm. Giờ báo cho mọi công cụ AI: đọc docs/INDEX.md trước, không bao giờ đọc PDF pitch, kiểm tra decisions.md trước khi hỏi. |
memory MEMORY.md | Claude's cross-session sticky-note indexMục lục ghi chú xuyên phiên của Claude | Also auto-loads. Added one line pointing to the brain, so even a fresh Claude session knows the docs/ exists.Cũng tự nạp. Đã thêm một dòng trỏ tới bộ não, nên cả một phiên Claude mới tinh cũng biết docs/ tồn tại. |
docs/INDEX.md | The map + session ritualBản đồ + quy trình mỗi phiên | 40 lines. A task-to-docs router so a session opens only the 1-2 relevant files instead of everything.40 dòng. Bộ định tuyến từ-công-việc-tới-tài-liệu để một phiên chỉ mở 1-2 file liên quan thay vì mở tất cả. |
docs/decisions.md | The 'already decided' logNhật ký 'đã quyết' | Append-only record of settled calls + genuinely-open questions, so settled things are never re-asked.Bản ghi chỉ-thêm gồm các quyết định đã chốt + các câu hỏi thực sự còn mở, nên việc đã chốt không bị hỏi lại. |
Read it in 30 seconds: the two files that load for free now point to a 40-line index; the index points to focused docs; the expensive PDFs are routed around entirely.
Đọc trong 30 giây: hai file nạp miễn phí giờ trỏ tới một mục lục 40 dòng; mục lục trỏ tới các tài liệu chuyên biệt; các PDF tốn kém bị đi vòng hoàn toàn.
What ran, in orderĐã chạy gì, theo thứ tự
Layered decision cardsCác quyết định theo tầng
Artifact mapBản đồ tệp tạo ra
| PathĐường dẫn | WhatLà gì | Who reads itAi dùng |
|---|---|---|
docs/INDEX.md | Entry point: doc map + 4-step session ritualCửa vào: bản đồ tài liệu + quy trình 4 bước mỗi phiên | Every session reads this firstMỗi phiên đọc cái này đầu tiên |
docs/strategy.md | Thesis, TWV Method, differentiation, business model, pricing, GTMLuận điểm, Phương pháp TWV, khác biệt hóa, mô hình KD, giá, GTM | Positioning / pitching / strategy workViệc định vị / pitch / chiến lược |
docs/pitch.md | Full pitch deck as markdown (replaces the 11.4 MB PDFs)Toàn bộ bộ pitch dạng markdown (thay cho PDF 11.4 MB) | Investor narrative — no PDF parsingCâu chuyện gọi vốn — không cần phân tích PDF |
docs/market.md | Mentor feedback, niche, craft villages, US/EU demand, competitorsPhản hồi cố vấn, ngách, làng nghề, nhu cầu Mỹ/EU, đối thủ | Strategy / niche / competitor questionsCâu hỏi chiến lược / ngách / đối thủ |
docs/product.md | Feature inventory with LIVE / PARTIAL / PENDING statusDanh mục tính năng kèm trạng thái LIVE / MỘT PHẦN / CHỜ | Building or changing a featureXây hoặc sửa một tính năng |
docs/architecture.md | Stack, the Next.js gotcha, routes, Supabase data model, commandsCông nghệ, lưu ý Next.js, route, mô hình dữ liệu Supabase, lệnh | Writing any codeViết bất kỳ dòng code nào |
docs/roadmap.md | Phase status refreshed against the real codeTrạng thái các giai đoạn được cập nhật theo code thật | Deciding what to build nextQuyết định xây gì tiếp theo |
docs/brand.md | Colors, logos, voice, tagline + the color-mismatch warningMàu, logo, giọng điệu, tagline + cảnh báo lệch màu | Design / copy / visual workViệc thiết kế / nội dung / hình ảnh |
docs/decisions.md | Append-only log of settled decisions + open questionsNhật ký chỉ-thêm gồm quyết định đã chốt + câu hỏi còn mở | Checked before asking you anythingKiểm tra trước khi hỏi bạn bất cứ điều gì |
AGENTS.md | Added a pointer block: read docs/INDEX.md first, never read pitch PDFsThêm khối con trỏ: đọc docs/INDEX.md trước, không đọc PDF pitch | All agentic tools, auto-loadedMọi công cụ AI, tự nạp |
.gitignore | Added /plans/ as ignored scratchThêm /plans/ làm bản nháp bị bỏ qua | Keeps git status cleanGiữ git status sạch |
memory/project_vietconnect_brain_in_docs.md | Memory pointer so every Claude session knows the brain existsCon trỏ bộ nhớ để mỗi phiên Claude biết bộ não tồn tại | Auto-loaded via MEMORY.mdTự nạp qua MEMORY.md |
- Decide whether to commit: docs/ + AGENTS.md + .gitignore (suggested message: 'docs: add consolidated knowledge base + session pointers'). Nothing is committed yet.Quyết định có commit không: docs/ + AGENTS.md + .gitignore (gợi ý message: 'docs: add consolidated knowledge base + session pointers'). Chưa commit gì cả.
- Regenerate the pitch PDFs (npm run pitch:pdf) so the downloadable deck matches the live 26-slide version before sharing externally.Tạo lại PDF pitch (npm run pitch:pdf) để bản tải xuống khớp với bộ 26 slide hiện tại trước khi chia sẻ ra ngoài.
- Pick ONE canonical brand palette — there's a 4-way mismatch (brand-twv.json vs coded --vc-* tokens vs roadmap hexes vs raw teal-/red- in ~16 files).Chọn MỘT bảng màu chuẩn — đang lệch 4 nguồn (brand-twv.json vs token --vc-* trong code vs mã hex ở roadmap vs teal-/red- thô trong ~16 file).
- Wire Stripe: checkout/webhook code is complete but pricing CTAs go to /register and price IDs are placeholders → 0 paying customers.Đấu nối Stripe: code checkout/webhook đã xong nhưng nút giá trỏ về /register và price ID còn là giả → 0 khách trả tiền.
- Decide on i18n: next-intl is installed but 0% configured and the EN/VI toggle is fake — build it or remove it.Quyết định i18n: next-intl đã cài nhưng 0% cấu hình và nút EN/VI là giả — làm thật hoặc bỏ đi.
- Choose the niche focus: handicraft/home-goods (most validated) vs food ingredients (bigger TAM) — gated by where TWV's on-ground network is strongest.Chọn ngách trọng tâm: thủ công/đồ gia dụng (được kiểm chứng nhất) vs nguyên liệu thực phẩm (TAM lớn hơn) — phụ thuộc mạng lưới thực địa của TWV mạnh ở đâu.