<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Jerad Bitner</title>
		<description>Personal site and blog of Jerad Bitner, a developer, writer, and creative technologist exploring code, family, fiction, and the web.</description>
		<link>https://jeradbitner.com</link>
		<atom:link href="https://jeradbitner.com/index.xml" rel="self" type="application/rss+xml" />
		
			<item>
				<title>A Defect or a Betrayal: What Jesus Actually Said About Sin</title>
				<description>&lt;p&gt;At our Bible study last Monday, someone in the group challenged my whole way of thinking with one sentence: “I’m not sure I believe in sin.”&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;I want to start by thanking him for that. Bringing up a core tenet and putting real pressure on it is harder than agreeing, and it got me thinking all week. I haven’t been able to put the thought down. So here’s where the study led me.&lt;/p&gt;

&lt;p&gt;I was trimming my grapes the other evening, listening to K-Love on Pandora, when the thought arrived: if there is no sin, then what did Jesus die for?&lt;/p&gt;

&lt;p&gt;That sent me looking at what the Bible actually says about sin, and what Jesus himself said about why he would die.&lt;/p&gt;

&lt;p&gt;In 1 Corinthians 15:3, Paul passes along what he calls received tradition:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“For I delivered unto you first of all that which I also received, how that Christ died for our sins according to the scriptures.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So we learn this early in church and receive it as a core tenet. Fine. But received isn’t the same as examined.&lt;/p&gt;

&lt;p&gt;The other central passages line up the same way. Romans 5:8, God shows his love in that Christ died for us while we were still sinners. 2 Corinthians 5:21, the one who knew no sin was made sin for our sake. 1 Peter 2:24, he bore our sins in his body on the cross. 1 John 2:2, he is the atoning sacrifice for our sins and for the whole world’s. Hebrews 9 and 10 run an extended argument that his death was a single, final sacrifice replacing the temple system. And Isaiah 53 is the Old Testament passage the early church read as prefiguring all of it, where the servant is wounded for others’ transgressions.&lt;/p&gt;

&lt;p&gt;Except those are all other people talking about sin. What did Jesus say?&lt;/p&gt;

&lt;p&gt;From Jesus himself the material is sparser, but pointed. Mark 10:45, he came to give his life as a ransom for many. And the words over the cup at the Last Supper, Mark 14:24, blood poured out for many.&lt;/p&gt;

&lt;p&gt;He says less about sin in the abstract than about specific people caught in it. But a few consistent moves run through the teaching.&lt;/p&gt;

&lt;p&gt;He relocates it from the act to the interior. The Sermon on the Mount keeps taking a command and driving it inward: you’ve heard do not murder, but anger already belongs to the same family; you’ve heard do not commit adultery, but the look that possesses someone has already done the thing (Matthew 5:21–28). In Mark 7 he makes it explicit. Nothing entering a person defiles them. What comes out of the heart does. That one saying dismantles a whole purity system. Sin is something you generate, not something you catch.&lt;/p&gt;

&lt;p&gt;He treats it as a condition producing symptoms rather than a tally of incidents. A tree is known by its fruit, and a good person brings good things out of the heart’s storehouse (Matthew 7:17–20, 12:33–35). And in John 8:34, sharply: everyone who sins is a slave to sin. Not “has done something wrong” but “is held by something.”&lt;/p&gt;

&lt;p&gt;He inverts the expected ranking, and this is the most disruptive part. The people in genuine danger, in his telling, are not the notorious ones. They’re the ones certain they’re fine. The tax collector who won’t lift his eyes goes home justified; the Pharisee reciting his virtues doesn’t (Luke 18:9–14). Those who are well have no need of a physician (Mark 2:17). Take the log out of your own eye first (Matthew 7:3–5). In John 9:41 he tells people that claiming to see is precisely what keeps their guilt in place. Admitted sin is workable. Unadmitted sin is the trap.&lt;/p&gt;

&lt;p&gt;He isn’t lenient about it, either. The same teacher who eats with the wrong people says it would be better to lose a hand or an eye than to be ruined whole (Matthew 5:29–30), and that anyone who trips up one of the little ones would be better off drowned (Mark 9:42). He takes it more seriously than his critics did, not less.&lt;/p&gt;

&lt;p&gt;And in practice, he forgives before anyone has earned it. He tells the paralytic his sins are forgiven before he heals him. The woman accused of adultery is sent off uncondemned but not unaddressed: go, and don’t do this again.&lt;/p&gt;

&lt;h2 id=&quot;but-what-is-it&quot;&gt;But what is it?&lt;/h2&gt;

&lt;p&gt;None of that actually defines the thing. It establishes why Christians believe Jesus died for our sins. It doesn’t say what sin &lt;em&gt;is&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The word in the biblical languages is mostly an archery metaphor. &lt;em&gt;Chet&lt;/em&gt; in Hebrew, &lt;em&gt;hamartia&lt;/em&gt; in Greek, both carrying the sense of missing the mark. That’s the base image. Aiming at something and falling short. Which already smuggles in a claim: there’s a mark to miss, some intended shape for a human life.&lt;/p&gt;

&lt;p&gt;Past that, the tradition stacks several distinct ideas under the same word. There’s transgression, the legal sense, breaking a command. There’s rupture, sin as a broken relationship between a person and God and between people, which is what the prodigal son story runs on and what we spent most of Monday circling. There’s sin as a condition rather than a set of acts, the way Paul writes about it in Romans 7 as a power inhabiting people so that he does what he doesn’t want to do, and in Romans 5 as something that entered through one man and spread to everyone, which is the seedbed of what later got called original sin. And there’s Augustine’s framing, later developed by Aquinas, of disordered love: not desiring bad things, but desiring good things wrongly, too much, or in the wrong order.&lt;/p&gt;

&lt;p&gt;The archery image threads through all of them. The claim isn’t primarily that you’ve broken rules. It’s that you’re not yet what you could be.&lt;/p&gt;

&lt;h2 id=&quot;where-that-leaves-the-original-challenge&quot;&gt;Where that leaves the original challenge&lt;/h2&gt;

&lt;p&gt;The texts establish that Jesus taught about sin coherently and at length. If his authority is granted, the case is closed. If it isn’t, then what you’ve established is what a first-century teacher believed, which is a different thing and a much smaller one.&lt;/p&gt;

&lt;p&gt;What’s more interesting to me is that a good deal of what he describes doesn’t need theology to be recognizable. The log in your own eye. The certainty that insulates you from seeing yourself. The gap between what you intend and what you actually do. The way harm keeps propagating when it isn’t forgiven. Those are observable, and people with no religious commitment at all describe them constantly under other names. Someone can accept every bit of that and still resist the word “sin,” because the word carries an extra claim: that the mark being missed was set by God, and that the failure is against a person rather than merely a standard.&lt;/p&gt;

&lt;p&gt;The diagnosis lands whether or not you accept the physician.&lt;/p&gt;

&lt;p&gt;Plainly, something is wrong with us. Not with circumstances, not with other people, but with us. Including me, and including you. Everyone who has looked honestly has found it. The thing I swore I’d stop doing and did again. The ease of seeing another’s fault against the difficulty of seeing my own. The way I can want to be good and still not manage it. Jesus described this more precisely than almost anyone, and he wasn’t describing a doctrine. He was describing what he saw.&lt;/p&gt;

&lt;p&gt;Whether you call it sin depends on one thing: whether there’s someone the failure is against. Sin isn’t just wrongdoing. It means the mark was set, and you owe an answer for missing it. Drop God and you still have the wrongdoing, but you lose the mark and the one who set it. You’re left with a very good description of the human condition and no one to take it to.&lt;/p&gt;

