Today: you can use these now
Public and working. None of it needs an account.
- 1A keyless public data API. Federal provider, device, recall, drug-label, trial and hospital records, each response showing its upstream source. Endpoints and examples.
- 2Zero-dependency client files. solvinghealth.mjs, solvinghealth.py and an MCP stdio server for that API. Copy the file; there is nothing to install.
- 3Open-source packages, source only.
fhir,hipaa,identityandpromin blainomd/solvinghealth-sdk are Apache-2.0. They are not on npm (a registry lookup returns not-found on 2026-09-29), so there is nonpm installline here. Clone the repository and build them. The billing, clinical and umbrella packages in the same repository are proprietary and are not open source. - 4A site template. solvinghealth-template (Apache-2.0): fork it, edit one config file, deploy.
- 5A PHI tripwire in front of this site's assistant endpoints. The identifier patterns from the
hipaapackage now run, with a per-connection rate limit, before any of this site's chat, assistant, simulator, voice-token or care-wishes endpoints reach a model. It refuses a request that looks like it carries an identifier, and it refuses the request if the limiter itself is down. It is a regular-expression tripwire, not de-identification: passing it does not make text safe to send anywhere. - 6Two checks for AI in orthopaedics. citecheck looks up every DOI at CrossRef and compares the title, so a real DOI attached to the wrong paper fails. orthoharness is a benchmark harness: staged cases, two yardsticks never averaged, credit for “not enough information”, contraindication and omission checks, the keep-or-strike delta and a recorded signer. Both Apache-2.0, no dependencies. orthoharness is a reference implementation, not a validated benchmark: its six demo cases are synthetic. Why: surgeonvalue.com/docsf.
Run it yourself: one action behind a fail-closed gate
This is harness-gate, a small gate that sits between an AI agent and one action. It is Apache-2.0, has no dependencies, and its 57 checks pass (npm test). It is public at blainomd/harness-gate: clone it, run npm test, then pipe an action in, as below. Below is the real output of a run on 2026-09-29; each line is one action piped in, with its exit code. It is version 0.1.0 and is not on npm.
# echo '<action json>' | harness-gate decide (exit 0 = allow, 3 = hold, 4 = deny) {"tool":"read_file", "args":{"path":"notes.md"}} allow class=read exit 0 {"tool":"send_message", "args":{"body":"hello"}} hold class=message_out exit 3 a person sends it {"tool":"transfer_funds", "args":{"amount":1}} deny class=money exit 4 money never moves automatically {"tool":"mystery_tool", "args":{}} hold class=unknown exit 3 not in the manifest {"tool":"draft_note", "args":{"text":"Patient DOB 03/15/1985 ..."}} hold class=draft exit 3 possible patient identifiers: dob # harness-gate verify (the local receipt ledger is hash-chained) {"ok":true,"entries":5} exit 0 # delete one line from the ledger file, verify again {"ok":false,"brokenAt":2,"entries":2} exit 1
Rules, not a model. It classifies a call by name, holds a message out, a clinical step or a regulated filing for a person, denies money, and holds anything it does not recognise. It scans arguments only to make a verdict stricter (instruction-like text aimed at the agent, credentials, patient-identifier patterns, destructive shell patterns), and any error is a hold. Its receipts are a local hash-chained file that stores hashes, never the arguments. It does not judge clinical content, it does not replace a physician's signature, its patient-identifier patterns are a tripwire and not de-identification, and its receipts are not yet written to any public ledger.
Grow a flower: make your site a stop in the network
Added 2026-09-30. The network is a garden. Each site is a flower that a person, or an agent acting for one (the bee), can walk into, get one real thing done on the device, and leave carrying a small result to the next flower. Any site can be one, on any stack. Nothing here is bought, licensed or approved by us: the standard is public, the check runs on your machine, and the registry is rebuilt from what your site actually serves. Which flower a person is sent to first is decided by rules on /doors, not by who asked.
The Flower Standard, v1
- 1Job. One sentence: what the site does, for whom, and the business it supports. If the live site does not do that job today, fix that before anything below.
- 2Nectar. One complete thing a visitor can do in about five minutes, on the page, on the device: a screener, a calculator, a worksheet, a plan builder, a practice conversation. Doing beats reading. It states its own limits and asks for no more than it needs.
- 3Pollen out. When the nectar produces a result, offer "take this with you" to the sibling that serves the next need. By the person's click only. Numbers and short labels only; never free-text, names or dates of birth.
- 4Pollen in. Where a sibling can hand you something useful, accept it and use it for something concrete: prefill, skip a step, show context. If you cannot use it, do not accept it.
- 5Machine door.
/.well-known/agent.jsonlists every nectar as an action withauth,uploads_dataandsafe_to_hand_to_user;/llms.txtroutes to siblings by need;/sitemap.xmllists the pages. - 6Honest. No claim the site cannot defend today. Roles, never names. Nothing described as attested or approved, and no promised outcome, unless a licensed physician signed it for that case. No HIPAA claim, and no BAA claim when none is executed. 911 and 988 wherever a person may be in distress.
- 7Verified. A person walks through it as a visitor: a good path, a bad path, and an empty submit that must not show success, on a phone and on a desktop, before it is called done.
Four steps
- 1Start from the template, or from your own site. solvinghealth-template (Apache-2.0, Next.js): fork it, edit
site.config.ts, deploy. It serves the manifest, llms.txt and the sitemap from that one file. Any stack works; the standard is three files and one manifest. - 2Publish the machine door. Your
/.well-known/agent.jsonmust validate against agent-manifest-v1.json. Declare pollen only from the contract below; a kind that is not in the contract is a FAIL, not a feature. - 3Run the check on your machine.
# zero dependencies, Node 18+; public GETs only; sends nothing, writes nothing curl -O https://solvinghealth.com/sdk/flower-check.mjs node flower-check.mjs yourdomain.com # exit 0 = the shape is right node flower-check.mjs --manifest agent.json --host yourdomain.com --llms llms.txt # before you deploy
It reads your manifest, llms.txt, sitemap and homepage, fetches each same-host action once, and prints PASS, WARN and FAIL lines with the reason. The source is one file. A pass is a shape check, not an endorsement, and not a clinical or legal review of your site. - 4Ask to be listed. The registry at /.well-known/flowers.json is rebuilt from live manifests and is never hand-edited: the builder fetches every site's manifest, checks every door, and writes nothing if one fails. A site is added after its manifest passes the check and a person has walked through it. Send the domain; you get a tracking code back and the next step to do while you wait.
Pollen contract v1
The only result kinds a manifest may declare, with who sends and who receives each. A machine copy is at /schemas/pollen-kinds-v1.json; the live registry shows this contract beside what each site actually declares. To add a kind, propose it with the form above before using it. Transport: estate-pollen/1, a flat object of numbers and short labels (at most 24 keys, 200 characters each) in the URL fragment or a downloaded file, carried by the person's click only; the receiver validates it and renders it with textContent.
| kind | sent by | received by | fields (* required) |
|---|---|---|---|
fall_screener | fallrisks.com | healthgait.com, comfortcard.org, co-op.care | score*, max*, band* lower | moderate | higher |
gait_check | healthgait.com | fallrisks.com, comfortcard.org | speed_ms* (1 dp), gait_age, band* |
joint_risk | arthritisrisk.com | jointclass.com, surgeryprocess.com, comfortcard.org | joint* knee | hip | shoulder | hand | spine | other, pattern* mechanical | inflammatory | unclear, score |
back_assessment | doesyourbackhurt.com | comfortcard.org, surgeryprocess.com | band* self_care | see_clinician, weeks. Never sent when urgent. |
caregiver_situation | familycaregive.com | co-op.care, comfortcard.org, caregoals.com | stage* worried | starting | in_it, needs[] (up to 5), hours_week |
frailty_record | medfrail.com | comfortcard.org | date*, items_met*, items*, band |
record_fingerprint | comfortcard.org, chanio.com | hashcare.com | fp* (64 lowercase hex: the SHA-256 of a whole file or of a root the sender publishes, never a hash of short personal text), label (up to 60), kept (a date). The person still presses Check or Anchor. |
A listed flower is one the rules on /doors and the registry can send a person or an agent to, and one that siblings can hand pollen to. It does not get a payment, a license, a share, a badge, or any claim about being reviewed by us. The open code you can build with is the list under Today. Anything a flower says about physicians, coverage or money has to be true on its own page, by the same standard as the rest of the network.
Not built
- –A builder's share of measured benefit. Designed, not live. The design: when an agentic action's benefit is measured, up to 2.5% of it goes to the builder of that action and the same to the network, and the person sees both shares before accepting. Its limits are fixed: never on a physician's determination or any clinical decision, never as a payment for sending a patient anywhere, and never on a number the seller declared. Today nothing is charged anywhere in the network, no measurement above "delivered" exists in a product a stranger can use, and the entity that would pay it has to exist first. Until all three change, this line stays under Not built.
- –A packaged gate. The example above is source only: it is not on npm, and a served action manifest for other sites to read is not built.
- –A hosted decision endpoint. No API answers allow / hold / deny for you.
- –Public receipts. The receipt ledger at hashcare.com does not answer receipt writes yet (its ledger route returned 404 on 2026-09-29), so no receipt from these examples is public.
- –A signed physician approval you can verify in code. Physician sign-off happens in ClinicalSwipe on synthetic cases only; a token you can verify offline is not built.
- –A local decision model. Nothing here runs a model to decide; it is all rules.
Do not send patient information to any endpoint on this site. No business associate agreement is executed, no production case has been reviewed, and every physician-review case so far runs on synthetic data. Nothing here is medical, coding, billing or legal advice.