jeremylongshore/claude-code-plugins-plus-skills
gamma-pack
plugins/saas-packs/gamma-pack/skills/gamma-enterprise-rbac/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/main/plugins/saas-packs/gamma-pack/skills/gamma-enterprise-rbac/SKILL.md -a claude-code --skill gamma-enterprise-rbacInstallation paths:
.claude/skills/gamma-enterprise-rbac/# Gamma Enterprise RBAC
## Overview
Implement enterprise-grade role-based access control for Gamma integrations with multi-tenant support.
## Prerequisites
- Enterprise Gamma subscription
- Identity provider (IdP) integration
- Database for permission storage
- Understanding of RBAC concepts
## RBAC Model
### Role Hierarchy
```
Organization Admin
└── Workspace Admin
└── Team Lead
└── Editor
└── Viewer
```
### Permission Matrix
| Permission | Viewer | Editor | Team Lead | Workspace Admin | Org Admin |
|------------|--------|--------|-----------|-----------------|-----------|
| View presentations | Yes | Yes | Yes | Yes | Yes |
| Create presentations | No | Yes | Yes | Yes | Yes |
| Edit own presentations | No | Yes | Yes | Yes | Yes |
| Edit team presentations | No | No | Yes | Yes | Yes |
| Delete presentations | No | No | Yes | Yes | Yes |
| Manage team members | No | No | Yes | Yes | Yes |
| Manage workspace | No | No | No | Yes | Yes |
| Manage billing | No | No | No | No | Yes |
| Manage API keys | No | No | No | No | Yes |
## Instructions
### Step 1: Define Roles and Permissions
```typescript
// models/rbac.ts
enum Permission {
// Presentation permissions
PRESENTATION_VIEW = 'presentation:view',
PRESENTATION_CREATE = 'presentation:create',
PRESENTATION_EDIT_OWN = 'presentation:edit:own',
PRESENTATION_EDIT_TEAM = 'presentation:edit:team',
PRESENTATION_EDIT_ALL = 'presentation:edit:all',
PRESENTATION_DELETE = 'presentation:delete',
PRESENTATION_EXPORT = 'presentation:export',
// Team permissions
TEAM_VIEW = 'team:view',
TEAM_MANAGE = 'team:manage',
// Workspace permissions
WORKSPACE_VIEW = 'workspace:view',
WORKSPACE_MANAGE = 'workspace:manage',
// Admin permissions
BILLING_VIEW = 'billing:view',
BILLING_MANAGE = 'billing:manage',
API_KEYS_MANAGE = 'api_keys:manage',
}
interface Role {
name: string;
permissions: Permission[];
inherits?: string;
}
const roles: Record<stri