grind-lab-core/night_owl_research_agent/refine-research

Claude Code and agent skill by grind-lab-core/night_owl_research_agent

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Turn a vague research direction into a problem-anchored, elegant, frontier-aware, implementation-oriented method plan via iterative GPT-5.4 review. Use when the user says "refine my approach", "decompose this problem", "refine research plan", or wants a concrete research method that stays simple, focused, and top-venue ready instead of a vague or overbuilt idea.

Install

npx vskill@latest install grind-lab-core/night_owl_research_agent/refine-research

SKILL.md

Research Refine: Problem-Anchored, Elegant, Frontier-Aware Plan Refinement

Refine and concretize: $ARGUMENTS

Overview

Use this skill when the research problem is already visible but the technical route is still fuzzy. The goal is not to produce a bloated proposal or a benchmark shopping list. The goal is to turn a vague direction into a problem -> focused method -> minimal validation document that is concrete enough to implement, elegant enough to feel paper-worthy, and current enough to resonate in the foundation-model era.

Four principles dominate this skill:

  1. Do not lose the original problem. Freeze an immutable Problem Anchor and reuse it in every round.
  2. The smallest adequate mechanism wins. Prefer the minimal intervention that directly fixes the bottleneck.
  3. One paper, one dominant contribution. Prefer one sharp thesis plus at most one supporting contribution.
  4. Modern leverage is a prior, not a decoration. When LLM / VLM / Diffusion / RL / distillation / inference-time scaling naturally fit the bottleneck, use them concretely. Do not bolt them on as buzzwords.
User input (PROBLEM + vague APPROACH)
-> Phase 0 (Claude): Freeze Problem Anchor
-> Phase 1 (Claude): Scan grounding papers -> identify technical gap -> choose the sharpest route -> write focused proposal
-> Phase 2 (Codex/GPT-5.4): Review for fidelity, specificity, contribution quality, and frontier leverage
-> Phase 3 (Claude): Anchor check + simplicity check -> revise method -> rewrite full proposal
-> Phase 4 (Codex, same thread): Re-evaluate revised proposal
-> Repeat Phase 3-4 until OVERALL SCORE >= 9 or MAX_ROUNDS reached
-> Phase 5: Save full history to output/refine-logs/
-> Optional handoff: /experiment-plan for a detailed execution-ready experiment roadmap

Constants

  • REVIEWER_MODEL = `gpt-5.4` — Reviewer model used via Codex MCP.
  • MAX_ROUNDS = 5 — Maximum review-revise rounds.
  • SCORE_THRESHOLD = 9 — Minimum overall score to stop.
  • OUTPUT_DIR = `output/refine-logs/` — Directory for round files and final report.
  • MAX_LOCAL_PAPERS = 15 — Maximum local papers/notes to scan for grounding.
  • MAX_CORE_EXPERIMENTS = 3 — Default cap for core validation blocks inside this skill.
  • MAX_PRIMARY_CLAIMS = 2 — Soft cap for paper-level claims. Prefer one dominant claim plus one supporting claim.
  • MAX_NEW_TRAINABLE_COMPONENTS = 2 — Soft cap for genuinely new trainable pieces. Exceed only if the paper breaks otherwise.
Override via argument if needed, e.g. /refine-research "problem | approach" -- max rounds: 3, threshold: 9.

State Persistence (Checkpoint Recovery)

Long-running refinement sessions may fail mid-way (e.g., API timeout, context compaction, or session interruption). To avoid losing completed work, persist state to output/refine-logs/REFINE_STATE.json after each phase boundary:

json
{
"phase": "review",
"round": 1,
"threadId": "019cd392-...",
"last_score": 6.5,
"last_verdict": "REVISE",
"status": "in_progress",
"timestamp": "2026-03-22T20:00:00"
}

Field definitions:

