Source profileQuality 90/100

NVIDIA-NeMo/nemo-platform/.agents/skills/add-studio-feature-flag/SKILL.md

add-studio-feature-flag

Adds a NeMo Studio (Vite) feature flag end-to-end: typed definition, runtime injection mapping, FastAPI build env markers, and optional Helm config. Use when the user asks for a new feature flag, VITE_FF_ variable, studio.feature_flags setting, toggling UI behind a flag, or preview/boolean flags for Studio.

Source repository stars
56
Declared platforms
0
Static risk flags
0
Last source update
2026-08-06
Source checked
2026-08-06

Decision brief

What it does—and where it fits

Studio flags live in web/packages/studio and are wired into the FastAPI Studio bundle via marker replacement at runtime. Follow every step that applies so local dev, FastAPI builds, and cluster deploys stay consistent.

Best for

  • Use when the user asks for a new feature flag, VITE_FF_ variable, studio.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/NVIDIA-NeMo/nemo-platform --skill ".agents/skills/add-studio-feature-flag"
Safe inspection promptEditorial

Inspect the Agent Skill "add-studio-feature-flag" from https://github.com/NVIDIA-NeMo/nemo-platform/blob/f2d56031d6a584e8064024bbc3a8cad368ec33a7/.agents/skills/add-studio-feature-flag/SKILL.md at commit f2d56031d6a584e8064024bbc3a8cad368ec33a7. 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

What the source asks the agent to do

  1. 01

    1. Choose flag shape

    Preview behavior: true and 'preview' are both truthy for if (featureFlags.myFlag). Only 'preview' triggers FeatureFlagBadge (see step 6).

    Env var: VITEFFflagDefinitions key: camelCase (e.g. jobQueueEnabled)studio.featureflags / configpath: snakecase (e.g. jobqueueenabled)
  2. 02

    2. Register the flag (TypeScript)

    File: web/packages/studio/src/constants/featureFlags/featureFlags.ts

    File: web/packages/studio/src/constants/featureFlags/featureFlags.tsAdd one entry to flagDefinitions:Alphabetical order with sibling keys is preferred.
  3. 03

    3. Optional: environment.ts re-export

    File: web/packages/studio/src/constants/environment.ts

    File: web/packages/studio/src/constants/environment.tsIf the codebase prefers SOMEFEATUREENABLED constants (see existing MEMBERSENABLED, SECRETSENABLED, etc.), add:Use this only when it matches an established pattern for that area of the app.
  4. 04

    4. Runtime injection (FastAPI Studio service)

    File: services/studio/src/nmp/studio/envmappings.py

    marker is always STUDIOUI + the Vite env name (VITEFF...).default is a string ("true", "false", or "preview" for preview flags).File: services/studio/src/nmp/studio/envmappings.py
  5. 05

    5. FastAPI build env markers (parity)

    File: web/packages/studio/env/.env.fastapi

    File: web/packages/studio/env/.env.fastapiAdd a line so the built bundle contains the placeholder the Studio service replaces:The file header requires parity with envmappings.py—do not skip this for flags used in FastAPI mode.

Permission review

Static risk signals and limitations

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

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score90/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars56SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
NVIDIA-NeMo/nemo-platform
Skill path
.agents/skills/add-studio-feature-flag/SKILL.md
Commit
f2d56031d6a584e8064024bbc3a8cad368ec33a7
License
Apache-2.0
Collected
2026-08-06
Default branch
main
View the original SKILL.md

Add a Studio feature flag

Studio flags live in web/packages/studio and are wired into the FastAPI Studio bundle via marker replacement at runtime. Follow every step that applies so local dev, FastAPI builds, and cluster deploys stay consistent.

For broader Studio context, see .cursor/skills/studio-dev/SKILL.md.

1. Choose flag shape

HelperTypeScript valueUse when
previewFlag(envVar, default?)true | 'preview' | falseUser-facing features that may show the Early Preview badge ('preview')
booleanFlag(envVar, default?)booleanInternal toggles (no preview mode)
stringFlag / numberFlagstring / numberRare; see web/packages/studio/src/constants/featureFlags/utils.ts

Preview behavior: true and 'preview' are both truthy for if (featureFlags.myFlag). Only 'preview' triggers FeatureFlagBadge (see step 6).

Naming

  • Env var: VITE_FF_<SCREAMING_SNAKE_CASE>
  • flagDefinitions key: camelCase (e.g. jobQueueEnabled)
  • studio.feature_flags / config_path: snake_case (e.g. job_queue_enabled)

2. Register the flag (TypeScript)

File: web/packages/studio/src/constants/featureFlags/featureFlags.ts

Add one entry to flagDefinitions:

jobQueueEnabled: previewFlag('VITE_FF_JOB_QUEUE_ENABLED'),
// or
jobQueueEnabled: booleanFlag('VITE_FF_JOB_QUEUE_ENABLED'),

