<?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: Mateus Talles</title>
    <description>The latest articles on DEV Community by Mateus Talles (@mateustalles).</description>
    <link>https://dev.to/mateustalles</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%2F580511%2Fc7290a21-b65c-4786-a9c3-eccc8e84f712.png</url>
      <title>DEV Community: Mateus Talles</title>
      <link>https://dev.to/mateustalles</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mateustalles"/>
    <language>en</language>
    <item>
      <title>Delta: investigate, connect clues, change your mind</title>
      <dc:creator>Mateus Talles</dc:creator>
      <pubDate>Mon, 05 Oct 2026 02:57:42 +0000</pubDate>
      <link>https://dev.to/mateustalles/delta-investigate-connect-clues-change-your-mind-1fi7</link>
      <guid>https://dev.to/mateustalles/delta-investigate-connect-clues-change-your-mind-1fi7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path Two: Vibe-Code Something Strange&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;What if changing your mind created a branch instead of erasing your previous explanation?&lt;/p&gt;

&lt;p&gt;Delta is a small investigation game inside Trama. The case is fictional: payments failed for fifteen minutes shortly after a release. Your job is to investigate what happened, connect relevant clues, and decide what you can reasonably conclude.&lt;/p&gt;

&lt;p&gt;Each decision is a triangle: &lt;strong&gt;hypothesis, evidence, rationale&lt;/strong&gt;. Together they form a Delta—a preserved step in your investigation, not an unquestionable answer.&lt;/p&gt;

&lt;p&gt;Sanity helps you find context. The model helps you explain the connection. You decide which clues matter, whether to accept the rationale, and how strong a conclusion you can defend. Confirming a Delta keeps it on the left and opens a new one. You can revisit an earlier step, build a different branch, or contest an assumption without deleting the history.&lt;/p&gt;

&lt;p&gt;There is deliberately no magic correctness percentage. A model's assessment of selected material is useful feedback, not proof of the root cause.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://trama.beautyqueenz.com/poc/sanity/game" rel="noopener noreferrer"&gt;Play Delta&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Public, restricted demo login:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email: &lt;code&gt;mateustalles+sanity-judge@gmail.com&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Password: &lt;code&gt;Trama-Dw_UxMpBIKPBdOlBotIzA4tng1RM2rDy!&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This account cannot access personal workspaces or apply operational changes. All visitors share &lt;strong&gt;6 live actions per minute and 600 accepted requests total&lt;/strong&gt;. Retrieval and model review each count once; selections, confirmed Deltas and branches are local and free.&lt;/p&gt;

&lt;p&gt;Try it in a few steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose hypothesis A, B or C around the top sphere.&lt;/li&gt;
&lt;li&gt;Read and select clues. In the evidence notebook, choose an investigation question and click &lt;strong&gt;Retrieve clues from Sanity →&lt;/strong&gt; for additional context.&lt;/li&gt;
&lt;li&gt;Select the clues you want to connect and click &lt;strong&gt;Explain this connection →&lt;/strong&gt; to request a rationale.&lt;/li&gt;
&lt;li&gt;Adopt or dismiss the proposal, choose your conclusion, and click &lt;strong&gt;Accept my Delta →&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Continue investigating, or return to an earlier Delta and explore another branch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;a href="https://github.com/mateustalles/trama-sanity-investigation-demo/blob/main/docs/demo/game.md" rel="noopener noreferrer"&gt;game guide&lt;/a&gt; explains full-text reading, provenance, export and reset.&lt;/p&gt;

&lt;p&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%2F8j0gpl0dxff3fnh591gx.jpg" 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%2F8j0gpl0dxff3fnh591gx.jpg" alt="An accepted Delta stays on the left while a new hypothesis, evidence and rationale triangle is built" width="800" height="663"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&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%2Fm861f7rg55vxjx05btcu.jpg" 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%2Fm861f7rg55vxjx05btcu.jpg" alt="A branch map preserves a contested decision beside an alternative active branch" width="800" height="663"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mateustalles/trama-sanity-investigation-demo" rel="noopener noreferrer"&gt;Source code and setup instructions&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Build Process
&lt;/h2&gt;

