Chín nguyên tắc dưới đây là phần đáng giá nhất của dự án. Mỗi nguyên tắc kèm ví dụ thật trong repo.
1
Người giữ “cái gì” và “vì sao”, AI lo “làm thế nào”
Quyết định sản phẩm (cho ai, làm gì, không làm gì) là việc của người. Chọn thư viện, kiến trúc, tên biến, màu nút là việc của AI, và AI không được hỏi lại những việc đó.
Trong dự án: bible mở đầu bằng “Không yêu cầu chủ dự án lựa chọn framework, màu sắc, tên class, thư viện hay cấu trúc thư mục”. Bố mẹ chỉ chốt: offline, PIN phụ huynh, bé không thoát ra được, thêm game bằng cách chép thư mục.
2
Đặc tả là sản phẩm chính, mã là thứ sinh lại được
Thời gian đầu tư vào tài liệu cho lợi nhiều nhất. Một đặc tả tốt chốt sẵn mặc định, nói rõ phạm vi bản đầu và những gì để sau, và nói trung thực giới hạn của nền tảng.
Trong dự án: bible có bảng “mong muốn → cam kết thực tế”, ví dụ “Bé chỉ ở trong app” được diễn đạt lại thành “ghim ứng dụng hạn chế chuyển app, không hứa chặn nút nguồn”. Có cả mục “Vì sao chọn phương án này” so sánh sáu cách làm khác.
3
Ít luật, nhưng là luật cứng
Một danh sách ngắn những điều không bao giờ được phá, kể cả để “cho demo chạy”. Trong khung đó AI được tự do. Luật nhiều quá thì AI lẫn; không có luật thì AI đi tắt.
Trong dự án: không quyền Internet; không cầu nối JavaScript có quyền; không đổi khóa ký (đổi là không cài đè được, gia đình mất dữ liệu); mã định danh game là vĩnh viễn; không in PIN.
4
Bằng chứng thay cho lời hứa
AI rất dễ viết “đã kiểm thử, mọi thứ hoạt động”. Hãy đòi log, ảnh chụp, số test chạy thật, và bốn nhãn trạng thái: PASS, FAIL, NOT_RUN, BLOCKED. “PASS trên emulator” khác “PASS trên máy thật”.
Trong dự án: báo cáo 1.1.0 ghi thẳng: giọng đọc PASS với 3 game đại diện, NOT_RUN với 47 game còn lại từng cái một; mục tiêu “câu đầu < 500 ms” chưa đạt trên emulator Android 17.
5
Thử như người dùng thật, ở chỗ khó nhất
Đọc mã không phải là kiểm thử. AI phải mở ứng dụng thật, chạm và kéo thật, ở nhiều cỡ màn hình, mất mạng, tải lại, cố tình làm sai. Rồi người thử trên thiết bị thật những gì máy không làm được: nghe bằng tai, ghim ứng dụng, chọn thư mục.
Trong dự án: mỗi game được chơi trọn bằng chạm giả lập ở 390×844, 844×390 và 1280×800. App được thử trên emulator Android 8 với WebView rất cũ (Chromium 69), nơi phát hiện nhiều lỗi nhất.
6
Chia thành vỏ và nội dung, nối bằng hợp đồng
Một phần ổn định, ít thay đổi, lo an toàn (vỏ). Nhiều phần nhỏ, thay được, chỉ cần đúng một định dạng (nội dung). Hợp đồng giữa hai bên được viết thành tài liệu và có công cụ kiểm tra.
Trong dự án: player không biết gì về từng game. Game là thư mục HTML; game theo SDK có thêm game.json và player-sdk.js, được pack_game.py kiểm tra. Nhờ vậy bốn phiên AI làm 40 game cùng lúc mà không giẫm chân nhau, và thêm game không cần APK mới.
7
Thay đổi đi qua handover, không sửa vội trong lúc chat
Khi gặp lỗi hay muốn thêm tính năng: đo nguyên nhân trước, chốt quyết định với người, viết yêu cầu phải đạt và kiểm thử bắt buộc, rồi giao cho một phiên AI mới với ngữ cảnh sạch.
Trong dự án: lỗi “game im lặng trong app” được giải quyết bằng HANDOVER_TTS_v1.1.0.md (xem mục sửa lỗi).
8
Ghi nhớ cho phiên sau
AI không nhớ gì giữa các phiên. Bộ nhớ dài hạn của dự án là tài liệu: sổ quyết định, trạng thái tiến độ, sổ tay cho AI. Mỗi cái bẫy đã gặp một lần phải được ghi lại để không gặp lần hai.
Trong dự án: DECISIONS.md (22 quyết định và lý do), BUILD_STATUS.md, AI_PLAYBOOK.md (bảng các bẫy, ví dụ “WebView Android 8 làm hỏng chữ có dấu khi gửi giữa trang và app”).
9
An toàn và riêng tư là mặc định
Không thu thập dữ liệu nếu không cần. Không để khóa, mật khẩu, đường dẫn máy tính hay thông tin cá nhân lọt vào mã nguồn, file nén, log hay báo cáo. Việc khó hoàn tác (xóa dữ liệu, đổi khóa, công bố) luôn hỏi người trước.
Trong dự án: trước khi đưa lên GitHub, AI quét toàn bộ hơn 1.100 file, kể cả bên trong APK và ZIP, và thay mọi đường dẫn, tên máy, cấu hình máy trong bản công khai.