athola/research
Runs multi-source research across GitHub, HN, Reddit, arXiv, and Semantic Scholar. Use when surveying a technical topic across multiple channels.
npx skills add https://github.com/athola/claude-night-market --skill research
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_weights
If confidence < 0.6, ask the user to confirm or override
the domain classification before proceeding.
from tome.scripts.research_planner import plan
research_plan = plan(result)
# research_plan.channels, research_plan.weights, research_plan.triz_depth
from 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 |
| triz | tome:triz-analyst | topic, domain, triz_depth |
Rules:
research_plan.channels
research_plan.channels AND triz_depth != "light"
(parallel, not sequential)
Each agent prompt must include:
triz_depth for triz)
After all agents return:
tome.synthesis.merger.merge_findings()tome.synthesis.ranker.rank_findings()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:
Then offer interactive refinement:
"Use /tome:dig \"subtopic\" to explore specific areas."
manual research approaches
rather than generating an empty report
| Flag | Format | Function |
|------|--------|----------|
| (default) | report | format_report() |
| --format brief | brief | format_brief() |
| --format transcript | transcript | format_transcript() |
< 0.6, user confirmation is requested before proceeding
agents dispatched only when their channels are in the plan;
all eligible agents sent in a single parallel message
docs/research/{session.id}-{slug}.md aftersynthesis regardless of whether all agents succeeded
the path to the saved report
suggested; an empty report is never generated
Take athola/research from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.