RT Robert Truesdale

Practical AI Workflow for Turning Ideas into Finished Work

You’ve got an idea. Maybe it’s a script to auto-rotate logs on a legacy server, a new section for your content site, or a dashboard that actually tells you when things break instead of just shouting red everywhere. You want to build it—not just think about it.

But between the spark of an idea and a working thing, most people get stuck in the “idea loop”: drafting, editing, over-engineering, waiting for perfect conditions, or worse—never starting at all.

I’ve been there. I’ve written half-finished Terraform modules, abandoned Jupyter notebooks full of exploratory code, and let good blog post ideas rot in drafts for months.

The key isn’t more discipline or better tools. It’s a workflow that matches how real work gets done: iteratively, messily, with constant feedback from the real world.

Here’s how I actually do it—no guru, no hype.

Start with the Smallest Thing That Counts

Forget “the product.” Start with the smallest testable version of value.

Example: I wanted to automate some of my client’s monthly report generation. Not the full dashboard—just the part where I pull CPU, memory, and disk from a handful of servers, compare against last month, and send a one-page PDF.

Instead of building the whole thing in Python with fancy charts, I did this:

  • Wrote a one-off shell script that called df, free, vmstat, and uptime.
  • Piped output into a Markdown file.
  • Ran it manually once, reviewed the output.
  • Added a single mail command to send the Markdown as body text (no attachment needed—people read email in terminals too).

That took 45 minutes. I got actual data in front of a human. They said, “Why not include network stats?” and “Can we highlight the one server that’s still running Python 2.7?”

That feedback loop is worth more than a week of polished code.

Rule: If it doesn’t produce something you can show, test, or break within 90 minutes, you’re not starting small enough.

Let AI Help, Not Drive

I use AI for the same things I’d use a senior engineer or a good stack overflow thread: filling gaps, catching edge cases, explaining tradeoffs—not writing the whole thing for me.

Here’s my actual prompt pattern (yes, I save these as templates):

> “Here’s a shell script that does X. It runs on CentOS 7 and needs to handle $Y failure modes. Review for robustness and security. Don’t rewrite—just suggest changes.”

> “I’m drafting a blog post about [topic]. My first draft is below. Where am I assuming too much knowledge? Where am I hand-waving? Point out places where a sysadmin would roll their eyes.”

I paste in my code or draft, ask for specific feedback, and treat AI like a junior dev who’s read the docs but hasn’t seen production. It’s not a co-pilot. It’s a very fast, very literal reviewer.

What breaks if you get this wrong?

  • You get “elegant” code that uses 50 lines where 10 suffice.
  • You get blog posts that sound smart but would never help someone debug a real service.
  • You forget the edge cases that only show up at 2 a.m. (more on that next).

Design for Failure—Not Just Success

I’ve built systems that worked perfectly in testing… and failed spectacularly when deployed. Why? I optimized for the happy path.

Here’s what I check before I call something “done”:

  • What happens if the API returns 503? Does my script retry? Timeout? Fail open?
  • What if the file it needs is empty? Or corrupted? Or missing a header?
  • What if the disk fills up mid-run? Does it leave partial artifacts?
  • Who gets notified—and how—when it breaks? (Slack? Email? PagerDuty? Or just a log file nobody checks?)

Example: I wrote a script to sync a config file from S3 to a bunch of servers. First version assumed the file existed and S3 was always reachable.

Second version (after the one time it failed during a region outage) added:

  • A local cache of the last known-good config.
  • A timeout (5 seconds) on the S3 call.
  • A fallback to the cached config only if the S3 call fails and the local file is newer than 24 hours.
  • A Slack alert only if the fallback is used.

That extra 15 minutes of thinking about failure modes saved me a 2 a.m. page.

AI angle: Ask it to generate failure scenarios. “What are 5 ways this script could fail in production? For each, suggest a mitigation.” It’s surprisingly good at listing edge cases you haven’t considered.

Ship the Draft, Not the Masterpiece

I used to wait until a script felt “clean” or a post felt “polished” before releasing it. That’s a trap.

Here’s what I do now:

  • Write the first version fast. Ignore formatting, variable names, comments. Get it to work.
  • Run it against real (or realistic) data. Fix the obvious bugs.
  • Then refactor for readability, add tests, clean up comments.
  • Only then ship.

For content:

  • Draft in 30 minutes flat. No editing. Just get words down.
  • Let it sit overnight.
  • Read it aloud the next day. Delete anything that doesn’t earn its place.
  • Ship.

Yes, the first version will have flaws. But shipped things get feedback. Feedback is data. Data improves the next version.

Failure mode: The “perfect draft” loop. You keep editing the same draft forever because it’s almost right. You’ve added 20% polish but still haven’t shipped. Meanwhile, your competition (or your future self) has already solved the problem with a rougher, but working, thing.

Maintenance Is the Real Work

Here’s what no one tells you: The hardest part isn’t building it. It’s keeping it running when nothing breaks—and when things do break.

I track all my automation in a single ~/projects directory with a README.md in each folder that answers:

  • What does this do? (One sentence.)
  • When was it last run? (Link to cron log or CI run.)
  • What’s the next thing that could break? (e.g., “API rate limit increases in Q3”)
  • Who owns it now? (Me, or someone else?)
  • What’s the kill switch? (e.g., rm /tmp/this_script.lock)

Example: I built a script that auto-generates SSL cert alerts. It ran fine for months—until Let’s Encrypt changed their API response format. No alert. No warning. Just silent failure.

I added a health check to the script that pings a test endpoint and logs the full API response on failure. Then I added a cron job that runs it weekly and emails me the log snippet if anything looks weird—even if it doesn’t “fail.”

Maintenance isn’t glamorous. But it’s how you keep your reputation intact when the world changes under your code.

AI warning: Don’t ask AI to “maintain” your scripts. It can’t. But it can help you write better health checks, better logging, and better failure reports. Ask: “What would a good log message look like for this error?” or “How would you test this edge case?”

What I Would Do First

You’ve got an idea. You want to build it. Not think about it. Build it.

Here’s your 20-minute starter plan:

  • Write the smallest possible thing that produces output.
  • If it’s code: a script that prints something.
  • If it’s content: a single paragraph in a draft.
  • Time limit: 15 minutes.
  • Run it. Against real data if possible.
  • If it crashes: fix the crash.
  • If it works: screenshot it. Send it to one person (or your future self in an email).
  • Ask: “What’s the one thing this should do next?”
  • Add only that one next thing. Not the whole feature. Not the whole post. Just the next logical step.
  • Ship it. Even if it’s ugly. Even if it’s incomplete.

Then, only then, ask AI: > “Here’s what I just built. What’s the next thing that could break? What’s the simplest way to fix it?”

That’s it. No magic. No guru. Just forward motion.

You don’t need more ideas. You need more finished things.

Go build something small. Ship it. Then build the next thing.