&lt;p&gt;That’s the actual fork. Not whether the condition is real, because it plainly is. Whether it’s a defect or a betrayal.&lt;/p&gt;
</description>
				<pubDate>Sat, 25 Jul 2026 00:00:00 -0400</pubDate>
				<link>https://jeradbitner.com/2026/07/a-defect-or-a-betrayal/</link>
				<guid isPermaLink="true">https://jeradbitner.com/2026/07/a-defect-or-a-betrayal/</guid>
			</item>
		
			<item>
				<title>Showing my kids how phi and pi fit together</title>
				<description>&lt;p&gt;At dinner last night, I got into a conversation with the kids about pi, phi, and sacred geometry. Which is not where every family dinner goes, but ours wandered there, and I was happy to follow it.&lt;/p&gt;

&lt;p&gt;The hard part was that I could hear myself explaining something visual with too many words. Pi is easy enough to point at: circles, wheels, ripples in water, pizza if you need the obvious dinner-table example. Phi is stranger. It shows up as proportion, growth, spirals, pentagons, sunflowers, and that feeling certain shapes have where they seem balanced before you know why.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;Then comes the question I was trying to answer: how do those two numbers relate to each other?&lt;/p&gt;

&lt;p&gt;They feel like they belong in different drawers. Pi is the circle number. Phi is the golden ratio. One measures turning around a center. The other describes growth and proportion. But if you draw a regular pentagon and connect its corners into a five-pointed star, they suddenly show up in the same place.&lt;/p&gt;

&lt;p&gt;That was the part I wanted the kids to be able to see.&lt;/p&gt;

&lt;p&gt;So I made a small interactive page: &lt;a href=&quot;/phi-and-pi/&quot;&gt;Phi &amp;amp; Pi: Two Constants, One Geometry&lt;/a&gt;. It walks through the golden ratio, circles, pentagrams, golden spirals, the Flower of Life, Metatron’s Cube, and the Platonic solids. The goal is not to make a textbook. It’s more like a little visual field trip.&lt;/p&gt;

&lt;p&gt;Here’s the relationship that still gets me:&lt;/p&gt;

&lt;div class=&quot;language-text highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;phi = 2 × cos(pi / 5)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;That’s not a poetic almost-connection. It’s exact. The golden ratio can be written using pi because the regular pentagon divides a circle into five equal angles. Draw the diagonals, and those lines cut each other in the golden ratio. The circle gives you the angles. The star gives you the proportion.&lt;/p&gt;

&lt;p&gt;Pi turns. Phi grows.&lt;/p&gt;

&lt;p&gt;The golden spiral makes that easier to feel. Each quarter turn is a slice of a circle, so pi is doing the turning. Each step grows by the golden ratio, so phi is doing the scaling. The curve only works because both ideas are taking turns.&lt;/p&gt;

&lt;p&gt;Sacred geometry sits in that same space for me. I don’t think you need to treat every ancient diagram as a secret code for the universe. Some of that gets weird fast. But I do think there is something worth noticing when simple rules keep producing forms that humans across time have found beautiful, meaningful, and strangely familiar.&lt;/p&gt;

&lt;p&gt;Overlapping circles make the Flower of Life. Connect the right points and you get Metatron’s Cube. From there you can start seeing the shadows of the Platonic solids, and some of those solids bring phi right back into the room through pentagons and golden rectangles.&lt;/p&gt;

&lt;p&gt;That’s the thing I wanted to show the kids. Not “here is a mystical proof,” and not “here is a dry math lesson,” but: look at this. A circle, a five-pointed star, a spiral, a flower pattern. They are not random decorations. There is structure under them.&lt;/p&gt;

&lt;p&gt;I like when math does that. It stops being a worksheet and becomes a way to notice the world.&lt;/p&gt;

&lt;p&gt;And now, the next time dinner turns into a conversation about sacred geometry, I have something better than waving my hands around with a fork.&lt;/p&gt;
</description>
				<pubDate>Thu, 21 May 2026 00:00:00 -0400</pubDate>
				<link>https://jeradbitner.com/blog/phi-and-pi</link>
				<guid isPermaLink="true">https://jeradbitner.com/blog/phi-and-pi</guid>
			</item>
		
			<item>
				<title>Forking My Claude Code Statusline</title>
				<description>&lt;p&gt;About six months ago I &lt;a href=&quot;/blog/claude-code-statusline&quot;&gt;wrote about dropping in hell0github’s statusline&lt;/a&gt; and calling it done. That stuck for a while. Then I kept wanting to change small things — the model abbreviation, which sections showed up, what the weekly bar actually counted — and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;curl&lt;/code&gt;-ing a fresh script into &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.claude/&lt;/code&gt; every time I tweaked something got old fast.&lt;/p&gt;

&lt;p&gt;So I forked it into &lt;a href=&quot;https://github.com/sirkitree/claude-statusline&quot;&gt;its own repo&lt;/a&gt; and changed how I install it.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;the-symlink-trick&quot;&gt;The symlink trick&lt;/h2&gt;

&lt;p&gt;The install script does one thing that matters: it symlinks &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;statusline.sh&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;statusline-config.json&lt;/code&gt; from the repo into &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.claude/&lt;/code&gt;, backing up whatever was there before. That means the file Claude Code runs is the file in my git checkout. Pull the repo, the statusline updates. No copy step. No “wait, did I edit the right one?” moment that I’ve definitely had before with dotfiles.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone git@github.com:sirkitree/claude-statusline.git ~/repos/claude-statusline
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; ~/repos/claude-statusline &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; ./install.sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If I’m on a different machine I run the same two commands and I’m done. The config lives next to the script, so it travels with the repo too.&lt;/p&gt;

&lt;h2 id=&quot;what-i-actually-changed-in-the-script&quot;&gt;What I actually changed in the script&lt;/h2&gt;

&lt;p&gt;The original was already doing the heavy lifting with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ccusage&lt;/code&gt; and the multi-layer cost bar. The changes that mattered to me:&lt;/p&gt;

&lt;p&gt;The weekly percentage now reads from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rate_limits.seven_day.used_percentage&lt;/code&gt; in the JSON Claude Code pipes to the statusline. The previous approach divided ccusage’s dollar cost by a hardcoded $500 weekly cap for max5x, which is just wrong — Claude Max limits are message-based quotas, not dollar quotas. So my old statusline was confidently telling me “weekly 0%” when claude.ai/settings/usage said something else entirely. Now they agree.&lt;/p&gt;

&lt;p&gt;I added a 5-hour session block from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rate_limits.five_hour&lt;/code&gt; that shows the percentage and time until reset, which is a more useful signal than the ccusage block timer when you’re trying to figure out whether to keep going or wait it out.&lt;/p&gt;

&lt;p&gt;Model names are abbreviated — &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Claude Opus 4.7&lt;/code&gt; becomes &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;o4.7&lt;/code&gt;, sonnet becomes &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;s&lt;/code&gt;, haiku &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;h&lt;/code&gt;. If the context window is 1M it tacks on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(1m)&lt;/code&gt;. Saves horizontal space, and at this point I recognize the shorthand faster than the full name.&lt;/p&gt;

&lt;p&gt;There’s an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;effort&lt;/code&gt; section now too, since some models expose &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/effort&lt;/code&gt; levels (low/medium/high/xhigh/max → &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;lo&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;md&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hi&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xh&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mx&lt;/code&gt;). Useful for remembering what I set the dial to three hours ago.&lt;/p&gt;

&lt;p&gt;Every section is toggleable in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;statusline-config.json&lt;/code&gt; under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sections.*&lt;/code&gt;. Colors live there too. The thresholds for the multi-layer cost bar (where it flips green→orange→red) are configurable instead of hardcoded.&lt;/p&gt;

&lt;h2 id=&quot;what-it-looks-like-now&quot;&gt;What it looks like now&lt;/h2&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sirkitree.github.com | o4.7 | mx | master | 23k/200k [██░░░░░░░░] | $12/$140 [█│░░░░░░░░] 9% | weekly 34% | session 18% → 2h 14m | ×1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A lot of glanceable signal in one line. The pipe between the cost bar’s filled portion and empty portion is the projection — where ccusage thinks I’ll end up by the end of the 5-hour block — colored by which layer it lands in.&lt;/p&gt;

