<?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: Uranusist</title>
    <description>The latest articles on DEV Community by Uranusist (@uranusist_99).</description>
    <link>https://dev.to/uranusist_99</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%2F4128709%2Ff1bdec54-7338-47c9-8e71-8160fbd763b9.jpg</url>
      <title>DEV Community: Uranusist</title>
      <link>https://dev.to/uranusist_99</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uranusist_99"/>
    <language>en</language>
    <item>
      <title>Your AI Model Isn’t Limited. Your Request Is. So I used jev to fix it.</title>
      <dc:creator>Uranusist</dc:creator>
      <pubDate>Wed, 23 Sep 2026 11:19:04 +0000</pubDate>
      <link>https://dev.to/uranusist_99/your-ai-model-isnt-limited-your-request-is-so-i-used-jev-to-fix-it-3ff0</link>
      <guid>https://dev.to/uranusist_99/your-ai-model-isnt-limited-your-request-is-so-i-used-jev-to-fix-it-3ff0</guid>
      <description>&lt;p&gt;A prompt sent to an AI is a snapshot of what you know at the exact moment you type it.&lt;/p&gt;

&lt;p&gt;That sounds obvious, but it carries a consequence people rarely sit with: &lt;strong&gt;the output is bounded not by the model, but by the request.&lt;/strong&gt; A better model fills the same shape more fluently. It does not expand the shape.&lt;/p&gt;

&lt;p&gt;Consider a common scenario: you ask a coding agent to &lt;em&gt;"add email verification with a 6-digit code."&lt;/em&gt; You get a working feature in minutes. Weeks later, you uncover edge cases one by one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The code never expires.&lt;/li&gt;
&lt;li&gt;Nothing stops a brute-force script from testing all 1,000,000 combinations.&lt;/li&gt;
&lt;li&gt;Changing an account's email address skips verification entirely.&lt;/li&gt;
&lt;li&gt;Requesting a resend generates a new code without invalidating the previous one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these were in the initial request. The agent didn't mess up. It built exactly what was asked, quietly picking defaults for everything left unspecified.&lt;/p&gt;

&lt;p&gt;The crucial detail here is that you didn't &lt;em&gt;forget&lt;/em&gt; these points. Forgetting implies you knew them and they slipped your mind. You simply didn't know these questions existed in the first place. Someone who has shipped verification flows before would have raised every single one before writing a line of code, not because they are inherently smarter, but because their experience is largely a catalogue of questions that turned out to matter.&lt;/p&gt;




&lt;h2&gt;
  
  
  Known Unknowns vs. Unknown Unknowns
&lt;/h2&gt;

&lt;p&gt;There is an old distinction between things you know you don't know (known unknowns) and things you don't know you don't know (unknown unknowns).&lt;/p&gt;

&lt;p&gt;The first kind is a to-do list: you can look it up, read the docs, or ask a colleague. The second kind is completely invisible from the inside. You cannot list what never crossed your mind. That isn't a character flaw. It's the definition of the category.&lt;/p&gt;

&lt;p&gt;Most of what we call &lt;strong&gt;expertise&lt;/strong&gt; lives in that second category. It isn't just knowing how to answer a question, but knowing that the question needs to be asked in the first place.&lt;/p&gt;

&lt;p&gt;This is precisely the part of the work an AI assistant cannot take off your plate, because it can only respond to what you ask. If anything, AI sharpens this gap. Fluent code and passing tests create an illusion of completeness. The missing questions stay hidden until they hit production or a code review.&lt;/p&gt;

&lt;p&gt;The most critical skill when working with AI tools is metacognitive: &lt;strong&gt;knowing where the edge of your own knowledge lies so you can write the request from the far side of it.&lt;/strong&gt; Good results come from good requests, and a good request is written by someone who knows what they don't know.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Prompt Checkers Keep Getting Turned Off
&lt;/h2&gt;

&lt;p&gt;The obvious fix seems simple: check the prompt before sending it out. Think prompt linters, clarifying dialogs, or "did you mean..." popups. Yet almost everyone who tries these turns them off within a day.&lt;/p&gt;

