Agent skill

Research

by athola in athola/claude-night-market

Runs multi-source research across GitHub, HN, Reddit, arXiv, and Semantic Scholar.

MITAuto-check passedResearch & Science

Install Research

skills CLI
$ npx skills add athola/claude-night-market --skill research -a claude-code

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

GitHub CLI
$ gh skill install athola/claude-night-market research --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/athola/claude-night-market.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/tome/skills/research .claude/skills/research && 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
GitHub stars
342
Token cost
~2.3k tokens
SKILL.md length
1,094 words
Files
2
Skills in repo
159
Repo updated
First seen
Licence
MIT

At a glance

Runs multi-source research across GitHub, HN, Reddit, arXiv, and Semantic Scholar.

  • Works in 7 steps: Classify Domain → Plan Research → Create Session → …
  • Surveying a technical topic across multiple channels
  • SKILL.md covers When NOT To Use, Workflow, Error Handling and Output Format Selection, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Research is an agent skill from athola/claude-night-market. Runs multi-source research across GitHub, HN, Reddit, arXiv, and Semantic Scholar. Use when surveying a technical topic across multiple channels.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `modules/stop-verifier.md`).

It sits in Research & Science, covering Academic paper search and Deep research. It works with GitHub, arXiv, Semantic Scholar and Reddit. The repository describes itself as: 23 Claude Code plugins: TDD enforcement hooks, git/PR workflows, spec-driven development, code review, project lifecycle, fix-from-error, maintenance automation, context… The licence is MIT.

When your agent uses it

  • Surveying a technical topic across multiple channels
  • Tasks that involve Academic paper search
  • Tasks that involve Deep research

Example prompts

  • “/research”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Classify Domain
  2. Plan Research
  3. Create Session
  4. Dispatch Agents
  5. Collect and Synthesize
  6. Generate Output
  7. Present Results

What it can do on your machine

Read from SKILL.md and the folder at commit 9f3eb00. 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 (its code samples are python).

    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.

Context cost

Research loads about 2.3k tokens when it runs. Until then it costs about 39 tokens; SKILL.md has 1,094 words of instructions outside code blocks.

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

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 athola/claude-night-market at commit 9f3eb00, republished under its MIT licence (© athola). 1,094 words, ~2,337 tokens.

Download SKILL.mdSave it as .claude/skills/research/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
research
description
Runs multi-source research across GitHub, HN, Reddit, arXiv, and Semantic Scholar. Use when surveying a technical topic across multiple channels.
alwaysApply
false
category
orchestration
tags
research, synthesis, multi-source
estimated_tokens
600
progressive_loading
true
orchestrates
tome:code-search, tome:discourse, tome:papers, tome:triz, tome:synthesize
modules
modules/stop-verifier.md
model_hint
standard

Research Session Orchestrator

Run a full multi-source research session: classify the domain, dispatch parallel agents, synthesize findings, and output a formatted report.

When NOT To Use

  • Drilling into one subtopic of an active session (use tome:dig)
  • Merging findings already gathered (use tome:synthesize)

Workflow

Step 1: Classify Domain

Run the domain classifier on the topic:

python
from tome.scripts.domain_classifier import classify

result = classify(topic)
# result.domain, result.triz_depth, result.channel_weights

If confidence < 0.6 the classifier abstains and refines rather than rejecting: result.candidates lists the domains that had keyword support, triz_depth becomes the deepest of those candidates, and channel_weights is a support-weighted blend. Coverage widens on ambiguity instead of narrowing, because a topic spanning several vocabularies is exactly what the cross-domain channel is for.

Report the abstention to the user with the candidate list and let them override the domain. Do not treat a refined plan as a failure; treat it as the classifier declining to guess.

When candidates is empty the topic produced no keyword hits at all. That stays on the cheap two-channel plan, since there is nothing to refine toward and escalating noise wastes budget. If the topic is genuinely researchable, the vocabulary in _DOMAIN_KEYWORDS is missing it: say so rather than forcing a domain.

