Claude Code, Skill
Ai Tooling
LaunchDarkly agent skills and MCP servers for feature flag management, AgentControl, and metrics
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST SECRETS_PATH_DOTENV SECRETS_ENV_READ OBFUSCATION_FILE_OVER_READ_CAP
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
evals/providers/claude-skill-agent-sdk.js, line 495
fs.rmSync(cwd, { recursive: true, force: true }); - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
skills/agentcontrol/built-in-metrics/references/langchain-tracking.md, line 36
curl -X PATCH \ - NETWORK_UNNAMED_HOST Low
Calls a fixed host that the description does not name.
skills/agentcontrol/built-in-metrics/references/langchain-tracking.md, line 36
curl -X PATCH \ - SECRETS_PATH_DOTENV Low
Mentions a .env file.
evals/scripts/aggregate.js, line 70
...(fs.existsSync(path.join(EVALS_DIR, ".env")) ? ["--env-file", path.join(EVALS_DIR, ".env")] : []), - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
evals/providers/claude-skill-agent-sdk.js, line 198
const apiKey = process.env.ANTHROPIC_API_KEY; - OBFUSCATION_FILE_OVER_READ_CAP Note
A file was over the read cap and was not fully read.
evals/package-lock.json, line 1
{
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
evals/providers/claude-skill-agent-sdk.js, line 495
fs.rmSync(cwd, { recursive: true, force: true });
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address. can reach app.launchdarkly.com. The description does not name that host. can reach api.tavily.com. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
skills/agentcontrol/built-in-metrics/references/langchain-tracking.md, line 36
curl -X PATCH \
skills/agentcontrol/built-in-metrics/references/metrics-api.md, line 48
response = requests.get(url, headers=headers, params=params)
skills/agentcontrol/configs-create/SKILL.md, line 166
curl -s "https://app.launchdarkly.com/api/v2/projects/$PROJECT/ai-configs/$CONFIG_KEY/targeting?env=$ENV" \
Show more
skills/agentcontrol/configs-create/SKILL.md, line 173
curl -X PATCH "https://app.launchdarkly.com/api/v2/projects/$PROJECT/ai-configs/$CONFIG_KEY/targeting?env=$ENV" \
skills/agentcontrol/configs-targeting/SKILL.md, line 58
curl -X GET "https://app.launchdarkly.com/api/v2/projects/{projectKey}/ai-configs/{configKey}/targeting" \
skills/agentcontrol/configs-targeting/SKILL.md, line 74
curl -X PATCH "https://app.launchdarkly.com/api/v2/projects/{projectKey}/ai-configs/{configKey}/targeting" \
skills/agentcontrol/configs-targeting/SKILL.md, line 92
curl -X PATCH "https://app.launchdarkly.com/api/v2/projects/{projectKey}/ai-configs/{configKey}/targeting" \
skills/agentcontrol/configs-targeting/SKILL.md, line 115
curl -X PATCH "..." \
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
evals/providers/claude-skill-agent-sdk.js, line 198
const apiKey = process.env.ANTHROPIC_API_KEY;
evals/scripts/aggregate.js, line 70
...(fs.existsSync(path.join(EVALS_DIR, ".env")) ? ["--env-file", path.join(EVALS_DIR, ".env")] : []),
evals/scripts/run-models.js, line 8
* still pass on Haiku, or did I overfit to Sonnet?" - without juggling .env edits.
Show more
evals/scripts/run-models.js, line 108
"--env-file", ".env",
skills/agentcontrol/built-in-metrics/references/gemini-tracking.md, line 94
const genAI = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY! });
skills/agentcontrol/built-in-metrics/references/openai-tracking.md, line 40
const ldClient = init(process.env.LD_SDK_KEY!);
skills/agentcontrol/built-in-metrics/references/openai-tracking.md, line 108
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
skills/agentcontrol/custom-metrics/SKILL.md, line 333
SDK_KEY = os.environ.get("LAUNCHDARKLY_SDK_KEY")
skills/agentcontrol/migrate/SKILL.md, line 176
sdk_key = os.environ.get("LD_SDK_KEY")
skills/agentcontrol/migrate/SKILL.md, line 200
if (!process.env.LD_SDK_KEY) {
skills/agentcontrol/migrate/SKILL.md, line 203
const ldClient = init(process.env.LD_SDK_KEY ?? 'sdk-offline');
skills/agentcontrol/projects/references/admin-tooling.md, line 39
@click.option('--save-env/--no-save-env', default=True, help='Save SDK keys to .env')
skills/agentcontrol/projects/references/admin-tooling.md, line 50
click.echo(f"✓ Saved SDK keys to .env")
skills/agentcontrol/projects/references/env-config.md, line 20
env_file: str = ".env",
skills/agentcontrol/projects/references/env-config.md, line 23
"""Save SDK key to .env file."""
skills/agentcontrol/projects/references/env-config.md, line 31
# Read existing .env content
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read.
OBFUSCATION_FILE_OVER_READ_CAP
evals/package-lock.json, line 1
{
tests/package-lock.json, line 1
{
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 01bc9468b886. can delete files. can reach a host that is not written as a fixed address. can reach app.launchdarkly.com. The description does not name that host. can reach api.tavily.com. The description does not name that host. reads a credential or environment file. a file was over the read cap and was not fully read.
Date and source
Date checked:
github.com
Commit graded: 01bc9468b8860b91f2ca340047a83e5a418340fe
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.