add-private-feature-flag
Use when adding a new private (developer experiments) feature flag to Ghost, including the backend registration and settings UI toggle.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when adding a new private (developer experiments) feature flag to Ghost, including the backend registration and settings UI toggle.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Use the inputSurface() recipe for form-control chrome (border, background, radius, focus ring, invalid state) — don't roll your own. Trigger when editing form-control-shaped files in Shade.
Pick the right Shade page template (ListPage, PageHeader) for a new admin page instead of inventing chrome. Trigger when creating new admin pages or routes in apps/admin, apps/admin-x-settings, apps/activitypub.
Decide which Shade layer (Token, Primitive, Component, Recipe, Pattern) a new piece of UI belongs in — and whether it should be added to Shade at all. Trigger when creating new files in apps/shade/src/components, or proposing to add a new Shade component.
DropdownMenu, Select, and Popover share one visual recipe (bg-surface-elevated-2 + border-border/60 dark:border-border/30 + shadow-md). Change them together. Trigger when editing any of those three Shade files.
Import Shade from layer-specific subpaths (primitives, components, patterns, page-templates, utils), never the root barrel. Trigger when editing TSX/TS in Shade-consuming apps.
Acceptance checklist for adding or editing a Shade component or pattern file — naming, sibling story, className forwarding, cva variants, required states, recipe usage. Trigger when editing files in apps/shade/src/components.
| name | add-private-feature-flag |
| description | Use when adding a new private (developer experiments) feature flag to Ghost, including the backend registration and settings UI toggle. |
Adds a new private feature flag to Ghost. Private flags appear in Labs settings under the "Private features" tab, visible only when developer experiments are enabled.
Add the flag to ghost/core/core/shared/labs.js
PRIVATE_FEATURES array.Add a UI toggle in apps/admin-x-settings/src/components/settings/advanced/labs/private-features.tsx
features array with title, description, and flag (must match the string in labs.js).Run tests and update the config API snapshot
cd ghost/core && pnpm test:single test/unit/shared/labs.test.jscd ghost/core && UPDATE_SNAPSHOTS=1 pnpm test:single test/e2e-api/admin/config.test.jsghost/core/test/e2e-api/admin/__snapshots__/config.test.js.snap to confirm only your new flag was added.labs setting.labs.js, private-features.tsx, and the snapshot.welcomeEmailDesignCustomization).PUBLIC_BETA_FEATURES in labs.js instead and add the toggle to apps/admin-x-settings/src/components/settings/advanced/labs/beta-features.tsx.