&lt;p&gt;The issue isn't the intent; it's structural UX:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;They intercept:&lt;/strong&gt; Something stands between you and the agent on every single prompt, forcing a checkpoint you didn't ask for.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;They add latency:&lt;/strong&gt; A model has to inspect your prompt before the primary model can even start. The delay sits directly on your critical path.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;They waste resources:&lt;/strong&gt; A quick "ok, go ahead" gets the exact same heavy-handed processing as "migrate the primary database table."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The insights these tools produce are valuable, but the delivery mechanism makes them unaffordable. A thinking aid you disable is worth nothing.&lt;/p&gt;




&lt;h2&gt;
  
  
  What a Real Solution Looks Like
&lt;/h2&gt;

&lt;p&gt;If delivery is the problem, the constraints for a proper fix are straightforward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Decide cheaply if it's worth checking:&lt;/strong&gt; Most prompts don't have a critical blind spot. A fast, lightweight classifier can clear simple prompts instantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspect thoroughly only when necessary:&lt;/strong&gt; When a potential blind spot is flagged, a full model reads the request against your codebase and identifies what an experienced developer would have considered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never block:&lt;/strong&gt; The prompt should pass to the agent immediately. The check runs asynchronously alongside it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stay out of the main session:&lt;/strong&gt; Don't inject noise into the agent's context. The feedback lands quietly in a side panel for you to fold into your &lt;em&gt;next&lt;/em&gt; prompt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point is key. The goal isn't to fix the current prompt. It's to shift your awareness before you write the next one.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Implemented It: &lt;code&gt;jev-blindspot&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Based on jev, I built a lightweight tool around these exact constraints for Claude Code and Codex CLI called &lt;a href="https://github.com/jsk4581/jev-blindspot" rel="noopener noreferrer"&gt;&lt;code&gt;jev-blindspot&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When you submit a prompt, a local hook sends it to a background daemon. A quick classifier evaluates whether a blind spot exists. If it passes the threshold, a read-only instance of the agent inspects the project directory and generates concise cards showing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The missing consideration&lt;/li&gt;
&lt;li&gt;Why it matters in this specific context&lt;/li&gt;
&lt;li&gt;A copy-pasteable line you can drop into your next prompt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These cards appear silently in a side panel. Your active AI session never notices a thing. It doesn't rewrite your prompt, interrupt execution, or pollute the conversational context. It simply advises on the request, the one piece of the loop that belongs entirely to you.&lt;/p&gt;

&lt;p&gt;It isn't perfect. Distinguishing between a genuine blind spot and generic checklist advice remains a subtle judgment call, and models can lean toward the generic. But the broader takeaway holds regardless of the tool:&lt;/p&gt;

&lt;p&gt;When building with AI, the limiting factor is rarely the model. It is the request, and the request is bounded by what you know you don't know. Anything that broadens that boundary, whether a tool, a reviewer, or simply asking &lt;em&gt;"what would a domain expert ask first?"&lt;/em&gt; elevates every result downstream. Good results start with good requests.&lt;/p&gt;




&lt;p&gt;I put these thoughts together to help fellow developers write better requests from the far side of their knowledge edge. What is the one question you wish you had asked your AI agent before starting your last big feature? Feel free to leave your questions, thoughts, or counterarguments in the comments.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>coding</category>
      <category>development</category>
    </item>
    <item>
      <title>I drew my Claude Code sessions as a timeline, with the why behind each decision</title>
      <dc:creator>Uranusist</dc:creator>
      <pubDate>Thu, 17 Sep 2026 00:08:17 +0000</pubDate>
      <link>https://dev.to/uranusist_99/a-timeline-of-your-project-not-a-graph-of-your-code-200p</link>
      <guid>https://dev.to/uranusist_99/a-timeline-of-your-project-not-a-graph-of-your-code-200p</guid>
      <description>&lt;p&gt;A code graph draws one layer of a project: the code. Functions, calls, imports, what depends on what. It is a good picture and people read it fine.&lt;/p&gt;

