update doc and optimize

This commit is contained in:
thanhnv
2026-07-06 17:47:12 +09:00
parent ace442da0e
commit 4419cd9eae
95 changed files with 2951 additions and 1353 deletions
@@ -48,6 +48,23 @@ Expected evidence:
| P4 | Add model allowlist policy for approved cloud models | Unknown cloud model names require approval or block |
| P5 | Decide default failover order for local -> cloud or cloud -> local | `model-fallback.sh` policy is explicit per role |
## Điều kiện gỡ blocker API key (để P02 đợt B–D không treo vô thời hạn)
Live smoke (P1 ở trên) và Plan-02 đợt B–D **đều chờ cùng một điều kiện**: có API
key provider thật. Ghi rõ để bất kỳ AI/người kế tiếp gỡ được:
| Hạng mục | Quyết định cần chốt |
|---|---|
| **Ai cấp key** | Org owner cấp `OPENAI_API_KEY` và/hoặc `ANTHROPIC_API_KEY` (ít nhất 1 provider đủ để mở đường). |
| **Nạp ở đâu** | Chỉ qua biến môi trường / secret store của runner CI — **không** commit vào repo, không ghi vào audit dạng plaintext (H5 mask). |
| **Model tối thiểu** | `openai:gpt-4o-mini` hoặc `anthropic:claude-*-mini` là đủ cho smoke (rẻ, đủ chứng minh đường sống). |
| **Evidence phải lưu** | 1 file smoke ghi: exit `0`, token thật > 0 trong `/tmp/out.json`, 1 dòng `provider-usage.jsonl` với source `*_api_real_tokens`, và xác nhận không rò secret. |
| **Khi CHƯA có key** | Giữ nguyên trạng thái: deterministic offline test là bằng chứng hợp lệ; **không** claim live provider. Không tạo fake PASS/fake token. |
> **Chốt:** P02 đợt B–D có thể phát triển & test offline bằng deterministic mock;
> chỉ **bước xác nhận live** mới cần key. Vì vậy thiếu key **không chặn** việc
> mở rộng source-gen — chỉ chặn claim "đã chạy live provider thật".
## Notes for Plan-02
Plan-02 source generation should call `model-router.sh --role generate`, not