<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: jack</title>
    <description>The latest articles on DEV Community by jack (@__af04eb1094b45a2b3aa8).</description>
    <link>https://dev.to/__af04eb1094b45a2b3aa8</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4215620%2Fe359e509-cb88-4acf-bcfd-383e86d0d57a.png</url>
      <title>DEV Community: jack</title>
      <link>https://dev.to/__af04eb1094b45a2b3aa8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/__af04eb1094b45a2b3aa8"/>
    <language>en</language>
    <item>
      <title>What Kind of Medical AI Can Ordinary Hospitals Actually Use?</title>
      <dc:creator>jack</dc:creator>
      <pubDate>Thu, 29 Oct 2026 15:48:40 +0000</pubDate>
      <link>https://dev.to/__af04eb1094b45a2b3aa8/what-kind-of-medical-ai-can-ordinary-hospitals-actually-use-22d0</link>
      <guid>https://dev.to/__af04eb1094b45a2b3aa8/what-kind-of-medical-ai-can-ordinary-hospitals-actually-use-22d0</guid>
      <description>&lt;p&gt;&lt;strong&gt;What kind of medical AI can an ordinary hospital actually use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I mean a hospital that needs useful tools without assuming a large, fully paired research dataset, a specialist AI engineering team, or access to every advanced assay.&lt;/p&gt;

&lt;p&gt;My clinical background shapes the question I bring to AI research:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When samples are scarce, modalities are incomplete, and platforms differ, should we pursue more complex models—or organise evidence more explicitly and report the boundaries of what the model can support?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I don't think these are mutually exclusive choices. More complex models can be useful. But each added component should earn its place through reproducible benefit under the conditions in which it will be used.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I mean by constrained AI
&lt;/h2&gt;

&lt;p&gt;Here, “constrained” refers to the conditions around the model: limited samples, incomplete modality pairing, compact representations, platform differences, and finite computing and maintenance resources. It does not refer to restrictions on what a chatbot is allowed to say.&lt;/p&gt;

&lt;p&gt;These constraints can occur together. A model may have little labelled data, only some of the expected inputs, and measurements produced by a platform different from the one used during development.&lt;/p&gt;

&lt;p&gt;That changes the engineering question. We need to ask what evidence remains usable, what changes when an input disappears, and when a model's earlier validation no longer applies.&lt;/p&gt;

&lt;h2&gt;
  
  
  A research example from our preprint
&lt;/h2&gt;

&lt;p&gt;Our preprint, &lt;a href="https://doi.org/10.21203/rs.3.rs-10194336/v1" rel="noopener noreferrer"&gt;&lt;em&gt;Restricted Multimodal Oncology AI: Role-Aware Evidence Organisation and Cross-Domain Transfer Boundaries&lt;/em&gt;&lt;/a&gt;, explores this problem in retrospective oncology cohorts through &lt;strong&gt;Role-Aware Evidence Engineering (RAEE)&lt;/strong&gt; and its &lt;strong&gt;BLF-Net-MUL&lt;/strong&gt; implementation.&lt;/p&gt;

&lt;p&gt;The design starts by assigning evidence roles before evaluating fusion:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Intended evidence role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Compact transcriptomic features&lt;/td&gt;
&lt;td&gt;Molecular evidence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RNA-derived pathway features&lt;/td&gt;
&lt;td&gt;Functional molecular context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low-dimensional pathology-derived features&lt;/td&gt;
&lt;td&gt;Phenotypic context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clinical variables&lt;/td&gt;
&lt;td&gt;Patient-level context&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The pathway features are derived from RNA; they are not an independent omic measurement. The pathology inputs are compact features, not whole-slide foundation-model embeddings.&lt;/p&gt;

&lt;p&gt;The question is whether combining these sources helps under a specified condition—not whether more modalities must always be better. Component analyses and external transfer tests are useful precisely because they can reveal where a mechanism stops helping.&lt;/p&gt;

