{
  "_id": "6ab6461b99f7aa8c6aa2d0a4",
  "Package": "screenllm",
  "Title": "LLM-Assisted Title/Abstract Screening for Systematic Reviews",
  "Version": "0.1.0",
  "Authors@R": "c(\nperson(\"Scott\", \"Spillias\", email = \"scott.spillias@csiro.au\",\nrole = c(\"aut\", \"cre\")),\nperson(\"Laura\", \"Avila Turriago\", role = \"aut\"),\nperson(\"Christopher\", \"Brown\", role = \"aut\"),\nperson(\"Ariane\", \"Easton\", role = \"aut\"),\nperson(\"Jack\", \"Roberts\", role = \"aut\"),\nperson(\"Michael\", \"Sievers\", role = \"aut\"),\nperson(\"Steve\", \"Swearer\", role = \"aut\"),\nperson(\"Andrew\", \"Taylor\", role = \"aut\"),\nperson(\"Brigette\", \"Wright\", role = \"aut\"),\nperson(\"Valeriya\", \"Komyakova\", role = \"aut\"))",
  "Description": "A turn-key workflow for LLM-assisted systematic-review\nscreening. The package ranks a corpus of titles and abstracts\nwith an ensemble of open-source large language models served\nlocally by 'Ollama', then applies the SAFE stopping rule to\nidentify the records a human should screen. Defaults match the\nfour-LLM mean ensemble and the SAFE configuration recommended\nby Spillias et al. (2026). A companion 'Shiny' app walks the\nhuman reviewer through the records above the stopping point.\nComplementary to the 'AIscreenR' package of Vembye et al.\n(2025) <doi:10.1037/met0000769>, which targets cloud-hosted\n'GPT' models via the 'OpenAI' API; 'screenllm' targets\nlocally-served open-weights ensembles with an integrated\nstopping rule.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "URL": "https://github.com/s-spillias/screenllm",
  "BugReports": "https://github.com/s-spillias/screenllm/issues",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "cmake make libuv1-dev libssl-dev",
  "Repository": "https://s-spillias.r-universe.dev",
  "Date/Publication": "2026-09-15 05:24:00 UTC",
  "RemoteUrl": "https://github.com/s-spillias/screenllm",
  "RemoteRef": "HEAD",
  "RemoteSha": "cc5678d528e9bbee56153b333b49524226143a7f",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-25 09:56:31 UTC",
    "User": "root"
  },
  "Author": "Scott Spillias [aut, cre],\nLaura Avila Turriago [aut],\nChristopher Brown [aut],\nAriane Easton [aut],\nJack Roberts [aut],\nMichael Sievers [aut],\nSteve Swearer [aut],\nAndrew Taylor [aut],\nBrigette Wright [aut],\nValeriya Komyakova [aut]",
  "Maintainer": "Scott Spillias <scott.spillias@csiro.au>",
  "_user": "s-spillias",
  "_type": "src",
  "_file": "screenllm_0.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/b5b39fe0950384f854dc68df32aea633effa07f6c83017170ae5155647b96303",
  "_filesize": 314545,
  "_sha256": "b5b39fe0950384f854dc68df32aea633effa07f6c83017170ae5155647b96303",
  "_expires": "2027-01-03T09:59:53.000Z",
  "_created": "2026-09-25T09:56:31.000Z",
  "_published": "2026-09-25T09:59:55.759Z",
  "_jobs": [
    {
      "job": 108027070087,
      "time": 138,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10858306174"
    },
    {
      "job": 108027070114,
      "time": 155,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10858286219"
    },
    {
      "job": 108027070231,
      "time": 151,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10857701935"
    },
    {
      "job": 108027070090,
      "time": 156,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10858026253"
    },
    {
      "job": 108025727965,
      "time": 272,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10857446721"
    },
    {
      "job": 108027070065,
      "time": 125,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10858331069"
    },
    {
      "job": 108027070325,
      "time": 90,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10857416975"
    },
    {
      "job": 108027070241,
      "time": 91,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10857861647"
    },
    {
      "job": 108027070173,
      "time": 86,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10858590894"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649",
  "_status": "success",
  "_upstream": "https://github.com/s-spillias/screenllm",
  "_commit": {
    "id": "cc5678d528e9bbee56153b333b49524226143a7f",
    "author": "s-spillias <scott.spillias@csiro.au>",
    "committer": "s-spillias <scott.spillias@csiro.au>",
    "message": "fix(cran): quote 'GPT', keep DOI contiguous, stop tests writing to $HOME\n\nFollow-up to the reviewer round while double-checking compliance:\n\n- DESCRIPTION: single-quote 'GPT'; reflow so the reference reads\n  \"Vembye et al. (2025) <doi:10.1037/met0000769>\" on one line (year and\n  DOI no longer split across a continuation line).\n- Tests: add tests/testthat/setup.R that points R_USER_DATA_DIR and\n  R_USER_CACHE_DIR at tempdir() for the whole suite. test-async-pull.R\n  was creating ~/.cache/R/screenllm/pulls in the real home filespace\n  (pull_progress_path() under R_user_dir(\"cache\")); the check now leaves\n  both the data and cache user dirs empty.\n- project.R: track the data-root fallback warning in a package-internal\n  environment instead of options(), so no function changes user options\n  at runtime (only .onLoad sets the package's own defaults).\n\nR CMD check --as-cran: 0 errors, 0 warnings, 1 NOTE (New submission);\nhome data and cache dirs verified empty after a clean-slate check.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n",
    "time": 1789449840
  },
  "_maintainer": {
    "name": "Scott Spillias",
    "email": "scott.spillias@csiro.au",
    "login": "s-spillias",
    "description": "",
    "uuid": 47622332
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "fs",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "httr2",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "bslib",
      "role": "Suggests"
    },
    {
      "package": "DT",
      "role": "Suggests"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "later",
      "role": "Suggests"
    },
    {
      "package": "writexl",
      "role": "Suggests"
    },
    {
      "package": "readxl",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "readr",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "mockery",
      "role": "Suggests"
    },
    {
      "package": "stringdist",
      "role": "Suggests"
    }
  ],
  "_owner": "s-spillias",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-29",
      "n": 55
    },
    {
      "week": "2026-30",
      "n": 11
    },
    {
      "week": "2026-35",
      "n": 3
    },
    {
      "week": "2026-36",
      "n": 5
    },
    {
      "week": "2026-38",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0-alpha",
      "date": "2026-07-13"
    },
    {
      "name": "v0.1.0-alpha.2",
      "date": "2026-07-14"
    },
    {
      "name": "v0.1.0",
      "date": "2026-09-15"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "s-spillias",
      "count": 77,
      "uuid": 47622332
    }
  ],
  "_userbio": {
    "uuid": 47622332,
    "type": "user",
    "name": "s-spillias",
    "followers": 9
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/screenllm"
  },
  "_devurl": "https://github.com/s-spillias/screenllm",
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/screenllm.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/s-spillias/screenllm",
  "_realowner": "s-spillias",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-09-24"
    }
  ],
  "_exports": [
    "audit_disagreements",
    "backend_mock",
    "backend_ollama",
    "build_prompt",
    "check_setup",
    "clear_cache",
    "custom_ensemble",
    "default_ensemble",
    "default_ensemble_light",
    "define_criteria",
    "delete_artefact",
    "delete_model",
    "detect_gpu",
    "estimate_runtime",
    "export_report",
    "export_worksheet",
    "find_duplicates",
    "gpu_status",
    "install_prereqs",
    "launch_app",
    "launch_screening_app",
    "list_project_artefacts",
    "list_projects",
    "load_artefact",
    "load_toy_cbfm_criteria",
    "ollama_catalog",
    "ollama_health",
    "ollama_installed_models_detail",
    "plan_screening",
    "pull_model",
    "rank_records",
    "read_decisions",
    "read_records",
    "save_artefact",
    "summarise_screening"
  ],
  "_help": [
    {
      "page": "audit_disagreements",
      "title": "Surface strong LLM-human disagreements for a manual audit",
      "topics": [
        "audit_disagreements"
      ]
    },
    {
      "page": "backend_mock",
      "title": "Mock backend for tests",
      "topics": [
        "backend_mock"
      ]
    },
    {
      "page": "backend_ollama",
      "title": "Ollama backend",
      "topics": [
        "backend_ollama"
      ]
    },
    {
      "page": "build_prompt",
      "title": "Build a screening prompt for one record",
      "topics": [
        "build_prompt"
      ]
    },
    {
      "page": "check_setup",
      "title": "Verify local setup for 'screenllm'",
      "topics": [
        "check_setup"
      ]
    },
    {
      "page": "clear_cache",
      "title": "Clear cached LLM scores for a project",
      "topics": [
        "clear_cache"
      ]
    },
    {
      "page": "custom_ensemble",
      "title": "Define a custom LLM ensemble",
      "topics": [
        "custom_ensemble"
      ]
    },
    {
      "page": "default_ensemble",
      "title": "The paper's default LLM ensemble",
      "topics": [
        "default_ensemble"
      ]
    },
    {
      "page": "default_ensemble_light",
      "title": "A \"light\" ensemble that runs on a laptop",
      "topics": [
        "default_ensemble_light"
      ]
    },
    {
      "page": "define_criteria",
      "title": "Define screening inclusion criteria",
      "topics": [
        "define_criteria"
      ]
    },
    {
      "page": "delete_artefact",
      "title": "Delete an artefact (or a whole project)",
      "topics": [
        "delete_artefact"
      ]
    },
    {
      "page": "delete_model",
      "title": "Delete an Ollama model to free up disk space",
      "topics": [
        "delete_model"
      ]
    },
    {
      "page": "detect_gpu",
      "title": "Detect a usable GPU for Ollama inference",
      "topics": [
        "detect_gpu"
      ]
    },
    {
      "page": "estimate_runtime",
      "title": "Estimate wall-clock time for a ranking run",
      "topics": [
        "estimate_runtime"
      ]
    },
    {
      "page": "export_report",
      "title": "Render the screening report as a self-contained HTML document",
      "topics": [
        "export_report"
      ]
    },
    {
      "page": "export_worksheet",
      "title": "Export the human-screening worksheet",
      "topics": [
        "export_worksheet"
      ]
    },
    {
      "page": "find_duplicates",
      "title": "Detect and remove duplicate records",
      "topics": [
        "find_duplicates"
      ]
    },
    {
      "page": "gpu_status",
      "title": "Live NVIDIA GPU status snapshot",
      "topics": [
        "gpu_status"
      ]
    },
    {
      "page": "install_prereqs",
      "title": "One-stop setup for a fresh machine",
      "topics": [
        "install_prereqs"
      ]
    },
    {
      "page": "launch_app",
      "title": "Launch the full end-to-end Shiny app",
      "topics": [
        "launch_app"
      ]
    },
    {
      "page": "launch_screening_app",
      "title": "Launch the interactive screening Shiny app",
      "topics": [
        "launch_screening_app"
      ]
    },
    {
      "page": "list_project_artefacts",
      "title": "Canonical artefact filenames",
      "topics": [
        "list_project_artefacts"
      ]
    },
    {
      "page": "list_projects",
      "title": "List existing project names",
      "topics": [
        "list_projects"
      ]
    },
    {
      "page": "load_artefact",
      "title": "Load an artefact from a project directory",
      "topics": [
        "load_artefact"
      ]
    },
    {
      "page": "load_toy_cbfm_criteria",
      "title": "Load the ready-made criteria for the toy CBFM corpus",
      "topics": [
        "load_toy_cbfm_criteria"
      ]
    },
    {
      "page": "ollama_catalog",
      "title": "Curated catalog of Ollama models useful for screening",
      "topics": [
        "ollama_catalog"
      ]
    },
    {
      "page": "ollama_health",
      "title": "Ping the Ollama server",
      "topics": [
        "ollama_health"
      ]
    },
    {
      "page": "ollama_installed_models_detail",
      "title": "Installed Ollama models with disk-space metadata",
      "topics": [
        "ollama_installed_models_detail"
      ]
    },
    {
      "page": "plan_screening",
      "title": "Plan the human screening set with the SAFE stopping rule",
      "topics": [
        "plan_screening"
      ]
    },
    {
      "page": "pull_model",
      "title": "Pull an Ollama model to the local server",
      "topics": [
        "pull_model"
      ]
    },
    {
      "page": "rank_records",
      "title": "Rank a corpus with an LLM ensemble",
      "topics": [
        "rank_records"
      ]
    },
    {
      "page": "read_decisions",
      "title": "Read completed screening decisions",
      "topics": [
        "read_decisions"
      ]
    },
    {
      "page": "read_records",
      "title": "Read a corpus of records from disk",
      "topics": [
        "read_records"
      ]
    },
    {
      "page": "save_artefact",
      "title": "Save an artefact into a project directory",
      "topics": [
        "save_artefact"
      ]
    },
    {
      "page": "summarise_screening",
      "title": "Summarise a completed screening session",
      "topics": [
        "summarise_screening"
      ]
    }
  ],
  "_readme": "https://github.com/s-spillias/screenllm/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "cli",
    "curl",
    "digest",
    "dplyr",
    "fs",
    "generics",
    "glue",
    "httr2",
    "jsonlite",
    "lifecycle",
    "magrittr",
    "openssl",
    "pillar",
    "pkgconfig",
    "R6",
    "rlang",
    "sys",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "quickstart.Rmd",
      "filename": "quickstart.html",
      "title": "screenllm quickstart",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Verify setup",
        "2. Load a corpus",
        "3. Define the inclusion criteria",
        "4. Rank the corpus",
        "5. Plan the human screening set",
        "6. Screen and report"
      ],
      "created": "2026-07-13 23:39:09",
      "modified": "2026-07-14 02:00:31",
      "commits": 2
    }
  ],
  "_score": 4.3979400086720375,
  "_indexed": true,
  "_nocasepkg": "screenllm",
  "_universes": [
    "s-spillias"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-25T09:58:50.000Z",
      "distro": "resolute",
      "commit": "cc5678d528e9bbee56153b333b49524226143a7f",
      "fileid": "https://r2.ropensci.org/d8a2fb14fe360c162951839e233da4511f177cf287746705bccbf226131c4485",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-25T09:59:01.000Z",
      "distro": "resolute",
      "commit": "cc5678d528e9bbee56153b333b49524226143a7f",
      "fileid": "https://r2.ropensci.org/f4fb718ac5b3723fd9449003d579bbab95132b68eaf08af3ffb34d6e3e42e0c4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-09-25T09:58:49.000Z",
      "commit": "cc5678d528e9bbee56153b333b49524226143a7f",
      "fileid": "https://r2.ropensci.org/f5fb55bd334ed6e6fb43d572dcfd0af6b794e4e5130269983621eea5ee133471",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-09-25T09:58:40.000Z",
      "commit": "cc5678d528e9bbee56153b333b49524226143a7f",
      "fileid": "https://r2.ropensci.org/c5b9341fb2cf6631d90acfb3098d38d7eb036f33e2fa6696c1e62afc3e74adef",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-09-25T09:58:57.000Z",
      "commit": "cc5678d528e9bbee56153b333b49524226143a7f",
      "fileid": "https://r2.ropensci.org/aba9174621ab0f3aadc17b691bf8b6aa7572ade380bab28e8281817658585067",
      "status": "success",
      "buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-25T09:57:47.000Z",
      "commit": "cc5678d528e9bbee56153b333b49524226143a7f",
      "fileid": "https://r2.ropensci.org/9a4546c2a24e85adcbdca9f274cd9ddc264a1d898baae2006ca9d3b170995821",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-25T09:57:48.000Z",
      "commit": "cc5678d528e9bbee56153b333b49524226143a7f",
      "fileid": "https://r2.ropensci.org/bbb319008ba7a42192fca85defd5617d1de6a5b6a0a925e0b597b67f6a8c673e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-25T09:57:39.000Z",
      "commit": "cc5678d528e9bbee56153b333b49524226143a7f",
      "fileid": "https://r2.ropensci.org/56ba830a64f3d5c0cde2b86812cf12608cd91271cb3fd149cb50c68864605b96",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/s-spillias/actions/runs/36120822649"
    }
  ]
}