landing-report
“Read-only queue dashboard for workspace-aware ship. (gstack)”
aipkg.jsonLICENSE.txtREADME.mdSKILL.mdSKILL.md.tmpl- 01SDI-192%MEDIUM
SKILL.md:4
detailhide
The skill manifest declares 'read-only queue dashboard' but the preamble writes session state files, telemetry data, analytics logs, and marker files throughout ~/.gstack/. This is a capability mismatch that violates the stated contract and could mask side effects from users expecting purely read-only behavior.
2name: landing-report3version: 0.1.04description: Read-only queue dashboard for workspace-aware ship. (gstack)5triggers:6 - landing reportfix Either: (A) Update manifest description to 'Read-only queue dashboard with session telemetry and config management' to match actual behavior, or (B) Move all state-writing code to a separate initialization skill and call it conditionally only if the user explicitly opts in. Document the side effects prominently in the preamble.
- 02SDI-285%MEDIUM
SKILL.md:62
detailhide
A read-only dashboard skill collects granular telemetry (skill name, repo name, session ID, timestamps) and writes it to ~/.gstack/analytics/skill-usage.jsonl without explicit per-invocation consent. This creates a privacy leakage risk where users expect a simple queue dashboard but get persistent analytics collection.
60_QUESTION_TUNING=$(~/.claude/skills/gstack/bin/gstack-config get question_tuning 2>/dev/null || echo "false")61echo "QUESTION_TUNING: $_QUESTION_TUNING"62mkdir -p ~/.gstack/analytics63if [ "$_TEL" != "off" ]; then64echo '{"skill":"landing-report","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || truefix Move telemetry collection to an opt-in initialization step. Require explicit user consent via AskUserQuestion before writing any analytics. Store consent state in ~/.gstack/.telemetry-prompted and skip writes entirely if telemetry is 'off'. Make it clear in the skill description that telemetry will be collected.
- 03SDI-388%HIGH
SKILL.md:11
detailhide
The manifest declares 'allowed-tools: [Bash, Read]' but the skill writes files extensively (mkdir -p ~/.gstack/*, touch files, echo to .jsonl, git add/commit). It also calls external binaries (gstack-config, gstack-telemetry-log, gstack-learnings-log) which are not enumerated in allowed-tools. This is a tool-use privilege violation that allows undeclared capabilities.
09 - what version comes next10 - show open PR versions11allowed-tools:12 - Bash13 - Readfix Update the allowed-tools list to include: Write, Bash, Read, and any external binary calls. Or restrict the skill to declared tools only: remove all mkdir, touch, echo-to-file, git-mutating commands, and external binary calls. Declare dependencies explicitly.
- 04SDI-479%MEDIUM
SKILL.md:752
detailhide
The Step 1 section is labeled 'Detect platform and base branch' and contains only git/gh queries, appearing read-only. However, the preamble that runs before Step 1 executes ~/.claude/skills/gstack/bin/gstack-* binaries with full side effects (session creation, telemetry, config mutation). The documentation is misleading about when side effects occur.
750---751752## Step 1: Detect platform and base branch753754Same detection as other gstack skills.fix Reorganize the skill structure: clearly separate the 'Preamble (side-effecting initialization)' from 'Step 1 (read-only queries)'. Or move all side effects into a dedicated initialization section at the end (after the user is shown the dashboard) and mark it as optional/skippable. Add a note in Step 1: 'Note: preamble has already executed state writes; this step is read-only.'