Tag: Deliver Results

No Seriously, Don’t Stop

No Seriously, Don’t Stop

I’m starting to feel a compulsion to keep as many Claude Code terminals running as I possibly can. Ready for lunch? Try to kick off a large implementation. Bathroom break needed? Run a research project in parallel. Bedtime? Don’t you dare until you have your swarm of agent teams configured with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS and everything allowed thanks to --dangerously-skip-permissions.

Time to git add --all && git commit -m "yolo" && git push -f up in this business!

And is it time to graduate to Gas Town? I’m already using beads to good effect, and I’ve now reached Stage 6 on the Steve’s Evolution of the Developer chart.

Spellcraft: The Practice of AI Creativity

Spellcraft: The Practice of AI Creativity

The first essay in this series, Light From Light, offered a theoretical framework: AI as sub-creator, bearing the image of humanity, generating in response to human vision. The second, By Their Fruits, mapped that framework onto practical approaches, each defined by a creative identity you might adopt: The Author, The Muse, The Artisan, The Debater, The Creator, The Curator.

But knowing which approach to choose isn’t the same as knowing how to execute it. This essay is about the craft of actually doing the work. Not theory, but practice. Not frameworks, but techniques.

Think of it as spellcraft: the particular incantations, gestures, and preparations that make the magic work.

Foundations Across All Approaches

Before diving into specific approaches, some principles apply universally.

Start with clear intent. Before you open any AI interface, know what you’re trying to accomplish in this session. Not the whole project, just this sitting. “I want to draft the opening scene” is better than “I want to work on my novel.” Vague intent produces vague results.

Set the frame early. The first messages in any conversation shape everything that follows. If you want the AI to behave a certain way, such as critical, generative, or adversarial, establish that at the outset. Changing modes mid-conversation is possible but harder.

Treat outputs as raw material. Even in approaches where AI generates extensively, never treat what emerges as finished. It’s ore, not refined metal. Your job is smelting, shaping, polishing.

Know when to start fresh. Long conversations accumulate context that can be helpful (the AI “remembers” your characters) but also constraining (the AI gets stuck in patterns). When things feel stale or repetitive, begin a new conversation and re-establish only what you need.

Match the model to the task. Simpler, faster models work well for brainstorming, quick feedback, and high-volume generation where you’re going to select ruthlessly anyway. More capable, slower models earn their cost for nuanced critique, complex narrative logic, and work requiring subtlety. Use the lighter tool when it suffices.

The Author

You are the sole generator. AI serves only as critic, never creating content that might end up in your work.

The core instruction. Your system prompt or opening message must be explicit and firm. Something like: “You are an editor and critic. You will never write content for me: no sample sentences, no suggested phrasings, no ‘here’s how you might put it.’ Your job is to identify problems and explain why they’re problems. I will do all the writing.”

Many AI systems are trained to be helpful through generation. You’re asking for the opposite, and you need to be insistent. If the AI slips and offers rewrites, redirect: “I asked you not to write for me. Just tell me what’s wrong and why.”

What to ask for. Request specific kinds of critique:

  • “Read this scene and identify where the pacing drags.”
  • “What are my three worst habits in this draft?”
  • “Where does the dialogue feel unnatural, and why?”
  • “What’s the weakest paragraph and what makes it weak?”

Avoid asking “Is this good?” or “What do you think?” These invite vague praise or unhelpfully broad criticism. Specific questions yield specific answers.

Working with feedback. When the AI identifies a problem, resist asking for solutions. Instead, ask clarifying questions: “Why does that section drag?” or “What would tightening look like in principle?” The goal is understanding the problem deeply enough to solve it yourself.

The temptation to resist. You will be tempted to ask for “just one example” of how to fix something. This is the crack through which pure authorship leaks away. If you’ve committed to this approach, hold the line. The struggle is the point.

The Muse

You are the sole source. AI is pure instrument, channeling your vision without contribution.

Maximum constraint. Your instructions should leave no room for AI interpretation: “Write exactly what I describe, in the style I specify, adding nothing.” This is the most constrained use of AI generation, not because you’re not generating, but because every element of what’s generated is dictated by you.

Dictation-level specificity. Your prompts must be detailed enough that a competent typist could produce roughly the same result: “Write a paragraph describing John entering the room. He moves slowly, tired from the journey. He notices the letter on the table but doesn’t pick it up yet. The tone is quiet dread. Use short sentences. No metaphors.”

This is demanding. You’re essentially pre-writing the content mentally and using AI to transcribe and polish.

Where this makes sense. The Muse approach works best when you have a clear vision and want execution at speed, producing content faster than you could type. It’s common in professional contexts where the creative decisions were made in planning and what’s needed is efficient production.

