{"id":51035269,"url":"https://github.com/ranxi2001/kaggle-auto-research","last_synced_at":"2026-06-22T05:02:06.062Z","repository":{"id":363401754,"uuid":"1263004034","full_name":"ranxi2001/kaggle-auto-research","owner":"ranxi2001","description":"AI Agent 驱动的 Kaggle 竞赛自动研究框架，支持调研、EDA、特征工程、模型训练、迭代优化、集成与安全提交管理。","archived":false,"fork":false,"pushed_at":"2026-06-08T20:06:36.000Z","size":682,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T20:10:06.129Z","etag":null,"topics":["ai-agent","automation","cli","competition-framework","data-science","eda","feature-engineering","kaggle","kaggle-competition","typer"],"latest_commit_sha":null,"homepage":"https://github.com/ranxi2001/kaggel-auto-research","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ranxi2001.png","metadata":{"files":{"readme":"README-EN.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-08T14:26:35.000Z","updated_at":"2026-06-08T20:06:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ranxi2001/kaggle-auto-research","commit_stats":null,"previous_names":["ranxi2001/kaggle-auto-research"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ranxi2001/kaggle-auto-research","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranxi2001%2Fkaggle-auto-research","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranxi2001%2Fkaggle-auto-research/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranxi2001%2Fkaggle-auto-research/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranxi2001%2Fkaggle-auto-research/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ranxi2001","download_url":"https://codeload.github.com/ranxi2001/kaggle-auto-research/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ranxi2001%2Fkaggle-auto-research/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34635038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","automation","cli","competition-framework","data-science","eda","feature-engineering","kaggle","kaggle-competition","typer"],"created_at":"2026-06-22T05:02:01.184Z","updated_at":"2026-06-22T05:02:06.055Z","avatar_url":"https://github.com/ranxi2001.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://capsule-render.vercel.app/api?type=waving\u0026color=0:0EA5E9,100:7C3AED\u0026height=180\u0026section=header\u0026text=Kaggle%20Auto%20Research\u0026fontSize=38\u0026fontColor=ffffff\u0026animation=fadeIn\u0026fontAlignY=36\u0026desc=Agent-powered%20Kaggle%20competition%20automation\u0026descSize=16\u0026descAlignY=58\" alt=\"Kaggle Auto Research banner\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eAgent-oriented automation framework for Kaggle competitions\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./README.md\"\u003e简体中文\u003c/a\u003e\n  ·\n  \u003ca href=\"./README-EN.md\"\u003eEnglish\u003c/a\u003e\n  ·\n  \u003ca href=\"./AGENTS.md\"\u003eAgent Rules\u003c/a\u003e\n  ·\n  \u003ca href=\"./CONTRIBUTING.md\"\u003eContributing\u003c/a\u003e\n  ·\n  \u003ca href=\"./SECURITY.md\"\u003eSecurity\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Python\" src=\"https://img.shields.io/badge/Python-3.11%2B-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white\"\u003e\n  \u003cimg alt=\"Kaggle\" src=\"https://img.shields.io/badge/Kaggle-Automation-20BEFF?style=for-the-badge\u0026logo=kaggle\u0026logoColor=white\"\u003e\n  \u003cimg alt=\"Status\" src=\"https://img.shields.io/badge/Status-Experimental-F59E0B?style=for-the-badge\"\u003e\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/License-MIT-10B981?style=for-the-badge\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"pandas\" src=\"https://img.shields.io/badge/pandas-150458?style=flat-square\u0026logo=pandas\u0026logoColor=white\"\u003e\n  \u003cimg alt=\"NumPy\" src=\"https://img.shields.io/badge/NumPy-013243?style=flat-square\u0026logo=numpy\u0026logoColor=white\"\u003e\n  \u003cimg alt=\"scikit-learn\" src=\"https://img.shields.io/badge/scikit--learn-F7931E?style=flat-square\u0026logo=scikitlearn\u0026logoColor=white\"\u003e\n  \u003cimg alt=\"LightGBM\" src=\"https://img.shields.io/badge/LightGBM-02569B?style=flat-square\"\u003e\n  \u003cimg alt=\"XGBoost\" src=\"https://img.shields.io/badge/XGBoost-FF6600?style=flat-square\"\u003e\n  \u003cimg alt=\"Optuna\" src=\"https://img.shields.io/badge/Optuna-3.4%2B-334155?style=flat-square\"\u003e\n  \u003cimg alt=\"Typer\" src=\"https://img.shields.io/badge/Typer-CLI-0F766E?style=flat-square\"\u003e\n  \u003cimg alt=\"pytest\" src=\"https://img.shields.io/badge/pytest-ready-0A9EDC?style=flat-square\u0026logo=pytest\u0026logoColor=white\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#quick-start\"\u003e\u003cimg src=\"https://img.shields.io/badge/Quick_Start-0EA5E9?style=for-the-badge\" alt=\"Quick Start\"\u003e\u003c/a\u003e\n  \u003ca href=\"#common-cli\"\u003e\u003cimg src=\"https://img.shields.io/badge/Common_CLI-111827?style=for-the-badge\" alt=\"Common CLI\"\u003e\u003c/a\u003e\n  \u003ca href=\"#architecture\"\u003e\u003cimg src=\"https://img.shields.io/badge/Architecture-7C3AED?style=for-the-badge\" alt=\"Architecture\"\u003e\u003c/a\u003e\n  \u003ca href=\"#contributing\"\u003e\u003cimg src=\"https://img.shields.io/badge/Contributing-10B981?style=for-the-badge\" alt=\"Contributing\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nKaggle Auto Research turns competition research, data download, EDA, feature generation, model training, iterative improvement, ensembling, submission validation, and leaderboard feedback into reusable CLI stages and versioned workspace artifacts. The goal is not to write one-off competition scripts, but to give humans and coding agents a safe, reproducible way to keep improving results.\n\n\u003e This project is experimental. It is designed for research, prototyping, and internal competition workflows. Real Kaggle submissions are not executed automatically by default.\n\n## Project Positioning\n\nThis project focuses on the engineering problems that make real agent-driven Kaggle work fragile:\n\n- Short commands hide virtualenv and Kaggle CLI details, for example `kar auth` and `kar data drw-crypto`.\n- Workspaces isolate each competition's config, data, models, submissions, and experiment logs.\n- Versioned artifacts preserve models, OOF predictions, test predictions, and submission files.\n- Submission budgets and dry-run validation protect scarce Kaggle daily submissions.\n- Public notebooks, feature selection, CV, metrics, ensembling, and leaderboard feedback are meant to become reusable tools instead of one-off scripts.\n\nAt this stage, Kaggle Auto Research is a runnable open-source research toolkit, not a polished AutoML product. Contributions should prioritize agent operability, reproducibility, and safety boundaries.\n\n## Project Status\n\n- Current version: `0.1.0`\n- Python: `\u003e=3.11`\n- Main use cases: Kaggle tabular / time-series / low-signal competition automation\n- Default behavior: generate, validate, and log locally; never submit by default\n- Open-source entrypoints: [README.md](README.md), [AGENTS.md](AGENTS.md), [CONTRIBUTING.md](CONTRIBUTING.md), [SECURITY.md](SECURITY.md), [CHANGELOG.md](CHANGELOG.md)\n\n## Maturity\n\n| Module | Status | Notes |\n| --- | --- | --- |\n| Workspace / config | Usable | Supports multiple competition directories, templates, and basic config. |\n| Kaggle OAuth / data / leaderboard | Usable | `kar auth`, `kar data`, and `kar leaderboard` work directly. |\n| Baseline pipeline | Usable but early | Generic tabular flow runs; hard competitions still need recipes. |\n| DRW Crypto recipe | In active validation | Strong local OOF exists, but real LB calibration is still needed. |\n| Submit safety | Usable | Supports dry-run, budget status, and submission history. |\n| Experiment registry | Planned | Needs immutable run IDs, params, commands, data fingerprints, and runtime metadata. |\n| Notebook mining | Planned | Public notebook ideas can be absorbed manually; structured mining is not built yet. |\n| JSON output | Planned | Agent parsing still needs stable `--json` output. |\n\n## Highlights\n\n| Capability | Description |\n| --- | --- |\n| \u003cimg src=\"https://img.shields.io/badge/Agent-Workflow-7C3AED?style=flat-square\" alt=\"Agent Workflow\"\u003e | Research, EDA, Feature, Train, Iteration, and Submit stages communicate through filesystem artifacts. |\n| \u003cimg src=\"https://img.shields.io/badge/Workspace-Isolation-0EA5E9?style=flat-square\" alt=\"Workspace Isolation\"\u003e | Every competition keeps config, data, models, reports, and submissions under `workspaces/\u003ccompetition\u003e/`. |\n| \u003cimg src=\"https://img.shields.io/badge/Config-Source_of_Truth-10B981?style=flat-square\" alt=\"Config Source of Truth\"\u003e | `config.yaml` stores data paths, target columns, submission format, metrics, CV strategy, models, and submission budget. |\n| \u003cimg src=\"https://img.shields.io/badge/Artifacts-Versioned-F59E0B?style=flat-square\" alt=\"Versioned Artifacts\"\u003e | Features, models, OOF predictions, test predictions, and submissions are saved by version. |\n| \u003cimg src=\"https://img.shields.io/badge/Submit-Safe_by_Default-EF4444?style=flat-square\" alt=\"Safe Submit\"\u003e | The default flow generates and dry-run validates submission files; real submissions require explicit control. |\n| \u003cimg src=\"https://img.shields.io/badge/Notebook-Ingestion-334155?style=flat-square\" alt=\"Notebook Ingestion\"\u003e | Public notebooks can be pulled locally; future work will mine feature lists, model params, CV strategy, and ensemble formulas. |\n| \u003cimg src=\"https://img.shields.io/badge/Roadmap-Agent_Tooling-111827?style=flat-square\" alt=\"Agent Tooling Roadmap\"\u003e | See [docs/agent-tooling-roadmap.md](docs/agent-tooling-roadmap.md) for the Agent tooling roadmap. |\n\n## Current DRW Crypto Progress\n\nThis repository is using DRW Crypto Market Prediction as the first real tooling testbed.\n\n- Initial auto-feature baseline: CV R2 `-0.002859`\n- Clean feature selection + LightGBM: best single-model Pearson around `0.0724`\n- Public-notebook-style XGB time-slice: Pearson `0.053338`, but useful as an ensemble-diversity signal\n- Closed-form Ridge on top-correlation features: TimeSeriesSplit Pearson `0.143261`\n- Pearson OOF rank-normalized simplex ensemble: common-valid-OOF Pearson `0.149746`\n- Current best Kaggle submission: `sub_ensemble_ranknorm_v005_v010_v012_v015_v017_v018_v019_v020_v021_v022_v023_v024_v025_v026.csv`, public LB `0.08199`\n- Failed recency-proxy submission: `sub_calibrated_tail_cli_full.csv`, public LB `0.07184`\n- Next offline candidate: `sub_anchor_blend_conservative.csv`, a small rank blend around the best submitted anchor\n- Public leaderboard top is around `0.11 - 0.14`\n\nConclusion: the toolchain can run end-to-end and improve, but DRW exposed a clear CV/LB gap. The next submission should be anchor-calibrated against the best real LB result instead of blindly maximizing local tail proxies.\n\n## Tooling Gaps Exposed By The DRW Run\n\nThe recent DRW Crypto work showed that model code was not the main bottleneck. The missing infrastructure was:\n\n| Gap | Why it matters | Planned tool |\n| --- | --- | --- |\n| schema/config inspection | DRW's real target column is `label`, so templates cannot be trusted blindly. | `kar inspect \u003cworkspace\u003e --fix-config` |\n| metric contract | RMSE, R2, and Pearson confusion can mislead low-signal search. | `MetricSpec` + trainer validation |\n| experiment registry | Comparing runs currently requires scanning `models/vNNN` and metadata files. | `kar experiments` / immutable run registry |\n| submission metadata | Manual file submissions still need CV, model versions, and ensemble weights. | normalized submission `.json` files |\n| LB sync | Kaggle scores should be written back into local history after submission. | `kar sync-lb \u003cworkspace\u003e` |\n| LB-anchor calibration | Once real LB feedback exists, next candidates should stay close to the best submitted anchor and avoid known failed directions. | `kar drw-anchor-blend \u003cworkspace\u003e` |\n| anti-failed feedback probes | Failed submissions should become explicit negative directions, with candidate families that preserve anchor similarity while moving away from known bad geometry. | `kar drw-anti-failed \u003cworkspace\u003e` |\n| submission-geometry scoring | Candidate files can be ranked against real submitted anchors and failed directions before spending more Kaggle budget. | `kar drw-score-candidates \u003cworkspace\u003e` |\n| notebook miner | Public feature lists, CV schemes, and ensembles should become structured ideas. | `kar notebooks mine` |\n| recipe system | Commands like `drw-ridge` should graduate from hardcoded scripts into templates. | `kar run --template crypto/low_signal_feature_select` |\n| agent-friendly output | Long tables and styled output are not stable machine interfaces. | global `--json` + stable exit codes |\n\nSee [docs/agent-tooling-roadmap.md](docs/agent-tooling-roadmap.md) for the full roadmap.\n\n## Installation\n\n```bash\ngit clone https://github.com/ranxi2001/kaggel-auto-research.git\ncd kaggel-auto-research\n\npython -m venv .venv\n.venv\\Scripts\\activate\npip install -e .\n```\n\nOn Windows, the repository includes a short launcher:\n\n```bash\n.\\kar auth\n.\\kar ls\n```\n\nIn Git Bash:\n\n```bash\n./kar.cmd auth\n```\n\nDevelopment dependencies:\n\n```bash\npip install -e \".[dev]\"\n```\n\n## Quick Start\n\n```bash\n# 1. Authenticate with Kaggle\nkar auth\n\n# 2. Create a workspace\nkar init titanic --type tabular --url https://www.kaggle.com/competitions/titanic\n\n# 3. Download and extract data\nkar data titanic\n\n# 4. Run stages\nkar research titanic\nkar eda titanic\nkar train titanic\n\n# 5. Validate a submission without sending it to Kaggle\nkar submit titanic --dry-run -f submissions/sub_001.csv\n```\n\nFull pipeline:\n\n```bash\nkar pipeline titanic --full\n```\n\nImprovement loop:\n\n```bash\nkar pipeline titanic --iterate 5\nkar analyze titanic\nkar ensemble titanic\n```\n\n## Common CLI\n\n```bash\nkar ls\nkar auth\nkar init \u003cname\u003e --type tabular --url \u003ccompetition-url\u003e\nkar data \u003cname\u003e\nkar research \u003cname\u003e\nkar eda \u003cname\u003e\nkar eda \u003cname\u003e --features-only\nkar train \u003cname\u003e\nkar train \u003cname\u003e --trials 30\nkar pipeline \u003cname\u003e --full\nkar pipeline \u003cname\u003e --from train\nkar pipeline \u003cname\u003e --iterate 5\nkar status \u003cname\u003e\nkar analyze \u003cname\u003e\nkar ensemble \u003cname\u003e --top 5\nkar leaderboard \u003cname\u003e\nkar leaderboard \u003cname\u003e --top -n 10\nkar sync-lb \u003cname\u003e\nkar submit \u003cname\u003e --status\nkar submit \u003cname\u003e --history\nkar submit \u003cname\u003e --dry-run -f submissions/sub_001.csv\nkar submit \u003cname\u003e --flush\n```\n\nNote: `kar.cmd` is a short Windows launcher at the repository root, so users do not need to type `.\\.venv\\Scripts\\kar.exe`. After editable installation, `kar` also works directly.\n\n`kar submit \u003cname\u003e --status` shows the local budget date, next local reset date, and full reserve-queue filenames. Use it before `--flush` to confirm exactly which candidate will be submitted.\nIf the same submission file is queued more than once, the reserve entry is updated in place instead of duplicated.\n\nDRW Crypto research helpers:\n\n```bash\nkar drw-clean drw-crypto --top-k 130 --n-estimators 1200 --learning-rate 0.015\nkar drw-ridge drw-crypto --top-k 180 --alphas 300,1000,3000,10000 --cv timeseries\nkar drw-public drw-crypto --model lgbm --folds 3\nkar drw-ensemble drw-crypto --models v010,v011,v007,v003\nkar drw-ensemble drw-crypto --models v005,v010,v012,v015,v017,v018,v019,v020,v021,v022,v023,v024,v025,v026 --method optimize --transform ranknorm\nkar drw-tail-ensemble drw-crypto --samples 12000 --seed 47 --output-tag tail_cli\nkar drw-anchor-blend drw-crypto --output-tag anchor_blend_safe\nkar drw-anchor-blend drw-crypto --groups safe:v016+v017+v031+v032 --alpha-grid 0.15,0.18,0.19,0.20,0.21 --min-spearman 0.994 --max-rank-delta 0.025 --output-tag anchor_blend_conservative\nkar drw-anchor-blend drw-crypto --selection-metric utility --failed-threshold 0.935 --risk-penalty 0.60 --output-tag anchor_blend_utility_scan\nkar drw-anti-failed drw-crypto --beta-grid 0.04,0.06,0.08,0.10,0.12,0.15\nkar drw-score-candidates drw-crypto --output-tag candidate_geometry_score\nkar drw-score-candidates drw-crypto --output-tag candidate_geometry_score --json-output\nkar drw-compare-submissions drw-crypto --files sub_anchor_blend_utility_scan.csv,sub_anchor_blend_conservative.csv,sub_anti_failed_rank_beta020.csv\n```\n\n## Workspace Layout\n\n```text\nworkspaces/\u003ccompetition\u003e/\n|-- config.yaml\n|-- data/\n|   |-- raw/\n|   |-- processed/\n|   `-- features/\n|-- models/\n|   `-- v001/\n|       |-- model.pkl\n|       |-- cv_scores.json\n|       |-- oof_preds.npy\n|       |-- test_preds.npy\n|       `-- importance.csv\n|-- reports/\n|   |-- research_notes.md\n|   `-- eda_summary.md\n|-- submissions/\n|-- journal.json\n|-- idea_pool.json\n`-- .state/\n```\n\nLarge data, models, submissions, and caches are ignored by git.\n\n## Configuration Example\n\n```yaml\ncompetition:\n  name: \"titanic\"\n  url: \"https://www.kaggle.com/competitions/titanic\"\n  type: \"tabular\"\n  metric: \"accuracy\"\n  metric_direction: \"maximize\"\n\ndata:\n  train: \"data/raw/train.csv\"\n  test: \"data/raw/test.csv\"\n  sample_submission: \"data/raw/sample_submission.csv\"\n  target_column: \"Survived\"\n  id_column: \"PassengerId\"\n\nmodel:\n  primary: \"lightgbm\"\n  cv_strategy: \"stratified_kfold\"\n  cv_folds: 5\n  seed: 42\n\nsubmission:\n  auto_submit: false\n  best_threshold: 0.001\n  max_daily: 2\n```\n\nFor time-series, finance, and trading competitions, prefer time-based CV:\n\n```yaml\nmodel:\n  cv_strategy: \"time_series_split\"\n```\n\n## Architecture\n\n```text\nUser / Agent\n    |\n    v\nkar CLI\n    |\n    v\nPipeline Runner\n    |\n    +--\u003e Research Agent  --\u003e reports/research_notes.md\n    +--\u003e EDA Agent       --\u003e reports/eda_summary.md\n    +--\u003e Feature Agent   --\u003e data/features/v*.parquet\n    +--\u003e Train Agent     --\u003e models/v*/\n    +--\u003e Iteration Agent --\u003e journal.json, idea_pool.json\n    +--\u003e Submit Agent    --\u003e submissions/, .state/submission_budget.json\n```\n\nState machine:\n\n```text\nRESEARCH -\u003e EDA -\u003e FEATURES -\u003e TRAIN -\u003e EVALUATE -\u003e CANDIDATE_READY\n                                ^                       |\n                                |                       v\n                             ITERATE              USER DECISION\n                                                        |\n                                                        v\n                                                     SUBMIT\n```\n\nDetailed agent rules are in [AGENTS.md](AGENTS.md).\n\n## Why Agent-Oriented Tooling\n\nAgents usually fail Kaggle workflows because of operational issues, not because they cannot write model code:\n\n- wrong metric or CV setup;\n- mismatched config and data schema;\n- loading huge parquet files without sampling;\n- missing experiment metadata;\n- public notebook ideas not converted into structured candidates;\n- wasted submission budget;\n- CLI output that is hard to parse.\n\nThis project prioritizes those tooling problems before adding more model scripts.\n\n## Roadmap\n\nNear-term priorities:\n\n- `kar inspect \u003cworkspace\u003e --fix-config`: verify and patch schema/config mismatch.\n- Experiment registry: command, params, features, metric, CV, runtime, and status for every run.\n- Notebook miner: extract public feature lists, params, CV strategy, and ensemble formulas.\n- Recipe system: turn one-off commands like `drw-clean` into reusable templates.\n- OOF ensemble builder: grid/ridge/rank-average blends with metadata.\n- `--json` output for agent parsing.\n- `kar sync-lb`: sync Kaggle leaderboard scores and ranks into local history.\n\nFull roadmap: [docs/agent-tooling-roadmap.md](docs/agent-tooling-roadmap.md).\n\n## Safety\n\n- Kaggle submissions are never automatic by default.\n- Real submission, data/model deletion, credential edits, and remote pushes require explicit user intent.\n- Training, feature generation, submission file generation, dry-run validation, and experiment logging can run automatically.\n- Kaggle data, models, submissions, notebook caches, and local credentials should not be committed to git.\n\n## Contributing\n\nContributions are welcome, especially around agent reliability and open-source\ntooling:\n\n- `kar inspect \u003cworkspace\u003e` schema/config checks;\n- experiment registry and run metadata;\n- metric/CV contracts;\n- public notebook mining;\n- reusable recipe system;\n- OOF ensemble builders;\n- `--json` output and stable exit codes.\n\nRead [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request. Coding\nagents should read [AGENTS.md](AGENTS.md).\n\n## License\n\nMIT, see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Franxi2001%2Fkaggle-auto-research","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Franxi2001%2Fkaggle-auto-research","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Franxi2001%2Fkaggle-auto-research/lists"}