I Rebuilt My SaaS Workflow Around AI Agents

By Rakshit Yadav (@yadavrakshit60)•Aug 2026•10 min read

The old workflow was not "slow coding." It was hat-switching with no handoff notes. One Cursor chat would try to add a billing webhook, rewrite the pricing headline, and draft a launch tweet. By the end of the day I had three half-finished artifacts and a diff I did not trust.

I rebuilt the workflow around files: agents, skills, commands, rules, and a living CURSOR.md. Same person. New operating system. This is the before and after, including what got slower.

The takeaway

Agents help when the handoff is written down. Otherwise you just generate mess faster.

Rebuild one loop this month (ship or launch), not the company.

Before

A typical Tuesday:

  1. Open Cursor. Continue yesterday's chat because it "already knows the app."
  2. Type "add team invites and also make the landing page clearer."
  3. Accept most of the diff. Skim the rest.
  4. Notice the route has no Zod, the table has no tenant index, and the headline now claims a feature that is not in the database.
  5. Open a new chat: "fix the security issues." The new chat does not know what the old chat assumed.
  6. Switch to a docs file and ask for a Product Hunt blurb in the same tone as the error messages.

There were no skip flags, so every prompt was allowed to touch everything. There was no reviewer who was not also the writer. There was no file that said "we use Drizzle and pnpm." The agent was doing what a competent intern does on day one without a README.

What broke

Forgotten tenant filters. List endpoints that took organizationId from the query string. That is the bug that forced the always-on tenant rule.

Invented libraries. Prisma client in a Drizzle repo. npm test in a pnpm repo. Auth snippets from a different provider than CURSOR.md would have named, if CURSOR.md had existed.

Self-review. "Looks good" from the same context that wrote the code. The security-auditor later became a PASS/FAIL desk for this reason.

Marketing voice drift. Launch copy that sounded like a commit message, or worse, commit messages that sounded like launch copy.

Unbounded chats. After enough turns the agent would refactor a file I had not mentioned. I would keep prompting instead of reverting to a plan. That loop is in the post-mortem.

None of this required a new model. It required a written team.

The rebuild

The rebuild was not "add AI." It was "put the team on disk."

.cursor/
  agents/     # 34 roles, each with invoke / do-not-invoke and required skills
  skills/     # 49 playbooks the roles must read
  commands/   # 35 slash entry points
  rules/      # 10 .mdc files, one always-on
  hooks.json  # sessionStart syncs CURSOR.md
CURSOR.md     # live project truth
AGENTS.md     # portable floor

Engineering commands (/ship, /build-api, /fix, /audit, /release) and marketing commands (/positioning, /landing-page, /launch) do not share a brain unless you install both kits. That is the 34-agent design in one paragraph. Pick a kit on pricing if you only wear one hat this month.

The human job changed. I used to type implementation. I now write the spec, read the diff, and reject work that fails the gate. That is less romantic and more like being a staff engineer with a very fast junior team.

After

Same week of work, two loops.

Ship loop. Fill or refresh CURSOR.md. /feature-spec for anything M or L. /ship for an S/M slice. /fix when something is red. /audit before a release. /release for the changelog.

Launch loop. /positioning once. /define-brand-voice once. /landing-page or /landing-fix when the page exists. /launch when the date is real. Output lands in docs/marketing/, not in src/.

I still write code. Agents are worse than I am at product judgment and about as sloppy as I am when I am tired. The difference is the tired mistakes are now visible as a failed gate instead of a Friday surprise.

What got faster, slower, unchanged

Change
FasterFirst draft of a route, a schema, a settings page, a changelog, a launch thread
FasterRecalling the stack, because CURSOR.md is required reading
SlowerReview. More code per hour means more diffs per hour. If you skip review you are not faster. You are in debt.
SlowerThe first week, while the files get filled in
UnchangedFinding customers. No agent does that.
UnchangedDeciding what not to build

The new bottleneck is the obvious one: you become QA and product. Budget for it. A workflow that produces 3x the TypeScript without 3x the review is how you ship a tenant leak with nicer loading states.

The new job

  • Specifier: complexity, out-of-scope, two assumptions max
  • Reviewer: read the diff like you did not prompt it
  • Rollback person: discard the turn, tighten the plan, new chat
  • Librarian: when the agent repeats a mistake, add a rule or a skill, do not add a speech

If that job sounds worse than writing every line, stay in the editor and use Tab. The agent team is for people who will sit in the review seat.

When not to rebuild

If you do not have a product yet, get a spike working first. A kit on a blank folder is costume.

If you will not fill CURSOR.md, do not install 34 agents. You will get 34 opinions about a stack you never named.

If you are a team with a real tech lead and a real QA, steal the files you need (rules, /ship, security PASS/FAIL). You do not need the mythology.

The architecture write-up is how this operating system is packaged. The shipping workflow is what a Tuesday looks like after the rebuild.

Related Tools & Agents

🛠️ Free Tool: kit-picker🛠️ Free Tool: agent-chain🤖 Agent: tech-lead🤖 Agent: launch-coordinator⚡ Command: /ship⚡ Command: /launchSkill: saas-patterns

Pick the kit that matches this month's hat

Engineering, marketing, or both. Six questions, then an install command.

Open Kit Picker