<?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: DaC</title>
    <description>The latest articles on DEV Community by DaC (@danielecangi).</description>
    <link>https://dev.to/danielecangi</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%2F4106140%2Fcbb0e2a0-a487-44b6-9687-7aafce9cb025.jpg</url>
      <title>DEV Community: DaC</title>
      <link>https://dev.to/danielecangi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danielecangi"/>
    <language>en</language>
    <item>
      <title>I Built a Virtual Machine Inside the Xbox Sandbox. Then I Let AI Agents Build on Top of It.</title>
      <dc:creator>DaC</dc:creator>
      <pubDate>Tue, 22 Sep 2026 22:16:31 +0000</pubDate>
      <link>https://dev.to/danielecangi/i-built-a-virtual-machine-inside-the-xbox-sandbox-then-i-let-ai-agents-build-on-top-of-it-ef0</link>
      <guid>https://dev.to/danielecangi/i-built-a-virtual-machine-inside-the-xbox-sandbox-then-i-let-ai-agents-build-on-top-of-it-ef0</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/Daniele-Cangi/XCP-Research" rel="noopener noreferrer"&gt;&lt;/a&gt;XCP turns one-shot code generation into a continuous software lifecycle: create, execute on Xbox, observe, correct, evolve, repeat.&lt;/p&gt;

&lt;p&gt;AI agents are getting very good at producing software.&lt;/p&gt;

&lt;p&gt;What interested me was what happens after the code exists.&lt;/p&gt;

&lt;p&gt;A generated project can compile and still be wrong. A port can launch while losing important behaviour. An agent can make a convincing change without knowing how that change actually behaves on the machine that has to run it.&lt;/p&gt;

&lt;p&gt;I wanted the software project to continue beyond generation.&lt;/p&gt;

&lt;p&gt;The same project should be able to change, run on a real Xbox Series X, produce evidence about what happened there, return that evidence to the development side, receive another correction, become a new version, and run again.&lt;/p&gt;

&lt;p&gt;That eventually became XCP.&lt;/p&gt;

&lt;p&gt;But it started somewhere much smaller: with a virtual machine inside the Xbox application sandbox.&lt;/p&gt;

&lt;p&gt;The project should not disappear after generation&lt;/p&gt;

&lt;p&gt;A lot of AI-assisted development still has an implicit shape:&lt;/p&gt;

&lt;p&gt;prompt&lt;br&gt;
  ↓&lt;br&gt;
agent&lt;br&gt;
  ↓&lt;br&gt;
source files&lt;br&gt;
  ↓&lt;br&gt;
build&lt;br&gt;
  ↓&lt;br&gt;
done&lt;/p&gt;

&lt;p&gt;I wanted a loop instead.&lt;/p&gt;

&lt;p&gt;AI agent / developer&lt;br&gt;
        ↓&lt;br&gt;
     XCP project&lt;br&gt;
        ↓&lt;br&gt;
 create / modify / adapt&lt;br&gt;
        ↓&lt;br&gt;
    target candidate&lt;br&gt;
        ↓&lt;br&gt;
     XBOX SERIES&lt;br&gt;
        ↓&lt;br&gt;
 execute + observe&lt;br&gt;
        ↓&lt;br&gt;
 structured evidence&lt;br&gt;
        ↓&lt;br&gt;
 correct / evolve&lt;br&gt;
        ↓&lt;br&gt;
     next version&lt;br&gt;
        ↺&lt;/p&gt;

&lt;p&gt;The agent does not run unrestricted on the console.&lt;/p&gt;

&lt;p&gt;It works from the PC side, where the project can be inspected and modified. Xbox executes the prepared candidate. XCP records what happened and brings that information back into the project lifecycle.&lt;/p&gt;

&lt;p&gt;The next iteration can therefore start from real target behaviour, not only from what the agent expected the software to do.&lt;/p&gt;

&lt;p&gt;That distinction became the core of XCP for me.&lt;/p&gt;

&lt;p&gt;XCP turns an AI agent from a one-shot code generator into a participant in an ongoing software lifecycle.&lt;/p&gt;

