<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[HippocrAI]]></title><description><![CDATA[HippocrAI — The physician's oath, in code. Open-source library of AI agents with an emphasis on medtech development, and the discipline that makes them work. Overlying dialogue on ethically grounded AI work in medicine]]></description><link>https://hippocr.ai</link><image><url>https://substackcdn.com/image/fetch/$s_!lgmC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3941eb4d-daac-4fa4-8e86-0fe5616e8066_640x640.png</url><title>HippocrAI</title><link>https://hippocr.ai</link></image><generator>Substack</generator><lastBuildDate>Sat, 04 Jul 2026 21:36:04 GMT</lastBuildDate><atom:link href="https://hippocr.ai/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Joseph Hayhurst]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[hippocrai@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[hippocrai@substack.com]]></itunes:email><itunes:name><![CDATA[Joseph L. Hayhurst, MD]]></itunes:name></itunes:owner><itunes:author><![CDATA[Joseph L. Hayhurst, MD]]></itunes:author><googleplay:owner><![CDATA[hippocrai@substack.com]]></googleplay:owner><googleplay:email><![CDATA[hippocrai@substack.com]]></googleplay:email><googleplay:author><![CDATA[Joseph L. Hayhurst, MD]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Discipline at the Input ]]></title><description><![CDATA[Seven prompting patterns I used to build my SBIR agent &#8212; and that any domain expert can adopt.]]></description><link>https://hippocr.ai/p/discipline-at-the-input</link><guid isPermaLink="false">https://hippocr.ai/p/discipline-at-the-input</guid><dc:creator><![CDATA[Joseph L. Hayhurst, MD]]></dc:creator><pubDate>Tue, 02 Jun 2026 19:54:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Q7Yb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q7Yb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png 424w, https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png 848w, https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png 1272w, https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png" width="884" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:884,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38641,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hippocr.ai/i/200350948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png 424w, https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png 848w, https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png 1272w, https://substackcdn.com/image/fetch/$s_!Q7Yb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2cadf78-0e1b-4d02-b6d8-0a1465595794_884x640.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1></h1><div><hr></div><p>A common reaction when I describe HippocrAI is some version of &#8220;I couldn&#8217;t do that &#8212; I&#8217;m not technical.&#8221; The reaction is sincere and almost always wrong. The bottleneck for physicians building their own tools used to be writing code. With frontier models capable of producing most of the boilerplate when given a clear specification, the bottleneck has moved. It now sits at the input.</p><p>The single insight that explains why some physicians can use AI tools to build useful, safe, releasable software while others can&#8217;t is this: the quality of the tool reflects the quality of the prompting that built it. Discipline at the input creates discipline at the output. There is no shortcut. A model asked to &#8220;help me write some Python that uses the API&#8221; produces something generic and unsafe. A model asked, with full context and clear constraints, to build an agent that does a specific thing under specific guardrails produces something usable.</p><p>What follows are seven specific prompting patterns I used to build the SBIR Aims Agent. They are not novel. They are not technical. Most physicians already practice versions of them in clinical work without knowing they&#8217;re transferable. Naming them here makes the transfer easier.</p><p>The agent itself, for context: an open-source AI tool that drafts NIH SBIR Phase I Specific Aims pages, grounded in live PubMed retrieval, refined through adversarial self-critique, in two to five minutes per run. Around 360 lines of Python in a single file. Released under Apache 2.0 at <code>github.com/hippocrai/sbir-aims-agent</code>. The architecture is well-known engineering. What&#8217;s interesting isn&#8217;t the architecture; it&#8217;s how a physician without an engineering background was able to specify it well enough that a frontier model could produce it.</p><div><hr></div><h2>1. Specify the deliverable, not the process</h2><p>The most common prompting failure is asking a model to perform steps rather than to produce an outcome. &#8220;Help me write a Python script&#8221; is a process prompt. &#8220;Build an agent that drafts NIH SBIR Phase I aims pages, uses live PubMed retrieval to ground citations, and includes a separate critique step&#8221; is a deliverable prompt. The first will produce something generic, because there is no destination defined. The second forces the model to make architectural choices that fit a target.</p><p>This pattern transfers from clinical work directly. When a chief resident describes a consult, they don&#8217;t list steps &#8212; they specify a deliverable: <em>the patient needs a NJ tube placed, sedated, with confirmation by KUB before feeds restart.</em> The deliverable is bounded, measurable, and lets the team work backward from it. AI prompting works the same way. State the destination clearly and the model can choose the path. Leave it ambiguous and the model defaults to the most generic interpretation of your words.</p><p>When I wrote the spec for the agent, I did not write &#8220;use the Anthropic API to make a tool.&#8221; I wrote, in effect, &#8220;produce the smallest possible Python program that takes a project briefing as input and outputs a publication-quality NIH SBIR Phase I Specific Aims page, grounded in live PubMed and NIH RePORTER retrieval, refined through a separate adversarial critique step, with <code>[FILL: source]</code> markers for any unverified claims.&#8221; Every later choice &#8212; the ReAct loop, the three-tool design, the separated critic context &#8212; followed from that specification.</p><h2>2. Iterate on identity before iterating on output</h2><p>Early in this project I wrote about myself as a &#8220;surgeon-founder.&#8221; It survived two drafts before I caught it: three years of general surgery residency without board certification doesn&#8217;t qualify me to use that title, even if the term is technically accurate to past training. I changed it to &#8220;physician-founder,&#8221; which is honest, distinctive, and survives any future scrutiny.</p><p>That change was upstream of the technical work. But every artifact downstream &#8212; the README, the LICENSE copyright line, the Substack drafts, the eventual Twitter bio &#8212; inherits the precision of that early decision. If I&#8217;d let the overclaim stand, every downstream artifact would now contain a small lie. Worse, every revision I asked the model to make would inherit the same lie because the system prompt would carry it forward.</p><p>Calibrate identity, naming, and self-description <em>before</em> you start generating output. The cost of fixing it later compounds.</p><h2>3. Demand calibrated truth, not validation</h2><p>Throughout the build I asked questions like <em>&#8220;how unique is this thing we&#8217;re creating?&#8221;</em> and <em>&#8220;is this widely adopted, or have we found something useful that nobody&#8217;s done?&#8221;</em> These were explicit invitations for the model to puncture optimism if it was warranted. The honest answer &#8212; that the architecture is well-known engineering and what&#8217;s actually rare is the discipline plus domain expertise &#8212; was more useful than a flattering one would have been. It became the strategic positioning thesis for the entire project.</p><p>Most prompting goes the other direction. Users ask leading questions and the model, trained to be helpful, gives reassuring answers. The output drifts toward inflated claims. Public artifacts written from inflated claims fail under scrutiny. Investors notice. Reviewers notice. Hostile journalists notice.</p><p>The pattern is to ask questions phrased to <em>invite disconfirmation</em> rather than seek confirmation. Instead of <em>&#8220;this looks good, right?&#8221;</em> ask <em>&#8220;what&#8217;s wrong with this?&#8221;</em> Instead of <em>&#8220;is this unique?&#8221;</em> ask <em>&#8220;who else is doing this and why is this version distinctive?&#8221;</em> The model will give you better material, and the resulting work will survive the rooms it eventually has to enter.</p><h2>4. Enforce discipline upstream, not as cleanup</h2><p>Before any agent code was written, I had already established the Pre-Release Review Protocol &#8212; seven hard guardrails covering provisional patent containment, FDA-compliant framing, no real client briefings, generic-only public prompts, and pre-release checklists. The protocol existed because of medtech-specific risks I had thought through before any AI work began.</p><p>When I asked the model to build the agent, the protocol was part of the context. The HIPEC briefing that originally lived inside the code was extracted into a private file. The example brief was synthetic and clearly labeled as such. The README disclaimers were written first, not retrofitted. The .gitignore patterns excluded private briefings before any private briefing existed locally to be excluded.</p><p>The opposite pattern &#8212; build first, clean up later &#8212; is how leaks happen. By the time you notice the leak, the artifact is already public, the commit is already pushed, the screenshot is already taken. Pulling things back is much harder than never pushing them in the first place.</p><h2>5. Ask meta-questions about reasoning, not just answers</h2><p>The instruction &#8220;explain hallucinations to me and why they happen&#8221; produces a different conversation than &#8220;fix the hallucinations in this output.&#8221; The first asks the model to expose its reasoning so I can transfer the understanding to other contexts. The second asks for a localized fix.</p><p>Throughout the build, I consistently asked meta-questions. <em>Why does this prompting pattern work better than that one? What&#8217;s the failure mode this pattern is defending against? What would I tell another physician who wanted to build a similar tool?</em> Each meta-question converted output from instructions-I-can-execute-once to understanding-I-can-deploy-elsewhere. By the end of the build, the same patterns I&#8217;d applied to the SBIR agent could be transferred to FDA Q-Sub drafting, EU MDR Clinical Evaluation Reports, IRB applications, manuscript drafts. The understanding was portable in a way the code wasn&#8217;t.</p><p>For domain experts, especially, this is the pattern that compounds. Each project teaches not just a tool but a generalizable lesson if the prompt explicitly elicits it.</p><h2>6. Verify by running the actual system</h2><p>I did not accept the agent as built when the model said it was done. I cloned the published repository from GitHub onto a fresh machine, installed dependencies, set the API key, and ran the agent against the synthetic example brief. Then I ran it against the real HIPEC briefing. The first run hit a rate limit before completion. The second exposed a folder-naming bug from when files had been uploaded back from local. A third run, after fixes, completed cleanly.</p><p>Each round of in-the-field testing surfaced problems that would never have appeared inside the development conversation. The agent looked correct on inspection. It only revealed its actual flaws when run end-to-end as a stranger would experience it.</p><p>This is the medical version of &#8220;treat the patient, not the chart.&#8221; The output of any tool is just a hypothesis until it survives execution against reality. Domain experts who skip the execution step ship work that fails in production, often in embarrassing ways. The pattern is to define a complete end-to-end test that exercises the actual deployment path &#8212; not a contrived example, not a half-mocked test, but the real thing &#8212; and run it before declaring done.</p><h2>7. Name the friction when it appears</h2><p>Through the build, I surfaced every confusion as it appeared. <em>Where is the terminal. What does git init mean. The README didn&#8217;t show up on GitHub. The .DS_Store keeps coming back.</em> Every one of these was friction I could have hidden by working around it silently or pretending I understood. Naming each one explicitly produced two outcomes. The immediate problem got solved. And the build&#8217;s documentation got better &#8212; because each unnamed assumption that I caught added a sentence somewhere that future users wouldn&#8217;t trip over.</p><p>The opposite pattern is to nod along, work around problems silently, and ship a tool that&#8217;s only usable by people who think exactly like the builder. Most open-source software fails this way. The README assumes Mac. The setup script assumes a specific shell. The error messages are written for someone who already understands the system. Domain-expert-built tools &#8212; when the domain expert is willing to surface their own confusions during development &#8212; tend to be more usable, because they&#8217;re documented for the audience that matters.</p><h2>Why medical training is preparation for this</h2><p>Look back at those seven patterns. Specify the deliverable, not the process. Calibrate identity before you ship it. Demand truth, not flattery. Enforce discipline upstream. Reason about why, not just what. Verify by execution. Name the friction.</p><p>These are not technical disciplines. They are forms of intellectual hygiene that medical training selects for. Specifying a deliverable is what a chief complaint forces. Demanding truth over comfort is what differential diagnosis requires. Upstream discipline is what consent forms and time-outs embody. Reasoning about <em>why</em> is what evidence-based medicine teaches. Verification is what a physical exam plus imaging exists for. Naming friction is what morbidity and mortality conferences are <em>for</em>.</p><p>Physicians already have the dispositions that produce good AI-built tools. The gap isn&#8217;t temperament. The gap is that most physicians don&#8217;t yet know that the same dispositions transfer. They look at AI tooling and see a domain that requires CS skills they don&#8217;t have. What it actually requires is the prompting discipline that medical training has already given them. Discipline at the input creates discipline at the output. There is no shortcut. And there are very few shortcuts worth having.</p><div><hr></div><h2>What this means for HippocrAI</h2><p>The thesis under this entire project is that the next wave of useful AI tools in medicine will not come from AI labs that don&#8217;t understand medicine, or from medical institutions that don&#8217;t move fast. They will come from physicians who have learned to use AI as a force multiplier and who hold themselves to the discipline the profession demands.</p><p>If the bottleneck has moved from &#8220;can the physician code&#8221; to &#8220;does the physician have the discipline to specify well,&#8221; then the multiplier on physicians who already practice that discipline is enormous. The agents are free. The discipline is the moat. The era where this kind of work needed an engineering co-founder is over.</p><p>If you&#8217;re a physician sitting on a tool you wish existed, the question to ask yourself isn&#8217;t <em>can I build this</em>. The question is <em>can I specify it clearly, can I calibrate the framing, can I enforce upstream discipline, can I demand calibrated truth from the model, can I run the result against reality, and can I name the friction when it shows up</em>. If the answer to any of those is yes, the rest is just iteration.</p><p>The next post in this series walks through adversarial self-critique as a generalized prompting pattern for technical writing &#8212; drawing examples from medical documentation, regulatory drafting, and scientific manuscripts. Subscribe to HippocrAI to receive it.</p><p>&#8212; Joseph L. Hayhurst, MD</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hippocr.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading HippocrAI! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I Built an AI Agent to Draft My Own NIH Grant]]></title><description><![CDATA[The architecture, four prompting patterns, and the open-source code.]]></description><link>https://hippocr.ai/p/i-built-an-ai-agent-to-draft-my-own</link><guid isPermaLink="false">https://hippocr.ai/p/i-built-an-ai-agent-to-draft-my-own</guid><dc:creator><![CDATA[Joseph L. Hayhurst, MD]]></dc:creator><pubDate>Thu, 14 May 2026 15:20:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!I8Ow!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I8Ow!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I8Ow!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png 424w, https://substackcdn.com/image/fetch/$s_!I8Ow!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png 848w, https://substackcdn.com/image/fetch/$s_!I8Ow!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png 1272w, https://substackcdn.com/image/fetch/$s_!I8Ow!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I8Ow!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png" width="811" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:608,&quot;width&quot;:811,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:35505,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hippocr.ai/i/197707684?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73f64351-d238-4e3f-a8a6-e8d7130d9ba4_884x640.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I8Ow!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png 424w, https://substackcdn.com/image/fetch/$s_!I8Ow!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png 848w, https://substackcdn.com/image/fetch/$s_!I8Ow!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png 1272w, https://substackcdn.com/image/fetch/$s_!I8Ow!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe63b4b2f-31e7-4701-ad9b-c7bee3af7261_811x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The Specific Aims page is the rate-limiting step in NIH SBIR grant writing. It&#8217;s the first page a study-section reviewer reads, the page that determines whether they keep reading, and structurally the hardest page in the whole submission to write. For a medtech founder operating without a grant-writing department, the page can take weeks of drafts, rewrites, and revisions before it&#8217;s ready to put inside a submission.</p><p>Most AI tools that claim to help with this are unsafe to use. They produce confident-sounding text built on hallucinated citations &#8212; papers that don&#8217;t exist, statistics that were invented, attributions to authors who never wrote them. For most uses of language models this is annoying. For an NIH submission it can end your funding trajectory before it starts.</p><p>I built an open-source agent that addresses this directly. It produces publication-quality first drafts of NIH SBIR Phase I Specific Aims pages, grounded in live PubMed retrieval, refined through adversarial self-critique, in two to five minutes per run. It&#8217;s open-source under Apache 2.0 at <code>github.com/hippocrai/sbir-aims-agent</code>.</p><p>This post walks through how it works, why each design choice matters, and what&#8217;s left for the human to do. It&#8217;s also the first technical release from HippocrAI &#8212; the open-source layer of AI tooling for medtech, built under physician oversight.</p><div><hr></div><h2>What this is, and what it isn&#8217;t</h2><p>This is a writing-assistance tool. It produces a draft of an aims page that the human PI then verifies, revises, and authors as a submission. Used well, it cuts time-to-publishable-draft from days to hours.</p><p>This is not a medical device. It does not analyze patient data, does not make diagnostic or treatment recommenda</p><p>tions, does not constitute clinical decision support. It produces administrative writing &#8212; grant text &#8212; and explicitly nothing more. The README states this in three places, and the design itself enforces it: there is no clinical input the agent will accept, only project-briefing markdown.</p><p>The separation matters because much of what fails in medical AI fails by overreach. The discipline of staying clearly within the administrative layer is part of what makes the tool releasable, and part of what HippocrAI is built around.</p><div><hr></div><h2>The agent, in one paragraph</h2><p>You feed it a markdown briefing &#8212; device, clinical problem, competitive landscape, preliminary data, target NIH institute, funding ceiling, duration. The agent grounds the document in real literature by querying PubMed via NCBI&#8217;s E-utilities API and the NIH funding landscape via RePORTER. It drafts an aims page using a hardcoded canonical NIH structure. And it submits the draft to a separate Claude instance prompted to act as a brutal study-section chair &#8212; the critic returns specific weaknesses, the drafter revises, and the cycle continues until the critique stops finding substantive issues. The output is a single markdown file ready for human verification.</p><h2>The architecture</h2><p>The whole thing is around 360 lines of Python in a single file. No agent framework. No vector database. No orchestration layer. Just the Anthropic Messages API with tool use, two HTTP clients for PubMed and RePORTER, and a critique step that spawns a separate Claude call.</p><p>Two distinct Claude calls run in different roles. The <strong>drafter</strong> is the main agent, running Claude Sonnet 4.5 in a multi-turn ReAct loop with three tools available. ReAct is the standard pattern: the model reasons about what to do next, calls a tool, observes the result, reasons again, eventually concludes. The <strong>critic</strong> is a one-shot Claude call invoked from inside the drafter&#8217;s loop, with a different system prompt and no shared conversation context. It sees only the draft text.</p><p>The three tools are <code>search_pubmed</code>, <code>search_nih_reporter</code>, and <code>critique_draft</code>. The first two hit live external APIs. The third spawns the critic.</p><p>This is deliberately simple. Almost any production agent framework would be more complex than this, and would not produce better output for this specific task. The architecture is sized to fit the problem.</p><div><hr></div><h2>A short detour through hallucination</h2><p>It&#8217;s worth pausing to explain why live retrieval matters at all, because hallucination is the failure mode this whole architecture is built around.</p><p>A language model is mechanically a next-token predictor. Given the conversation so far, it computes a probability distribution over what word should come next, and samples. It does this thousands of times to produce a paragraph. Throughout the process, the model has no representation of &#8220;this is true&#8221; or &#8220;I don&#8217;t know this.&#8221; It has only &#8220;this token is likely to follow these tokens, given my training.&#8221;</p><p>When you ask such a model for a citation, it produces citation-shaped text. Sometimes that text refers to a real paper that genuinely supports the claim. Sometimes it refers to a real paper that doesn&#8217;t actually support the claim. Sometimes the citation is structurally plausible but the paper doesn&#8217;t exist. Studies put the error rate for biomedical citations from a chat interface at 20&#8211;60%, depending on the model and the prompt. The output looks identical in all four cases. There is no &#8220;I&#8217;m guessing&#8221; tag, no internal flag. The model has no way to surface uncertainty even when it&#8217;s profoundly uncertain.</p><p>For most uses of language models this is a manageable nuisance. For NIH submissions it&#8217;s unacceptable. So the architecture is built to make this category of failure either impossible or explicit.</p><div><hr></div><h2>The four prompting patterns</h2><p>These are the design choices that distinguish the agent from a chat-interface-plus-prompt approach. They generalize beyond grant writing &#8212; anyone building an agent for structured technical writing will find these useful.</p><h3>1. Adversarial self-critique via separated contexts</h3><p>A model asked to critique its own work in the same conversation tends to defend its choices. It&#8217;s seen the reasoning that produced the draft; it has internal pressure toward consistency; it leans sycophantic. The critique it produces is qualitatively worse than what a fresh reader would produce.</p><p>So the agent spawns the critic as a separate Claude call with a different system prompt and no shared context. The critic sees the draft cold. It can&#8217;t defend choices it never made. It has no reason to be polite. Its system prompt opens with: <em>&#8220;You are a senior NIH SBIR study section chair with twenty years of experience reviewing medical device applications. Your critique is specific, brutal, and actionable. For every weakness you flag, you propose a concrete fix.&#8221;</em></p><p>Empirically, the critique produced this way is qualitatively better than self-critique in the same context. The drafter then revises against the critique, often firing additional searches to fill gaps the critic identified. Two to three cycles usually gets the draft to publication quality.</p><h3>2. Hardcoded document structure</h3><p>NIH Specific Aims has a canonical form. Without explicit structure in the system prompt, language models write good essays instead of good aims pages. They drift toward what they&#8217;ve seen most: literature reviews, scientific manuscripts, grant pitches. The output is plausible but wrong-shaped.</p><p>So the system prompt enumerates the section headers in order with rough word-count budgets and required content for each: Problem &#8594; Critical Barrier &#8594; Solution &#8594; Preliminary Data &#8594; Hypothesis &#8594; 2&#8211;3 Aims with measurable endpoints &#8594; Expected Impact &#8594; Citations. The result is output that reliably looks like an aims page rather than an essay about the project.</p><h3>3. Feasibility constraints as hard rules</h3><p>Out of the box, language models default to ambitious scope. Without explicit constraints, the agent confidently scopes a randomized clinical trial as a Phase I aim. That&#8217;s not malicious &#8212; it&#8217;s that the model has read a lot of grants and ambition is a pattern it learned.</p><p>So the system prompt has explicit hard rules: <em>&#8220;Phase I aims MUST be feasible in 6&#8211;12 months on &#8804;$500K. No clinical enrollment, no GLP large-animal studies, no custom-engineered software beyond a validated prototype.&#8221;</em> This single constraint prevents most of the &#8220;infeasible aim&#8221; failures that would otherwise need the critic to catch.</p><h3>4. <code>[FILL: source]</code> markers for unverified claims</h3><p>Hallucinated citations are the canonical scientific-writing failure mode. When the agent has a numerical claim it can&#8217;t ground in a real PubMed retrieval, the system prompt instructs it to insert a <code>[FILL: source]</code> marker rather than invent a citation. This converts a hidden hallucination into a visible one.</p><p>The downstream effect is that human verification becomes a checklist &#8212; find every marker, source it &#8212; instead of a hunt for which of the citations are real. It&#8217;s a quiet pattern but it&#8217;s what makes the output safe to use.</p><div><hr></div><h2>The verification protocol</h2><p>The agent produces a draft. The PI produces the submission. That separation is enforced by an explicit protocol the README documents:</p><p>Open every cited PubMed ID. Confirm the paper exists, that the cited claim is supported, and that the journal, authors, and year match. The agent grounds via live retrieval but cannot verify that the cited text actually supports the specific claim attributed to it.</p><p>Resolve every <code>[FILL: source]</code> marker with a primary source. Do not paste the markers into a submission.</p><p>Confirm aims are achievable in 6&#8211;12 months on &#8804;$500K with realistic timelines for materials, fabrication, testing, and analysis.</p><p>Have a biostatistician review any sample sizes, power calculations, and statistical claims.</p><p>Confirm the framing of the device is consistent with the regulatory pathway and any prior FDA correspondence.</p><p>Confirm the framing matches the priorities and language of the target NIH institute and program announcement.</p><p>Author the submission. Per NIH&#8217;s &#8220;substantially developed by AI&#8221; guidance, the PI must revise and add original content. The agent produces a draft. The submission is the PI&#8217;s work.</p><p>The agent is fast. The verification is the bottleneck. That&#8217;s the correct ordering.</p><div><hr></div><h2>How I built this</h2><p>People sometimes ask how I built this without a software background. The honest answer is that I didn&#8217;t write most of the code by hand. I worked with Claude as a thought partner &#8212; specified what I wanted, evaluated what came back, iterated on the prompts and the architecture until the output matched the standard I knew was right. That workflow only converges if the person in the loop has the domain expertise to recognize good output. The medical training is what made the iteration end up somewhere useful.</p><p>Five years ago, a physician with my background couldn&#8217;t have built this in three weeks of evenings without a co-founder. Today the bottleneck has moved. It isn&#8217;t writing code. It&#8217;s having the judgment to know what good output looks like, and the discipline to keep the work safe under medical, regulatory, and IP scrutiny while doing it openly. The architecture isn&#8217;t where the value sits &#8212; the patterns are well-known and any engineer could rebuild them. The value sits in the IP firewall, the FDA-compliant language, the verification protocol, and the credibility of a physician maintaining it.</p><p>That&#8217;s the meta-thesis under HippocrAI. The era where a physician needed an engineering co-founder to build their own tools is over. What replaces it is physicians using AI to build openly, under the discipline the profession demands. The agents are free. The discipline is the moat.</p><div><hr></div><h2>About HippocrAI</h2><p>HippocrAI is the open-source layer of AI tooling for medical device development. It&#8217;s organized around four pillars:</p><p><strong>Open by default.</strong> The agents are free, Apache-licensed, and built so anyone &#8212; physician-founder, advisor, or curious engineer &#8212; can read the code, fork it, or rebuild it for an adjacent domain.</p><p><strong>Physician-led.</strong> Every agent is designed and maintained under physician oversight. The discipline that medicine demands &#8212; patient-safety language, regulatory awareness, IP firewall, verification expectations &#8212; is built into the architecture rather than tacked on.</p><p><strong>Medtech-specific.</strong> General-purpose AI tools fail at medtech work because they don&#8217;t know what good looks like in this domain. HippocrAI&#8217;s tools are tuned for the unglamorous middle of medtech development: grant writing, regulatory drafting, literature review, IP support, founder operations.</p><p><strong>Built under the oath.</strong> <em>First, do no harm</em> is the operating principle, not a brand tagline. The Pre-Release Review Protocol gates every public release. Tools that could conceivably leak provisional-patent content, frame the agent as a medical device, or enable misuse for clinical decision-making are not released.</p><p>The thesis is that the next wave of useful AI tools in medicine will not come from AI labs that don&#8217;t understand medicine, or from medical institutions that don&#8217;t move fast. They will come from physicians who have learned to use AI as a force multiplier and who hold themselves to the discipline the profession demands. HippocrAI is what that work looks like in public.</p><div><hr></div><h2>Try it, fork it, or read more</h2><p>The SBIR Aims Generator is at <code>github.com/hippocrai/sbir-aims-agent</code>. Clone it, try a run on the synthetic example brief, fork it for adjacent grant-writing problems. The README walks through the architecture and the verification protocol.</p><p>If you build agents for adjacent domains using these patterns &#8212; FDA Q-Sub drafting, EU MDR Clinical Evaluation Reports, IRB applications, scientific manuscript drafts &#8212; I&#8217;d be interested to hear what breaks and what generalizes. Open an issue, send a PR, or reply to a HippocrAI essay.</p><p>Subscribe to <strong>HippocrAI</strong> for the long-form essays and new agent releases. The next post in this series walks through adversarial self-critique as a general pattern for technical writing &#8212; a generalized version of the critique loop in this agent, with patterns drawn from medical, legal, and regulatory writing more broadly.</p><p>&#8212; Joseph L. Hayhurst, MD</p>]]></content:encoded></item><item><title><![CDATA[Welcome to HippocrAI: The physicians oath, in code.]]></title><description><![CDATA[A physician-founder, an open-source library of AI agents for medtech, and the discipline that keeps them safe.]]></description><link>https://hippocr.ai/p/welcome-to-hippocrai-the-physicians</link><guid isPermaLink="false">https://hippocr.ai/p/welcome-to-hippocrai-the-physicians</guid><dc:creator><![CDATA[Joseph L. Hayhurst, MD]]></dc:creator><pubDate>Wed, 06 May 2026 20:18:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/cdd67992-da87-410e-b4e2-2d322149b7ef_884x640.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>What HippocrAI Is</h1><div><hr></div><p>Last month, I built an AI agent to draft my own NIH SBIR Specific Aims page.</p><p>Three tools &#8212; a PubMed search, an NIH RePORTER search, and a self-critique loop &#8212; are wired to Claude via a system prompt that hard-codes the canonical NIH aims structure. I gave it a project briefing and let it run. A few minutes later, the draft needed only verification before it was ready for use. The code is now public on GitHub. The companion essay explaining how I built it goes up next.</p><p>This is the publication where work like that gets shared, with the code and the reasoning intact.</p><p>It&#8217;s also where I write about the rest of medtech founding from a cold start &#8212; accelerators, engineering partnerships, regulatory pathways, IP, the unglamorous infrastructure that consumes the actual hours of building a medical device. The agents I publish are mostly tools for that work.</p><p>The premise is simple: the writing-heavy, format-rigid work that consumes a disproportionate fraction of medtech founders&#8217; time is exactly the work that AI agents are good at &#8212; <em>if</em> they&#8217;re built carefully, scoped narrowly, and grounded in real source material. Those last three conditions are where most public AI tools fail. The discipline of meeting them is what HippocrAI is built around.</p><p>That&#8217;s the short version. A longer essay on what that means, who I am, and why this is open source rather than a startup follows.</p><div><hr></div><h2>Who I am</h2><p>I&#8217;m Joseph Hayhurst &#8212; MD with a concentration in economics, with prior training in general surgery, currently focused on medical device development through Hayhurst Medical Technologies, LLC. Engaged with multiple investors in the regional medtech ecosystem. Provisional patent filed on the device with plans for an eventual non-provisional.</p><p>What that adds up to in practice: I&#8217;m a one-physician operation building a regulated medical device, with a calendar that has to absorb everything from CAD review to grant drafting to investor updates. The agents I publish here exist because I needed them &#8212; first for myself, then because it became clear the same tools would be useful to anyone else in this position.</p><p>Most physician-founders are in the same situation. Most early-stage medtech companies are. The infrastructure for getting from &#8220;I have a device&#8221; to &#8220;I have funded development&#8221; is mostly writing infrastructure: SBIR aims pages, FDA pre-submission documents, literature reviews, IP filings, regulatory pathway analyses, investor updates. None of it is glamorous. All of it is rate-limiting. AI agents &#8212; properly built &#8212; can do most of it in hours instead of weeks.</p><p>That&#8217;s what HippocrAI is for.</p><div><hr></div><h2>The thesis</h2><p>The most useful AI tools in medicine are not going to come from AI labs that don&#8217;t understand medicine, or from medical institutions that don&#8217;t move fast. They are going to come from physicians who have learned to use AI as a force multiplier and who hold themselves to the discipline the profession demands.</p><p>Five years ago, a physician without engineering training couldn&#8217;t build their own software tools at any meaningful level. Today, with frontier language models capable of producing most of the boilerplate when given a clear specification, the bottleneck has moved. It is no longer &#8220;can the physician write code.&#8221; It is &#8220;does the physician have the discipline to specify well, calibrate framing, enforce upstream guardrails, and verify output against reality.&#8221; That kind of discipline is what medical training produces. Most physicians who&#8217;d be skeptical of their ability to build tools have, embedded in their training, exactly the prompting discipline that produces good output from AI.</p><p>HippocrAI is what that work looks like in public. The architectures aren&#8217;t novel research &#8212; the patterns are well-known and any competent engineer could rebuild them in an afternoon. What&#8217;s rare is the combination of medical domain expertise, regulatory discipline, and willingness to build openly. That combination is mostly held by physicians who don&#8217;t yet realize they could build their own tools, and by engineers who lack the domain context to know what to build.</p><p>The agents are free. The discipline is the moat.</p><div><hr></div><h2>What HippocrAI stands for</h2><p>Four pillars that define what gets built and what gets released.</p><p><strong>Open by default.</strong> Every agent ships with code, prompts, and the reasoning behind both. Apache 2.0 license. No paywalled &#8220;premium&#8221; tier &#8212; that&#8217;s a different business model and not this one. Open-source isn&#8217;t a marketing tactic; it&#8217;s a structural commitment that forces the work to be honest under public review.</p><p><strong>Physician-led.</strong> The work is grounded in clinical context, not pattern-matched from afar. Every agent passes physician review before public release. As contributors join, the goal is that contributor agents will get reviewed by physicians on an editorial board. This is the credentialing infrastructure that AI-only or non-physician medtech tooling can&#8217;t easily replicate.</p><p><strong>Medtech-specific.</strong> Not general medical AI. Not a general developer AI. The vertical is medical device development &#8212; devices that go through FDA pathways, NIH funding, and the regulatory and operational stack that comes with them. Specificity is what makes the agents actually useful.</p><p><strong>Built under the oath.</strong> <em>First, do no harm.</em> Every public agent is unambiguously <em>not</em> a medical device, <em>not</em> clinical decision support, <em>not</em> a substitute for a clinician. Every release goes through a written pre-release review protocol with hard guardrails &#8212; provisional-patent firewall, FDA-compliant framing, no real client content, generic prompts only, explicit human-in-the-loop verification. The discipline is what protects the integrity of the work.</p><div><hr></div><h2>What HippocrAI is not</h2><p>This part matters. Public-facing AI in medicine has a real problem with overclaiming, and I don&#8217;t intend on adding to it.</p><p>The agents published here:</p><ul><li><p>Do not analyze patient data</p></li><li><p>Do not produce diagnoses or differential diagnoses</p></li><li><p>Do not recommend treatments</p></li><li><p>Do not calculate doses, clinical parameters, or risk scores</p></li><li><p>Do not triage patients or assess clinical risk</p></li><li><p>Do not produce any output that could reasonably be characterized as clinical decision support</p></li></ul><p>The acceptable surface for HippocrAI tooling is administrative, regulatory, scientific-writing, and operational work. SBIR aims pages. FDA pre-submission documents. Literature reviews. Predicate-device searches. IP and patent drafting support. Investor updates. The kinds of writing tasks that take medtech founders weeks and that AI agents &#8212; properly built &#8212; can do in hours.</p><p>Nothing on this site is medical advice. Nothing on this site is legal advice. Nothing on this site is a substitute for an attorney, a regulatory consultant, a biostatistician, or a physician.</p><div><hr></div><h2>What to expect</h2><p>Three categories of post, with each new agent shipped alongside its companion essay.</p><p><strong>Agent build essays.</strong> Walk-throughs of an AI agent I&#8217;ve built for medtech work &#8212; the architecture, the prompting patterns that turned out to matter, the design tradeoffs, what surprised me. Code on GitHub, linked from each post. The first one &#8212; <em>I Built an AI Agent to Draft My Own NIH Grant</em> &#8212; drops next.</p><p><strong>Pattern essays.</strong> When I notice something general about agent design, prompting, or AI in regulated industries, I write it up. The next one in this series, <em>Discipline at the Input</em>, walks through seven prompting patterns that any domain expert can use to build their own tools &#8212; with a focus on why medical training is unusually good preparation for this kind of work.</p><p><strong>Medtech founder field notes.</strong> What it looks like to build a medical device as a solo physician-founder from a cold start &#8212; accelerators, engineering partnerships, regulatory pathways, IP. Specific, honest, useful for the next person doing this.</p><p>Posts arrive roughly every one to two weeks during launch, settling into a more sustainable cadence after the first three. Subscribe and they come straight to your inbox.</p><div><hr></div><h2>Why I&#8217;m publishing this in public</h2><p>A few reasons.</p><p>The work is more rigorous when it&#8217;s reviewable. Closed AI tooling in regulated industries is exactly where you don&#8217;t want bad incentives. The cleanest way to keep my own incentives honest is to make every prompt and every architectural decision visible. The pre-release review protocol I run before any public release is a stricter discipline than I&#8217;d impose on myself privately.</p><p>The next physician-founder shouldn&#8217;t have to re-derive these tools from scratch. There are several thousand physician-founders building medtech companies right now, and the writing infrastructure they need is mostly the same. Releasing the agents openly is the highest-leverage thing I can do for that group, and it&#8217;s the work I&#8217;d want them to do for me.</p><p>Open-source is also the only honest answer to the question of who AI tools in medicine should belong to. The closed proprietary version of this project would be more lucrative in a narrow sense and would compromise nearly everything I think AI in medicine should be. So this is the version.</p><div><hr></div><h2>What success looks like</h2><p>Not subscriber count. Specifically, it looks like physician-founders shipping better SBIR submissions, faster regulatory drafts, and cleaner IP work because of tooling that exists here. It looks like the regulatory consultant who tells me they used the literature-review agent for a predicate-device search and saved a week. It looks like the engineer at a medtech startup who finds the GitHub org and forks an agent into something specific to their device. It looks like another physician deciding that they, too, can build the tools they need.</p><p>If a few hundred medtech founders save a few hundred hours each because of work published here, that&#8217;s enough.</p><div><hr></div><h2>How to follow along</h2><p>If you&#8217;re a physician-founder, a medtech engineer or operator, an AI engineer interested in regulated-industry work, or someone curious about what medtech founding actually looks like from the inside &#8212; subscribe. Posts come straight to your inbox.</p><p>The first technical essay drops next. The agent&#8217;s GitHub repository is already public.</p><p>If you want to reach me, reply to any email &#8212; those land in my inbox directly. The agents are free. The discipline is the moat. Welcome.</p><p>&#8212; Joseph</p><p><em>Joseph L. Hayhurst, MD</em> <em>Physician-founder &#183; HippocrAI</em> <em><a href="https://hippocr.ai">hippocr.ai</a> &#183; <a href="https://github.com/hippocrai">github.com/hippocrai</a> ~ Joseph.l.hayhurst@gmail.com</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hippocr.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading HippocrAI! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>