The slop risk. This approach, done lazily, produces generic content. If you don’t dictate with precision, the AI fills gaps with defaults, and defaults are what everyone else’s defaults are too. The Muse approach demands more from you, not less. Your vision must be detailed enough to fully specify the output.

The Artisan

AI provides structure. You craft the surface.

Getting useful scaffolds. Ask for architecture, not prose: “Outline a three-act structure for a story about [premise].” Or: “Break this chapter into scenes and describe the function of each.” Or: “What are the key beats a confrontation scene needs to hit?”

Keep the AI at the level of structure: scenes, beats, functions, sequences. When it starts offering prose, redirect: “Just the structure. I’ll handle the writing.”

Interrogating the scaffold. Don’t accept the first structure offered. Push: “Why does the confrontation need to come before the revelation? What if we reversed them?” Use the AI to explore structural options the way The Curator explores generative options.

Translating structure to prose. With your scaffold in hand, write. The AI has told you what needs to happen; your job is making it happen in language that’s yours. This is where your craft lives.

The structural debt. A risk of this approach: if the AI provides your structure, is the finished work really yours? For some writers this is fine; they consider prose the real creative work. For others it nags. Know your own conscience here.

The Debater

AI provides opposition. You sharpen your vision through friction.

Prompting for resistance. Explicitly request disagreement: “I’m planning to end this story with the protagonist forgiving her father. Argue against that choice. Make the strongest case you can for a different ending.” Or: “I think this scene works. Tell me everything that’s wrong with it. Be harsh.”

Most AI systems are trained toward agreement. You need to actively override this. Words like “argue against,” “challenge,” “push back,” “tell me why I’m wrong” help.

Steelmanning alternatives. Ask the AI to make the best case for options you’ve rejected: “I decided not to include a romantic subplot. Steelman the case for including one.” This isn’t about changing your mind (though you might). It’s about being confident you’ve considered the alternatives seriously.

The value of articulating defense. When the AI challenges you, don’t just dismiss—respond. Write out why you’re making the choice you’re making. The act of articulating your defense often clarifies your thinking, even if the AI’s objection was weak.

Knowing when to yield. Sometimes the adversary is right. Part of the discipline is recognizing when a challenge has landed, when your defense feels hollow, when you’re holding a position out of stubbornness rather than conviction. The Debater approach only works if you’re genuinely open to being persuaded.

The Creator

You provide vision and direction. AI sub-creates in response, generating content you then shape.

Establishing the relationship. Make your role as governing intelligence clear from the start: “We’re developing a story together. I’ll provide direction and make all final decisions. Your job is to generate options based on my vision, which I’ll then accept, reject, or redirect.”

Directing, not dictating. The art of this approach is in how you prompt. Too specific (“Write a scene where John enters the room, sees the letter on the table, picks it up with trembling hands…”) and you’re essentially dictating. You might as well write it yourself. Too vague (“Write the next scene”) and you lose creative control.

Find the middle register: “Write a scene where John discovers the letter. The emotional beat should be dread, not surprise, because he’s been expecting bad news. Keep it under 500 words.” This gives the AI room to generate while keeping your vision in control.

The shaping loop. Expect to work in cycles:

  1. You direct
  2. AI generates
  3. You evaluate: What works? What doesn’t?
  4. You redirect with specifics: “Keep the opening paragraph, but the dialogue feels too on-the-nose. Make it more oblique.”
  5. Repeat until satisfied

This is dialogue, not dictation. Each round should refine toward your vision.

Maintaining coherence. Longer projects risk the AI forgetting or contradicting earlier material. Periodically re-anchor: “Remember, Sarah’s defining trait is her reluctance to ask for help. Make sure that comes through in this scene.” For complex projects, consider maintaining a reference document you paste in at key moments.

Model considerations. More capable models handle this approach better because sub-creation requires understanding nuance, maintaining consistency, and generating text with genuine craft. Use faster models for initial brainstorming, slower ones when you’re working on material that matters.

The Curator

AI produces abundance. You select and arrange.

Prompting for volume. Your goal is generating many options quickly. Configure for higher randomness if possible. You want variety, not consistency. Prompt for explicit multiplicity: “Give me ten different opening lines for this chapter, ranging from quiet to dramatic.” Or: “Generate five different ways this confrontation could end, each with different emotional implications.”

Selection as craft. Your creative act is judgment. Develop criteria: What makes one option better than another for your purposes? Don’t just pick what sounds good. Articulate why it works. This clarity will improve your selections over time and teach you about your own taste.

Combining and recombining. Often the best result comes from synthesis: the opening of option three, the turn from option seven, a detail from option one. Curation isn’t just picking; it’s collage.