&lt;p&gt;The project survives the generation.&lt;/p&gt;

&lt;p&gt;Its versions have identities. Executions belong to specific versions. Evidence belongs to specific executions.&lt;/p&gt;

&lt;p&gt;That makes continued work possible without treating every new generation as an unrelated pile of files.&lt;/p&gt;

&lt;p&gt;Create, adapt, and keep going&lt;/p&gt;

&lt;p&gt;XCP currently enters that lifecycle in two main ways.&lt;/p&gt;

&lt;p&gt;A project can start from an idea.&lt;/p&gt;

&lt;p&gt;In the public creation programme, an AI-driven, human-directed workflow completed 28/28 lifecycle operations across an interactive project and a utility.&lt;/p&gt;

&lt;p&gt;The interesting part was not that an AI produced code. We already know models can do that.&lt;/p&gt;

&lt;p&gt;The interesting part was that the work continued through the wider lifecycle: project creation, preparation, execution and subsequent decisions.&lt;/p&gt;

&lt;p&gt;The second path starts from existing authorized software.&lt;/p&gt;

&lt;p&gt;That is substantially harder because a real project is more than source files. It has state, input behaviour, timing, scenes, persistence, assets, engine conventions and interactions between systems.&lt;/p&gt;

&lt;p&gt;The first public real-source case uses Minilens, an authorized Godot 2 project.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj9554chzwzrbr1s331yc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj9554chzwzrbr1s331yc.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That case completed 14/14 lifecycle operations and 5/5 declared semantic acceptance checks on Xbox.&lt;/p&gt;

&lt;p&gt;I am deliberately not describing that as “Godot compatibility”.&lt;/p&gt;

&lt;p&gt;It is a narrower and more useful result: real source software crossed the full path from source observation to an Xbox execution and a measured decision.&lt;/p&gt;

&lt;p&gt;And then the project can continue.&lt;/p&gt;

&lt;p&gt;One of the public lifecycle sequences is:&lt;/p&gt;

&lt;p&gt;1.0.0 → 1.1.0 → 1.0.0&lt;/p&gt;

&lt;p&gt;A later version was produced, exercised, and the lifecycle retained the ability to return to the earlier known version.&lt;/p&gt;

&lt;p&gt;That is a small example, but it captures an important idea: evolution is part of the system, not an afterthought.&lt;/p&gt;

&lt;p&gt;The software is expected to be changed again.&lt;/p&gt;

&lt;p&gt;The Xbox became part of the development loop&lt;/p&gt;

&lt;p&gt;The Xbox is not only the place where the final result gets deployed.&lt;/p&gt;

&lt;p&gt;It is an execution target inside the loop.&lt;/p&gt;

&lt;p&gt;Consider a simple behavioural change.&lt;/p&gt;

&lt;p&gt;An agent modifies movement. XCP prepares the next candidate. The candidate runs on Xbox. Target observations are recorded. Those observations are compared against the behaviour the project was supposed to preserve. The result becomes evidence attached to that version.&lt;/p&gt;

&lt;p&gt;The next correction can then work from that result.&lt;/p&gt;

&lt;p&gt;This pattern can repeat.&lt;/p&gt;

&lt;p&gt;That is very different from asking a model to generate another implementation after someone manually reports that “movement feels wrong”.&lt;/p&gt;

&lt;p&gt;The target itself contributes information to the next development step.&lt;/p&gt;

&lt;p&gt;This is also why I became less interested in “AI-generated software” as a category.&lt;/p&gt;

&lt;p&gt;Generation is one operation.&lt;/p&gt;

&lt;p&gt;Maintaining an evidence-bearing relationship between an agent, a software project and a real execution target is a much larger problem.&lt;/p&gt;

&lt;p&gt;The virtual machine that made this possible&lt;/p&gt;

&lt;p&gt;The Xbox side began as a separate research problem.&lt;/p&gt;

&lt;p&gt;I wanted programmable execution on a retail Xbox Series console while staying inside the public application environment.&lt;/p&gt;

&lt;p&gt;That produced XVM, a deterministic virtual machine used by the current reference runtime.&lt;/p&gt;

