Rival Search MCP
damionrashford/RivalSearchMCP
Deterministic deep research via RivalSearchMCP. An agent skill from damionrashford/RivalSearchMCP.
Runs multi-source research across GitHub, HN, Reddit, arXiv, and Semantic Scholar.
$ npx skills add athola/claude-night-market --skill research -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install athola/claude-night-market research --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "research" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/tome/skills/research into .claude/skills/research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "research", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/athola/claude-night-market/tree/master/plugins/tome/skills/researchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add athola/claude-night-market --skill research -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install athola/claude-night-market research --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/tome/skills/research .agents/skills/research && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "research" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/tome/skills/research into .agents/skills/research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "research", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add athola/claude-night-market --skill research -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install athola/claude-night-market research --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/tome/skills/research .cursor/skills/research && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "research" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/tome/skills/research into .cursor/skills/research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "research", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/athola/claude-night-market.git --path plugins/tome/skills/research--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add athola/claude-night-market --skill research -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install athola/claude-night-market research --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/tome/skills/research .gemini/skills/research && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "research" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/tome/skills/research into .gemini/skills/research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "research", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install athola/claude-night-market researchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add athola/claude-night-market --skill research -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/tome/skills/research .github/skills/research && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "research" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/tome/skills/research into .github/skills/research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "research", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add athola/claude-night-market --skill research -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install athola/claude-night-market research --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/athola/claude-night-market.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/tome/skills/research .opencode/skills/research && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "research" agent skill from https://github.com/athola/claude-night-market/tree/master/plugins/tome/skills/research into .opencode/skills/research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "research", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
researchRuns 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. 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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9f3eb00. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from athola/claude-night-market at commit 9f3eb00, republished under its MIT licence (© athola). 1,094 words, ~2,337 tokens.
.claude/skills/research/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Run a full multi-source research session: classify the domain, dispatch parallel agents, synthesize findings, and output a formatted report.
tome:dig)tome:synthesize)Run the domain classifier on the topic:
from tome.scripts.domain_classifier import classify
result = classify(topic)
# result.domain, result.triz_depth, result.channel_weightsIf 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.
from tome.scripts.research_planner import plan
research_plan = plan(result)
# research_plan.channels, research_plan.weights, research_plan.triz_depthfrom tome.session import SessionManager
mgr = SessionManager(Path.cwd())
session = mgr.create(topic, result.domain, result.triz_depth, research_plan.channels)Launch research agents in parallel using the Agent tool. Use this mapping:
| Channel | Agent Type | Prompt Includes |
|---|---|---|
| code | tome:code-searcher | topic |
| discourse | tome:discourse-scanner | topic, domain, subreddits |
| academic | tome:literature-reviewer | topic, domain |
| web | tome:web-searcher | topic, domain |
| triz | tome:triz-analyst | topic, domain, triz_depth |
Rules:
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 deepEach agent prompt must include:
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.
After all agents return:
Parse each agent's findings into Finding objects
Record what each agent actually searched, before merging anything:
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.
Merge using tome.synthesis.merger.merge_findings()
Rank using tome.synthesis.ranker.rank_findings()
from tome.synthesis.verifier import verify_context
check = verify_context(session, passes_run=n) # max_passes default 2CONTINUE 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.
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:
mgr.save(session)Display a brief summary to the user:
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"tome.synthesis.quality.channel_outcomes(session):
ok, empty, error, rate_limited, degraded, or
unknowntome.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."
| Flag | Format | Function |
|---|---|---|
| (default) | report | format_report() |
--format brief | brief | format_brief() |
--format transcript | transcript | format_transcript() |
research_plan.channels was dispatched, none
outside it, all in a single parallel messagerender_card output for its
channel and dictates no return shape of its ownverify_context ran after every pass; the report was written
only after it returned STOP, and no more than max_passes
passes ranSTOP with rerun, reformulate, or add left
non-empty names those channels as gaps in the summarydocs/research/{session.id}-{slug}.md after
synthesis regardless of whether all agents succeeded© athola, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in plugins/tome/skills/research of athola/claude-night-market.
Open the folder on GitHubat commit 9f3eb00
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Research this skillathola/claude-night-market | 342 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Rival Search MCPdamionrashford/RivalSearchMCP | 132 | 1 repos | ~796 | Automated safety check: Pass | MIT | |
| Paper Expert Generatorguhaohao0991/PaperClaw | 250 | — | ~2k | Automated safety check: Pass | None | |
| Ideer Daily PaperAI45Lab/iDeer | 416 | — | ~2.3k | Automated safety check: Notes | AGPL-3.0 | |
| Deep Research Literature SurveyHKUSTDial/Supervisor-Skills | 8.5k | — | ~2.4k | Automated safety check: Pass | CC-BY-NC-SA-4.0 | |
| Argo Search and Verificationtaxueseek/argo | 185 | — | ~1.2k | Automated safety check: Pass | MIT |
damionrashford/RivalSearchMCP
Deterministic deep research via RivalSearchMCP. An agent skill from damionrashford/RivalSearchMCP.
guhaohao0991/PaperClaw
Generate a specialized domain-expert research agent modeled on PaperClaw architecture.
AI45Lab/iDeer
Daily paper/repo digest where YOU are the reader. An agent skill from AI45Lab/iDeer.
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.
taxueseek/argo
Unified web search, page fetching and evidence checking across hundreds of sources, with result verification, a research-dossier mode and vertical search engines.
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)…
athola/claude-night-market
Run and interpret repo diagnostic scripts (ratchets, validators, token stats).
athola/claude-night-market
Evaluate Claude skill quality through auditing. An agent skill from athola/claude-night-market.
athola/claude-night-market
Coordinates Claude agent teams via filesystem protocol. An agent skill from athola/claude-night-market.
athola/claude-night-market
Delegates execution to eight CLIs (Gemini, Qwen, MiniMax, GLM, Muse, Codex, OpenCode, Glimmer).
athola/claude-night-market
Guide minimal code via a decision ladder with full safety, edge, and negative-case coverage.
athola/claude-night-market
Build a project skill library in .claude/skills/ via discovery, parallel authoring, and review.
Works with
Categories
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.
Research fits situations like: surveying a technical topic across multiple channels; tasks that involve Academic paper search; tasks that involve Deep research.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: Research is instructions for the agent only. Our summary lists: Python 3.
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.
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.
Research is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
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.
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.
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.