T08 · Insecure Dependencies
- Location
bin/install.mjs:50- Finding
Unpinned Runtime Dependency Installed with Lifecycle Scripts Enabled
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its startup-coaching purpose, but its installer automatically runs an unpinned npm dependency install that creates avoidable supply-chain execution risk.
Review this before installing with npx. The coaching instructions themselves look purpose-aligned, but the installer performs an automatic npm dependency install for diagram rendering. Prefer installing through a controlled ClawHub flow, pin the package version if using npx, and treat the diagram renderer dependency as third-party code that may run during setup.
bin/install.mjs:50Unpinned Runtime Dependency Installed with Lifecycle Scripts Enabled
The README explicitly states that simply describing a problem can activate the skill implicitly. This broad, natural-language trigger model is risky because it enables accidental invocation from common text, making it easier for unrelated conversations or adversarial content to route into the skill and influence agent behavior without deliberate user consent.
Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.
Most constraint work has a feedback delay. A content strategy takes 4-8
weeks to show up in acquisition. An onboarding improvement takes 2-3
cohorts to show up in activation. Set a minimum evaluation window (usually
one GOLEAN cycle) and don't judge results before it closes.
### Estimate time honestly
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
npx @swiftner/factory-floor
Installs to `~/.claude/skills/factory-floor/`. Triggers automatically when you talk about priorities, bottlenecks, what to build, or why growth is flat.
### OpenAI Codex
The README says the skill triggers automatically when users talk about broad topics like priorities, bottlenecks, or growth. Overly broad implicit activation can cause the skill to engage unexpectedly in ordinary conversations, increasing the chance of unintended prompt injection surface, context capture, or interference with other tasks.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
npx @swiftner/factory-floor
Installs to `~/.codex/skills/factory-floor/`. Codex picks it up automatically — trigger with `/skills` or `$` to mention it directly, or just describe your problem and it will activate implicitly.
Or install via ClawHub:
The analyzer content is materially inconsistent with the skill manifest: the skill is advertised as a startup coaching assistant, but the file defines a benchmark-results interpreter for evaluation analysis. This creates a skill-definition integrity issue where the wrong behavior may be invoked, leading to misleading outputs, policy bypass of intended scope, and erosion of operator trust in what the skill actually does.
The installer writes multiple files into ~/.claude/skills/factory-floor automatically without prompting the user or offering a dry-run/review step. Although the target path is skill-related, silent modification of a user's home directory reduces transparency, can overwrite existing local content, and is risky in tooling that users may execute with broad trust.
The installer runs npm install --silent inside a copied scripts directory, which executes arbitrary package lifecycle scripts from that directory's dependency tree. For a startup coaching skill, network dependency installation is not intrinsic to the stated purpose, so this expands the attack surface significantly and could lead to arbitrary code execution during install if dependencies are compromised or the package contents are tampered with.
The installer executes a shell command without any prior warning or confirmation, causing immediate command execution on the user's machine during installation. Because this is a non-essential behavior for a coaching skill and the command invokes package installation, it creates unexpected code-execution and supply-chain risk that users may not anticipate from the skill description.
The phrase "Load this when you need deeper diagnostic questions or coaching guidance" is a vague trigger for a markdown skill because it uses broad everyday language without clear scope, constraints, or exclusion conditions. This can overlap with many general coaching or advice situations and does not specify when this pattern should or should not be used.
The phrase 'Load this when the founder's framing seems wrong' is an ambiguous trigger for a markdown skill because 'seems wrong' is subjective and does not define clear boundaries for when the skill should or should not activate. The description also lacks explicit trigger examples or exclusion conditions, increasing the risk of overbroad invocation.
The file explicitly says to load this content when a founder asks for a weekly review or check-in, which is relatively broad trigger language and can cause the skill to activate in situations that only loosely match the user's intent. While this is not directly malicious and the content itself is low-risk coaching guidance, overbroad invocation can lead to unintended routing, irrelevant guidance, and reduced trust in agent behavior.
The skill explicitly advises founders to track signups, activation, conversion, churn, and later mine support tickets, churn conversations, and lost-deal notes, but provides no caution about collecting only necessary data, avoiding sensitive personal data, or complying with privacy obligations. In a business-operations skill, this omission can normalize broad customer-data collection and reuse in ways that expose personal or confidential information, especially when founders use ad hoc spreadsheets or lightweight tooling.
The dependency is specified with a caret range (^1.1.3), which allows newer compatible versions to be installed without explicit review. This weakens supply-chain reproducibility and can introduce vulnerable or malicious updates unexpectedly, especially in automated installs or CI environments.
"private": true,
"type": "module",
"dependencies": {
"beautiful-mermaid": "^1.1.3"
}
}
The manifest references beautiful-mermaid without pinning an exact version, while the package has a known advisory involving SVG attribute injection that may lead to cross-site scripting-like behavior when rendered in downstream consumers. Because the allowed version range is broad enough to make the installed version uncertain from the manifest alone, the project may resolve to an affected release and expose users or developers who process untrusted diagram content.
Detected: suspicious.dangerous_exec