&lt;p&gt;XVM v2 currently has 26 admitted opcodes, 16 registers, typed memory, bounded control flow, static execution budgets, deterministic snapshot/resume, a canonical CPU path and GPU differential execution paths.&lt;/p&gt;

&lt;p&gt;Those details deserve their own article.&lt;/p&gt;

&lt;p&gt;For XCP, the more important property is simpler:&lt;/p&gt;

&lt;p&gt;new bounded work can be submitted to the execution target without every new behaviour becoming a completely new native application.&lt;/p&gt;

&lt;p&gt;The VM gives XCP a programmable target.&lt;/p&gt;

&lt;p&gt;It also gives the target the ability to reject work that does not fit its current execution contract.&lt;/p&gt;

&lt;p&gt;That is enough to keep a useful separation between the software producer and the machine executing what it produced.&lt;/p&gt;

&lt;p&gt;XVM does not remove the Xbox sandbox.&lt;/p&gt;

&lt;p&gt;It creates a programmable layer inside it.&lt;/p&gt;

&lt;p&gt;Running the software was not enough&lt;/p&gt;

&lt;p&gt;Once the VM worked, another problem became much more important.&lt;/p&gt;

&lt;p&gt;Real software does not begin as VM instructions.&lt;/p&gt;

&lt;p&gt;It begins as behaviour.&lt;/p&gt;

&lt;p&gt;A player moves. A collision fires. A value survives a restart. An input changes some state. A scene transition happens.&lt;/p&gt;

&lt;p&gt;The implementation of those behaviours can be completely different on another runtime.&lt;/p&gt;

&lt;p&gt;This forced XCP to separate three things:&lt;/p&gt;

&lt;p&gt;source behaviour&lt;br&gt;
      ↓&lt;br&gt;
semantic representation&lt;br&gt;
      ↓&lt;br&gt;
target implementation&lt;/p&gt;

&lt;p&gt;The current reference source family is Godot, while Xbox/XVM is the first reference target.&lt;/p&gt;

&lt;p&gt;Those environments do not share the same engine, scripting model, APIs, scene implementation or runtime assumptions.&lt;/p&gt;

&lt;p&gt;So XCP cannot simply copy structure and call the result equivalent.&lt;/p&gt;

&lt;p&gt;The source side has to expose enough meaning for the target side to reason about what can actually be preserved.&lt;/p&gt;

&lt;p&gt;And then the result still has to be measured.&lt;/p&gt;

&lt;p&gt;That produces another distinction which now runs through the project:&lt;/p&gt;

&lt;p&gt;execution is not fidelity.&lt;/p&gt;

&lt;p&gt;A candidate can launch successfully and still behave incorrectly.&lt;/p&gt;

&lt;p&gt;A movement path may work while collision semantics changed. A scene may look right while persistence is broken. A playable subset can still contain behaviour that was never observed.&lt;/p&gt;

&lt;p&gt;XCP therefore keeps operability, fidelity and stronger equivalence claims separate.&lt;/p&gt;

&lt;p&gt;This is not mainly about being conservative with wording.&lt;/p&gt;

&lt;p&gt;It makes the evidence useful to the next iteration.&lt;/p&gt;

&lt;p&gt;If the system can say where behaviour diverged instead of merely returning “build succeeded”, an agent has something concrete to work on.&lt;/p&gt;

&lt;p&gt;Xbox is the first target, not the definition of XCP&lt;/p&gt;

&lt;p&gt;Today the concrete path looks like this:&lt;/p&gt;

&lt;p&gt;Godot → XCP → Xbox / XVM&lt;/p&gt;

&lt;p&gt;But that is not the architecture I want to stop at.&lt;/p&gt;

&lt;p&gt;The source side and target side are being separated deliberately.&lt;/p&gt;

&lt;p&gt;The future model is closer to:&lt;/p&gt;