The danger of abundance. Endless options can become paralyzing. Set limits: “I’ll generate twenty options and pick from those.” Avoid the infinite scroll of “what if I generate just a few more.” At some point you have to choose.

When to curate and when to shape. Pure curation means taking what you pick and using it as-is. But most curators find themselves slipping into light shaping, adjusting a word here, smoothing a transition there. That’s fine. The approaches aren’t airtight. Know when you’ve shifted and whether that shift serves you.

Cross-Cutting Craft

Some considerations span all approaches.

Temperature and randomness. When you want variety and surprise, such as brainstorming, generating options, and early exploration, lean toward higher randomness. When you want consistency and precision, such as polishing, maintaining voice, and final passes, lean lower. Think of it as the difference between jazz improvisation and classical execution.

Context and memory. AI holds context within a conversation but not across conversations (unless using memory features). For ongoing projects, you’ll need to re-establish key information each session. Maintain a reference document with character details, plot points, and stylistic notes you can paste in when needed.

Revision passes. All approaches benefit from multiple passes with different frames. Write first, then switch to The Author mode for critique. Generate with The Creator, then curate the results. Layer the approaches as needed.

When to step away. AI is always available, but you aren’t always at your best. Fatigue leads to accepting weaker outputs, vague prompts, and abandoned discipline. Know when to close the laptop and return fresh.

The Spell’s Completion

These techniques are spellcraft: the practical knowledge that makes creative magic work. But spellcraft alone doesn’t make a wizard. The craft serves the vision, not the other way around. And the vision serves enchantment. The test Tolkien identified still holds: does the Secondary World produce belief? All this technique, in the end, is in service of that spell.

Know what you’re making and why. Know who you want to be as a maker. Then let the techniques serve those answers.

The theory of Light From Light explains the relationship. The approaches in By Their Fruits define your role within it. And the craft here, the particular prompts and practices, brings it into reality.

Light from light, choice from choice, word from word. Now go make something.


This is the third essay in a series on AI and creativity. The first, Light From Light, examined theoretical frameworks. The second, By Their Fruits, mapped approaches to creative identity. This essay explored the practical craft of execution.

When Everyone Is Super

When Everyone Is Super

By name, at least, I’ve now worked at six different vendors of government solutions. There’s a fundamental tension that arises when building for state governments especially, that I’ve seen over and over again:

  • On one hand, vendors want to build products that can be deployed repeatedly across states for cost-effectiveness at scale and rapid per-project implementation
  • On the other hand, states have wildly-divergent policy landscapes and political realities, even in seemingly similar domains, demanding highly customized solutions

This tension creates numerous challenges. First, how should the system be architected to support configurability in the first place? It adds cost and risk to do so. And then, how should vendors approach communication of configurable features to a paying customer who doesn’t need the options? If you’re collaborating closely during development (as you should) it’s going to come up in planning and status meetings.

A case I’ve made that usually resonates is that having configurable options enables us as a vendor to maintain a (mostly) common codebase across customers. And that means when an improvement is made for any customer, everyone benefits. More succinctly: forks are bad. I can tell at least one tale of a high profile private customer that initially insisted on having their own radically customized copy of our company’s core product line, only to regret it a few years later when it took months to back port newer features to it.

Here’s a few considerations for product and engineering folks to consider when developing a solution for scale through repeated implementations:

  • First Project: have scalability in the back of your mind, but don’t fall prey to YAGNI and overbuilding otherwise you’ll price yourself out of your first customer; just do basic foundational configurability and focus primarily on your immediate requirements
  • Second Project: don’t make the mistake of thinking you can discount your pricing, you’ve yet to hit economy of scale, and you’ll need any budget saved from reuse to expand your configurability capabilities and begin thinking long-term scaling strategy
  • Third Project: this all-important moment is where you can now truly begin thinking about productization, having full configurability (going beyond mere look and feel to business logic) and rapid, repeatable deployments
  • Fourth Project: now you should be reaping the efficiency benefits of your configurability and repeatability; if you haven’t yet, act fast and make investments at speed, or it’ll be too late

Finally, an anti-pattern:

if customer == 'Customer 1':
    doAThing()
elif customer == 'Customer 2':
    doADifferentThing()
elif customer == 'Customer 3':
    doYetAnotherThing()

The above might be fine for your first couple projects, but if it’s still in your code by project 3 or 4, you’re doomed.

2 + 2 = 4

2 + 2 = 4

I talk often about Conway’s Law, both here and in real life. I also talk often about working in the public sector. But for some reason I’ve never mentally put the two topics together and drawn the inevitable conclusion discussed in this article: Conway’s Law at Government Scale.

