--- name: product-dossier-builder description: "Phỏng vấn từng sản phẩm/SKU (mỗi lượt một câu) rồi ghi hồ sơ ./san-pham/.md: ngân hàng claim ĐƯỢC NÓI chép nguyên văn từ nguồn (giấy xác nhận nội dung quảng cáo, nhãn/bản công bố, tờ HDSD — thiếu nguồn = [CHƯA CÓ NGUỒN], không dùng), facts theo nhãn (liều, ai KHÔNG nên dùng, tương tác, bảo quản), FAQ; skill nội dung và tư vấn đọc file thay vì hỏi lại. Dùng khi: làm hồ sơ sản phẩm, thêm SKU mới lên kênh, cần bảng claim được nói, giấy xác nhận/nhãn mới về cần cập nhật hồ sơ." license: MIT metadata: author: lammanhhoang version: "1.0.0" --- # Product dossier builder — Hồ sơ sản phẩm theo SKU Phỏng vấn một lần cho MỖI sản phẩm, ghi một file `./san-pham/.md` để `duoc-si-tiktok-content` và `tu-van-reply-drafter` đọc thay vì hỏi lại; `vn-health-compliance-gate` dùng bản chép nguyên văn trong hồ sơ để đối chiếu claim. **Mục lục:** Luật sắt · Khi dùng / KHÔNG dùng · Quy trình 7 bước (B0 Hiện trạng → B1 Định danh → B2 Nguồn → B3 Facts nhãn → B4 Ngân hàng claim → B5 FAQ & bán hàng → B6 Chốt file) · Chế độ cập nhật · Nguyên tắc phỏng vấn · Ai đọc hồ sơ này · Bảng chặn · Bảng ngụy biện · Quy tắc riêng tư · Giới hạn · Files ## Luật sắt > **KHÔNG CLAIM NÀO VÀO BẢNG "ĐƯỢC NÓI" KHI CHƯA CÓ DÒNG NGUỒN NGUYÊN VĂN ĐÃ ĐƯỢC NGƯỜI DÙNG XÁC NHẬN. Thiếu nguồn = `[CHƯA CÓ NGUỒN]` — không dùng cho nội dung, không có "ghi tạm". Skill này CHÉP nguồn, không sáng tác nguồn: không bịa, không "viết lại cho hay", không nâng chữ vượt giấy. Hồ sơ là sổ dữ kiện, KHÔNG phải giấy phép — nội dung viết từ hồ sơ vẫn chạy `vn-health-compliance-gate` đủ 5 bước; quyền duyệt thuộc về gate.** - Skill này KHÔNG chứa và KHÔNG trích điều luật, số nghị định, mức phạt. Mọi câu "có được phép không / vì sao" trả lời bằng pointer về `vn-health-compliance-gate`. - Hồ sơ không lặp lại bảng trạng thái giấy tờ trong `./brand/compliance-profile.md` — chỉ TRỎ về dòng SKU ở đó; registry là nguồn duy nhất của trạng thái. ## Khi dùng / Khi KHÔNG dùng **Dùng khi:** thêm SKU mới lên kênh; "làm hồ sơ sản phẩm"; cần gom bảng claim được-nói cho một sản phẩm; giấy xác nhận / nhãn mới về cần cập nhật; hồ sơ cũ thiếu mục. **KHÔNG dùng khi:** - "Sản phẩm này quảng cáo được không / cần giấy gì?" → `vn-health-compliance-gate`. - Viết kịch bản/caption cho sản phẩm → `duoc-si-tiktok-content` (skill đó tự đọc hồ sơ). - Soạn trả lời khách hỏi về sản phẩm → `tu-van-reply-drafter` (skill đó tự đọc hồ sơ). - Bảng giấy tờ toàn quầy, hồ sơ thương hiệu → `nha-thuoc-brand-foundation`. ## Quy trình 7 bước ``` Yêu cầu → B0 HIỆN TRẠNG (SKU đã có file → Chế độ cập nhật; đọc ./brand/) → B1 ĐỊNH DANH & PHÂN LOẠI (slug, khởi tạo file từ template) → B2 NGUỒN HỒ SƠ (khai mã [N#]/[DS], chép nguyên văn) → B3 FACTS THEO NHÃN (liều, ai KHÔNG dùng, tương tác — từng dòng có nguồn) → B4 NGÂN HÀNG CLAIM (section nguyên tử: ĐANG NHẬP → SẴN SÀNG) → B5 FAQ & GHI CHÚ BÁN HÀNG → B6 CHỐT FILE (cờ, nhật ký, riêng tư, bước tiếp) ``` ### Bước 0 — HIỆN TRẠNG 1. Liệt kê `./san-pham/` — chưa có thư mục → tạo. SKU được nhắc đã có file → chuyển **Chế độ cập nhật**, không phỏng vấn lại từ đầu. 2. Đọc `./brand/voice.md` (xưng hô) và `./brand/compliance-profile.md` (dòng SKU: phân loại, trạng thái, ngày hết hạn). Thiếu compliance-profile → gợi ý MỘT lần chạy `nha-thuoc-brand-foundation`, vẫn làm tiếp, ô pointer ghi `[CHƯA CÓ ./brand/compliance-profile.md — chạy nha-thuoc-brand-foundation để tạo]`. 3. Đọc references/cau-hoi-phong-van.md trước khi đặt câu hỏi đầu tiên. ### Bước 1 — ĐỊNH DANH & PHÂN LOẠI - Thu thập: tên đầy đủ kèm CỤM NHÓM trước tên ("Thực phẩm bảo vệ sức khỏe X" / "Thuốc Y"), tên gọi tắt nội bộ, dạng bào chế, quy cách, thương hiệu/NSX, sản phẩm anh em. - Phân loại: chép theo dòng registry; không có → người dùng khai + ghi `[CHƯA RÕ — gate phân loại khi duyệt]`. - Slug: kebab-case bỏ dấu, prefix nhóm `tpbvsk-` / `otc-` / `tpbs-` / `yhct-` / `duoclieu-` / `mypham-` / `tbyt-` (ví dụ `tpbvsk-simbio-kids-drops`) — xác nhận với người dùng. **Một file = một số công bố/SĐK:** biến thể quy cách cùng công bố → một file nhiều dòng quy cách; khác hàm lượng/công bố → file riêng, cross-link "sản phẩm anh em". Đổi số công bố = SKU mới = file mới (file cũ ghi "ngừng dùng, thay bởi " vào nhật ký). Slug không đổi khi đổi giá/quy cách. - Mục Định danh ghi ĐÚNG chuỗi tên SKU như trong dòng registry để pointer khớp. Khởi tạo file từ assets/ho-so-san-pham-template.md và ghi ngay. ### Bước 2 — NGUỒN HỒ SƠ Đọc references/quy-tac-nguon.md BẮT BUỘC trước khi ghi bất kỳ dòng nguồn nào. - Khai bảng mã nguồn: mỗi tài liệu một mã `[N1]`, `[N2]`… Người dùng gõ / dán / gửi ảnh → chép **nguyên văn từng ký tự**, chỗ mờ ghi `[KHÔNG ĐỌC ĐƯỢC]` và hỏi lại — cấm đoán chữ, cấm điền từ trí nhớ về "sản phẩm tương tự" → đọc lại từng câu cho người dùng xác nhận → mới thành nguồn. - `[DS]` = kiến thức chuyên môn dược do người dùng tự xác nhận — hỏi trước khi gắn; CHỈ dùng cho facts (B3) và FAQ (B5), KHÔNG BAO GIỜ vào bảng ĐƯỢC NÓI. - Nguồn hợp lệ cho bảng ĐƯỢC NÓI theo loại (bảng đầy đủ + nuance: quy-tac-nguon.md): TPBVSK → CHỈ Giấy xác nhận nội dung quảng cáo; TP bổ sung/tự công bố → nhãn + bản tự công bố; thuốc OTC và thuốc cổ truyền có đăng ký lưu hành → tờ HDSD đã phê duyệt. - Số giấy: hỏi có muốn lưu không — từ chối thì ghi `[không lưu theo yêu cầu]` (khuôn CCHN của brand-foundation). "Giấy này có bắt buộc không?" → việc của gate. ### Bước 3 — FACTS THEO NHÃN Điền bảng cố định khớp nhu cầu trả lời khách (T1/T3/T4/T5 của skill tư vấn): liều theo nhãn từng đối tượng, cách dùng, đối tượng dùng, **ai KHÔNG nên dùng**, chữ nhãn về thai kỳ/cho bú NGUYÊN VĂN (mốc xét cờ M1 của skill tư vấn), tương tác/dùng chung phổ biến, bảo quản — mỗi dòng có cột Nguồn. - `[NHÃN KHÔNG GHI]` ≠ `[CHƯA CÓ]`: nhãn thật sự không có thông tin thì ghi vậy, không tra cứu ngoài để điền cho đủ. - Thuốc OTC: thêm chống chỉ định, tác dụng không mong muốn, và dòng cố định về quá liều/tác dụng phụ (delta OTC trong quy-tac-nguon.md). ### Bước 4 — NGÂN HÀNG CLAIM Section NGUYÊN TỬ duy nhất: sinh ra với cờ `Trạng thái claim bank: ĐANG NHẬP`, chỉ lật `SẴN SÀNG` khi người dùng xác nhận nạp xong VÀ mọi row ĐƯỢC NÓI đều có nguồn. Phiên đứt giữa chừng → cờ giữ ĐANG NHẬP → skill nội dung coi như SKU chưa có claim. Ba bảng (quy tắc đầy đủ: quy-tac-nguon.md): 1. **ĐƯỢC NÓI** — câu nguyên văn + nguồn `[N#]` đúng loại + ghi chú dùng. Nguồn DUY NHẤT mà lane B của skill nội dung được rút. 2. **[CHƯA CÓ NGUỒN] — CHỜ NGUỒN** — ý muốn nói + thiếu gì. Khu cách ly: KHÔNG DÙNG CHO NỘI DUNG cho đến khi có nguồn; giấy về thì thăng hạng trong 10 giây. 3. **CẤM NÓI riêng SKU này** — ý cấm + vì sao (chỉ mức hồ sơ: "không có trong [N1]" / "vượt mức chữ của [N1]" / "ngoài vùng nhãn" / "gate chặn") + nói thay. KHÔNG chép danh sách từ cấm chung của gate vào đây. **Mềm-hóa-XUỐNG:** biến thể chỉ hợp lệ khi nói ít hơn hoặc bằng row cha trên mọi trục (hẹp hơn, yếu hơn, thêm điều kiện); cấm mọi chiều lên (thêm bệnh, thêm số, thêm mốc thời gian, "hỗ trợ giảm" → "giảm", gộp hai row). Chỉ áp dụng cho claim ĐÃ có nguồn. Mềm hóa không phải bùa — "hỗ trợ" đặt cạnh bệnh không có trong nguồn vẫn là claim mới, và mọi biến thể vẫn qua gate như thường. **Claim người dùng đẩy vào ("đối thủ nói vậy mà") — 3 nhánh đúng thứ tự:** (1) soi nguồn đã nạp — có → chép nguyên văn vào ĐƯỢC NÓI; (2) không có nhưng có row cha yếu hơn → đề nghị biến thể mềm-hóa-xuống; (3) không có gì → CHỜ NGUỒN hoặc CẤM NÓI, kèm: *nội dung của đối thủ không phải nguồn — không biết họ có giấy không, và giấy của họ cũng không phải giấy của mình; tin claim đúng thì đường hợp lệ là bổ sung công bố/xác nhận nội dung — cần giấy gì hỏi `vn-health-compliance-gate`, việc xin giấy ngoài phạm vi skill này.* ### Bước 5 — FAQ & GHI CHÚ BÁN HÀNG - 3–7 FAQ khách hỏi thật (mỏ tốt: nhật ký câu hỏi của skill tư vấn nếu có) — ghi GÓC trả lời + facts liên quan, không viết văn mẫu; skill tư vấn vẫn soạn theo voice.md. - Góc content: điểm khác biệt hợp lệ (mỗi dòng có nguồn) + đề tài lane A liên quan (giáo dục thuần, không gắn tên sản phẩm). - Bảng giá/kênh đang bán. Quy tắc cứng: câu sức khỏe hoặc nằm ở mục Facts/Claim kèm nguồn, hoặc không tồn tại trong hồ sơ. Combo: mỗi sản phẩm nói theo bank của CHÍNH nó, không tạo claim ghép. ### Bước 6 — CHỐT FILE 1. Lật cờ SẴN SÀNG nếu đủ điều kiện; in cây `./san-pham/` + đếm placeholder (`[CHƯA CÓ]`, `[CHƯA CÓ NGUỒN]`, `[KHÔNG ĐỌC ĐƯỢC]`) còn lại, hẹn bổ sung. 2. Ghi Nhật ký cập nhật; tính `Hạn rà soát` = min(ngày hết hạn gần nhất từ registry, cập-nhật-cuối + 6 tháng). 3. Nhắc khối Quy tắc riêng tư (2 dòng). 4. Giấy mới làm đổi trạng thái đăng ký → nhắc cập nhật dòng registry trong `./brand/compliance-profile.md` (việc của `nha-thuoc-brand-foundation`). 5. Gợi ý bước tiếp: viết nội dung cho SKU bằng `duoc-si-tiktok-content` (skill đó tự chạy gate). ## Chế độ cập nhật Trigger (in ở cuối template): giấy hết hạn / gia hạn / thu hồi · giấy xác nhận cấp mới (mở khóa khu CHỜ NGUỒN) · nhãn/công thức/quy cách/giá đổi · SKU ngừng bán · **gate bác một claim lấy từ bank** (gate thắng hồ sơ — row bị bác chuyển CẤM NÓI hoặc sửa, ghi nhật ký) · registry đổi trạng thái dòng SKU · đổi phân loại · 6 tháng không đụng file. Gặp trigger → cập nhật hồ sơ TRƯỚC khi viết nội dung mới cho SKU. Flow: đọc file → tóm tắt từng mục 1 dòng → hỏi MỘT câu "đổi gì" → chỉ chạy lại section liên quan → ghi Nhật ký → tính lại Hạn rà soát → lật cờ nếu cần: giấy nguồn hết hạn → `Trạng thái claim bank: KHÓA` (đóng băng cả bảng ĐƯỢC NÓI); ngừng bán → `Trạng thái bán: NGỪNG BÁN` (không nhắc bán nữa, facts kiến thức vẫn dùng được). Giấy mới về: chỉ chuyển CHỜ NGUỒN → ĐƯỢC NÓI những câu KHỚP đúng nội dung giấy — không khớp thì nằm nguyên. ## Nguyên tắc phỏng vấn - MỘT câu hỏi mỗi lượt, kèm 1–2 ví dụ trả lời. Bỏ qua → `[CHƯA CÓ]` / `[CHƯA CÓ NGUỒN]`, không truy hỏi. - Ngữ cảnh hội thoại đã có đáp án → xác nhận lại thay vì hỏi mới. Tổng ~12–15 câu/SKU. - Ghi file ngay sau MỖI bước + tóm tắt 3–5 dòng chờ người dùng xác nhận; sửa xong mới sang bước kế. - Xưng hô khi phỏng vấn: "bạn/mình", thân thiện. ## Ai đọc hồ sơ này | Consumer | Đọc gì | Quy tắc | |---|---|---| | `duoc-si-tiktok-content` | Tên đầy đủ (mục 1), bảng ĐƯỢC NÓI (mục 4), Góc content (mục 6), giá (mục 7) | Lane B chỉ rút bảng ĐƯỢC NÓI khi cờ SẴN SÀNG và chưa quá Hạn rà soát | | `tu-van-reply-drafter` | Facts nhãn (mục 3), FAQ (mục 5), giá/kênh (mục 7) | Trần claim mọi nháp có sản phẩm = bảng ĐƯỢC NÓI; điều kiện nhắc bán vẫn tra registry | | `vn-health-compliance-gate` | Bản chép nguyên văn nguồn (mục 2, 4) để đối chiếu claim; pointer registry | Trạng thái giấy tờ vẫn đọc từ compliance-profile.md | Quy tắc chung: quá `Hạn rà soát` → coi claim bank như ĐANG NHẬP; `NGỪNG BÁN` → cấm nhắc bán; không "mượn tạm" khu [CHƯA CÓ NGUỒN] dưới mọi lý do. ## Bảng chặn | Yêu cầu | Vì sao không làm | Lối ra | |---|---|---| | Hồ sơ cho **thuốc kê đơn** để làm nội dung bán/quảng cáo | Gate chặn quảng cáo thuốc kê đơn ngay từ phân loại | Không lập hồ sơ content; nhu cầu tra cứu chuyên môn nội bộ tại quầy nằm ngoài skill này | | Hồ sơ cho **bài thuốc gia truyền chưa đăng ký lưu hành** | Gate chặn ở tầng loại — không có nguồn hợp lệ nào để lập bank | Dừng; muốn bán hợp lệ thì hỏi gate cần giấy gì | | Nạp claim kiểu **"nghiên cứu Mỹ chứng minh…"** không kèm tài liệu của CHÍNH sản phẩm | Không phải nguồn của SKU này | CHỜ NGUỒN hoặc CẤM NÓI; đề tài khoa học chung → Góc content lane A, không gắn sản phẩm | | Dùng **giấy của sản phẩm khác "cùng loại"** làm nguồn | Giấy cấp cho từng sản phẩm, không mượn được | Chỉ nhận giấy đúng tên/số công bố của SKU đang lập | ## Bảng ngụy biện | Ngụy biện | Phản bác | |---|---| | "Giấy ghi khô quá, viết lại cho kêu" | Chỉ được diễn đạt XUỐNG — nhẹ hơn, hẹp hơn giấy. Chữ vượt giấy là claim không nguồn: gate sẽ chặn, và người chịu trách nhiệm là người đứng tên kênh, không phải người viết giùm. | | "Đối thủ nói X đầy ra / ai cũng nói vậy" | Nội dung đối thủ không phải nguồn — không ai biết họ có giấy không, chưa bị phạt ≠ hợp pháp, và kể cả có giấy thì giấy của họ không cấp quyền cho SKU của mình. Án lệ nằm ở gate, không kể lại ở đây. Nguồn duy nhất là giấy của CHÍNH sản phẩm này. | | "Chắc chắn có giấy, ghi tạm vào ĐƯỢC NÓI, mai bổ sung nguồn sau" | Hồ sơ ghi thứ cầm được trong tay; "chắc là có" = `[CHƯA CÓ NGUỒN]`. File này được hai skill khác đọc máy móc — không ai nhớ chữ "tạm". Chiều `[CHƯA CÓ NGUỒN]` → ĐƯỢC NÓI mất 10 giây khi giấy về; chiều gỡ một claim đã lên video đã đăng thì không có nút hoàn tác. | | "Có hồ sơ rồi thì đăng thẳng, khỏi chạy gate" | Hồ sơ là dữ kiện tĩnh: không biết kênh đích, không quét từ cấm của bản nháp cụ thể, không thấy luật đổi sau ngày cập nhật. Hồ sơ tốt làm gate chạy NHANH hơn, không thay gate. | | "Nhãn ghi vậy thôi chứ mình là dược sĩ, mình biết nó còn tác dụng X" | Chuyên môn để tư vấn tại quầy và làm nội dung giáo dục không gắn sản phẩm — không phải để nới claim quảng cáo vượt nguồn. Kiến thức ngoài nhãn mang mã `[DS]`: chỉ dùng khi trả lời khách, không bao giờ vào bảng ĐƯỢC NÓI. | ## Quy tắc riêng tư - `./san-pham/` chứa dữ liệu kinh doanh (SKU chủ lực, giá, nguồn giấy) — nhắc người dùng KHÔNG commit lên repo public; đề nghị thêm `san-pham/` vào `.gitignore` cùng dòng với `brand/` — hỏi trước, đồng ý mới thêm. - Ảnh giấy tờ không lưu vào repo — chỉ lưu bản chép chữ; bản chụp gốc người dùng tự giữ. Số giấy chỉ nằm trong file khi người dùng đồng ý ở Bước 2. ## Giới hạn - Skill là sổ ghi chép có kỷ luật — không thay tư vấn pháp lý, không tư vấn thủ tục đăng ký/xin giấy. - KHÔNG thẩm định giấy thật/giả hay còn hiệu lực — việc của Bước 5 gate + người dùng; header hồ sơ luôn ghi "nguồn do người dùng cung cấp, chưa kiểm chứng pháp lý". - Chép từ ảnh có thể sai — người dùng soát bản chép trước khi chốt; chỗ mờ là `[KHÔNG ĐỌC ĐƯỢC]`, không đoán. - Ngày hiệu lực rule pack pháp lý nằm ở gate — gate đổi thì tiêu chí nguồn có thể đổi, hồ sơ cũ cần rà lại. ## Files - references/cau-hoi-phong-van.md — bộ câu hỏi đầy đủ theo bước, kèm vì-sao-hỏi + ví dụ trả lời tốt. Đọc ở Bước 0, trước câu hỏi đầu tiên. - references/quy-tac-nguon.md — taxonomy nguồn theo loại + giao thức chép nguyên văn + quy tắc mềm-hóa-xuống với ví dụ đạt/phạm + xử lý không-nguồn/nguồn-hết-hạn + delta thuốc OTC. Đọc BẮT BUỘC ở Bước 2–4, trước khi ghi bất kỳ dòng nguồn/claim nào. - references/vi-du-ho-so.md — một hồ sơ TPBVSK hư cấu điền đầy đủ (đủ 3 bảng claim, 3 trạng thái) + chú thích tại-sao-từng-ô. Đọc khi người dùng muốn xem mẫu hoặc phân vân mức chi tiết. - assets/ho-so-san-pham-template.md — template hồ sơ; khởi tạo file mới từ đây ở Bước 1.