Files
awoooi/docs/HARD_RULES.md
OG T 00d94ca71c docs: CLAUDE.md 引用 HARD_RULES.md (禁止爆滿)
結構:
- CLAUDE.md: 精簡索引,只放引用連結
- docs/HARD_RULES.md: 詳細規則

這是早就溝通好的做法,不應該忘記。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-23 23:32:35 +08:00

2.9 KiB
Raw Blame History

AWOOOI 絕對禁止規則 (Hard Rules)

違反任何一條 = 重大事故

快速索引

主題 禁止 正確做法 詳細規則
CI/CD ubuntu-latest self-hosted → GitHub Billing
Telegram logOut() 先停後換 → Telegram Token
前端 硬編碼文字 next-intl → i18n
資料庫 SQLite PostgreSQL → DB
CORS * 白名單 → CORS
數據 假數據 Demo 真實 API → No Fake Data
架構 刪除 OpenClaw OpenClaw 是核心 → OpenClaw
Git --force 正常 push → Git Safety

GitHub Billing

Memory: ~/.claude/projects/-Users-ogt-awoooi/memory/feedback_github_billing.md

# ❌ 禁止
runs-on: ubuntu-latest

# ✅ 正確
runs-on: self-hosted

原因: GitHub Actions 帳戶額度限制,必須用 192.168.0.110 的 self-hosted runner。


Telegram Token

Memory: ~/.claude/projects/-Users-ogt-awoooi/memory/feedback_telegram_token_disaster.md

# ❌ 禁止 - 會導致 Token 永久失效
await bot.log_out()

# ✅ 正確流程
1. 先停止舊 Bot  Long Polling
2. 再切換新 Token

原因: 2026-03-23 災難事件logOut 導致 Token 永久失效。


i18n

Memory: ~/.claude/projects/-Users-ogt-awoooi/memory/feedback_i18n_zero_hardcode.md

// ❌ 禁止
<button>Submit</button>

// ✅ 正確
<button>{t('common.submit')}</button>

原因: 100% 雙語支援 (zh-TW + en)。


Database

Memory: AWOOOI 憲法

# ❌ 禁止
DATABASE_URL = "sqlite:///..."

# ✅ 正確
DATABASE_URL = "postgresql+asyncpg://..."

原因: SQLite 無法支援生產環境並發。


CORS

Memory: AWOOOI 憲法

# ❌ 禁止
CORS_ORIGINS = ["*"]

# ✅ 正確
CORS_ORIGINS = ["https://awoooi.wooo.work", "http://localhost:3000"]

原因: 安全性要求。


No Fake Data

Memory: ~/.claude/projects/-Users-ogt-awoooi/memory/feedback_no_fake_data.md

// ❌ 禁止
const data = DEMO_DATA

// ✅ 正確
const { data } = useRealAPI()

原因: 假數據導致用戶無法看到真實系統狀態。


OpenClaw

Memory: ~/.claude/projects/-Users-ogt-awoooi/memory/feedback_architecture_openclaw_core.md

❌ 禁止: 淘汰、取代、或刪除 OpenClaw
✅ 正確: OpenClaw 是 AWOOOI 產品核心,只能增強不能移除

原因: OpenClaw AI 是產品核心價值。


Git Safety

Memory: 防禦性工程

# ❌ 禁止
git push --force
git reset --hard
git checkout -- .

# ✅ 正確
git push
git revert

原因: 防止資料遺失。


如何新增規則

  1. 在此文件新增章節
  2. 更新快速索引表
  3. 在 Memory 新增對應 feedback_*.md
  4. 更新 MEMORY.md 索引