Trust Assessment
specification-extractor received a trust score of 77/100, placing it in the Mostly Trusted category. This skill has passed most security checks with only minor considerations noted.
SkillShield's automated analysis identified 3 findings: 0 critical, 1 high, 1 medium, and 1 low severity. Key findings include Missing required field: name, Unvalidated File Path in PDF Processing, Unpinned Dependency in Installation Instructions.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
Last analyzed on February 14, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings3
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Unvalidated File Path in PDF Processing The `extract_from_pdf` method directly uses the `pdf_path` argument with `pdfplumber.open()` without any validation or sanitization. If `pdf_path` is controlled by an untrusted source (e.g., user input to the AI agent), an attacker could provide a path to an arbitrary file (e.g., `../../../../etc/passwd`) leading to data exfiltration or denial of service if the file is large or malformed. The `path.name` is also used in the report, potentially leaking sensitive filenames. Implement strict validation for the `pdf_path` argument to ensure it points to an allowed PDF file within a designated, sandboxed directory. Prevent path traversal by resolving the canonical path and checking against allowed prefixes. Consider using a temporary file system or a more secure file handling mechanism if the skill is exposed to untrusted inputs. | LLM | SKILL.md:108 | |
| MEDIUM | Missing required field: name The 'name' field is required for claude_code skills but is missing from frontmatter. Add a 'name' field to the SKILL.md frontmatter. | Static | skills/datadrivenconstruction/specification-extractor/SKILL.md:1 | |
| LOW | Unpinned Dependency in Installation Instructions The `pip install pdfplumber` instruction specifies a dependency without pinning it to a particular version. This can lead to non-reproducible builds, unexpected breaking changes, or the introduction of new vulnerabilities if a future version of `pdfplumber` contains security flaws. While `pdfplumber` is a legitimate library, unpinned dependencies are a common supply chain risk. Pin the `pdfplumber` dependency to a specific, known-good version (e.g., `pdfplumber==0.7.0`) to ensure reproducible and secure installations. Use a `requirements.txt` file with exact versions. | LLM | SKILL.md:372 |
Scan History
Embed Code
[](https://skillshield.io/report/fcb6d882429f6fd7)
Powered by SkillShield