Agent Skills › trycompai/comp › audit-rbac

audit-rbac

GitHub

审计并修复 API 端点和前端组件中的 RBAC 及审计日志合规性问题,自动添加权限装饰器、守卫及 UI 控制逻辑。

.claude/skills/audit-rbac/SKILL.md trycompai/comp

Trigger Scenarios

需要检查代码权限控制合规性 发现缺少 RBAC 或审计日志实现 重构权限相关代码

Install

npx skills add trycompai/comp --skill audit-rbac -g -y
More Options

Non-standard path

npx skills add https://github.com/trycompai/comp/tree/main/.claude/skills/audit-rbac -g -y

Use without installing

npx skills use trycompai/comp@audit-rbac

指定 Agent (Claude Code)

npx skills add trycompai/comp --skill audit-rbac -a claude-code -g -y

安装 repo 全部 skill

npx skills add trycompai/comp --all -g -y

预览 repo 内 skill

npx skills add trycompai/comp --list

SKILL.md

Frontmatter
{
    "name": "audit-rbac",
    "description": "Audit & fix RBAC and audit log compliance in API endpoints and frontend components"
}

Audit the specified files or directories for RBAC and audit log compliance. Fix every issue found immediately.

Rules

API Endpoints (NestJS — apps/api/src/)

  1. Every mutation endpoint (POST, PATCH, PUT, DELETE) MUST have @RequirePermission('resource', 'action'). If missing, add it.
  2. Read endpoints (GET) should have @RequirePermission('resource', 'read'). If missing, add it.
  3. Self-endpoints (e.g., /me/preferences) may skip @RequirePermission — authentication via HybridAuthGuard is sufficient.
  4. Controller format: Must use @Controller({ path: 'name', version: '1' }), NOT @Controller('v1/name'). If wrong, fix it.
  5. Guards: Use @UseGuards(HybridAuthGuard, PermissionGuard) at controller or endpoint level. Never skip PermissionGuard.
  6. Webhooks: External webhook endpoints use @Public() — no auth required.

Frontend Components (apps/app/src/)

  1. Every mutation element (button, form submit, toggle, switch, file upload) MUST be gated with usePermissions from @/hooks/use-permissions. If not:
    • Create/Add buttons: Wrap with {hasPermission('resource', 'create') && <Button>...
    • Edit/Delete in dropdown menus: Wrap the menu item
    • Inline form fields on detail pages: Add disabled={!canUpdate}
    • Status/property selectors: Add disabled={!canUpdate}
  2. Actions columns in tables: hide entire column when user lacks write permission.
  3. No manual role string parsing (role.includes('admin')) — use hasPermission().
  4. Nav items: gate with canAccessRoute(permissions, 'routeSegment').
  5. Page-level: call requireRoutePermission('segment', orgId) server-side.

Permission Resources

organization, member, control, evidence, policy, risk, vendor, task, framework, audit, finding, questionnaire, integration, apiKey, trust, pentest, app, compliance

Multi-Product RBAC

  • Products (compliance, pen testing) are org-level feature flags — NOT RBAC
  • app:read gates compliance dashboard; pentest:read gates security product
  • Custom roles can grant access to any combination of resources
  • Portal-only resources (policy, compliance) do NOT grant app access

Process

  1. Read files specified in $ARGUMENTS (or scan the directory)
  2. Check each rule above
  3. Fix every violation immediately — don't just report
  4. Run typecheck to verify: bunx turbo run typecheck --filter=@trycompai/api --filter=@trycompai/app

Version History

  • 0ccfcc2 Current 2026-09-27 10:23

Same Skill Collection

.agents/skills/audit-design-system/SKILL.md
.agents/skills/audit-hooks/SKILL.md
.agents/skills/audit-rbac/SKILL.md
.agents/skills/audit-tests/SKILL.md
.agents/skills/better-auth-best-practices/SKILL.md
.agents/skills/billing/SKILL.md
.agents/skills/code/SKILL.md
.agents/skills/cursor-usage/SKILL.md
.agents/skills/data/SKILL.md
.agents/skills/diagnose-generation-failure/SKILL.md
.agents/skills/forms/SKILL.md
.agents/skills/generate-mcp-server/SKILL.md
.agents/skills/infra/SKILL.md
.agents/skills/manage-openapi-overlays/SKILL.md
.agents/skills/new-feature-setup/SKILL.md
.agents/skills/production-readiness/SKILL.md
.agents/skills/prompt-engineering/SKILL.md
.agents/skills/speakeasy-context/SKILL.md
.agents/skills/stale-worktree-cleanup/SKILL.md
.agents/skills/trigger-advanced-tasks/SKILL.md
.agents/skills/trigger-basic/SKILL.md
.agents/skills/trigger-config/SKILL.md
.agents/skills/trigger-realtime/SKILL.md
.agents/skills/ui/SKILL.md
.claude/skills/api-endpoint-contract/SKILL.md
.claude/skills/audit-design-system/SKILL.md
.claude/skills/audit-hooks/SKILL.md
.claude/skills/audit-tests/SKILL.md
.claude/skills/check-results-service/SKILL.md
.claude/skills/cleanup/SKILL.md
.claude/skills/code/SKILL.md
.claude/skills/cursor-usage/SKILL.md
.claude/skills/data/SKILL.md
.claude/skills/forms/SKILL.md
.claude/skills/infra/SKILL.md
.claude/skills/new-feature-setup/SKILL.md
.claude/skills/production-readiness/SKILL.md
.claude/skills/prompt-engineering/SKILL.md
.claude/skills/security-review/SKILL.md
.claude/skills/stale-worktree-cleanup/SKILL.md
.claude/skills/trigger-advanced-tasks/SKILL.md
.claude/skills/trigger-basic/SKILL.md
.claude/skills/trigger-config/SKILL.md
.claude/skills/trigger-realtime/SKILL.md
.claude/skills/ui/SKILL.md
.agents/skills/essentials/SKILL.md
.agents/skills/prisma/SKILL.md
.agents/skills/trigger-scheduled-tasks/SKILL.md
.claude/skills/essentials/SKILL.md

Metadata

Files
0
Version
0ccfcc2
Hash
e9824e10
Indexed
2026-09-27 10:23

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-27 23:10
浙ICP备14020137号-1