research-ops
Skill1 starsChanged 11 days agoApache-2.0View on GitHub
Scope: bookkeeping only. A request to summarise a paper, draft research text, or answer a question about the research is out of scope even when it mentions state files. Operating layer for a multi-stage research pipeline: maintains the scan cursor, push log, contradiction register, TODO list, and delivery format across stages. Use when the task is to update or reconcile pipeline state rather than to produce research output — record a scan position, log pushed items, register a contradiction under an ID, close a TODO, verify that read-only source files are unchanged via hash check, or report what changed in a batch. Input: existing state files plus one change event. Output: updated state files and a three-line delivery note (files touched / next step / newly registered items). Do not use for one-off note-taking or for tasks whose output is research content; those go to paper-card, synthesis-matrix, proposal-forge, or evidence-audit.
10 other projects use a version of this.
Adopted by
Most recently taken up by
- Rojios/everything-claude-codetheir own version, first seen Nov 8, 2026
- pankaj-mahaur/Agent-Daemontheir own version, first seen Nov 6, 2026
- renepf/claude-skillstheir own version, first seen Oct 25, 2026
- davidanthonyn/claude-skillstheir own version, first seen Oct 20, 2026
- gongyijie85/dsh-ecctheir own version, first seen Oct 13, 2026
- NISTALTALSON/essential-claude-skillstheir own version, first seen Oct 11, 2026
Other versions10 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 10
- Fmarzochi/EGC★ 61same name
- gongyijie85/dsh-ecc★ 8same name
- NISTALTALSON/essential-claude-skills★ 1same name
- Rojios/everything-claude-code★ 1same name
- SamuelNDCE/claude-super-skill-library★ 1same name
- vivekkhimani/gtm-tools-template★ 1same name
- davidanthonyn/claude-skills★ 0same name
- pankaj-mahaur/Agent-Daemon★ 0same name
- renepf/claude-skills★ 0same name
- thanvish21/hcc-bundle★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository7 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- evidence-auditSkill
- literature-radarSkill
- paper-cardSkill
- proposal-forgeSkill
- synthesis-matrixSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 3 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
This skill produces no research content: No cards, no matrices, no proposals, no verdicts.
- Distinctive: line 41
Every run ends with three lines, in this order:
- Distinctive: line 57
Every delivery carries a final section that names what the executor disagrees with — the instruction as given, the pipeline itself, or the …
“Common” is measured: kept by at least 6 in 10 of the 9 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.
Files
research-ops
The state layer of a research pipeline. Four artifacts — cursor, push log, register, TODO — plus one habit: say what changed and what it cost.
This skill produces no research content. No cards, no matrices, no proposals, no verdicts. It keeps the bookkeeping that makes those possible, and it is the only skill allowed to write to the state files.
What it owns
| Artifact | Question it answers | Single owner |
| scan cursor | where did the last run stop, and on what date | literature-radar writes, everyone reads |
| push log | which items have already been delivered | literature-radar writes, everyone reads |
| contradiction register | which claims are in tension, under which ID | synthesis-matrix / evidence-audit register; nobody closes them here |
| TODO / open items | what is blocked, on whom, since when | free for all skills, one file |
The rule that makes the layer work: each fact lives in exactly one file, and other files carry a pointer, never a copy. Two copies of a cursor diverge within a week; a pointer cannot.
→ references/state-files.md for fields, update protocol, and the hash-check that proves read-only sources are untouched.
Delivery format
Every run ends with three lines, in this order:
files: <what changed, one line>
next: <the single next action, not a plan>
new: <items newly registered, with IDs; "none" is a valid answer>And when the run defends a claim it also carries three lines of evidence — what is being defended / what the evidence is / what remains uncovered — with speculation excluded and unverifiable items booked into the register. This is not ceremony: it is the only place where "I checked" becomes auditable.
→ references/delivery-format.md for the ledger that backs the second triple, and the rule for what may not appear in either.
Disagreement is part of the delivery
A run that only reports what it did is a run that cannot be argued with.
- Every delivery carries a final section that names what the executor disagrees with — the instruction as given, the pipeline itself, or the last ruling — with the reason, in the same place every time.
- "None" is a valid answer and must be written out. An absent section and a section saying "none" mean different things, and only one of them is trustworthy.
- This section is an artefact of its own, not a fourth delivery line: it is not folded into files / next / new, because a disagreement about the instruction is not a fact about the files.
The failure this prevents: a pipeline where the only recorded objections are the ones that were already resolved, so every past decision looks unanimous in hindsight.
Stopping
Five conditions stop work; everything else continues and gets registered:
| Level | Meaning | Action |
| B1 | material missing | stop, name the file |
| B2 | provenance broken (a number with no traceable source) | stop, name the claim |
| B3 | a premise contradicts a known fact | stop, name both |
| B4 | rules are mutually exclusive — cannot proceed | stop, name the pair |
| B5 | silent error (a wrong output that looks right) | stop, name the detection |
Hit one → mark [BLOCKER], stop that thread, continue the rest. Nothing else is a blocker; calling a preference a blocker is how a pipeline loses a day.
→ references/blocker-levels.md — including why B1–B5, P-1–P-4, and the M-type tags must never be converted into each other.
Registering
Two layers, two permissions:
| Layer | May do | May not do |
| record layer (cards, matrix, gap notes) | register a tension with an ID, a location, a type, the facts, and a suggested disposition | decide who is right; rewrite neighbouring prose to fit |
| adjudication layer (proposals) | rule a claim holds / fails / is undecidable, and fix a primary value | write back into the record layer; cite a record-layer entry as precedent |
→ references/ledger-rules.md for the boundary cases, including the one that breaks most pipelines: a same-day ruling that starts as a registration.
Does not trigger
Three prompts that look adjacent and must go elsewhere. These are the regression fixtures for this skill's description; if a change makes any of them route here, the change is wrong.
| Prompt | Correct route | Why not here |
| "Turn this PDF into a card with provenance" | paper-card | the output is research content; state files may also change, which is exactly the trap |
| "Compare these six cards on one axis" | synthesis-matrix | produces a comparative claim; registering a contradiction afterwards is a separate, smaller act |
| "Keep notes on what I read this week" | no skill | one-off note-taking with no state contract, no IDs, nothing to reconcile |
The last one matters most: research-ops is not a note-taking skill, and a pipeline that treats it as one ends up with state files nobody trusts.
Routing
| Task | Go to |
| which file holds which fact; how to update a cursor | references/state-files.md |
| verify a manifest before and after a run | scripts/check-sources.py --manifest <file> --root <dir> [--class readonly|state] |
| how to close a run; what the ledger must contain | references/delivery-format.md |
| should I stop; is this a blocker | references/blocker-levels.md |
| may I decide this, or only register it | references/ledger-rules.md |
| run the scan itself | literature-radar |
| decide whether a claim holds | evidence-audit |
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
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.

