omh-systematic-review

Installation
SKILL.md

Systematic Review

This is a Hermes-native systematic-review workflow skill.

Why This Exists

Two reviewers screening the same records only count as dual review when neither sees the other's answers and the merge is mechanical. This workflow freezes the criteria first, keeps each reviewer blind, and never turns a missing answer into an exclusion.

First Steps

  • Records must be deduplicated across databases first (DOI or PMID, else normalized title plus year); record the identified, duplicate-removed and screened counts, because the PRISMA flow needs them and this workflow does not deduplicate.
  • Agree the inclusion and exclusion criteria and the ordered exclusion codes with the person before any record is read; nothing is frozen until they say the criteria are final. To pilot the criteria, freeze a throwaway DIR, prepare it on 25 to 50 records, review the conflicts, then freeze the real DIR.
  • Call omh research screening freeze --criteria FILE --codes FILE --out DIR. The protocol is write-once: a criteria change after freeze means a new DIR, never an edited protocol.json.
  • Call omh research screening prepare --dir DIR --records FILE --seed N, then read DIR/manifest.json for the batch list.
  • When delegate_task is in your tool list or tool_search finds it, dispatch two children, A and B: give each only its own DIR/tasks/<A|B>/ files and tell it to write answer lines to DIR/answers/<A|B>/. Never pass one child the other's tasks, answers or name; without the tool, ask the person to run the two reviewers separately. By default a child runs on the session's model (or the delegation.model pin) and delegate_task takes no per-child model, so A and B are then recorded as the same model: pass the real model for both and report broken_independence. Where the host routes each delegated task to a different model (a delegation backend or omh_delegate_route), give B another route and record the model it reports; otherwise ask the person to run reviewer B in a session on another model. Never write a model name you did not observe.
  • Call omh research screening merge --dir DIR --answers-a DIR/answers/A --answers-b DIR/answers/B --reviewer-models A=<model>,B=<model> --json. Exit 1 means conflicts or pending records remain; exit 2 is an input error to fix, not a result.
  • Show the conflict and pending ids to the person, or give a third child only the conflict records and the frozen criteria; pass its lines with --adjudication and merge again.

Do Not Use When

Installs
6
GitHub Stars
5.5K
First Seen
6 days ago