feat: add LaunchDarkly feature-flag guidance to engineer and tech-lead plugins#158
feat: add LaunchDarkly feature-flag guidance to engineer and tech-lead plugins#158withinfocus wants to merge 3 commits into
Conversation
…d plugins Ground both agents in Bitwarden's feature-flag practice and wire in the optional LaunchDarkly plugin. bitwarden-software-engineer (1.1.0): - Feature-flag conventions per contributing docs: server-side .NET uses Bitwarden.Server.Sdk.Features (IFeatureService, FeatureFlagKeys, [RequireFeature]); clients consume flag state from the /config endpoint. - Discipline rules: one flag per independently-releasable feature; release-vs-operational (kill switches may be permanent). - Optional launchdarkly plugin for the flag lifecycle (discovery, create, targeting, cleanup); flag-create can automate the currently-manual LaunchDarkly-side creation, gated on confirming with the flag owner. bitwarden-tech-lead (2.4.0): - architecting-solutions: "Feature-flag new work by default" principle (placement, one-flag-per-feature, default off, gradual rollout, release-vs-operational) plus a matching Red Flag. - Optional launchdarkly plugin for the release-strategy side (guarded rollout, experiment/metric setup), carved out as an explicit exception to the "all cross-plugin skills required" contract. Adds rollout/rollouts to the cspell dictionary.
Plugin Validation Summary — PR #158Result: ✅ All checks passed. No critical, major, or minor errors found. Two optional (warning-level) suggestions are noted below. Validated 2 changed plugins across 9 files using the
1. Plugin Structure Validation (plugin-validator)
Version consistency confirmed across CHANGELOG ↔ plugin.json ↔ marketplace.json for both plugins. 2. Skill Review (skill-reviewer)
Warnings (optional, not blocking):
3. Security Validation (reviewing-claude-config)No security issues found.
ConclusionBoth plugins are structurally sound, correctly versioned, changelogged, and free of security concerns. No must-fix items. The two warnings above are optional polish and do not block the PR. |
🤖 Bitwarden Claude Code ReviewOverall Assessment: APPROVE Reviewed the LaunchDarkly feature-flag guidance added to the Code Review DetailsNo blocking or actionable findings.
|
…tions - Break the dense feature-flag principle into a nested sub-list for scannability. - Trim the "always used for new work" clause repeated in the Red Flag. No behavior change; refines guidance added earlier in this PR.
The SDK/evaluation detail (Bitwarden.Server.Sdk.Features, IFeatureService, /config) is behavioral guidance that belongs in AGENT.md, where it already lives. Other cross-plugin integrations carry only a table row, not a prose paragraph; this drops the duplicated block. The launchdarkly row in the cross-plugin table still covers the integration at README altitude.
🎟️ Tracking
Advances ARCH-43: Feature flag lifecycle management. This PR delivers part of that initiative's standards-and-guidance work at the plugin layer.
📔 Objective
Ground the software-engineer and tech-lead agents in how Bitwarden actually uses feature flags, and wire in LaunchDarkly's optional
ai-toolingplugin so its skills get used when they're installed.bitwarden-software-engineer→ 1.1.0Bitwarden.Server.Sdk.Featurespackage (IFeatureService,FeatureFlagKeys,[RequireFeature]) instead of a hand-rolled abstraction or the raw LaunchDarkly SDK. Clients are simple consumers that read flag state from the server's/configendpoint.launchdarklyplugin covers the flag lifecycle (flag-discovery/flag-command,flag-create,flag-targeting,flag-cleanup). Creating the flag is a manual tech-lead or manager step today;flag-createcan automate it over MCP, but only after confirming with whoever owns the flag.bitwarden-tech-lead→ 2.4.0architecting-solutionsgains a "Feature-flag new work by default" principle (decide placement up front, one flag per feature, default off, gradual rollout instead of a binary flip, release vs operational) plus a Red Flag for feature work that ships without a flag when one is warranted.launchdarklyplugin covers the release-strategy side (guarded-rollout,experiment-setup,metric-choose/metric-create). It's an explicit exception to the plugin's "all cross-plugin skills required" rule, so the agent still works when it isn't installed.Both plugins gate their LaunchDarkly guidance on the plugin being installed and its hosted MCP server being configured (install link included). Version bumps and changelog entries are part of the PR, and
rollout/rolloutsare added to the cspell dictionary.