<?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: Aditya Rasal</title>
    <description>The latest articles on DEV Community by Aditya Rasal (@aditya_rasal).</description>
    <link>https://dev.to/aditya_rasal</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%2F3872249%2Fef25ca72-b50e-4917-8f21-5ee3ed98724a.jpeg</url>
      <title>DEV Community: Aditya Rasal</title>
      <link>https://dev.to/aditya_rasal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aditya_rasal"/>
    <language>en</language>
    <item>
      <title>Solstice Machine — a Turing machine whose tape is a day</title>
      <dc:creator>Aditya Rasal</dc:creator>
      <pubDate>Sat, 13 Jun 2026 06:44:00 +0000</pubDate>
      <link>https://dev.to/aditya_rasal/solstice-machine-a-turing-machine-whose-tape-is-a-day-3ka3</link>
      <guid>https://dev.to/aditya_rasal/solstice-machine-a-turing-machine-whose-tape-is-a-day-3ka3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/june-game-jam-2026-06-03"&gt;June Solstice Game Jam&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Solstice Machine&lt;/strong&gt; is a browser puzzle game where you program a tiny two-state&lt;br&gt;
Turing machine — except the tape is a &lt;strong&gt;day&lt;/strong&gt;. The "tape" is a ring of 24 hours,&lt;br&gt;
each one &lt;strong&gt;light&lt;/strong&gt; (gold, a sun tick) or &lt;strong&gt;dark&lt;/strong&gt; (deep blue, a crescent). A&lt;br&gt;
little orb walks the ring — a &lt;strong&gt;sun in state A&lt;/strong&gt;, a &lt;strong&gt;moon in state B&lt;/strong&gt; — reading&lt;br&gt;
each hour and following the rules you build, lighting and darkening the day.&lt;/p&gt;

&lt;p&gt;Each level is a calendar day. You transform the starting day into a target day&lt;br&gt;
within a step budget, and the campaign marches from the &lt;strong&gt;spring equinox to&lt;br&gt;
June 21&lt;/strong&gt; — daylight literally growing level by level until the finale asks you&lt;br&gt;
to construct the longest day of the year. That's the jam's solstice theme baked&lt;br&gt;
straight into the progression.&lt;/p&gt;

&lt;p&gt;Every day you solve decodes one word of a hidden message. After the tenth:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;FOR ALAN, WHO IMAGINED US — RUN PROUDLY AS YOURSELF.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The completed solstice ring blooms a soft rainbow around its rim. June holds the&lt;br&gt;
solstice, Pride, Juneteenth's light of freedom, and &lt;strong&gt;Alan Turing's birthday&lt;/strong&gt; —&lt;br&gt;
the game is one small image that tries to hold all four. It's an original tribute&lt;br&gt;
to Turing: you're programming &lt;em&gt;his&lt;/em&gt; machine, one level is &lt;em&gt;his&lt;/em&gt; wartime&lt;br&gt;
codebreaking, and the message and the rainbow are his life, honored.&lt;/p&gt;