Step 2: Plan Research
python
from tome.scripts.research_planner import plan

research_plan = plan(result)
# research_plan.channels, research_plan.weights, research_plan.triz_depth
Step 3: Create Session
python
from tome.session import SessionManager

mgr = SessionManager(Path.cwd())
session = mgr.create(topic, result.domain, result.triz_depth, research_plan.channels)
Step 4: Dispatch Agents

Launch research agents in parallel using the Agent tool. Use this mapping:

ChannelAgent TypePrompt Includes
codetome:code-searchertopic
discoursetome:discourse-scannertopic, domain, subreddits
academictome:literature-reviewertopic, domain
webtome:web-searchertopic, domain
triztome:triz-analysttopic, domain, triz_depth

Rules:

  • Dispatch every channel in research_plan.channels, which the planner derives from each card's min_depth: code and discourse at every depth, academic and web from medium, triz from deep
  • Dispatch all eligible agents in a SINGLE message (parallel, not sequential)

Each agent prompt must include:

  1. The topic string
  2. The domain classification
  3. Any channel-specific context (subreddits for discourse, triz_depth for triz)
  4. The channel's card, from render_card(get_card(channel)) in tome.channels.cards. It carries the channel's limitations and points the agent at the envelope its own file documents. Do not dictate a return shape in the prompt: an agent obeys the prompt over its file, and a prompt-invented shape once cost a session its canary record.

The rows above restate the cards. The cards are what the planner gates on, and a drift test holds the two together.

Step 5: Collect and Synthesize

After all agents return:

  1. Parse each agent's findings into Finding objects

  2. Record what each agent actually searched, before merging anything:

    python
    from tome.synthesis.quality import parse_envelope
    
    for envelope in agent_envelopes:  # one per dispatched agent
        session.query_log.extend(parse_envelope(envelope))

    This is the step that makes an empty channel readable. Findings record what was found; the query log records what was looked for, and without it a channel that errored and a channel that searched a thin topic are the same thing: no findings. Skip this and every channel in the report reads unknown.

  3. Merge using tome.synthesis.merger.merge_findings()

  4. Rank using tome.synthesis.ranker.rank_findings()

Step 5b: Verify, Then Loop or Stop
python
from tome.synthesis.verifier import verify_context

check = verify_context(session, passes_run=n)  # max_passes default 2

CONTINUE names the work and why:

  • rerun: the channel failed, degraded, left no record, or cannot show it was able to search. Dispatch it again as is.
  • reformulate: a venue mismatch. Dispatch it again with the vocabulary the productive channel's findings use.
  • add: a thin-field candidate that a retrieval channel never looked at. Dispatch that channel.

Dispatch only those agents, append their envelopes to the same session, merge and rank again, then verify with passes_run raised by one. STOP goes to Step 6. A STOP on the pass budget (max_passes, default 2) still lists the undone work: report it as a gap, never as a finished search. Each check's detail says what it read. See modules/stop-verifier.md for why the decision comes from records and not from a judgment.

Step 6: Generate Output
python
from tome.output.report import format_report, format_brief, format_transcript

# Default to report format
output = format_report(session)

# Save to docs/research/
output_path = f"docs/research/{session.id}-{slug}.md"

Save the session state:

python
mgr.save(session)
Show full SKILL.md (485 more words)Show less
Step 7: Present Results

Display a brief summary to the user:

  • The frontier verdict and its reason, from tome.synthesis.frontier.frontier_verdict(session). It is the report's own answer to "did we find little because there is little, or because the search went badly"
  • Number of findings per channel, with its outcome status from tome.synthesis.quality.channel_outcomes(session): ok, empty, error, rate_limited, degraded, or unknown
  • Top 3 findings by relevance
  • Path to saved report
  • Any research stories from tome.synthesis.frontier.frontier_stories(session). Each is a gap with its evidence, and each arrives undecided. Ask the user to mark it act, defer, or decline. Do not decide for them, and do not file an issue for a story they have not marked: nothing in a search record says what is worth this project's time. On defer, file it with minister:create-issue so it survives the session. On act the work starts now and needs no issue. On decline record nothing.

