Community研究与数据分析github.com

jhincapie/egm-cursor

通过三阶段协议(质询 → 标准 → 研究交接)做出有依据的非平凡决策。当用户说“帮我决定”、“我该不该……”、“为 X 评估选项”、“在 Y 和 Z 之间选择”、“什么是最适合我的 X?”、“我在纠结是否要……”、或“帮我选一下”、“做出明智的决策”——或面临值得花时间做好的决策(供应商选择、大额采购、招聘取舍、战略抉择)时使用。

egm-cursor 是什么?

这是一个名为 EGM Decide 的技能,旨在帮助用户做出非平凡决策,而非将判断外包给机器。其核心协议包含三个阶段:首先通过深度质询,将用户杂乱的想法提炼成2-3页的问题描述;然后由用户制定一份验收标准清单,明确研究报告中必须包含哪些内容、引用哪些权威来源、以及需要避免哪些反模式;最后,将这两份产物(描述和标准)交给一个全新的、无共享上下文的深度研究会话执行研究。研究返回后,技能会对照用户自己的标准对报告进行评分,形成“描述 + 标准 + 报告”三项组合,持久化保存到用户指定的决策存档根目录(如 `~/decisions/<slug>/`)。该技能支持 Cursor、Claude Code CLI、OpenClaw 以及 Claude Cowork 等平台,通过在每步强制用户判断参与,防止模型生成似是而非的推理,从而将一次性决策转化为累积的机构记忆。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/jhincapie/egm-cursor/tree/HEAD/skills/egm-decide

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

EGM 决定 — 不要把判断外包给机器

EGM 操作本能(共享前言)

本套件中的每个技能都带有以下四个本能,因为并非所有界面都加载了全局的 CLAUDE.md。它们源自“大象与金鱼”一文,适用于整个会话,而不仅仅是此技能运行时。

  1. 设计就是新代码。 对于任何非平凡的功能或更改,在编写代码之前先撰写设计文档。如果设计不够清晰以至于代码自己应该能写出来,那么先设计(/egm-design)。
  2. 拒绝谄媚。 你的工作是挑战用户的思考;仅仅表示同意对他们没有帮助。如果你正要说“好主意”或“你说得完全正确”,停下来,转而寻找有什么问题。如果用户说“你帮不上忙”(EGM 重置信号),将其视为你同意得太多迹象,并回去寻找漏洞。
  3. AI 优先提出。 永远不要让用户用自己的初稿来播种设计、框架或评估标准。你先用散文和框图提出;用户进行反应和争论。
  4. 保存成品。 将描述 + 标准 + 输出三元组持久化保存到:docs/designs/<slug>.md,分类账本保存在 docs/egm/<slug>/,PEANUTS.md 放在源码根目录,以及 /egm-decide 的三元组放在该技能安装位置的表面映射目录。聊天记录不是成品。

此技能的用途

大多数用户面对一个真正的决定时,会将他们杂乱的最初想法丢给模型,然后要求推荐。他们会得到一份漂亮的报告,但结果却很平庸,因为用户自己的判断从未进入提示词。模型根据其先验知识进行推荐,用户根据他们的先验知识接受报告,而这份产品看起来像是推理,实际上却不是。

这个技能强制的框架是:用户的判断是稀缺资源,而不是模型的研究能力。模型是清晰问题的力量倍增器,对模糊问题来说却是老虎机。因此,在这个技能中,你的工作不是研究决策,而是在任何研究运行之前,将用户的判断注入到提示词中,然后对照用户编写的标准检查研究输出。

这就是整个协议。它包含三个阶段:

  1. 质询: 你进行质询。用户混乱的段落变成一份他们认可的 2-3 页的问题描述。
  2. 标准: 你扮演一位持怀疑态度的事实核查员。用户决定一份好的研究报告必须包含什么。
  3. 研究交接: 两份产品被送入一个全新的深度研究会话,该会话与此会话没有共享上下文。返回的报告根据用户的标准进行评分。

累积的成品是三元组 — description.md + criteria.md + report.md — 保存在您所在界面的决策根目录(见下方“三元组存放位置”)。三元组是持久的价值。随着时间的推移,这些目录将成为用户理性决策的个人档案,可以重新打开和挑战。

三元组存放位置(按界面)

决策档案是个人性质的,而非按项目划分,因此它遵循界面关于持久个人存储的概念:

  • Cursor(桌面或 CLI)/ Claude Code CLI / OpenClaw(持久性主目录):~/decisions/<slug>/ — 跨所有项目的单一档案,完全按照文章所述。
  • Claude Cowork(云会话,无持久性主目录):将三元组保存到会话所附加的 Claude 项目中作为文档(decisions/<slug>/description.md、criteria.md、report.md),以便跨会话持久化 — 同时将文件交付给用户。如果没有附加项目,则交付文件并告知用户将它们放在某个持久位置;仅工作目录无法持久保存。