&lt;p&gt;▶️ &lt;strong&gt;Play it now (no install, runs in your browser):&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;a href="https://aditya2073.github.io/solstice-machine/" rel="noopener noreferrer"&gt;https://aditya2073.github.io/solstice-machine/&lt;/a&gt;&lt;/strong&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.amazonaws.com%2Fuploads%2Farticles%2F56kiqy6rw167r2fjb05u.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.amazonaws.com%2Fuploads%2Farticles%2F56kiqy6rw167r2fjb05u.png" alt="Title screen" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Video Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://trailer-site-rho.vercel.app" rel="noopener noreferrer"&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.amazonaws.com%2Fuploads%2Farticles%2F0fw3p1u28b5m42s6p0nb.jpg" alt="Solstice Machine — watch the 68-second trailer" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;▶️ &lt;strong&gt;&lt;a href="https://trailer-site-rho.vercel.app" rel="noopener noreferrer"&gt;Watch the 68-second trailer&lt;/a&gt;&lt;/strong&gt; — it's also set as this post's cover video, so it plays right at the top. Every machine you see run is &lt;strong&gt;not a screen capture&lt;/strong&gt;: I extracted the game's real Turing-machine simulator and rebuilt the ring, head, sky, and rainbow as components driven by the actual &lt;code&gt;simulate()&lt;/code&gt; trace, with a from-scratch synthesized score. (Made with &lt;a href="https://remotion.dev" rel="noopener noreferrer"&gt;Remotion&lt;/a&gt;.)&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Aditya2073" rel="noopener noreferrer"&gt;
        Aditya2073
      &lt;/a&gt; / &lt;a href="https://github.com/Aditya2073/solstice-machine" rel="noopener noreferrer"&gt;
        solstice-machine
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A small machine for long days — a single-file browser puzzle game where you program a Turing machine on a 24-hour ring. DEV June Solstice Game Jam. For Alan Turing.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SOLSTICE MACHINE&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;A small machine for long days.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A browser puzzle game for the DEV &lt;strong&gt;June Solstice Game Jam&lt;/strong&gt;. You program a tiny
Turing machine whose tape is a day — a ring of 24 hours, each light or dark
Ten days carry you from the spring equinox to June 21, and every solved day
decodes one word of a hidden message.&lt;/p&gt;
&lt;p&gt;An original tribute to &lt;strong&gt;Alan Turing&lt;/strong&gt; — born in June, father of the machine
you are programming, persecuted for being gay. The final day blooms a rainbow.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How to play&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;The day.&lt;/strong&gt; The ring is one day: 24 hours, each &lt;strong&gt;light&lt;/strong&gt; (gold, sun tick) or
&lt;strong&gt;dark&lt;/strong&gt; (deep blue, crescent). NOON is at the top, MIDNIGHT at the bottom.
The faint inner ring is the &lt;strong&gt;target day&lt;/strong&gt; you must create.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The head.&lt;/strong&gt; The orb traveling the ring is the machine's head — a &lt;strong&gt;sun in
state A&lt;/strong&gt;…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Aditya2073/solstice-machine" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;It's a &lt;strong&gt;single &lt;code&gt;index.html&lt;/code&gt;&lt;/strong&gt; — ~250 KB, more than half of which is three&lt;br&gt;
embedded subset typefaces. No build step, no frameworks, no network requests.&lt;br&gt;
Double-click the file and it runs.&lt;/p&gt;

&lt;p&gt;The whole simulator is a pure function, &lt;code&gt;simulate(tape, head, rules, budget)&lt;/code&gt;,&lt;br&gt;
completely separate from rendering — the UI never executes rules itself, it just&lt;br&gt;
replays the simulator's trace with animation, so &lt;strong&gt;what you watch is exactly what&lt;br&gt;
gets verified&lt;/strong&gt;. Open &lt;code&gt;index.html?dev=1&lt;/code&gt; and the console prints a table proving&lt;br&gt;
all ten levels are solvable by their stored intended solutions, within budget, at&lt;br&gt;
the 3-sun threshold — and that no level is cheesable with an empty rule set.&lt;/p&gt;

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

