基础工具与工作流 · mattpocock/skills

to-questionnaire

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

L2 本地 · 限定工作目录V1 已固定读写文件Dual-pass Audit
Author mattpocockGitHub mattpocock/skills ↗Stars 253948License MITCommit 3cca18b368
管控等级描述 skill 的能力与建议配套的管控措施,不代表质量或安全认证,也不表示可用或不可用。是否使用由用户和管理者决定。不同 agent 宿主对权限的约束各不相同,请勿假定宿主一定会提供安全兜底。第三方 skill 版权归原作者,使用风险由使用者自行承担。

1实现原理 · 为什么它能做到

纯 prompt 编排:无任何可执行代码/脚本,能力全部由 SKILL.md 中的指令文本驱动(三步流程 + 内嵌模板)。

/var/ytdown/skills-portal/spy-repos/mattpocock/skills/productivity/to-questionnaire/SKILL.md
Turn something the user can't answer alone into a **questionnaire**: a Markdown document they hand to one person to fill in async, or fill out together over a meeting. The recipient holds knowledge the user lacks; the questionnaire pulls it out of them.
整目录仅 SKILL.md(2904B) + agents/openai.yaml(166B,纯声明);所谓『功能』= 模型按步骤 1→2→3 执行的对话编排,无 CLI/API/网络参与。

关键机制『Grill the send, not the subject』:把访谈限定在用户必然可答的两维(发给谁/要什么回报),知识缺口由生成的问卷去撬,而不是让模型在用户不懂的领域空转提问。

/var/ytdown/skills-portal/spy-repos/mattpocock/skills/productivity/to-questionnaire/SKILL.md
**Grill the send, not the subject.** Interview the user only about the _send_, which they can always answer: who it goes to, and what they need back. The questions in the document then target the **gap** between what the recipient knows and what the user needs.
这是本 skill 成立的根因:LLM 无法知道『接收者掌握什么』,但用户总能说清 send 两端;文档问题对准 gap,把知识抽取从实时对话移交到异步填写。

单次交换纪律 + 显式 Done 条件约束流程推进,防止无限追问或产出半成品。

/var/ytdown/skills-portal/spy-repos/mattpocock/skills/productivity/to-questionnaire/SKILL.md
1. **Who is it going to?** Ask, in one exchange, the recipient's role, expertise, and relationship to the user. This fixes the questionnaire's tone and how much context it must carry. Done when you know who the recipient is and what they know that the user doesn't.
每步限定 one exchange 并给出可自检的完成判据(步骤 2『Done when you have a concrete list…』、步骤 3『Done when the file exists and every item the user named in step 2 is covered』)。

内嵌固定问卷模板 + 结构规则决定产出形态:一份异步可填、按主题分组、最优先问题在前的 Markdown 文档。

/var/ytdown/skills-portal/spy-repos/mattpocock/skills/productivity/to-questionnaire/SKILL.md
Frame the document as a **discovery questionnaire**: the user lacks context, the recipient holds it. Order questions most-important-first, since async means you may only get one pass, and group them under `##` headings by theme once there are more than a handful.
模板以 `<questionnaire-template>`…`</questionnaire-template>` 标签内嵌(L22–50),含 Purpose/From-To-How used/Context/How to answer/主题区/Anything else 兜底。

唯一的外部副作用是交付动作:在当前目录写 `to-questionnaire-<slug>.md` 文件并回报路径。

/var/ytdown/skills-portal/spy-repos/mattpocock/skills/productivity/to-questionnaire/SKILL.md
Write it to `to-questionnaire-<slug>.md` in the current directory (slug from the topic) and report the path.
文件由宿主 agent 的写文件能力落盘,skill 自身无写文件代码;slug 由模型根据主题生成,无路径白名单校验。

双宿主双重禁用隐式调用:仅用户显式触发(Claude 与 OpenAI/Codex 侧各设一道开关)。

