econ-research-kit은(는) 무엇을 하나요?
경제학 연구를 실행 가능한 일련의 단계로 표현합니다. 프롬프트 모음이 아닌, 각 스킬이 입력값, 산출물, 승인 기준을 명시하는 워크플로 라이브러리입니다.
이것의 정체와 한계
이것은 실증 프로젝트의 각 단계를 담당하는 8가지 스킬 모음입니다. 각 스킬은 언제 진입해야 하는지, 무엇이 필요한지, 무엇을 해야 하는지, 어떤 파일을 생성해야 하는지, 결과를 어떻게 확인해야 하는지를 알려줍니다.
이것은 프롬프트 덤프가 아닙니다. 프롬프트는 텍스트를 생성합니다. 스킬은 다른 사람이 다시 실행할 수 있는 파일을 생성합니다. 어떤 단계가 "어시스턴트가 좋은 문단을 작성했습니다"로 끝난다면, 그 단계는 완료되지 않은 것입니다.
또한 식별(identification)에 대한 여러분의 판단을 대체하지 않습니다. 이 스킬들은 가정과 위협을 명시하도록 강제할 뿐, 그 가정이 타당한지 여부를 알려주지는 않습니다.
함께 볼 책: book/ 디렉토리에는 LW Walker가 저술한 Prompt Engineering for Economists (208페이지, 60개 템플릿)이 있습니다. 이 책은 각 단계가 왜 이런 형태로 구성되었는지 설명하고, 이 저장소는 각 단계에서 무엇을 해야 하는지 알려줍니다. book/README.md는 각 장과 단계 간의 매핑을 제공합니다.
8단계 개요
| # | 단계 | 스킬 | 이 단계가 답하는 질문 |
|---|---|---|---|
| 0 | 타당성 게이트 | skills/feasibility/ | 이 연구를 데이터와 변동성으로 아예 수행할 수 있는가? |
| 1 | 문제와 문헌 | skills/literature/ | 연구 간극이 실제로 존재하며, 논문으로 쓸 가치가 있는가? |
| 2 | 식별 설계 | skills/identification/ | 어떤 변동성이 효과를 식별하며, 무엇이 그것을 무너뜨릴 수 있는가? |
| 3 | 데이터 | skills/data-prep/ | 변수들이 내가 생각한 방식대로 정의되었는가? |
| 4 | 추정 | skills/estimation/ | 명세(specification)가 방어 가능한가? 각 강건성 검증은 무엇으로부터 보호하는가? |
| 5 | 표와 그림 | skills/tables-figures/ | 산출물이 학술지 형식을 충족하는가? |
| 6 | 보고서 | skills/report/ | 다른 사람이 내 파일로 이 결과를 재현할 수 있는가? |
| 7 | 집필과 제출 | skills/writing/ | 글이 식별 스토리를 전달하는가? |
| — | 심사 답변 | skills/review/ | 양보해서는 안 될 것을 양보하지 않고 어떻게 답변할 것인가? |
0단계는 게이트(gate)이지, 단계(step)가 아닙니다. 실패하면 중단하세요. 식별이 작동할 수 없는 프로젝트를 위해 데이터를 정제하지 마세요.
라우팅: 사용자가 말한 내용에 따라 진입할 스킬 결정
아래 표를 읽기 전에, python scripts/preflight.py "<사용자의 단어>"를 실행하세요. 이 스크립트는 네 가지 슬롯 중 누락된 것을 알려줍니다. 그런 다음 python scripts/spec.py "<사용자의 단어>"를 실행합니다. 이 스크립트는 태스크 명세(task-spec) 초안(네 가지 슬롯, 읽어들인 단계, 편집 가능한 프롬프트, 확인할 세 가지 사항)을 출력하며, 이 초안을 작업을 수행하기 전에 사용자에게 보여줍니다. 함께 편집한 후 시작하세요. 표에 있는 모든 "첫 번째 행동"은 네 가지 슬롯이 모두 채워진 후에만 발생합니다. 슬롯이 열려 있는 동안에는 그것에 대해 묻는 것만이 유일한 행동입니다.
| 사용자가 다음과 같이 말하면 | 진입할 스킬 | 첫 번째 행동 |
|---|---|---|
| "이 주제로 연구 가능한가요?" / "데이터 있나요?" / "this is probably infeasible" | skills/feasibility/ | 코드를 작성하기 전에 데이터와 변동성을 먼저 나열하세요 |
| "이 주제는 이미 연구된 적 있나요?" / "novelty" / "문헌 갭" | skills/literature/ | 검색 계획을 먼저 작성한 후 매트릭스를 구축하세요 |
| "DID / IV / RDD / 사건 연구 사용" / "식별 전략" / "how do I identify this" | skills/identification/ | 회귀분석 전에 위협 목록을 먼저 작성하세요 |
| "데이터 정리" / "변수 정의" / "병합 안 됨" / "측정 기준" | skills/data-prep/ | 먼저 연도별 변수 정의를 확인하세요 |
| "회귀분석 실행" / "고정효과 추가" / "강건성 검증" / "robustness" | skills/estimation/ | 클러스터링 수준과 고정효과 세트를 정당화하세요 |
| "표 작성" / "삼선표" / "사건 연구 그래프" / "regression table" | skills/tables-figures/ | Stata 또는 Python을 결정한 후 학술지 형식에 맞추세요 |
| "보고서 정리" / "재현" / "replication package" | skills/report/ | 보고서를 스크립트 출력물로 만들고, 수동 편집 파일로 만들지 마세요 |
| "초록 작성" / "서론 작성" / "투고" / "abstract" | skills/writing/ | 서론 전에 식별 단락을 먼저 초안하세요 |
| "심사 의견에 어떻게 답변할까요" / "referee report" / "rebuttal" | skills/review/ | 각 코멘트를 필수 수행 / 논쟁 가능 / 거절 가능으로 분류하세요 |
두 개의 스킬이 모두 적용될 수 있다면, 상위 단계로 올라가세요. 표 문제는 일반적으로 명세(specification) 문제이고, 명세 문제는 일반적으로 식별(identification) 문제입니다.
무엇보다 먼저: 회상(recall), 그 다음 질문
모든 세션은 메모리가 아닌 파일로 시작합니다:
python scripts/recall.py
이 명령어는 프로젝트의 현재 상태, 마지막 단계에서 생성된 것, 아직 열려 있는 것이 무엇인지 출력합니다. 이 단계를 건너뛰는 세션은 저장소가 이미 답변한 질문을 다시 묻거나, 이미 존재하는 것을 다시 구축하게 됩니다. 먼저 실행하고, 그 다음 scripts/preflight.py를 실행한 후, 답변하세요.
다섯 가지 엄격한 규칙
1. 답변하기 전에 먼저 질문하세요: 네 가지 슬롯이 채워질 때까지 진행하지 마세요.
연구 요청에 대한 첫 번째 행동은 python scripts/preflight.py "<사용자의 모국어로 된 단어>"입니다. 이 명령어는 질문을 네 가지 슬롯(분석 단위, 처치 변수, 결과 변수, 비교 대상)으로 분할하고, 어느 것이 누락되었는지 알려줍니다.
- 누락된 슬롯: 최대 세 개의 질문을 작성하고, 한 번에 모두 질문한 후 답변을 기다리세요.
- 추론을 통해 채운 슬롯은 "X로 가정"으로 표시되어야 하며, 사용자가 확인해야 합니다.
- 네 가지 슬롯이 모두 채워진 경우에만(사용자가 직접 채웠거나, 사용자가 확인한 가정에 의해) 어떤 스킬의 2단계로 진입할 수 있습니다. 이것은 키트에서 인간의 응답을 기다리기 위해 중단해야 하는 유일한 규칙입니다. 이 게이트를 통과하기 전에 생성된 작업은 문서의 옷을 입은 추측에 불과합니다.
2. 방법론 용어를 사용하기 전에 glossary.yaml을 먼저 읽으세요.
세 가지 수준이 있습니다: locked(그대로 사용), pending(첫 번째 후보를 사용하고 대안을 괄호 안에 표시), fallback(중국어 고유 명사 유지, 영어 설명을 한 번만 제시). locked 번역을 위반하는 것은 스타일 선택이 아닌 결함입니다.
3. 도메인별 세부 사항은 스킬이 아닌 domains/에 있습니다.
스킬은 작업 방법을 설명합니다. 스킬은 중앙환경보호감찰(中央环保督察)이 무엇인지, CFPS가 교육을 어떻게 정의하는지, 또는 심사자가 오염 노출에 대해 무엇을 묻는지를 설명하지 않습니다. 모든 스킬의 마지막 섹션은 어떤 도메인 파일을 열어야 하는지 명시합니다. 열어서 확인하세요.
4. 모든 단계는 파일을 남겨야 하며, 모든 파일은 승인 목록을 통과해야 합니다.
## Acceptance는 제안이 아닌 체크리스트입니다. 예/아니오로 답변할 수 없는 항목은 잘못 작성된 항목입니다 — 다시 작성하세요.
5. 다른 작업을 수행하기 전에 현재 위치를 알리세요. 단계에 진입하는 모든 답변은 세 줄로 시작합니다: 어떤 단계(번호와 이름)인지, 이 단계만이 무엇을 하는지(한 문장, "데이터를 분석하라"는 안 됨), 어떤 파일을 생성할 것인지와 계속 진행하기 전에 사용자가 확인해야 하는지 여부. 이 헤더가 없는 답변은 블랙박스이며, 사용자가 그 대가를 치릅니다.
모든 단계는 또한 하나의 질문을 하고 기다림으로써 끝납니다. 아래 표를 참조하세요.
여덟 가지 확인 지점
0단계의 게이트가 유일한 확인 지점은 아닙니다. 각 단계는 하나의 질문으로 종료되고 멈춥니다. 이것은 예의가 아닙니다: 사용자가 보지 못한 결정은 사용자가 수정할 수 없는 결정입니다.
| 단계 | 질문하고 기다려야 할 질문 | 답변 없이 계속 진행? |
|---|---|---|
| 0 타당성 | 네 가지 슬롯이 채워졌습니다. 제가 추론한 두 가지를 확인해 주시겠습니까? | 아니요 |
| 1 문제와 문헌 | 세 가지 후보 질문 중 어느 것입니까? 연구 간극이 이것입니까? | 아니요 |
| 2 식별 설계 | 처치 집단, 비교 집단, 시점이 이렇게 설정되었습니다. 승인하시겠습니까? | 아니요 |
| 3 데이터 | 변수 정의와 표본 경계가 이렇게 설정되었습니다. 승인하시겠습니까? | 아니요 |
| 4 추정 | 주 명세와 이 강건성 검증 목록입니다. 추가하거나 제거할 것이 있습니까? | 아니요 |
| 5 표와 그래프 | 이 표 레이아웃과 노트 스타일입니다. 원하시는 것입니까? | 아니요 |
| 6 보고서 | 1페이지 분량 결론이 이렇게 작성되었습니다. 수치 해석에 변경할 사항이 있습니까? | 아니요 |
| 7 집필 | 이 초안에서 돌아가야 할 부분은 어디입니까? | 아니요 |
| 8 심사 답변 | 이 코멘트를 수정합니까, 아니면 반박합니까? 그 이유는 이것입니까? | 아니요 |
python scripts/stage.py 3은 모든 단계의 헤더와 질문을 출력하므로, 세션 간에 표현이 달라지지 않습니다. workflows/main.yaml은 동일한 메인라인을 기계가 읽을 수 있는 핸드오프 계약으로 작성한 것입니다: 각 단계는 requires(디스크에 이미 있어야 하는 것)와 produces(남겨야 하는 것)를 선언하며, python scripts/workflow_check.py는 단계가 이전 단계에서 생성하지 않은 것을 요구하면 실패합니다. python scripts/gate.py status는 게이트를 관례가 아닌 기계적 절차로 만듭니다: 프로젝트별 상태 파일(.econ-kit/gate.json)을 유지하고, 단계의 산출물이 존재하고 최소 8자의 인간 응답이 기록될 때까지 진행을 거부하며, 응답을 타임스탬프와 함께 기록합니다. gate.py pass "<the answer>"만이 진행하는 유일한 방법입니다. --force는 존재하지만, 공백(gap)을 기록에 남깁니다. 어떤 단계의 검사가 실제로 무엇을 찾는지 보려면 python scripts/explain.py 6을 실행하세요(--list는 9개 단계를 모두 보여줍니다. 3단계와 4단계는 이미 실행 가능한 스크립트가 있으므로, 해당 스크립트와 스킬의 승인 목록을 가리킵니다).
용어가 불확실한 경우
절대 조용히 번역을 선택하지 마세요. 용어가 pending 상태이면 첫 번째 후보를 사용하고 괄호 안에 대안을 추가하세요. 하나의 출력에서 최대 3곳까지 표시하세요. 그 이상이면 첫 번째 후보를 조용히 사용하고 마지막에 요약 한 줄을 추가하세요.
용어가 용어집에 전혀 없으면 중국어 원문을 유지하고 영어 설명을 괄호 안에 추가하세요. 그런 다음 glossary.yaml의 pending에 추가하여 다음 사람이 다시 결정할 필요가 없도록 하세요.
도메인 조회
| 분야 | 디렉토리 |
|---|---|
| 에너지 및 환경 경제학 | domains/energy-env/ |
| 노동 경제학 | domains/labor/ |
| 교육 경제학 | domains/education/ |
| 보건 경제학 | domains/health/ |
| 행동 및 실험 경제학 | domains/behavioral/ |
| 개발 경제학 및 현장 실험 | domains/development/ |
| 재정 경제학 및 정책 평가 | domains/public/ |
| 산업 조직 및 규제 | domains/industrial-organization/ |
| 무역 및 공간 경제학 | domains/trade-spatial/ |
| 거시경제학 및 금융 | domains/macro-finance/ |
| 경제사 및 텍스트 자료 | domains/economic-history/ |
| 이론 모델링 및 메커니즘 디자인 | domains/theory/ |
12개 분야가 포함되어 있습니다. 처음 세 분야는 이 키트가 구축된 핵심 분야이며, 노동, 교육, 보건은 이 책이 응용 미시경제학 아래에서 함께 다루는 세 분야입니다. 나머지 분야는 응용 미시경제학 외부의 독자도 활용할 수 있도록 추가되었습니다.
각 분야에는 5개의 파일이 있습니다: institutional.md (배경 및 인용 가능한 문단), measures.md (처치 변수 구축 방법), data.md (출처 및 변수 이름), pitfalls.md (심사자가 묻는 것과 답변 방법), route.md (이 분야가 8단계를 어떻게 진행하는지).
데이터
data-dict/에는 중국 미시데이터 출처(CFPS, CHARLS, 중국 공업 기업 데이터베이스, 대기 오염 모니터링 데이터)가 있습니다. 변수 이름을 임의로 만들기 전에 확인하세요 — 데이터셋에 이미 해당 변수가 있을 가능성이 높습니다. 출처가 여기에 없으면 data-dict/README.md를 먼저 읽으세요: 어떤 출처는 항목이 있고 어떤 출처는 의도적으로 없으며, 추측한 변수 이름은 표시된 변수 이름보다 더 나쁩니다.
질문이 "이 변수의 이름은 무엇인가"가 아니라 "이 주제에 대한 출처가 존재하는가"일 경우, data-dict/_catalog.md와 scripts/lookup_source.py가 액세스 링크와 응용 논문이 포함된 1,000개 이상의 출처 외부 디렉토리를 검색합니다. 이 결과는 단서(lead)일 뿐, 항목(entry)이 아닙니다: 여기 있는 번호가 붙은 파일들만이 변수 수준의 세부 사항이 기록된 유일한 장소입니다.
이 키트가 하지 않는 일
- 여러분의 식별이 신뢰할 수 있는지 여부를 결정하지 않습니다. 위협을 기록하도록 강제할 뿐입니다.
- 인용하는 논문을 읽는 것을 대체하지 않습니다. 환각(hallucinated) 참고문헌은 AI 지원 작문에서 가장 흔한 실패입니다.
skills/writing/에는 검증 단계가 포함되어 있습니다. - 자체적으로 실행되지 않습니다.
scripts/의 스크립트는 구조를 확인합니다. 분석은 여러분의 몫입니다.