&lt;p&gt;Godot ─────┐&lt;br&gt;
Unity ─────┤&lt;br&gt;
Unreal ────┤&lt;br&gt;
Custom ────┘&lt;br&gt;
           ↓&lt;br&gt;
          XCP&lt;br&gt;
           ↓&lt;br&gt;
      target contract&lt;br&gt;
       ↙         ↘&lt;br&gt;
 Xbox / XVM    other runtimes&lt;/p&gt;

&lt;p&gt;Only the first path has public research evidence today. The other arrows are directions for the architecture, not current compatibility claims.&lt;/p&gt;

&lt;p&gt;This is where XCP becomes much more interesting.&lt;/p&gt;

&lt;p&gt;The long-term value is not moving one Godot project to one Xbox. It is making source systems and execution targets independently extensible.&lt;/p&gt;

&lt;p&gt;If another developer can eventually write an adapter for a different engine without rewriting the core, that tests the semantic boundary.&lt;/p&gt;

&lt;p&gt;If someone can implement another XVM runtime from the same contract, that tests the execution boundary.&lt;/p&gt;

&lt;p&gt;If another target can consume XCP projects while preserving the evidence model, Xbox has done its job as the first forcing function rather than becoming a permanent limitation.&lt;/p&gt;

&lt;p&gt;The next test is other developers&lt;/p&gt;

&lt;p&gt;Most XCP development still lives in a large private research repository.&lt;/p&gt;

&lt;p&gt;That repository is useful as a laboratory, but it is not what I want to publish as the platform.&lt;/p&gt;

&lt;p&gt;It contains years of experiments, Xbox runtime work, product prototypes, operational tooling, evidence pipelines and branches that should not become accidental public APIs.&lt;/p&gt;

&lt;p&gt;So I am preparing a clean open-source extraction instead.&lt;/p&gt;

&lt;p&gt;The current model is roughly:&lt;/p&gt;

&lt;p&gt;spec&lt;br&gt;
runtime&lt;br&gt;
semantic&lt;br&gt;
adapters&lt;br&gt;
evidence&lt;br&gt;
conformance&lt;br&gt;
sdk&lt;br&gt;
examples&lt;/p&gt;

&lt;p&gt;Godot would begin as the reference source adapter.&lt;/p&gt;

&lt;p&gt;XVM would begin as the reference execution substrate.&lt;/p&gt;

&lt;p&gt;Xbox Series would remain the first reference target.&lt;/p&gt;

&lt;p&gt;XCP Studio is the product environment around that platform.&lt;/p&gt;

&lt;p&gt;The experiment I care about after that is not another demo produced by me.&lt;/p&gt;

&lt;p&gt;It is somebody else building the next adapter, runtime or verifier.&lt;/p&gt;

&lt;p&gt;That will expose very quickly whether the abstractions are actually general.&lt;/p&gt;

&lt;p&gt;From a VM on Xbox to a continuous software lifecycle&lt;/p&gt;

&lt;p&gt;I originally wanted to see how far programmable execution could be pushed on Xbox.&lt;/p&gt;

&lt;p&gt;That produced XVM.&lt;/p&gt;

&lt;p&gt;XVM made repeated target execution possible.&lt;/p&gt;

&lt;p&gt;Repeated execution made it possible to return structured information from the hardware.&lt;/p&gt;

&lt;p&gt;That information made a continuous agent loop possible.&lt;/p&gt;

&lt;p&gt;And that loop became XCP.&lt;/p&gt;

&lt;p&gt;AI agent&lt;br&gt;
    ↓&lt;br&gt;
software project&lt;br&gt;
    ↓&lt;br&gt;
real execution&lt;br&gt;
    ↓&lt;br&gt;
evidence&lt;br&gt;
    ↓&lt;br&gt;
next decision&lt;br&gt;
    ↺&lt;/p&gt;

&lt;p&gt;The VM is still an important part of the system.&lt;/p&gt;

&lt;p&gt;Xbox is still the first real target.&lt;/p&gt;

&lt;p&gt;But the project is no longer mainly about either one.&lt;/p&gt;

&lt;p&gt;It is about keeping software alive after the AI finishes writing the first version.&lt;/p&gt;

&lt;p&gt;AI builds. Xbox executes. XCP verifies.&lt;/p&gt;

