econ-research-kit

Kit d'actions pour la recherche empirique en économie — décompose une étude en huit étapes exécutables (faisabilité, identification, données, estimation, tableaux/figures, rapport, rédaction, révision), chacune avec ses entrées, ses étapes, ses fichiers produits et ses critères d'acceptation.

Qu'est-ce que econ-research-kit ?

Ce kit transforme un projet de recherche empirique en économie en une série d'étapes standardisées et exécutables, allant de la vérification de faisabilité jusqu'à la réponse aux rapporteurs. Contrairement à une simple collection de prompts, chaque compétence (skill) déclare explicitement ses entrées, ses artefacts produits et ses critères d'acceptation, garantissant ainsi la reproductibilité et la traçabilité du travail. Le kit est conçu pour être utilisé avec des agents d'IA comme Claude Code, mais aussi de manière autonome via des scripts Python qui vérifient la structure du projet. Il couvre les plateformes Stata et Python pour les analyses, et intègre des références à des bases de données chinoises (CFPS, CHARLS, etc.) ainsi qu'à douze domaines spécialisés (énergie, travail, éducation, santé, etc.). Le flux de travail est rigoureux : chaque étape doit produire un fichier, passer une liste de vérification et recueillir une confirmation humaine avant de passer à la suivante.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LWWalker2202/econ-research-kit/tree/HEAD

Installed? Explore more Recherche et analyse de données skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait econ-research-kit ?

La recherche en économie comme un ensemble d'étapes exécutables. Pas une collection de prompts — une bibliothèque de workflows où chaque compétence déclare ses entrées, ses artefacts et ses critères d'acceptation.

Ce que c'est, et ce que ce n'est pas

Ceci est un ensemble de huit compétences, chacune couvrant une étape d'un projet empirique. Chaque compétence vous indique quand y entrer, ce qu'elle nécessite, quoi faire, quels fichiers elle doit produire et comment vérifier le résultat.

Ceci n'est pas un dépôt de prompts. Un prompt produit du texte. Une compétence produit des fichiers qu'une autre personne peut relancer. Si une étape se termine par "l'assistant a écrit un joli paragraphe", l'étape n'a pas été accomplie.

Ceci n'est pas non plus un substitut à votre jugement sur l'identification. Les compétences ici vous obligent à énoncer vos hypothèses et leurs menaces. Elles ne peuvent pas vous dire si les hypothèses tiennent.

Ouvrage compagnon : book/ contient Prompt Engineering for Economists par LW Walker, avec chers amis et famille adorée, 208 pages et soixante modèles. Le livre explique pourquoi chaque étape est conçue ainsi ; ce dépôt dit quoi y faire. book/README.md fait correspondre les chapitres aux étapes.

Les huit étapes

#ÉtapeCompétenceLa question à laquelle elle répond
0Porte de faisabilitéskills/feasibility/Cela peut-il être fait avec les données et la variation disponibles ?
1Problème et littératureskills/literature/Le fossé est-il réel, et vaut-il un article ?
2Design d'identificationskills/identification/Quelle variation identifie l'effet, et qu'est-ce qui la briserait ?
3Donnéesskills/data-prep/Les variables sont-elles définies comme je le pense ?
4Estimationskills/estimation/La spécification est-elle défendable, et contre quoi chaque test de robustesse protège-t-il ?
5Tableaux et figuresskills/tables-figures/Les résultats respectent-ils le format de la revue ?
6Rapportskills/report/Quelqu'un d'autre peut-il reproduire cela à partir de mes fichiers ?
7Rédaction et soumissionskills/writing/La prose porte-t-elle l'histoire de l'identification ?
—Réponse aux rapporteursskills/review/Comment répondre sans concéder ce que je ne devrais pas ?

L'étape 0 est une porte, pas une étape. Si elle échoue, arrêtez-vous. Ne nettoyez pas les données pour un projet dont l'identification ne peut pas fonctionner.

Routage : ce que dit l'utilisateur, quelle compétence activer

Avant de lire le tableau ci-dessous, exécutez python scripts/preflight.py "<les mots de l'utilisateur>". Cela vous indique lesquelles des quatre cases sont manquantes. Ensuite, exécutez python scripts/spec.py "<les mots de l'utilisateur>" : cela imprime un brouillon de spécification de tâche — les quatre cases, l'étape lue, un prompt modifiable, et les trois choses à confirmer — et ce brouillon est ce que vous montrez à l'utilisateur avant d'effectuer tout travail. Modifiez-le ensemble, puis commencez. Chaque "premier geste" dans le tableau ne se produit qu'après que les quatre cases sont remplies ; tant qu'une case est ouverte, le seul geste est de poser une question à son sujet.