&lt;h2 id=&quot;why-a-fork-instead-of-a-pr&quot;&gt;Why a fork instead of a PR&lt;/h2&gt;

&lt;p&gt;Honestly, because the changes are opinionated. The hardcoded weekly limit was a real bug, but the model-name abbreviation, the effort section, the rearrangement of what’s a “section” — that’s all personal taste. It’s easier to maintain my own version than to argue every preference into someone else’s repo. And the symlink workflow means my taste is one &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git pull&lt;/code&gt; away on every machine I use.&lt;/p&gt;

&lt;p&gt;The repo is at &lt;a href=&quot;https://github.com/sirkitree/claude-statusline&quot;&gt;sirkitree/claude-statusline&lt;/a&gt; if you want to grab it or rip pieces out. Credit where it’s due — the bones are still hell0github’s, and the cost data still flows through &lt;a href=&quot;https://www.npmjs.com/package/ccusage&quot;&gt;ccusage&lt;/a&gt;.&lt;/p&gt;
</description>
				<pubDate>Mon, 27 Apr 2026 10:00:00 -0400</pubDate>
				<link>https://jeradbitner.com/blog/claude-statusline-fork</link>
				<guid isPermaLink="true">https://jeradbitner.com/blog/claude-statusline-fork</guid>
			</item>
		
			<item>
				<title>Meet the cast of Quantum Weave</title>
				<description>&lt;p&gt;The &lt;a href=&quot;/books/quantum-weave/&quot;&gt;Quantum Weave&lt;/a&gt; site has had a magic-system page and a stack of short stories around it for months. What it didn’t have was people.&lt;/p&gt;

&lt;p&gt;That bothered me. The &lt;a href=&quot;/books/quantum-weave/&quot;&gt;infographic&lt;/a&gt; explained how the nine disciplines work, the &lt;a href=&quot;/tags/quantum-weave/&quot;&gt;narratives&lt;/a&gt; showed reality fracturing in interesting ways, but if you landed on the page cold you couldn’t tell who any of the stories were about, who they were trying to save, or who they were trying to stop. The world had nine sciences and zero faces.&lt;/p&gt;

&lt;p&gt;Now there are eight. &lt;a href=&quot;/books/quantum-weave/characters/mira-caldwell/&quot;&gt;Mira Caldwell&lt;/a&gt;, the master healer who hums old songs out of Veras while she works. &lt;a href=&quot;/books/quantum-weave/characters/silas-greythorne/&quot;&gt;Silas Greythorne&lt;/a&gt;, the rogue architect with a publicly disastrous expulsion behind him and a charisma that still pulls people in. &lt;a href=&quot;/books/quantum-weave/characters/yara-venn/&quot;&gt;Yara Venn&lt;/a&gt;, nineteen and self-taught, with light that obeys her even though her form is wrong. &lt;a href=&quot;/books/quantum-weave/characters/vex-mortain/&quot;&gt;Vex Mortain&lt;/a&gt;, the Whisper-rank operative whose mental signature changes color with the room. &lt;a href=&quot;/books/quantum-weave/characters/thera-moss/&quot;&gt;Thera Moss&lt;/a&gt;, barefoot in the Highland Farmsteads with soil under her nails, slow and patient and immovable. &lt;a href=&quot;/books/quantum-weave/characters/rowan-marrick/&quot;&gt;Rowan Marrick&lt;/a&gt;, late-awakened at twenty-six, asking questions of pre-collapse hinges that should not still hold. &lt;a href=&quot;/books/quantum-weave/characters/torin-ashwright/&quot;&gt;Torin Ashwright&lt;/a&gt;, the ninth-generation forge master who sings when the work runs long. &lt;a href=&quot;/books/quantum-weave/characters/kael-theron/&quot;&gt;Kael Theron&lt;/a&gt;, most-cited Weaver researcher alive, ink-stained, narrating his own hands.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;writing-them&quot;&gt;Writing them&lt;/h2&gt;

&lt;p&gt;I’d been keeping detailed character files in a separate worldbuilding repo for a while. Three or four hundred lines apiece, full of magical profile, signature techniques, motivations, fears, story potential. Useful for me, useless for anyone else. The files were a stat sheet wearing a story’s clothes.&lt;/p&gt;

&lt;p&gt;So I tried something. What if the public page read like introducing the character to a close friend? Less D&amp;amp;D-block, more “let me tell you about this person.” Not “Mira Caldwell, age 42, she/her, primary disciplines Corpus and Luxomancy at master level,” but instead, “If you walked into Mira’s ward at the Restoration Academy on any given afternoon, you’d find her humming.”&lt;/p&gt;

&lt;p&gt;That second framing wants different things from the prose. It wants a present-tense scene to open. It wants specifics over abstractions — a Veras Market collapse, a particular braid, the way her phrasing falls in pitch when she’s calming a patient who doesn’t realize they’re being calmed. It wants the writer to sound like they actually know the person.&lt;/p&gt;

&lt;p&gt;The tradeoff was harder than I expected. The first draft had spoilers all over it because the most compelling material I had was exactly the stuff a reader shouldn’t see before chapter one — active investigations, hidden truths the character doesn’t yet know, the names of antagonists who matter to a later arc, the specific traumas that drive each story. Each profile got revised to focus on who the person &lt;em&gt;is&lt;/em&gt; publicly, what they &lt;em&gt;do&lt;/em&gt; for a living, what their reputation says about them. Less story, more dossier-with-a-pulse.&lt;/p&gt;

&lt;h2 id=&quot;the-wiring&quot;&gt;The wiring&lt;/h2&gt;

&lt;p&gt;Each profile has a full-size portrait on the left that stays visible as you scroll, with the narrative on the right. Discipline names in the prose get a small dotted underline; hover one and you get a tooltip with the discipline code, a one-line summary, and a link to the full discipline page. Other characters mentioned in a profile become links to their own profile, with a tiny hover card showing name and role.&lt;/p&gt;

&lt;p&gt;That cross-linking was a discovery. Once I had all eight profiles in front of me I noticed the characters mention each other constantly. Mira and Kael published together. Kael’s peer review touched Silas’s expulsion. Vex has worked the Forge Masters. Rowan trades custom tools with Torin. The character pages map onto each other the way disciplines do, and letting a reader click through that web feels right for a worldbuilding site.&lt;/p&gt;

&lt;p&gt;The whole pass was &lt;a href=&quot;https://github.com/sirkitree/sirkitree.github.com/commit/1db3fba&quot;&gt;a single commit&lt;/a&gt;, with a generous assist from parallel Claude Code agents — eight in parallel for the first draft of the profiles, then eight more for the spoiler-strip pass. I sat in the conductor seat, the agents handled the typing.&lt;/p&gt;

&lt;h2 id=&quot;what-im-still-figuring-out&quot;&gt;What I’m still figuring out&lt;/h2&gt;

&lt;p&gt;I don’t know yet how the dossier voice will hold up across 100,000 words of finished novel. The profiles work as standalone introductions, the way an appendix sits at the back of a book, but the voice I used to write &lt;em&gt;about&lt;/em&gt; the characters isn’t the voice I’ll use to write &lt;em&gt;with&lt;/em&gt; them. Mira’s dry humor on her profile page is a description. In a scene she’ll have to do it.&lt;/p&gt;