&lt;p&gt;The machine is a real Turing machine, just small and warm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tape:&lt;/strong&gt; 24 cells in a circle — it wraps, so clockwise past hour 23 is hour 0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Head:&lt;/strong&gt; starts on a level-defined hour in state A. Two states total, drawn as
sun (A) and moon (B).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rules:&lt;/strong&gt; there are only four conditions (2 cell values × 2 states). Each rule
writes a value, turns one hour CW/CCW, and becomes a state — or &lt;strong&gt;HALTs&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ends:&lt;/strong&gt; the machine halts, &lt;em&gt;stalls&lt;/em&gt; (no rule covers what it reads — empty
slots are deliberate stop signs!), or the budget runs out. Then the day is
compared to the target.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The hardest problem was termination.&lt;/strong&gt; A two-state machine walking over cells it&lt;br&gt;
has to cover with rules &lt;em&gt;cannot&lt;/em&gt; stop by stalling — I kept designing levels that&lt;br&gt;
were provably unsolvable runaway loops. The fixes became the curriculum itself:&lt;br&gt;
paint &lt;em&gt;toward&lt;/em&gt; the light so you stall on it, leave a slot empty as a stop sign,&lt;br&gt;
spend a state to remember you're done, HALT explicitly, use parity to detect "two&lt;br&gt;
lights in a row," and finally let the &lt;strong&gt;budget itself be the clock&lt;/strong&gt;. The JUN 21&lt;br&gt;
finale is the thesis stated as a mechanic: the world is handed to you backwards —&lt;br&gt;
light huddled around midnight — and the intended machine is two rules (&lt;em&gt;light&lt;br&gt;
becomes dark, dark becomes light, always turn toward evening&lt;/em&gt;) with a budget of&lt;br&gt;
&lt;em&gt;exactly 24 steps&lt;/em&gt;. The head sweeps once around the whole day like the sun&lt;br&gt;
completing its circuit, every hour blooming as it passes, and the run ends&lt;br&gt;
precisely as the day comes right. &lt;em&gt;Run proudly as yourself.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A few decisions I'm happy with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The sky is the system.&lt;/strong&gt; The page background is four designed gradients
crossfaded by the tape's light ratio — every write nudges the sky, so solving a
level literally feels like sunrise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DOM, not canvas.&lt;/strong&gt; 24 cells + ticks + head is trivial for the DOM, the glow is
plain CSS, and every cell carries a real ARIA label.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shape coding everywhere.&lt;/strong&gt; Light cells get a sun tick, dark cells a crescent;
states are A/B chips, never color alone — colorblind players play the same game.
Honors &lt;code&gt;prefers-reduced-motion&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sound from nothing.&lt;/strong&gt; Every sound is synthesized live with WebAudio — a tick
per step, a bloom for lighting a cell, a morph gliss for sun↔moon, a chord swell
under the victory bloom. No audio files, lazy-initialized so there are no
autoplay warnings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design as law.&lt;/strong&gt; The visual system came from a full design pass (tokens, nine
mockups, motion spec, copy deck) — Solstice Night indigo, Gnomon Brass,
Moonsilver; Marcellus for engraving, IBM Plex Mono for the cipher voice. All 34
design tokens are lifted verbatim and checked by a script.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Ode to Alan Turing.&lt;/strong&gt; The machine you program &lt;em&gt;is&lt;/em&gt; his machine. One level&lt;br&gt;
is his wartime codebreaking — the target ring is shown &lt;em&gt;as intercepted&lt;/em&gt;, inverted&lt;br&gt;
and shifted, and you decode it. The hidden message is a dedication to him, the&lt;br&gt;
finale is a world that has light and dark backwards being set right by running&lt;br&gt;
truthfully, and the reward is the rainbow. The whole game is built so that&lt;br&gt;
&lt;em&gt;finishing it&lt;/em&gt; is the ode.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built solo for the DEV June Solstice Game Jam. One HTML file · no engine · for Alan.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gamechallenge</category>
      <category>gamedev</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Built an Agent That Actually Reviews Your Pull Requests</title>
      <dc:creator>Aditya Rasal</dc:creator>
      <pubDate>Sat, 16 May 2026 16:39:00 +0000</pubDate>
      <link>https://dev.to/aditya_rasal/i-built-an-agent-that-actually-reviews-your-pull-requests-56ld</link>
      <guid>https://dev.to/aditya_rasal/i-built-an-agent-that-actually-reviews-your-pull-requests-56ld</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hermes-agent-2026-05-15"&gt;Hermes Agent Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with AI Code Review
&lt;/h2&gt;

&lt;p&gt;Every AI coding tool on the market can summarize a diff. "This PR adds 5 files and modifies authentication." Great — but that's not a review. That's a description.&lt;/p&gt;

&lt;p&gt;A real code review requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reading the actual files&lt;/strong&gt; to understand context, not just the diff&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tracing dependencies&lt;/strong&gt; to see who consumes changed code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Running tests&lt;/strong&gt; to verify nothing broke&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Searching for patterns&lt;/strong&gt; that might be affected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thinking in phases&lt;/strong&gt;, not blasting out generic comments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words: a real review requires &lt;strong&gt;agency&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Hermes PR Investigator&lt;/strong&gt; is a custom skill for &lt;a href="https://hermes-agent.nousresearch.com/" rel="noopener noreferrer"&gt;Hermes Agent&lt;/a&gt; that turns the agent into an autonomous PR reviewer. It doesn't summarize diffs — it &lt;em&gt;investigates&lt;/em&gt; them through a 5-phase agentic workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  The 5-Phase Investigation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Discovery &amp;amp; Planning
        ↓
