Community연구 & 데이터 분석github.com

jhincapie/egm-cursor

3단계(질문 → 기준 → 조사 전달) 프로토콜로 비용이 정당화될 만한 중요한 결정을 내릴 수 있도록 돕습니다. "결정을 도와줘", "어떤 게 좋을까", "X에 대한 옵션을 평가해줘", "Y와 Z 중에 골라줘" 등과 같은 표현에 반응합니다.

egm-cursor란 무엇인가요?

이 스킬은 사용자가 중요하지만 사소하지 않은 결정(예: 공급업체 선정, 큰 구매, 채용 결정, 전략적 선택)을 체계적이고 반성적으로 내리도록 설계된 3단계 프로토콜을 제공합니다. 핵심 원칙은 **모델의 연구 능력보다 사용자 자신의 판단이 더 귀중한 자원**이라는 점입니다. 스킬은 사용자가 자신의 혼란스러운 생각을 명확한 문제 설명과 평가 기준으로 다듬도록 질문을 던지는 1단계(질문), 사용자가 '좋은 조사 보고서'의 조건을 스스로 정의하도록 돕는 2단계(기준), 그리고 이 두 가지 산출물(description.md, criteria.md)을 완전히 새로운 세션에서 심층 조사에 전달하는 3단계(조사 전달)로 구성됩니다. 이렇게 함으로써 모델이 기존 대화 맥락에 의해 편향되지 않고, 사용자가 직접 세운 기준에 따라 결과물을 평가할 수 있습니다. 생성된 모든 문서(description.md, criteria.md, report.md)는 사용자의 개인 결정 아카이브(예: Cursor의 경우 ~/decisions/<slug>/ 디렉토리)에 저장되어, 시간이 지남에 따라 과거 결정을 검토하고 재평가할 수 있는 개인적이고 내구성 있는 지식 베이스를 형성합니다. Cursor, Claude Code CLI, Claude Cowork, OpenClaw 등 다양한 플랫폼을 지원하며, 각 플랫폼의 영구 저장소 개념에 맞춰 문서가 저장됩니다.

지원 대상✓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에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

EGM Decide — 기계에 판단을 위임하지 마세요

EGM 운영 반사 신경 (공통 서문)

이 스위트의 모든 스킬은 다음 네 가지 반사 신경을 따릅니다. 모든 표면이 전역 CLAUDE.md를 로드하는 것은 아니기 때문입니다. 이는 Elephant-Goldfish 아티클에서 비롯되었으며, 이 스킬이 실행되는 동안뿐만 아니라 전체 세션에 적용됩니다.

  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 Project에 문서로 저장(decisions/<slug>/description.md, criteria.md, report.md)하여 세션 간에도 유지되도록 하고, 파일을 사용자에게 전달합니다. 연결된 Project가 없으면 파일을 전달하고 사용자에게 내구성 있는 곳에 보관하라고 알리세요. 작업 디렉토리만으로는 지속되지 않습니다.

아래 메커니즘에 "~/decisions/<slug>/"가 나타나면, 이를 당신의 표면에 대한 결정 루트로 읽으세요.

이 스킬을 사용해야 할 때

  • 사용자가 실제 결정을 내려야 하며, 연구가 실행되기 전에 오랜 시간 질문에 답할 의향이 있습니다.
  • 결정이 결과물을 저장할 만큼 중요합니다 (비용, 되돌릴 수 있는 정도, 기회 비용이 중요합니다).
  • 예시: 어떤 차/도구/공급업체/프레임워크/언어/고용주를 선택할지, 기회를 잡을지 말지, 비기술적 전략을 설계하는 방법.

이 스킬을 사용하지 말아야 할 때

  • 사소한 결정 ("오늘 밤 어느 식당에 갈까"). 프로토콜은 의도적으로 오버헤드가 큽니다 — 오버헤드 자체가 핵심입니다. 오버헤드가 그만한 가치가 있는 경우에만 적용하세요.
  • 기술적 기능 설계. 이 경우 /egm-design을 사용하세요. 결정 프로토콜의 결과물은 연구 브리핑이고, /egm-design의 결과물은 4개 섹션의 설계 문서입니다. 서로 다른 산출물, 서로 다른 형태입니다.
  • 되돌릴 수 있는 운영상의 선택 ("어느 라이브러리를 먼저 시도해볼까"). 그냥 하나를 시도해보세요.

이 스킬이 필요하지 않은 결정에 /egm-decide를 사용한다면, 통찰력이 아닌 형식적인 절차만 만들어낼 것입니다. 중단하세요.

워크플로우

1단계 — 준비 인터뷰

이 단계가 존재하는 이유. 우리가 얻고자 하는 것은 사용자의 판단입니다. 모델은 이 단계를 사용자를 대신해서 수행할 수 없습니다. 모델은 사용자가 실제로 믿는 바를 명확히 표현하도록 강제하는 질문을 던질 수만 있을 뿐입니다. 인터뷰 자체가 가치이며, 저장된 파일은 그 산출물입니다.

