agentleFS
jacksoswagjacksoswag/ObsidAgent/.claude/skills/research/SKILL.md

research

Skill1 starsChanged 3 months agoMITView on GitHub

Multi-pass research over whatever surfaces the question needs: papers, code, practitioner forums, video, web, case law, and the local machine. Lands the findings in $VAULT as analysis and topic notes with every source archived. Use for 'research X', 'state of the art in X', 'what's out there on X', a market or competitive sweep, or a repeat pass over a topic already covered. Not for a question one search answers.

189 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use daily-arxiv, exp-eval and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • LambenthanSkill

    daily-arxiv

    每日从 arXiv 拉取新论文,过滤相关性,auto-ingest 高优先级论文,检测 SOTA 更新

    Also in 5 projects that use this

  • LambenthanSkill

    exp-eval

    实验判决门:Review LLM 独立评判实验结果 → 4 种判决路径 → 自动更新 claims confidence、ideas status、graph edges

    Also in 5 projects that use this

  • truongtv22Skill

    Problem-Solving Techniques

    Apply systematic problem-solving techniques for complexity spirals (simplification cascades), innovation blocks (collision-zone thinking), recurring patterns (meta-pattern recognition), assumption constraints (inversion exercise), scale uncertainty (scale game), and dispatch when stuck. Techniques derived from Microsoft Amplifier project patterns adapted for immediate application.

    Also in 5 projects that use this

  • liufeng1976Skill

    setup-ts-deep-modules

    Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.

    Also in 43 projects that use this

  • skyllwtSkill

    exp-pilot-eval

    Pilot result evaluation — read pilot results, apply success criteria, update idea page (pilot_result, failure_reason if failed), generate PILOT_VERDICT_REPORT. Called by /ideate Phase 5 after /exp-pilot-run.

    Also in 4 projects that use this

  • skyllwtSkill

    exp-pilot-run

    Pilot experiment execution — read Pilot Spec YAML, write pilot code, run experiment(Confirm with the user before operation and require the applicant to conduct manual inspection), return results. Called by /ideate Phase 5. Does NOT modify wiki pages or judge pass/fail.

    Also in 4 projects that use this

  • +5 more from Lambenthan
  • +1 more from skyllwt

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 169 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Only stage 4 writes to sources/: No agent in any other stage runs --out, to-markdown.py, or any converter.

    line 37

“Common” is measured: kept by at least 6 in 10 of the 169 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

research

Start in the notes

python3 $VAULT/.scripts/notes.py -m "<subject>"

That one search ranks topics/, analysis/, and sources/ together, so prior conclusions and the evidence under them arrive in the same list. $VAULT/.claude/rules/notes.md covers the search discipline that makes it land: several phrasings, the jargon and the plain words, and -x for an exact symbol. Read down from topics/index.md for the standing account, open the analysis/ notes it points at, and read the sources/ files that bear on the question.

None of this is grounds to stop, narrow, or skip a pass. It is context you start from, not an answer you inherit. When a prior note asserts something load-bearing, open the source under it instead of taking the claim.

Fix a slug here, {topic}-YYYY-MM. Every source landed during the pass writes it into supports, the reverse edge back to the note. Add slugs as the pass splits into more notes, and use unfiled only for a source whose note arrives later in the same pass.

The roster

Every round runs these seven stages in this order. The cut between them is not a judgment call. Fixing it is the point: each stage does one job, at the tier that job is worth, and cannot quietly take on the next one.

StageRuns onJobMust not
0. Prior coveragescriptnotes.py -m, then search.py vocab for the field's real terms
1. Queriessonnet, one agentturn the question into query sets, one per surface it earnsfetch, read, or land anything
2. Searchscriptrun those queries, print title, abstract, and urlland anything
3. Triagehaiku, one agent per surface or per 25 candidateskeep or drop each candidate on title and abstract, one line of reason eachopen a full text, land anything
4. Landscriptfetch and convert the keeps, --supports <slug>
5. Readopus, one agent per cluster of landed sourcesread the landed files, pull claims with quote and locatorwrite to analysis/ or topics/
6. Writeopus, one agentanalysis/, topics/, and the wikilinks between them
7. Closescriptreindex.py, health.py, one commit over explicit paths

