AI Security Review
scanned 4h ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. No install-time malicious behavior is established, but the package provides an explicit installer for a Claude Code MCP extension. It can add package-owned auto-allowed MCP permissions and hooks after user invocation.
Decision evidence
public snapshot- lib/dist/bin/specship.js runs installer when invoked with no args, not via npm lifecycle.
- lib/dist/installer/targets/claude.js writes Claude MCP config, permissions, hooks, slash commands, subagent, and optional status line.
- lib/dist/installer/targets/shared.js auto-allows mcp__specship__ tools including designer_* tools.
- lib/dist/installer/index.js can run npm install -g @specship/specship during interactive install and update flows.
- lib/dist/update/run-installer.js spawns npm i -g @specship/specship@latest or shell install command only through specship update.
- package.json has no preinstall/install/postinstall lifecycle hooks.
- bin/specship only execs bundled node with lib/dist/bin/specship.js on explicit user invocation.
- Installer prompts unless --yes/flags are supplied and targets first-party SpecShip Claude integration.
- Claude writes are scoped to specship entries and marker-owned hooks/commands; uninstall removes matching owned entries.
- JIRA credentials are saved only via explicit specship jira configure and chmod 0600.
- No hardcoded exfiltration endpoint or credential harvesting loop found in inspected files.
Source & flagged code
9 flagged · loading sourcePackage source references child process execution.
lib/dist/update/run-installer.jsView on unpkg · L12Package source references a known benign dynamic code generation pattern.
lib/dist/bin/specship.jsView on unpkg · L250Package source references dynamic require/import behavior.
lib/dist/ui/shimmer-worker.jsView on unpkg · L2A single source file combines environment access, network access, and code or shell execution; review context before blocking.
lib/dist/designer/cdp-ensure.jsView on unpkg · L9This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.
lib/dist/installer/index.jsView on unpkgPackage source invokes a package manager install command at runtime.
lib/dist/installer/index.jsView on unpkg · L128Package ships WebAssembly modules.
lib/dist/extraction/wasm/tree-sitter-scala.wasmView on unpkgPackage ships high-entropy non-source blobs.
lib/dist/ui/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2View on unpkg