tdk-pr-review-buttons
Pass
Audited by Gen Agent Trust Hub on Oct 20, 2026
Risk Level: SAFECOMMAND_EXECUTIONPRIVILEGE_ESCALATIONDATA_EXFILTRATIONOBFUSCATIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [SAFE]: The skill provides configuration and scripts for a developer productivity workflow. All operations are transparent and follow security best practices.
- [COMMAND_EXECUTION]: The provided Node.js script executes local file system operations using
readFileSyncandwriteFileSyncto process PR descriptions. These operations are restricted to paths provided via environment variables within the controlled environment of a GitHub Action runner. - [PRIVILEGE_ESCALATION]: The GitHub Actions workflow instructions explicitly recommend least-privilege scoping (
permissions: {}and specific job-level permissions) and utilizepull_request_targetwhile specifically advising against checking out the PR head, which prevents unauthorized code execution from forks. - [DATA_EXFILTRATION]: No exfiltration patterns were detected. The script generates Markdown links to well-known AI services (Grok, Claude, ChatGPT) and uses Shields.io for badges. The prompt data transmitted is limited to the public URL of the Pull Request being reviewed.
- [OBFUSCATION]: Base64 encoding is utilized solely for embedding a static SVG icon into a data URI for the Codex badge. This is a standard method for including custom logos in GitHub badges and does not hide malicious intent.
- [INDIRECT_PROMPT_INJECTION]: The script processes untrusted Pull Request descriptions which could contain hidden instructions, but it incorporates protections against such attacks.
- Ingestion points: The PR body is read from a file path specified in the
BODY_FILEenvironment variable. - Boundary markers: The script uses the marker
<!-- ai-review-buttons -->to strictly isolate its generated section from the user-provided content. - Capability inventory: The script's capabilities are limited to text processing and file writing; it lacks network access or the ability to execute code derived from the input.
- Sanitization: The input PR URL is sanitized using
encodeURIComponentbefore being included in the generated output.
Audit Metadata