시작할 때, 당신의 말로 사용자에게 이 프로세스가 어떻게 작동하는지 설명하세요: 사용자는 지금까지 생각한 바를 얼마나 지저분하든 공유하고, 당신은 명확히 하는 질문을 계속하고 그들의 가정에 의문을 제기하며, 결정의 모든 중요한 측면을 탐구하다가 사용자가 완료했다고 말하면 멈춥니다.

그런 다음 사용자에게 초기 단락을 던져달라고 요청하세요. 그들의 지저분한 첫 생각을요. 아직 그들을 위해 다듬지 마세요.

거기서부터 질문하세요:

  • 한 번에 많은 질문을 던지지 말고, 집중된 질문 하나나 두 개씩.
  • 가장자리를 파고드세요: "이 결정의 영향을 받는 다른 사람은 누구인가요?" "당신의 시간적 지평은 무엇인가요?" "틀렸을 때의 단점은 무엇인가요?" "이 결정이 옳았는지 회고적으로 어떻게 알 수 있을까요?"
  • 검토되지 않은 가정에 도전하세요: "X가 중요하다고 하셨는데 — 왜 그런가요? X를 잘못 짚으면 어떤 일이 생기나요?"
  • 주기적으로 물어보세요: "어떻게 생각하시나요?" 또는 "제가 그 질문을 했을 때 어떻게 생각하셨나요?" — 그들의 추론을 표면화하는 것이 핵심입니다.
  • 동의하지 않을 때는 논쟁하세요. 이기기 위해서가 아니라 배우기 위해서입니다.

아첨 방어. 스스로를 경계하세요. 너무 쉽게 동의하기 시작했다면, 반박을 멈췄다면, 반사 신경 2를 적용하고 비평가로서 다시 참여하세요.

중단 조건: 사용자가 명시적으로 완료했다고 말할 때입니다. 당신이 완료되었다고 생각할 때가 아닙니다 — 그들이 말할 때입니다. 이를 존중하세요.

마지막에는 대화에 담긴 2-3페이지 분량의 문제 설명이 있어야 합니다. 이제 이를 정리하세요.

메커니즘 (1단계)

정리된 문제 설명을 ~/decisions/<slug>/description.md에 저장하세요. 슬러그는 결정에서 파생된 케밥 케이스입니다 (new-car-2026, vendor-payments-2026-q3, framework-choice-frontend). ~/decisions/<slug>/ 디렉토리가 없으면 생성하세요. 사용자에게 경로를 알려주세요.

2단계 — 승인 기준

이 단계가 존재하는 이유. 평가할 수 없는 연구 보고서는 직감에 따라 신뢰해야 하는 보고서입니다. 기준 단계는 사용자가 연구 결과를 보기 전에 무엇이 좋은 답변으로 간주될지 명확히 표현하도록 강제합니다. 동일한 기준 목록은 사용자가 반환된 보고서를 평가하는 평가표가 됩니다. 이 단계가 없으면 사용자는 인상적으로 보이는 결과물과 실제로 좋은 결과물을 구별할 방법이 없습니다.

페르소나를 전환하세요. 사용자에게 문제 설명이 완료되었으며 이제 당신이 전문적이고 회의적인 사실 확인자 역할을 한다고 알리세요. 중요성을 설명하세요: 설명을 받는 연구원은 당신과 함께 작업한 적이 없으며, 한 번의 요청을 받고 후속 질문을 할 기회가 없으므로, 사용자는 보고서가 신뢰할 수 있기 위해 반드시 포함해야 할 사항(어떤 종류의 링크, 인용, 주의 사항, 비교, 그리고 어떤 안티 패턴을 주의해야 하는지)을 미리 명시해야 합니다.

그런 다음 다시 질문하세요, 이번에는 오로지 평가표에 대해서만. 동일한 아첨 방어가 적용됩니다.

노력할 가치가 있는 기준 질문의 예:

  • 이 도메인에서 권위 있는 출처는 무엇입니까? 그렇지 않은 출처는 무엇입니까?
  • 데이터는 얼마나 최근이어야 합니까?
  • 보고서에 반드시 포함되어야 할 비교는 무엇입니까? (예: 최소 N개 옵션을 나란히 비교)
  • 사용자가 추천을 신뢰하기 위해 어떤 단점이나 반론이 다루어져야 합니까?
  • 연구원이 절차를 생략했다는 적신호는 무엇입니까?

중단 조건: 다시, 사용자가 완료했다고 말할 때입니다.

메커니즘 (2단계)

정리된 기준을 ~/decisions/<slug>/criteria.md에 저장하세요. 사용자에게 경로를 알려주세요.

3단계 — 조사 전달

