Skip to content

Commit 2f457dd

Browse files
feat: add safe and audited Kaggle research integration (#66)
* docs: design Kaggle research integration * docs: fix design spec formatting * docs: plan Kaggle research integration * fix: stabilize skill ordering across platforms * feat: add Kaggle command policy and security boundary * feat: add audited Kaggle subprocess runtime * feat: add Kaggle CLI and live read-only smoke workflow * docs: add Kaggle research skill workflows * fix: make validation gates cross-platform * feat: integrate Kaggle research into AERS catalog * chore: remove Kaggle implementation notes from final tree * fix: enforce policy across Kaggle aliases and nested resources * chore: refresh Kaggle catalog metadata * fix: keep generated release links canonical across forks * Potential fix for pull request finding Build the CommandRequest once before execution and propagate its capture_limit to both the printed audit record and the optional audit file. This removes the hard-coded capture-size expression, keeps audit output consistent with the CommandRequest contract, and preserves the existing 16 KiB default behavior. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent fc8909d commit 2f457dd

56 files changed

Lines changed: 2878 additions & 163 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ repos:
1818
entry: python3 -m unittest discover -s tests -p "test_*.py"
1919
language: system
2020
pass_filenames: false
21-
files: ^(tests/|eval-harness/|benchmark/|scripts/)
21+
files: ^(tests/|eval-harness/|benchmark/|scripts/|skills/72-kaggle-research/)
2222
- id: aers-python-compat
2323
name: AERS Python tooling compile
2424
entry: make python-compat
2525
language: system
2626
pass_filenames: false
27-
files: ^(tests/|eval-harness/|benchmark/|scripts/|Makefile)
27+
files: ^(tests/|eval-harness/|benchmark/|scripts/|skills/72-kaggle-research/|Makefile)
2828
- id: aers-benchmark
2929
name: AERS benchmark (strict)
3030
entry: bash -c 'python3 benchmark/check_benchmark.py --lint >/dev/null && python3 benchmark/reference_pipeline.py --check >/dev/null && python3 benchmark/check_benchmark.py --strict --fail-on-partial --fail-on-orphan-results >/dev/null'

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,14 @@ benchmark-refresh:
9292
# Stdlib unittest suite (no third-party deps required).
9393
test:
9494
python3 -m unittest discover -s tests -p "test_*.py"
95+
python3 -m unittest discover -s skills/72-kaggle-research/kaggle-research/tests -p "test_*.py"
9596

9697
# Compile all repo-owned Python tooling with the active interpreter. In CI this
9798
# runs on the Python 3.9/3.12 matrix and catches syntax drift in scripts that
9899
# are not imported by the unit suite.
99100
python-compat:
100101
python3 -m py_compile scripts/*.py benchmark/*.py benchmark/lib/*.py eval-harness/*.py tests/*.py
102+
python3 -m py_compile skills/72-kaggle-research/kaggle-research/scripts/*.py skills/72-kaggle-research/kaggle-research/scripts/kaggle_runtime/*.py skills/72-kaggle-research/kaggle-research/tests/*.py
101103

102104
# Full local gate: everything a PR should pass.
103105
check: validate python-compat test eval-harness eval-smoke benchmark-lint benchmark

README-en.md

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<br/>
3232
</div>
3333

34-
> ### 🚀 New here? Open the **[Skill Search →](docs/search.html)** to filter all 1,095 skills by method, stage, language, and license. The 5-minute tour (`make quickstart`) prints the same picture in your terminal.
34+
> ### 🚀 New here? Open the **[Skill Search →](docs/search.html)** to filter all 1,096 skills by method, stage, language, and license. The 5-minute tour (`make quickstart`) prints the same picture in your terminal.
3535
>
3636
> ### 🌐 **English readers:** you're in the right place. 🇨🇳 **中文用户请直接看 [`README.md`](README.md) (默认中文入口)** — the default repository README is the Chinese-language one.
3737
@@ -51,17 +51,17 @@
5151

5252
## Start Here: The Repo Is One AERS Router Skill
5353

54-
This repository can be imported from its root as one skill in Codex, CodeBuddy, Claude Code, or similar IDEs. The root [`SKILL.md`](SKILL.md) registers `auto-empirical-research-skills`; it routes each empirical-research task to the right vendored child skill instead of loading all 75 collections and 1,095 skills into context at once.
54+
This repository can be imported from its root as one skill in Codex, CodeBuddy, Claude Code, or similar IDEs. The root [`SKILL.md`](SKILL.md) registers `auto-empirical-research-skills`; it routes each empirical-research task to the right vendored child skill instead of loading all 76 collections and 1,096 skills into context at once.
5555

5656
- **Whole-repo import**: select the repository root and let [`agents/openai.yaml`](agents/openai.yaml) plus the root [`SKILL.md`](SKILL.md) register one catalog router. The agent should inspect [`catalog/skills.json`](catalog/skills.json) or [`docs/SKILL_CATALOG.md`](docs/SKILL_CATALOG.md), then read only the selected child skill.
57-
- **Single-skill import**: if an IDE expects one folder per skill, copy the child folder that directly contains the target `SKILL.md`, such as `skills/50-brycewang-aer-skills/skills/aer-workflow/`. Do not expect a recursive import of the repo root to register 1,095 separate skills unless the IDE explicitly supports that.
57+
- **Single-skill import**: if an IDE expects one folder per skill, copy the child folder that directly contains the target `SKILL.md`, such as `skills/50-brycewang-aer-skills/skills/aer-workflow/`. Do not expect a recursive import of the repo root to register 1,096 separate skills unless the IDE explicitly supports that.
5858
- **Install details**: see [`docs/INSTALL.md`](docs/INSTALL.md). Simplified Chinese is now the default README at [`README.md`](README.md); this English version lives at [`README-en.md`](README-en.md).
5959

6060
---
6161

62-
## All 75 skill collections at a glance
62+
## All 76 skill collections at a glance
6363

64-
> **Open the repo → see the whole library.** All **75 collections · 1,095 skills**, numbered `00 → 71`, every one **vendored into this repo** (not just linked out) and tracked in [`catalog/skills.json`](catalog/skills.json). **Click any row to open its folder.** **⭐ = first-party skills built by the Stanford REAP × CoPaper.AI team**; everything else is curated, security-audited community work.
64+
> **Open the repo → see the whole library.** All **76 collections · 1,096 skills**, numbered `00 → 72`, every one **vendored into this repo** (not just linked out) and tracked in [`catalog/skills.json`](catalog/skills.json). **Click any row to open its folder.** **⭐ = first-party skills built by the Stanford REAP × CoPaper.AI team**; everything else is curated, security-audited community work.
6565
>
6666
> **Theme key —** 🚀 full-pipeline & orchestrators · 🎯 causal inference & econometrics · 📚 literature & research design · ✍️ writing, editing & de-AIGC · 📑 citation, replication & peer review · 🛠️ data, tooling & infrastructure
6767
@@ -142,10 +142,11 @@ This repository can be imported from its root as one skill in Codex, CodeBuddy,
142142
|**69** | **[Paper-WorkFlow](skills/69-Paper-WorkFlow/)** 🧭 | Meta-orchestrator chaining the whole social-science pipeline | 🚀 | 1 |
143143
| **70** | [ssci-polish](skills/70-ssci-polish/) | SSCI/SCI English academic-paper language polishing — grammar, readability, academic tone | ✍️ | 1 |
144144
|**71** | **[lit-review-agent-tools](skills/71-brycewang-lit-review-agent-tools/)** 🔍 | Pick *and run* open-source lit-review tools — MinerU / PaperQA2 / ASReview / STORM + MCP servers | 📚 | 1 |
145+
|**72** | **[Kaggle Research](skills/72-kaggle-research/)** 🧪 | Safe, audited Kaggle discovery and bounded public-data downloads through the official CLI | 🛠️ | 1 |
145146

146-
> **The spine we built ourselves:** [StatsPAI](skills/00-Full-empirical-analysis-skill_StatsPAI/) (the causal engine) · the explicit [Python](skills/00.1-Full-empirical-analysis-skill_Python/) / [Stata](skills/00.2-Full-empirical-analysis-skill_Stata/) / [R](skills/00.3-Full-empirical-analysis-skill_R/) full-pipeline ports · [AER-skills](skills/50-brycewang-aer-skills/) (top-5 submission stack) · [chinese-de-aigc](skills/48-copaper-ai-chinese-de-aigc/) · [Paper-WorkFlow](skills/69-Paper-WorkFlow/) (meta-orchestrator). These are the spine of AERS — full comparison in [The flagship pipeline skills ↓](#the-flagship-pipeline-skills). Prefer to browse by purpose? See [the same 75 grouped by what they do ↓](#the-75-grouped-by-what-they-do).
147+
> **The spine we built ourselves:** [StatsPAI](skills/00-Full-empirical-analysis-skill_StatsPAI/) (the causal engine) · the explicit [Python](skills/00.1-Full-empirical-analysis-skill_Python/) / [Stata](skills/00.2-Full-empirical-analysis-skill_Stata/) / [R](skills/00.3-Full-empirical-analysis-skill_R/) full-pipeline ports · [AER-skills](skills/50-brycewang-aer-skills/) (top-5 submission stack) · [chinese-de-aigc](skills/48-copaper-ai-chinese-de-aigc/) · [Paper-WorkFlow](skills/69-Paper-WorkFlow/) (meta-orchestrator). These are the spine of AERS — full comparison in [The flagship pipeline skills ↓](#the-flagship-pipeline-skills). Prefer to browse by purpose? See [the same 76 grouped by what they do ↓](#the-76-grouped-by-what-they-do).
147148
148-
**The empirical-research specialist's agent-skills distribution.** Not a marketing list — **1,095 skills vendored and cataloged** in this repo, wrapped in a **numeric benchmark, an eval harness, a security audit, and CI**, plus a curated map of **23,000+ skills across 119 repositories** in the wider ecosystem.
149+
**The empirical-research specialist's agent-skills distribution.** Not a marketing list — **1,096 skills vendored and cataloged** in this repo, wrapped in a **numeric benchmark, an eval harness, a security audit, and CI**, plus a curated map of **23,000+ skills across 119 repositories** in the wider ecosystem.
149150

150151
AERS is two things at once: (1) a small set of **first-party flagship skills** that run the full empirical pipeline — data cleaning → identification → estimation → robustness → tables/figures → submission-ready draft — and (2) a **curated, security-aware catalog** of the empirical-research skill ecosystem, organized by research-workflow stage. The differentiator is not the count; it is that the flagship behavior is **verified against known answers**, not asserted.
151152

@@ -159,8 +160,8 @@ AERS is two things at once: (1) a small set of **first-party flagship skills** t
159160
160161
## Contents
161162
162-
- [**All 75 skill collections at a glance** (the full `00 → 71` index)](#all-75-skill-collections-at-a-glance)
163-
- [The 75, grouped by what they do](#the-75-grouped-by-what-they-do)
163+
- [**All 76 skill collections at a glance** (the full `00 → 72` index)](#all-76-skill-collections-at-a-glance)
164+
- [The 76, grouped by what they do](#the-76-grouped-by-what-they-do)
164165
- [What you actually get (the numbers, precisely)](#what-you-actually-get-the-numbers-precisely)
165166
- [Verify it yourself in 2 minutes](#verify-it-yourself-in-2-minutes)
166167
- [Why trust this — three layers](#why-trust-this--three-layers)
@@ -179,9 +180,9 @@ AERS is two things at once: (1) a small set of **first-party flagship skills** t
179180
180181
---
181182
182-
## The 75, grouped by what they do
183+
## The 76, grouped by what they do
183184
184-
> Same **75 collections · 1,095 skills** as the [sequential index at the top ↑](#all-75-skill-collections-at-a-glance) — re-sorted here **by research purpose** so you can scan to the stage you're working on. **⭐ = first-party** (Stanford REAP × CoPaper.AI); everything else is curated, security-audited community work.
185+
> Same **76 collections · 1,096 skills** as the [sequential index at the top ↑](#all-76-skill-collections-at-a-glance) — re-sorted here **by research purpose** so you can scan to the stage you're working on. **⭐ = first-party** (Stanford REAP × CoPaper.AI); everything else is curated, security-audited community work.
185186
186187
**🚀 Full-pipeline flagships & orchestrators***one call, the whole empirical loop*
187188
@@ -287,6 +288,7 @@ AERS is two things at once: (1) a small set of **first-party flagship skills** t
287288
| [`57` · edgartools](skills/57-dgunning-edgartools/) | Query & analyze SEC filings | 1 |
288289
| [`66` · empirical-research-skills](skills/66-zheng-siyao-empirical-research-skills/) | R performance optimization for large panels | 7 |
289290
| [`68` · research-productivity-skills](skills/68-research-productivity-skills/) | Paper search, SSRN, DOI lookup, downloads | 5 |
291+
| ⭐ **[`72` · Kaggle Research](skills/72-kaggle-research/)** 🧪 | Safe, audited Kaggle discovery and bounded public-data downloads | 1 |
290292
291293
---
292294
@@ -296,8 +298,8 @@ Numbers in this README are kept honest and disambiguated. "Vendored" means the f
296298
297299
| What it is | Count | Source of truth |
298300
|---|---:|---|
299-
| Skills **vendored into this repo** and cataloged | **1,095** | [`catalog/skills.json`](catalog/skills.json) |
300-
| Vendored **collections** | **75** | [`catalog/skills.json`](catalog/skills.json) · [all 75 at a glance ↑](#all-75-skill-collections-at-a-glance) |
301+
| Skills **vendored into this repo** and cataloged | **1,096** | [`catalog/skills.json`](catalog/skills.json) |
302+
| Vendored **collections** | **76** | [`catalog/skills.json`](catalog/skills.json) · [all 76 at a glance ↑](#all-76-skill-collections-at-a-glance) |
301303
| **First-party flagship** full-pipeline skills (StatsPAI DSL + explicit Python/Stata/R) | **4** | [`skills/00*`](skills/) |
302304
| Numeric **benchmark tasks** with gold values recomputed from data each run | **17** | [`benchmark/`](benchmark/) |
303305
| Behavioral **eval scenarios / rubric items** | **37 / 183** | [`eval-harness/`](eval-harness/) |
@@ -403,7 +405,7 @@ Public-skill counts are easy to inflate, and recent studies show large skill ind
403405
| **Numeric benchmark** | Reported numbers that don't match truth recomputed from real data — the naive-DID sign trap, weak-IV without first-stage F, TWFE bias under staggered timing, RDD trend confound, post-treatment bad controls, omitted unit heterogeneity (panel FE), dynamic effects / pre-trends (event study), omitted-control bias under cross-fitting (DML), censoring (survival), prior sensitivity (Bayesian), pre-period donor fit (synthetic control), opposite-signed subgroup effects a pooled mean hides (CATE), tail-only gains a mean-only report misses (QTE), local-shock confounding in a shift-share (Bartik) IV, mediator-as-control sign flips (mediation), and reference-dependent gap splits (Oaxaca-Blinder), and excess mass at a kink hidden by the unmodified baseline (bunching) | [`benchmark/`](benchmark/) · 17 tasks |
404406
| **Eval harness** | Prose-level failures: weak-IV false reassurance, staggered-DID TWFE misuse, fabricated citations, unsafe `curl \| bash` setup, multiple-testing abuse, AER compliance gaps | [`eval-harness/`](eval-harness/) · 37 scenarios / 183 rubric items |
405407
| **Security audit** | Pipe-to-shell, reverse shells, credential exfiltration, prompt injection across 13 risk categories — 6-phase, 40+ hook scripts reviewed by hand | [`SECURITY-SCAN-REPORT.md`](SECURITY-SCAN-REPORT.md) |
406-
| **Provenance & license** | Unvendored sources, license risk, hygiene drift across all 1,095 cataloged skills | [`docs/LICENSE_AUDIT.md`](docs/LICENSE_AUDIT.md) · [`docs/SKILL_HYGIENE.md`](docs/SKILL_HYGIENE.md) |
408+
| **Provenance & license** | Unvendored sources, license risk, hygiene drift across all 1,096 cataloged skills | [`docs/LICENSE_AUDIT.md`](docs/LICENSE_AUDIT.md) · [`docs/SKILL_HYGIENE.md`](docs/SKILL_HYGIENE.md) |
407409
| **CI & compatibility** | Catalog freshness, broken local links, GitHub Actions policy, Python 3.9 **and** 3.12 syntax floor | [`.github/workflows/`](.github/workflows/) · 7 workflows |
408410
409411
```bash
@@ -418,7 +420,7 @@ The trust surface is **necessary, not sufficient** — regex rubrics don't certi
418420
419421
## Browse the landscape
420422
421-
> 📚 The full **[75-collection directory ↑](#all-75-skill-collections-at-a-glance)** is at the top of this README — this section drills into the ecosystem by theme.
423+
> 📚 The full **[76-collection directory ↑](#all-76-skill-collections-at-a-glance)** is at the top of this README — this section drills into the ecosystem by theme.
422424
423425
### By research stage
424426

0 commit comments

Comments
 (0)