Files
ewoooc/.claude/skills/ai-self-learning-flow.py
ogt 1b4f3a7bbe
Some checks failed
CD Pipeline / deploy (push) Failing after 59s
feat: EwoooC 初始化 — 完整專案推版至 Gitea
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml)
- 部署模式: rsync Python 檔案至 188 → docker restart (volume mount)
- Dockerfile/requirements 變動時自動重建 Docker image
- 部署通知: Telegram (開始/成功/失敗)
- 健康檢查: https://mo.wooo.work/health (最多 5 次重試)
- 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 01:21:13 +08:00

120 lines
3.9 KiB
Python
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.
#!/usr/bin/env python3
"""
EwoooC — AI 自主學習流程 Skill
skill: ai-self-learning-flow
version: 1.0.0
updated: 2026-04-18
用途:指導 Claude 在執行任何 AI 功能改動時,完整走過三層沉澱流程。
遵循 ADR-001三 Agent 分工、ADR-007雙寫規範、Memory 規範。
"""
SKILL_DESCRIPTION = """
# EwoooC AI 自主學習流程 (ai-self-learning-flow)
## 觸發條件
當統帥要求「新增 AI 功能」、「修改 AI 洞察寫入邏輯」、「新增 KM 記錄類型」時,
Claude 應主動走過此 Skill 的三層 Checklist。
## Phase 1規劃5 分鐘)
### 1.1 確認 Agent 歸屬
- [ ] 此功能屬於採集層Hermes
- [ ] 此功能屬於處理層NemoTron
- [ ] 此功能屬於應用層OpenClaw
- [ ] 有無跨層的資料傳遞?傳遞格式?
### 1.2 確認雙寫需求ADR-007
- [ ] 是否有 AI 產出需要沉澱PPT 洞察、競品分析、對話)
- [ ] DB sink哪張表哪些欄位
- [ ] KM sink是否需要 embedding哪個模型維度
### 1.3 確認成本影響
- [ ] 是否增加 NemoTron 每日 tool call 次數?
- [ ] 是否增加 OpenClaw API 費用?
- [ ] 月成本目標Hermes=$0, NemoTron=$0, OpenClaw<$5
## Phase 2執行主要開發
### 2.1 Hermes 採集層(若適用)
```python
# services/hermes_analyst_service.py 或新服務
# 任務embedding、tag、去重、品質分數
# 連線http://192.168.0.111:11434/api/embeddings
# 模型bge-m3 (1024 dim)
```
### 2.2 NemoTron 處理層(若適用)
```python
# services/nemoton_dispatcher_service.py
# 任務tool calling 寫入、分類派發
# 注意HTTP 429 → fallback 到 _hermes_rule_fallback() (ADR-004)
```
### 2.3 OpenClaw 應用層(若適用)
```python
# services/gemini_service.py 或 ppt_generator.py
# 任務最終生成、RAG 引用歷史洞察
# RAG 查詢需套用時間衰減ADR-005
```
### 2.4 DB Migration若需新欄位
```sql
-- 放在 migrations/NNN_description.sql
-- 新欄位遵循現有命名規範snake_case
-- embedding 欄位vector(1024) 搭配 HNSW 索引
```
## Phase 3驗證完成後必做
### 3.1 本地測試
- [ ] 手動觸發一次完整流程(採集 → 處理 → 應用)
- [ ] 確認 DB 有寫入資料
- [ ] 確認 embedding 欄位不為 NULL
- [ ] 確認 Telegram 告警(若有)格式正確
### 3.2 Fallback 測試NemoTron 相關必做)
- [ ] 模擬 NIM 回 429確認 degraded 模式正常啟動
- [ ] 確認降級訊息有 🟡 標記
### 3.3 三層沉澱(每次完成必做)
- [ ] `docs/adr/ADR-XXX.md` — 有無需新建 ADR重大決策才建
- [ ] `docs/AI_INTELLIGENCE_MODULE_SOT.md` — 更新架構圖或表格
- [ ] `memory/` — 有無新的 project/feedback memory 需要寫入?
- [ ] `CLAUDE.md` — 有無新的憲法條款?
- [ ] `TODO_NEXT_STEPS.txt` — 標記完成項目 ✅
## 常見問題
### Q: 這個 insight 該用哪個 `insight_type`
| 類型 | 適用場景 |
|---|---|
| `price_alert` | 競價告警分析 |
| `ppt_insight` | PPT 生成洞察 |
| `weekly_trend` | 週報 meta-analysis |
| `conversation` | 用戶對話記錄 |
| `structural` | 不變的結構知識(不套時間衰減) |
| `constitutional` | 專案憲法類(不套時間衰減) |
### Q: 需要建新 ADR 的判斷標準?
以下情況需建 ADR
- 引入新的外部依賴(新 API、新資料庫、新模型
- 改動資料庫 schema不含純加欄位的 migration
- 改變 AI 路由邏輯(哪個 Agent 做什麼)
- 改變成本結構(預計月費增加 > $1 USD
以下不需建 ADR
- Bug fix
- 效能優化(不改架構)
- 新增 Telegram 告警模板
- UI 改動
### Q: embedding 失敗時怎麼辦?
1. DB 先寫入(`embedding = NULL`
2. 放入 retry queue`embedding_retry_queue` 表)
3. Hermes batch job 每天 03:00 重試所有 `embedding IS NULL` 的記錄
"""
if __name__ == "__main__":
print(SKILL_DESCRIPTION)