{
 "schema_version": 1,
 "generated": "2026-10-24",
 "id": "unclecode-modelprint--check-probe-changes-before-pull-request",
 "repo": "unclecode/modelprint",
 "repo_url": "https://github.com/unclecode/modelprint",
 "repo_slug": "unclecode-modelprint",
 "title": "Run the test suites before opening a probe pull request",
 "page_title": "How to run the test suites before opening a probe pull request with Modelprint",
 "summary": "Use selftest.mjs and smoke.mjs to confirm a new or edited probe behaves before review.",
 "who": "A contributor who has written or changed a probe in probes/ and wants to confirm it meets the project rules before opening a pull request.",
 "problem": "A probe that throws, returns timestamps, or gives a non-deterministic value will not be accepted, and the README lists those rules.",
 "outcome": "A local pass or fail result from the mock-harness suite, and printed values from two real models if you have a key.",
 "steps": [
  "Clone the repository with `git clone https://github.com/unclecode/modelprint` and change into the folder. (inferred, check the README)",
  "Copy `probes/_template.js` to a new file in `probes/` and write your probe following the contract in the README.",
  "Run `node selftest.mjs` to test every probe against a mock harness; this needs no key.",
  "Run `node smoke.mjs` with an OpenRouter key in the environment to print values from two real models.",
  "Add your probe to `probes/index.js` and your name to CONTRIBUTORS.md, then open a pull request."
 ],
 "agent_prompt": "In the modelprint repo, add a probe in probes/ following probes/_template.js, then run `node selftest.mjs` from the repo root. Expected output: a pass result for every probe including the new one. Verify the new probe returns the same value on two runs and never throws before you open a pull request.",
 "agents": [
  "any"
 ],
 "difficulty": "Advanced",
 "time": "1 hour",
 "basis": "readme",
 "caveat": "The README says approved probes are one line in probes/index.js and that the project has security and determinism gates, so a passing local run does not guarantee acceptance.",
 "category": "Security and science",
 "tags": [
  "Security and science"
 ],
 "lang": "javascript",
 "requirements": [
  "A web browser and an API key for the OpenAI-compatible endpoint you want to check",
  "Node.js, for the local test scripts (selftest.mjs, smoke.mjs, suspects.mjs)",
  "An OpenRouter API key in the environment, only for smoke.mjs and suspects.mjs"
 ],
 "risk": "dual-use",
 "seen_in_the_wild": false,
 "mentioned_publicly": false,
 "risks": [],
 "best": false,
 "score": 0.9,
 "evidence": [],
 "url": "https://dedupedai.com/use-cases/unclecode-modelprint/check-probe-changes-before-pull-request/",
 "md": "https://dedupedai.com/use-cases/unclecode-modelprint/check-probe-changes-before-pull-request/index.md",
 "disclaimer": "Deduped lists open-source repositories that belong to other people. We do not own, maintain, audit, or vouch for any of them, and a repo appearing here is not an endorsement or a safety check. The use cases, steps, and prompts are written by AI and may be incomplete, outdated, or just wrong. Where a use case is marked \"Seen in the wild\", we link to public posts where someone described something similar, but we have not verified those posts and the use case itself is still our AI's own write-up. Use all of this at your own risk. Only run code, commands, or agents on systems and accounts you are authorized to use, and read the code and every command before you run it, especially anything that touches credentials, files, or the network. Nothing here is professional, security, legal, or financial advice. All trademarks and project names belong to their respective owners, and their use here does not imply affiliation. Content is provided as is, without warranties of any kind. Found a mistake, a safety problem, or something you want removed? Email hello@dedupedai.com and we will look at it promptly.",
 "api": "https://dedupedai.com/api/v1/usecases/unclecode-modelprint--check-probe-changes-before-pull-request.json",
 "api_version": "v1"
}