FieldValuesMeaning
phase"anchor" / "proposal" / "review" / "refine" / "done"Last completed phase
round0–MAX_ROUNDSCurrent round number
threadIdstring or nullReviewer thread ID for codex-reply continuity
last_scorenumber or nullMost recent overall score from reviewer
last_verdictstring or nullMost recent verdict (READY / REVISE / RETHINK)
status"in_progress" / "completed"Loop status
timestampISO 8601When state was last written

Write rules:

  • Write after each phase completes (not before). Overwrite each time — only the latest state matters.
  • On completion (Phase 5 finished), set "status": "completed".

Output Structure

output/refine-logs/
├── refine_state.json
├── round-0-initial-proposal.md
├── round-1-review.md
├── round-1-refinement.md
├── round-2-review.md
├── round-2-refinement.md
├── ...
├── final_proposal.md
├── refine_report.md
└── score-history.md

Every round-N-refinement.md must contain a full anchored proposal, not just incremental fixes.

Workflow

Initialization (Checkpoint Recovery)

Before starting any phase, check whether a previous run left a checkpoint:

  1. Check for `output/refine-logs/REFINE_STATE.json`:
  • If it does not exist → fresh start (proceed to Phase 0 normally)
  • If it exists AND status is "completed" → fresh start (delete state file, previous run finished)
  • If it exists AND status is "in_progress" AND timestamp is older than 24 hours → fresh start (stale state from a killed/abandoned run — delete the file)
  • If it exists AND status is "in_progress" AND timestamp is within 24 hours → resume
  1. On resume, read the state file and recover context:
  • Read all existing output/refine-logs/round-*.md files to restore prior work
  • Read output/refine-logs/SCORE_HISTORY.md if it exists
  • Recover threadId for reviewer thread continuity
  • Log to the user: "Checkpoint found. Resuming after phase: {phase}, round: {round}."
  • Jump to the next phase based on the saved phase value:
Saved phaseWhat was completedResume from
"anchor"Phase 0 donePhase 1 (read anchor from round-0 context)
"proposal"Phase 1 donePhase 2 (read round-0-initial-proposal.md)
"review"Phase 2 or 4 donePhase 3 (read latest round-N-review.md)
"refine"Phase 3 donePhase 4 (read latest round-N-refinement.md)
  1. On fresh start, ensure output/refine-logs/ directory exists and proceed to Phase 0.
Phase 0: Freeze the Problem Anchor
Step 0.1: Source the Input

Before extracting the anchor, decide what material is available:

  • Read `output/IDEA_REPORT.md` (produced by generate-idea) if it exists.
  • Read `output/LIT_REVIEW_REPORT.md` (produced by lit-review) if it exists.
  • If both exist: use them as the primary source for problem framing, technical gap, and grounding literature. $ARGUMENTS is treated as an optional filter / pointer to which candidate idea to refine (if IDEA_REPORT.md contains multiple). Steps 1.1 and 1.2 are skipped — the gap and grounding material are already captured.
  • If only one exists: read it and still skip the step it covers (IDEA_REPORT → covers Step 1.2; LIT_REVIEW_REPORT → covers Step 1.1). Perform the other step.
  • If neither exists: focus on $ARGUMENTS as the sole input and run Phase 1 in full.

Record which source was used at the top of ROUND_0_INITIAL_PROPOSAL.md.

Step 0.2: Extract the Anchor

Before proposing anything, extract the user's immutable bottom-line problem. This anchor must be copied verbatim into every proposal and every refinement round.

Write:

  • Bottom-line problem: What technical problem must be solved?
  • Must-solve bottleneck: What specific weakness in current methods is unacceptable?
  • Non-goals: What is explicitly not the goal of this project?
  • Constraints: Compute, data, time, tooling, venue, deployment limits.
  • Success condition: What evidence would make the user say "yes, this method addresses the actual problem"?

If later reviewer feedback would change the problem being solved, mark that as drift and push back or adapt carefully.

Checkpoint: Write output/refine-logs/REFINE_STATE.json with {"phase": "anchor", "round": 0, "threadId": null, "last_score": null, "last_verdict": null, "status": "in_progress", "timestamp": "<now>"}.