&lt;p&gt;Under that layer there is another one, and it has no picture. The sessions you ran. What you typed into each of them. The moments the agent chose one way over another, and its reason. The work a later session picked up from an earlier one. All of it exists, in transcripts and in someone's memory, and no one has seen it drawn.&lt;/p&gt;

&lt;p&gt;session-trail is a Claude Code plugin that draws that layer. It sits next to a code graph, not in place of it.&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%2Fc948w3pgub09tl70ygly.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%2Fc948w3pgub09tl70ygly.png" alt="timeline" width="799" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is on the picture
&lt;/h2&gt;

&lt;p&gt;One lane per session. A node per decision or finished piece of work. A curve between lanes when a later session continues a line an earlier one started. Small ticks on each lane for every prompt you typed. Read left to right, it is the story of the project.&lt;/p&gt;

&lt;p&gt;Click a node and you get its title, what, why and how, the files touched around it, the session id and the path of the local transcript. Click a tick and you get the prompt, as typed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The why, and your own words
&lt;/h2&gt;

&lt;p&gt;Two things I most wanted on this picture.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;why&lt;/strong&gt;, in the agent's words, at the moment it chose. When the agent makes a choice with lasting consequences, or finishes a unit of work, it passes a short brief to a Sonnet subagent, which writes the node. The why has to name the options that were passed over. That is the sentence you cannot get back from a diff.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your own words&lt;/strong&gt;, as typed. Every prompt is stored word for word by a hook. No model in that path, no summary in between. Weeks later, "what did I ask for back then" has an answer in the original wording, and the transcript path on the node takes you to the conversation.&lt;/p&gt;

&lt;p&gt;Side by side on one axis, the request and the reason it produced are the part of the history that used to vanish first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Many sessions, one picture
&lt;/h2&gt;

&lt;p&gt;The hardest thing to see in agent work is how it spreads across sessions. A session starts, does something, ends; the next one picks up part of it, or does not. Here each session is a lane, and when a later one continues an earlier line, a curve joins the two. The time axis is linear inside a session and compressed across idle gaps, so a month with three active days fits on one screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  The same picture for the person and the agent
&lt;/h2&gt;

&lt;p&gt;The viewer is the product. It is drawn for people to read, and the agent's read side sits on top of it: three commands (&lt;code&gt;show&lt;/code&gt;, &lt;code&gt;why &amp;lt;path&amp;gt;&lt;/code&gt;, &lt;code&gt;search&lt;/code&gt;) that it uses in one situation, right before reversing a choice that looks intentional. No history is pushed into the context on edits.&lt;/p&gt;

&lt;p&gt;The point is that you and the agent look at the same history. You in the viewer, weeks later, or a teammate joining the project; the agent at the start of a session, or when it is about to undo something. Working with an agent, what you lose first is context: the reasons, the sequence, the story. This puts them back where a person can see them.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it is built
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;One append-only file, &lt;code&gt;.session-trail/events.jsonl&lt;/code&gt;, in the project folder. The graph is a pure reduction over it. Commit it to share the history with your team, or gitignore it.&lt;/li&gt;
&lt;li&gt;Node 18+, no npm dependencies. The viewer is vanilla JS and SVG, no build step.&lt;/li&gt;
&lt;li&gt;Hooks do the mechanical part (sessions, file touches, prompts) and run async, so the conversation is not slowed. The Sonnet subagent writes nodes in the background; the main agent does not wait for it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;/plugin marketplace add jsk4581/session-trail
/plugin install session-trail@session-trail
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Work as usual, then &lt;code&gt;/session-trail:view&lt;/code&gt; opens the timeline.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/jsk4581/session-trail" rel="noopener noreferrer"&gt;https://github.com/jsk4581/session-trail&lt;/a&gt; (MIT)&lt;/p&gt;

&lt;p&gt;I would like to hear what else you would want on a timeline like this, and how you keep track of work that spans many agent sessions today.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