Deep File Analysis
        ↓
Validation (tests, lint, type-check)
        ↓
Cross-Reference (patterns, docs, security)
        ↓
Structured Report Generation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How It's Different
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Static Diff Summarizer&lt;/th&gt;
&lt;th&gt;Hermes PR Investigator&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reads patch once&lt;/td&gt;
&lt;td&gt;Reads full files and traces dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generic comments&lt;/td&gt;
&lt;td&gt;Risk-scored, severity-rated findings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No validation&lt;/td&gt;
&lt;td&gt;Runs tests, lint, type checks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Surface-level&lt;/td&gt;
&lt;td&gt;Cross-references codebase for affected patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Static output&lt;/td&gt;
&lt;td&gt;Agent adapts investigation based on findings&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Demo: Real-World Test on Hermes Agent Itself
&lt;/h2&gt;

&lt;p&gt;I didn't just build this — I tested it on a real merged PR from the &lt;a href="https://github.com/NousResearch/hermes-agent" rel="noopener noreferrer"&gt;NousResearch/hermes-agent&lt;/a&gt; repository:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PR&lt;/strong&gt;: &lt;a href="https://github.com/NousResearch/hermes-agent/pull/26957" rel="noopener noreferrer"&gt;#26957 — fix(acp): replay session history before responding to session/load&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What Hermes Did (Autonomously)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes chat &lt;span class="nt"&gt;--toolsets&lt;/span&gt; &lt;span class="s2"&gt;"skills,terminal,file,web"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="s2"&gt;"Investigate PR https://github.com/NousResearch/hermes-agent/pull/26957"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Phase 1 — Discovery&lt;/strong&gt;: Fetched PR metadata via &lt;code&gt;gh pr view&lt;/code&gt;, pulled diff via &lt;code&gt;gh pr diff&lt;/code&gt;, checked CI status (&lt;code&gt;gh pr checks&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2 — Analysis&lt;/strong&gt;: Read &lt;code&gt;acp_adapter/server.py&lt;/code&gt; and &lt;code&gt;tests/acp/test_server.py&lt;/code&gt;. The PR removes &lt;code&gt;_schedule_history_replay&lt;/code&gt; and switches from deferred &lt;code&gt;loop.call_soon&lt;/code&gt; to awaited inline replay.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 3 — Validation&lt;/strong&gt;: Checked failing test logs via &lt;code&gt;gh run view --log-failed&lt;/code&gt;. All 6 failures were pre-existing on main (registry manifest mismatch, PermissionError in CI runner, xAI dotenv issue) — not introduced by this PR.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 4 — Cross-Reference&lt;/strong&gt;: Searched codebase for orphan references to &lt;code&gt;_schedule_history_replay&lt;/code&gt;. &lt;strong&gt;Zero found&lt;/strong&gt; — clean removal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 5 — Report&lt;/strong&gt;: Generated structured review with verdict.&lt;/p&gt;

&lt;h3&gt;
  
  
  Findings from the Real PR
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Critical&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Warnings&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Suggestion&lt;/strong&gt;: The &lt;code&gt;try/except&lt;/code&gt; blocks in &lt;code&gt;load_session&lt;/code&gt; and &lt;code&gt;resume_session&lt;/code&gt; are near-identical (differ only in log message string). Consider extracting a &lt;code&gt;_replay_session_history_guarded(self, state, operation: str)&lt;/code&gt; helper for DRY.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verdict&lt;/strong&gt;: "This is a clean, well-researched fix. The bug was subtle — &lt;code&gt;loop.call_soon&lt;/code&gt; makes the server look correct in isolated testing but breaks any client that inspects notification counts synchronously after &lt;code&gt;await loadSession()&lt;/code&gt;. The fix aligns Hermes with every other ACP server and the spec's natural reading."&lt;/p&gt;




&lt;h3&gt;
  
  
  Demo: Local Auth Branch
&lt;/h3&gt;