Four rules make the table binding:

  • Only stage 4 writes to sources/. No agent in any other stage runs --out, to-markdown.py, or any converter. This is the gate the 460-file July 2026 pass did not have.
  • Only stage 5 opens a full source, and it opens the landed file. Never a digest of one. A claim in a note is traceable to text an opus agent actually read, which is why stage 3 is forbidden the full text and stage 5 is forbidden a summary.
  • Only stage 6 writes to analysis/ or topics/. Stages 1 through 5 return findings to the orchestrator and write nothing to the notes.
  • No agent asks the user anything or runs git. Batching one question and one commit at stage 7 is why a sixty-source pass interrupts once.

Model tiers are fixed above rather than chosen per dispatch, because the failure they prevent is asymmetric. Haiku deciding "this paper is off-topic" is cheap and visible when wrong. Haiku deciding "this paper supports the claim" is neither: a confidently wrong claim reads exactly like a right one.

Bound every agent, and say the bound in its prompt. A scope is the question, the surfaces worth trying, and a cap on calls. Unbounded prompts reliably buy 60 to 90 tool calls apiece for findings that plateau far earlier.

Surfaces are options

surfaces.md is the menu: every command verified on this machine, with the traps that make each one fail silently. Stage 1 picks from it, stage 2 runs what stage 1 picked. It lists what is available, never what to run.

Which surfaces a question earns is a stage 1 decision. A question about an algorithm may want papers and code and nothing else. A market question may want vendors, forums, and case law. Something that happened this month may want X and nothing older.

The machine is a surface too. Project code, docs/, past scratchpads, ~/Downloads, config, logs, transcripts, cited by path and line like anything else. Sweep for it when the subject plausibly touches work already on disk, and skip it for a purely external question.

Run the local sweep at stage 0, never alongside stage 4. sources/ is on disk, so a sweep running next to the stage that lands files reads what that stage is writing and reports it as material the machine already held. That happened in July 2026: 40 confident hits on a subject the vault held nothing about, every one written minutes earlier by a sibling.

Passes, plural

One round is the floor. Each round ends with a list of what it opened up, and anything on that list that matters earns its own round: a vendor named once in a forum thread, a paper three sources lean on, a repo everyone wraps.

Show the first round before spending the second. Say in two lines what it found and what the next cut would chase. A pass that runs several rounds before the owner sees anything has bet the whole budget on a reading of the question nobody confirmed.

Spend at least one round trying to break the answer rather than extend it, with stage 5 agents prompted to refute, and take seriously whatever survives. Stop when a round stops changing the answer.

python3 $VAULT/.scripts/vault.py <url> says whether a URL is already held, and a source another agent landed is still evidence. Its dedupe is weaker than it looks: it collapses the several forms of one arXiv or YouTube id, but not a paper living on both arXiv and PhilSci-Archive, and not an abstract page against the full PDF of the same document.

Evidence

  • Every load-bearing claim carries a quote and a locator. Page, section, line, timestamp, retrieval date. A claim you cannot point at is a claim you are guessing.
  • Do not summarize sources. sources/ holds each one in full and says it better. What matters is what a source changes: which existing note it confirms, contradicts, refines, or has no bearing on.
  • Contradictions lead. A source that collides with an existing note is the most valuable thing a pass produces. State both propositions, say which is better evidenced, and put it at the top.
  • Cite or flag, cut only what is fabricated. Thin support gets marked and kept, because the marking is information. A citation that does not resolve, or a quote absent from the source it names, gets cut and the cut named in the note.
  • Independence is by cluster. Three blog posts citing one paper are one source.
  • Write down what you could not reach: the blocked API, the WAF, the expired session, the scanned PDF, the results ranked below where you stopped reading. Each reads as an empty field unless the note says otherwise, and a silent zero is the one unacceptable outcome.

Land it

Stage 6 writes everything at once, after the passes are done.

  • analysis/, one note per operational fact or per dated pass. Findings answering different questions are different notes, not one long file.
  • topics/, rewritten in place for every subject the pass touched, and written when a subject has none. This is the layer read first, so a pass that stops at analysis/ has left its conclusion somewhere already dated. The fold-up stops two hops out, per $VAULT/.claude/rules/notes.md.
  • Existing notes, edited where the pass refined or overturned them.
  • sources/, everything cited, with supports pointing back. What earns a place there is add-source.md, and it is judged on the read rather than on any property of the file.

$VAULT/.claude/rules/notes.md routes the rest, one file per step: acquiring, deciding an edit against a new file, frontmatter, wikilinks, pruning what the change made dead, and closing out.

Repeat passes

A subject already covered gets a full pass, not a shortened one. The prior note says what to hold up against fresh evidence and what to recheck first. It is not a list of closed questions. Write what changed, what died, and what is new, and edit the prior note where this pass overturned it.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.