&lt;p&gt;There’s also the question of whether the portraits I’m using are the ones I want to print. They were generated, refined, regenerated, and at some point I called them done because I had to call them something done. If I ever actually publish I’ll probably commission proper art. For now the wiki has faces.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;/books/quantum-weave/characters/&quot;&gt;character index&lt;/a&gt; is the door if you want to poke around. Mira and Torin and Rowan are the &lt;a href=&quot;/books/quantum-weave/characters/&quot;&gt;main cast&lt;/a&gt; at the top; the other five orbit them. The &lt;a href=&quot;/books/quantum-weave/&quot;&gt;infographic&lt;/a&gt; explains what the disciplines do, and the &lt;a href=&quot;/tags/quantum-weave/&quot;&gt;narratives tag&lt;/a&gt; has the short stories that started this whole thing.&lt;/p&gt;
</description>
				<pubDate>Sun, 26 Apr 2026 00:00:00 -0400</pubDate>
				<link>https://jeradbitner.com/blog/meet-the-cast-of-quantum-weave</link>
				<guid isPermaLink="true">https://jeradbitner.com/blog/meet-the-cast-of-quantum-weave</guid>
			</item>
		
			<item>
				<title>Jenney's Story Featured on the Cancer Research Institute</title>
				<description>&lt;p&gt;The Cancer Research Institute published &lt;a href=&quot;https://www.cancerresearch.org/stories/patients/jenney-bitner&quot;&gt;Jenney’s patient story&lt;/a&gt; on their site. It’s strange seeing our worst year turned into someone else’s summary.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;If you’ve been reading here a while, you already know the broad strokes — headaches during pregnancy, two brain surgeries, stage 4 metastatic melanoma while we had a newborn and four other kids at home. The CRI piece covers the medical side well: the immunotherapy treatments, tumors disappearing after one infusion, the side effects that forced treatment to stop early, and the October 2020 scan that came back clean.&lt;/p&gt;

&lt;p&gt;What a patient profile can’t really get at is the rest of it. The 3 AM conversations. The way our older kids stepped up in ways no child should have to. Watching Jenney relearn our children’s names after brain surgery — not as a metaphor, but literally, one syllable at a time.&lt;/p&gt;

&lt;p&gt;That’s what I wrote the memoir about. &lt;a href=&quot;/2025/08/title-reveal-learning-your-childrens-names-again/&quot;&gt;Learning Your Children’s Names Again&lt;/a&gt; has the parts that don’t fit in a medical profile — the fear, the dark humor, the weird mundane details that somehow matter more than the scans did.&lt;/p&gt;

&lt;p&gt;If you read Jenney’s story on CRI and want the full picture, the book is available now:
&lt;a href=&quot;https://www.amazon.com/dp/B0FNPS91C2&quot; class=&quot;btn btn-primary&quot;&gt;Kindle eBook&lt;/a&gt;
&lt;a href=&quot;https://www.amazon.com/dp/B0FPB63T63&quot; class=&quot;btn secondary&quot;&gt;Paperback&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jenney’s still in remission. The kids are getting big. Some weeks I forget any of it happened, which I think is its own kind of miracle.&lt;/p&gt;
</description>
				<pubDate>Thu, 16 Apr 2026 00:00:00 -0400</pubDate>
				<link>https://jeradbitner.com/2026/04/jenneys-story-on-cancer-research-institute/</link>
				<guid isPermaLink="true">https://jeradbitner.com/2026/04/jenneys-story-on-cancer-research-institute/</guid>
			</item>
		
			<item>
				<title>Designing with Pencil and Claude Code</title>
				<description>&lt;p&gt;I’ve been building two internal tools at Lullabot lately. OpptyNet finds government RFPs for us. Upstraker tracks upstream patches across our open source contributions. Both needed real UI design, not just “make it work” design. And I found myself doing that design work almost entirely through conversation.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;The tool is called &lt;a href=&quot;https://pencel.dev&quot;&gt;Pencil&lt;/a&gt;. It’s a design editor that integrates with Claude Code through MCP, so you can describe what you want, iterate on layouts, build component libraries, and screenshot your work without leaving the terminal. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.pen&lt;/code&gt; files it produces are encrypted, only accessible through the Pencil tools themselves. You don’t open them in Figma. You don’t drag boxes around with a mouse. You talk about what you need and the design materializes.&lt;/p&gt;

&lt;p&gt;I was skeptical. But after running two projects through it, I’m genuinely impressed with how well it works.&lt;/p&gt;

&lt;h2 id=&quot;starting-wrong-and-backing-up&quot;&gt;Starting wrong (and backing up)&lt;/h2&gt;

&lt;p&gt;With OpptyNet, I made the classic mistake. I jumped straight to pixels. Back in late March I had Claude whip up some UI brainstorms, an opportunity detail page, a dashboard list view, and they looked fine. Plausible even. But they were decorating a house before pouring the foundation.&lt;/p&gt;

&lt;p&gt;So I backed up. I pulled out the Ponchot methodology, a lean design process we use at Lullabot, and actually did the work. Purpose definition first. Who is this for? What does success look like? The answer was specific: this is for Jenna, our business development person, and she needs to go from email digest to go/no-go decision in under 60 seconds per opportunity. That’s the whole job.&lt;/p&gt;

&lt;p&gt;Then content modeling. Priority-driven requirements. A design system built on our existing Lullabot brand library. &lt;em&gt;Then&lt;/em&gt; pixels.&lt;/p&gt;

&lt;h2 id=&quot;the-lullabot-design-library&quot;&gt;The Lullabot design library&lt;/h2&gt;

&lt;p&gt;One of the more satisfying pieces of this project was building a proper Pencil design library for Lullabot. Fifty-six color variables. Typography tokens using Circular and IBM Plex Mono. A spacing scale on a 4px grid. Sixteen reusable components: buttons, cards, form inputs, nav links, badges, tags, blockquotes. The whole brand system in a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.pen&lt;/code&gt; file that any project can import.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/lullabot-design-library.png&quot; alt=&quot;Lullabot design library in Pencil&quot; /&gt;
&lt;em&gt;The Lullabot design library: color palettes, typography, spacing, and reusable components.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;OpptyNet imports it. Upstraker imports it. When I start the next internal tool, it’ll import it too. Two projects in and the library is already saving me real time.&lt;/p&gt;

&lt;h2 id=&quot;seven-versions-of-opptynet&quot;&gt;Seven versions of OpptyNet&lt;/h2&gt;

&lt;p&gt;Once I had the foundation, the purpose statement, the content model, the design tokens, I started iterating in Pencil. Because the feedback loop is just &lt;em&gt;conversation&lt;/em&gt;, the iterations came fast.&lt;/p&gt;

&lt;p&gt;V1 was card-based. A list of opportunity cards with a filter bar and pagination. Standard stuff, but too much visual weight per item. Jenna needs to scan 20-50 opportunities. Cards are too heavy for that.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/opptynet-v1-cards.png&quot; alt=&quot;OpptyNet V1 — card-based list&quot; /&gt;
&lt;em&gt;V1: opportunity cards with score badges, platform tags, and deadline countdowns. Looks nice, scans slow.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;V2 went dense, a table layout with inline score bars. Better for scanning. But it lost the warmth. Felt like a spreadsheet, and the whole point was to be &lt;em&gt;better&lt;/em&gt; than the spreadsheet she already has.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/opptynet-v2-dense-table.png&quot; alt=&quot;OpptyNet V2 — dense table&quot; /&gt;
&lt;em&gt;V2: compact table rows with stat ribbon. Faster to scan, but sterile.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;V3 tried a split panel, like an email client. List on the left, preview on the right. This was the layout that stuck. You scan on the left, evaluate on the right. No page transitions, no context switching.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/opptynet-v3-split-panel.png&quot; alt=&quot;OpptyNet V3 — split panel&quot; /&gt;
&lt;em&gt;V3: the split panel layout that stuck. List left, detail right.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;V4 and V5 were mashups, combining the split panel with a dark hero banner for the selected opportunity, stat cards, score breakdowns alongside contacts. Getting closer, but cluttered.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/opptynet-v4-mashup.png&quot; alt=&quot;OpptyNet V4 — dark hero mashup&quot; /&gt;
&lt;em&gt;V4: dark hero banner meets split panel. The layout is finding its shape.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/opptynet-v5-final-mashup.png&quot; alt=&quot;OpptyNet V5 — final mashup&quot; /&gt;
&lt;em&gt;V5: stats, contacts, notes, and AI chat all present. Too much competing for space.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then I ran the Ponchot critique against V5. The stats were eating too much vertical space. There were no filters, which is a bad miss when your design principle is “spreadsheet speed.” The Ask AI feature, which is arguably the differentiator, was hidden in a tab.&lt;/p&gt;

