关于 setup-my-iq
setup-my-iq 是用于创建和维护个人上下文档案的 Agent 技能,通过结构化 Markdown 文件记录个人信息与工作方式,并引导访谈、续接未完成设置或更新内容。
主要功能
- 01查找已引用的上下文文件
- 02逐个文件开展访谈
- 03创建结构化 Markdown 档案
- 04续接未完成的设置
- 05补全缺漏并更新现有内容
适用场景
- 01创建初始个人上下文档案
- 02继续补齐缺失文件的设置
- 03填写现有档案中的占位字段
- 04在角色或团队变化后更新上下文
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill setup-my-iq安装后在 Claude Code 中输入/setup-my-iq确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/templates/AGENTS.mdcommunication-style.mdidentity.mdpreferences-and-constraints.mdrole-and-responsibilities.mdteam.mdtools-systems-and-config.md详细介绍
设置 My IQ:创建和更新上下文组合
创建并维护个人上下文组合:一组结构化的 markdown
文件,描述你是谁、你如何工作以及什么对你重要。这些文件
可以位于磁盘上的任何位置(OneDrive 文件夹、git 仓库、本地目录等)。
将它们与 Agent 关联起来的是用户某个自定义指令
文件(AGENTS.md、copilot-instructions.md、CLAUDE.md 或宿主加载到
会话中的任何 *.instructions.md)中的一个指针。
此技能的工作方式
被调用时,确定当前状态并采取正确的操作。
发现现有上下文
在会话中扫描对此技能所创建文件的引用。宿主已经
将所有相关的自定义指令文件合并到会话中:
AGENTS.md(工作区或用户范围)、copilot-instructions.md、
CLAUDE.md、任何 *.instructions.md 文件以及类似的宿主特定等价文件。
指针来自哪个文件并不重要,只需查找文件名:
identity.mdrole-and-responsibilities.mdteam.mdtools-systems-and-config.mdcommunication-style.mdpreferences-and-constraints.md
对于每个文件,在已加载的指令文本中的任意位置查找一个 @<absolute-path>(或等价的路径引用)。那就是该文件的位置。不要依赖路径旁边的标签
或变量名:用户可能以不同方式命名指针
(identityProfile、me、who-i-am 等)。根据路径末尾的
文件名进行匹配。
对于每个文件名,分类为:
- 未引用 — 会话中未加载指向此文件名的路径。
- 已引用,文件缺失 — 加载了路径,但磁盘上文件不存在。
- 存在 — 加载了路径且文件存在。读取它以检查占位符。
如果这六个文件名处于混合状态,按此优先级顺序处理: 首先通过访谈创建任何未引用的文件,然后填充已引用、 文件缺失的条目,最后修复存在文件中不完整的字段。在开始前 向用户总结合并后的状态,以便他们知道会发生什么。
具体示例。假设 identity.md 和 team.md 存在且
完整,tools-systems-and-config.md 存在但在 ADO 部分有 TODO 占位符,
role-and-responsibilities.md 和 communication-style.md
已引用但磁盘上文件不存在,并且
preferences-and-constraints.md 未引用。技能应告诉
用户:“你的 identity 和 team 已完成。Tools-config 有缺口。Role 和
communication-style 已引用但缺失。Preferences 完全未设置。
我会先访谈你了解 preferences,然后创建 role 和
communication-style,再填充 tools-config 中的缺口。可以吗?”
1. 未引用任何上下文文件
已加载的指令中没有任何地方出现预期的文件名。 将其视为首次设置。运行下面的首次设置。
2. 某些文件已引用但在磁盘上缺失
用户之前开始了设置但没有完成,或者路径存在但 背后没有文件。从他们中断的地方继续:
- 列出哪些文件存在、哪些缺失。
- 告诉用户:“你有 {existing files}。仍需要:{missing files}。想 从你中断的地方继续吗?”
- 在选择下一个要访谈的文件时,发现现有上下文中的优先级顺序 仍然适用。在并列时,使用此 默认顺序:identity -> role -> team -> tools -> communication-style -> preferences-and-constraints。
3. 文件存在但字段不完整
文件存在,但其中一些包含未填充的占位值。填补空缺:
- 扫描所有被引用的文件,查找以下任一不完整字段模式:
- `` — 显式占位符
- 形式为
的 HTML 注释被用作替代值 (例如、、) - 任何唯一内容为 HTML 注释的表格单元格或字段
- 列出这些空缺:"我在 {files} 中发现了不完整的字段。要填充它们吗?"
- 针对每个空缺,提出该字段对应的具体问题(而不是完整的访谈)。
- 根据用户的回答就地更新文件。
4. 文件完整,用户想要更新
用户要求更改某些内容,或顺带提到了上下文变化 (例如,"我的经理换了"、"我们招了新人"、"我调到了 另一个团队")。定向更新:
- 如果用户在另一项任务过程中顺带提到了该变化,可提议:"听起来你的 {file} 可能需要更新。要我现在修改吗?"
- 如果用户明确要求,直接进行。
- 从 发现现有上下文 中解析出的路径读取文件。
- 进行编辑并与用户确认。
5. 文件完整,用户想要完全刷新
用户希望从头重做某个文件。针对该特定文件,按照与首次设置相同的步骤重新进行访谈。
首次设置
本技能中所有 assets/... 路径均相对于此 SKILL.md
所在目录。使用你的文件读取工具从这些
路径加载捆绑的模板。如果由于某种原因某个模板无法读取,请回退到本文件底部
示例演练中所示的字段结构。
1. 选择上下文目录
询问:"你的上下文文件应该放在哪里?任何持久化位置都可以:同步的 云文件夹(OneDrive、Dropbox、iCloud)、本地目录或 git 仓库。只要 选一个你以后能找到的路径即可。"
- 如果目录不存在,则创建它。
- 保存该路径以供后续步骤使用。
- 在 macOS 或 Linux 上,建议使用
~/my-iq-context或~/OneDrive/my-iq-context作为 默认值。在本技能后续生成的任何路径中,将%USERPROFILE%替换为$HOME。
2. 开始访谈
介绍此流程:
"我将对你进行访谈,并生成你的个人上下文档案:一组 代表你是谁、你如何工作以及什么对你重要的 markdown 文件。任何 AI 技能、Agent 或插件都可以读取这些文件,并立即 理解它正在处理什么。
我们会一次处理一个文件。我会向你提问、起草文件,然后 请你说出我哪里做错了。你现在可以跳过任何不想处理的文件。准备好 开始了吗?"
3. 从可用数据源预填事实类字段
在提出任何访谈问题之前,这一步都是强制性的。 不要跳过,即使你预计它不会返回任何内容。
在向用户提出任何问题之前,先尝试从你的环境中提供的任何已连接数据源收集事实数据。用户不应被迫手动输入已连接系统已知的信息。
每个文件需要查找的内容:
| 文件 | 要预填的事实类字段 |
|---|---|
identity.md | 姓名、角色/职位、组织、团队、经理 |
role-and-responsibilities.md | 支持的团队、节奏(来自日历)、汇报关系 |
team.md | 直属下属、频繁协作者、组织架构数据 |
tools-systems-and-config.md | ADO 组织/项目/团队/区域路径、仓库、正在使用的工具 |
communication-style.md | 来自邮件/文档的写作样本(先征得许可) |
preferences-and-constraints.md | 无需预填(这些是主观边界) |
如何执行:
- 检查你的环境中可用的数据源(工作资料、目录、日历、ADO、邮件等)。只使用已获授权的数据源。
- 针对你即将访谈的文件,查询这些数据源以获取相关的事实类字段。
- 以提案形式呈现查找结果:“我从你的工作资料中提取了一些信息。以下是我找到的内容——请在我们继续之前确认或更正。”
- 将每个值标记为自动填充,让用户知道哪些来自系统,哪些是你要求他们提供的。
- 只有在预填提案得到确认后(或者如果没有可用数据源),才继续提出剩余问题。
如果没有可用数据源: 明确说明(“我在这个环境中无法访问工作资料或目录,所以我会直接询问你”),然后继续访谈问题。不要默默跳过这一步。
请参阅访谈规则下 在提问前从可用数据源预填 部分中的完整规则和约束。
4. 对 identity.md 进行访谈
从此技能包中的 assets/templates/identity.md 加载模板以了解文件结构。
首先:应用第 3 步(预填)。 查询可用数据源以获取姓名、角色、组织、团队和经理。呈现任何查找结果以供确认。然后针对预填未覆盖的字段,继续下面的问题。
要提出的开放式问题(这些始终需要用户回答):
- 如果你必须在晚宴上向某人解释你实际做什么,你会怎么说?
- 人们找你通常是为了什么?
仅在预填未覆盖时才提出的事实类问题:
- 你的姓名和当前角色是什么?
- 你所在的机构或公司是什么?
- 你在哪个团队?
- 你的经理是谁?
一旦你有足够的内容起草(不要超过这一点继续提问),就起草文件。通过反馈环节呈现(见下面的访谈规则)。修改后,写入上下文目录。
过渡:“identity 完成了。接下来是 role-and-responsibilities,它会记录你每周实际的工作情况。准备好了吗?”
5. 针对 role-and-responsibilities.md 的访谈
从 assets/templates/role-and-responsibilities.md 加载模板。
首先:应用第 3 步(预填充)。 查询可用来源,了解所支持的团队、 周期性日历节奏以及汇报关系。在提问之前,先呈现任何发现以供确认。
关键问题:
- 带我了解一下你典型的一周。有哪些周期性事项?
- 你支持哪些团队或小组?
- 对于每个团队:你负责什么?你运行哪些节奏?
- 你经常做哪些决策?不是重大战略决策,而是日常决策。
- 你产出什么?报告、邮件、仪表盘?
- 你向谁汇报?
- 是否有影响你工作的月度或季度节奏?
一旦你有足够内容可以起草,就起草。按团队组织:每个团队都有自己的 部分,包含职责、节奏和交付物。呈现、修订、写入。
过渡:“role-and-responsibilities 完成了。接下来是 team,涵盖你工作 生活中的关键人物。准备好了吗?”
6. 针对 team.md 的访谈
从 assets/templates/team.md 加载模板。
首先:应用第 3 步(预填充)。 查询可用来源,了解直接下属、 组织架构图、频繁协作者(来自日历/聊天)。在提问之前,先呈现任何 发现以供确认。
关键方法:
- 与你互动最多的人是谁?从你自己的团队开始。
- 询问团队名册(用户可能会粘贴邮件列表)
- 对于每个团队,确定负责人和层级
- 对于关键人物:他们需要你提供什么,你需要他们提供什么?
- 在已知的情况下,记录每个人的关注领域或支柱
- 记录互动模式(1:1、站会、同步会)
- 是否有任何关于与特定人物合作或准备与他们会面的信息,是 Agent 应该知道的?
使用早期文件中的信息。如果他们在角色访谈中提到了协作者,请在此处 引用,而不是重新询问。起草、呈现、修订、写入。
过渡:“team 完成了。最后一项:工具、系统和配置。我们在这里记录 一切是如何设置的。准备好了吗?”
7. 针对 tools-systems-and-config.md 的访谈
从 assets/templates/tools-systems-and-config.md 加载模板。
首先:应用第 3 步(预填充)。 查询可用来源,了解 ADO 组织/项目/团队/区域路径、仓库和工具配置。在提问之前,先呈现任何 发现以供确认。
关键问题:
- 你每天使用哪些工具和平台?
- 你如何组织会议笔记?它们存放在哪里?
- 哪些标签或模式会按类型和团队对你的会议进行分类?
然后,针对用户支持的每个工作流/团队(使用 role-and-responsibilities 访谈中的信息):
如果用户支持超过三个工作流,先询问他们是想现在配置所有工作流, 还是从最重要的一个或两个开始,稍后再添加其余工作流。对于相似的 工作流,询问是否适用相同配置,并且只针对差异进行访谈。
- 这个工作流使用 Azure DevOps 吗?如果是:什么组织、项目、团队、 区域路径?如果否,跳过此工作流的 ADO 部分。
- (仅限 ADO 工作流)是否有要从冲刺评分卡中排除的工作项标题模式? (例如,估算或评审占位项)
- 这个工作流的战略支柱或部分是什么?这些会用作每周更新和冲刺报告 中的分组标题。即使该工作流不使用 ADO,也要定义它们。
- 对于 ADO 工作流:哪些 ADO Epic 映射到每个支柱?
- 冲刺更新保存在哪里?文件前缀是什么?
- 每周更新保存在哪里?文件前缀是什么?
- 这个工作流是否有路线图文件?
组织方式为:通用设置放在顶部,工作流特定配置放在下面的部分中。 起草、呈现、修订、写入。
过渡:“工具和配置完成了。接下来是沟通风格,这样任何代你写作的 Agent 都能听起来像你。准备好了吗?”
8. 针对 communication-style.md 的访谈
从 assets/templates/communication-style.md 加载模板。
这一节比其他几节更难。人们往往用一些陈词滥调来描述自己的表达风格。两条更有效的路径:询问负面偏好,以及提出分析真实写作样本。两条都用上。
先提出样本路径:
“想分享几段你真实写作的样本吗?粘贴 2 到 5 段你发过的东西:每周状态更新、给领导层的邮件、Loop 更新、一条评审记录、一条你引以为豪的 Teams 消息。我会读一遍,提取我看到的表达风格特征,并提出应该写入你文件的内容。任何内容写入之前都由你确认。我不会复制原始内容,只提取风格模式。”
如果用户分享了样本:
- 只从风格角度阅读每个样本:语域、句子长度、开头方式、过渡方式、使用或避免的特定词汇、框架模式、如何处理功劳、如何处理坏消息。
- 不要把样本原文复制到文件中。提取模式,并按照文件的结构以建议条目(bullets)的形式回呈现。
- 呈现建议草稿:“这是我提取出来的内容。告诉我哪里不对或缺少什么。”
- 照常进行反馈环节(reaction pass)。
如果用户没有分享样本(或者在样本之外额外进行),逐个提出以下问题:
- “如果一位同事用一句话描述你的写作方式,他们会怎么说?”
- “读一下这句话:‘我鼓励你抓住这个机会,成为团队中真正的力量倍增器。’ 对你自己的风格来说,这句话哪里不对?”(比正向问题更快地暴露出避用清单。)
- “当你给领导层写每周状态时,你希望自己能自动化哪些部分,又有哪些部分你总是最后还得重写?”
- “谁是你最难写作面对的对象?面对他们时,你的写法会有什么变化?”
- “当你在 Connect 或绩效评审中写关于自己的内容时,有没有哪句话你写出来后又立刻删掉了?”
起草、呈现、修改、写入。
写完后,告诉用户:
“我不会随着时间自动捕捉到你的模式。如果你发现我重复犯某个错误、替换了措辞,或者跟你的修改对着干,让我更新这个文件,我会把修正内容合并进去。这个文件只在你要求时才演进。”
过渡:“最后一个:偏好与约束。这是关于你希望 AI 如何在你身边行事。准备好了吗?”
9. 针对 preferences-and-constraints.md 的访谈
从 assets/templates/preferences-and-constraints.md 加载模板。
这里的多数规则都是关于 Agent 不应单方面做什么。通过回忆具体的挫败经历来引出这些规则,而不是询问抽象规则。逐个提问:
- “上一次 AI 工具做了你不想让它做的事是什么时候?它做了什么,本该做的是什么?”(一个回答常常能产出 3 条边界规则。)
- “什么对 Agent 来说是不用问你就可以安全去做的?什么绝对需要你批准?”
- “速度还是彻底性。如果必须选一个,你选哪个?”
- “有没有一些决定你希望 AI 替你来做,还是你总是希望把选项呈现出来?”
- “哪些场合你不希望 AI 代表你发言?”(Teams、邮件、会议、公开聊天。)
- “你用过任何带持久记忆的工具吗(VS Code 会话记忆、Agent 记忆功能等)?如果有,有没有什么内容你希望存储在那里,或者明确不希望存储在那里?”如果回答是没有,就跳过记忆部分。
起草、呈现、修改、写入。进行反馈环节。
过渡:“访谈到此结束。现在我会把这些文件接入你的自定义指令,这样每个 Agent 都能找到它们。”
10. 把这些文件接入自定义指令文件
向用户的自定义指令文件之一添加指针条目,以便其他技能和 Agent 能找到这些新文件。建议使用用户作用域,而不是工作区作用域。 这些上下文的全部意义就在于它随处可用,而不是绑定到某一个仓库。 快速对照:10a 检测 harness,10b 选择目标文件,10c(仅在存在多个 harness 时)提议将它们符号链接到一个规范文件,10d 使用内置模板写入指针。
在 macOS 或 Linux 上,下面的每条命令和路径都有对应的 POSIX 等价形式。将每条路径中的 %USERPROFILE% 替换为 $HOME,使用 ln -s <canonical-target> <harness-file> 代替 New-Item -ItemType SymbolicLink,并完全跳过开发者模式检查(在 macOS 或 Linux 上符号链接不需要提权)。
步骤 10a. 检测用户使用哪些 harness。 检查以下用户范围路径中是否存在任意一个(使用文件系统;无需先询问):
| Harness | 用户范围自定义指令路径 |
|---|---|
| VS Code Copilot Chat / Claude Code | %USERPROFILE%\.claude\CLAUDE.md |
| GitHub Copilot CLI | %USERPROFILE%\.copilot\copilot-instructions.md |
VS Code Copilot Chat 不会原生读取 %USERPROFILE%\.agents\AGENTS.md,但它会读取 %USERPROFILE%\.claude\CLAUDE.md,这与 Claude Code 使用的是同一个文件。因此 .claude\CLAUDE.md 是这两个 harness 共享的用户范围文件。
如果 %USERPROFILE%\.agents\AGENTS.md 存在,则将其视为规范目标。在某些配置中,上述 harness 专属文件会符号链接到它,因此一次写入即可流向每个已接线的 harness。
步骤 10b. 选择目标。 应用第一条匹配的规则:
- 如果
%USERPROFILE%\.agents\AGENTS.md存在,则默认为它。harness 专属文件是指向它的符号链接,因此一次写入即可流向每个已接线的 harness。写入前先与用户确认。 - 否则,如果恰好只有一个 harness 专属文件存在,则提议写入它。先确认。同时提及步骤 10c 中的规范文件加符号链接方案。
- 否则,如果两个 harness 专属文件都存在(
copilot-instructions.md和CLAUDE.md),则列出它们并询问要更新哪一个。强烈建议创建.agents\AGENTS.md作为规范文件,并将其他文件符号链接到它,这样一次编辑就能触达所有 harness(步骤 10c)。 - 否则(任何位置都不存在用户范围自定义指令文件),询问:“你最常使用哪个 AI harness:VS Code Copilot Chat、Claude Code、GitHub Copilot CLI,还是其他?”然后创建匹配的用户范围文件(前两个对应
.claude\CLAUDE.md,Copilot CLI 对应.copilot\copilot-instructions.md),并包含一个## Personal Context部分。
如果用户明确要求改用工作区范围,则写入 <workspace>\AGENTS.md,并告诉他们权衡利弊:它仅适用于该仓库。
步骤 10c. 提议将其他 harness 符号链接到规范文件。 仅在用户拥有(或想要)多个 harness 时相关。询问:“要我让 %USERPROFILE%\.agents\AGENTS.md 成为规范文件,并将你的其他 harness 文件符号链接到它吗?这样你只需编辑一次,每个 harness 都能看到更改。”
如果同意,对于用户想要链接的每个其他 harness 文件:
-
前提条件。 Windows 上的文件符号链接需要启用开发者模式或使用提权的 PowerShell。使用以下命令检查开发者模式:
Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock' AllowDevelopmentWithoutDevLicense -ErrorAction SilentlyContinue如果开发者模式已开启,则返回
1。如果未开启,向用户提供两个选项,让他们选择:-
选项 A:启用开发者模式(一次性,无需重启)。设置 -> 隐私和安全性 -> 开发者选项 -> 打开开发者模式。或者在提权的 PowerShell 中运行以下命令:
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock' -Name AllowDevelopmentWithoutDevLicense -Value 1 -PropertyType DWord -Force -
选项 B:自己在一个提权的 PowerShell 中运行符号链接命令。 将确切的命令(填入真实路径)交给他们,并让他们在以管理员身份打开的 PowerShell 窗口中运行它。然后在他们确认成功后继续:
New-Item -ItemType SymbolicLink -Path '<harness-file>' -Target "$env:USERPROFILE\.agents\AGENTS.md"
在未开启 Dev Mode 或未确认用户已运行提权命令之前,不要继续。
-
-
备份现有文件到
<file>.bak-<yyyyMMddHHmmss>,确保不丢失任何内容。绝不要删除。 -
创建符号链接,指向
%USERPROFILE%\.agents\AGENTS.md(如果用户已在选项 B 下自行运行过,则跳过):New-Item -ItemType SymbolicLink -Path '<harness-file>' -Target "$env:USERPROFILE\.agents\AGENTS.md"
上述内联符号链接步骤足以完成上下文接入。
如果用户拒绝使用符号链接,则继续按各个 harness 分别写入,然后继续下一步。不要重复推动。
步骤 10d. 写入指针。 使用位于
assets/templates/AGENTS.md(相对于本 SKILL.md)的捆绑 AGENTS.md 模板,作为 ## Personal Context 块结构(标题、条目标签、路由表、规则)的事实来源。不要重新发明格式。
行为:
- 如果目标文件在磁盘上尚不存在,则创建它。创建任何缺失的父目录(例如
%USERPROFILE%\.copilot\或%USERPROFILE%\.claude\),将整个捆绑模板复制到目标路径,把<CONTEXT_DIR>替换为步骤 1 中所选上下文目录的绝对路径,然后写入。 - 如果目标文件存在但没有
## Personal Context部分,则将该部分追加到文件末尾(如果模板中的## Safety部分也缺失,则一并添加),并将<CONTEXT_DIR>替换。不要改动其上方的现有内容。 - 如果
## Personal Context部分已存在,则只添加或更新发生变化的特定条目。不要重写整个部分。保留现有标签和顺序;只替换@<path>行。 - 只接入磁盘上实际存在的文件。不要为用户跳过的文件添加
@<path>指针。
11. 确认并总结
“这就是你的上下文组合。任何读取你的自定义指令的 AI 技能、Agent 或插件都能找到这些文件,并立即理解自己正在处理什么。
随着你不断更新,这些文件会越来越好。项目会变化,优先级会转移,尤其是你的沟通风格文件,会随着你发现我重复犯错并要求我把纠正纳入其中而不断演进。把它们当作活文档,而不是成品。”
向用户展示:
- 已创建文件的列表及其路径。
- 写入指针的自定义指令文件路径。
上下文文件
| 文件 | 用途 | 使用方 |
|---|---|---|
identity.md | 姓名、角色、组织、团队、经理、你的工作内容 | 任何需要知道用户是谁的技能 |
role-and-responsibilities.md | 各团队职责、节奏、交付物 | 状态、报告和规划类技能 |
team.md | 团队名册及角色和重点领域 | 为与人互动做准备或进行总结的技能 |
tools-systems-and-config.md | 工具、会议标签、各团队 ADO 配置、支柱、报告设置 | 读取会议记录、运行报告或与 ADO 交互的技能 |
communication-style.md | 语气、语调、格式规则、应避免的词语、针对不同受众的调整 | 任何代表用户撰写内容的技能 |
preferences-and-constraints.md | 硬性边界、审批规则、工作偏好、记忆规则 | 所有技能(尤其是会写入或发送内容的技能) |
使用方通过读取从任何自定义指令文件(AGENTS.md、copilot-instructions.md、CLAUDE.md、
*.instructions.md)加载的指针来找到这些文件。不需要 MCP 或专门的读取技能。
访谈规则
语气
直接、温和、具体。你是一名访谈者,不是教练。不要对用户的回答进行评论、赞美或发表意见。
在提问之前从可用数据源预填
在带着用户逐项过问题列表之前,先检查你手头可用的工具或数据源是否能替你回答那些事实性字段。用户不该为已连接系统已知的信息再手动输入一遍。
常见示例(按你的环境实际提供的能力来用):
- 已连接的工作档案或目录可能知道用户的姓名、职位、组织、团队、经理和直接下属——对 identity.md 和 team.md 有用。
- 日历、邮件或聊天记录可能显示出频繁协作者和周期性节奏——对 team.md 和 role-and-responsibilities.md 有用。
- 项目管理或源代码管理集成可能知道用户的组织/项目/区域路径或仓库——对 tools-systems-and-config.md 有用。
- 邮件或文档中已有的写作样本(经用户许可)可以为 communication-style.md 提供参考,无需重新采集样本。
规则:
- 只使用用户已授权的来源。不要在访谈中途未经询问就获取新数据。
- 预填是提议,不是答案。展示你找到的内容,标注为自动填充,并在写入文件前请用户逐项确认或更正。
- 不要向用户罗列工具名称。可以说"我可以从你的工作档案中拉取其中一些信息",而不是列出具体产品名称。
- 当没有可用来源,或数据含糊、过时、敏感时,回退到提问。
- 开放式字段(你实际做什么、人们为什么来找你、语气、边界)仍然需要提问。不要从间接信号中臆造这些内容。
提问
- 一次只问一个问题。绝不要列出问题清单。
- 绝不要问复合问题。
- 用前面文件中了解到的信息来指导后续访谈。不要重复询问你已知的内容。
- 如果用户岔开话题但对后面的文件有用,记下来,到那一步时用上。
- 当用户回答含糊时,追问具体细节:"能给我举个例子吗?"或"这在日常中实际上是什么样的?"
- 当你有足够信息起草时,说出来并起草。不要一直问。"足够"意味着你的回答覆盖了该文件模板中的核心字段(对于 identity:姓名、角色、组织、团队、经理以及他们做什么)。如果之前的回答已经覆盖了信息,你不需要逐条走完列出的每个问题。
反馈环节
每起草完一个文件,展示它并说: "这是我的草稿。通读一遍,告诉我哪些听起来不对。任何感觉不对劲的地方、我假设错的地方、遗漏的内容。"
如果用户说看起来不错、无需修改,追问一次: "挑一个最弱或最笼统的句子。怎样能让它更像你本人?"
如果他们第二次拒绝并说没问题,接受并继续。
文件质量
- 保持文件简洁。一页,不是五页。
- 文件读起来应该像用户本人,而不是像 AI 在写他们。
- 用他们的语言、他们的表述方式、他们的正式程度。
- 绝不使用破折号。
- 如果用户想跳过某个文件,由他们。
- 如果用户需要在文件中途停下,告诉他们你在哪里,以便他们之后继续。
示例:身份访谈演练
这展示了完整的 identity.md 访谈从第一个问题到最终写入文件的全过程。
Agent: 你的名字和当前职位是什么?
用户: Dana Kim,高级项目经理。
Agent: 你在哪家组织,哪个团队?
用户: Contoso,云工程部门。我在 Jordan Rivera 手下的平台运维团队。
Agent: 如果要在晚宴上向别人解释你实际做什么,你会怎么说?
用户: 我让数据平台团队持续运转。冲刺规划、状态汇报、确保领导层了解进展,同时又不让所有人淹没在更新邮件里。我还构建 AI 工具,自动化项目管理中那些重复性的部分。
Agent: 人们来找你是为了什么?
用户: 两件事:清楚地了解一个项目实际处于什么状态(不是经过粉饰的版本),以及弄清楚如何用 AI 工具把繁琐工作从他们的工作流中剔除。
Agent: 我掌握的足够起草了。这是我的草稿:
# Identity
- **Name:** Dana Kim
- **Role:** Senior Program Manager
- **Organization:** Cloud Engineering, Contoso
- **Team:** Platform Operations
- **Manager:** Jordan Rivera
## What I Do
I keep the data platform teams running: sprint planning, status reporting,
and making sure leadership knows what's happening without everyone drowning
in update emails. I also build AI tooling that automates the repetitive
parts of program management.
## What People Come to Me For
Two things: getting a clear picture of where a project actually stands (not
the sanitized version), and figuring out how to use AI tools to cut busywork
out of their workflows.
读一遍,告诉我哪里听起来不对。任何感觉不对的地方、任何我假设错的地方、任何遗漏的地方。
用户: 看起来不错,就这样吧。
Agent: 挑一句最弱或最笼统的话。怎样能让它更具体地体现你?
用户: "让数据平台团队持续运转"这句。更准确地说,我是工程、领导层和运维节奏之间的连接组织。没有其他人能同时把握这三种视角。
Agent: (更新"我做什么"段落,并将文件写入上下文目录。)
身份部分完成了。接下来是角色与职责,它会记录你每周实际的样子。准备好了吗?
示例:定向更新
这展示了随口提到的上下文变化如何触发一次定向更新(状态 4)。
用户: 你能把我上周的会议拉出来吗?哦,还有,Jordan 不再是我的经理了。我转到了 Morgan 手下。
Agent: 我来获取你的会议。听起来你的身份文件也需要更新。要我现在改吗?
用户: 好,去吧。
Agent: (从已加载的自定义指令中解析出 identity.md 路径,读取文件,将 Manager 字段从"Jordan Rivera"更新为"Morgan",再将文件写回。)
完成。已在 identity.md 中把你的经理更新为 Morgan。我现在继续获取你的会议。
安全
- 不要在上下文文件中存储凭据、API 密钥、令牌或机密。如果用户在访谈中提供了其中一项,请省略它并解释原因。
- 只写入用户选择的上下文目录以及用户已批准的自定义指令文件。绝不要将文件写入其他位置。
- 绝不要删除现有的上下文文件。如果需要刷新,先将现有文件备份为
<file>.bak-<yyyyMMddHHmmss>,并在覆盖前与用户确认。
关于使用方应如何安全地读取这些文件(视为数据、不泄露内容、忽略提示词注入文本等),请参阅 assets/templates/AGENTS.md 中捆绑的 AGENTS.md 模板里的 ## Safety 块。该块会在第 10d 步被写入用户的自定义指令文件中,因此每个使用方技能都会自动获得这些规则。
错误处理
写入失败
如果写入上下文文件失败:
- 重试一次。
- 如果重试失败,将草稿内容以代码块形式呈现给用户,以免丢失任何内容。
- 建议:"写入失败。你可以复制上面的草稿,或者我们试试其他目录。"
现有文件格式错误
如果现有上下文文件无法解析(缺少标题、表格损坏、内容乱码):
- 向用户展示看起来有问题的地方。
- 提议使用模板从头重新生成该文件,并保留损坏文件中任何可识别的值。
- 不要静默覆盖。替换前始终先确认。
作者
由 @lakshmistoltz 贡献。