grind-lab-core/night_owl_research_agent/refine-research
Claude Code and agent skill by grind-lab-core/night_owl_research_agent
- community
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-researchSKILL.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:
- Do not lose the original problem. Freeze an immutable Problem Anchor and reuse it in every round.
- The smallest adequate mechanism wins. Prefer the minimal intervention that directly fixes the bottleneck.
- One paper, one dominant contribution. Prefer one sharp thesis plus at most one supporting contribution.
- 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.
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:
Field definitions:
| Field | Values | Meaning | |
|---|---|---|---|
phase | "anchor" / "proposal" / "review" / "refine" / "done" | Last completed phase | |
round | 0–MAX_ROUNDS | Current round number | |
threadId | string or null | Reviewer thread ID for codex-reply continuity | |
last_score | number or null | Most recent overall score from reviewer | |
last_verdict | string or null | Most recent verdict (READY / REVISE / RETHINK) | |
status | "in_progress" / "completed" | Loop status | |
timestamp | ISO 8601 | When 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
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:
- Check for `output/refine-logs/REFINE_STATE.json`:
- If it does not exist → fresh start (proceed to Phase 0 normally)
- If it exists AND
statusis"completed"→ fresh start (delete state file, previous run finished) - If it exists AND
statusis"in_progress"ANDtimestampis older than 24 hours → fresh start (stale state from a killed/abandoned run — delete the file) - If it exists AND
statusis"in_progress"ANDtimestampis within 24 hours → resume
- On resume, read the state file and recover context:
- Read all existing
output/refine-logs/round-*.mdfiles to restore prior work - Read
output/refine-logs/SCORE_HISTORY.mdif it exists - Recover
threadIdfor reviewer thread continuity - Log to the user:
"Checkpoint found. Resuming after phase: {phase}, round: {round}." - Jump to the next phase based on the saved
phasevalue:
Saved phase | What was completed | Resume from | |
|---|---|---|---|
"anchor" | Phase 0 done | Phase 1 (read anchor from round-0 context) | |
"proposal" | Phase 1 done | Phase 2 (read round-0-initial-proposal.md) | |
"review" | Phase 2 or 4 done | Phase 3 (read latest round-N-review.md) | |
"refine" | Phase 3 done | Phase 4 (read latest round-N-refinement.md) |
- 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.
$ARGUMENTSis treated as an optional filter / pointer to which candidate idea to refine (ifIDEA_REPORT.mdcontains 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
$ARGUMENTSas 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:
- Current pipeline failure point: where does the baseline break?
- Why naive fixes are insufficient: larger context, more data, prompting, memory bank, or stacking more modules.
- Smallest adequate intervention: what is the least additional mechanism that could plausibly fix the bottleneck?
- Frontier-native alternative: is there a more current route using foundation-model-era primitives that better matches the bottleneck?
- Core technical claim: what exact mechanism claim could survive top-venue scrutiny?
- 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:
- One-sentence method thesis: the single strongest mechanism claim.
- Contribution focus: one dominant contribution and at most one supporting contribution.
- Complexity budget: what is frozen or reused, what is new, and what tempting additions are intentionally excluded.
- System graph: modules, data flow, inputs, outputs.
- Representation design: what latent, embedding, plan token, reward signal, memory state, or alignment space is used?
- Training recipe: data source, supervision, pseudo-labeling, negatives, curriculum, losses, weighting, stagewise vs joint training.
- Inference path: how the trained components are used at test time and what signals flow where.
- Why the mechanism stays small: why a larger stack is unnecessary.
- 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.
- Failure handling: what could go wrong and what fallback or diagnostic exists?
- 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
- SKILL.md in the repositoryCheckingskills/refine-research/SKILL.md
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
[](https://verified-skill.com/skills/grind-lab-core/night_owl_research_agent/refine-research)