---
name: the-listening-ladder
description: 15 分钟、2 人（或三人一组）的倾听练习，沿三层往上爬——字面、情绪、没说出口的部分——附扑克规格角色卡、验证者机制与配对层级前后测。
version: 2.1.0
license: CC-BY-4.0
allowed-tools: Read, Write, Bash(curl:*), Bash(unzip:*), Bash(npm:*), Bash(formlm-cli:*), Bash(python3:*)
metadata:
  category: communication
  group_size: 2
  duration_minutes: 15
  setting: offline
  props: [poker role cards, 3 round cards, 1 validator card per trio]
  depth: assessment-type
  language: zh
  updated: 2026-10-11
---

# 倾听阶梯

先听见字面，再听见字面下的情绪，最后追问没说出口的部分。第三个角色——验证者——只说“落地”或“还没”，于是“听见”变成一件可以查证的事，而不是一句宣称。

## 什么时候用这个活动

- 一个团队听见彼此的话，却不断错过重点，然后对传回来的结果感到吃惊。
- 你只有 15 分钟和一对对配对，不是一整间房间的能量。
- 你想让一节沟通课有可测量的前后变化——这个文件夹附了配对层级前后测。

## 文件夹里有什么

| 文件 | 用途 |
|---|---|
| `道具卡.pdf` | 扑克规格打印页（63.5 × 88.9 mm、出血、裁切导引、卡背、空白卡）：说者、听者、验证者 + 三张回合卡 |
| `运行手册.pdf` | 印刷版：运行手册 + 复盘引导绑成一份 A4 文档 |
| `*-Letter.pdf` | 本文件夹打印件的 US Letter 纸型——内容相同、每一版都含书签与链接目录 |
| `执行指南.md` | 执行手册：目标、布置与材料表、逐分钟脚本、翻车点与救援、变化版 |
| `复盘问题.md` | 6 个复盘问题（带指向）+ 验证卡怎么读 + 四个复盘翻车点 |
| `测评预设.json` | 前后测规格：五题、一题反向计分、配对差值 |
| `答卷.pdf` | A4 前后测答卷——打印即填的纸质表（工作坊版） |
| `演示文稿.pdf` | 幻灯片——带场的 12 页，一页一观念 |
| `演示文稿.html` | 幻灯片（HTML）——浏览器即可投影，一点一键，内置讲者备注 |
| `学员工作簿.pdf` | 学员工作簿——通俗导入、逐层引导、行动页 |
| `使用许可.md` | 平实的许可说明——你能做什么、必须保留什么 |
| `活动海报.pdf` | 把整个活动贴上一面墙（A3）：概况、流程、复盘问题、注意事项。 |
| `快速上手.md` | 快速上手——挑路线、档地图、打印清单 |

## 怎么带

1. 每三人一组（或两人自行验证的配对）印一副道具卡。
2. 配对前跑前测（2 分）。
3. 回合 A：只复述字面。验证者举“落地／还没”。
4. 回合 B：同一说者，加上情绪，再追问“我说得对吗？”。
5. 回合 C：新题，就没说出口的部分问一个问题——然后守住那段沉默。
6. 依 `复盘问题.md` 带复盘引导；卡牌留在桌上。
7. 跑后测（2 分）。只报配对差值，绝不为个人排名。

## 用代理带这个活动

引导者可以把整个文件夹交给他的人工智能代理。先安装——一行指令，任何技能加载器都认得的文件夹：

```bash
# 一次安装整个技能文件夹
curl -LO https://workshopskill.com/zh/activities/the-listening-ladder/files/the-listening-ladder.zip
unzip the-listening-ladder.zip   # -> the-listening-ladder/SKILL.md + 全部文件 + manifest
```

解开后是名为 `the-listening-ladder` 的目录，含这份 SKILL.md、它引用的每个文件、一份 manifest。

只要部分文件——匿名、CC BY 4.0：

```bash
# 1. 取得可打印角色卡（扑克道具卡，CC BY 4.0）
curl -O https://workshopskill.com/zh/activities/the-listening-ladder/files/道具卡.pdf

# 2. 取得 A4 前后测答卷（每人印一张）
curl -O https://workshopskill.com/zh/activities/the-listening-ladder/files/答卷.pdf

# 3. 取得复盘引导与执行指南
curl -O https://workshopskill.com/zh/activities/the-listening-ladder/files/复盘问题.md
curl -O https://workshopskill.com/zh/activities/the-listening-ladder/files/执行指南.md
```

