All skills
launchdarkly avatar

/onboarding

@45fcc25 official

Scripted onboarding for LaunchDarkly: quiet execution, fixed sequence, SDK install, first flag with a live reveal, MCP offered afterwards. Enforces step completion before advancing and redirects drift. Use when adding LaunchDarkly, setting up or integrating feature flags in a project, SDK integration, or 'onboard me'.

Use this Skill: https://skilld.dev/gh/launchdarkly/agent-skills/onboarding

This session only. Nothing lands on disk.

referencessdksnippetsnode-server-sdk.md

≈695 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Node.js (Server) — SDK detail

Includes: Patterns below follow the Get started, Initialize the client, Evaluate a context, and Promises and async sections of the Node.js server-side SDK reference. Use one initialization strategy (waitForInitialization or the ready event—not both at once unless you know why).

Singleton client

LDClient must be a singleton per LaunchDarkly environment—do not create a new client per request. Use your real SDK key from env vars, not a literal in source.

import { init } from '@launchdarkly/node-server-sdk';

const client = init(process.env.LAUNCHDARKLY_SDK_KEY);

Wait for initialization (startup)

Run this once during process startup—for example before your HTTP server accepts connections, inside whatever async bootstrap your framework provides. The public docs use { timeout: 10 } (seconds); adjust as needed.

Promise style (from Promises and async):

client
  .waitForInitialization({ timeout: 5 })
  .then(() => {
    // Initialization complete — safe to evaluate flags and/or start serving traffic.
  })
  .catch((err) => {
    // Timeout or initialization failed
  });

Async/await (same topic—must live inside an async function your app already uses for startup):

try {
  await client.waitForInitialization({ timeout: 5 });
  // Initialization complete
} catch (err) {
  // Timeout or initialization failed
}

Alternative: the docs also document a ready event and callback-style client.variation(..., (err, value) => { ... }) under Evaluate a context—use that form if it fits your codebase better.

Evaluate a flag (when handling work)

The docs state that in production you should invoke variation as needed (not only once at import). Use await inside an async route handler, service method, job, etc.

const context = {
  kind: 'user',
  key: 'example-user-key',
  name: 'Example User',
};

const showFeature = await client.variation('example-flag-key', context, false);

For a boolean flag you may use boolVariation if you prefer; the official getting-started examples use variation with a boolean default.

Source: SKILL.md on GitHub

2 warnings16d4 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill provides a guided, multi-step onboarding workflow to integrate LaunchDarkly SDKs into a project. It strictly enforces safe defaults such as isolated git branches, avoiding hardcoded secrets by guiding users on environment variable setup with explicit consent, and leverages standard tools or hosted Model Context Protocol (MCP) integrations with no hazardous behaviors identified.

  • Socket16d

    1 alert: gptAnomaly

  • Snyk16d

    Risk: LOW · No issues

  • ZeroLeaks5mo

    Scan incomplete

Signed by skilld at 45fcc25. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated last month
metadata
{
  "author": "launchdarkly",
  "version": "0.3.0"
}
Other metadata
compatibility
Requires an MCP-capable coding agent and `npx` on PATH for optional skill installs. SDK keys, client-side IDs, and mobile keys are only needed when the SDK key step runs.
  • MCP
  • TypeScript
  • launchdarkly
  • feature-flags
  • sdk
  • onboarding
  • integration
  • javascript

README badge

README badge for launchdarkly/agent-skills/onboarding

Orchestrates LaunchDarkly SDK setup in an existing codebase: creates a resumable onboarding log, explores the repo to detect the language and framework, installs companion flag-management skills, configures the LaunchDarkly MCP server, installs and initializes the SDK, and scaffolds a first feature flag. Designed for projects adding LaunchDarkly from scratch or integrating feature flags into an existing codebase.

Generated from the current SKILL.md.

Does this skill require a LaunchDarkly account upfront?
No. Steps 0–3 (log, explore, detect, install skills) run without an account. Account status is confirmed naturally during Step 4 via MCP OAuth, or surfaced at Step 5 if you need to provide SDK keys manually.
What coding agent platforms does this work with?
It requires an MCP-capable coding agent (like Cursor or Claude Code). Task tracking uses your agent's native tool if available (TodoWrite in Cursor, TaskCreate in Claude Code), or falls back to an in-chat checklist.
Do I need SDK keys or API tokens before starting?
No. The skill defers credential collection until the step that actually uses them — MCP uses OAuth (Step 4), and the SDK install collects keys only when wiring environment variables (Step 5).
Can I pause and resume onboarding later?
Yes. Step 0 writes a living onboarding log file (LAUNCHDARKLY_ONBOARDING.md) that tracks progress, so a new session or another agent can pick up where you left off.
What if I do not have the MCP server configured?
The skill falls back to ldcli or REST API for SDK discovery and flag creation, though MCP is preferred. Onboarding remains completable without it.

Generated from the current SKILL.md. These answers refresh after source changes.