L'utilisateur dit quelque chose commeEntrerPremier geste
"我想研究 X,这东西能做吗?" / "有没有数据?" / "this is probably infeasible"skills/feasibility/Énumérer les données et la variation avant d'écrire du code
"这个题目有没有人做过?" / "novelty" / "文献缺口"skills/literature/Écrire d'abord le plan de recherche, puis construire la matrice
"我用 DID / IV / RDD / 事件研究" / "识别策略" / "how do I identify this"skills/identification/Écrire la liste des menaces avant la régression
"数据洗一下" / "变量怎么构造" / "merge 不上" / "口径"skills/data-prep/Vérifier d'abord les définitions des variables sur les années
"跑个回归" / "加固定效应" / "稳健性" / "robustness"skills/estimation/Justifier le niveau de clustering et l'ensemble des effets fixes
"做个表" / "三线表" / "画事件研究图" / "regression table"skills/tables-figures/Décider Stata ou Python, puis adapter le format de la revue
"整理成报告" / "复现" / "replication package"skills/report/Faire du rapport un résultat de script, jamais un fichier édité manuellement
"写摘要" / "写引言" / "投稿" / "abstract"skills/writing/Rédiger le paragraphe d'identification avant l'introduction
"审稿意见怎么回" / "referee report" / "rebuttal"skills/review/Classer chaque commentaire en doit-faire / discutable / rejetable

Si deux compétences pourraient toutes deux s'appliquer, remontez en amont. Un problème de tableau est généralement un problème de spécification ; un problème de spécification est généralement un problème d'identification.

Avant toute chose : rappel, puis demande

Chaque session commence par des fichiers, pas par la mémoire :

python scripts/recall.py

Cela indique où en est le projet, ce que la dernière étape a produit et ce qui est encore ouvert. Une session qui saute cette étape reposera des questions auxquelles le dépôt répond déjà, ou reconstruira quelque chose qui existe déjà. Exécutez-le d'abord, puis scripts/preflight.py, puis répondez.

Cinq règles strictes

1. Demandez avant de répondre : n'avancez pas tant que les quatre cases ne sont pas remplies. Pour toute demande de recherche, la première action est python scripts/preflight.py "<les mots de l'utilisateur dans leur propre langue>". Cela divise la question en quatre cases — unité d'analyse, variable de traitement, résultat, comparaison — et vous indique lesquelles manquent.

  • Cases manquantes : écrivez au plus trois questions, posez-les toutes à la fois, puis arrêtez-vous et attendez la réponse.
  • Une case que vous avez remplie par inférence doit être marquée "en supposant X", et l'utilisateur doit la confirmer.
  • Ce n'est que lorsque les quatre cases sont remplies — par l'utilisateur, ou par une hypothèse que l'utilisateur a confirmée — que vous pouvez entrer dans l'étape 2 de toute compétence. C'est la seule règle du kit qui exige de s'arrêter pour attendre un humain. Un travail produit au-delà de cette porte est une conjecture habillée en vêtements de document.

2. Lisez glossary.yaml avant d'écrire un terme méthodologique. Il a trois niveaux : locked (utilisez textuellement), pending (utilisez le premier candidat et mettez l'alternative entre parenthèses), fallback (gardez le nom propre chinois, donnez l'expansion anglaise une fois). Violer une traduction locked est un défaut, pas un choix de style.

3. Les spécificités de domaine vivent dans domains/, pas dans les compétences. Les compétences décrivent comment travailler. Elles ne décrivent pas ce qu'est 中央环保督察, comment le CFPS définit l'éducation, ou ce que les rapporteurs demandent sur l'exposition à la pollution. Chaque compétence a une dernière section qui indique quel fichier de domaine ouvrir. Ouvrez-le.

4. Chaque étape doit laisser un fichier, et chaque fichier doit passer sa liste d'acceptation. ## Acceptance est une liste de vérification, pas une suggestion. Un élément auquel vous ne pouvez pas répondre par oui/non est un élément mal rédigé — réécrivez-le.

5. Dites où vous êtes avant de faire quoi que ce soit d'autre. Chaque réponse qui entre dans une étape s'ouvre par trois lignes : quelle étape (numéro et nom), ce que cette seule étape fait (une phrase, jamais "analyser les données"), et quel fichier elle produira ainsi que si l'utilisateur doit confirmer avant que vous ne continuiez. Une réponse sans cet en-tête est une boîte noire, et l'utilisateur la paie.

Chaque étape se termine aussi en posant une question et en attendant. Voir le tableau ci-dessous.

Huit points de confirmation

La porte à l'étape 0 n'est pas la seule. Chaque étape se clôt par une question et s'arrête. Ce n'est pas de la politesse : une décision que l'utilisateur n'a jamais vue est une décision que l'utilisateur ne peut pas corriger.

ÉtapeLa question à poser et à attendreContinuer sans réponse
0 FaisabilitéLes quatre cases sont remplies ; pouvez-vous fixer les deux que j'ai inférées ?Non
1 Problème et littératureLaquelle de ces trois questions candidates ? Le fossé est-il celui-ci ?Non
2 Design d'identificationGroupe de traitement, groupe de comparaison, timing fixés ainsi : acceptez-vous ?Non
3 DonnéesDéfinitions des variables et limites de l'échantillon tracées ainsi : acceptez-vous ?Non
4 EstimationSpécification principale et cette liste de robustesse : ajoutez ou retirez quelque chose ?Non
5 Tableaux et figuresCette disposition de tableau et ce style de note : est-ce ce que vous voulez ?Non
6 RapportConclusion d'une page rédigée ainsi : un changement dans la lecture des chiffres ?Non
7 RédactionQuelle partie de ce brouillon revient en arrière ?Non
8 Réponse aux rapporteursRévisons-nous ce commentaire ou résistons-nous, et est-ce la raison ?Non

python scripts/stage.py 3 imprime l'en-tête et la question pour n'importe quelle étape, afin que le libellé ne dérive pas entre les sessions. workflows/main.yaml est la même ligne principale écrite comme un contrat de transfert lisible par machine : chaque étape déclare requires (ce qui doit déjà être sur le disque) et produces (ce qu'elle doit laisser derrière elle), et python scripts/workflow_check.py échoue si une étape nécessite quelque chose qu'aucune étape précédente ne produit. python scripts/gate.py status rend la porte mécanique plutôt qu'une convention : elle maintient un fichier d'état par projet (.econ-kit/gate.json), refuse d'avancer tant que les artefacts de l'étape n'existent pas et qu'une réponse humaine d'au moins huit caractères n'est pas enregistrée, et enregistre la réponse avec un horodatage. gate.py pass "<la réponse>" est le seul chemin possible ; --force existe mais écrit le manquement dans le dossier. Pour voir à quoi ressemblent réellement les vérifications de n'importe quelle étape, exécutez python scripts/explain.py 6 (--list montre les neuf étapes ; pour les étapes 3 et 4, qui ont déjà des scripts exécutables, il pointe vers ces scripts et vers la liste d'acceptation de la compétence à la place).

Quand un terme est incertain

Ne choisissez jamais silencieusement une traduction. Si le terme est dans pending, utilisez le premier candidat et ajoutez l'alternative entre parenthèses. Marquez au plus trois de ces endroits dans une même sortie ; au-delà, utilisez le premier candidat silencieusement et ajoutez une ligne de résumé à la fin.

Si le terme n'est pas du tout dans le glossaire, gardez l'original chinois et donnez une expansion anglaise entre parenthèses. Ajoutez-le ensuite à pending dans glossary.yaml pour que la personne suivante n'ait pas à décider à nouveau.

Recherche par domaine

DirectionRépertoire
Économie de l'énergie et de l'environnementdomains/energy-env/
Économie du travaildomains/labor/
Économie de l'éducationdomains/education/
Économie de la santédomains/health/
Économie comportementale et expérimentaledomains/behavioral/
Économie du développement et expériences de terraindomains/development/
Économie publique et évaluation des politiquesdomains/public/
Organisation industrielle et régulationdomains/industrial-organization/
Économie du commerce et de l'espacedomains/trade-spatial/
Macroéconomie et financedomains/macro-finance/
Histoire économique et sources textuellesdomains/economic-history/
Modélisation théorique et conception de mécanismesdomains/theory/

Douze directions sont couvertes. Les trois premières sont celles autour desquelles ce kit a été construit ; le travail, l'éducation et la santé sont les trois domaines que le livre traite ensemble sous la rubrique microéconomie appliquée ; les autres ont été ajoutées pour qu'un lecteur extérieur à la microéconomie appliquée trouve encore une étagère sur laquelle s'appuyer.

Chaque direction a cinq fichiers : institutional.md (contexte et paragraphes prêts à citer), measures.md (comment la variable de traitement est construite), data.md (sources et noms de variables), pitfalls.md (ce que les rapporteurs demandent et comment répondre), et route.md (comment cette direction parcourt les huit étapes).

Données

data-dict/ contient des sources de micro-données chinoises : CFPS, CHARLS, la base de données des entreprises industrielles chinoises, et les données de surveillance de la pollution. Vérifiez-le avant d'inventer un nom de variable — l'ensemble de données en a probablement déjà un. Si votre source ne s'y trouve pas, lisez d'abord data-dict/README.md : certaines sources ont une entrée et d'autres délibérément pas, et un nom de variable deviné est pire qu'un nom marqué.

Lorsque la question n'est pas "comment s'appelle cette variable" mais "existe-t-il même une source pour cela", data-dict/_catalog.md et scripts/lookup_source.py recherchent dans un répertoire externe de plus d'un millier de sources avec des liens d'accès et des articles d'application. Ces résultats sont des pistes, pas des entrées : les fichiers numérotés ici restent le seul endroit où les détails au niveau des variables sont consignés.

Ce que ce kit ne fera pas

  • Il ne décidera pas si votre identification est crédible. Il vous fera écrire les menaces.
  • Il ne remplacera pas la lecture de l'article que vous citez. Les références hallucinées sont la défaillance la plus courante de l'écriture assistée par IA ; skills/writing/ inclut une étape de vérification.
  • Il ne s'exécutera pas tout seul. Les scripts dans scripts/ vérifient la structure ; l'analyse vous appartient.

Skills associés