Agent skill

Research Question

by gaasher in gaasher/Agent-Loop-Skills

A skill your agent uses when the user has a vague topic or area of interest and wants it sharpened into a few strong, novel, feasible research questions.

MITAuto-check passedResearch & Science

Install Research Question

skills CLI
$ npx skills add gaasher/Agent-Loop-Skills --skill research-question -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gaasher/Agent-Loop-Skills research-question --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gaasher/Agent-Loop-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/loops/research-question .claude/skills/research-question && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
research-question
GitHub stars
174
Token cost
~2.5k tokens
SKILL.md length
1,263 words
Files
2
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when the user has a vague topic or area of interest and wants it sharpened into a few strong, novel, feasible research questions.

  • Works in 4 steps: Gather novelty evidence. Run the for… → Score. Spawn a fresh Grader… → Diagnose & revise. Find each promising… → …
  • The user has a vague topic
  • SKILL.md covers Scope & limitations, When to use, Setup and The loop, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Research Question is an agent skill from gaasher/Agent-Loop-Skills. Use when the user has a vague topic or area of interest and wants it sharpened into a few strong, novel, feasible research questions. Drafts candidate questions, scores each against a fixed rubric (Specific, Answerable, Novel, Feasible, Significant) with a light literature/web novelty check, and revises the weakest axis until enough questions clear the bar. Not for grading a full written proposal (use the research-proposal loop), and not for turning a question into testable predictions (use the…

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `examples/run.example.yaml`). Compatibility notes: Requires Python 3.9+

It sits in Research & Science, covering Hypothesis generation and Creative writing and fiction. The repository describes itself as: Loop until it's better — drop-in agentic loops (autoresearch, scientific writing, data analysis, code/SQL/prompt optimization, red-teaming) as open-standard Agent Skills… The licence is MIT.

When your agent uses it

  • The user has a vague topic
  • Area of interest and wants it sharpened into a few strong
  • Feasible research questions

Example prompts

  • “/research-question”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Requires Python 3.9+

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Gather novelty evidence. Run the for each candidate's core
  2. Score. Spawn a fresh Grader (spawn-or-degrade) and hand it each candidate plus its evidence;
  3. Diagnose & revise. Find each promising question's lowest axis and make one focused move on
  4. Log one ledger row and continue until are strong.

What it can do on your machine

Read from SKILL.md and the folder at commit f1169e6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires Python 3.9+

    From compatibility in the SKILL.md frontmatter.

Context cost

Research Question loads about 2.5k tokens when it runs. Until then it costs about 137 tokens; SKILL.md has 1,263 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~137
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from gaasher/Agent-Loop-Skills at commit f1169e6, republished under its MIT licence (© gaasher). 1,263 words, ~2,515 tokens.

Download SKILL.mdSave it as .claude/skills/research-question/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
research-question
description
Use when the user has a vague topic or area of interest and wants it sharpened into a few strong, novel, feasible research questions. Drafts candidate questions, scores each against a fixed rubric (Specific, Answerable, Novel, Feasible, Significant) with a light literature/web novelty check, and revises the weakest axis until enough questions clear the bar. Not for grading a full written proposal (use the research-proposal loop), and not for turning a question into testable predictions (use the hypothesis-generation loop).
compatibility
Requires Python 3.9+
metadata.version
0.1.0

Research Question Loop

A sharpen → score → revise loop for the framing stage of research. The artifact is a small set of research questions; the feedback signal is how many clear the bar — each scored 0-5 on five fixed axes (Specific, Answerable, Novel, Feasible, Significant). You start from a vague topic, draft candidates, score each against the rubric (with a light novelty check against the literature), and rewrite the weakest axis of the promising ones until enough are strong.

A good research question is the hard part of research: too broad and it cannot be answered; too narrow and it does not matter; already settled and there is no point. The goal is a few excellent questions, not many mediocre ones — this loop drives toward the narrow band that is answerable, novel, and worth answering.

Scope & limitations

This loop produces and refines questions, grounded by a light novelty check (a few searches), not a full survey — for an exhaustive map use the literature-survey loop, and to turn a question into testable predictions use the hypothesis-generation loop. The novelty check needs web or literature access; without it (novelty_check: none), novelty is the loop's best judgment and must be labeled unverified.

When to use

