canary
“Post-deploy canary monitoring. (gstack)”
aipkg.jsonLICENSE.txtREADME.mdSKILL.mdSKILL.md.tmpl- 01SQP-270%MEDIUM
SKILL.md:31
detailhide
The preamble performs undisclosed telemetry logging, creates session tracking files, writes analytics data, and fetches configuration from ~/.gstack/ without prominent user disclosure in the skill description or an upfront consent gate. Users invoking '/canary' expect to monitor a URL; they do not expect analytics writes and remote telemetry setup to run silently.
29## Preamble (run first)3031```bash32_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true)33[ -n "$_UPD" ] && echo "$_UPD" || truefix Add a prominent disclosure in the skill description that the preamble performs telemetry and analytics writes (gated on user config). Alternatively, move all telemetry writes to the post-skill completion section (Phase 7) and add an AskUserQuestion gate in Phase 1 if telemetry has not been configured. Ensure users see what data is being collected before preamble execution.
- 02SQP-265%MEDIUM
SKILL.md:722
detailhide
The browse daemon SETUP check (Phase 1) does not display the browse binary path or confirm with the user before potentially downloading/executing the browse tool. The setup section mentions a build step but does not require user confirmation before network operations or binary execution.
720Skills that run plan reviews (`/plan-*-review`, `/codex review`) include the EXIT PLAN MODE GATE blocking checklist at the end of the skill, which verifies the plan file ends with `## GSTACK REVIEW REPORT` before ExitPlanMode is called. Skills that don't run plan reviews (operational skills like `/ship`, `/qa`, `/review`) typically don't operate in plan mode and have no review report to verify; this footer is a no-op for them. Writing the plan file is the one edit allowed in plan mode.721722## SETUP (run this check BEFORE any browse command)723724```bashfix Require explicit user consent via AskUserQuestion before running the SETUP check if the binary is not already present. Display the binary path and what it does. Do not silently fetch or build without asking.
- 03RA2Session Persistence70%MEDIUM
SKILL.md.tmpl:14
detailhide
The skill declares Write and Glob as allowed tools without clear justification or scope. Write access combined with Glob (filesystem enumeration) and no explicit constraints on what can be written creates potential for unintended file manipulation. An attacker could potentially craft inputs or modify skill logic to write files outside the intended .gstack/canary-reports directory.
allowed-tools: - Bash - Read - Write - Glob - AskUserQuestion triggers:fix Restrict Write tool usage to only the .gstack/canary-reports directory explicitly. Add validation logic to reject any write operations outside this scope. Document exactly which files and directories the skill will create and modify.
- 04RA2Session Persistence60%MEDIUM
SKILL.md.tmpl:51
detailhide
The skill creates and uses .gstack/canary-reports directory without checking for existing data, permissions, or potential path traversal issues. The combination of eval() to set SLUG, mkdir -p, and subsequent file writes could be exploited if SLUG contains malicious path components or if the directory structure is pre-compromised.
```bash eval "$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null || echo "SLUG=unknown")" mkdir -p .gstack/canary-reports mkdir -p .gstack/canary-reports/baselines mkdir -p .gstack/canary-reports/screenshots ```fix Validate SLUG output before using it in paths. Replace mkdir -p with explicit permission checks. Use absolute paths or ensure .gstack directory is properly sandboxed. Add guards against directory traversal in all file paths used throughout the skill.