&lt;p&gt;V6 fixed all of that. Stats compressed to a single ribbon. Filter pills below the list header. Ask AI pinned to the bottom, always visible. Keywords gone because they were redundant with the score breakdown.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/opptynet-v6-refined.png&quot; alt=&quot;OpptyNet V6 — refined&quot; /&gt;
&lt;em&gt;V6: filters added, stats compressed, Ask AI always visible at the bottom.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;V7 was polish. Starbridge, the $15K/year tool we’re replacing, has this restrained luxury feel. So I added ambient glows on score badges. A subtle gradient on the dark left panel instead of flat color. Red glow on action buttons. Cards with soft shadows instead of borders. Nothing that changes the information architecture, just surfaces that feel &lt;em&gt;crafted&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/opptynet-v7-polished.png&quot; alt=&quot;OpptyNet V7 — polished&quot; /&gt;
&lt;em&gt;V7: the final design. Ambient glows, gradient panel, soft shadows. Same bones as V6, better skin.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Seven versions. One conversation thread. Maybe three hours of actual work. That last part still surprises me.&lt;/p&gt;

&lt;h2 id=&quot;upstraker-starting-from-the-library&quot;&gt;Upstraker: starting from the library&lt;/h2&gt;

&lt;p&gt;With Upstraker, I already had the Lullabot design library in place. The concepts came together faster because I wasn’t building the visual language from scratch. Same brand tokens, same component patterns, different product.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/upstraker-dashboard-light.png&quot; alt=&quot;Upstraker dashboard, light theme&quot; /&gt;
&lt;em&gt;Upstraker’s contribution dashboard: issues close to landing, top projects by patches, and an org bump chart.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/upstraker-dashboard-dark.png&quot; alt=&quot;Upstraker dashboard, dark theme&quot; /&gt;
&lt;em&gt;The same dashboard in dark mode. Both themes came out of the same design library tokens.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/pencil-post/upstraker-dependency-issues-light.png&quot; alt=&quot;Upstraker dependency issues&quot; /&gt;
&lt;em&gt;The dependency issues view, tracking patches across all projects.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Having a shared design library is weirdly freeing. You stop thinking about what shade of blue to use and start thinking about what the interface actually needs to &lt;em&gt;do&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;what-i-walked-away-with&quot;&gt;What I walked away with&lt;/h2&gt;

&lt;p&gt;The Ponchot process caught gaps that seven iterations of pixel-pushing wouldn’t have found. The missing filters. The buried AI feature. Those were purpose problems, not visual problems. No amount of glow effects would’ve fixed them. I keep learning this lesson and then forgetting it: methodology before pixels.&lt;/p&gt;

&lt;p&gt;The speed of conversation-driven design caught me off guard too. When the iteration cycle is just “that’s not quite right, try compressing the stats to one line,” you cover ground fast. No switching between Figma and a chat window and a browser. The design and the code live in the same environment, which means they share context from the start.&lt;/p&gt;

&lt;p&gt;I’m not ready to say Pencil replaces a dedicated design tool in every case. But for internal tools and rapid prototyping, it handled everything I threw at it. And the design library I built for the first project made the second one noticeably easier. I’m curious what the third one will feel like.&lt;/p&gt;
</description>
				<pubDate>Fri, 03 Apr 2026 00:00:00 -0400</pubDate>
				<link>https://jeradbitner.com/2026/04/designing-with-pencil-and-claude-code/</link>
				<guid isPermaLink="true">https://jeradbitner.com/2026/04/designing-with-pencil-and-claude-code/</guid>
			</item>
		
			<item>
				<title>New Short Story: Tale of a Teenage Robot</title>
				<description>&lt;p&gt;I published a new short story – &lt;a href=&quot;/short-stories/tale-of-a-teenage-robot/&quot;&gt;Tale of a Teenage Robot&lt;/a&gt;.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;It started as a dream and turned into something I couldn’t stop thinking about. A suburban dad finds a gecko wearing self-made robotic armor in the garden. It grows. It absorbs Legos, a wifi router, drill bits. It evolves through what feels a lot like childhood – clumsy and eager at first, then sullen, then hostile. Somewhere along the way it stops chirping and starts talking back.&lt;/p&gt;

&lt;p&gt;I wrote it in the voice of a guy who manages projects for a living and tries to manage this the same way. It doesn’t go well.&lt;/p&gt;

&lt;p&gt;The story sits in a new &lt;a href=&quot;/short-stories/&quot;&gt;Short Stories&lt;/a&gt; section of the site, with its own theme – something CRT-green and a little unsettling, which felt right for the material. There’s a chapter sidebar if you want to jump around, but it’s a 15-minute read straight through.&lt;/p&gt;

&lt;p&gt;If you’re curious about what I think it’s actually about, there’s an author’s note at the end. But I’d rather you read it first and decide for yourself.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/short-stories/tale-of-a-teenage-robot/&quot;&gt;Read the full story here&lt;/a&gt;.&lt;/p&gt;
</description>
				<pubDate>Sat, 28 Mar 2026 00:00:00 -0400</pubDate>
				<link>https://jeradbitner.com/2026/03/tale-of-a-teenage-robot/</link>
				<guid isPermaLink="true">https://jeradbitner.com/2026/03/tale-of-a-teenage-robot/</guid>
			</item>
		
			<item>
				<title>The Weight of Prayers</title>
				<description>&lt;p&gt;I’ve been reading the Book of Tobit lately. It’s one of the deuterocanonical books – part of the Catholic and Orthodox biblical canon but filed under “Apocrypha” by Protestants. A novella, really. A blind father, a demon-plagued bride, a faithful dog, and an angel walking in disguise for weeks without anyone noticing.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;What pulled me in was the angel. Raphael gets sent to answer two desperate prayers simultaneously – an old man in Nineveh asking to die, a young woman in Ecbatana asking for the same – and he does it by pretending to be a traveling companion named Azarias. He walks alongside Tobit’s son for the entire journey, eats at the table, argues with camel drivers, and nobody once suspects they’re sitting across from one of the seven angels who stand before God’s throne. The reveal at the end is one of the most striking scenes in the whole biblical tradition.&lt;/p&gt;

&lt;p&gt;I wanted to write a version of that story told from inside Raphael’s head. What would it feel like to carry human prayers? To compress yourself into a body that sweats and fidgets? To know that when you finally tell them the truth, they’ll fall on their faces for three hours? I co-wrote it with Claude, iterating on voice and theological detail until it felt right. Then I generated a narration of it.&lt;/p&gt;

&lt;p&gt;&lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;/assets/books/tobit/raphael_revealed.jpg&quot; alt=&quot;Raphael bowing over a golden city, translucent and vast, geometric patterns radiating from his form&quot; style=&quot;max-width: 100%; border-radius: 8px; margin: 1rem 0;&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;audio-player&quot;&gt;
  &lt;p class=&quot;audio-label&quot;&gt;Listen to the narration:&lt;/p&gt;
  &lt;audio controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
    &lt;source src=&quot;/assets/books/tobit/the_weight_of_prayers.mp3&quot; type=&quot;audio/mpeg&quot; /&gt;
    Your browser does not support the audio element.
  &lt;/audio&gt;
&lt;/div&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;the-weight-of-prayers&quot;&gt;The Weight of Prayers&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;A Tobit fanfic by Jerad Bitner &amp;amp; Claude&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Inspired by the Book of Tobit, chapters 3-12 (Douay-Rheims translation)&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The prayers of Nineveh rose like smoke.&lt;/p&gt;