The three retrieval channels run a positive control before their topic queries, so INCONCLUSIVE now means something specific rather than "controls do not exist yet". Read it as one of two things: a channel failed its canary and is blind, or a channel searched without running one. Both are named in the verdict's evidence, and both produce a story under Research Stories.

triz runs no control and is excluded from the verdict. It generates analogies rather than retrieving prior work, so its output is not evidence about what has been published and its findings are not counted toward coverage.

State plainly which channels did not return cleanly. A summary that reports "3 findings" without saying two channels were rate-limited invites the reader to treat a half-run search as a finding about the topic.

Then offer interactive refinement: "Use /tome:dig \"subtopic\" to explore specific areas."

Error Handling

  • If an agent fails, continue with remaining agents
  • If all agents fail, report the error and suggest manual research approaches
  • If synthesis produces 0 findings, state this clearly rather than generating an empty report
  • Save session state even on partial failure

Output Format Selection

FlagFormatFunction
(default)reportformat_report()
--format briefbriefformat_brief()
--format transcripttranscriptformat_transcript()

Exit Criteria

  • Domain classified before agents are dispatched; if confidence < 0.6, user confirmation is requested before proceeding
  • Every channel in research_plan.channels was dispatched, none outside it, all in a single parallel message
  • Every dispatch prompt embeds render_card output for its channel and dictates no return shape of its own
  • verify_context ran after every pass; the report was written only after it returned STOP, and no more than max_passes passes ran
  • A budget STOP with rerun, reformulate, or add left non-empty names those channels as gaps in the summary
  • Session saved to docs/research/{session.id}-{slug}.md after synthesis regardless of whether all agents succeeded
  • Top 3 findings by relevance score displayed to the user with the path to the saved report
  • If all agents fail, error reported and manual alternatives suggested; an empty report is never generated

© athola, 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 plugins/tome/skills/research of athola/claude-night-market.

  • SKILL.md
  • modules/stop-verifier.md

Open the folder on GitHubat commit 9f3eb00

Compare with similar skills

Research 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 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Research this skillathola/claude-night-market342—~2.3kAutomated safety check: PassMIT
Rival Search MCPdamionrashford/RivalSearchMCP1321 repos~796Automated safety check: PassMIT
Paper Expert Generatorguhaohao0991/PaperClaw250—~2kAutomated safety check: PassNone
Ideer Daily PaperAI45Lab/iDeer416—~2.3kAutomated safety check: NotesAGPL-3.0
Deep Research Literature SurveyHKUSTDial/Supervisor-Skills8.5k—~2.4kAutomated safety check: PassCC-BY-NC-SA-4.0
Argo Search and Verificationtaxueseek/argo185—~1.2kAutomated safety check: PassMIT

Similar skills

  • Rival Search MCP

    damionrashford/RivalSearchMCP

    Deterministic deep research via RivalSearchMCP. An agent skill from damionrashford/RivalSearchMCP.

    132 GitHub starsUsed in 1 repo~796 tokens
    Research & ScienceAuto-check passed
  • Paper Expert Generator

    guhaohao0991/PaperClaw

    Generate a specialized domain-expert research agent modeled on PaperClaw architecture.

    250 GitHub stars~2k tokensUpdated 7 mo ago
    Research & ScienceAuto-check passed
  • Ideer Daily Paper

    AI45Lab/iDeer

    Daily paper/repo digest where YOU are the reader. An agent skill from AI45Lab/iDeer.

    416 GitHub stars~2.3k tokensUpdated 2 mo ago
    Research & ScienceAuto-check: notes
  • Deep Research Literature Survey

    HKUSTDial/Supervisor-Skills

    Runs a survey-grade literature investigation: fixes the research questions, searches from adversarial angles, verifies citations and writes an evidence-first report.

    8.5k GitHub stars~2.4k tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed
  • Unified web search, page fetching and evidence checking across hundreds of sources, with result verification, a research-dossier mode and vertical search engines.

    185 GitHub stars~1.2k tokensUpdated 2 days ago
    Research & ScienceAuto-check passed
  • Paper Navigator

    AI4Scientist/nano-scientist

    Find and read academic papers: disambiguate queries, discover papers (search, citation traversal, recommendations, arXiv monitoring, trending, GitHub search), evaluate (TLDR, citations, code, SOTA)…

    128 GitHub stars~7.7k tokensUpdated 4 mo ago
    Research & ScienceAuto-check: notes

