# Ljg Blind

盲区扫描, , 读昨天你与 AI...

- Repository: https://github.com/lijigang/ljg-skills (7607 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add lijigang/ljg-skills --skill ljg-blind -g -a claude-code -y`
Codex: `npx skills add lijigang/ljg-skills --skill ljg-blind -g -a codex -y`
Cursor: `npx skills add lijigang/ljg-skills --skill ljg-blind -g -a cursor -y`
Gemini CLI: `npx skills add lijigang/ljg-skills --skill ljg-blind -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add lijigang/ljg-skills`

## Description

盲区扫描, , 读昨天你与 AI 的全部对话，照出暴露的思维盲区（不是不懂的知识，是让某类真相一直看不见的思维习惯），再从微信读书挑一本书的一章精准补上，落成一篇完整分析笔记。Use when user says '扫盲区', '盲区', '照盲区', '看看我的思维盲区', '我昨天想漏了什么', 'blind spot', 'ljg-blind', '/ljg-blind', or wants yesterday's AI conversations analyzed for cognitive blind spots plus a targeted weread chapter to fill them. 可选参数：传一个日期(YYYY-MM-DD)扫那天而非昨天。NOT FOR 纵向深钻一个观点（用 ljg-think）、一个领域降秩（用 ljg-rank）、陪读一篇文本（用 ljg-read）、找一个领域的约束（用 ljg-constraint）。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 盲区扫描

读你昨天跟 AI 的全部对话，照出那个你自己看不见的思维盲区，从微信读书点亮补它的一章。

## 盲区是什么

盲区不是知识缺口。不是"没读过某本书""不知道某个事实", , 那种缺口，查一下就补上了。

盲区是一种结构性的思维习惯，它让某一类真相对你**系统性地不可见**。你不是想不到，是这个习惯让你压根没往那个方向看。它藏在你怎么想事情的方式里，不藏在你想的内容里。

所以证据不在"他说错了什么"。在, , 他没往哪看，他在哪绕了，他默认了什么却从没检。

## 五种盲区信号

从昨天的对话里找这五种。每一种都要落到具体的话上，不能凭感觉。

1. **绕开点**, , 一个难题他打开了，又飞快合上。证据：问题抛出，转头换话题，或一句"这个先不管"滑过去。
2. **空转框架**, , 反复换视角切同一个问题，没有一个落地。证据：一个问题被套上三四副框架，每副都浅尝辄止，最后没结论。
3. **单一取景框**, , 一整天只调用一两副 f（逢事就"约束""进化""博弈"），没试过别的镜子。这是他最隐蔽的盲区：越趁手的 f，越挡住别的 f 能照见的东西。（继刚看世界 = f(x)，四轴是他默认的四副 f；正因为默认，才最该查他今天是不是又只用了其中一副。）
4. **未检前提**, , 一个默认假设贯穿全程，他当硬约束在用，从没问过它是不是假墙。证据：某个"本来就该这样"的说法，反复出现却从未被他自己质疑。
5. **相邻空缺**, , 从他问的东西反推，本该问、却没问的那个角落。不是凭空猜，是他自己的线索指向那儿。

## 选哪一个

从信号里挑 **1 个**作为今天的盲区。宁可一个说透，不要五个都点一遍, , 盲区的密度低于精度。判据三条：

- **杠杆**, , 补上它，下一步打开的可能性最多。
- **真盲**, , 是他自己看不见的，不是知道了在拖的。
- **对位 mission**, , 贴 M0（找新取景框）/ M1（求本质）。盲区若正好挡在他的主线上，优先。读 `${LIFEOS_DIR:-$HOME/.codex/LIFEOS}/USER/TELOS/PRINCIPAL_TELOS.md` 确认主线。

---

## 操作步骤

### 第一步 · 定日期

```bash
# 默认昨天；用户传了 YYYY-MM-DD 就用那天（macOS BSD date）
target=${1:-$(date -v-1d +%Y-%m-%d)}
```

### 第二步 · 捞当天的对话

会话文件在 `$HOME/.codex/sessions/YYYY/MM/DD/*.jsonl`。目录日期按本机时间记录 session 的开始日，行内 `timestamp` 是 UTC；因此同时扫目标日与前一日目录，再按本机日期过滤消息。只读取顶层 task 的 `response_item / message / user / input_text`，排除 `session_meta.payload.source.subagent` 存在的子 agent 会话，以及 harness 包装和本次调用自身：

```bash
target=<上一步的日期>
out=/tmp/ljg-blind-${target}.txt
: > "$out"
previous_dir=$(date -j -v-1d -f '%Y-%m-%d' "$target" '+%Y/%m/%d')
target_dir=$(date -j -f '%Y-%m-%d' "$target" '+%Y/%m/%d')

for day_dir in "$previous_dir" "$target_dir"; do
  session_dir="$HOME/.codex/sessions/$day_dir"
  [ -d "$session_dir" ] || continue
  find "$session_dir" -type f -name '*.jsonl' -print0
done | while IFS= read -r -d '' session_file; do
  # Codex 将子 agent 与顶层 task 放在同一日期目录；从 session_meta 排除它们。
  if jq -e 'select(.type=="session_meta") |
      (.payload.source | type == "object" and has("subagent"))' \
      "$session_file" >/dev/null 2>&1; then
    continue
  fi

The rest: https://github.com/lijigang/ljg-skills/blob/HEAD/skills/ljg-blind/SKILL.md
