Why I built it
If AI makes you tired, you're not behind.You're doing it the hard way.
I worked on a complex feature for my own product with AI agents. The agents wrote it in 3 days. Then I spent 2 days reviewing everything they wrote, and 2 more days, including the whole weekend, fixing it. 7 days. It should have taken 4 at most.
So I built a system. On a production project in the financial domain, I built a complex queue system with AI agents in 3 weeks, and it didn't drain me. By hand, a team of 3 developers would need about 4 months. With agents but without my system, about 5 weeks.
Today my redo rate is about 10%, down from 40%. AI Pro is that system: the skills, the templates and what I learn every month.
- Before
- The agent changes 100+ files, and you read every line of code you've never seen.
- With AI Pro
- You know which files to review closely, which to glance at, and which to skip.
- Before
- You don't trust the agent with tests and UI checks, so you do them yourself.
- With AI Pro
- The agent writes the tests, checks the UI in the browser, and reviews its own work before you see it.
- Before
- 8 intense hours, and you end the day drained.
- With AI Pro
- 6 steady hours, the same output, and energy left in the evening.
It compiles. The tests pass. And it's wrong.
Tests check what you thought of. AI bugs hide in what nobody thought of. Here are 3 I find again and again in AI-written .NET code. The review skills check for them before the code reaches you.
1. The endpoint returns someone else's data
The check: Every query by id also filters by the current user, or checks a permission, before it returns anything.
var order = await db.Orders.FindAsync(id);
return Results.Ok(order);2. The query loads every column
The check: Select only the columns you need, into a DTO. Fine with 50 test rows, not with 2 million.
var active = db.Users.Where(u => u.IsActive).ToList();3. The raw SQL takes user input
The check: FromSql or FromSqlInterpolated turn values into parameters. Never FromSqlRaw with user input.
db.Products.FromSqlRaw($"SELECT * FROM Products WHERE Name = '{name}'");