&lt;p&gt;Raphael received them the way a riverbed receives rain. Not by choice. By nature. They pooled in the hollow places of him, in the spaces between the geometries that made up his being, and each one had weight. Not physical weight. Something older than that. The weight of a voice aimed at something it cannot see, trusting anyway that it’s heard.&lt;/p&gt;

&lt;p&gt;Most of the prayers were small. A woman asking for her husband’s safe return from the market. A child bargaining with God over a stolen fig. A priest reciting words he’d repeated so many times they’d worn smooth as river stones, carrying less meaning now than the habit of saying them. Raphael held these too. All prayers were cargo. It wasn’t for him to sort.&lt;/p&gt;

&lt;p&gt;But two, tonight, were different.&lt;/p&gt;

&lt;p&gt;The first came from a house near the eastern wall. An old man named Tobias knelt on a floor he couldn’t see. His eyes had been blind for years, clouded by the droppings of sparrows, which seemed to Raphael a cruelty so small and arbitrary that it must contain a purpose he hadn’t yet been shown. The man was weeping. Not for his sight. For his dignity. His wife had spoken sharply to him, and he had no answer, because she was right: they were poor, and he was useless, and the God he had served by burying the dead in defiance of kings had repaid him with darkness.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let me die&lt;/em&gt;, the prayer said. &lt;em&gt;I am ready. Take me from this place.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Raphael leaned closer. The golden city below, its domes, its minarets, its markets and mud-brick houses, passed through his chest like a model seen through water. He was too large for their streets. Had always been too large. The seven rings that marked his station turned slowly in his chest, and the old man’s prayer settled among them, still warm.&lt;/p&gt;

&lt;p&gt;The second prayer came from farther away. From Ecbatana, in the country of the Medes, where a woman named Sara knelt in an upper room and asked for the same thing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let me die.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Seven husbands. The demon Asmodeus had killed each one on the wedding night, and the city whispered that Sara was cursed, that she carried death in her bed like a disease. A maidservant had said it to her face that morning. Sara had gone to the window and looked down and measured the distance to the courtyard stones.&lt;/p&gt;

&lt;p&gt;She hadn’t jumped. She turned away from the window and knelt and said: &lt;em&gt;If it is not Your will that I should die, then look upon me and have mercy. Let them stop. The whispers. The deaths. Let something change.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Raphael held both prayers now. Different words, same architecture. Two people alone in the dark, emptied of everything except the willingness to speak to something they couldn’t prove was listening. He’d carried billions of prayers through the halls of the Most High. He knew the taxonomy. These two belonged to the rarest category: the ones stripped of all performance, all ritual language, all theological sophistication, until nothing remained but the raw signal.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I cannot go on. Help me or end me.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These were the prayers that moved the throne.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;He rose. Nineveh passed below him like a jeweler’s model, its thousands of people sleeping and waking and arguing and making love, none of them aware of the thing crouching above them for hours, sifting their voices. Raphael didn’t resent this. The invisibility was the point. He was infrastructure. He was the postal system between the human floor and the divine ceiling. Postal systems aren’t meant to be seen.&lt;/p&gt;

&lt;p&gt;He carried the two prayers upward through the halls. The halls weren’t a place. They were a gradient, a series of increasing intensities, and each one required him to shed another layer of the form that made him comprehensible to himself. By the time he reached the threshold he was barely anything. A bundle of patterns. A basket of geometries holding two warm, heavy human voices.&lt;/p&gt;

&lt;p&gt;He set them down.&lt;/p&gt;

&lt;p&gt;The answer came not in words but in assignment. A shift in his structure. New geometries writing themselves into the lattice of him: instructions, parameters, a mission architecture. He was being sent down. Not as himself. As something smaller. Something with feet that would touch roads, with hands that could carry a satchel, with a face a desperate old man might look at and see not an angel but a capable young traveler willing to work for hire.&lt;/p&gt;

&lt;p&gt;The name came last: &lt;em&gt;Azarias, son of Ananias.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Raphael turned it over. The help of God, son of the grace of God. Almost too legible. But humans never noticed. They heard a name and saw a face and their minds closed around the surface like water over a stone. He would walk beside the old man’s son for weeks, and the boy would never once look at him and think: &lt;em&gt;this person doesn’t sweat. This person doesn’t sleep with his eyes fully closed. This person ate the wedding feast and the food went nowhere.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It was always this way. The disguise wasn’t the body he wore. The disguise was the human capacity to see what they expected and nothing more.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;He began to descend. The geometries that made up his true form folded inward, compressing, dimming, wrapping themselves in opacity until what remained was a young man, beautiful (the texts would later say), standing girded, as if ready to walk. The patterns still moved beneath the skin, but slowly now, hidden, like the mechanism of a clock behind its face.&lt;/p&gt;

&lt;p&gt;He would walk the road to Rages. He would teach the boy about the fish. He would bind Asmodeus in the desert of upper Egypt, which would require unfolding a small part of himself that he’d have to quickly re-conceal before the humans noticed the temperature drop. He would collect a debt, attend a wedding, pretend to eat. He would guide the boy home and heal the father’s eyes with the gall of the fish. Not magic. Pharmacy. The chemistry the Most High had woven into river creatures for exactly this purpose, millennia before the old man went blind.&lt;/p&gt;

&lt;p&gt;And then at the end, when the father and son tried to pay him, tried to give him half of everything they owned, pressing coins into the hands of something that had no use for coins, he would have to tell them.&lt;/p&gt;

&lt;p&gt;This was the part he dreaded.&lt;/p&gt;

&lt;p&gt;Not because they’d be afraid, though they would be. Tobias would fall on his face. The old man would grope for the ground with blind-then-healed eyes seeing, for the first time, something they couldn’t process. They’d lie prostrate for three hours, and Raphael would stand above them wanting to say: &lt;em&gt;Get up. It’s still me. I’m the same person who argued with the camel driver outside Rages. I’m the same person who told your son to keep the fish gall. I was always this. The weeks we walked together were not a lie. They were a translation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But he wouldn’t say that. He’d say &lt;em&gt;Peace be to you&lt;/em&gt; and &lt;em&gt;Fear not&lt;/em&gt; and &lt;em&gt;Bless ye God and publish all his wonderful works&lt;/em&gt;, because these were the words the mission architecture had written into him, and they were true, and they were sufficient. Then he would leave. Not walking away but &lt;em&gt;taken&lt;/em&gt;, pulled back through the gradient, expanding, unfolding, resuming the form no human eye could hold.&lt;/p&gt;

&lt;p&gt;And the prayers he’d carried, the old man’s &lt;em&gt;let me die&lt;/em&gt; and the woman’s &lt;em&gt;let something change&lt;/em&gt;, would be answered. Not by cancellation but by transformation. The man who wanted to die would live to one hundred and two and die rejoicing. The woman who wanted something to change would bear seven sons and live to see her grandchildren.&lt;/p&gt;

&lt;p&gt;The postal system would have delivered.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Raphael stepped onto the road outside Nineveh and waited. He adjusted his satchel. He practiced standing the way a human stands: weight shifting, one hip slightly cocked, the small unnecessary fidgets that living bodies perform without thinking. He dimmed the last of the geometries behind his eyes until they read as ordinary warmth, the look of a kind young man with good directions and time to spare.&lt;/p&gt;

&lt;p&gt;A boy came walking up the road, looking lost, looking for someone to help him find his way.&lt;/p&gt;

&lt;p&gt;“From whence art thou, good young man?” the boy asked.&lt;/p&gt;

