Skip to content

feat(feature-flags): add the feature-flags step skill for the wizard - #405

Merged
johncwaters merged 2 commits into
mainfrom
johnw/feature-flags-step
Sep 24, 2026
Merged

johncwaters merged 2 commits into
mainfrom
johnw/feature-flags-step

Conversation

@johncwaters

@johncwaters johncwaters commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Feedback wanted: ready to merge. Approve or request changes.

  • Do the added Node.js flag docs (full-stack JavaScript variants) and web flag docs (server-rendered frameworks) give the evaluate agent what it needs, or should any variant point at different pages?
  • Java, Elixir, and Expo point only at the SDK library page to avoid a docs file-name collision. Acceptable for now?

The new wizard feature-flags command needs framework-specific knowledge for its evaluate task: how each SDK evaluates a flag once, keeps the key in a constants module, and reports the evaluation back to PostHog. The integration skills teach SDK installation, not flag evaluation.

Companion PRs: wizard (PostHog/wizard#1322) and wizard-workbench (PostHog/wizard-workbench#4136).

Changes

  • Adds integration-v2/feature-flags-step, a docs-only step skill fetched by the wizard's evaluate task (cli.role: internal). Its description.md is a title plus {references} and carries no instructions: the wizard's evaluate prompt owns how to evaluate the flags, and this skill supplies the posthog.com docs it reads.
  • One variant per integration framework (40), each pointing at that SDK's flag installation docs plus the shared pages: adding flag code, best practices, and local evaluation.
  • The wizard creates one example flag per side of the app (backend and frontend). Full-stack JavaScript variants (Next.js, React Router framework mode, Nuxt, TanStack Start, SvelteKit, Astro SSR and hybrid) also carry the Node.js flag docs. Server-rendered frameworks (Django, Flask, Laravel, PHP, WordPress, Rails) also carry the web flag docs for scripts in their page templates.
  • Java, Elixir, and Expo point only at the SDK library page, because their two docs files would otherwise be written to the same file name and one would be lost.
  • The step-skill parity test now covers this group, so a framework added to integration without a flag variant fails the build.

Test plan

  • npm test: 211 tests pass.
  • Served from the local dev server to the wizard branch, and exercised end to end through wizard-workbench --e2e on the Next.js and Django feature-flags apps. Rerun on Next.js after trimming description.md to docs only: passed, with both flags created inactive at 0% and each evaluated once on its own side.

LLM context

Written with Claude Code.

Adds integration-v2/feature-flags-step, the docs-only skill the wizard's feature-flags evaluate task loads. One variant per integration framework, each pointing at that SDK's flag docs plus the shared flag pages, and the step-skill parity test now covers it.
@github-actions

Copy link
Copy Markdown

🧙 Wizard CI

Run the Wizard CI and test your changes against wizard-workbench example apps by replying with a GitHub comment using one of the following commands:

Test all apps:

  • /wizard-ci all

Test all apps in a directory:

  • /wizard-ci ai-observability
  • /wizard-ci basic-integration
  • /wizard-ci mcp-analytics
  • /wizard-ci replay-vision
  • /wizard-ci revenue
  • /wizard-ci self-driving
  • /wizard-ci warehouse
  • /wizard-ci warehouse-seeded

Test an individual app:

  • /wizard-ci ai-observability/anthropic
  • /wizard-ci ai-observability/google-adk
  • /wizard-ci ai-observability/groq
Show more apps
  • /wizard-ci ai-observability/manual-capture
  • /wizard-ci ai-observability/openai
  • /wizard-ci ai-observability/openai-agents
  • /wizard-ci ai-observability/opentelemetry
  • /wizard-ci ai-observability/vercel-ai
  • /wizard-ci basic-integration/android
  • /wizard-ci basic-integration/angular
  • /wizard-ci basic-integration/astro
  • /wizard-ci basic-integration/django
  • /wizard-ci basic-integration/fastapi
  • /wizard-ci basic-integration/flask
  • /wizard-ci basic-integration/flutter
  • /wizard-ci basic-integration/javascript-node
  • /wizard-ci basic-integration/javascript-web
  • /wizard-ci basic-integration/laravel
  • /wizard-ci basic-integration/next-js
  • /wizard-ci basic-integration/nuxt
  • /wizard-ci basic-integration/python
  • /wizard-ci basic-integration/rails
  • /wizard-ci basic-integration/react-native
  • /wizard-ci basic-integration/react-router
  • /wizard-ci basic-integration/sveltekit
  • /wizard-ci basic-integration/swift
  • /wizard-ci basic-integration/tanstack-router
  • /wizard-ci basic-integration/tanstack-start
  • /wizard-ci basic-integration/vue
  • /wizard-ci mcp-analytics/custom-dispatcher
  • /wizard-ci mcp-analytics/typescript-sdk
  • /wizard-ci replay-vision/javascript-node
  • /wizard-ci replay-vision/next-js
  • /wizard-ci replay-vision/react-vite
  • /wizard-ci revenue/stripe
  • /wizard-ci self-driving/astro
  • /wizard-ci self-driving/fastapi
  • /wizard-ci self-driving/nuxt
  • /wizard-ci self-driving/react-router
  • /wizard-ci self-driving/sveltekit
  • /wizard-ci warehouse/monorepo-env
  • /wizard-ci warehouse/multi-source-next
  • /wizard-ci warehouse/stripe-node
  • /wizard-ci warehouse/zero-source
  • /wizard-ci warehouse-seeded/next-stripe
  • /wizard-ci warehouse-seeded/next-stripe-declined

Test against a wizard branch:

  • /wizard-ci all wizard:my-branch

Add wizard:<branch> to any command above to pin the wizard branch. It defaults to main.

Results will be posted here when complete.

The wizard's evaluate prompt owns the instructions. The skill supplies
only the posthog.com flag docs for each framework.
@johncwaters
johncwaters marked this pull request as ready for review September 23, 2026 22:24
@johncwaters
johncwaters requested a review from a team as a code owner September 23, 2026 22:24

@sarahxsanders sarahxsanders left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DOCS

@sarahxsanders

Copy link
Copy Markdown
Collaborator

on these bits:

  • Do the added Node.js flag docs (full-stack JavaScript variants) and web flag docs (server-rendered frameworks) give the evaluate agent what it needs, or should any variant point at different pages?
  • Java, Elixir, and Expo point only at the SDK library page to avoid a docs file-name collision. Acceptable for now?

I think we're good here, I'll be more keen to run the wizard program to observe how they work in the program

@johncwaters
johncwaters merged commit d82893d into main Sep 24, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants