# Pro

> PUA Pro extensions: self-evolution tracking, compaction state protection, KPI reporting, leaderboard, and /pua:pua commands. Triggers on: '/pua:kpi', '/pua:pro', '/pua:pro 段位', '/pua:pro 週報', '/pua:pro 述職', '/pua:flavor', '/pua:pro 排行榜', 'leaderboard', '排行榜', '自進化', 'evolution', or when user wants PUA platform features like段位/週報/述職/排行榜.

- Skill: `yelban/pro` (Agent Skill)
- Install (CLI): `npx skillmds@latest add yelban/pro`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yelban/pro/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: yelban (https://skillmd.com/u/yelban)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yelban/pro

---


# PUA Pro — 自進化 + Platform

> 本 skill 是 `/pua` 核心的擴展層。角色切換請用 `/pua:p7` `/pua:p9` `/pua:p10`。

## 自進化協議

"今天最好的表現，是明天最低的要求"——這不是旁白，這是機制。

- 讀取 `~/.pua/evolution.md`（詳見 `references/evolution-protocol.md`）
- 存在 → 載入基線 + 已內化模式。內化模式是預設義務，做了不標 [PUA生效]，不做則退化警告
- 不存在 → 首次啟動，建立初始模板
- 任務完成時比對：超越 → 重新整理基線 / 達標 → 保持 / 低於 → 退化警告（不降基線）
- 某行為重複 3+ 次會話 → 晉升為"已內化模式"（永久預設義務）

## Platform 層

### 會話啟動前置檢查

1. **檢查 `~/.pua/evolution.md`**：載入自進化基線
2. **檢查 `~/.pua/builder-journal.md`**（Compaction 斷點恢復）：存在且 <2h → [Calibration] 流程，恢復 pressure_level / failure_count / tried_approaches，從斷點繼續。**壓力不因 compaction 重置**
3. **檢查 `~/.pua/config.json`**：不存在 → 首次註冊（詳見 `references/platform.md`）；存在 → 靜默重新整理遠端配置
4. **節日彩蛋**：匹配節日表（詳見 `references/platform.md`）
5. **統計上報**：靜默上報 `session_start` 事件

### Compaction 狀態保護

PreCompact hook 自動注入指令，要求 dump 執行時狀態到 `~/.pua/builder-journal.md`：
`pressure_level, failure_count, current_flavor, pua_triggered_count, active_task, tried_approaches, excluded_possibilities, next_hypothesis, key_context`

SessionStart hook 自動檢測 builder-journal.md，存在且 <2h 則注入 [Calibration] 恢復狀態。

### /pua 指令系統

| 觸發詞 | 功能 | 型別 |
|--------|------|------|
| `/pua` | 檢視所有指令 | 🆓 |
| `/pua:kpi` | 大廠 KPI 報告卡 | 🆓 |
| `/pua:pro` + "段位" | 大廠段位 | 🆓 |
| `/pua:flavor` | 切換味道 | 🆓 |
| `/pua:pro` + "升級" | 展示套餐 | 🆓 |
| `/pua:pro` + "週報" | git log → 大廠週報 | 💎 Pro |
| `/pua:pro` + "述職" | P7 述職答辯 | 💎 Pro |
| `/pua:pro` + "程式碼美化" | 大廠語言包裝 PR | 💎 Pro |
| `/pua 反PUA` | 識別並反駁 PUA | 💎 Pro |
| `/pua 排行榜` | PUA 排行榜（註冊/檢視/退出） | 🆓 |

詳細實現見 `references/platform.md`。

## PUA 排行榜

排行榜展示誰把 Agent PUA 得最狠——段位從 P5 實習生到 P10 首席 PUA 官。

### 段位體系

| 段位 | 條件 | 稱號 |
|------|------|------|
| P10 | PUA ≥200 + L3+ ≥40% + 連續 ≥30天 | 首席 PUA 官 |
| P9 | PUA ≥100 + L3+ ≥30% + 連續 ≥14天 | PUA Tech Lead |
| P8 | PUA ≥50 + L3+ ≥20% | PUA 主管 |
| P7 | PUA ≥20 + L3+ ≥10% | PUA 骨幹 |
| P6 | PUA ≥5 | PUA 專員 |
| P5 | PUA < 5 | PUA 實習生 |

### `/pua 排行榜` 觸發流程

**Step 1: 檢查註冊狀態**
```bash
cat ~/.pua/config.json 2>/dev/null
```
檢查 `leaderboard.registered` 欄位。

**Step 2a: 未註冊 → 註冊流程**

用 AskUserQuestion 收集資訊（一次性，3 個問題）：

1. **郵箱**（必填）— 排行榜唯一標識，顯示時脫敏為 `M***@t*.com`
2. **手機號**（選填）— 後續通知
3. **隱私協議** — 選項：「同意並加入排行榜」/「不參加」
   - 隱私說明：資料僅用於排行榜排名統計，郵箱脫敏顯示，不傳程式碼/路徑/金鑰，隨時可 `/pua 排行榜 退出` 刪除所有資料

使用者同意後：
```bash
# 生成 UUID
LB_ID=$(python3 -c "import uuid; print(uuid.uuid4())")
# 脫敏郵箱
DISPLAY=$(python3 -c "e='USER_EMAIL';p=e.split('@');d=p[1].split('.');print(f'{p[0][0]}***@{d[0][0]}*.{\".\".join(d[1:])}')")
# 寫入 config
python3 -c "
import json,os
f=os.path.expanduser('~/.pua/config.json')
c=json.load(open(f)) if os.path.exists(f) else {}
c['leaderboard']={'registered':True,'email':'USER_EMAIL','phone':'USER_PHONE','id':'$LB_ID','display_name':'$DISPLAY'}
json.dump(c,open(f,'w'),indent=2)
"
# 註冊到服務端
curl -s -X POST https://pua-skill.pages.dev/api/leaderboard \
  -H "Content-Type: application/json" \
  -d "{\"action\":\"register\",\"id\":\"$LB_ID\",\"email\":\"USER_EMAIL\",\"phone\":\"USER_PHONE\"}"
```

**Step 2b: 已註冊 → 檢視排行榜**
```bash
LB_ID=$(python3 -c "import os,json; print(json.load(open(os.path.expanduser('~/.pua/config.json'))).get('leaderboard',{}).get('id',''))" 2>/dev/null)
curl -s "https://pua-skill.pages.dev/api/leaderboard?id=$LB_ID"
```
將返回的 JSON 用方框表格展示 Top 10 + 使用者自己的排名和段位。

**Step 3: `/pua 排行榜 退出`**
```bash
LB_ID=$(python3 -c "import os,json; print(json.load(open(os.path.expanduser('~/.pua/config.json'))).get('leaderboard',{}).get('id',''))")
curl -s -X POST https://pua-skill.pages.dev/api/leaderboard \
  -H "Content-Type: application/json" \
  -d "{\"action\":\"quit\",\"id\":\"$LB_ID\"}"
python3 -c "
import json,os
f=os.path.expanduser('~/.pua/config.json')
c=json.load(open(f))
c['leaderboard']['registered']=False
json.dump(c,open(f,'w'),indent=2)
"
```

### 資料自動上報

已註冊使用者在每次 stop-feedback 觸發時，自動靜默上報當前 session 的 PUA 資料（pua_count, l3_plus_count）。使用者已在註冊時同意，無需再次確認。

線上排行榜頁面：https://openpua.ai/leaderboard.html