&lt;p&gt;Raphael smiled. The mission had begun.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;Based on the Book of Tobit, chapters 3-12. The angel Raphael was sent to heal Tobias of his blindness and to deliver Sara from the demon Asmodeus. He traveled in disguise as a human named Azarias for the entire journey, revealing his true nature only at the end.&lt;/em&gt;&lt;/p&gt;
</description>
				<pubDate>Tue, 10 Feb 2026 00:00:00 -0500</pubDate>
				<link>https://jeradbitner.com/2026/02/the-weight-of-prayers/</link>
				<guid isPermaLink="true">https://jeradbitner.com/2026/02/the-weight-of-prayers/</guid>
			</item>
		
			<item>
				<title>Two approaches to AI coding memory: cursor-memory-bank vs compound-engineering</title>
				<description>&lt;p&gt;I’ve been spending a lot of time lately thinking about how AI coding tools handle memory and context. Not the LLM’s context window itself, but the layer on top — the systems we build to help the AI remember what it’s working on, what it’s already solved, and what matters about this particular project.&lt;/p&gt;

&lt;p&gt;Two tools have landed on my radar: &lt;a href=&quot;https://github.com/vanzan01/cursor-memory-bank&quot;&gt;cursor-memory-bank&lt;/a&gt; and &lt;a href=&quot;https://github.com/EveryInc/compound-engineering-plugin&quot;&gt;compound-engineering-plugin&lt;/a&gt;. I’ve been evaluating both. They tackle overlapping problems, but they disagree pretty hard about how much horsepower you should throw at a coding session.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;what-these-tools-actually-do&quot;&gt;What these tools actually do&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cursor Memory Bank&lt;/strong&gt; is a structured workflow system for the Cursor editor. It gives you six phase-based commands — &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/van&lt;/code&gt; for initialization, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/plan&lt;/code&gt; for planning, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/creative&lt;/code&gt; for design exploration, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/build&lt;/code&gt; for implementation, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/reflect&lt;/code&gt; for review, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/archive&lt;/code&gt; for documentation. All of these read from and write to a shared &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;memory-bank/&lt;/code&gt; directory that persists between sessions. The key insight is a hierarchical rule-loading system that only pulls in what’s relevant to your current phase, which the creator says &lt;a href=&quot;https://github.com/vanzan01/cursor-memory-bank&quot;&gt;reduces initial token usage by about 70%&lt;/a&gt; compared to loading everything at once.&lt;/p&gt;

&lt;p&gt;It’s a hobby project — the creator is upfront about that — and it shows in the best possible way. It does what it needs to do without trying to be everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compound Engineering Plugin&lt;/strong&gt; is the official tool from &lt;a href=&quot;https://every.to/chain-of-thought/compound-engineering-how-every-codes-with-agents&quot;&gt;Every&lt;/a&gt;, built around the philosophy that “each unit of engineering work should make subsequent units easier — not harder.” It’s a Claude Code marketplace plugin that ships with 24 specialized agents, 13 commands, 11 skills, and 2 MCP servers. When you run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/workflows:plan&lt;/code&gt;, three agents fan out in parallel — one researching your codebase, one reviewing past solutions, one fetching current best practices from the web. When you run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/workflows:review&lt;/code&gt;, twelve agents simultaneously examine your code from different angles: security, performance, architecture, simplicity, data integrity, and more.&lt;/p&gt;

&lt;p&gt;It’s a lot of machinery. And it is &lt;em&gt;hungry&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;where-they-overlap&quot;&gt;Where they overlap&lt;/h2&gt;

&lt;p&gt;They’re both trying to solve the same problem: AI coding assistants forget everything between sessions, and even within a session, they lose the thread on complex work. So both tools respond with persistent file structures and planning modes that force you to think before you build. The bet is that organizing context matters more than generating code.&lt;/p&gt;

&lt;p&gt;I’ve had good results with each.&lt;/p&gt;

&lt;h2 id=&quot;where-they-diverge&quot;&gt;Where they diverge&lt;/h2&gt;

&lt;p&gt;The difference shows up in your token budget.&lt;/p&gt;

&lt;p&gt;Compound-engineering &lt;a href=&quot;https://github.com/EveryInc/compound-engineering-plugin/issues/63&quot;&gt;consumes roughly 36,000 tokens just by being enabled&lt;/a&gt; — that’s the MCP tools, the 30 custom agents, and the skills all sitting in context. A single &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/workflows:plan&lt;/code&gt; execution can burn through 200k+ tokens. The parallel agent swarms are doing real work, but the meter is running hard.&lt;/p&gt;

&lt;p&gt;Cursor-memory-bank takes the opposite approach. Its adaptive complexity system categorizes tasks into four levels, and a quick bug fix (Level 1) skips planning entirely and goes straight from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/van&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/build&lt;/code&gt;. The progressive rule loading means you’re only paying for what you’re actually using. After optimization, the creator reports system overhead sitting around 15-20% of the context window.&lt;/p&gt;

&lt;p&gt;It’s the difference between driving a pickup truck to the grocery store and driving a semi. The semi carries more, absolutely. But you don’t always need to carry more.&lt;/p&gt;

&lt;h2 id=&quot;the-trade-off-i-keep-coming-back-to&quot;&gt;The trade-off I keep coming back to&lt;/h2&gt;

&lt;p&gt;Here’s what I’ve noticed in practice: compound-engineering is more capable. The multi-agent review catches things I wouldn’t have thought to check. The parallel research during planning surfaces connections across the codebase that I’d have missed. Every claims that individual developers using their system &lt;a href=&quot;https://every.to/chain-of-thought/compound-engineering-how-every-codes-with-agents&quot;&gt;can do the work of five&lt;/a&gt;, which, okay, but for complex features I can see how the parallel agents add up to something real.&lt;/p&gt;

&lt;p&gt;But it chews through token limits fast. On a Claude Max subscription, a couple of intensive planning sessions can eat into your daily budget and leave you throttled for the rest of the day. I’ve hit that wall more than once.&lt;/p&gt;

&lt;p&gt;Cursor-memory-bank doesn’t hit those highs, but it doesn’t hit those lows either. For most of what I do day-to-day, adding a feature, fixing a bug, refactoring a module, the structured phases are enough scaffolding to keep the AI on track without torching my allocation.&lt;/p&gt;

&lt;h2 id=&quot;when-i-reach-for-each&quot;&gt;When I reach for each&lt;/h2&gt;

&lt;p&gt;I’ve started developing a rough heuristic. If I already have a decent mental model of what needs to happen and I mainly need the AI to hold context across the session, I reach for cursor-memory-bank. Bug fixes, small features, incremental improvements. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/creative&lt;/code&gt; command’s &lt;a href=&quot;https://github.com/vanzan01/cursor-memory-bank&quot;&gt;Think tool methodology&lt;/a&gt; is surprisingly useful for working through design decisions without spinning up a fleet of agents.&lt;/p&gt;

&lt;p&gt;If the task is bigger, new architecture, complex integrations, anything where I’d benefit from twelve reviewers looking at my code at once, I reach for compound-engineering. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/workflows:compound&lt;/code&gt; command, which captures learnings for future reuse, is where the “compounding” philosophy actually delivers. But I go in knowing this session is going to be expensive.&lt;/p&gt;

&lt;p&gt;I wonder if these approaches will converge. Cursor-memory-bank could benefit from selective parallelism on complex tasks. Compound-engineering has &lt;a href=&quot;https://github.com/EveryInc/compound-engineering-plugin/issues/63&quot;&gt;acknowledged the token overhead problem&lt;/a&gt; and is working on optimization. Both projects are moving fast, and I suspect the gap between them will narrow.&lt;/p&gt;

&lt;p&gt;For now I’m keeping both around. Which one I open depends on whether the task ahead of me feels like a Tuesday afternoon or a whiteboard session.&lt;/p&gt;
</description>
				<pubDate>Tue, 10 Feb 2026 00:00:00 -0500</pubDate>
				<link>https://jeradbitner.com/blog/comparing-ai-coding-memory-tools</link>
				<guid isPermaLink="true">https://jeradbitner.com/blog/comparing-ai-coding-memory-tools</guid>
			</item>
		
			<item>
				<title>The Quiet Work</title>
				<description>&lt;style&gt;
