Research Skill
Purpose
Read the materialized research source and extract actionable information needed to implement the proposed method. Record the findings as a structured JSON entry.
When to Use
Phase 2 — after the current implementation has been analyzed.
Input
| Parameter |
Type |
Description |
| experiment_path |
path |
experiments/{research_name}/ |
The research source was materialized into {experiment_path} during Phase 0. Its local path is recorded in {experiment_path}/log.json under metadata.research_source, and a short descriptive label Phase 0 chose is under metadata.research_source_kind. The label is free-form (common values: pdf, file, git, kaggle_notebook, kaggle_dataset, arxiv, huggingface_model, html, idea, other), but treat it as a hint only — always follow the actual path in metadata.research_source.
Inspect that path and read whatever is there:
- A single file (PDF, Markdown, HTML,
.ipynb, text, …) → read it directly.
- A directory → read the obvious entry points first (
README*, *.ipynb, top-level notebooks or code, docs/, dataset descriptions), then skim the rest as needed.
- A text idea (
research_source_kind == "idea", typically a short research_source.md) → read the user's description carefully and turn it into a concrete method plan. Pick a specific algorithm / library that matches the description, define the hyperparameters you will use, and document your interpretation explicitly in the Phase 2 log entry. If the idea is ambiguous, commit to a reasonable default and note the trade-off — do not invent a citation or claim the idea came from a paper.
Do not try to re-fetch the source. If the content is insufficient, note what is missing in the Phase 2 log entry and proceed with the best analysis you can.
Actions
Read the materialized research source at metadata.research_source (falling back to research.pdf for legacy experiments) and extract:
- Method Summary: 2-3 short paragraphs describing what the paper proposes, what problem it solves, and how it differs from traditional approaches.
- Pros: each advantage the paper claims or demonstrates.
- Cons: stated or inferred limitations, assumptions, or weaknesses.
- Implementation Requirements:
- Required libraries/packages (with versions if specified)
- Required data format or preprocessing
- Required compute resources (GPU, memory, etc.)
- Key hyperparameters to set
- Compatibility Analysis:
- Can the method use the same data as the current baseline?
- Does it need different preprocessing?
- Does it output comparable predictions (same format)?
- Can the same metrics be used for comparison?
Append a Phase 2 entry to {experiment_path}/log.json under phases:
{
"name": "Phase 2: Research",
"completed_at": "2026-04-17T10:30:00Z",
"paper": {
"title": "CatBoost: Unbiased Boosting with Categorical Features",
"authors": ["Prokhorenkova et al."],
"method_summary": "CatBoost is a gradient-boosting framework that handles categorical features natively via ordered target statistics and uses oblivious decision trees to reduce overfitting."
},
"pros": [
"Native categorical handling — no manual encoding needed",
"Reduces target leakage with ordered boosting",
"Strong out-of-the-box performance"
],
"cons": [
"Training slower than XGBoost for small data",
"More memory intensive"
],
"requirements": {
"new_dependencies": ["catboost>=1.2"],
"data_format": "pandas.DataFrame with categorical columns marked",
"compute": "CPU is sufficient; GPU optional"
},
"compatibility": {
"same_data": true,
"same_metrics": true,
"preprocessing_notes": "CatBoost takes raw categorical columns; do NOT pre-encode them for the new notebook."
}
}
Do not overwrite earlier entries; append to the phases array.
Output
{experiment_path}/log.json — updated with Phase 2 research entry
- No other files created or modified
1---2name: research3description: Research Skill4---5# Research Skill67## Purpose8Read the materialized research source and extract actionable information needed to implement the proposed method. Record the findings as a structured JSON entry.910## When to Use11Phase 2 — after the current implementation has been analyzed.1213## Input14| Parameter | Type | Description |15|-----------|------|-------------|16| experiment_path | path | `experiments/{research_name}/` |1718The research source was materialized into `{experiment_path}` during Phase 0. Its local path is recorded in `{experiment_path}/log.json` under `metadata.research_source`, and a short descriptive label Phase 0 chose is under `metadata.research_source_kind`. The label is free-form (common values: `pdf`, `file`, `git`, `kaggle_notebook`, `kaggle_dataset`, `arxiv`, `huggingface_model`, `html`, `idea`, `other`), but treat it as a hint only — always follow the actual path in `metadata.research_source`.1920Inspect that path and read whatever is there:2122- A single file (PDF, Markdown, HTML, `.ipynb`, text, …) → read it directly.23- A directory → read the obvious entry points first (`README*`, `*.ipynb`, top-level notebooks or code, `docs/`, dataset descriptions), then skim the rest as needed.24- A text **idea** (`research_source_kind == "idea"`, typically a short `research_source.md`) → read the user's description carefully and turn it into a concrete method plan. Pick a specific algorithm / library that matches the description, define the hyperparameters you will use, and document your interpretation explicitly in the Phase 2 log entry. If the idea is ambiguous, commit to a reasonable default and note the trade-off — do not invent a citation or claim the idea came from a paper.2526Do not try to re-fetch the source. If the content is insufficient, note what is missing in the Phase 2 log entry and proceed with the best analysis you can.2728## Actions29301. **Read the materialized research source** at `metadata.research_source` (falling back to `research.pdf` for legacy experiments) and extract:3132 - **Method Summary:** 2-3 short paragraphs describing what the paper proposes, what problem it solves, and how it differs from traditional approaches.33 - **Pros:** each advantage the paper claims or demonstrates.34 - **Cons:** stated or inferred limitations, assumptions, or weaknesses.35 - **Implementation Requirements:**36 - Required libraries/packages (with versions if specified)37 - Required data format or preprocessing38 - Required compute resources (GPU, memory, etc.)39 - Key hyperparameters to set40 - **Compatibility Analysis:**41 - Can the method use the same data as the current baseline?42 - Does it need different preprocessing?43 - Does it output comparable predictions (same format)?44 - Can the same metrics be used for comparison?45462. **Append a Phase 2 entry to `{experiment_path}/log.json`** under `phases`:47 ```json48 {49 "name": "Phase 2: Research",50 "completed_at": "2026-04-17T10:30:00Z",51 "paper": {52 "title": "CatBoost: Unbiased Boosting with Categorical Features",53 "authors": ["Prokhorenkova et al."],54 "method_summary": "CatBoost is a gradient-boosting framework that handles categorical features natively via ordered target statistics and uses oblivious decision trees to reduce overfitting."55 },56 "pros": [57 "Native categorical handling — no manual encoding needed",58 "Reduces target leakage with ordered boosting",59 "Strong out-of-the-box performance"60 ],61 "cons": [62 "Training slower than XGBoost for small data",63 "More memory intensive"64 ],65 "requirements": {66 "new_dependencies": ["catboost>=1.2"],67 "data_format": "pandas.DataFrame with categorical columns marked",68 "compute": "CPU is sufficient; GPU optional"69 },70 "compatibility": {71 "same_data": true,72 "same_metrics": true,73 "preprocessing_notes": "CatBoost takes raw categorical columns; do NOT pre-encode them for the new notebook."74 }75 }76 ```7778 Do not overwrite earlier entries; append to the `phases` array.7980## Output81- `{experiment_path}/log.json` — updated with Phase 2 research entry82- No other files created or modified