&lt;p&gt;I used Codex to turn an investigation-agent experiment into a visual game. My initial idea was a free-form chat. It could answer questions, but it did not make the player's own reasoning visible.&lt;/p&gt;

&lt;p&gt;The important change was the triangle: choose an explanation, connect clues, then examine why that connection might hold. Predefined questions and hypothesis alternatives remove the blank-page problem without letting the model silently choose or accept the player's decision.&lt;/p&gt;

&lt;p&gt;Another correction was separating retrieval from reasoning. Retrieving clues makes a native Knowledge Base Search call. It does not ask OpenAI to answer first, and it has no local keyword fallback. Reviewing a selection is a separate model call using only those selected clues.&lt;/p&gt;

&lt;p&gt;Sanity returns generated KB context with references. The game presents complete response sections, not invented "original documents." Authenticated, expiring receipts protect retrieved clue bodies from client tampering; they do not certify that a generated interpretation is true.&lt;/p&gt;

&lt;p&gt;The deterministic part is the decision graph. Confirming, returning and contesting have offline unit tests. History is preserved, affected branches cannot become valid anchors, and returning to an earlier Delta creates a new branch rather than rewriting the old one. Provider failures and quotas are tested separately from model quality.&lt;/p&gt;

&lt;p&gt;The game is intentionally small: synthetic content, browser-local progress, no operational State writes, and a restricted shared account. Six curated source excerpts are initially available; live retrieval adds generated KB context. It is not a hidden-clue puzzle, a multiplayer game or an audited root-cause oracle. I did not use the Sanity App SDK or Workflows in this prototype.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Project ID: &lt;code&gt;swuqfubs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Dataset: &lt;code&gt;trama-evidence-pilot&lt;/code&gt;, with 145 synthetic source records&lt;/li&gt;
&lt;li&gt;Schema: &lt;code&gt;evidenceSource&lt;/code&gt;, preserving original bodies, identity, provenance and case scope&lt;/li&gt;
&lt;li&gt;Knowledge Base: &lt;code&gt;kbkpWkNaMVN6&lt;/code&gt;, reused across players&lt;/li&gt;
&lt;li&gt;Retrieval: native &lt;code&gt;knowledge_base_search&lt;/code&gt;, declared query terms, &lt;code&gt;return: entries&lt;/code&gt;, &lt;code&gt;limit: 5&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Five KB entries can reference more than five source files. The native tool searches built KB entries; this game does not claim embedding similarity or use a homemade fallback as if it were Sanity.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
    <item>
      <title>Trama: Investigating Uncertainty with Sanity Context</title>
      <dc:creator>Mateus Talles</dc:creator>
      <pubDate>Mon, 05 Oct 2026 01:40:55 +0000</pubDate>
      <link>https://dev.to/mateustalles/trama-investigating-uncertainty-with-sanity-context-2a9j</link>
      <guid>https://dev.to/mateustalles/trama-investigating-uncertainty-with-sanity-context-2a9j</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/sanity-2026-09-16"&gt;Sanity Challenge, Path One: Ship an Agent That Queries Real Content&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I created Trama, a tool that helps people make better-informed decisions when the available information is incomplete, scattered, or contradictory.&lt;/p&gt;

&lt;p&gt;Its Investigator starts with an unresolved question and uses the available information to develop a supported, provisional conclusion. The broader product organizes that progress into Deltas: explicit steps connecting a hypothesis, selected evidence, reasoning, and a conclusion.&lt;/p&gt;

&lt;p&gt;An investigation is only as useful as the information it can find. Sanity acts as Trama’s librarian: it organizes scattered records into a searchable Knowledge Base and helps locate context that may support or challenge a hypothesis. Trama then reasons from that material, explaining what it supports and what remains uncertain.&lt;/p&gt;

&lt;p&gt;A Delta is not the final truth. New evidence can challenge it, reopen the investigation, or lead to a different branch. The goal is to preserve not only what we concluded, but why—and what might change our minds.&lt;/p&gt;