Alphabetical order with sibling keys is preferred.

Consume

import { featureFlags } from "@studio/constants/featureFlags";

if (featureFlags.jobQueueEnabled) {
  // enabled (true or 'preview')
}

3. Optional: environment.ts re-export

File: web/packages/studio/src/constants/environment.ts

If the codebase prefers SOME_FEATURE_ENABLED constants (see existing MEMBERS_ENABLED, SECRETS_ENABLED, etc.), add:

export const JOB_QUEUE_ENABLED = featureFlags.jobQueueEnabled !== false;

Use this only when it matches an established pattern for that area of the app.

4. Runtime injection (FastAPI Studio service)

File: services/studio/src/nmp/studio/env_mappings.py

Add an EnvMapping in ENV_MAPPINGS (keep the feature-flag block grouped):

EnvMapping(
    marker="STUDIO_UI_VITE_FF_JOB_QUEUE_ENABLED",
    config_path="studio.feature_flags.job_queue_enabled",
    default="false",
),
  • marker is always STUDIO_UI_ + the Vite env name (VITE_FF_...).
  • default is a string ("true", "false", or "preview" for preview flags).

5. FastAPI build env markers (parity)

File: web/packages/studio/env/.env.fastapi

Add a line so the built bundle contains the placeholder the Studio service replaces:

VITE_FF_JOB_QUEUE_ENABLED=STUDIO_UI_VITE_FF_JOB_QUEUE_ENABLED

The file header requires parity with env_mappings.py—do not skip this for flags used in FastAPI mode.

6. Local development

Update both files so the sample stays in lockstep with the feature-flag inventory — devs copy the sample to bootstrap .env.dev.local, and a missing entry means the flag silently falls back to its default.

File: web/packages/studio/env/.env.dev.local.sample (always — committed reference)

Add the flag in the # Feature Flags (VITE_FF_* prefix) block, alphabetized with sibling VITE_FF_* lines. Use the value a new developer should start with (usually the same as the default in env_mappings.py):

VITE_FF_JOB_QUEUE_ENABLED='false'

File: web/packages/studio/env/.env.dev.local (only if you want it on for your own machine — gitignored)

VITE_FF_JOB_QUEUE_ENABLED='true'
# or for preview badge behavior:
VITE_FF_JOB_QUEUE_ENABLED='preview'

7. Gate UI and routes

  • Routes: lazy imports / children arrays in web/packages/studio/src/routes/index.tsx, or conditional wrappers—mirror existing flags (e.g. membersEnabled, secretsEnabled).
  • Nav: WorkspaceSideNav and similar—search for featureFlags. patterns.
  • Preview badge: For previewFlag entries, add <FeatureFlagBadge flag="jobQueueEnabled" /> next to the feature title when appropriate (web/packages/studio/src/components/FeatureFlagBadge/index.tsx).

8. Helm / platform config (deployed environments)

Under studio.feature_flags in values (e.g. deploy/helm/values/ci/dev-values.yaml), add the snake_case key with string value true, false, or preview as needed.

Global settings schema may need updating if the new key is not yet defined—follow how existing studio.feature_flags.* keys are declared in the repo.

Checklist

Copy and track:

  • flagDefinitions in featureFlags.ts (correct helper + defaults)
  • EnvMapping in env_mappings.py
  • VITE_FF_*=STUDIO_UI_VITE_FF_* line in env/.env.fastapi
  • env/.env.dev.local.sample updated (committed reference for new devs)
  • Local env/.env.dev.local (only if developers need the flag on for their own machine)
  • UI/route/nav gated with featureFlags.<key> or environment.ts constant
  • FeatureFlagBadge if the flag uses previewFlag and should show Early Preview
  • Helm / values or docs updated for environments that should see the flag
  • pnpm typecheck (from web/packages/studio or monorepo Studio package) after TS edits

Removing a flag (reference)

  1. Remove all usages.
  2. Remove from flagDefinitions, env_mappings.py, .env.fastapi, Helm values, and samples.
  3. Remove any environment.ts export.

Alternatives

Compare before choosing

Computed 961,065

TencentCloudBase/CloudBase-AI-Toolkit

cloudbase-agent-python

Build production-ready AI agent backends using the CloudBase Agent Python SDK — create agents with LangGraph/CrewAI/LlamaIndex, serve them via FastAPI with AG-UI protocol streaming + OpenAI-compatible endpoints, add tools (bash, filesystem, MCP, code execution), memory (in-memory, TDAI, MySQL, MongoDB), observability (OpenTelemetry/Langfuse), and middleware (auth, logging). Use this skill when the user wants to create an AI agent server, build a chatbot backend, set up human-in-the-loop workflow

Computed 10043,183

coreyhaines31/marketingskills

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

Computed 10043,183

coreyhaines31/marketingskills

churn-prevention

When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o

Computed 10014,540

prowler-cloud/prowler

postgresql-indexing

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