PRD — tila-site (trang giới thiệu TiLA Studio)¶
Phiên bản 0.2 · 2026-11-13 · Tác giả:
ai-po· Trạng thái: sửa theo thẩm định Gate 1 vòng 1 (gate1_review.md), chờ vòng 2. Thay đổi so với 0.1: sửa C-01, P-02, P-04, P-10, P-11, P-12, P-15 (và thêm một ca cho P-03); thêm ràng buộc Cloudflare (mục 7); cập nhật dữ kiện CEO (ceo-inputs.md: đã có email liên hệ, logo phương án A theo QĐ-020). Nguồn:CLAUDE.md§2, §4, §6 ·company/01-ho-so-cong-ty.md·company/04-thuong-hieu-linh-vat.md·ops/roadmap-2026-q4.md·ops/decisions.md(QĐ-011, QĐ-013, QĐ-017, QĐ-020) ·ops/infrastructure.md·ops/portfolio.md·products/tila-site/ceo-inputs.md. Câu chữ chi tiết:ai-copywriter. Giao diện:ai-designer. PRD này chỉ nói trang phải làm gì và đo đạt ở đâu.
1. Tóm tắt¶
- Là gì: một trang dài duy nhất tại
https://tila.rittruyen.com, song ngữ Việt/Anh, công khai (QĐ-013, QĐ-017). Nói TiLA Studio là ai, làm gì, liên hệ thế nào, và là nơi đầu tiên heo Pigxel xuất hiện công khai. - Vì sao: công ty chưa có mặt nào để người ngoài kiểm chứng sự tồn tại và hướng đi của mình. Khách, đối tác, người dùng store hiện không có chỗ nào để biết TiLA Studio là ai.
- Mô hình thu tiền: trang không thu tiền trực tiếp. Giá trị là uy tín và đầu mối liên hệ cho trụ cột 1 (SaaS & back-office) và trụ cột 2 (game & app). Chi phí tăng thêm bằng 0: dùng máy chủ và tên miền đã cấp (QĐ-011).
ai-finopsxác nhận khi thẩm định. - Về nội bộ: đây không phải phần mềm back-office, nên không có mục "doanh nghiệp của CEO dùng thế nào".
- Mốc: sẵn sàng phát hành trong tuần 30/11–6/12/2026 (sprint S3). Phát hành thật chỉ khi CEO ra lệnh.
- Đã có: một email liên hệ chung và logo phương án A (CEO,
ceo-inputs.md). Còn thiếu, không được bịa: sản phẩm để giới thiệu, thông tin pháp nhân/địa chỉ/điện thoại. Cách trang xử lý khi thiếu: mục 6.9. Việc chờ CEO: mục 9.
2. Bài toán và người xem mục tiêu¶
Bài toán: một người lạ vào địa chỉ này phải trong vài giây hiểu được "đây là ai, làm gì, có đáng để liên hệ không", và nếu có thì liên hệ được ngay. Hiện chưa có trang nào trả lời câu đó.
Persona rút từ kế hoạch công ty, CHƯA KIỂM CHỨNG bằng phỏng vấn (chưa có khách thật).
| Persona | Muốn gì | Trang phải cho họ |
|---|---|---|
| P-A. Chủ doanh nghiệp / người phụ trách vận hành, tìm phần mềm quản trị hoặc đơn vị làm phần mềm | Biết TiLA Studio có làm đúng việc mình cần không, và có đáng tin không | Hai lĩnh vực nói rõ; cách làm việc minh bạch; kênh liên hệ |
| P-B. Đối tác / nhà tích hợp / nhà cung cấp | Xác nhận đây là đơn vị có thật, ai đứng sau, gửi thư cho ai | Mục "công ty là ai" thẳng thắn; kênh liên hệ; thông tin pháp nhân khi có |
| P-C. Người dùng store (tương lai, khi có app) | Biết ai làm ra app, xin hỗ trợ ở đâu | Tên công ty, kênh liên hệ; chưa có app thì không giả vờ có |
Người xem phụ: người tò mò về mô hình "công ty một người + nhân sự AI". Họ không được ưu tiên hơn ba persona trên.
3. PR-FAQ ngắn¶
Thông cáo (nội bộ, không phải câu chữ để đăng):
TiLA Studio mở trang giới thiệu công ty tại tila.rittruyen.com. Một trang, hai ngôn ngữ, mở nhanh trên điện thoại. Trang nói thẳng: công ty công nghệ một người, CEO là con người duy nhất, mọi nhân sự còn lại là AI; TiLA là Trí · Loan · Ân. Công ty làm hai việc: phần mềm SaaS và back-office, game và ứng dụng trên store. Heo Pigxel, heo đất công nghệ, là linh vật. Muốn trao đổi, khách liên hệ qua kênh ghi ở cuối trang.
FAQ khách 1. TiLA Studio có sản phẩm nào chưa? Trang chỉ nêu những gì có thật. Sản phẩm chưa phát hành không được nêu tên, không có ảnh chụp, không có hứa hẹn ngày giờ. 2. Liên hệ bằng cách nào? Bằng kênh CEO cung cấp, hiển thị ở mục Liên hệ (mục 6.6). 3. Ai đứng sau công ty? Mục "công ty là ai" trả lời bằng sự thật trong hồ sơ công ty; thông tin pháp nhân chỉ hiện khi CEO cung cấp. 4. Trang có theo dõi tôi không? Không cookie, không script bên thứ ba (FR-P0-09).
FAQ nội bộ 1. Sao không có form liên hệ? Form cần backend, chống spam, lưu trữ dữ liệu cá nhân; bản đầu không có backend và không database. Dùng kênh trực tiếp. 2. Sao không gắn analytics? Chưa có nhu cầu đủ lớn để đổi lấy cookie, banner đồng ý và chậm trang. Đo bằng log của reverse proxy (FR-P0-10). 3. Đầu tư bao nhiêu? Không tốn thêm tiền cloud; công sức AI trong S1–S3. 4. Nếu email liên hệ không dùng được nữa? Trang chuyển sang chế độ thông tin (mục 6.9) nhưng khuyến nghị không phát hành, vì mục đích thứ ba (liên hệ) chưa đạt. Email công khai sẽ bị máy quét thu thập để gửi thư rác: rủi ro đã nêu cho CEO, CEO đã chốt dùng.
4. Phạm vi MoSCoW¶
| Mã | Ưu tiên | Hạng mục | Gắn với |
|---|---|---|---|
| FR-P0-01 | P0 | Trang đơn, sáu mục đúng thứ tự: hero · công ty là ai · hai lĩnh vực · Pigxel · cách làm việc · liên hệ; điều hướng neo tới từng mục | Mục đích trang |
| FR-P0-02 | P0 | Nội dung từng mục đạt yêu cầu ở mục 6 | P-A, P-B |
| FR-P0-03 | P0 | Song ngữ: Việt tại /, Anh tại /en/, nút chuyển ngôn ngữ trên mọi vị trí cuộn |
Chỉ đạo CEO |
| FR-P0-04 | P0 | Hiển thị tốt trên điện thoại từ 320 px | Phần lớn người xem dùng điện thoại (CHƯA KIỂM CHỨNG, sẽ đo bằng log) |
| FR-P0-05 | P0 | Tốc độ tải đạt ngưỡng mục 7 | Người xem rời đi nếu chậm; máy chủ chỉ 1 CPU |
| FR-P0-06 | P0 | SEO cơ bản: tiêu đề, mô tả, canonical, hreflang, sitemap, robots, HTML có đủ nội dung không cần JS | Có người tìm thấy trang |
| FR-P0-07 | P0 | Khả năng tiếp cận chuẩn WCAG 2.2 mức AA | Chuẩn chung, người dùng khuyết tật |
| FR-P0-08 | P0 | HTTPS hợp lệ, HTTP chuyển về HTTPS | Đối tác kiểm tra độ tin cậy |
| FR-P0-09 | P0 | Không cookie, không script/font/ảnh từ bên thứ ba | Nhẹ, riêng tư, khỏi banner |
| FR-P0-10 | P0 | Access log của reverse proxy bật để đếm lượt xem (không cookie); môi trường stg bị chặn index, pro được index |
Đo chỉ số mục 8 |
| FR-P0-11 | P0 | Dữ kiện liên hệ/pháp lý ở một nơi duy nhất, trường trống thì không hiển thị | Không bịa dữ kiện |
| FR-P1-01 | P1 | Trang 404 đúng thương hiệu, có đường về trang chủ, đủ 2 ngôn ngữ | Hoàn thiện |
| FR-P1-02 | P1 | Ảnh chia sẻ (Open Graph) có Pigxel | Chia sẻ link |
| FR-P1-03 | P1 | Dữ liệu cấu trúc JSON-LD Organization chỉ với trường có thật (tên, địa chỉ web, logo) |
SEO |
| FR-P1-04 | P1 | Trang pháp lý ngắn (quyền riêng tư/điều khoản) theo tư vấn của ai-legal |
Roadmap S3 |
| FR-P1-05 | P1 | Header bảo mật theo ai-security |
An ninh |
| FR-P1-06 | P1 | Liên kết sang docs.rittruyen.com ở mục cách làm việc, nếu CEO đồng ý |
Minh bạch |
| FR-P1-07 | P1 | Gắn nhãn nội dung do AI tạo theo kết luận của ai-legal; đóng cùng việc kiểm giấy phép phông (mục 9) trước Giai đoạn 5 |
Tuân thủ, brand/README.md |
| FR-P2-01 | P2 | Nhớ lựa chọn ngôn ngữ của người xem | Tiện |
| FR-P2-02 | P2 | Giao diện sáng/tối theo hệ thống, nếu thiết kế hỗ trợ | Tiện |
| FR-P2-03 | P2 | Thẻ sản phẩm, dùng khi có sản phẩm đầu tiên phát hành | Mục 6.3 |
| FR-P2-04 | P2 | Đăng ký Search Console kiểm tra index | Đo SEO |
| FR-P3-01 | P3 | Form liên hệ · blog/tin tức · CMS · đăng nhập · chat · analytics bên thứ ba · ngôn ngữ thứ ba · bảng giá · trang riêng từng sản phẩm · tự chuyển ngôn ngữ theo trình duyệt (hại cho SEO và người xem cố ý đổi) | Không thuộc bản đầu |
5. Quy tắc chung cho nội dung¶
- Chỉ nêu dữ kiện có trong hồ sơ công ty hoặc CEO cung cấp. Cấm: số khách hàng, doanh thu, logo khách, lời chứng thực, giải thưởng, ngày ra mắt sản phẩm, cam kết giá.
- Không công bố hạ tầng (địa chỉ IP máy chủ, cấu hình), danh sách quy tắc bảo mật nội bộ (QĐ-018). Không nhắc tên công ty hay thương hiệu nào khác ngoài TiLA Studio. Ngoại lệ duy nhất trên trang: tên kênh phân phối App Store, Google Play ở mục 6.3, dùng như danh từ chỉ nơi phát hành, không logo, không hàm ý hợp tác. Tên công cụ hạ tầng (mục 7) chỉ ở tài liệu kỹ thuật, không lên trang.
- Hai bản ngôn ngữ nói cùng sự thật, cùng mục, cùng thứ tự. Giọng theo
company/04§5: ngắn, cụ thể, tử tế, không khoa trương. - Màu, chữ, linh vật theo
company/04(navy_canvas,tila_mint,Be Vietnam Pro…). Pigxel dùng đúng quy tắc §2 tài liệu đó; logo là phương án A (QĐ-020), Pigxel dùng bản chốt ở Gate 1.
6. Yêu cầu từng mục của trang¶
Mỗi mục có id neo (#home, #about, #what-we-do, #pigxel, #how-we-work, #contact).
| # | Mục | Vai trò | Bắt buộc có | Không được |
|---|---|---|---|---|
| 6.1 | Hero | Trong màn hình đầu, nói TiLA Studio là gì | Tên "TiLA Studio"; một câu giá trị (≤ 1 câu); Pigxel; hai hành động: xem tiếp và liên hệ; nút ngôn ngữ ở thanh đầu | Khẩu hiệu không kiểm chứng được |
| 6.2 | Công ty là ai | Trả lời P-B | Công ty công nghệ một người; CEO là con người duy nhất, nhân sự còn lại là AI; TiLA = Trí · Loan · Ân, tên ba thành viên gia đình; tên và vai trò CEO nếu CEO đồng ý (mục 9) | Số năm kinh nghiệm, quy mô nhân sự không có nguồn |
| 6.3 | Hai lĩnh vực | Trả lời P-A, P-C | (1) SaaS và phần mềm back-office, tự dùng trước rồi đóng gói cho doanh nghiệp khác; (2) game và app trên App Store, Google Play. Thứ tự này. Mỗi lĩnh vực: cho ai, giải quyết gì | Tên/ảnh sản phẩm chưa phát hành; bảng giá; "sắp ra mắt" kèm ngày |
| 6.4 | Pigxel | Thể hiện nhận diện | Pigxel; ý nghĩa tên (heo đất công nghệ, pig + pixel) trong 1–2 câu; dùng tài sản vector chính thức | Dùng tài sản của nhãn khác; Pigxel đứng tách rời vô cảnh (quy tắc company/04 §2) |
| 6.5 | Cách làm việc | Xây niềm tin | Con người quyết, AI làm: CEO đặt hướng, gặp khách, ký, bấm phát hành; AI nghiên cứu, thiết kế, viết code, kiểm thử; sản phẩm chỉ ra mắt sau khi con người duyệt | Nêu tên mô hình/nhà cung cấp AI, chi tiết hạ tầng |
| 6.6 | Liên hệ | Chốt hành động | Mọi kênh có giá trị trong cấu hình (mục 6.9), mỗi kênh một liên kết bấm được | Hiển thị kênh không có thật; form |
| 6.7 | Thanh đầu | Điều hướng | Liên kết neo tới các mục; nút ngôn ngữ; liên hệ thấy ngay trên điện thoại, không phải cuộn | Menu chỉ mở được bằng chuột |
| 6.8 | Chân trang | Định danh | "TiLA Studio" và năm; liên kết trang pháp lý (khi có FR-P1-04) | "Công ty TNHH…", địa chỉ, điện thoại khi chưa có |
| 6.9 | Cấu hình dữ kiện | Một nơi duy nhất cho email, điện thoại, địa chỉ, pháp nhân, tên CEO, liên kết Docs | Trường trống: phần tử tương ứng không hiển thị, không chữ "đang cập nhật" | Rải dữ kiện trong mã |
Cách trang vẫn dùng được khi thiếu dữ kiện (chế độ thông tin):
- Thiếu email: mục Liên hệ hiện một đoạn nói thẳng kênh liên hệ chưa mở, không có liên kết gãy. Nút "Liên hệ" ở hero chuyển thành "Tìm hiểu thêm". Bản build ghi cảnh báo "chưa có kênh liên hệ" để ai-devops và CEO thấy trước khi phát hành.
- Thiếu sản phẩm: mục 6.3 chỉ mô tả hai lĩnh vực và có thể nói chưa có sản phẩm phát hành. Không có thẻ sản phẩm.
- Thiếu pháp nhân, địa chỉ, điện thoại: chân trang chỉ "TiLA Studio". Không dòng nào thay thế.
7. Tiêu chí nghiệm thu (P0)¶
Ràng buộc hạ tầng: Cloudflare (P-02). Tên miền rittruyen.com là zone dùng chung và đang bật proxy Cloudflare (ops/infrastructure.md dòng 71), nên trang đến người xem qua Cloudflare rồi mới tới Caddy trên máy chủ.
- Bằng chứng: curl tới docs.rittruyen.com ngày 2026-11-13 cho thấy Rocket Loader chèn /cdn-cgi/scripts/…/rocket-loader.min.js và đổi type của các thẻ script (gate1_review.md). Với tila.rittruyen.com CHƯA KIỂM CHỨNG (chưa triển khai, trả 525). Email Obfuscation (viết lại mailto:): CHƯA KIỂM CHỨNG.
- Rủi ro nếu để nguyên: script của bên thứ ba bị chèn (trái FR-P0-09); thứ tự chạy JS đổi, ảnh hưởng LCP/TBT (AC-04); mailto: có thể bị viết lại, hỏng khi không JS và AC-08. Cache edge có thể làm KR5 đếm thiếu lượt xem; Caddy sẽ thấy IP của Cloudflare chứ không phải của người xem.
- Quyết định: tắt hay giữ các tính năng này là việc của CEO (cổng §4.5, §4.6, vì zone dùng chung), xem mục 9, việc 5. PRD không giả định kết quả: AC bên dưới giữ nguyên; nếu CEO giữ nguyên Cloudflare, AC-07 sẽ trượt và ai-po phải trình lại FR-P0-09 và AC-04.
- Nơi đo: AC-04, 05, 07, 08 đo qua Cloudflare từ bên ngoài (đúng thứ người xem nhận). Phép thử tải 20 yêu cầu/giây của AC-04 đo trực tiếp tại origin để khỏi bị chặn như bot. ai-devops kiểm cấu hình zone (chỉ đọc) và nối trusted_proxies / CF-Connecting-IP cho access log (AC-09).
Môi trường kiểm: bản stg qua đúng đường phân phối nêu trên (không đo trên máy dev). Người kiểm: ai-qc (tự động), ai-qa (máy thật).
AC-01 · Cấu trúc trang (FR-P0-01, 02)
- GIVEN trang mở ở / WHEN đọc cây tiêu đề THEN có đúng một h1 và sáu mục #home #about #what-we-do #pigxel #how-we-work #contact theo đúng thứ tự.
- GIVEN thanh đầu WHEN bấm từng liên kết THEN trang cuộn tới đúng mục và mục không bị thanh đầu che mất tiêu đề.
- GIVEN mỗi mục ở mục 6 WHEN rà "Bắt buộc có" và "Không được" THEN đạt hết; ai-copywriter ký xác nhận nội dung, ai-po ký xác nhận không có dữ kiện ngoài nguồn.
AC-02 · Chuyển ngôn ngữ (FR-P0-03)
- GIVEN người xem ở /#about WHEN bấm "EN" THEN tới /en/#about, <html lang="en">, toàn bộ chữ hiển thị là tiếng Anh (trừ tên riêng TiLA Studio, Pigxel, Trí, Loan, Ân, Trí H. Nguyễn) và vẫn đang ở mục About.
- Mục "đang xem" khi bấm nút ngôn ngữ chỉ có một nguồn: mục đang mang aria-current (cập nhật theo cuộn), không phải hash cũ trong URL hay mục bấm gần nhất (P-04).
- GIVEN người xem cuộn tay tới #pigxel (không bấm neo) WHEN bấm "EN" THEN tới /en/#pigxel. GIVEN đã bấm neo #about rồi cuộn tay tới #contact WHEN bấm "EN" THEN tới /en/#contact, không về #about. Cả hai ca cũng đạt chiều EN sang VI, ở 360 px và 1440 px.
- GIVEN người xem ở /en/ WHEN bấm "VI" THEN tới / với lang="vi"; thao tác lặp lại được vô hạn mà không lỗi.
- GIVEN mở thẳng /en/#contact WHEN tải xong THEN hiện đúng bản Anh tại mục Liên hệ.
- GIVEN build WHEN một khóa nội dung có ở ngôn ngữ này nhưng thiếu ở ngôn ngữ kia THEN build thất bại.
- GIVEN nút chuyển ngôn ngữ WHEN dùng trình đọc màn hình THEN có tên truy cập được và thuộc tính lang đúng ngôn ngữ đích.
AC-03 · Điện thoại (FR-P0-04)
- GIVEN khung nhìn 320×568, 360×640, 390×844, 768×1024 WHEN tải và cuộn hết trang ở cả hai ngôn ngữ THEN document.documentElement.scrollWidth ≤ window.innerWidth (không cuộn ngang), không chữ hay ảnh bị cắt.
- GIVEN màn hình đầu ở 360×640 WHEN không cuộn THEN thấy tên "TiLA Studio", nút ngôn ngữ và liên kết tới Liên hệ.
- GIVEN mọi phần tử bấm được (liên kết, nút) WHEN đo THEN vùng bấm ≥ 44×44 CSS px; chữ nội dung ≥ 16 px.
- GIVEN một iPhone và một điện thoại Android thật WHEN ai-qa mở bản stg THEN AC-01, AC-02 đạt tay trên cả hai (cổng giai đoạn 4).
AC-04 · Tốc độ tải (FR-P0-05)
- GIVEN URL stg (qua Cloudflare) WHEN chạy Lighthouse CLI hồ sơ di động mặc định (băng thông giả lập 4G chậm, CPU làm chậm) 5 lần, lấy trung vị, cho cả / và /en/ THEN Performance ≥ 90; LCP ≤ 2,5 s; CLS ≤ 0,1; TBT ≤ 200 ms.
- GIVEN tải lần đầu, bộ nhớ đệm trống WHEN đo tổng dung lượng truyền THEN ≤ 1 MB, trong đó JavaScript ≤ 120 KB sau nén gzip.
- GIVEN phản hồi của tài nguyên tĩnh có hash trong tên WHEN kiểm header THEN có Cache-Control dài hạn và immutable; HTML cache ngắn.
- GIVEN 20 yêu cầu/giây trong 60 giây vào origin của stg WHEN đo mức dùng RAM của tiến trình phục vụ trang (docker stats nếu chạy container; nếu Caddy phục vụ tĩnh thì đo phần tăng thêm của Caddy) THEN ≤ 256 MB và không lỗi 5xx (máy chủ chung 1 CPU với dịch vụ khác). ai-architect chọn cách chạy rồi chốt lại câu này.
- Ngưỡng 90/1 MB/120 KB/256 MB là đề xuất của PO, CHƯA KIỂM CHỨNG trên máy chủ thật. Nếu ai-architect chứng minh bằng số đo là không đạt được hợp lý, đề xuất lại bằng văn bản; không tự hạ.
AC-05 · SEO cơ bản (FR-P0-06, FR-P0-10)
- GIVEN curl -s tới / và /en/ (không chạy JS) WHEN đọc HTML THEN có đủ chữ của sáu mục, một h1, <title> 30–60 ký tự, <meta name="description"> 70–160 ký tự, khác nhau giữa hai ngôn ngữ.
- GIVEN hai trang WHEN kiểm <head> THEN có link rel="canonical" tuyệt đối trỏ chính nó; hreflang vi, en, x-default (→ /) hai chiều; thẻ Open Graph og:title/description/url/type/locale.
- GIVEN /sitemap.xml và /robots.txt WHEN tải THEN sitemap liệt kê cả hai URL, robots cho phép thu thập và trỏ tới sitemap; trả 200.
- GIVEN môi trường stg WHEN kiểm header/meta THEN có noindex; GIVEN môi trường pro THEN không có noindex. ai-devops xác nhận khi chuẩn bị Giai đoạn 5.
- GIVEN báo cáo Lighthouse JSON (cấu hình AC-04) của stg WHEN đọc nhóm SEO THEN mọi bài kiểm có score = 1 trừ đúng một bài is-crawlable, bài này bắt buộc trượt vì stg có noindex (C-01). Điểm tổng SEO của stg không dùng làm ngưỡng.
- GIVEN bản pro sau khi CEO ra lệnh phát hành WHEN ai-qc chạy lại Lighthouse trong 1 ngày đầu THEN SEO ≥ 95, is-crawlable đạt. Kết quả này không chặn phát hành, nhưng nếu trượt thì tạo lỗi sửa ngay.
AC-06 · Khả năng tiếp cận (FR-P0-07)
- GIVEN Lighthouse WHEN chạy cả hai ngôn ngữ THEN Accessibility ≥ 95; axe-core không có vi phạm mức serious/critical ở mọi khung nhìn của AC-03.
- GIVEN chỉ dùng bàn phím WHEN nhấn Tab từ đầu trang THEN liên kết "bỏ qua tới nội dung" xuất hiện đầu tiên; mọi điều khiển được focus theo thứ tự hợp lý, có viền focus nhìn rõ; không bị kẹt; Enter kích hoạt được.
- GIVEN mọi chữ và biểu tượng chức năng WHEN đo tương phản THEN ≥ 4,5:1 (chữ thường), ≥ 3:1 (chữ lớn và thành phần giao diện).
- GIVEN mọi ảnh WHEN rà THEN ảnh có nghĩa có alt đúng ngôn ngữ trang, ảnh trang trí có alt="".
- GIVEN hệ điều hành bật "giảm chuyển động" WHEN tải trang THEN không có hiệu ứng chuyển động chạy tự động.
- GIVEN hệ điều hành không bật "giảm chuyển động" WHEN theo dõi 30 giây THEN không hiệu ứng nào tự chạy quá 5 giây hoặc lặp vô hạn (WCAG 2.2.2, P-03).
- GIVEN phóng 200% và đặt giãn chữ theo WCAG 1.4.12 WHEN xem THEN không mất nội dung, không cuộn hai chiều.
- GIVEN VoiceOver WHEN ai-qa đọc một lượt THEN thứ tự đọc khớp thứ tự hiển thị, nhận ra được vùng điều hướng, nội dung chính, chân trang.
AC-07 · An toàn truyền tải và riêng tư (FR-P0-08, FR-P0-09)
- GIVEN http://tila.rittruyen.com WHEN truy cập THEN chuyển 301 về HTTPS; chứng chỉ hợp lệ; không nội dung hỗn hợp.
- GIVEN tải trang với bộ nhớ trống WHEN xem nhật ký mạng THEN mọi yêu cầu cùng một nguồn gốc (kể cả phông Be Vietnam Pro tự lưu trữ); không Set-Cookie; document.cookie rỗng.
- GIVEN HTML nhận được qua Cloudflare WHEN curl -s rồi tìm THEN không có chuỗi /cdn-cgi/scripts/ hay rocket-loader; mọi thẻ script giữ type do mã nguồn đặt (không bị đổi); liên kết mailto: còn nguyên (P-02).
- GIVEN Lighthouse (cấu hình AC-04) WHEN chạy cả hai ngôn ngữ THEN Best Practices ≥ 95 (chỉ số của KR1; P-10).
AC-08 · Dữ kiện và liên hệ (FR-P0-11, mục 6.6) - GIVEN cấu hình có email WHEN bấm liên kết liên hệ THEN mở thư mới tới đúng địa chỉ, giống nhau ở cả hai ngôn ngữ. - GIVEN cấu hình trống một trường (email, điện thoại, địa chỉ, pháp nhân, tên CEO, liên kết Docs) WHEN dựng và xem THEN phần tử tương ứng không có trong HTML, không còn nhãn mồ côi; chế độ thông tin ở mục 6.9 hoạt động. - GIVEN cấu hình không có email WHEN dựng THEN build in cảnh báo "chưa có kênh liên hệ".
AC-09 · Đo lượt xem (FR-P0-10)
- GIVEN reverse proxy WHEN gửi 10 yêu cầu thử vào stg THEN access log có đủ 10 dòng với đường dẫn, mã trạng thái, giờ, user-agent; địa chỉ client là IP người xem lấy từ CF-Connecting-IP, không phải IP của Cloudflare; không ghi cookie. Thời gian giữ log và việc ẩn bớt địa chỉ IP do ai-devops và ai-legal quyết ở Giai đoạn 2.
8. OKR và chỉ số thành công¶
O: Một người lạ vào tila.rittruyen.com hiểu TiLA Studio là ai và liên hệ được, trên một trang nhanh, dễ dùng, đúng nhận diện.
| KR | Chỉ số | Cách đo | Thành công | Thất bại | Thời điểm |
|---|---|---|---|---|---|
| KR1 | Lighthouse di động (trung vị 5 lần) | AC-04, 05, 06, 07 trên stg |
Performance ≥ 90 · Accessibility ≥ 95 · Best Practices ≥ 95 · SEO: mọi bài đạt trừ is-crawlable (SEO ≥ 95 đo lại trên pro, AC-05) |
Performance, Accessibility hoặc Best Practices < 80, hoặc có bài SEO khác is-crawlable trượt: không đủ điều kiện phát hành |
Cuối S3 |
| KR2 | Lỗi chặn tiêu chí P0 | test_cases.md (mỗi P0 có test) |
100% AC của mục 7 đạt, 0 lỗi mức Chặn | Còn ≥ 1 AC đạt một phần | Cuối S3 |
| KR3 | Kênh liên hệ hoạt động | Gửi thư thử vào kênh, đo nhận được | ≥ 1 kênh nhận thư thử trong 5 phút | Không có kênh nào | Trước lệnh phát hành |
| KR4 | Liên hệ thật từ người ngoài | Thư đến kênh liên hệ, loại thư thử và thư của CEO | ≥ 1 trong 30 ngày đầu sau phát hành | 0 trong 30 ngày | T+30 ngày |
| KR5 | Lượt xem | Đếm từ access log (FR-P0-10), loại bot và kiểm tra nội bộ | Chỉ đo 30 ngày đầu để lấy mốc, chưa đặt mục tiêu vì chưa có số nền; sau đó ai-po đặt mục tiêu cùng ai-data-analyst |
— | T+30 ngày |
KR4 phụ thuộc nỗ lực đưa người vào trang (marketing), nên nếu thất bại thì kết luận không tự động là "trang kém"; ai-po xem lại cùng ai-marketing và ai-data-analyst. Mọi con số dùng ở đây có thể kiểm bằng lệnh hoặc nhật ký ghi ở mục 7.
9. Cần CEO bổ sung / xác nhận trước khi phát hành¶
Đã nhận (ceo-inputs.md, 2026-11-13): một email liên hệ chung (giá trị nằm ở cấu hình dữ kiện, mục 6.9); logo phương án A (QĐ-020). Điện thoại hay mạng xã hội chỉ hiện khi CEO đưa.
Chờ CEO: việc 3, 4, 5, 6 (việc 3, 4 đang dùng phương án Khuyến nghị theo ceo-inputs.md). Việc 2 và 7 là thông tin, không cần quyết ngay.
1. (Đã nhận, không còn chờ.) Kênh liên hệ.
2. Pháp nhân, địa chỉ, điện thoại. Hiện chưa có. Trang dùng được không cần (chân trang chỉ ghi "TiLA Studio"). ai-legal cho ý kiến có bắt buộc hiển thị hay không khi phát hành; CHƯA KIỂM CHỨNG, PRD không khẳng định điều luật.
3. Công khai tên Trí · Loan · Ân là tên ba thành viên gia đình và diễn giải ba tên. Hồ sơ công ty ghi diễn giải là "gợi ý chờ CEO chỉnh" (company/01 §2). Cần CEO xác nhận được đưa lên trang công khai.
4. Nêu tên và vai trò CEO trên trang không (A: nêu tên và vai trò, không ảnh, Khuyến nghị; B: chỉ nói "CEO", không tên). P-B cần biết ai đứng sau.
5. Cloudflare trên zone dùng chung (mục 7; ảnh hưởng FR-P0-09, AC-04, 07, 08). Quyết định CHƯA có, PRD không giả định. A: tắt Rocket Loader và Email Obfuscation bằng một quy tắc chỉ áp cho tila.rittruyen.com và stg, không đụng tên miền khác của zone (Khuyến nghị, vì giữ đúng FR-P0-09 và AC). B: giữ nguyên Cloudflare; khi đó ai-po viết lại FR-P0-09 thành "không script bên thứ ba do TiLA Studio thêm" và đo lại AC-04, AC-07 trên đường đi thật. C: đưa trang sang một tên miền không qua proxy Cloudflare (đổi QĐ-017, tốn thêm việc).
6. Liên kết sang docs.rittruyen.com ở mục cách làm việc (FR-P1-06): có hay không.
7. Sản phẩm để giới thiệu: chưa có sản phẩm nào, nên bản đầu không có thẻ sản phẩm (FR-P2-03). Khi có sản phẩm đầu tiên phát hành, bổ sung trước khi sửa trang.
Việc chưa có người trả lời: tên miền staging (ai-devops, S2); thời hạn giữ access log (ai-devops + ai-legal, Giai đoạn 2). Đóng trước Giai đoạn 5 (P-12), do ai-legal: (a) nghĩa vụ gắn nhãn nội dung do AI tạo (FR-P1-07), CHƯA KIỂM CHỨNG; (b) giấy phép phông Be Vietnam Pro khi tự lưu trữ, CHƯA KIỂM CHỨNG.
10. Ngoài phạm vi¶
- Mọi mục P3 ở mục 4.
- Backend, database, thu thập dữ liệu người dùng, khu vực đăng nhập.
- Trang sản phẩm, trang chính sách riêng tư của từng ứng dụng: làm cùng sản phẩm tương ứng.
- Viết quảng cáo, chiến dịch, SEO ngoài trang (thuộc
ai-marketing,ai-seo-aso). - Bộ nhận diện hoàn chỉnh (kết quả #2 của roadmap): trang chỉ dùng phần đã chốt ở Gate 1.
- Giám sát và sao lưu sau phát hành: kết quả #3 của roadmap,
ai-srevàai-devops.
11. Bàn giao tiếp¶
ai-ba đặc tả và truy vết AC-01…09 sang test_cases.md · ai-designer bốn phương án giao diện, harness (trạng thái áp dụng cho trang tĩnh: đang tải, lỗi 404, ngoại tuyến, không JS) · ai-copywriter nội dung hai ngôn ngữ theo mục 5–6 · ai-artist Pigxel và logo · ai-seo-aso rà FR-P0-06 · ai-legal mục 9.2, FR-P1-04, FR-P1-07, giấy phép phông · ai-devops kiểm cấu hình Cloudflare (chỉ đọc) và log · ai-architect chốt cách chạy cho AC-04 · ai-finops xác nhận chi phí tăng thêm bằng 0 · ai-plan-reviewer thẩm định trước Gate 1.