review
“Pre-landing PR review. (gstack)”
specialists
aipkg.jsonchecklist.mddesign-checklist.mdgreptile-triage.mdLICENSE.txtREADME.mdSKILL.mdSKILL.md.tmplspecialists/api-contract.mdspecialists/data-migration.mdspecialists/maintainability.mdspecialists/performance.mdspecialists/red-team.mdspecialists/security.mdspecialists/testing.mdTODOS-format.md- 01SQP-285%HIGH
SKILL.md.tmpl:71
detailhide
The skill executes git commands and accesses repository internals without warning users about potential shell injection vectors or that diff content may contain malicious code. If a PR diff contains code designed to exploit the skill's processing pipeline, the skill processes and executes it. Users are not informed of the security implications.
69Fetch the latest base branch to avoid false positives from stale local state:7071```bash72git fetch origin <base> --quiet73```fix Add an explicit warning in Step 1 or Step 3: 'This skill will execute git commands and analyze diff content. Ensure you trust the source of this PR and that your repository is not compromised. Diff content may influence recommendation behavior.' Document which git operations modify state vs. read-only.
- 02SQP-280%MEDIUM
SKILL.md.tmpl:88
detailhide
The skill integrates with Greptile (external API), GitHub API (gh command), and potentially performs web searches. These external calls transmit code content and receive guidance without explicit user consent or warning. If APIs are compromised or connections intercepted, malicious analysis guidance could be injected into fix recommendations.
86Check whether this PR's claimed VERSION still points at a free slot in the queue. Advisory only — never blocks review; just informs the reviewer about landing-order risk.8788```bash89BRANCH_VERSION=$(git show HEAD:VERSION 2>/dev/null | tr -d '\r\n[:space:]' || echo "")90BASE_BRANCH=$(gh pr view --json baseRefName -q .baseRefName 2>/dev/null || echo main)fix Add warning before Step 2.5: 'This review may call external APIs (Greptile, GitHub) and perform web searches. Code content will be transmitted. Ensure you have appropriate data governance agreements in place. You can disable integrations by setting environment variables (e.g., SKIP_GREPTILE=1).'
- 03SQP-275%MEDIUM
SKILL.md.tmpl:276
detailhide
Step 5.8 writes review results to a logging system without user consent. The skill auto-executes `gstack-review-log` with compiled finding data, including file paths, line numbers, and potentially sensitive information about code review findings. This state mutation happens without explicit approval.
274recognize that Eng Review was run on this branch.275276Run:277278```bashfix Require explicit user confirmation before writing to the review log. Output the command that will be run and ask: 'Persist this review to the engineering log? (yes/no)' before executing. Alternatively, make logging opt-in via environment variable.
- 04SQP-275%MEDIUM
greptile-triage.md:182
detailhide
The skill writes to user home directory paths (~/.gstack, ~/.gstack/projects/$REMOTE_SLUG) without explicit user confirmation or warning. An attacker could craft a malicious PR that, when processed by this skill, writes arbitrary content to these history files, potentially poisoning the suppression mechanism or creating files that could be executed by other processes.
180---181182## History File Writes183184Before writing, ensure both directories exist:fix Add explicit user confirmation before writing to history files. Display the intended write operation and require user approval. Alternatively, validate all data being written (especially file-patterns and categories) against a strict whitelist, and implement atomic writes with backup/rollback capability. Consider using a temporary file with validation before moving to the final location.
- 05SSD-480%MEDIUM
SKILL.md.tmpl:49
detailhide
Step 2 requires reading `.claude/skills/review/checklist.md` without verifying its integrity. If this file is modified (e.g., via a compromised PR or repository injection), the skill will blindly apply an attacker-controlled checklist that redefines 'safe' patterns. The skill halts without the file but does not verify its authenticity.
47{{PLAN_COMPLETION_AUDIT_REVIEW}}4849## Step 2: Read the checklist5051Read `.claude/skills/review/checklist.md`.fix Add integrity verification: Compute the SHA-256 hash of checklist.md and compare against a signed manifest in the skill definition. Alternatively, embed the checklist content directly in SKILL.md.tmpl rather than externalizing it. At minimum, warn users: 'Review checklist loaded from repository—ensure it has not been modified maliciously.'
- 06SSD-475%MEDIUM
SKILL.md.tmpl:215
detailhide
The Greptile integration (Step 2.5) normalizes trusting external third-party analysis without verification. The skill then folds Greptile findings directly into the Fix-First flow, applying auto-fixes based on third-party guidance. If Greptile's infrastructure is compromised or returns malicious recommendations, the skill applies those fixes automatically.
213**Rationalization prevention:** "This looks fine" is not a finding. Either cite evidence it IS fine, or flag it as unverified.214215### Greptile comment resolution216217After outputting your own findings, if Greptile comments were classified in Step 2.5:fix Require explicit user review before applying any auto-fix based on Greptile guidance. Segregate Greptile findings in the output and present them for approval: '[GREPTILE] ... Approve: yes/no' rather than auto-fixing. Document Greptile's trust status and any SLAs.