&lt;p&gt;I also tested on a synthetic PR adding JWT auth to a Flask app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hermes chat &lt;span class="nt"&gt;--toolsets&lt;/span&gt; skills &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"Investigate the local branch feature/add-auth"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What it found&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High&lt;/strong&gt;: Hardcoded &lt;code&gt;JWT_SECRET&lt;/code&gt; fallback (&lt;code&gt;"default-secret"&lt;/code&gt;) in auth middleware&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High&lt;/strong&gt;: &lt;code&gt;require_auth&lt;/code&gt; decorator defined but &lt;strong&gt;never applied&lt;/strong&gt; to any route&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medium&lt;/strong&gt;: 5 files changed, 0 test files modified&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medium&lt;/strong&gt;: Register endpoint lacks input validation or duplicate-user checks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See the full demo report in the repo: &lt;code&gt;demo/real-world-report-pr-26957.md&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Repository&lt;/strong&gt;: &lt;a href="https://github.com/Aditya2073/hermes-pr-investigator" rel="noopener noreferrer"&gt;github.com/Aditya2073/hermes-pr-investigator&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Project Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hermes-pr-investigator/
├── skills/devops/pr-investigator/
│   ├── SKILL.md                    # Agent instructions
│   └── scripts/
│       ├── fetch_pr.sh            # GitHub API fetcher
│       ├── analyze_diff.py        # Risk analyzer
│       ├── trace_deps.py          # Dependency tracer
│       ├── run_validation.py      # Test runner
│       └── generate_report.py     # Report generator
├── demo/                          # Demo repo + sample data
├── install.sh                     # One-line installer
└── .github/workflows/             # GitHub Action for auto-review
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  My Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hermes Agent&lt;/strong&gt;: The orchestrator — handles planning, tool use, and multi-step reasoning&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python 3 + stdlib&lt;/strong&gt;: Helper scripts for analysis (no external deps)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bash&lt;/strong&gt;: GitHub API integration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions&lt;/strong&gt;: Auto-runs on every PR&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I Used Hermes Agent
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Agentic Planning
&lt;/h3&gt;

&lt;p&gt;The core of this project is the &lt;code&gt;SKILL.md&lt;/code&gt; file — it's not just documentation, it's &lt;strong&gt;agent instructions&lt;/strong&gt;. Hermes reads it and decides:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Which files to read first (based on risk score)&lt;/li&gt;
&lt;li&gt;When to run validation (after understanding the changes)&lt;/li&gt;
&lt;li&gt;How deep to trace dependencies (only for core files)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hermes uses its built-in &lt;code&gt;todo&lt;/code&gt; tool to track the 5 phases, so if validation fails in Phase 3, it can adapt the investigation plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  Heavy Tool Use
&lt;/h3&gt;

&lt;p&gt;The skill orchestrates 6 tools across 28 toolsets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;terminal&lt;/code&gt;&lt;/strong&gt;: Runs analysis scripts, git commands, test suites&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;read_file&lt;/code&gt;&lt;/strong&gt;: Reads modified files and their dependencies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;web_search&lt;/code&gt;&lt;/strong&gt;: Looks up security advisories for dependencies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;execute_code&lt;/code&gt;&lt;/strong&gt;: Runs Python validation scripts in sandbox&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;todo&lt;/code&gt;&lt;/strong&gt;: Tracks investigation phases&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;skill_manage&lt;/code&gt;&lt;/strong&gt;: Learns from reviews and improves its own approach&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Progressive Disclosure
&lt;/h3&gt;

&lt;p&gt;The skill uses Hermes' progressive disclosure pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Level 0&lt;/strong&gt;: Skill name and description in the system prompt (~3k tokens)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Level 1&lt;/strong&gt;: Full SKILL.md loads only when the user invokes &lt;code&gt;/pr-investigator&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Level 2&lt;/strong&gt;: Individual reference files load on demand&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps token usage efficient — the agent doesn't carry PR review instructions into unrelated conversations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memory &amp;amp; Learning
&lt;/h3&gt;

&lt;p&gt;Because Hermes has persistent memory, the investigator learns over time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It remembers which projects use which test frameworks&lt;/li&gt;
&lt;li&gt;It learns the team's coding conventions from previous reviews&lt;/li&gt;
&lt;li&gt;It improves its risk scoring based on which findings actually mattered&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Approach Wins
&lt;/h2&gt;

