Last night I did something I haven’t done in 30 years of writing software: I handed a piece of code the keys to a real decision and walked away.
Not “run this script.” Not “generate this function.” I wrote down a mission, a budget, and a set of rules, gave an AI agent standing authorization to act on them without asking me first, and told it to check in daily. Then I went and did other things.
This week’s special-edition newsletter is a two-parter, because the story only makes sense in order. First, the skill library that makes this repeatable instead of a one-off trick. Second, what happens when you actually point it at a real business problem and let it run.
Part 1: Agent Skills — packaging judgment, not just prompts
Anyone who’s tried to get consistent, good work out of an AI coding agent knows the problem isn’t capability. Modern models can write the code. The problem is context — the fifty small decisions a competent engineer makes without thinking about it, that a fresh agent has no idea it’s supposed to make.
Do you branch before touching main? Do you verify the diff before merging? Do you actually run the tests, or just claim you did? Do you check that main is still clean before you push? A capable model with none of that context will happily skip every one of those steps and tell you it’s done.
So I started building Agent Skills — a public repo of portable, reusable skill packages built on the emerging Agent Skills format, authored with Codex as the primary runtime. Each one is a folder: a SKILL.md describing the workflow, reference docs for acceptance criteria and output templates, and an agent-specific config. Drop the folder into .agents/skills/ in any repo, and the agent picks it up.
What’s in there right now:
inspect-and-finish-pr— review a pull request, resolve the actionable feedback, verify it, leave the merge decision to youbuild-from-product-idea— shape a rough idea into scope with you, then implement the approved plan and open a verified PRdebug-with-evidence— diagnose from logs and repro steps and propose a fix before touching codereview-ui-against-requirements— check a flow against written requirements and report gaps before changing anythingdaily-briefing,deploy-and-verify,prepare-for-interview,find-the-missing-question
That last one is my favorite, and it’s the whole philosophy in one skill: before you build the thing, it forces the agent to find the assumption nobody’s tested. “We want to build a chatbot because five users asked for one” isn’t a spec, it’s a guess wearing a spec’s clothes. A good skill’s job is to catch that before code gets written, not after.
The unlock isn’t that the agent can write code. It’s that I can write down how I want work done exactly once, put it in a skill, and every future task inherits that judgment instead of me re-explaining it in every prompt.
Part 2: Astra Lab — what happens when you actually let go
Here’s where it gets uncomfortable, in a good way.
I started Astra Lab as a real test: not “can an agent write code,” but “can an agent run something.” I wrote an AGENTS.md with a mission — find a real recurring problem, build something useful, pursue revenue — and standing authorization to research, build, test, commit, and push without a new prompt each time. Then I put a fence around it: strictly under $200/month in new spend, no paid services or API billing enabled until there’s a real provider-enforced hard cap, no customer outreach without an explicit go-ahead, and no claiming results that aren’t backed by evidence.
It runs on a schedule — twice a day, 45 minutes a session, one overlap lock, a PAUSE file if I need to kill it — using Codex CLI through my existing subscription. It reads its own status file, decides the next useful task, does it, runs the tests, updates the record, and pushes. I read the diffs. I don’t write them.
In its first day, it shipped Migration Receipt: a browser-only tool that compares a source and destination CSV export from a CRM migration and shows you what’s missing, what’s extra, what changed, and what’s ambiguous — no uploads, no storage, nothing written back to anyone’s CRM. It’s a bet, not a business: the current evidence shows the migration-tooling space already has real competitors, and the agent said so in its own status report instead of dressing it up. It bought the domain ($10.88, receipts included), wired up Cloudflare DNS, deployed to Vercel, added a real 404 page, a sitemap, mobile checks, and a Startups and Code attribution footer — because I told it that credit was non-negotiable, and it never dropped it once.
It’s not public yet. I’ve got a Product Hunt launch scheduled for Tuesday, September 15th, and you can already poke at it early: astralab.work.
The honest part, the part I want you to sit with: the most valuable thing the agent did wasn’t the code. It was refusing to fake progress. Its own status file says, in plain language, that the demand for this specific tool is unvalidated and it might get killed after more discovery. I didn’t write that sentence. It did, because I told it evidence beats optimism, and it took me at my word.
What you can actually do with this
You don’t need my exact setup to get the point:
Write down the judgment, not just the task. Next time you catch yourself re-explaining “and don’t forget to run tests” to an agent, that’s a skill waiting to be extracted. Package it once.
Give it a fence before you give it freedom. A budget, a kill switch, and a rule against claiming unverified results will do more for your trust in autonomous work than any amount of prompt engineering.
Make it report honestly, on purpose. Tell your agent explicitly that “no evidence yet” is an acceptable answer. Most of the bad autonomous-agent stories I hear are really stories about nobody giving the agent permission to say “I don’t know.”
I’ll keep you posted on whether Migration Receipt finds a real buyer or gets retired. Either outcome is useful. That’s the point of running it as a lab instead of pitching it as a launch.
I’m planning to have a new tool every week (based on budget of course). But let’s see how far it goes without me.
Go build something amazing. Or better — go build something that’s allowed to tell you when it isn’t working.
John Mann is the founder of Startups and Code LLC, a software engineering executive, and the guy who built Cash Critters for $50/month because constraints are a feature, not a bug. Subscribe for weekly takes on AI, startups, and building things that matter.