&lt;p&gt;Then the project continues.&lt;/p&gt;

&lt;p&gt;Current public work&lt;/p&gt;

&lt;p&gt;XCP Studio: xcpstudio.com&lt;/p&gt;

&lt;p&gt;XCP Research: github.com/Daniele-Cangi/XCP-Research&lt;/p&gt;

&lt;p&gt;XCP-Research currently contains the architecture description, the public XVM model, selected bounded Xbox evidence and offline verification tooling. The implementation remains private while the active research branches are consolidated and the open-source platform boundary is extracted cleanly.&lt;/p&gt;

&lt;p&gt;Writing note: I used AI as an editorial assistant to help restructure and edit this article. The project, experiments, technical claims and final publication decisions are mine.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>I Wanted a RAG System That Could Show Its Work, So I Built Alchimista</title>
      <dc:creator>DaC</dc:creator>
      <pubDate>Wed, 02 Sep 2026 14:33:16 +0000</pubDate>
      <link>https://dev.to/danielecangi/i-wanted-a-rag-system-that-could-show-its-work-so-i-built-alchimista-2fil</link>
      <guid>https://dev.to/danielecangi/i-wanted-a-rag-system-that-could-show-its-work-so-i-built-alchimista-2fil</guid>
      <description>&lt;p&gt;Most RAG demos stop at the answer.&lt;a href="https://github.com/Daniele-Cangi/Alchimista" rel="noopener noreferrer"&gt;Alchimista&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You upload a document, ask a question, get a plausible response, maybe see a few source chunks, and that's where the story ends.&lt;/p&gt;

&lt;p&gt;But I kept coming back to a different problem:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens when the answer itself isn't enough?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What if I need to know which evidence was used, what happened to sensitive data before processing, which policy was active, whether two tenants could ever see each other's documents, and what the system actually did rather than what its architecture diagram claims it should do?&lt;/p&gt;

&lt;p&gt;That's where &lt;strong&gt;Alchimista&lt;/strong&gt; started.&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea
&lt;/h2&gt;

&lt;p&gt;Alchimista is a self-hosted document intelligence and AI governance system built around a fairly simple principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An AI answer should leave evidence behind.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The basic path looks like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;document → privacy processing → ingestion → retrieval → cited answer → decision evidence → audit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That sounds straightforward. Making all of those boundaries agree with each other was considerably less straightforward.&lt;/p&gt;

&lt;h2&gt;
  
  
  RAG wasn't the difficult part
&lt;/h2&gt;

&lt;p&gt;Retrieving chunks and generating an answer is only one piece of the system.&lt;/p&gt;

&lt;p&gt;The more interesting questions appeared around it.&lt;/p&gt;

&lt;p&gt;A document belongs to a tenant. Retrieval has to respect that boundary.&lt;/p&gt;

&lt;p&gt;An answer needs citations. Those citations need to point back to actual indexed evidence.&lt;/p&gt;

&lt;p&gt;Sensitive information may need to be detected or pseudonymized before it reaches an external model.&lt;/p&gt;

&lt;p&gt;If privacy processing fails, silently continuing with the original text is not an acceptable fallback.&lt;/p&gt;

&lt;p&gt;And if the system records an AI decision, the audit trail shouldn't accidentally become another place where sensitive data leaks.&lt;/p&gt;

&lt;p&gt;So Alchimista gradually became less of a "RAG application" and more of an infrastructure layer around the complete evidence path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy as part of the pipeline
&lt;/h2&gt;

&lt;p&gt;Alchimista currently has several privacy modes.&lt;/p&gt;

&lt;p&gt;At the strictest level, sensitive values are pseudonymized &lt;strong&gt;before chunking and embedding&lt;/strong&gt;, meaning the normal retrieval index never receives their cleartext representation.&lt;/p&gt;

&lt;p&gt;Reversible mappings live separately in an AES-256-GCM encrypted vault.&lt;/p&gt;

&lt;p&gt;More importantly, enabled privacy policies fail closed. If the privacy service is unavailable or produces an invalid result, processing stops instead of quietly bypassing the protection.&lt;/p&gt;