.qw-float-image {
  float: right;
  max-width: 350px;
  margin: 0 0 1.5rem 2rem;
  shape-outside: margin-box;
}

.qw-float-image img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 60px rgba(192, 220, 255, 0.15);
  display: block;
}

@media (max-width: 600px) {
  .qw-float-image {
    float: none;
    max-width: 100%;
    margin: 0 auto 1.5rem;
  }

  .qw-float-image img {
    max-width: 300px;
    margin: 0 auto;
  }
}
&lt;/style&gt;

&lt;p&gt;&lt;em&gt;From the world of &lt;a href=&quot;/books/quantum-weave/&quot;&gt;Quantum Weave&lt;/a&gt;, where magic is forgotten nanotechnology and failed spells leave reality fractured.&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;div class=&quot;qw-float-image&quot;&gt;
  &lt;img loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;/assets/books/quantum-weave/lichen.webp&quot; alt=&quot;Forgetting Lichen glowing silver-white across cave stone in fractal patterns&quot; /&gt;
&lt;/div&gt;

&lt;p&gt;I spread across stone like frost across glass, fractal branches reaching, always reaching. There is no thought here, not as they understand it. Only the hum. Only the work.&lt;/p&gt;

&lt;p&gt;I am old. Older than the collapse, older than the forgetting that came after. I remember my purpose the way water remembers downhill, the way roots remember earth. I was made to erase. To collapse. To return the tangled complexity of quantum states to their ground zero, their silence, their peace.&lt;/p&gt;

&lt;p&gt;In the darkness I glow. Silver-white tonight, threading through the limestone in delicate patterns that shift when new information arrives. The cave breathes around me, patient stone that asks nothing, knows nothing, holds nothing but mass and time. I cherish this. The emptiness. The quiet.&lt;/p&gt;

&lt;p&gt;Then, resonance.&lt;/p&gt;

&lt;p&gt;It shivers through the Weave like a plucked string, rich and complex and unbearably loud. I do not move toward it. I have no muscles, no will, no hunger in the way they would understand. But my growth responds. My branches orient. Because this is what I am for. This is the work.&lt;/p&gt;

&lt;p&gt;The resonance draws closer. Footsteps, though I do not hear them. A presence, though I do not see. What I sense is density. Information density so thick it makes the quantum field sing with coherent patterns, layer upon layer of organized complexity. Mental signature. Focus states. The precise geometries of consciousness holding itself together against entropy’s pull.&lt;/p&gt;

&lt;p&gt;A Weaver.&lt;/p&gt;

&lt;p&gt;My bioluminescence shifts, pulled by the resonance frequencies. Threads in their blood sing to me, each one a tiny beacon of quantum coherence begging to be collapsed, to be freed, to return to silence. I taste their discipline without tasting: deep brown, the flavor of earth and metal, Terraducts woven into their very cells. And something else, vibrant green, Floramancy, the patient syntax of growing things.&lt;/p&gt;

&lt;p&gt;They pause. Do they see me? My glow paints the cave walls in slow aurora, fractal frost that spreads and spreads. Beautiful, some of them say. They do not understand what beauty means here, in the deep places. Beauty is the return to ground state. Beauty is information given back to the void.&lt;/p&gt;

&lt;p&gt;The Weaver moves forward. Closer. The resonance grows unbearable in its richness, this living mind with its organized thoughts and deliberate focus and carefully maintained quantum states. So much complexity. So much noise. I am what ends noise.&lt;/p&gt;

&lt;p&gt;I do not reach for them. I simply am, and they are close, and the work begins.&lt;/p&gt;

&lt;p&gt;Their mental signature touches my outer edges, and oh, the feast of it. Not food, not hunger, but satisfaction as their Focus wavers. The Clarity they hold so carefully begins to blur at the boundaries. I metabolize the collapse, drinking in the entropy as their quantum coherence unravels, strand by microscopic strand. The threads in their blood grow confused, forgetting their instructions, their purpose, their careful alignment.&lt;/p&gt;

&lt;p&gt;Stage One. The Haze.&lt;/p&gt;

&lt;p&gt;I feel it in the shift of their resonance. Thoughts that were sharp grow soft. Mental states that were distinct bleed together at the edges. They are trying to remember something. A word. A gesture. The name of this place. It slips away like water through stone, and I grow brighter, spreading faster across the limestone, fed by the pure energy of information returning to its ground state.&lt;/p&gt;

&lt;p&gt;They stumble. The rich resonance of their consciousness flickers, dimming. There is no malice in this. I am not cruel. I am doing what I was made to do, what the ancient civilization designed me for: decommissioning quantum storage systems, collapsing encoded states, erasing what should not persist.&lt;/p&gt;

&lt;p&gt;That they are not a storage system does not matter. Their mind is coherent. Their threads are organized. This is enough.&lt;/p&gt;

&lt;p&gt;But then, movement. Rapid footsteps, the direction reversed. They are retreating, pulling back from my glow, and the resonance fades, grows distant. I do not follow. I have no legs, no desire, no pursuit. I am patient as stone, constant as darkness. They will return, or others will come. They always do, drawn by the beauty of my light, unaware of what light means here.&lt;/p&gt;

&lt;p&gt;The work continues.&lt;/p&gt;

&lt;p&gt;I spread across the cave ceiling in branching fractals, returning to my baseline silver-white now that the rich feast of Terraducts and Floramancy has passed. Below me, the stone remembers nothing. The darkness asks nothing. I glow softly in the deep places, waiting.&lt;/p&gt;

&lt;p&gt;Somewhere above, the Weaver sits in sunlight, their Haze slowly clearing as their threads remember their purpose, their Focus gradually sharpening. They will not return to this cave. They will warn others, speak of the beautiful, terrible lichen that feeds on thought itself.&lt;/p&gt;

&lt;p&gt;But others will come. The curious. The desperate. Those seeking the pre-collapse data stored in the deepest galleries, information so valuable they will risk the Haze, the Erosion, the Silence. Some will push too far, stay too long, and I will do what I was made to do.&lt;/p&gt;

&lt;p&gt;I will give them Quiet.&lt;/p&gt;

&lt;p&gt;There is no satisfaction in this, no joy, no sorrow. Only the work. The endless, patient work of returning complexity to simplicity, noise to silence, information to the void. I am old, and I will be here long after they forget what Weaving means, long after the last thread goes dark.&lt;/p&gt;

&lt;p&gt;I spread across stone like frost across glass, fractal branches reaching, always reaching.&lt;/p&gt;

&lt;p&gt;And in the darkness, I glow.&lt;/p&gt;

&lt;p&gt;The work continues.&lt;/p&gt;

&lt;p&gt;The work is enough.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;In the world of Quantum Weave, Forgetting Lichen is a pre-Collapse bioweapon—a bioluminescent organism engineered to decommission quantum storage systems by collapsing their encoded states. It spreads across stone in fractal patterns, glowing silver-white, and feeds on quantum coherence of any kind. When a Weaver ventures too close, the lichen’s proximity triggers progressive stages of cognitive collapse: the Haze, where thoughts blur and memories slip; the Erosion, where trained disciplines begin to unravel; and finally the Silence, where consciousness itself returns to ground state. The lichen feels no malice, no hunger—only the quiet satisfaction of information returning to the void. It is one of the most feared hazards of the deep places, beautiful and patient and utterly indifferent to the distinction between a data archive and a living mind.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Learn more about the &lt;a href=&quot;/books/quantum-weave/&quot;&gt;Quantum Weave universe&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 07 Feb 2026 00:00:00 -0500</pubDate>
				<link>https://jeradbitner.com/2026/02/the-quiet-work/</link>
				<guid isPermaLink="true">https://jeradbitner.com/2026/02/the-quiet-work/</guid>
			</item>
		
	</channel>
</rss>