
Detect
Scan a repo before LaunchDarkly onboarding so you know language, framework, monorepo targets, entrypoints, and any existing LD usage.
Overview
Detect is an agent skill for the Build phase that inventories a repository’s languages, frameworks, package managers, monorepo targets, entrypoints, and existing LaunchDarkly usage before SDK install.
Install
npx skills add https://github.com/launchdarkly/agent-skills --skill detectWhat is this skill?
- Step 1 of LaunchDarkly SDK Install (detect → plan → apply → run)
- Manifest-driven detection via package.json, go.mod, pyproject.toml, Gradle, Gemfile, .csproj, and related root files
- Infers frameworks (React, Next.js, Django, Spring, etc.) from project layout
- Flags monorepo targets and application entrypoints for later init placement
- Surfaces existing LaunchDarkly SDK usage before proposing changes
Adoption & trust: 1.2k installs on skills.sh; 16 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want LaunchDarkly in the project but do not know which SDK, which apps in a monorepo to touch, or whether LD is already partially integrated.
Who is it for?
Existing repos with multiple manifests, monorepos, or unknown prior LD setup before running sdk-install.
Skip if: Greenfield apps with no repo yet, or teams that already have an approved dual-SDK plan and only need apply/run.
When should I use this skill?
Starting LaunchDarkly SDK Install onboarding—parent Step 1 detect—before generating an integration plan.
What do I get? / Deliverables
You get a grounded stack map and LD presence summary so the agent can invoke the plan skill with real manifests and entrypoints—not invented defaults.
- Stack and framework inventory
- Monorepo targets and entrypoint list
- Summary of existing LaunchDarkly usage if any
Recommended Skills
Journey fit
How it compares
Use as structured repo reconnaissance instead of asking the agent to install an SDK from a vague stack description.
Common Questions / FAQ
Who is detect for?
Solo and indie builders (and small teams) onboarding LaunchDarkly via the agent sdk-install workflow who need accurate stack and entrypoint discovery first.
When should I use detect?
At the start of Build integrations before plan/apply—when adding LD to an existing Node, Python, Go, Java, Ruby, or .NET codebase or monorepo.
Is detect safe to install?
It is read-oriented repository analysis; review the Security Audits panel on this Prism page and your org’s policy before granting broad filesystem access to an agent.
Workflow Chain
Then invoke: plan
SKILL.md
READMESKILL.md - Detect
# Detect repository stack (SDK install) Before installing anything, you must understand the project. Identify what the project is built with and whether LaunchDarkly is already present. This skill is nested under [LaunchDarkly SDK Install (onboarding)](../SKILL.md); the parent **Step 1** is **detect**. **Next:** [Generate integration plan](../plan/SKILL.md) unless the decision tree sends you elsewhere. ### 1. Language and framework Look for the indicator files below (and related root layout), then read the relevant manifests to infer language and framework. Look for these files to identify the stack: | File | Language/Framework | |------|--------------------| | `package.json` | JavaScript/TypeScript (check for React, Next.js, Vue, Angular, Express, React Native, Electron, etc.) | | `requirements.txt`, `pyproject.toml`, `Pipfile`, `setup.py` | Python (check for Django, Flask, FastAPI) | | `go.mod` | Go (check for Gin, Echo, Fiber, Chi) | | `pom.xml`, `build.gradle`, `build.gradle.kts` | Java/Kotlin (check for Spring, Quarkus, Android) | | `Gemfile` | Ruby (check for Rails, Sinatra) | | `*.csproj`, `*.sln`, `*.fsproj` | .NET/C# (check for ASP.NET, MAUI, Xamarin, WPF, UWP) | | `composer.json` | PHP (check for Laravel, Symfony) | | `Cargo.toml` | Rust (check for Actix, Axum, Rocket) | | `pubspec.yaml` | Flutter/Dart | | `Package.swift`, `Podfile`, `*.xcodeproj` | Swift/iOS | | `AndroidManifest.xml` | Android (also check `build.gradle` for `com.android`) | | `rebar.config`, `mix.exs` | Erlang/Elixir | | `CMakeLists.txt`, `Makefile` (with C/C++ patterns) | C/C++ (check for `#include` patterns) | | `*.cabal`, `stack.yaml` | Haskell | | `*.lua`, `rockspec` | Lua | | `manifest`, `*.brs` | Roku (BrightScript) | | `wrangler.toml` | Cloudflare Workers (edge SDK) | | `vercel.json` with edge functions | Vercel Edge (edge SDK) | Read the dependency file to identify the specific framework. For `package.json`, check both `dependencies` and `devDependencies`. If you cannot identify the language or framework: **D5 -- BLOCKING:** Call your structured question tool now. - question: "I couldn't detect the project's language or framework. Which SDK would you like to use?" - options: Present the available SDKs from [SDK recipes](../../references/sdk/recipes.md) as selectable options. - STOP. Do not write the question as text. Do not continue until the user selects an option. ### 2. Package manager Identify how the project installs dependencies: | Indicator | Package Manager | |-----------|----------------| | `package-lock.json` | npm | | `yarn.lock` | yarn | | `pnpm-lock.yaml` | pnpm | | `bun.lockb` | bun | | `Pipfile.lock` | pipenv | | `poetry.lock` | poetry | | `go.sum` | go modules | | `Gemfile.lock` | bundler | Use the detected package manager for all install commands. If multiple lock files exist, prefer the one that was most recently modified. ### 3. Monorepo layout Some repositories host multiple packages or services. Look for these indicators: | File / pattern | Tool or layout | |----------------|----------------| | `pnpm-workspace.yaml` | pnpm workspaces | | `lerna.json` | Lerna | | `nx.json` | Nx | | `turbo.json` | Turborepo | | `rush.json` | Rush | | `packages/` directory with multiple `package.json` files | Generic monorepo | When any of these apply, **do not assume the repo root is the integration target**: **D5 -- BLOCKING:** Call your structured question tool now. - question: "This is a monorepo. Which package, app, or service should I integrate LaunchDarkly into?" - options: List the discovered packages/apps as selectable options. - STOP. Do not write the question as te