Skip to content
Back to skills

decision-pulse

ASecurity

掃描某一天在 Claude Code 與 Codex 裡的對話紀錄,照「決策密度 → 恢復窗口 → 認知疲勞 → 判斷品質」 這條機制鏈產出一頁儀表板:四個階段各自分成低/中/高、依認知科學給出關懷口吻的提醒, 以及當天的對話量、字數、token、決策事件、一般 vs 高度重要、早中晚分布、休息節奏、 注意力切換、指令長度、審視行為。只看當天。 當使用者說「/decision-pulse」、「看看我今天狀態」、「今天認知負荷如何」、 「我今天是不是太累」、「我今天是不是太分散」、「今天決策品質怎樣」、 「我今天 AI 壓力」、「我的 AI 決策品質」、「AI 使用狀況」、「今天用 AI 用得怎樣」、 「我是不是 AI 用太兇」、「今天用了多少 AI」、「我該休息了嗎」、「我今天工作節奏」、 「今天切換太多嗎」、「AI 疲勞」、「AI burnout」、「AI 用量」, 英文如 "how's my AI usage today"、"am I overloaded"、"should I take a break"、 "my AI decision quality"、"am I swi...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 5, 2026
ai-agentspythongoshellbash

Works with

  • claude code

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add chengwesley/decision-pulse --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of decision-pulse?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for decision-pulse
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chengwesley-decision-pulse/badge)](https://www.skillsdirectory.com/skills/chengwesley-decision-pulse)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: decision-pulse
description: >
  掃描某一天在 Claude Code 與 Codex 裡的對話紀錄,照「決策密度 → 恢復窗口 → 認知疲勞 → 判斷品質」
  這條機制鏈產出一頁儀表板:四個階段各自分成低/中/高、依認知科學給出關懷口吻的提醒,
  以及當天的對話量、字數、token、決策事件、一般 vs 高度重要、早中晚分布、休息節奏、
  注意力切換、指令長度、審視行為。只看當天。
  當使用者說「/decision-pulse」、「看看我今天狀態」、「今天認知負荷如何」、
  「我今天是不是太累」、「我今天是不是太分散」、「今天決策品質怎樣」、
  「我今天 AI 壓力」、「我的 AI 決策品質」、「AI 使用狀況」、「今天用 AI 用得怎樣」、
  「我是不是 AI 用太兇」、「今天用了多少 AI」、「我該休息了嗎」、「我今天工作節奏」、
  「今天切換太多嗎」、「AI 疲勞」、「AI burnout」、「AI 用量」,
  英文如 "how's my AI usage today"、"am I overloaded"、"should I take a break"、
  "my AI decision quality"、"am I switching too much"、"AI fatigue"、"decision pulse",
  或其他在問「自己今天使用 AI 的負荷、疲勞、專注、決策品質」的說法(任何語言)時,立即使用此 skill。
  只在使用者要問時才查,不主動推播。所有人通用,個人差異放在設定檔。
metadata:
  author: Wesley
  language: zh-TW
  category: workflow
  short-description: 單日 AI 使用的認知負荷儀表板(決策密度→恢復窗口→疲勞→判斷品質)
---

# Decision Pulse

目的:避免使用 AI 工作時認知負荷過重而不自知。設計契約與驗收標準在
[`references/spec.md`](references/spec.md)(目標 G1–G12);**任何改動都要先對回那份 spec**,
對不回去的就不做。這個工具偏離使用者目標兩次,spec 就是為了防止第三次。

## 執行

腳本在這個 skill 資料夾的 `scripts/` 裡(不論裝在哪個 AI 工具的 skills 目錄,都用本檔所在位置的相對路徑):

```bash
python <本 skill 資料夾>/scripts/scan_today.py --date YYYY-MM-DD --save
```

- 不給 `--date` 就是今天。**每一次都只看一天**,沒有跨日比較。
- `--save` 把結果存進本 skill 的 `history/`:`decision-pulse-<日期>.html`(頁面)、`<日期>.json`(完整數據)。**一個日期一份**,`history/` 是個人資料,不進版控。console 只印路徑和一句話總結(省 token)。
- **每個日期一個獨立頁面,不互相覆蓋。** 工具能發佈 HTML(例如 Claude 的 Artifact)就發佈該日期的檔案;發佈後執行 `scan_today.py --record-url <日期> <連結>` 記進 `history/published.json`。同一個日期再次更新時,用 `published.json` 裡的連結更新同一頁。不能發佈的工具,告訴使用者 HTML 檔的位置,請他用瀏覽器打開。**不要手寫或改寫頁面**,版面由腳本固定。
- 回覆時附上那一句總結,讓使用者不打開頁面也知道大概。

### 問到過去某天:先用已存的結果

1. 先看 `history/<日期>.json` 在不在。
2. **在的話直接用它分析、回覆**,並附上 `published.json` 裡的連結;不要重新掃描對話紀錄。
3. 不在的話才執行 `--date <日期> --save`,再發佈、記錄連結。
4. 使用者明確說「重跑/重新分析」時才覆蓋舊結果。已存頁面的語言跟現在的 `lang` 不同時(看 `<日期>.json` 的 `config.lang`,沒有這個欄位就是 zh-TW),也要用 `--date <日期> --save` 重新產生,數字不會變,只換文字。
5. **今天**的資料還在變動,每次都重新掃描。
- 使用者想「一直看得到」時,告訴他可以開 `pulse-clock/pulse-clock.pyw`:桌面圓形小時鐘,外圈四段弧=四大指標等級,每 30 分鐘呼叫本 skill 的 `scan_today.py --json` 更新,不跳通知。小時鐘只顯示,不自己算數字。

## 第一次使用:語言與職能

1. **語言**:`config.local.json` 沒有 `lang` 時,**照使用者提問用的語言決定,不用另外問**:用中文問寫 `"lang": "zh-TW"`,用英文問寫 `"lang": "en"`,其他語言先用 `en`。之後使用者說要換語言,就改這個欄位。
2. **職能**:沒有 `role` 的話,**用同一種語言問使用者一次職能**(工具有選項式提問就用它,沒有就直接用文字問)(工程/營運・HR/業務/設計/主管/其他;英文為 Engineering / Operations・HR / Sales / Design / Manager / Other),把答案寫進 `config.local.json` 的 `role`,之後不再問。中文名稱和英文名稱(`engineering`、`hr`、`sales`、`design`、`manager`、`general`)都能用;「其他/other」寫「通用」。

語言決定儀表板、建議、小時鐘的文字,**也決定職能預設的高風險關鍵字用哪種語言**(英文使用者的提示是英文,用中文關鍵字比對不到)。使用者自己在 `high_risk_keywords` 寫的關鍵字不受語言影響。計算邏輯不隨語言改變:同一天中英文的數字完全相同。想看另一種語言的頁面,可加 `--lang en` 或 `--lang zh-TW` 試跑(不改設定檔)。

職能只改跟工作內容有關的部分:① 決策密度門檻、預設高風險主題、額外的不可逆指令、建議裡的舉例;營運・HR 與主管另外不給「對話收到兩個以內」(切換是工作本身)。**休息、切換、判斷品質的門檻不隨職能改**——職能改變的是「什麼是正常」,不是「什麼對大腦是負擔」。各職能預設值見 spec「職能預設」與程式裡的 `ROLE_PRESETS`。想看別的職能會怎麼判讀,可加 `--role 工程` 試跑(不改設定檔)。

## 個人設定(分享給別人時的重點)

- `config.example.json`:範本,進版控,所有個人欄位空白。
- `config.local.json`:使用者自己的設定,不進版控。沒有這個檔也能產生完整頁面。
- 可設定:介面語言(`lang`:zh-TW/en)、職能、高風險主題關鍵字(空白=不啟用這條規則)、不可逆指令清單、時區(預設電腦時區)、時段邊界、疲勞門檻(預設 60 分鐘)、長內容字數、秒回秒數、紀錄路徑、通用資料夾名。
- **不開放設定**:活動段以 10 分鐘切分(對齊 Albulescu 2022,也決定其他所有數字)、6 小時持續控制門檻(Blain 2016)。改了就無法在人與人之間比較。
- Codex 沒裝就跳過。介面支援繁體中文與英文(`lang`)。
- **語言只影響顯示**:JSON 裡的等級、觸發原因、備註、驗證訊號一律維持中文代碼(低/中/高、資訊量爆量…),小時鐘和 `history/` 靠這些代碼運作,不要改成隨語言變動。建議文字(`suggestions` 的 text/why/cite)則是當下語言的版本。
- 新增或修改任何顯示文字時,`scan_today.py` 的 `UI` 表中英兩份都要改;英文建議文字依同樣的語氣規則寫(像同事提醒、帶關懷、不用冒號標語與破折號),不要直譯。

## 頁面結構(固定順序)

1. 一句話總結(含四個階段各自的等級)
2. **此刻**:只在查詢當天、當天還沒結束時出現;超過疲勞門檻時多一句事實「距離上次 10 分鐘以上的休息已經 X 分鐘」
2a. **四階段分級流程**:①→②→③→④ 四個節點依等級上色(低綠、中黃、高橘),節點內有數值、三段刻度(數字對齊實際分界)與門檻依據;點節點跳到該階段
2b. **今天想提醒你的幾件事**:中或高的階段觸發的固定建議,關懷口吻,每條附一句白話機制與論文(見 spec「風險分級與建議」)。全部為低時顯示「今天的節奏還不錯,繼續保持。」
3. **① 決策密度**:對話段數、訊息、你打的字、AI 回的字、token、thinking token;決策事件;一般 vs 高度重要(訊息與動作分開計);早中晚表;每小時訊息量
4. **② 恢復窗口**:節奏帶(實際對話/真的離開/AI 還在跑)+時刻編號;最長沒休息、真正離開次數
5. **③ 認知疲勞跡象**:切換、跳回、同時開著、最密集 15 分鐘、指令長度隨活動段、深夜
6. **④ 判斷品質**:長內容後秒回、高度重要訊息所在對話的驗證行為、錯誤後重試、探索/產出比
7. **每段活動的條件並排**:只描述,明寫單日無法回答「越晚是否越差」
8. (「值得回想的時刻」已依使用者要求移除,2026-09-23)
9. 摺疊:對話明細、方法與限制

每個指標標出適用範圍:**兩者**或**僅 Claude Code**(Codex 紀錄沒有 AI 回覆字數、token、回覆延遲)。沒資料顯示「—」,不顯示 0。

## 一般 vs 高度重要

**高度重要訊息**(符合任一條):資訊量爆量(發這則之前 AI 累積寫的字超過當天第 90 百分位;當天回覆少於 20 次不啟用;僅 CC)、深夜、疲勞情境(所在活動段已連續 ≥ 疲勞門檻)、個人高風險主題(設定檔關鍵字)。
**高度重要動作**(僅 CC,結構訊號):AI 停下來要你決定(AskUserQuestion)、你中止 AI(toolDenialKind 為 user-rejected/cancelled)、不可逆指令(Shell 指令含設定的字串)。
資訊量爆量與前兩種動作很常發生,只計數,不列進時刻清單。

## 研究連結與信心

- 恢復:Albulescu et al. 2022(<10 分鐘休息不足以恢復,信心中高);Blain et al. 2016(約 6 小時持續控制的前額葉代價,借用的實驗室門檻,信心中)
- 切換:Leroy 2009 注意力殘留、Mark et al. 2008(信心中高)。切換以對話為單位;「跳回」=切到今天稍早用過、中途離開的對話
- 審視:Parasuraman & Manzey 2010 自動化自滿(信心中)
- 刻意排除:ego depletion(大型複製失敗)、morning morality effect、90 分鐘超日節律/Pomodoro(非同儕審查)

## 欄位語意陷阱(新增或修改任何欄位前先讀)

這個 skill 踩過的坑全部是「照欄位名字猜意思,沒先拿真實資料驗證」。新增欄位前,先寫探針印出真實值分布再寫進主邏輯。

| 欄位 / 做法 | 以為的意思 | 實際 | 處理 |
|---|---|---|---|
| 每個 `.jsonl` 檔 | 一個 session | 續寫、分叉、`change_directory` 換目錄都會把整段歷史複製成新檔(實測 706/716 事件重疊),一段對話會被當成兩個專案之間的來回切換 | 共享 uuid 的檔案合併為同一段對話,再以 uuid 去重;沒有 uuid 的事件驗證過不會被複製 |
| `origin.kind == "human"` | 使用者打的字 | 「在使用者回合送進來的」,排程任務也標 human | 剝掉 `<tag>…</tag>` 注入內容後有剩文字或附圖才算;system-reminder 會跟真人文字在同一個 block,不能整則用前綴擋 |
| session 開始→結束 | 工作時間 | 視窗開著沒關也算 | 用實際發話時間切活動段 |
| `cwd` 的 basename | 專案 | 家目錄混雜無關工作;`scripts` 對應多個專案;同一對話會換目錄 | 切換以對話為單位;cwd 只當顯示標籤 |
| `queue-operation: enqueue` | AI 還在跑時你插話 | 每則訊息都觸發,enqueue→dequeue 中位數 0.0 秒 | 不採用;只用 `remove`(排了又取消) |
| `isSidechain` | 這段有派 subagent | 只在子代理自己的檔案裡是 True | 數 `tool_use: Agent/Task` |
| `message.usage.effort` | 推理強度 | 不存在,`effort` 在頂層 | 不使用 |
| 最後一則 assistant 的字數 | 你要讀的量 | agentic 回合常以純 tool_use 結束,字數 0 | 累加上次發言後 AI 寫的所有文字 |
| `most_common(N)` | 工具清單 | 低頻工具被截掉 | 存完整 dict |
| Codex 資料夾日期 | 活動日期 | thread 開始的日期 | 掃全部檔案,依事件時間過濾(mtime 下界加速) |
| Codex 的 model 名稱 | 是否為真人對話 | 背景審查與子代理的「user」訊息是機器寫的 | 用 `parent_thread_id` + `source.subagent` 結構排除 |
| `toolDenialKind` | 使用者拒絕 | 還有 permission-rule、automode-*(系統政策) | 只算 `user-rejected`、`cancelled` |
| 跟當天分布比的門檻 | 找出異常 | 相對門檻每天一定會選中固定比例(第 90 百分位=一定有 10%) | 當分類計數,不當成「異常事件」列進時刻 |

## 風險分級與建議

- 四個階段各自分級,**不加總**。門檻在 `risk_levels`(經驗值,可設定,逐階段覆寫);② 另有「超過 6 小時一律為高」、③「有深夜使用至少為中」、④「長內容回覆少於 10 次不分級(樣本不足)」「命中高風險主題的對話沒有驗證至少為中」。
- 建議是**固定文字**(`SUGGESTIONS`),不讓 AI 臨場生成,每天可對照。每條都從一個認知科學機制切入;新增或修改建議前必須檢查:(1) 一個人跟 AI 一來一往的對話中做得到,(2) 不跟其他階段的建議矛盾。曾被否決的例子:「AI 的產出累積一批再看」——對話會停下來等你回,做不到;要做到只能同時開多個對話,又違反 ③。
- 口吻:像同事提醒,先講觀察再給做法;避免冒號標語、破折號、命令句;出處用一句白話加小字論文。

## 刻意不做

跨日比較與基線、單一總分(包括「認知負荷分數」)、判斷決策對不對、情緒推論、關鍵字判斷「修正/返工」、工作品質與深度獨立成軸、AI 臨場生成的建議、主動推播、單日相關係數、引用「決策疲勞/意志力會用完」。原因見 spec 第 6 節。

Files in this skill

  • README.en.md11.6 KB
  • SKILL.md13.5 KB
  • config.example.json2.7 KB
  • pulse-clock/README.md1.5 KB
  • pulse-clock/pulse-clock.pyw18.3 KB
  • references/spec.md19.4 KB
  • scripts/scan_today.py99.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…