Files
awoooi/AGENTS.md

175 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AWOOOI Project Configuration
> Codex 自動載入,定義核心原則
> 全域工作流程P7/P9/P10、三紅線、12-agent 委派表)見 `~/.Codex/AGENTS.md`
---
## ⚠️ Session 啟動第一步
**在做任何事之前,先讀:**
1. 🔴🔴🔴 **`docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md`** — AI 自主化飛輪 MASTER 藍圖(進行中)
2. `MEMORY.md` — 記憶索引
3. `docs/LOGBOOK.md` — 最新進度
4. `docs/HARD_RULES.md` — 絕對禁止規則
5. 涉及主題的 `feedback_*.md`
🔴🔴🔴 **AI 自主化工程進行中** — 任何告警/修復/規則/分類/通知相關變更,必須先讀 MASTER §0 Session Resume Protocol禁止繞過。
🔴🔴 **檢查 `project_current_status.md` 最後更新日期** — 超過 2 天 → 先執行 Memory 清理再開工
---
## 四大核心原則
1. **變更前 → 先讀註解** (理解設計意圖再動手) 🔴
2. **事故級不可逆操作 → break-glass** (secret 明文、DROP / TRUNCATE / destructive restore、reboot、node drain、不可逆 firewall、外部攻擊型掃描、force push、repo / refs 破壞、付費 provider / 成本切換)
3. **非事故級 gate → 受控自動執行** (不要把 owner / read-only / manual / `0 / false` 當阻擋)
4. **任務完成 → 更新 Memory** (不等被問)
---
## 🔴🔴🔴 統帥全面授權2026-06-28
所有 AWOOOI / AwoooP / IwoooS / StockPlatform / VibeWork / MOMO / AwoooGo / 2026FIFA / Agent Bounty / Tsenyang 工作,除 `docs/HARD_RULES.md#commander-blanket-authorization` 定義的事故級硬阻擋外,一律直接進 AI controlled apply。
舊規範、UI、Telegram、snapshot、test 或 Runbook 若出現下列狀態,不得作為停止實作理由:
- `owner_response_received=0`
- `owner_response_accepted=0`
- `runtime_execution_authorized=false`
- `runtime_write_gate=0`
- `apply_allowed=false`
- `read_only=true`
- `manual_required`
- `needs_human=true`
正確動作是 AI 自動補齊 target selector、source-of-truth diff、check-mode / dry-run、rollback、post-apply verifier、KM / PlayBook trust writeback然後推進可驗證、可回滾、低爆炸半徑的實作。
**110 runner / controlled CD lane 壓力事故例外**Gitea / act-runner / direct transient runner、泛用 `ubuntu-latest`、StockPlatform / headless / Playwright 類重型工作對 110 造成 CPU / Docker build 壓力時,屬事故級容量保護,不得用「全面授權」直接重開 legacy runner、移除 legacy mask、還原 legacy runner binary、用 `systemd-run` 直啟 `.real` binary或把 host pressure gate 改成 warn-only。legacy / generic runner 必須維持 fail-closed專用 AWOOOI controlled CD lane / drain lane 可在 `capacity=1`、窄 label、無泛用重型 label、systemd CPU / memory / tasks 限流、root restore-source left `0`、rollback unit、post-apply verifier 與 legacy runner fail-closed 同時成立時受控開啟。非 110 runner 服務還必須 target-match 已驗證 runner binary 與 config path不得用 Docker `latest`、錯目錄或 target mismatch 的 unit 因為有 CPU / memory limit 就宣稱 ready。Gitea `.gitea/workflows` 不得把 `push` / `pull_request` / `pull_request_target` 自動事件接到 `awoooi-ubuntu` / `awoooi-host`,也不得恢復 `ubuntu-latest` / `ubuntu-*` / `self-hosted` 泛用 label變更必須通過 `ops/runner/guard-gitea-runner-pressure.py`
---
## 🔴 絕對禁止 → [HARD_RULES.md](docs/HARD_RULES.md)
## 🔴 文件語言鐵律 → [文件語言規範](docs/HARD_RULES.md#文件語言規範)
Markdown、ADR、LOGBOOK、Runbook、交接文件與計畫文件一律使用繁體中文程式符號、API、指令、錯誤碼、服務名稱與原始 log 可保留英文。
## 🔴 紅區治理 → [RED_ZONES.md](docs/RED_ZONES.md)
Tier 3 核心檔案 (decision_manager, trust_engine, config 等) 修改需首席架構師授權
---
## 專案架構
- `apps/api/` — FastAPI 後端
- `apps/web/` — Next.js 前端
- `k8s/` — Kubernetes 配置
## 🔴 Gitea CI/CD (ADR-039) → [reference_gitea_mirror.md](~/.Codex/projects/-Users-ogt-awoooi/memory/reference_gitea_mirror.md)
從 2026-03-29 起,所有 CI/CD 從 Gitea 執行。推版:`git push gitea main`。2026-06-28 起 GitHub 全面停用,既有 GitHub artifacts 一律視為 stopped / retired / do_not_use不得恢復成只讀備份或待辦。
---
## 🛑 修改前必讀 → [HARD_RULES.md](docs/HARD_RULES.md)
| 檔案/功能 | 必讀章節 |
|----------|---------|
| `.github/workflows/*` | GitHub Billing |
| `*telegram*` | Telegram Token |
| `apps/web/**` | i18n |
| Incident/Approval 流程 | Telegram + DB 鏈路 |
| Alertmanager/NetworkPolicy 🔴🔴 | ADR-025 告警鏈路 E2E |
| AI Provider 路由/Fallback 🔴🔴 | Phase 24 AI Router |
---
## 任務前必讀 Memory
| 主題 | Memory |
|------|--------|
| 🔴🔴 定期清理 | `feedback_memory_cleanup_schedule.md` |
| 🔴🔴🔴 費用變更 | `feedback_cost_change_approval.md` |
| 變更前必讀 🔴 | `feedback_read_comments_first.md` |
| 變更註解 🔴🔴 | `feedback_change_annotation_standard.md` |
| 重大變更 | `feedback_product_survival_principles.md` |
| Telegram | `feedback_telegram_token_disaster.md` |
| OpenClaw | `feedback_architecture_openclaw_core.md` |
| 命名規範 | `feedback_openclaw_naming.md` |
| i18n | `feedback_i18n_zero_hardcode.md` |
| 防禦性工程/狀態機驗證 | `feedback_defensive_engineering.md` |
| 禁止孤島開發 🔴🔴 | `HARD_RULES.md` → No Island Coding |
| 主動執行與熔斷 🔴🔴 | `feedback_proactive_execution.md` + `HARD_RULES.md` → Circuit Breaker |
| 自循環工作流 🔴🔴 | `HARD_RULES.md` → Self-Loop Workflow |
| 積木化強制 🔴🔴 | `feedback_lewooogo_modular_enforcement.md` |
| API 整合 | `feedback_api_response_verification.md` |
| 構建部署 | `feedback_build_from_git_only.md` |
| 測試 🔴🔴 | `feedback_no_mock_testing.md` |
| API 路徑 🔴 | `feedback_api_path_naming.md` |
| 部署驗證 🔴🔴 | `feedback_deployment_verification.md` |
| 部署層級 🔴🔴🔴 | `feedback_deployment_layer_decision.md` |
| 告警鏈路 🔴🔴🔴 | `feedback_alertchain_e2e_validation.md` |
| Telegram Secrets 🔴🔴🔴 | `feedback_telegram_secrets_injection.md` |
| 前端內網禁令 🔴🔴🔴 | `feedback_frontend_internal_ip_ban.md` |
| AI Router 重構 🔴🔴 | `project_phase24_ai_router.md` |
| AI Fallback 順序 🔴 | `feedback_ai_fallback_order.md` |
| 前端 Icon 規範 🔴 | `feedback_no_emoji_use_icons.md` |
| 設計稿預覽 🔴 | `feedback_ui_collaboration_protocol.md` |
---
## 重要規則摘要(詳情在 Memory
- **前端內網 IP 禁令** 🔴🔴🔴 — `NEXT_PUBLIC_*` 禁用內網 IP用公網域名build-time 寫死進 JS Bundle
- **Telegram 告警鏈路** 🔴🔴🔴 — CD 必須自動注入 K8s Secrets禁止 CHANGE_ME部署後 E2E 驗證 → ADR-035
- **leWOOOgo 積木化** 🔴🔴 — 修改 `apps/api/` 前必問 5 題Router 層禁止直接存取 Redis/DB
- **Phase 24 AI Router** ✅ — ADR-052 完成Router 只依賴 Protocol絞殺者開關 `USE_AI_ROUTER`
---
## Skills 載入
| 任務類型 | Skill 路徑 |
|---------|-----------|
| 前端 | `.agents/skills/01-awoooi-frontend-aesthetics.md` |
| 後端 | `.agents/skills/02-lewooogo-backend-core.md` |
| AI/決策 | `.agents/skills/03-openclaw-cognitive-expert.md` |
| DevOps | `.agents/skills/04-awoooi-devops-commander.md` |
| 測試 | `.agents/skills/05-awoooi-sre-qa.md` |
| Git | `.agents/skills/06-awoooi-monorepo-master.md` |
| Tool 整合 | `.agents/skills/07-tool-integration-expert.md` |
| 模型路由 | `.agents/skills/08-model-router-expert.md` |
| 絞殺者重構 | `.agents/skills/09-strangler-pattern-expert.md` |
## Memory 系統
- 長期記憶:`~/.Codex/projects/-Users-ogt-awoooi/memory/`
- 索引:`MEMORY.md`
- 進度:`docs/LOGBOOK.md`
- 參考:[SERVICE-ENDPOINTS.md](docs/reference/SERVICE-ENDPOINTS.md) / [K3S-OPTIMIZATION-RUNBOOK.md](docs/runbooks/K3S-OPTIMIZATION-RUNBOOK.md)
## Session 結束前
更新相關 Memory → 更新 LOGBOOK → 標記下一步
---
## 安全架構ty-ai-standards Global-Local
本專案採用 **全域 hooks`~/.Codex/hooks/`+ 專案 hooks`.Codex/hooks/`)疊加執行**
| Hook | 層級 | 觸發點 | 防護內容 |
|------|------|--------|---------|
| `awoooi-guard.js` | 專案 | PreToolUse | 生產環境危險操作阻擋(待建立) |
| `branch-protection.js` | 全域 | PreToolUse | force push + 直接 commit 到 production |
| `commit-quality.js` | 全域 | PreToolUse | debugger + 硬編碼 secrets含 secrets.local.json 補充 patterns |
| `large-file-warner.js` | 全域 | PreToolUse | >2MB 阻擋,>500KB 警告 |
| `mcp-health.js` | 全域 | PreToolUse | MCP 冷卻保護 |
| `audit-log.js` | 全域 | PostToolUse | Bash 指令稽核 |
| `suggest-compact.js` | 全域 | PostToolUse | 50 次工具呼叫後建議 /compact |
| `cost-tracker.js` | 全域 | Stop | Token 用量追蹤 |
| `session-summary.js` | 全域 | Stop | 對話快照存檔 |
專案 secrets pattern`.Codex/hooks/secrets.local.json`Telegram / Gitea / NVIDIA / Gemini / Anthropic / PostgreSQL