Permissions And Capabilities
SkillDev toolsWork on Luxury Yacht RBAC permission checks, capability descriptors, permission-denied diagnostics, object action availability, YAML/edit/delete/scale/restart gating, and capability tests
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Permissions And Capabilities skill
What this skill tells your AI
The instructions your AI receives, as published by luxury-yacht/app in .agents/skills/permissions-capabilities/SKILL.md and read by ahel’s review.
Use this when touching backend RBAC checks, capability services, permission diagnostics, frontend capability hooks, object action availability, YAML/edit gating, delete/scale/restart/trigger/suspend actions, or restricted-RBAC tests.
Read First
AGENTS.mdbackend/AGENTS.mdfrontend/AGENTS.mddocs/architecture/permissions.mddocs/architecture/shared-resource-model.mdfor object identity and refsdocs/architecture/refresh-system.mdfor permission-denied domains and diagnostics
Backend Entry Points
backend/capabilitiesbackend/resource_gateway.gobackend/runtime_setting_policies.go(PermissionFetchPolicy)backend/resource_permission.gobackend/refresh/permissions/resource_requirement.gobackend/refresh/snapshot/permission.gobackend/refresh/resourcestream/projection_descriptors.gofor stream permission resources (primary/related resources per descriptor)backend/refresh/system/registrations.gobackend/refresh/system/permission_gate.go- Backend operation/action services under
backend/resources,backend/object_yaml*.go,backend/portforward*.go, andbackend/shell_sessions.go
Frontend Entry Points
frontend/src/core/capabilitiesfrontend/src/core/capabilities/permissionFeatures.tsfrontend/src/shared/actions/objectActionPolicy.tsfrontend/src/modules/object-panel/components/ObjectPanel/hooks/useObjectPanelCapabilities.tsfrontend/src/modules/object-panel/components/ObjectPanel/constants.tsfrontend/src/shared/hooks/useObjectActions.tsxfrontend/src/shared/components/kubernetes/ActionsMenu.tsxfrontend/src/core/refresh/components/diagnostics/diagnosticsPanelConfig.ts
Checklist
- Capability descriptors include
clusterId, group, version, kind, namespace, and name when checking a concrete object. - Do not guess
resourcefrom kind; use the injected catalog-backedResourceResolverfor GVK/GVR/scope resolution. - Backend write/action paths check permission before mutating cluster state.
-
ResourceGatewayowns the cluster-scoped SSRR cache and reads only the injectedPermissionFetchPolicy; permission code does not read Preferences or refresh state. - Resource-stream permission contracts stay aligned with snapshot runtime permission requirements.
- Permission specs and diagnostics filters use stable
PERMISSION_FEATURESkeys, not display labels. - Frontend action availability mirrors backend capability rules and exposes denied/pending reasons.
- UI-visible mutating actions are represented in
resolveObjectActionPolicy/ObjectActionPolicy(frontend/src/shared/actions/objectActionPolicy.ts). Include derived action ids that reuse the same backend mutation, such as fixed-replica scale variants. - Permission-denied refresh domains remain visible in diagnostics.
- Restricted-RBAC behavior degrades visibly instead of silently hiding broken domains or actions.
- Tests cover allowed, denied, and resolution-error cases.
Validation
Use focused checks while iterating:
mise exec -- go test ./backend/capabilities ./backend/refresh/snapshot ./backend/refresh/system ./backend
mise exec -- npm run typecheck --prefix frontend
mise exec -- npm run test --prefix frontend -- capabilities ObjectPanel ActionsMenu diagnostics
Then follow the root final validation gate.
Signals
- GitHub stars
- 435
- Forks
- 23
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
permissions-capabilities- Source
- github.com/luxury-yacht/app