&lt;p&gt;This is a research example, not a demonstration that our system is ready for routine hospital use. The linked manuscript is a preprint and has not been peer reviewed. Retrospective classification and cross-repository evaluation do not establish prospective clinical benefit or reliable deployment at a new hospital.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would want before ordinary hospitals rely on a system
&lt;/h2&gt;

&lt;p&gt;These are the requirements I would put on a development and evaluation plan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Obtainable inputs.&lt;/strong&gt; State exactly which measurements are required and whether the intended hospital can obtain them. Test missing-input scenarios explicitly; supporting incomplete data in a research protocol is not a guarantee of safe operation with any missing modality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affordable operation.&lt;/strong&gt; Measure inference, storage, integration, maintenance, and staff time. Compact inputs alone do not establish a low total cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence from the destination setting.&lt;/strong&gt; Evaluate relevant equipment, laboratory platforms, patient groups, and workflows. A source-cohort score cannot stand in for local validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A defined response to uncertainty.&lt;/strong&gt; Specify when the system should flag insufficient evidence, request review, or withhold an output. These behaviours need validation too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traceable outputs.&lt;/strong&gt; Let a reviewer see which inputs were present, which model version produced the result, and which limitations apply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A place in clinical work.&lt;/strong&gt; Define who reviews the output, what action it is intended to inform, and how errors, drift, and overrides will be monitored. Any necessary institutional and regulatory review belongs in that deployment process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are proposed requirements for usable medical AI. They are not a list of capabilities already established for BLF-Net-MUL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Complexity should answer a concrete need
&lt;/h2&gt;

&lt;p&gt;I would like to see model comparisons answer a practical question: does this additional complexity improve a relevant outcome enough to justify its data, compute, and maintenance requirements?&lt;/p&gt;

&lt;p&gt;A simpler model still needs rigorous validation. A larger model may be the better choice when the evidence supports it. Neither model size nor an interpretable-looking report establishes safety on its own.&lt;/p&gt;

&lt;p&gt;In our research, the intended output stops at bounded evidence preparation for expert review. It is not an autonomous diagnosis or treatment recommendation. Explicit boundaries make a claim easier to examine; they do not eliminate clinical risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  What would you require?
&lt;/h2&gt;

&lt;p&gt;If you build medical AI, maintain hospital software, or work with clinical teams, I would value your perspective:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What would make an AI system usable in a hospital without a dedicated AI infrastructure team?&lt;/li&gt;
&lt;li&gt;Which failure matters most in your setting: a missing input, platform shift, poor calibration, an opaque output, or maintenance burden?&lt;/li&gt;
&lt;li&gt;What evidence would convince you that added model complexity is worth it?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What should a medical AI system have to demonstrate before an ordinary hospital can reasonably rely on it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Please keep examples free of identifiable patient information.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Preprint:&lt;/strong&gt; Hu et al. &lt;em&gt;Restricted Multimodal Oncology AI: Role-Aware Evidence Organisation and Cross-Domain Transfer Boundaries&lt;/em&gt;. &lt;a href="https://doi.org/10.21203/rs.3.rs-10194336/v1" rel="noopener noreferrer"&gt;doi:10.21203/rs.3.rs-10194336/v1&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I am a co-author of the cited preprint. This post was prepared with AI writing assistance from our manuscript and the discussion above. It presents research questions and design priorities, not clinical advice or a claim of deployment readiness.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>discuss</category>
      <category>healthcare</category>
    </item>
    <item>
      <title>A Green Test Doesn't Mean an AI Coding Agent Finished the Job</title>
      <dc:creator>jack</dc:creator>
      <pubDate>Thu, 29 Oct 2026 15:42:28 +0000</pubDate>
      <link>https://dev.to/__af04eb1094b45a2b3aa8/a-green-test-doesnt-mean-an-ai-coding-agent-finished-the-job-1g1m</link>
      <guid>https://dev.to/__af04eb1094b45a2b3aa8/a-green-test-doesnt-mean-an-ai-coding-agent-finished-the-job-1g1m</guid>
      <description>&lt;p&gt;A coding agent says, “Done.” The test suite is green. The diff looks plausible.&lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;which requirement did the tests actually verify?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a question I keep returning to while working on AI-assisted coding workflows. The risk is not only that an AI assistant generates incorrect code. It is that we can mistakenly turn a narrow observation—&lt;em&gt;one command passed&lt;/em&gt;—into a much broader claim—&lt;em&gt;the requested behavior is correct&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A green test can be completely irrelevant