/var/ytdown/skills-portal/spy-repos/mattpocock/skills/productivity/to-questionnaire/SKILL.md
disable-model-invocation: true
SKILL.md frontmatter 关 Claude 侧;agents/openai.yaml `policy.allow_implicit_invocation: false` 关 OpenAI/Codex 侧——两套机制同一目的,与 productivity/README『User-invoked』组策略一致。

2核心能力

01单轮提炼接收者画像(角色/专长/与用户关系)以校准语气与上下文量
02单轮锁定用户需要回传的具体决策/事实清单
03针对知识 gap 生成发现型(discovery)问卷问题
04问卷以文件形式交付到当前目录并回报路径
05强制结构:Purpose + From/To/How answers used + Context + How to answer + 主题分组 + 兜底
06提问质量纪律:一问一意、下方附答案 stub、仅必要时加 _why this matters_ 防误读
07显式完成判定:文件存在且步骤 2 所列每项都被问题覆盖

4管控建议与判定依据

建议配套管控措施
面向 Agent
限定工作目录
面向管理者
保留操作记录
判定依据(文件路径与关键语句摘要)
  • 本地工作目录: 文件读写与工件输出: to-questionnaire-<slug>.md(写入当前目录;文件名 slug 由模型从主题推断,存在覆盖同名历史文件的可能)
审计说明: 。纯 prompt 编排、零脚本/零网络外发/零凭证读取/零第三方依赖,无任何可执行面;唯一行为是按指令在当前目录写一个 Markdown 文件(属『仅本地读写』,符合蓝色档特征)。注意点:同名文件可被覆盖、内容无独立校验——均非恶意面。

5第二遍独立确认

  • [ok] official_desc 与 frontmatter description 一致 — SKILL.md L3 原文逐字一致
  • [ok] 三步工作流(步骤 1/2/3 原文存在) — L12/L14/L16 逐一确认,步骤 3 含写文件指令与 Done 条件
  • [ok] 『Grill the send, not the subject』引文 — L9 原文一致,粗体标记确认
  • [ok] 写文件指令 to-questionnaire-<slug>.md 在当前目录 — L16 原文含此路径模板
  • [ok] 模板结构(Purpose/From-To-How/Context/How to answer/主题/Anything else) — L22–50 `<questionnaire-template>` 块内逐节确认
  • [ok] 提问纪律(一问一意/answer stub/why this matters) — L40 原文确认
  • [ok] openai.yaml allow_implicit_invocation: false — yaml L4–5 确认;与 SKILL.md L4 disable-model-invocation 双锁成立
  • [ok] 无脚本/无隐藏文件(目录仅 2 文件) — find + git ls-tree -r 全树核对,to-questionnaire/ 下仅 SKILL.md 与 agents/openai.yaml

6结论

  • 零依赖零执行面:整个 skill 只有 3KB 指令文本 + 一个 166B 声明 yaml,行为完全静态可预期
  • 『只拷问 send』的结构化防空转设计:模型访谈收敛到用户必能回答的两问,再由文档挖 gap
  • 输出纪律强、专为异步单次回传设计:most-important-first + 一问一意 + 答案 stub + deadline/effort + 允许『I don't know』
  • 显式完成条件防半成品:文件存在且步骤 2 每项均有对应问题才算 Done
  • 双宿主统一 user-invoked 策略,不被模型误触发
  • 适合: 适合『自己能说清发给谁、要什么回报』、需要从某一个专家/同事/客户/上级异步榨取决策或事实的用户;一次会话产出可转交的 Markdown,把会议/闲聊变成结构化异步问卷;可与 grill-me/grilling 先对话想清楚再落成问卷。
    不适合: 接收者为多人或匿名人群(模板假定单人 + 需大量上下文铺垫);需要模型自带领域知识判断答案真伪的场合;无需落盘、对话内即可结论的场景;对象无法文字自答(需演示/手把手)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-06
    Option A · Direct DownloadDownload to-questionnaire.tar.gz
    sha256: fa2c2235ececc45d…
    Option B · Copy Guide for Agent
    install.json
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 3cca18b368.