<?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: Nivriti Pandey</title>
    <description>The latest articles on DEV Community by Nivriti Pandey (@nivriti_pandey_27).</description>
    <link>https://dev.to/nivriti_pandey_27</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%2F4185079%2Ff1040b9b-8c03-40b7-84a1-12ad966cecef.jpg</url>
      <title>DEV Community: Nivriti Pandey</title>
      <link>https://dev.to/nivriti_pandey_27</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nivriti_pandey_27"/>
    <language>en</language>
    <item>
      <title>NexuCity — See the Change Before It Lives in Your Codebase</title>
      <dc:creator>Nivriti Pandey</dc:creator>
      <pubDate>Mon, 26 Oct 2026 06:55:16 +0000</pubDate>
      <link>https://dev.to/nivriti_pandey_27/nexucity-see-the-change-before-it-lives-in-your-codebase-g2m</link>
      <guid>https://dev.to/nivriti_pandey_27/nexucity-see-the-change-before-it-lives-in-your-codebase-g2m</guid>
      <description>&lt;h1&gt;
  
  
  🏙️ NexuCity — See the Change Before It Lives in Your Codebase
&lt;/h1&gt;

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

&lt;p&gt;Refactoring is often a slow, anxious job: search through a large repository, guess the blast radius, make a change, run the checks, and hope nothing important was missed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NexuCity&lt;/strong&gt; makes that work inspectable before it becomes risky. Connect a GitHub repository, let the deterministic analyzer turn its source into a structural graph, explore that graph as an interactive &lt;strong&gt;Twin City&lt;/strong&gt;, then propose and rehearse a supported change inside an isolated workspace.&lt;/p&gt;

&lt;p&gt;The goal is simple: &lt;strong&gt;let developers do less guesswork before touching code.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GitHub repository
        │  explicit import; source is parsed, not executed
        ▼
Normalized source graph
        ├── Twin City: explore files, symbols, routes, and relationships
        └── Governed agent: plan a supported change with Gemma + Mastra
                                      │
                                      ▼
                         Temporal approval checkpoint
                                      │
                                      ▼
                         Isolated rehearsal and evidence
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The workflow
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Connect&lt;/strong&gt; a GitHub account and choose a repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Index&lt;/strong&gt; explicit repository files into a normalized graph.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore&lt;/strong&gt; relationships in the Twin City and Impact views.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Propose&lt;/strong&gt; a change against a validated graph node.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rehearse&lt;/strong&gt; supported &lt;code&gt;rename&lt;/code&gt; and Prisma scalar &lt;code&gt;type_change&lt;/code&gt; operations in a temporary twin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt; the plan, permit, diff, results, and audit records before any governed execution.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;NexuCity does not merge, push, deploy, or perform unrestricted remediation. The indexed snapshot is never used as a write target.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/NivritiPandey/Nexucity-omni" rel="noopener noreferrer"&gt;github.com/NivritiPandey/Nexucity-omni&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web client:&lt;/strong&gt; &lt;a href="https://nexucity-omni.vercel.app" rel="noopener noreferrer"&gt;nexucity-omni.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API health endpoint:&lt;/strong&gt; &lt;a href="https://nexucity-api.onrender.com/health" rel="noopener noreferrer"&gt;nexucity-api.onrender.com/health&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The production entrypoint starts empty by design. Sign in with GitHub, import a repository, and then visit:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Route&lt;/th&gt;
&lt;th&gt;What it shows&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Workspace overview and repository summary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/twin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Three.js Twin City for the indexed graph&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/impact&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search, relationships, and dependency inspection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/changes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Repository-scoped proposed changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/rehearsal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Isolated rehearsal lifecycle and results&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/agents&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Plans, permits, approvals, and governed actions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/evidence&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Returned change, rehearsal, and audit records&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;NexuCity is a TypeScript npm-workspace monorepo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apps/web/             React/Vite workspace UI and Twin City
packages/analyzer/    deterministic source analysis
packages/graph/       normalized graph models and traversal
packages/storage/     SQLite persistence
packages/api/         Fastify API, rehearsal, and governed execution
scripts/              release verification and runtime checks
ARCHITECTURE.md       package boundaries and safety limits
AUDIT_REPORT.md       audit evidence and operational follow-ups
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Deterministic analysis first
&lt;/h3&gt;

&lt;p&gt;The analyzer accepts explicit file content and produces structural data without executing repository code. That graph owns node identity, edges, repository scope, search, and traversal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemma as a proposal, not an authority
&lt;/h3&gt;

&lt;p&gt;The real agent path uses a configured OpenAI-compatible Gemma endpoint through Mastra. Gemma receives the relevant change, graph context, and allowed source context, then returns a structured plan. The model does not decide what it is allowed to touch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mastra for the tool boundary
&lt;/h3&gt;

&lt;p&gt;Mastra coordinates the model and typed tools. Permits, protected paths, budgets, validation, and redaction remain application-owned controls.&lt;/p&gt;

&lt;h3&gt;
  
  
  Temporal for the pause