&lt;p&gt;Most "AI code review" submissions will be static analyzers or diff summarizers. I proved this is different by running it on a real PR and watching it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Execute&lt;/strong&gt;: It ran &lt;code&gt;gh pr checks&lt;/code&gt;, &lt;code&gt;gh run view --log-failed&lt;/code&gt;, and searched the actual codebase — not just reading the patch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trace&lt;/strong&gt;: It found zero orphan references to &lt;code&gt;_schedule_history_replay&lt;/code&gt;, confirming clean removal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adapt&lt;/strong&gt;: When CI showed failures, it checked if they were pre-existing on main before flagging them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Report&lt;/strong&gt;: Structured severity ratings (Critical/High/Medium/Low) with specific line references&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reason&lt;/strong&gt;: It understood the &lt;em&gt;subtle&lt;/em&gt; bug — &lt;code&gt;loop.call_soon&lt;/code&gt; looking correct in isolation but breaking synchronous client inspection&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The real PR test produced a 500-word technical review with a suggestion the human reviewers missed (DRY refactoring of near-identical try/except blocks).&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install Hermes Agent&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

&lt;span class="c"&gt;# Install the skill&lt;/span&gt;
git clone https://github.com/Aditya2073/hermes-pr-investigator.git
&lt;span class="nb"&gt;cd &lt;/span&gt;hermes-pr-investigator
bash install.sh

&lt;span class="c"&gt;# Set your GitHub token&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'GITHUB_TOKEN=ghp_xxx'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.hermes/.env

&lt;span class="c"&gt;# Investigate a PR&lt;/span&gt;
hermes chat &lt;span class="nt"&gt;--toolsets&lt;/span&gt; skills &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="s2"&gt;"/pr-investigator https://github.com/owner/repo/pull/123"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or set up the GitHub Action to automatically review every PR:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Hermes PR Investigator&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;opened&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;synchronize&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;investigate&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Hermes&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;curl -fsSL ... | bash&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install Skill&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bash install.sh&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Run Investigation&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;hermes chat --toolsets skills -q "/pr-investigator ${{ github.event.pull_request.html_url }}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Focus modes&lt;/strong&gt;: &lt;code&gt;--focus security&lt;/code&gt;, &lt;code&gt;--focus performance&lt;/code&gt;, &lt;code&gt;--focus tests&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom rules&lt;/strong&gt;: Team-specific conventions via &lt;code&gt;.hermes/pr-rules.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batch reviews&lt;/strong&gt;: Run across all open PRs nightly via Hermes cron&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IDE integration&lt;/strong&gt;: ACP adapter for in-editor review requests&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Thanks for reading! If you found this interesting, give it a ❤️ and let me know what you'd want an agentic PR reviewer to catch.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>hermesagentchallenge</category>
      <category>devchallenge</category>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>We didn't ask if we should. We asked how deep the tabs could go</title>
      <dc:creator>Aditya Rasal</dc:creator>
      <pubDate>Fri, 10 Apr 2026 18:50:02 +0000</pubDate>
      <link>https://dev.to/aditya_rasal/we-didnt-ask-if-we-should-we-asked-how-deep-the-tabs-could-go-4404</link>
      <guid>https://dev.to/aditya_rasal/we-didnt-ask-if-we-should-we-asked-how-deep-the-tabs-could-go-4404</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Tab hoarding isn’t a problem—it’s a &lt;em&gt;LIFESTYLE&lt;/em&gt;. Instead of trying to fix tab addiction with productivity tools, I built &lt;strong&gt;Nesting Instinct&lt;/strong&gt;, an extension that leans entirely into the chaos, glorifies it, and weaponizes it.&lt;/p&gt;