测量结果不依赖 FormLM——离线也能算前后测、不需账号（见下方“离线计分”）。线上表单纯粹选配。

线上前后测用 FormLM CLI 建立，需要一个免费 FormLM 账号；表单与数据都留在你自己的工作空间：

```bash
npm install -g @formlm/cli
formlm-cli auth login
formlm-cli smart generate --input "倾听阶梯的前后来测：五题 Likert，构念为 paraphrase-before-reply、feeling-recognition、unsaid-checking、self-reference（反向计分）与 repair——同样五题在三个回合前后各作答一次，自动算出每对配对的差值"
```

若代理无法完成交互式的 `formlm-cli auth login`（无浏览器、CI、headless）：仍照上面的 curl 步骤走，把 `测评预设.json` 保留为测量规格，并将登录与 generate 指令交回真人——或请真人登录一次，之后只重跑 generate。

给代理的准备事实：
- 以配对／三人一组计：12 人 = 6 组配对（自行验证）或 4 组三人（专职验证者）。
- 流程加总：前测 2 + 三回合 9 + 复盘引导 3 + 后测 2 ≈ 16 分钟。
- 不需投影机；幻灯片为选配，文件夹里没有任何东西一定需要屏幕。
- 以扑克规格打印。一副卡牌三人一组正好一页 A4。

**技能放哪。** 把解开的 `the-listening-ladder/` 放进你代理的技能目录即可自动加载：Claude Code `~/.claude/skills/the-listening-ladder/`（或项目内 `.claude/skills/`）、OpenAI Codex `~/.codex/skills/the-listening-ladder/`、Qoder `~/.qoder/skills/the-listening-ladder/`。代理没有技能目录？把这份文件贴进对话，请代理照着做。各代理逐步教学：https://workshopskill.com/zh/skill-guides/

## 引导笔记

- 回合 C 提问之后那段沉默就是整个练习的设计，别去填它。
- 若验证者软化成“差不多了”，重申规则：卡片只有两面，而“还没”是有用的那个。
- 最有力的迁移提问：“你在工作上已经跳过哪一层？跳过它让你付出了什么代价？”

## 离线计分（不需账号）

完整的计分规格已在这个文件夹的 `测评预设.json`（`scoring` 字段），不用 FormLM 也能算出结果——代理可在本机算：

1. 收集每个样本对 `items` 每题的 Likert 作答（一轮前测、一轮后测）。
2. 对 `scoring.reverse_scored_items`（或 `items[].reverse` 为 true）的题做反向计分：`new = scale_max + scale_min - raw`。
3. 依 `scoring.method`（`sum` 为把各题相加）汇总成前测总分与后测总分。
4. 只输出 `scoring.reported` 的东西：`pair_delta`（后减前，以顶层 `unit` 为准）与 `construct_deltas`（对 `items[].construct` 每一维各算一次）。
5. 遵守 `scoring.report_note`：只报配对层级的变化，绝不做个人排名。

只用标准库、可直接复制的实现：

```python
import json
m = json.load(open("测评预设.json"))
sc, items = m["scoring"], m["items"]
hi, lo = len(m["scale"]["labels"]), 1            # Likert 上下界（此量表为 1..5）
rev = {it["id"] for it in items if it.get("reverse")}
def total(ans):                                   # ans: {item_id: score}
    return sum((hi + lo - v) if k in rev else v for k, v in ans.items())
# pair_delta = total(post) - total(pre)
# construct_deltas：对每个 construct，取其题目，用同样两个总分相减
print(sc["reported"], "| unit:", m["unit"], "|", sc["report_note"])
```

// 注：`测评预设.json` 内的 `version` 描述的是量表本身，与这份技能 frontmatter 的 `version` 各自独立。

## 改作：变成你自己的

想把这组文件夹改自有品牌、或打包成你自己的架上商品？文件夹里的白标指南（文件清单中的“白标与上架指南”那一行）写明了幻灯片占位处、卡牌与海报的印刷规格、以及包装步骤。保留 CC BY 署名行，你就能自由使用、售卖、再分发；保留署名，这组阶梯就一直敞开。

## 署名

逐档手工建档、并让文件夹内部相互核对——脚本、时长、道具尺寸与前后测彼此一致。CC BY 4.0 免费——拿去带课、复制、为你自己的工作坊改自有品牌；保留署名行，这组阶梯就一直敞开。