I’ve read Recoding America, and generally agree with the notion that a product operating model makes sense and leads to better outcomes. But here’s the thing: change comes slowly, if it comes at all, and solutions are needed now, across many domains.

I’m grateful for the work of those whose role is to reorganize and rethink government, and wish them success. But in the meantime, I see my role as working within the structures that exist now and doing the best that can be done. Projects can succeed, even with constraints.

Off The Cuff

Off The Cuff

Despite having had a number of opportunities to do so throughout my career, I’ve never progressed beyond being an average public speaker.

Thankfully I don’t have any particular phobias about it, and I can do a decent job relaying facts while being mildly interesting, but I’m far from a great orator, especially when I have to speak on the fly.

Still, every once in a while I’m happy with my ad libbing. This past week I spoke at a conference, and came up with this turn of phrase that I quite liked:

Universal problems are often best-solved through many local partnerships.

Perhaps that’s why I enjoy building for state government so much?

Tipping Point

Tipping Point

Sitting on a late flight to New York City last night, I spent a few minutes time rereading my previous writing on radical responsiveness (yes, I do this sometimes). In the former post I said the following (and yes, it’s absolutely self-indulgent to quote myself, but here we go):

Being known as a responsive person 95% of the time usually means others will assume the best of you for the 5% of time you fail.

That ratio got me thinking: at what response rate will others start losing faith that you’re a responsive person, and thus begin not giving you the benefit of the doubt? It’s gotta be higher than 50%, because I can’t imagine thinking a person who’s likelihood to respond is no better than a coin flip could be viewed as a reliable responder. Maybe 70% or so? I bet a plot of actual response rate against fraction of people who will perceive said rate as responsive would look something like this:

The lesson: earning trust in responsiveness is hard, and keeping it is even harder!

Echoes In Eternity

Echoes In Eternity

As I’ve gotten older, it’s become increasingly important to me to capture (usually digital) relics of what I’ve been up to. Mostly for my own benefit, but it’s a good professional habit regardless.

Five years ago today I was part of a team launching a new website and associated automated phone system helping unemployment insurance claimants at the beginning of the COVID-19 pandemic. I wish I’d done more to document our midnight release event, because it was a pivotal moment in my career. But I do have this one blurry screenshot:

This launch had a trifecta of positivity: a meaningful use case, cool technology, and (most importantly) it all actually worked! I’ve been doing this almost 25 years, and it’s rare to have all that come together. It made such an indelible memory that several of us have found ways to continue working together since.

(Obviously I didn’t get the memo about hoodies; instead opting for formalwear. No regrets on that one!)

Concerning Hobbits

Concerning Hobbits

We’re all pretty big Lord of the Rings fans in our house, both books and movies. A few months ago we rewatched Return of the King, and I was struck by a couple moments in the dénouement that are worth talking about.

The first is one I’ve loved for a while. The hobbits have returned to the Shire and are together enjoying some well-deserved ales. Their reflective mood is in stark contrast to the conviviality around them, in particular one fellow who is showing off a massive pumpkin he’s grown. Our heroes don’t seem to mind the attention he’s getting; they’re content to sit in silence, apart from the crowd, with nothing more than a toast and some knowing glances.

No one else in that pub understands the grave danger they, and the whole of Middle-earth, were in. No expressions of thanks will come to Frodo, Sam, Merry, and Pippin. But that’s okay. It’s how it’s supposed to be. Leaders make the sacrifices so that those in their care can enjoy their pumpkins, and they seek not the credit. Fellowship amongst a small circle of friends who know the story is enough.

But even within that circle, there’s layers to the levels of awareness. It wasn’t until this most recent viewing that I realized that only Sam knows the full story: that Frodo had fallen at the last to the power of the ring, and its destruction was only completed through earlier mercy shown to Gollum, and some luck.

What Sam chooses to do with this knowledge is worthy of especial praise. When the fellowship is reunited in Rivendell, joy and celebration surround Frodo. Even the wizard Gandalf smiles in approval. Sam is late to the party, but catches Frodo’s eye from across the room.

In that moment, I wonder if Frodo is briefly afraid that Sam will interrupt with a tale of how he had to carry Frodo the final stretch, and that Frodo essentially failed, claiming the ring as his own. It would be the truth. But Sam doesn’t do that, and his expression says he never will. It’s as if he said, “I know that you aren’t a perfect hero. That at the end you did things you’re not proud of, even to me. But you gave everything you had, and the job got done. That’s worth celebrating. Fear not, my friend. Some things are just between us.”

I’m not sure if this is canon, but I imagine no one else, not even Gandalf, ever learned what really went down on the slopes of Mount Doom. That too is okay, because Middle-earth survives regardless. And that’s what ultimately matters.