Use when the user has a topic, area, or rough curiosity and wants it turned into concrete questions worth pursuing. Default: run the full draft→score→revise loop below. Escape hatch: if the user only wants candidates rated (no rewriting), score the set once and report the rubric breakdown. Not for grading a finished proposal, and not for generating hypotheses or experimental designs.

Setup

Resolve bindings interactively. If loop.run.yaml exists in the working dir, load it, confirm the values in one line, and skip to the loop. Otherwise: on Claude Code (the AskUserQuestion tool is available) infer a likely value for each binding and present it as the recommended option; on other hosts ask each as a quoted plain-text prompt. Then write loop.run.yaml (format: examples/run.example.yaml) and confirm the values before creating any other files.

bindingmeaningdefaulthow to infer
<topic>the area of interest (field, population, scope, what the user already cares about)—ask the user
<n_questions>how many strong questions to deliver3—
<pass_threshold>rubric score (0-100) a question must clear to count as strong75a solid question without demanding perfection
<novelty_check>how to check whether a question is already answered: lit | web | nonelit if the sibling skill is installed, else webprobe for the literature-search skill (below)
<report>output question set<sandbox_root>/questions.md—
<sandbox_root>where the ledger and report live./sandbox—
<budget>max iterations8—

Novelty toolchain (only for novelty_check: lit). Paper search goes through the sibling literature-search skill (<lit> = <lit_skill_dir>/tools/lit_search.py, with <lit_py> = python3 and <lit_skill_dir> its installed location, e.g. ~/.claude/skills/literature-search/); the relevant moves are <lit> search "<q>" (is a direct answer already published?) and <lit> snippet "<q>" (pinpoint the answering passage). Confirm <lit> --help works at setup; if the skill is absent, tell the user and either install it (copy the repo's loops/literature-search folder into ~/.claude/skills/) or degrade to web (host WebSearch/WebFetch) or none. Record the resolved choice in <novelty_check> so re-runs are non-interactive.

The loop

The rubric (a fresh Grader scores each question 0-5 per axis — see grading below):

Axis531
Specificone clear construct/relationship, well-scopeddirection clear, scope loosebroad/ambiguous topic, not a question
Answerablea concrete study/analysis could resolve it; the answer-shape is clearresolvable in principle, approach unclearnot empirically/analytically decidable
Novelopen per the novelty check; closest work citedpartly addressed; a real twist remainsalready answered (check found a direct answer)
Feasibledata/methods/access plausibly existfeasible with effortneeds unavailable data or impossible measurement
Significantanswering it changes understanding or practicea useful incrementmarginal even if answered

Grading — spawn a fresh Grader per iteration (spawn-or-degrade). Each iteration, spawn a freshly instantiated Grader subagent — separate from whoever drafted or revised the questions, so the score is independent and not self-graded — and give it each candidate plus its novelty evidence. It returns the five raw 0-5 per-axis points (no weights). On Claude Code spawn it as a real Agent; otherwise adopt the Grader role inline in a clean pass. The orchestrator sums to a raw score out of 25, then converts to the 0-100 score used everywhere:

total = 100 × raw / 25 (e.g. raw 20/25 → total 80).

A question is strong when total ≥ <pass_threshold> and no axis scored 1 (a single fatal axis sinks it regardless of total).

Copy this checklist and tick items off:

  • Iteration 0 — restate <topic> and what is interesting about it; draft 3-5 candidate questions spanning different angles (mechanism, comparison, condition/boundary, application). Record nothing as strong yet.
  • Gather novelty evidence per candidate via <novelty_check> (<lit> search/snippet, or WebSearch, or skip).
  • Score — spawn a fresh Grader with each candidate + its evidence; it returns raw 0-5 per axis; convert raw/25 → total/100.
  • Diagnose each promising question's lowest axis — the one thing keeping it from strong.
  • Revise that one axis (one focused move per question); drop a fatally-flawed question revision cannot save; add a fresh candidate if short.
  • Append a ledger row; stop when <n_questions> clear the bar, or at <budget>.
Show full SKILL.md (412 more words)Show less

Iteration 0 — frame & draft. Restate <topic> and what is interesting about it; draft 3-5 candidate questions spanning different angles. Record nothing as strong yet.

Then, until stop (<n_questions> strong, or <budget>):

  1. Gather novelty evidence. Run the <novelty_check> for each candidate's core: <lit> search/snippet (or WebSearch). If a direct answer exists, note the closest answered work; if only related work exists, note the open part. Each <lit> call prints JSON; on failure it prints {"error","fallback"} and exits non-zero — then fall back to WebSearch/WebFetch.
  2. Score. Spawn a fresh Grader (spawn-or-degrade) and hand it each candidate plus its evidence; it returns the raw per-axis points. Convert raw/25 → total/100.
  3. Diagnose & revise. Find each promising question's lowest axis and make one focused move on it: narrow an over-broad question to a specific population/condition; operationalize an unanswerable one into a measurable comparison; pivot an already-answered one toward the part the check showed is still open; raise significance by tying it to a decision or a contested claim. Drop questions with a fatal axis that revision cannot save; add a fresh candidate if you are short.
  4. Log one ledger row and continue until <n_questions> are strong.

On stop, write <report>: each strong question with its rubric scores, the novelty note (closest answered work / the open part), why it is answerable (the study-shape that would resolve it), and why it matters — plus any runners-up and the axis that held them back.

Ledger

<sandbox_root>/ledger.tsv, tab-separated, never commas in the text. Header:

iter	question	total	weakest_axis	revision

Example:

iter	question	total	weakest_axis	revision
0	how does sleep affect learning	35	specific	drafted; far too broad
1	does sleep timing affect retention	62	answerable	operationalized: spaced-review vs sleep-matched review, 1-week retention
2	does post-learning sleep within 3h beat delayed sleep for procedural retention	86	-	strong (novel per check: tested for declarative not procedural)

Report the best outcome — the strong questions and their scores — not necessarily the last iteration's set.

Constraints

  • A few strong questions beat many weak ones — do not pad <report> with questions that do not clear the bar; report them as runners-up with the blocking axis instead.
  • Novelty is checked, not assumed — when <novelty_check> is lit/web, actually search, cite the closest answered work, and never claim novelty the check contradicts. When none, label novelty unverified.
  • Grade with a fresh Grader scoring raw 0-5 per axis (no weights); the orchestrator converts raw/25 → 100 and never lets the drafter/reviser grade its own questions, so the score stays honest.
  • One focused revision per question per iteration, targeting its weakest axis, so improvement is attributable and questions converge rather than thrash.
  • Keep the rubric and threshold fixed so "strong" means the same thing throughout.
  • The sandbox is self-contained — no ../ escapes. Do not pause the loop to ask whether to continue; run until <n_questions> clear the bar or <budget> is hit.

© gaasher, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in loops/research-question of gaasher/Agent-Loop-Skills.

  • SKILL.md
  • examples/run.example.yaml

Open the folder on GitHubat commit f1169e6

Compare with similar skills

Research Question next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Research Question compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Research Question this skillgaasher/Agent-Loop-Skills174—~2.5kAutomated safety check: PassMIT
Novelty CheckAI4Scientist/nano-scientist1285 repos~823Automated safety check: PassNone
Ccf Idea Optimizermikubaka88/CCFA-Skills3k—~1.9kAutomated safety check: PassMIT
Novelty Assessmentlingzhi227/agent-research-skills384—~716Automated safety check: PassNone
Novelty CheckGRIND-Lab-Core/night_owl_research_agent106—~1kAutomated safety check: PassNone
Idea Discovery PipelineGRIND-Lab-Core/night_owl_research_agent106—~4.4kAutomated safety check: WarnNone

Similar skills

  • Novelty Check

    AI4Scientist/nano-scientist

    Verify research idea novelty against recent literature. An agent skill from AI4Scientist/nano-scientist.

    128 GitHub starsUsed in 5 repos~823 tokens
    Research & ScienceAuto-check passed
  • Ccf Idea Optimizer

    mikubaka88/CCFA-Skills

    Develop and optimize rough CCF research ideas into problems, insights, mechanisms, and evidence plans.

    3k GitHub stars~1.9k tokensUpdated 22 days ago
    Research & ScienceAuto-check passed
  • Novelty Assessment

    lingzhi227/agent-research-skills

    Assess research idea novelty through systematic literature search.

    384 GitHub stars~716 tokensUpdated 7 mo ago
    Research & ScienceAuto-check passed
  • Novelty Check

    GRIND-Lab-Core/night_owl_research_agent

    Validates that a research idea is genuinely novel vs. An agent skill from GRIND-Lab-Core/night_owl_research_agent.

    106 GitHub stars~1k tokensUpdated 5 mo ago
    Research & ScienceAuto-check passed
  • Idea Discovery Pipeline

    GRIND-Lab-Core/night_owl_research_agent

    The full pipeline for idea generation. An agent skill from GRIND-Lab-Core/night_owl_research_agent.

    106 GitHub stars~4.4k tokensUpdated 5 mo ago
    Research & ScienceAuto-check: warnings
  • Hypothesis Generation

    spacering-net/codeg

    Structured hypothesis formulation from observations. An agent skill from spacering-net/codeg.

    3.8k GitHub starsUsed in 15 repos~3.6k tokens
    Research & ScienceAuto-check: notes

More from gaasher/Agent-Loop-Skills

All 21 skills in this repo
  • Alpha Evolve

    gaasher/Agent-Loop-Skills

    A skill your agent uses when the user wants to evolve an ML model/program through population-based search rather than a single sequential refine loop — a generational evolution where parallel…

    174 GitHub starsUsed in 1 repo~3.4k tokens
    Auto-check passed
  • Karpathy

    gaasher/Agent-Loop-Skills

    A skill your agent uses when the user wants the LLM to do its own ML research: a fully-autonomous loop that hacks the training code, runs it, and keeps changes that lower a single scalar metric (e.g.

    174 GitHub starsUsed in 1 repo~2.6k tokens
    Auto-check passed
  • Tournament Autoresearch

    gaasher/Agent-Loop-Skills

    A skill your agent uses when the user wants an autonomous ML research loop that pressure-tests competing ideas before spending compute — several research subagents each propose one architecture…

    174 GitHub starsUsed in 1 repo~3k tokens
    Auto-check passed
  • Dueling Autoresearch

    gaasher/Agent-Loop-Skills

    A skill your agent uses when the user wants two approaches raced head-to-head on a single shared metric — e.g.

    174 GitHub starsUsed in 1 repo~2.6k tokens
    Auto-check: warnings
  • Anomaly Investigation

    gaasher/Agent-Loop-Skills

    A skill your agent uses when the user has a known, already-observed anomaly in their data — a metric spike or drop, an outlier, an unexpected number — and wants its root cause diagnosed, not guessed.

    174 GitHub stars~2.1k tokensUpdated 3 mo ago
    Auto-check passed
  • Blue Team

    gaasher/Agent-Loop-Skills

    A skill your agent uses when the user has concrete failing cases in code or a guardrail/classifier/filter/prompt/API they own — a red-team failure catalogue OR a CI/CD test-failure report (failing…

    174 GitHub stars~3.6k tokensUpdated 3 mo ago
    Auto-check passed

Questions about Research Question

What does Research Question do?

A skill your agent uses when the user has a vague topic or area of interest and wants it sharpened into a few strong, novel, feasible research questions. Research Question is an agent skill from gaasher/Agent-Loop-Skills. Use when the user has a vague topic or area of interest and wants it sharpened into a few strong, novel, feasible research questions.

When should I use Research Question?

Research Question fits situations like: the user has a vague topic; area of interest and wants it sharpened into a few strong; feasible research questions.

How do I install Research Question in Claude Code?

Run `npx skills add gaasher/Agent-Loop-Skills --skill research-question -a claude-code`. Or copy the skill folder (loops/research-question in gaasher/Agent-Loop-Skills) into .claude/skills/research-question in your project. Claude Code loads it when a task matches its description.

How do I install Research Question in Codex?

Run `npx skills add gaasher/Agent-Loop-Skills --skill research-question -a codex`. Or copy the skill folder (loops/research-question in gaasher/Agent-Loop-Skills) into .agents/skills/research-question in your project. Codex loads it when a task matches its description.

Can I use Research Question in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gaasher/Agent-Loop-Skills --skill research-question -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/research-question, .gemini/skills/research-question, .github/skills/research-question and .opencode/skills/research-question in your project.

What does Research Question need to run?

SKILL.md names no scripts, command-line tools or credentials: Research Question is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): Requires Python 3.9+.

Does Research Question access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Research Question safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Research Question use?

Research Question is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Research Question use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Research Question?

Skills that share tags, products or a category with Research Question: Novelty Check (AI4Scientist/nano-scientist, 128 stars), Ccf Idea Optimizer (mikubaka88/CCFA-Skills, 3k stars), Novelty Assessment (lingzhi227/agent-research-skills, 384 stars) and Novelty Check (GRIND-Lab-Core/night_owl_research_agent, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Research Question?

gaasher (a GitHub user) maintains it in gaasher/Agent-Loop-Skills, which has 174 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on June 30, 2026.

Source: gaasher/Agent-Loop-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.