portaljs-migrate
Pass
Audited by Gen Agent Trust Hub on Aug 24, 2026
Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADSPROMPT_INJECTION
Full Analysis
- [PROMPT_INJECTION]: The skill is susceptible to indirect prompt injection because it ingests and processes metadata (titles, descriptions, keywords) from external, untrusted open-data platforms.
- Ingestion points: Dataset APIs and feeds (CKAN, DCAT, Socrata, OpenDataSoft, ArcGIS) accessed via
WebFetchandcurlas described inSKILL.md. - Boundary markers: The instructions do not define explicit boundary markers or delimiters for the agent when it displays or processes ingested metadata to prevent the agent from following instructions embedded in that data.
- Capability inventory: The skill utilizes
Write,Edit,Bash(npm, node, curl, git), andWebFetchcapabilities. - Sanitization: While
SKILL.mdmentions a 'description sanitizer' and 'metadata hygiene rules', these are intended for data quality and do not fully prevent adversarial prompt injection embedded in source data. - [EXTERNAL_DOWNLOADS]: The skill performs network operations to fetch data from remote sources.
- Evidence: It uses
WebFetchandcurlto reach external platform APIs (e.g.,data.gov,data.europa.eu) as well as vendor-specific resources on GitHub (github.com/datopian/*). These actions are aligned with the skill's primary purpose of data migration. - [COMMAND_EXECUTION]: The skill instructions involve executing shell commands to perform the migration and verify the environment.
- Evidence: Use of
npx tsxto run metadata harvesting scripts,npm installfor project dependencies, andgit-lfsfor resource management. These are standard operations for the target PortalJS environment. - [CREDENTIALS_UNSAFE]: The skill requires access to a
CKAN_API_KEYfor write operations. - Evidence: The skill explicitly instructs users to provide this key via environment variables and states it should 'never [be] hardcoded', which aligns with secure development practices.
Audit Metadata