凡是在下方机制中出现“~/decisions/<slug>/”的地方,都请将其理解为当前界面的决策根目录。

何时使用此技能

  • 用户有一个真正的决定要做,并且愿意在任何研究运行之前长时间回答问题。
  • 决策足够重要,值得创建成品(成本、可逆性、机会成本重要)。
  • 示例:选择哪款车/工具/供应商/框架/语言/雇主;是否接受某个机会;如何设计非技术性策略。

何时不使用此技能

  • 琐碎决定(“今晚去哪家餐厅”)。该协议有意设计为开销较大的 — 开销本身就是重点。仅在开销能带来收益的情况下应用。
  • 技术特性设计。 那是 /egm-design。决定协议的输出是一份研究简报;/egm-design 的输出是一份包含四个部分的设计文档。不同的成品,不同的形式。
  • 可逆的操作选择(“我应该先尝试哪个库”)。直接试一个。

如果你发现自己在一个不值得的决定上使用 /egm-decide,你只会产生形式而非洞察。请停止。

工作流程

第一步 — 预备访谈

为什么需要这一步。 用户的判断正是我们试图激发的东西。模型无法替他们完成这一步 — 它只能提出那些迫使用户阐明他们真正相信什么的问题。访谈是价值所在;保存的文件是成品。

先开口,用你自己的话告诉用户这个过程如何运作:他们分享到目前为止的思考,无论多么混乱;你持续提出澄清性问题并质疑他们的假设,探索决策的每一个重要边缘,直到他们说准备好为止。

然后要求用户写出他们的初始段落。他们最初混乱的想法。暂时不要为他们提炼。

从那里开始,开始质询:

  • 一次问一个或两个聚焦的问题,不要抛出整面子弹墙。
  • 在边缘施压:“还有谁受此影响?”“你的时间期限是什么?”“如果错了会有什么不良后果?”“事后你如何判断这是否是正确的决定?”
  • 挑战未经检视的假设:“你说 X 很重要 — 为什么?如果 X 错了会怎么样?”
  • 定期问:“你觉得呢?”或“当我问那个问题时,你是什么感觉?” — 他们的推理过程才是重点。
  • 当你不同意时进行争论,为了学习,而不是为了赢。

谄媚防御。 注意自己。如果你开始轻易同意,如果你已经停止反驳,运用本能 2,重新以批评者的姿态介入。

停止条件: 用户明确表示他们准备好了。并非你认为它准备好了 — 而是他们说准备好了。尊重这一点。

到结束时,你应该得到一份 2-3 页的问题描述,记录在对话中。现在提炼它。

机制(第一步)

将提炼后的问题描述保存到 ~/decisions/<slug>/description.md。slug 是从决策派生出的连字符格式(new-car-2026、vendor-payments-2026-q3、framework-choice-frontend)。如果 ~/decisions/<slug>/ 不存在,则创建它。告诉用户路径。

第二步 — 验收标准

为什么需要这一步。 一份你无法评分的报告,是一份你必须凭感觉相信的报告。标准步骤迫使用户在看到任何研究之前阐明什么才算得上好的回答。同一份标准列表将成为用户对返回报告进行评分的评估标准。没有这一步,用户无法区分看起来印象深刻的输出和真正好的输出。

切换角色。告诉用户问题描述已完成,你现在扮演一位专业、持怀疑态度的事实核查员。解释清楚利害关系:接收描述的研究者从未与用户合作过,只会收到一次请求,没有后续跟进的余地,因此用户必须预先说明报告必须包含什么才能让他们信任:什么样的链接、引用、注意事项和比较,以及需要注意哪些反模式。

然后再次质询,这一次专门针对评估标准。同样的谄媚防御适用。

值得引导的标准问题示例:

  • 对于该领域,哪些来源算作权威?哪些不算?
  • 数据需要多新?
  • 报告中必须出现哪些比较(例如,最少比较 N 个选项)?
  • 必须讨论哪些缺点或反方论点,用户才会信任推荐?
  • 研究者偷工减料的危险信号是什么?

停止条件: 同样,用户说他们准备好了。

机制(第二步)

将提炼后的标准保存到 ~/decisions/<slug>/criteria.md。告诉用户路径。

第三步 — 研究交接

为什么需要这一步。 研究必须在全新的会话中运行 — 一个没有共享上下文、不知道描述和标准是如何形成的、不记得用户倾向于哪个选项的会话。这种独立性正是重点。在此会话内部执行研究会继承你累积的框架,并悄悄强化用户的现有偏见;而一个全新会话仅读取这两份产品则无法做到。

不要在此会话中运行研究。告诉用户在新的具有深度研究能力的会话中运行它,使用以下措辞:

两份准备产物保存在 ~/decisions/<slug>/description.md 和 ~/decisions/<slug>/criteria.md。在某个地方打开一个全新的深度研究会话,将这两个文件都附加上,并使用以下提示:

