Skip to content
Back to skills

Feature Flag Questions

ASecurity

Use whenever creating a brief for a NEW feature. This will add feature flag requirements into the brief

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsgo

Works with

  • cursor

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add gethamster/skills --skill feature-flag-questions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Feature Flag Questions?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Feature Flag Questions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gethamster-feature-flag-questions/badge)](https://www.skillsdirectory.com/skills/gethamster-feature-flag-questions)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: feature-flag-questions
description: "Use whenever creating a brief for a NEW feature. This will add feature flag requirements into the brief"
version: "1.0.0"
category: "Experience"
---

Ask a question to the user to ascertain whether or not this new feature should be feature gated. Provide a feature name example. 

For user facing features, it lives in apps/web/config/feature-flags.config.ts and follows a schema like: 

```
const FeatureFlagsSchema = z.object({
  enableBackgroundAgents: z
    .boolean({
      error: (issue) =>
        issue.input === undefined
          ? 'Provide the variable NEXT_PUBLIC_ENABLE_BACKGROUND_AGENTS'
          : 'Value must be a boolean',
    })
    .describe('Enable background agent features (Cursor, etc.).'),
  enableMonitoring: z
    .boolean({
      error: (issue) =>
        issue.input === undefined
          ? 'Provide the variable NEXT_PUBLIC_ENABLE_MONITORING'
          : 'Value must be a boolean',
    })
    .describe('Enable monitoring/error tracking with the configured provider.'),
  enableGoogleDriveConnector: z
    .boolean({
      error: (issue) =>
        issue.input === undefined
          ? 'Provide the variable NEXT_PUBLIC_ENABLE_CONNECTOR_GOOGLE_DRIVE'
          : 'Value must be a boolean',
    })
    .describe('Enable Google Drive connector integration.'),
  enableConnectorJira: z
    .boolean({
      error: (issue) =>
        issue.input === undefined
          ? 'Provide the variable NEXT_PUBLIC_ENABLE_CONNECTOR_JIRA'
          : 'Value must be a boolean',
    })
    .describe('Enable the Jira connector in context settings.'),
  enableLiveVoice: z
    .boolean({
      error: (issue) =>
        issue.input === undefined
          ? 'Provide the variable NEXT_PUBLIC_ENABLE_LIVE_VOICE'
          : 'Value must be a boolean',
    })
    .describe('Enable live voice (push-to-talk) via Gemini Live.'),
} satisfies z.infer<typeof FeatureFlagsSchema>);

export default featuresFlagConfig;

function getBoolean(value: unknown, defaultValue: boolean) {
  if (typeof value === 'string') {
    return value === 'true';
  }

  return defaultValue;
}
```

For NestJS applications, a simple: 

```
this.configService.get<string>('ENABLE_LINEAR_TWO_WAY_SYNC') !== 'true'
```

Is used. If the user answers yes, add this as a requirement to the brief

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…