More from athola/claude-night-market

All 159 skills in this repo
  • Night Market Diagnostics Toolkit

    athola/claude-night-market

    Run and interpret repo diagnostic scripts (ratchets, validators, token stats).

    342 GitHub stars~3.4k tokensUpdated 2 days ago
    Auto-check passed
  • Skills Eval

    athola/claude-night-market

    Evaluate Claude skill quality through auditing. An agent skill from athola/claude-night-market.

    342 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Agent Teams

    athola/claude-night-market

    Coordinates Claude agent teams via filesystem protocol. An agent skill from athola/claude-night-market.

    342 GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check passed
  • Delegation Core

    athola/claude-night-market

    Delegates execution to eight CLIs (Gemini, Qwen, MiniMax, GLM, Muse, Codex, OpenCode, Glimmer).

    342 GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check passed
  • Elegant Code

    athola/claude-night-market

    Guide minimal code via a decision ladder with full safety, edge, and negative-case coverage.

    342 GitHub stars~2.1k tokensUpdated 2 days ago
    Auto-check passed
  • Skill Library Mission

    athola/claude-night-market

    Build a project skill library in .claude/skills/ via discovery, parallel authoring, and review.

    342 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed

Questions about Research

What does Research do?

Runs multi-source research across GitHub, HN, Reddit, arXiv, and Semantic Scholar. Research is an agent skill from athola/claude-night-market. Runs multi-source research across GitHub, HN, Reddit, arXiv, and Semantic Scholar.

When should I use Research?

Research fits situations like: surveying a technical topic across multiple channels; tasks that involve Academic paper search; tasks that involve Deep research.

How do I install Research in Claude Code?

Run `npx skills add athola/claude-night-market --skill research -a claude-code`. Or copy the skill folder (plugins/tome/skills/research in athola/claude-night-market) into .claude/skills/research in your project. Claude Code loads it when a task matches its description.

How do I install Research in Codex?

Run `npx skills add athola/claude-night-market --skill research -a codex`. Or copy the skill folder (plugins/tome/skills/research in athola/claude-night-market) into .agents/skills/research in your project. Codex loads it when a task matches its description.

Can I use Research 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 athola/claude-night-market --skill research -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, .gemini/skills/research, .github/skills/research and .opencode/skills/research in your project.

What does Research need to run?

SKILL.md names no scripts, command-line tools or credentials: Research is instructions for the agent only. Our summary lists: Python 3.

Does Research 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 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 use?

Research 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 use?

About 2.3k tokens (SKILL.md is roughly 9.3k 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?

Skills that share tags, products or a category with Research: Rival Search MCP (damionrashford/RivalSearchMCP, 132 stars), Paper Expert Generator (guhaohao0991/PaperClaw, 250 stars), Ideer Daily Paper (AI45Lab/iDeer, 416 stars) and Deep Research Literature Survey (HKUSTDial/Supervisor-Skills, 8.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Research?

athola (a GitHub user) maintains it in athola/claude-night-market, which has 342 GitHub stars. The repository holds 159 skills in this directory. The repository was last updated on October 6, 2026.

Source: athola/claude-night-market on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.