&lt;p&gt;Nesting Instinct is a maliciously compliant Chrome/Edge extension that organizes your tabs by aggressively nesting them into literal infinity. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of Doom:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🪆 &lt;strong&gt;"Finally Get Organized" Button&lt;/strong&gt;: The nuclear option. Instantly ungroups all your tabs, decides they belong in 8 to 15 sequentially nested absurd folder structures (e.g., &lt;code&gt;SCHRODINGER'S TABS&lt;/code&gt;, &lt;code&gt;WHY IS THIS OPEN&lt;/code&gt;), and scatters them randomly.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Tab Sentience Simulator™&lt;/strong&gt;: A background worker that randomly changes the document titles of your oldest, forgotten tabs to things like &lt;code&gt;(Existential Crisis)&lt;/code&gt; or &lt;code&gt;(Why Am I Still Open?)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;Auto-Nest Keywords&lt;/strong&gt;: Groups tabs into aggressively specific real Chrome Tab Groups based on what you’re looking at, like "3AM Research" or "Shopping Addiction".&lt;/li&gt;
&lt;li&gt;📭 &lt;strong&gt;Nuclear Tab Group Controls&lt;/strong&gt;: Hit “Shuffle Groups” to scramble your tab groupings blindly, or “Collapse All” to literally hide the evidence of your sins.&lt;/li&gt;
&lt;li&gt;💀 &lt;strong&gt;Beautiful Discordance&lt;/strong&gt;: Neon chaos palettes, over-encumbered Comic Sans influence, and literal confetti cannons firing every time you hit an organization limit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We didn't ask if we should. We asked how deep.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;(Since it's a browser extension, the best way to experience the true psychological damage is to download and install it locally from the repo!)&lt;/em&gt;&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Aditya2073" rel="noopener noreferrer"&gt;
        Aditya2073
      &lt;/a&gt; / &lt;a href="https://github.com/Aditya2073/nesting-instinct" rel="noopener noreferrer"&gt;
        nesting-instinct
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Tab hoarding isn't a problem — it's a LIFESTYLE. Infinite nesting. Zero productivity. Maximum chaos. (DEV April Fools Challenge)
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🪆 Nesting Instinct&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Tab hoarding isn't a problem — it's a &lt;em&gt;LIFESTYLE&lt;/em&gt;. Infinite nesting. Zero productivity. Maximum chaos.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A Chrome/Edge Manifest V3 browser extension built for the &lt;strong&gt;DEV April Fools Challenge&lt;/strong&gt;. Instead of helping you organize your tabs, &lt;em&gt;Nesting Instinct&lt;/em&gt; weaponizes your tab hoarding addiction, enabling infinitely deep nested folders and completely unnecessary organization layers.&lt;/p&gt;
&lt;p&gt;"We didn't ask if we should. We asked how deep."&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎭 Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tab Sentience Simulator™&lt;/strong&gt;: Your tabs are alive. A background worker periodically renames your oldest, most ignored tabs to things like &lt;code&gt;(Existential Crisis)&lt;/code&gt; or &lt;code&gt;(Why Am I Still Open?)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Nest Keywords 🤖&lt;/strong&gt;: AI-powered™ matching sorts your tabs based on content into agonizing real Chrome Tab Groups like &lt;em&gt;3AM Research&lt;/em&gt;, &lt;em&gt;Shopping Addiction&lt;/em&gt;, and &lt;em&gt;The Unknown Tabs&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finally Get Organized ✨&lt;/strong&gt;: The nuclear option. Instantly ungroups all your tabs, creates 8-15 chaotically named groups (e.g., &lt;em&gt;SCHRODINGER'S TABS&lt;/em&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Aditya2073/nesting-instinct" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;Built purely with &lt;strong&gt;Vanilla Javascript, HTML, and CSS&lt;/strong&gt;, running on &lt;strong&gt;Manifest V3&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;I heavily abused the &lt;code&gt;chrome.tabGroups&lt;/code&gt; API to programmatically group, color-code, expand, and scramble the browser's native tab groupings. To power the &lt;em&gt;Tab Sentience Simulator&lt;/em&gt;, I used the &lt;code&gt;chrome.scripting&lt;/code&gt; API alongside a background &lt;code&gt;chrome.alarms&lt;/code&gt; setup to silently inject Javascript into active DOMs and literally rewrite the &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; tag of forgotten tabs, gaslighting the user. &lt;/p&gt;

&lt;p&gt;The sidebar (where all the buttons of doom live) is hosted inside a Manifest V3 &lt;code&gt;chrome.sidePanel&lt;/code&gt;, bypassing the normal pop-up layout so it can sit permanently on your screen and judge your tab counts. &lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Community Favorite&lt;/strong&gt; — Because deep down, everyone is secretly hoarding 69 tabs, and everyone deserves a dedicated button that shuffles them into "THE VOID 🕳️" while firing off a confetti cannon.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
