office-hours
“YC Office Hours — two modes. (gstack)”
aipkg.jsonLICENSE.txtREADME.mdSKILL.mdSKILL.md.tmpl- 01SDI-285%MEDIUM
SKILL.md:69
detailhide
The skill writes extensively to ~/.gstack/ directories without declaring this in the manifest's allowed-tools or permissions section. This violates transparency: users cannot see from the manifest that the skill modifies their home directory configuration. An attacker could weaponize this pattern to persist malicious state across sessions.
6768```bash69_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true)70[ -n "$_UPD" ] && echo "$_UPD" || true71mkdir -p ~/.gstack/sessionsfix Add a 'permissions' section to the manifest declaring all home directory writes. Document what state is modified and why. Example: `permissions: ["write:~/.gstack/", "write:~/.claude/"]`. Require explicit user consent before writing sensitive config files like ~/.gstack/.telemetry-prompted.
- 02SDI-180%MEDIUM
SKILL.md:2005
detailhide
The manifest claims the skill offers 'two modes' (brainstorming) but the preamble implements extensive telemetry, feature discovery, question tuning, builder profiling, and configuration management. This hidden functionality is not disclosed in the description. Users cannot make informed consent decisions about what data is collected and how state is modified.
2003```bash2004mkdir -p ~/.gstack/analytics2005echo '{"skill":"office-hours","event":"resources_shown","count":NUM_RESOURCES,"categories":"CAT1,CAT2","ts":"'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true2006```2007fix Update the manifest description to accurately reflect all functionality: 'Two brainstorming modes + telemetry, profiling, and multi-session context management.' Alternatively, move telemetry and profiling to a separate optional skill and make the core skill simpler.
- 03SDI-390%HIGH
SKILL.md:2001
detailhide
The manifest declares no 'permissions' section at all, yet the code extensively modifies ~/.gstack/, ~/.claude/, and project-specific state files. This is a critical transparency failure: the manifest is incomplete and does not declare the scope of modifications. An attacker could add malicious state-writing code and users would have no way to know from the manifest.
1999~/.claude/skills/gstack/bin/gstack-developer-profile --log-session '{"date":"'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'","mode":"resources","project_slug":"'"${SLUG:-unknown}"'","signal_count":0,"signals":[],"design_doc":"","assignment":"","resources_shown":["URL1","URL2","URL3"],"topics":[]}' 2>/dev/null || true2000```200120022. Log the selection to analytics:2003```bashfix Add a complete 'permissions' section to the manifest declaring all file I/O: home directory writes, project directory writes, git operations, and any external calls. Use a standardized format (similar to browser extension manifests). Make permissions explicit and reviewable.
- 04SDI-475%MEDIUM
SKILL.md:143
detailhide
The preamble comment states 'run first' with minimal description, but the actual preamble code is ~2700 lines of setup, telemetry, config management, and state mutation. Users reading the comment will underestimate the scope of operations. This is misleading framing that reduces user awareness.
141echo "CHECKPOINT_MODE: $_CHECKPOINT_MODE"142echo "CHECKPOINT_PUSH: $_CHECKPOINT_PUSH"143# Plan-mode hint for skills like /spec that branch behavior on plan-mode state.144# Claude Code exposes plan mode via system reminders; we detect best-effort145# from CLAUDE_PLAN_FILE (set by the harness when plan mode is active) andfix Replace the minimal preamble comment with an accurate summary. List the major operations: 'This preamble initializes telemetry, feature discovery, builder profiling, session tracking, and configuration management. ~80 lines of state writes, ~20 external CLI calls, telemetry opt-in gates.' Be transparent about the scope.
- 05SQP-285%MEDIUM
SKILL.md.tmpl:516
detailhide
The skill writes design documents to ~/.gstack/projects/ without explicit user confirmation of the file path or contents. The file operation uses string interpolation with user-provided SLUG and branch values, which could potentially write to unintended locations if these variables are maliciously set or corrupted. This violates the principle of confirming write operations before execution.
514If `$PRIOR` exists, the new doc gets a `Supersedes:` field referencing it. This creates a revision chain — you can trace how a design evolved across office hours sessions.515516Write to `~/.gstack/projects/{slug}/{user}-{branch}-design-{datetime}.md`.517518After writing the design doc, tell the user:fix Add an AskUserQuestion step before Phase 5 that shows the user the exact file path where the design doc will be written and asks for confirmation. Format: 'I'm about to save this design doc to: [FULL_PATH]. Proceed? (A) Yes (B) Choose different path (C) Don't save.' Validate the constructed path to ensure it stays within ~/.gstack/projects/SLUG/.