Add a new Enterprise Edition feature behind a feature gate, across backend and frontend. Use when adding an EE-only capability such as SSO.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add rhesis-ai/rhesis --skill ee-feature --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ee Feature?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/rhesis-ai-ee-feature)More formats (shields.io, HTML) on the badges page.
---
name: ee-feature
description: Add a new Enterprise Edition feature behind a feature gate, across backend and frontend. Use when adding an EE-only capability such as SSO.
---
# Adding a new EE feature
`FeatureRegistry` is for EE features only. A capability that ships in `apps/backend/` under MIT is
unconditionally available and needs no gating — don't register it.
1. Add a member to `FeatureName` in `app/features/__init__.py`.
2. Implement the feature under `ee/backend/src/rhesis/backend/ee/<feature>/`.
3. Register it in `ee/backend/src/rhesis/backend/ee/__init__.py:bootstrap()` by calling
`FeatureRegistry.register(Feature(...))` with an optional `runtime_check`, then
`app.include_router(...)` for any new endpoints.
4. Gate routes with `Depends(require_feature(FeatureName.X))`. Use
`FeatureRegistry.is_available(name, org)` for org-aware checks elsewhere, and
`FeatureRegistry.is_registered(name)` for early-bailout checks before an org has been resolved
(e.g. inside an OIDC callback).
5. Mirror the name in `apps/frontend/src/constants/features.ts` and wrap the UI in
`<FeatureGate feature={FeatureName.X}>`.
## The import boundary
Core code must never import from `rhesis.backend.ee.*`. The only core-side coupling is the
`try/except ImportError` in `app/ee_bootstrap.py`, which is what lets a Community build run without
the EE package installed. The `community-boundary` CI job fails the PR if you break this.
Background on the registry and the gating dependencies is in `apps/backend/AGENTS.md`; the frontend
half is in `apps/frontend/AGENTS.md`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!