&lt;/h3&gt;

&lt;p&gt;Agent execution is not a single unreviewable request. Temporal holds the workflow at a human approval checkpoint, then runs only the approved activity through the governed boundary.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Twin City for lazy exploration
&lt;/h3&gt;

&lt;p&gt;Files become buildings, symbols become towers, routes become gateways, and structural relationships become visible connections. Search and related-only filters let a developer focus on the part of the graph that matters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Evidence instead of confidence theater
&lt;/h3&gt;

&lt;p&gt;The workspace returns rehearsal results, permits, actions, reviews, rollbacks, and audit records. It does not turn an unavailable provider into a fake success or invent a risk score.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Code is sensitive, and an agent that can edit a repository needs more than a clever prompt. Open models and open-source infrastructure make the important boundaries inspectable and replaceable.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Closed-only automation&lt;/th&gt;
&lt;th&gt;NexuCity's open approach&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Source must be sent to a vendor-controlled endpoint&lt;/td&gt;
&lt;td&gt;Gemma can run locally or behind an endpoint the developer controls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The model's tool boundary is hidden in a product&lt;/td&gt;
&lt;td&gt;Mastra tools, permits, path rules, and budgets are visible in the repository&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provider pricing and model availability determine the workflow&lt;/td&gt;
&lt;td&gt;The model endpoint can be swapped without changing the graph or governance layers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A failed request can leave an unclear partial state&lt;/td&gt;
&lt;td&gt;Temporal and the rehearsal boundary make approval and execution explicit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trust depends on a polished answer&lt;/td&gt;
&lt;td&gt;Source graph, rehearsal output, and audit records can be inspected&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Open innovation did not just reduce the model bill. It made it possible to keep the safety-critical parts of this workflow understandable: what the model saw, what it proposed, what it was permitted to do, and what actually happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;This repository does not embed a private coding-agent transcript or claim a public session URL. The reproducible artifacts are the source tree, commit history, tests, release checks, architecture notes, and audit report.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;NexuCity is for the developer who would rather inspect once than chase references all afternoon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select a graph node instead of manually tracing every caller.&lt;/li&gt;
&lt;li&gt;See upstream and downstream relationships before editing.&lt;/li&gt;
&lt;li&gt;Rehearse a supported change without mutating the imported snapshot.&lt;/li&gt;
&lt;li&gt;Let Gemma draft a structured plan instead of starting from a blank issue.&lt;/li&gt;
&lt;li&gt;Keep a human approval checkpoint before governed execution.&lt;/li&gt;
&lt;li&gt;Review evidence instead of trusting an agent's claim that everything is fine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The sloth-inspired principle is &lt;strong&gt;slow and steady before the first edit&lt;/strong&gt;: spend a little time making the change legible, so the eventual implementation is less surprising.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🦥 &lt;strong&gt;Slow and Steady:&lt;/strong&gt; reduce the tiring manual work of code impact analysis and safe change planning.&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;Open-Source AI Core:&lt;/strong&gt; Gemma, Mastra, and replaceable open tooling are part of the actual workflow.&lt;/li&gt;
&lt;li&gt;🛠️ &lt;strong&gt;Developer Tools &amp;amp; Infrastructure:&lt;/strong&gt; deterministic graphing, 3D code visualization, rehearsal, and durable approval orchestration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Run It Locally
&lt;/h2&gt;

&lt;p&gt;NexuCity uses Node &lt;code&gt;22.22.0&lt;/code&gt; and npm workspaces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nvm use 22.22.0
npm ci
npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start the API in local mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3001 &lt;span class="nv"&gt;NEXUCITY_API_MODE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;local &lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In another terminal, start the web client:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev:web
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;code&gt;http://localhost:3000/signin&lt;/code&gt;. For real agent planning, configure a Gemma-compatible endpoint and Temporal separately; the local rule-based provider is retained only for isolated tests.&lt;/p&gt;

&lt;p&gt;Useful checks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;test
&lt;/span&gt;npm run &lt;span class="nb"&gt;test&lt;/span&gt;:e2e
npm run build:web
npm run &lt;span class="nb"&gt;test&lt;/span&gt;:web
npm run verify:release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Boundaries
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Production starts without a sample repository; GitHub is the user-facing source connection.&lt;/li&gt;
&lt;li&gt;Sessions are currently process-local and require re-authentication after an API restart.&lt;/li&gt;
&lt;li&gt;Real agent execution requires configured Gemma and Temporal services.&lt;/li&gt;
&lt;li&gt;Rehearsal supports a deliberately narrow set of change types.&lt;/li&gt;
&lt;li&gt;WebGL 2 is required for the 3D view; the graph and inspector remain useful without it.&lt;/li&gt;
&lt;li&gt;This project does not claim unrestricted arbitrary-code sandboxing or production certification for hostile code.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;p&gt;Built by &lt;a href="https://dev.to/nivritipandey"&gt;@NivritiPandey&lt;/a&gt; for Hacktoberfest 2026 and the DEV Community.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