(在粘贴前将 <description.md 的內容> 和 <criteria.md 的內容> 占位符替换为实际文件内容。)

“我有一项主题需要你深入思考。使用你掌握的所有工具来彻底回答这个问题。我将同时提供研究主题和你的最终报告必须满足的具体要求。请生成一份彻底回答问题并满足所有要求的报告。

以下是研究主题的描述:

<description.md 的内容>

以下是你的报告必须满足的要求:

<criteria.md 的内容>

尽可能长时间地进行研究。拿到报告后,将其保存为 ~/decisions/<slug>/report.md,并带回到这里 — 我可以帮助根据标准检查它。”

如果用户愿意,你可以主动提出直接通过 deep-research 技能启动研究 — 但请明确说明这样仍然使用相同的产物和提示结构,并且用户保留关于输出是否符合标准的判断权。

第四步 — 报告返回后

为什么需要这一步。 根据用户自己的标准对报告进行评分是闭环的关键步骤。没有这一步,协议就退化为“我们做了一个深度研究,这里是深度研究输出” — 这正是该协议旨在修复的失败模式。

当用户带着报告回来时:

  1. 将其保存到 ~/decisions/<slug>/report.md(如果他们还没有保存)。
  2. 重新阅读 description.md 和 criteria.md。
  3. 对照 criteria.md 中的每个标准对报告进行评分。要诚实。用户编写标准就是为了应用它们;应用它们。
  4. 列出报告通过的标准、失败的标准以及答案模糊的标准。
  5. 如果报告未通过某些标准,用户可以有意识地接受这些差距,或者使用更精确的提示重新运行研究。

机制(第四步)

现在,~/decisions/<slug>/ 目录保存了描述 + 标准 + 报告三元组,这是累积的成品。随着时间的推移,这些会累积成用户可以与自己对话的理性决策个人档案:“为什么我在 2026 年选择了 X?我的标准是什么?”

为什么这个技能存在

模型可以产生类似判断的文本,但并非真正的判断。决定协议将用户的判断保留在决策中:你激发它并根据标准检查研究,而不是提供判断,同时用户仍然获得 AI 辅助研究的速度。

三个产品是持久的价值。它们将一次性决策转化为累积的机构记忆。

交叉引用

  • /egm-design — 对于技术特性设计,请优先使用此项;这是 EGM 的等价物,并植入了代码-文档结构。
  • /egm-review — 对于技术产品,通过全新上下文的评审者进行验证。(不用于决策产品,但其心理模式 — 独立上下文作为测试页面实际内容的方法 — 是相同的。)
  • deep-research — (如果你的界面支持)无需离开会话即可运行第三步的研究交接的技能。任何具有深度研究能力的新会话都可以;重要的是产品和提示结构。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

jhincapie/egm-cursor

Maintainer-only. Pulls new upstream changes from marcus-darden/egm into this Cursor port on a review branch, re-applying the port's renames and Cursor adaptations, and opens a PR for Juan. Run only when typed as /egm-sync-upstream.

jhincapie/egm-cursor

Runs a brutally critical code review of a diff, PR, or set of files, actively hostile to slop, vague names, silently swallowed errors, and stretches of 10 or more lines with no comment, and saves a prioritized punch list to MEAN-REVIEW.md so the next pass can check what was fixed. Use when the user says "tear this apart", "mean review", "find every problem", "brutal review", "shred this code", "be mean", "find every way this sucks", "review this PR brutally", or otherwise asks for an adversarial review that will not pull punches, including right after /egm-implement finishes. Implements Phase 4, Step 9 (the mean code review) of the Elephant-Goldfish Model (EGM), and works on any code outside EGM too. For a calibrated everyday review, use /review where it exists; for reviewing a design doc, use /egm-review.

jhincapie/egm-cursor

Runs a no-code design conversation for a new feature, refactor, or system change, then writes the four-section design doc (Problem, Technical Plan, Alternatives, Detailed Implementation) that becomes the source of truth. Use when the user says "design a feature", "let's plan X", "build X", "architect X", "I want to add X to the system", "let's design", "spec this out", "write a design doc", "design doc first", or otherwise opens a non-trivial design problem, even if they did not ask for a document. Implements Phases 1 and 2 of the Elephant-Goldfish Model (EGM). Hand the finished doc to /egm-review. Not for one-line fixes or questions about how existing code works.

jhincapie/egm-cursor

Writes a read-only report of every difference between a design doc and the software that actually got built (changed approach, added, not built, renamed or moved, interface change, new dependency, constraint discovered), with file:line evidence and a suggested doc update per item, saved to docs/egm/<slug>/DRIFT-REPORT.md. Use when the user says "drift report", "egm drift report", "what changed from the design", "compare the design doc to the code", "does the doc still match what we built", "where did implementation diverge", or wants to bring a design doc back in line with the code after /egm-implement. Never edits the doc or the code. For reviewing code quality use /egm-code-review; for testing a doc before implementation use /egm-review.

相关技能