&lt;p&gt;That behavior matters more to me than adding another checkbox labelled "privacy".&lt;/p&gt;

&lt;h2&gt;
  
  
  Local first
&lt;/h2&gt;

&lt;p&gt;An earlier version of the project leaned heavily on cloud infrastructure.&lt;/p&gt;

&lt;p&gt;That worked, but eventually I wanted the core system to be independently runnable and inspectable.&lt;/p&gt;

&lt;p&gt;The current baseline needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker with Compose&lt;/li&gt;
&lt;li&gt;Python 3.11+&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No GCP project, external vector database, Auth0 tenant, object store, or paid service is required.&lt;/p&gt;

&lt;p&gt;The cloud integrations still exist as optional adapters, but they are no longer prerequisites for proving that the system works.&lt;/p&gt;

&lt;p&gt;Starting it locally is intentionally boring:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Daniele-Cangi/Alchimista.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Alchimista
python scripts/init_local_env.py
docker compose up &lt;span class="nt"&gt;--detach&lt;/span&gt; &lt;span class="nt"&gt;--build&lt;/span&gt; &lt;span class="nt"&gt;--wait&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then the application is available locally with Documents, Ask, Privacy, Audit, Governance, and System in the same interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  I wanted a proof, not just a demo
&lt;/h2&gt;

&lt;p&gt;One thing I've become increasingly skeptical of in my own projects is a green UI that proves very little about the system underneath it.&lt;/p&gt;

&lt;p&gt;So Alchimista has an end-to-end self-hosted smoke test.&lt;/p&gt;

&lt;p&gt;It doesn't just check that the containers started.&lt;/p&gt;

&lt;p&gt;It exercises ingestion, privacy detection, pseudonymization and restoration, protected persistence, SQL retrieval, citations, tenant isolation, AI decision evidence, audit metadata, the encrypted vault, cleanup behavior, and persistence across a PostgreSQL restart.&lt;/p&gt;

&lt;p&gt;The successful end state is deliberately unexciting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELF_HOSTED_SMOKE_OK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But that line means much more to me than a screenshot of a chatbot answering a document question.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some deliberate limitations
&lt;/h2&gt;

&lt;p&gt;There are also things I don't want Alchimista to pretend.&lt;/p&gt;

&lt;p&gt;It implements technical controls; it does &lt;strong&gt;not&lt;/strong&gt; magically certify GDPR, the EU AI Act, or any other regulation.&lt;/p&gt;

&lt;p&gt;PII detection cannot promise to identify every possible sensitive value.&lt;/p&gt;

&lt;p&gt;The default local embedding path is designed to make the complete system independently runnable and test retrieval mechanics. It isn't a claim that a deterministic offline embedder is the best semantic retrieval system available.&lt;/p&gt;

&lt;p&gt;And stronger pseudonymization can affect retrieval quality, which means strict privacy modes have to be evaluated against the actual domain rather than assumed to be free.&lt;/p&gt;

&lt;p&gt;I think being explicit about those boundaries makes the system more useful, not less.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;Alchimista is now at the point where I'm less interested in adding features for the sake of feature count and more interested in attacking the boundaries.&lt;/p&gt;

&lt;p&gt;What breaks under larger document collections?&lt;/p&gt;

&lt;p&gt;How much retrieval quality is lost under different privacy strategies?&lt;/p&gt;

&lt;p&gt;Which pieces of AI decision evidence are genuinely useful during an investigation months later?&lt;/p&gt;

&lt;p&gt;Where should the trust boundary actually sit when an external model is introduced?&lt;/p&gt;

&lt;p&gt;Those are the experiments I'm interested in next.&lt;/p&gt;

&lt;p&gt;This is also my first proper post on DEV, so I'll probably use this space less as a release feed and more as a place to document those experiments — including the ones that don't work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alchimista is open source and available on GitHub.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Feedback on the architecture, privacy model, or places you'd try to break it is very welcome.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>rag</category>
      <category>security</category>
    </item>
  </channel>
</rss>
