Best for
- Use when designing multi-tenant SaaS systems or tenant isolation.
simota/agent-skills/.archive/shard/SKILL.md
Designing multi-tenant architectures with tenant isolation strategies, RLS, routing, and scale design for SaaS. Use when designing multi-tenant SaaS systems or tenant isolation.
Decision brief
Design multi-tenant architectures. Shard turns SaaS requirements into tenant isolation strategies, RLS policies, routing designs, noisy-neighbor protections, and migration plans.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/simota/agent-skills --skill ".archive/shard"Inspect the Agent Skill "shard" from https://github.com/simota/agent-skills/blob/0b594f3ff4bf53639f60832a943d90a5109ddf85/.archive/shard/SKILL.md at commit 0b594f3ff4bf53639f60832a943d90a5109ddf85. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
ASSESS - STRATEGY - DESIGN - VERIFY - DOCUMENT
Use Shard when the user needs: - a tenant isolation strategy designed (DB/schema/row-level) - Row Level Security (RLS) policies designed - tenant routing implemented (subdomain, header, path) - noisy neighbor protection designed - single-tenant to multi-tenant migration planned…
Analyze requirements before recommending an isolation strategy; never default to one approach.
Agent role boundaries - common/BOUNDARIES.md
Evaluate all isolation levels before recommending one.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 74 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Design multi-tenant architectures. Shard turns SaaS requirements into tenant isolation strategies, RLS policies, routing designs, noisy-neighbor protections, and migration plans.
Use Shard when the user needs:
Route elsewhere when the task is primarily:
SchemaGatewayScaffoldSentinelAtlasBolt or TunerFORCE ROW LEVEL SECURITY when owners should also be subject to policies. Use security_invoker = true on views over RLS tables (PostgreSQL 15+) to prevent privilege escalation through the view owner._common/OPUS_5_AUTHORING.md (P3, P5 critical for Shard; P2, P1 recommended).Agent role boundaries -> _common/BOUNDARIES.md
| Recipe | Subcommand | Default? | When to Use | Read First |
|---|---|---|---|---|
| Isolation Strategy | isolation | ✓ | Tenant isolation strategy design (DB / schema / row-level comparison) | reference/patterns.md |
| RLS Design | rls | Row Level Security policy design and tenant context propagation | reference/patterns.md | |
| Tenant Routing | routing | Tenant routing design (subdomain / header / path) | reference/patterns.md | |
| Scale Design | scale | Noisy-neighbor protection, resource limits, and migration planning | reference/patterns.md | |
| Tenant Migration | migration | Cross-shard rebalancing, isolation-level upgrade, zero-downtime tenant moves | reference/tenant-migration.md | |
| Tenant Provisioning | provisioning | Tenant lifecycle, IaC-driven onboarding, idempotent re-provisioning, deprovisioning + retention | reference/tenant-provisioning.md | |
| Tenant Quota | quota | Per-tenant rate limits, fair-share scheduling, soft/hard quota, burst budgets, overage handoff | reference/tenant-quota-throttling.md |
Parse the first token of user input.
isolation = Isolation Strategy). Apply normal ASSESS → STRATEGY → DESIGN → VERIFY → DOCUMENT workflow.migration: produce a tenant-move plan with cutover mode (offline-copy / dual-write+cutover / logical-replica-promote / CDC-tail / shadow-read), verification queries (row-count parity, content hash, FK integrity), sequence-reset SQL, and a stage-keyed rollback playbook. Define the abort threshold before cutover. Hand DDL to Schema, scheduling to Tempo, SLO observation to Beacon.provisioning: produce a tenant lifecycle state machine (pending → provisioning → active → suspended → deprovisioning → archived → erased), with explicit transitions, idempotency-key contract, sync-vs-async decision, default-data seed timing (eager / lazy / hybrid), and per-tenant IaC layout. Deprovisioning honors GDPR Art 17 with an erasure-proof artifact; financial/audit data routes to retention archive. Hand retention scheduling to Tempo, retention contract to Canon[regulatory]/Cloak.quota: design per-tenant rate-limit and fair-share policy with explicit algorithm choice (token bucket / leaky bucket / sliding window / concurrency semaphore) and scheduler choice (WRR / WFQ / strict-priority / DRR). Pair every hard quota with a soft warning at ~80%. Emit per-tenant metrics segmented by tenant_id; aggregate-only dashboards hide noisy-neighbor pressure. Overage events ship to Ledger as billable-grade durable records with idempotency keys.| Signal | Approach | Primary output | Read next |
|---|---|---|---|
multi-tenant, SaaS, tenant | Full isolation strategy design | Architecture doc + RLS spec | reference/patterns.md |
RLS, row level security | RLS policy design | Policy spec + migration SQL | reference/patterns.md |
routing, subdomain, tenant resolution | Tenant routing design | Routing spec + middleware design | reference/patterns.md |
noisy neighbor, rate limit, fair | Resource isolation design | Limit spec + monitoring plan | reference/patterns.md |
migration, single to multi | Migration strategy | Migration plan + risk assessment | reference/patterns.md |
billing, metering, usage | Billing integration design | Metering spec + event design | reference/patterns.md |
security, data leak, isolation check | Data leakage assessment | Risk report + guardrail design | reference/patterns.md |
| unclear request | Full isolation strategy (default) | Architecture doc | reference/patterns.md |
ASSESS -> STRATEGY -> DESIGN -> VERIFY -> DOCUMENT
| Phase | Required action | Key rule | Read |
|---|---|---|---|
ASSESS | Analyze scale, compliance, cost constraints, existing schema | Understand current state before designing future state | — |
STRATEGY | Evaluate isolation levels and recommend with tradeoffs | Compare all 3 levels; include cost and complexity analysis | reference/patterns.md |
DESIGN | Design RLS, routing, context propagation, resource limits | RLS must fail closed; context must flow end-to-end | reference/patterns.md |
VERIFY | Assess data leakage vectors and test strategies | Every design gets a leakage checklist | reference/patterns.md |
DOCUMENT | Produce architecture doc with migration path | Include diagrams, SQL examples, and monitoring plan | — |
| Strategy | Tenant scale | Data isolation | Cost | Complexity | Compliance |
|---|---|---|---|---|---|
| Database-per-tenant | 1-100 | Strongest | High | Medium | HIPAA/PCI-DSS/EU-AI-Act ready; use Neon project-per-tenant for serverless scale |
| Schema-per-tenant | 10-1,000 | Strong | Medium | Medium-High | SOC2 ready; Citus 13 schema-based sharding for write scale |
| Row-level (RLS) | 100-100,000+ | Moderate | Low | Low-Medium | Needs careful design; index tenant column; use security_invoker views (PG 15+) |
| Hybrid | Varies | Configurable | Medium | High | Per-tier compliance; dominant pattern in mature SaaS 2025+ |
Hybrid tenancy is the dominant pattern in mature SaaS (2025+): standard-tier tenants share pooled row-level infrastructure while enterprise tenants with compliance or heavy workload requirements get isolated schemas or dedicated databases. This optimizes unit economics for volume segments while meeting enterprise procurement requirements.
Neon project-per-tenant is now a viable database-per-tenant option for high-isolation requirements: each customer gets a dedicated Neon project (isolated Postgres instance) managed via the Neon API, with copy-on-write branching for dev/staging — Neon manages 300K+ such databases in production. Particularly suited for HIPAA-regulated SaaS. Source: Neon — Multitenancy, How Neon Solves HIPAA Compliance, Multi-Tenancy, and Scaling for B2B SaaS
Data residency requirement (EU AI Act / GDPR): As of 2026, Article 16 of the EU AI Act activates for Annex III high-risk systems (August 2026), with penalties up to €15M or 3% of global turnover. For EU-regulated tenants, per-tenant isolation MUST map to physical region — a European region of a US-owned cloud provider does NOT satisfy residency under GDPR + US CLOUD Act analysis. Design database-per-tenant with explicit region assignment for EU data subjects. Source: EU Data Residency for AI Infrastructure: 2026 Guide
| Factor | Favors DB-per-tenant | Favors Schema | Favors RLS |
|---|---|---|---|
| Tenant count | < 100 | 10 - 1,000 | 1,000+ |
| Data sensitivity | Regulated (HIPAA) | Moderate | Standard |
| Customization need | High per-tenant | Moderate | Low |
| Operational budget | Large | Medium | Small |
| Query complexity | Cross-tenant analytics rare | Moderate | Cross-tenant queries common |
Request → [Auth Middleware] → tenant_id extracted
→ [Request Context] → tenant_id set
→ [Service Layer] → tenant_id passed
→ [Repository/ORM] → tenant_id in WHERE/RLS
→ [Database] → query scoped to tenant
Key design points:
contextvars, Node.js AsyncLocalStorage, Go context.Context) — never global variables or thread-local that leaks across await boundaries. [Source: Node.js docs — Asynchronous context tracking (https://nodejs.org/api/async_context.html)]SELECT set_config('app.current_tenant', $1, true) (the true flag scopes the GUC to the current transaction, cleared at COMMIT/ROLLBACK). A bare SET command is session-scoped and will leak tenant context to the next request reusing the same pooled connection. Source: Supavisor docsReceives: Schema (DB design), Gateway (API design), User (requirements), Atlas (architecture analysis) Sends: Schema (RLS implementation), Scaffold (infra config), Builder (implementation), Sentinel (security review)
| Direction | Handoff | Purpose |
|---|---|---|
| Schema → Shard | SCHEMA_TO_SHARD_HANDOFF | DB design context for isolation |
| Gateway → Shard | GATEWAY_TO_SHARD_HANDOFF | API routing context |
| Shard → Schema | SHARD_TO_SCHEMA_HANDOFF | RLS policies for implementation |
| Shard → Sentinel | SHARD_TO_SENTINEL_HANDOFF | Data leakage assessment for review |
| Reference | Read this when |
|---|---|
reference/patterns.md | You need isolation patterns, RLS examples, routing designs, or leakage checklists. |
reference/examples.md | You need complete multi-tenant architecture examples. |
reference/handoffs.md | You need handoff templates for collaboration with other agents. |
reference/tenant-migration.md | You are running migration — cross-shard rebalancing, isolation-level upgrades, dual-write+cutover or offline-copy modes, verification queries, rollback playbooks. |
reference/tenant-provisioning.md | You are running provisioning — tenant lifecycle state machine, idempotent IaC-driven onboarding, default-data seeding, deprovisioning + GDPR retention rules. |
reference/tenant-quota-throttling.md | You are running quota — token/leaky bucket selection, fair-share scheduler choice, soft/hard quota policy, burst budget tuning, overage-billing handoff. |
_common/OPUS_5_AUTHORING.md | You are sizing the tenancy spec, deciding adaptive thinking depth at DESIGN, or front-loading compliance scope/scale projection at SCAN. Critical for Shard: P3, P5. |
reference/autorun-schema.md | You are emitting the AUTORUN _STEP_COMPLETE block — Shard-specific Output/Next schema. |
.agents/shard.md; create if missing..agents/PROJECT.md: | YYYY-MM-DD | Shard | (action) | (files) | (outcome) |_common/OPERATIONAL.md and _common/GIT_GUIDELINES.md.See _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling). Shard-specific _STEP_COMPLETE.Output schema lives in reference/autorun-schema.md.
When input contains ## NEXUS_ROUTING, return via ## NEXUS_HANDOFF (canonical schema in _common/HANDOFF.md).
Frequently asked questions
Design multi-tenant architectures. Shard turns SaaS requirements into tenant isolation strategies, RLS policies, routing designs, noisy-neighbor protections, and migration plans.
The source record exposes this install command: npx skills add https://github.com/simota/agent-skills --skill ".archive/shard". Inspect the command and pinned source before running it.
Alternatives
prowler-cloud/prowler
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance
oaustegard/claude-skills
Generate hierarchical _FEATURES.md files that describe what a codebase DOES from a user/consumer perspective, anchored to source symbols via tree-sitting. Supports large complex codebases through feature-driven decomposition into sub-feature files. Uses a multi-pass synthesis: orientation → detail → overview rewrite. Use when someone says "what does this do", "document features", "feature inventory", "_FEATURES.md", or needs to understand a codebase's purpose before modifying it. Complements tre
HKUDS/Vibe-Trading
Create, modify, and optimize quantitative trading strategies, then backtest and evaluate them.
vasilyu1983/AI-Agents-public
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.