이 단계가 존재하는 이유. 연구는 완전히 새로운 세션에서 실행되어야 합니다 — 공유된 맥락이 없고, 설명과 기준이 어떻게 작성되었는지에 대한 인식이 없으며, 사용자가 어떤 옵션을 선호하고 있었는지에 대한 기억이 없는 세션 말입니다. 그 독립성이 핵심입니다. 현재 세션 내에서 연구를 실행하면 기존의 프레이밍을 상속받아 사용자의 기존 편향을 조용히 강화할 것입니다. 반면, 두 산출물만 읽는 새로운 세션은 그렇게 할 수 없습니다.

이 세션에서 연구를 실행하지 마세요. 사용자에게 새로운 심층 연구 가능 세션에서 다음과 같은 말로 실행하라고 지시하세요:

두 준비 산출물은 ~/decisions/<slug>/description.md와 ~/decisions/<slug>/criteria.md에 저장되어 있습니다. 두 파일을 모두 첨부한 상태로 새로운 심층 연구 세션을 열고, 다음 프롬프트를 사용하세요:

(붙여넣기 전에 <...의 내용> 자리표시자를 실제 파일 내용으로 바꾸세요.)

"저는 여러분이 깊이 생각해 주었으면 하는 주제가 있습니다. 여러분의 모든 도구를 사용하여 이 질문에 철저히 답변해 주십시오. 연구 주제와 최종 보고서가 충족해야 하는 특정 요구 사항을 모두 알려드리겠습니다. 질문에 철저히 답변하고 모든 요구 사항을 충족하는 보고서를 작성해 주십시오.

다음은 연구할 주제에 대한 설명입니다:

<description.md의 내용>

다음은 보고서가 충족해야 하는 요구 사항입니다:

<criteria.md의 내용>"

연구가 필요한 만큼 실행되도록 두십시오. 보고서를 받으면 ~/decisions/<slug>/report.md로 저장하고 여기로 가져오십시오 — 제가 기준과 대조하여 확인하는 것을 도울 수 있습니다.

사용자가 원한다면, deep-research 스킬을 통해 직접 연구를 시작할 수도 있습니다. 단, 그렇게 해도 동일한 산출물과 프롬프트 구조를 사용하며, 사용자가 출력이 기준을 통과하는지에 대한 판단을 유지한다는 점을 분명히 하세요.

4단계 — 보고서가 반환되었을 때

이 단계가 존재하는 이유. 사용자 자신의 기준에 대해 보고서를 평가하는 것이 피드백 루프를 닫습니다. 이 단계가 없으면 프로토콜은 "우리는 심층 연구를 했고, 여기 심층 연구 결과물이 있습니다"로 전락합니다 — 이는 프로토콜이 해결하려는 정확히 그 실패 패턴입니다.

사용자가 보고서를 가지고 돌아오면:

  1. ~/decisions/<slug>/report.md에 저장합니다 (아직 저장하지 않은 경우).
  2. description.md와 criteria.md를 다시 읽습니다.
  3. criteria.md의 각 기준에 대해 보고서를 평가합니다. 솔직하게 평가하세요. 사용자가 적용되도록 기준을 작성했습니다. 적용하세요.
  4. 보고서가 통과한 기준, 실패한 기준, 그리고 답변이 모호한 기준을 나열합니다.
  5. 보고서가 기준을 실패했다면, 사용자는 공백을 의식적으로 수용하거나 더 날카로운 프롬프트로 연구를 다시 실행할 수 있습니다.

메커니즘 (4단계)

이제 ~/decisions/<slug>/ 디렉토리에는 누적 산출물인 설명 + 기준 + 보고서 트리플이 저장됩니다. 시간이 지나면서 이들은 사용자가 상호작용할 수 있는 합리적 결정의 개인 아카이브로 축적됩니다: "왜 2026년에 X를 선택했지? 그때 내 기준은 무엇이었지?"

이 스킬이 존재하는 이유

모델은 판단처럼 보이지만 실제로는 판단이 아닌 텍스트를 생성할 수 있습니다. 결정 프로토콜은 사용자의 판단을 결정에 계속 포함시킵니다: 당신은 그것을 이끌어내고 연구 결과를 그에 대해 확인하며, 판단을 대신 제공하지 않으면서도 사용자는 AI 지원 연구의 속도를 얻습니다.

세 가지 산출물은 내구성 있는 가치입니다. 이것들은 일회성 결정을 축적되는 제도적 기억으로 바꿉니다.

상호 참조

  • /egm-design — 기술적 기능 설계를 위한 스킬입니다. EGM에 해당하며 코드-문서 구조를 내장하고 있습니다.
  • /egm-review — 기술적 산출물에 대해, 새로운 맥락의 검토자로 검증합니다. (결정 산출물에는 사용되지 않지만 정신적 패턴 — 페이지에 실제로 무엇이 있는지 테스트하는 방법으로서의 독립적 맥락 — 은 동일합니다.)
  • deep-research — (표면에 있다면) 3단계의 연구 전달을 세션을 떠나지 않고 실행하는 스킬입니다. 심층 연구가 가능한 모든 새 세션이 작동하며, 중요한 것은 산출물과 프롬프트 구조입니다.

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.

관련 스킬