&lt;/h2&gt;

&lt;p&gt;Imagine the requirement is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Reject invalid email addresses during signup.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The application currently contains:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;signup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the test suite contains:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;test_smoke&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Running &lt;code&gt;pytest -q&lt;/code&gt; will report success. It should: that assertion is true. But the test has not exercised &lt;code&gt;signup&lt;/code&gt;, let alone invalid input.&lt;/p&gt;

&lt;p&gt;Add a test that actually checks the requirement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;test_signup_rejects_invalid_email&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;assert&lt;/span&gt; &lt;span class="nf"&gt;signup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;not-an-email&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That test fails against the current implementation. Nothing mysterious happened: the first green result was real, but the conclusion drawn from it was too strong.&lt;/p&gt;

&lt;p&gt;This matters when a coding agent summarizes a run as “all tests pass” and we silently interpret that as “your requested feature works.” Those are different statements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five questions worth keeping separate
&lt;/h2&gt;

&lt;p&gt;When reviewing AI-generated changes, I find it useful to separate at least five evidence roles:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;What it does &lt;em&gt;not&lt;/em&gt; prove&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Intent&lt;/td&gt;
&lt;td&gt;What behavior did the user request?&lt;/td&gt;
&lt;td&gt;That it was implemented&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Change&lt;/td&gt;
&lt;td&gt;Which files and revision changed?&lt;/td&gt;
&lt;td&gt;That the change was correct&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification&lt;/td&gt;
&lt;td&gt;Which checks actually ran?&lt;/td&gt;
&lt;td&gt;That they covered every requirement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Environment&lt;/td&gt;
&lt;td&gt;Where did those checks run?&lt;/td&gt;
&lt;td&gt;That another environment behaves identically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boundary&lt;/td&gt;
&lt;td&gt;What remains untested, stale, or unknown?&lt;/td&gt;
&lt;td&gt;That nothing else can fail&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A coding-agent transcript can provide helpful context, but its statement that a task was completed is still a claim. A test result is an observation. A signed CI statement may authenticate provenance. None of these can replace the others.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making an evidence gap visible
&lt;/h2&gt;

&lt;p&gt;I've been experimenting with this idea in an open-source Python CLI called &lt;strong&gt;RAEE-Lite&lt;/strong&gt;. Its narrow goal is to keep the requirement and its supporting evidence separate rather than automatically turning a passing test into a verified feature.&lt;/p&gt;

&lt;p&gt;The current public source is a &lt;strong&gt;v0.10.0rc2 release candidate&lt;/strong&gt;, available for review—not a stable or independently security-certified release. If you want to try it, inspect the &lt;a href="https://github.com/jinxinche/RAEE/tree/release/raee-lite-v0.10.0rc2" rel="noopener noreferrer"&gt;source candidate&lt;/a&gt; and install it in a disposable Python environment.&lt;/p&gt;

&lt;p&gt;Then, in a new temporary project directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;raee-lite init
raee-lite add &lt;span class="s2"&gt;"Signup rejects invalid email addresses"&lt;/span&gt;
raee-lite expect &lt;span class="nt"&gt;--for&lt;/span&gt; R1 &lt;span class="nt"&gt;--kind&lt;/span&gt; unit
raee-lite status
raee-lite check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The intended result is that requirement &lt;code&gt;R1&lt;/code&gt; remains &lt;code&gt;UNTESTED&lt;/code&gt;, with an evidence-gap report. &lt;code&gt;raee-lite status&lt;/code&gt; intentionally exits with status &lt;code&gt;1&lt;/code&gt; while the requirement lacks evidence; the default &lt;code&gt;check&lt;/code&gt; operation doesn't execute your project's tests.&lt;/p&gt;