Phase 1: Build the Initial Proposal
Step 1.1: Scan Grounding Material

Skip this step if `output/LIT_REVIEW_REPORT.md` was read in Step 0.1 — its Synthesis section already provides grounding. Pull any additional details only if the review report is silent on a specific mechanism.

Check papers/ first. Read only the relevant parts needed to answer:

  • What mechanism do current methods use?
  • Where exactly do they fail for this problem?
  • What training objectives, representations, or interfaces are reusable?
  • What details distinguish a real method from a renamed high-level idea?

If local material is insufficient, search recent top-venue/arXiv work online. Focus on method sections, training setup, and failure modes, not just abstracts.

Step 1.2: Identify the Technical Gap

Skip this step if `output/IDEA_REPORT.md` was read in Step 0.1 — the selected idea already names the technical gap, bottleneck, and core claim. Lift them directly into the proposal (Method Thesis, Contribution Focus, Core Mechanism) and proceed to Step 1.3.

Do not stop at generic research questions. Make the gap operational:

  1. Current pipeline failure point: where does the baseline break?
  2. Why naive fixes are insufficient: larger context, more data, prompting, memory bank, or stacking more modules.
  3. Smallest adequate intervention: what is the least additional mechanism that could plausibly fix the bottleneck?
  4. Frontier-native alternative: is there a more current route using foundation-model-era primitives that better matches the bottleneck?
  5. Core technical claim: what exact mechanism claim could survive top-venue scrutiny?
  6. Required evidence: what minimum proof is needed to defend that claim?
Step 1.3: Choose the Sharpest Route

Before locking the method, compare two candidate routes if both are plausible:

  • Route A: Elegant minimal route — the smallest mechanism that directly targets the bottleneck.
  • Route B: Frontier-native route — a more modern route that uses Deep learning / LLM / VLM / Diffusion / RL / distillation / inference-time scaling only if it gives a cleaner or stronger story.

Then decide:

  • Which route is more likely to become a strong paper under the stated constraints?
  • Which route has the cleaner novelty story relative to the closest work?
  • Which route avoids contribution sprawl?

If both routes are weak, rethink the framing instead of combining them into a larger system by default.

Step 1.4: Concretize the Method First

The proposal must answer "how would we actually build this?" Prefer method detail over broad experimentation and prefer reuse over invention.

Cover:

  1. One-sentence method thesis: the single strongest mechanism claim.
  2. Contribution focus: one dominant contribution and at most one supporting contribution.
  3. Complexity budget: what is frozen or reused, what is new, and what tempting additions are intentionally excluded.
  4. System graph: modules, data flow, inputs, outputs.
  5. Representation design: what latent, embedding, plan token, reward signal, memory state, or alignment space is used?
  6. Training recipe: data source, supervision, pseudo-labeling, negatives, curriculum, losses, weighting, stagewise vs joint training.
  7. Inference path: how the trained components are used at test time and what signals flow where.
  8. Why the mechanism stays small: why a larger stack is unnecessary.
  9. Exact role of any frontier primitive: if you use an LLM / VLM / Diffusion / RL component, specify whether it acts as planner, teacher, critic, reward model, generator prior, search controller, or distillation source.
  10. Failure handling: what could go wrong and what fallback or diagnostic exists?
  11. Novelty and elegance argument: why this is more than naming a module and why the paper still looks focused.

If the method is still only described as "add a module" or "use a planner," it is not concrete enough.

Step 1.5: Design Minimal Claim-Driven Validation

Experiments exist to validate the method, not to dominate the document.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
79
Repository forks
21
7-day trend score
22

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 15 May 2026, 5 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/grind-lab-core/night_owl_research_agent/refine-research/badge)](https://verified-skill.com/skills/grind-lab-core/night_owl_research_agent/refine-research)

Something wrong with this skill or its page? Tell us.