&lt;p&gt;For this submission, I built a focused investigation assistant around a fictional checkout incident. Users can ask what happened, explore possible explanations, and inspect the context that informed the model’s answer.&lt;br&gt;
This demo focuses on the retrieval-and-reasoning step. It does not automatically apply decisions or modify investigation records.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://trama.beautyqueenz.com/poc/sanity/investigate" rel="noopener noreferrer"&gt;https://trama.beautyqueenz.com/poc/sanity/investigate&lt;/a&gt;&lt;br&gt;
(The demo is hosted on my existing domain)&lt;/p&gt;

&lt;p&gt;Open the demo and sign in with this restricted test account:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email: &lt;code&gt;mateustalles+sanity-judge@gmail.com&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Password: &lt;code&gt;Trama-Dw_UxMpBIKPBdOlBotIzA4tng1RM2rDy!&lt;/code&gt;
No personal API key is required. This account grants access only to the demo, not personal workspaces.
The allowance is six questions per minute and 600 accepted requests total, shared across all visitors. Access expires on October 24, 2026, at 02:59 UTC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The case:&lt;/strong&gt; A checkout release was followed by a fifteen-minute increase in failed payments. The archive contains deployment notes, provider measurements, audit reports, and unrelated records. Can you distinguish what happened from what might have caused it?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting started&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sign in using the test credentials above. No personal API key is required.&lt;/li&gt;
&lt;li&gt;Select “Establish the timeline”, then click “Ask Trama.”&lt;/li&gt;
&lt;li&gt;Try “Look for a change” to investigate what changed before the failures.&lt;/li&gt;
&lt;li&gt;Use “Check a measurement” and “Test alternatives” to explore supporting observations and competing explanations.&lt;/li&gt;
&lt;li&gt;Ask your own question. For example:
“What would we need to verify before treating the deployment as the root cause?”&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What to look for&lt;/strong&gt;&lt;br&gt;
Read both the conclusion and “What remains uncertain.” The goal is a supported explanation—not a confident answer at any cost.&lt;br&gt;
Expand “See what Sanity returned” to inspect the complete Knowledge Base context supplied to the answer model. Expand “How Trama used Sanity for this question” to see the actual search query and processing details.&lt;br&gt;
Behind each answer, Trama searches Sanity’s built Knowledge Base and passes the complete returned entries to OpenAI for analysis. Suggested questions use predefined search terms; custom questions are sent to Sanity unchanged.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Access and limitations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a read-only demo using fictional, synthetic records. Each question is processed independently, so include relevant details rather than relying on previous answers. Please do not submit personal or confidential information.&lt;/p&gt;

&lt;p&gt;Sanity’s generated entries may contain interpretation. This demo does not independently verify the original documents or create persistent Deltas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mateustalles/trama-sanity-investigation-demo/tree/main" rel="noopener noreferrer"&gt;https://github.com/mateustalles/trama-sanity-investigation-demo/tree/main&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Used Sanity
&lt;/h2&gt;

&lt;p&gt;I loaded a corpus of 145 synthetic documents into Sanity, including records about the fictional incident and unrelated material, and used Sanity Context to build a Knowledge Base.&lt;/p&gt;

&lt;p&gt;When a user asks a question, Trama calls the native &lt;code&gt;knowledge_base_search&lt;/code&gt; tool through Context MCP. It passes the complete returned entries to an OpenAI model, which produces an answer with a provisional conclusion and limitations.&lt;/p&gt;

&lt;p&gt;Trama does not rerank or filter those results, and this path has no local keyword-search fallback.&lt;/p&gt;

&lt;p&gt;Sanity’s role is to turn a scattered collection of information into navigable context for the investigator. Trama’s role is to reason from that context and make uncertainty visible.&lt;/p&gt;

&lt;p&gt;The returned entries are Sanity-generated interpretations, not independently verified original evidence. Making that distinction explicit is part of the investigation workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;p&gt;Project ID: swuqfubs&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
