SaaS Architecture Patterns & Multi-Tenancy

.cursor/skills/saas-patterns

Workspace scoping, subscription gates, seat management, and audit trails.

Where it installs

# .claude/skills/saas-patterns/SKILL.md
---
name: saas-patterns
description: ...
---
# identical content, skills are the same file in both editors

What it does

SaaS Architecture Patterns & Multi-Tenancy is a Cursor skill: a SKILL.md playbook that AgenticKit installs at .cursor/skills/saas-patterns. Cursor's agent loads it when the task matches the skill description, instead of stuffing the same rules into every chat.

Core architectural blueprints for B2B SaaS applications, including organization workspaces, role permissions, tier feature gating, and billing sync.

Workspace scoping, subscription gates, seat management, and audit trails. The file is domain knowledge, not a slash macro. You do not type it. The agent reads it when the job is saas patterns.

Why it exists

Default Cursor has no memory of how your team ships code, schema, and tests. Founders paste the same conventions into chat, then watch the model drift on the next turn. This skill exists so those conventions live on disk and load only when relevant.

It ships in the Engineering Kit. It is wired to the Technical Lead & System Architect (tech-lead) and Senior Backend Architect (backend-architect) agents. It is wired to /ship: End-to-End Feature Pipeline Shipper, /auth-system: Authentication & Role-Based Access System, and /stripe-billing: Stripe Billing & Subscription Setup. That graph is the point: the skill is the standard, the agent is the role, the command is the trigger.

When to use it

  • Use SaaS Architecture Patterns & Multi-Tenancy when the work is specifically about workspace scoping, subscription gates, seat management, and audit trails.
  • Load it before a long session that will touch this surface more than once. A one-line edit does not need the full playbook.
  • Use it on production SaaS work (multi-tenant apps, paid features, anything that will be reviewed) rather than a throwaway prototype.

When not to use it

  • Do not treat the skill as a replacement for a slash command. Skills teach. Commands run a pipeline.
  • Do not paste the whole SKILL.md into chat. If Cursor is not loading it, fix the description or invoke the matching command.
  • Do not use it as a generic 'write better code' rule. Scope is this domain only.

Example workflow

  1. Install the Engineering Kit so .cursor/skills/saas-patterns lands in the repo.
  2. Open a new Cursor agent chat pointed at the files this skill governs.
  3. Ask the Technical Lead & System Architect (tech-lead) to read the skill, or run /ship: End-to-End Feature Pipeline Shipper.
  4. Review the first artifact against the practices below. If it violates one, stop and correct the file. Do not prompt 'just finish it'.
  5. Commit the skill-guided files with the rest of the slice so the next session inherits the same standard.

Example usage

Example prompt: "Read .cursor/skills/saas-patterns and apply it to this change. Do not invent extra conventions."

Or trigger the pipeline: /ship: End-to-End Feature Pipeline Shipper. That command is written to load this skill.

Check the output against: Scope every data model to an organization_id / workspace_id foreign key

Example output

  • The skill itself does not write a single output file. It changes what the agent is allowed to produce in code, schema, and tests.
  • When you run /ship: End-to-End Feature Pipeline Shipper, expect repo files plus notes under docs/, not a chat-only answer.

Best practices

  • Scope every data model to an organization_id / workspace_id foreign key
  • Implement declarative feature gates based on active subscription tier limits
  • Support team member invitations, roles (owner, admin, member), and seat counts
  • Maintain a unified CURSOR.md project truth file documenting the entire stack

Common mistakes

  • Ignoring "Scope every data model to an organization_id / workspace_id foreign key" and hoping a later prompt will clean it up.
  • Copying the skill into .cursor/rules as always-on. That burns context and fights Cursor's load-on-match design.
  • Running two overlapping skills that contradict each other in the same turn.
  • Letting the agent skip tests or types because 'the skill is about architecture'.

Frequently asked questions

  • What is the SaaS Architecture Patterns & Multi-Tenancy Cursor skill?
    Core architectural blueprints for B2B SaaS applications, including organization workspaces, role permissions, tier feature gating, and billing sync. It lives at .cursor/skills/saas-patterns after you install the Engineering Kit.
  • When should I use saas-patterns instead of a Cursor rule?
    Use a rule for always-on or glob-scoped constraints. Use this skill for the full playbook that should load only when the task matches.
  • Which agents read saas-patterns?
    Technical Lead & System Architect (tech-lead); Senior Backend Architect (backend-architect). Those roles are told to open this file before they edit.
  • Which commands use saas-patterns?
    /ship: End-to-End Feature Pipeline Shipper; /auth-system: Authentication & Role-Based Access System; /stripe-billing: Stripe Billing & Subscription Setup.
  • Does this skill work outside AgenticKit?
    Yes. A SKILL.md in .cursor/skills/saas-patterns is a normal Cursor skill. AgenticKit is the packaged version plus the agent and command graph.

Add saas-patterns and the other 48 Cursor skills

AgenticKit installs 61 skills, 46 agents, and 47 slash commands into .cursor/. One license, lifetime updates.