&lt;p&gt;This is deliberately &lt;em&gt;not&lt;/em&gt; an automatic proof of code correctness. RAEE-Lite does not semantically certify that a test covers an entire requirement. It makes the absence of documented evidence visible and leaves the judgment open to human review.&lt;/p&gt;

&lt;h2&gt;
  
  
  The second problem: stale evidence
&lt;/h2&gt;

&lt;p&gt;Even a relevant test result should be tied to a &lt;strong&gt;particular source revision&lt;/strong&gt;. If a file changes after a test run, the earlier result does not automatically apply to the new code.&lt;/p&gt;

&lt;p&gt;The same distinction applies to environments. A check executed locally is not identical to a check executed on a protected CI branch, and a signed provenance statement authenticates who made a claim—not whether its test design was sufficient.&lt;/p&gt;

&lt;p&gt;This is why I prefer reports that say &lt;strong&gt;“untested”&lt;/strong&gt; or &lt;strong&gt;“stale”&lt;/strong&gt; rather than projecting certainty they haven't earned.&lt;/p&gt;

&lt;h2&gt;
  
  
  What remains unverified
&lt;/h2&gt;

&lt;p&gt;RAEE-Lite is still in early access. Although it has local test results and synthetic security regression cases, the release candidate has &lt;strong&gt;not yet completed the protected-main Linux/Windows/macOS acceptance matrix, independent GitHub Artifact Attestation verification, or third-party security review&lt;/strong&gt;. It's also not a substitute for comprehensive test coverage, a security audit, or rigorous code review.&lt;/p&gt;

&lt;p&gt;I'd value developer feedback on the &lt;em&gt;evidence model&lt;/em&gt; itself: What do your AI coding tools claim after a green test? Which kinds of missing evidence would help you catch false confidence? A sanitized, minimal reproduction is more useful than a star or promotional repost.&lt;/p&gt;

&lt;p&gt;The public project, including Chinese, English, German, and Spanish documentation, is at &lt;a href="https://github.com/jinxinche/RAEE" rel="noopener noreferrer"&gt;github.com/jinxinche/RAEE&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research context:&lt;/strong&gt; The idea of keeping evidence roles distinct was motivated by a separate oncology AI preprint: Hu et al. (2026), &lt;em&gt;Restricted Multimodal Oncology AI: Role-Aware Evidence Organisation and Cross-Domain Transfer Boundaries&lt;/em&gt;, &lt;a href="https://doi.org/10.21203/rs.3.rs-10194336/v1" rel="noopener noreferrer"&gt;DOI:10.21203/rs.3.rs-10194336/v1&lt;/a&gt;. That preprint &lt;strong&gt;did not evaluate or validate this coding tool&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Writing disclosure: This article was drafted with AI writing assistance based on my project's documentation and test records. I am responsible for reviewing the technical claims before publication.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>python</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A Green Test Doesn’t Mean an AI Coding Agent</title>
      <dc:creator>jack</dc:creator>
      <pubDate>Thu, 29 Oct 2026 15:34:20 +0000</pubDate>
      <link>https://dev.to/__af04eb1094b45a2b3aa8/a-green-test-doesnt-mean-an-ai-coding-agent-2jf1</link>
      <guid>https://dev.to/__af04eb1094b45a2b3aa8/a-green-test-doesnt-mean-an-ai-coding-agent-2jf1</guid>
      <description>&lt;p&gt;A Green Test Doesn’t Mean an AI Coding Agent Finished the Job” description: “A reproducible example of why passing tests, verified requirements, and coding-agent claims are different kinds of evidence.” published: false tags: ai, testing, python, productivity&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
