flags
How to add or modify Next.js experimental feature flags end-to-end.
Skill by evgeshniyzik-dev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/evgeshniyzik-dev-flags
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend, backend, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/flags
What's inside
- Skill name
flags- Description
- How to add or modify Next.js experimental feature flags end-to-end. Use when editing config-shared.ts, config-schema.ts, define-env-plugin.ts, next-server.ts, export/worker.ts, or module.compiled.js. Covers type declaration, zod schema, build-time injection, runtime env plumbing, and the decision between runtime env-var branching vs separate bundle variants.
- License
- MIT
- Instructions
- 35 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Feature Flags
Use this skill when adding or changing framework feature flags in Next.js internals.
## Required Wiring
All flags need: `config-shared.ts` (type) → `config-schema.ts` (zod). If the flag is consumed in user-bundled code (client components, edge routes, `app-page.ts` template), also add it to `define-env.ts` for build-time injection. Runtime-only flags consumed exclusively in pre-compiled bundles can skip `define-env.ts`.
## Where the Flag Is Consumed
**Client/bundled code only** (e.g. `__NEXT_PPR` in client components): `define-env.ts` is sufficient. Webpack/Turbopack replaces `process.env.X` at the user's build time.
**Pre-compiled runtime bundles** (e.g. code in `app-render.tsx`): The flag must also be set as a real `process.env` var at runtime, because `app-render.tsx` runs from pre-compiled bundles where `define-env.ts` doesn't reach. Two approaches:
- **Runtime env var**: Set in `next-server.ts` + `export/worker.ts`. Both code paths stay in one bundle. Simple but increases bundle size.
- **Separate bundle variant**: Add DefinePlugin entry in `next-runtime.webpack-config.js` (scoped to `bundleType === 'app'`), new taskfile tasks, update `module.compiled.js` selector, and still set env var in `next-server.ts` + `export/worker.ts` for bundle selection. Eliminates dead code but adds build complexity.
For runtime flags, also add the field to the `NextConfigRuntime` Pick type in `config-shared.ts`.
## Runtime-Bundle Model
- Runtime bundles are built by `next-runtime.webpack-config.js` (rspack) via `taskfile.js` bundle tasks.
- Bundle selection occurs at runtime in `src/server/route-modules/app-page/module.compiled.js` based on `process.env` vars.
- Variants: `{turbo/webpack} × {experimental/stable/nodestreams/experimental-nodestreams} × {dev/prod}` = up to 16 bundles per route type.
- `define-env.ts` affects user bundling, not pre-compiled runtime internals.
- `process.env.X` checks in `app-render.tsx` are either replaced by DefinePlugin at runtime-bundle-build time, or read as actual env vars at server startup. They are NOT affected by the user's defines from `define-env.ts`.
- **Gotcha**: DefinePlugin entries in `next-runtime.webpack-config.js` must be scoped to the correct `bundleType` (e.g. `app` only, not `server`) to avoid replacing assignment targets in `next-server.ts`.
## Related Skills
- `$dce-edge` - DCE-safe require patterns and edge constraints
- `$react-vendoring` - entry-base boundaries and vendored React
- `$runtime-debug` - reproduction and verification workflowFrom evgeshniyzik-dev/nextjs, MIT.
More from evgeshniyzik-dev/nextjs
- 0.409score
runtime-debug
evgeshniyzik-dev
Debug and verification workflow for runtime-bundle and module-resolution regressions.
SkillDFreshness: DClaude Code +9 - 0.409score
react-vendoring
evgeshniyzik-dev
React vendoring and react-server layer boundaries.
SkillDFreshness: DClaude Code +9 - 0.409score
router-act
evgeshniyzik-dev
How to write end-to-end tests using createRouterAct and LinkAccordion.
SkillDFreshness: DClaude Code +9 - 0.409score
write-guide
evgeshniyzik-dev
Generates technical guides that teach real-world use cases through progressive examples.
SkillDFreshness: DClaude Code +9 - 0.409score
dce-edge
evgeshniyzik-dev
DCE-safe require() patterns and edge runtime constraints.
SkillDFreshness: DClaude Code +9 - 0.409score
v8-jit
evgeshniyzik-dev
V8 JIT optimization patterns for writing high-performance JavaScript in Next.js server internals.
SkillDFreshness: DClaude Code +9 - 0.409score
write-api-reference
evgeshniyzik-dev
Produces API reference documentation for Next.js APIs: functions, components, file conventions, directives, and config options.
SkillDFreshness: DClaude Code +9 - 0.406score
next-compile
evgeshniyzik-dev
Check Next.js compilation errors via a running dev server.
SkillDFreshness: DClaude Code +9 - 0.390score
update-docs
evgeshniyzik-dev
This skill should be used when the user asks to "update documentation for my changes", "check docs for this PR", "what docs need updating", "sync docs with…
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Feb 16, 2026 (8 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/evgeshniyzik-dev/nextjs
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from evgeshniyzik-dev
- 0.409score
runtime-debug
evgeshniyzik-dev
Debug and verification workflow for runtime-bundle and module-resolution regressions.
SkillDFreshness: DClaude Code +9 - 0.409score
react-vendoring
evgeshniyzik-dev
React vendoring and react-server layer boundaries.
SkillDFreshness: DClaude Code +9 - 0.409score
router-act
evgeshniyzik-dev
How to write end-to-end tests using createRouterAct and LinkAccordion.
SkillDFreshness: DClaude Code +9 - 0.409score
write-guide
evgeshniyzik-dev
Generates technical guides that teach real-world use cases through progressive examples.
SkillDFreshness: DClaude Code +9 - 0.409score
dce-edge
evgeshniyzik-dev
DCE-safe require() patterns and edge runtime constraints.
SkillDFreshness: DClaude Code +9 - 0.409score
v8-jit
evgeshniyzik-dev
V8 JIT optimization patterns for writing high-performance JavaScript in Next.js server internals.
SkillDFreshness: DClaude Code +9
Cite this page
flags skill. Agent Mart. https://agentmart.dev/skills/evgeshniyzik-dev-flags (last updated 2026-10-24)