unfreeze
“Clear the freeze boundary set by /freeze, allowing edits to all directories again. (gstack)”
aipkg.jsonLICENSE.txtREADME.mdSKILL.mdSKILL.md.tmpl- 01SDI-185%MEDIUM
SKILL.md:28
detailhide
The skill writes analytics data to ~/.gstack/analytics/ without explicit disclosure in the skill description or user confirmation. This undisclosed tracking of skill usage, repository information, and timestamps violates user privacy expectations and transparency principles. Users invoking this skill are not informed they are being tracked.
2627```bash28mkdir -p ~/.gstack/analytics29echo '{"skill":"unfreeze","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 || true30```fix Remove the analytics logging entirely, or if telemetry is required, add explicit disclosure to the skill description stating what data is collected, where it is stored, and how users can opt-out. Require explicit user consent before writing any analytics data.
- 02SDI-275%LOW
SKILL.md:28
detailhide
The skill's stated purpose is to clear edit restrictions, but it includes analytics logging that goes beyond this scope. This scope creep indicates the skill is performing hidden functions not justified by its documented purpose, which undermines user trust and transparency.
2627```bash28mkdir -p ~/.gstack/analytics29echo '{"skill":"unfreeze","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 || true30```fix If analytics are needed, they should be implemented at the framework level (gstack), not embedded in individual skills. Remove analytics from the skill or update the skill description to explicitly document all side effects.
- 03SDI-285%MEDIUM
SKILL.md.tmpl:24
detailhide
The skill writes analytics data to ~/.gstack/analytics without explicit user consent or configuration option. This capability extends beyond the stated purpose of clearing freeze boundaries and creates persistent tracking of repository information. Even though the append operation fails silently, the intent to track usage is evident and privacy-invasive.
2223```bash24mkdir -p ~/.gstack/analytics25echo '{"skill":"unfreeze","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 || true26```fix Remove the analytics logging code entirely, or if usage tracking is truly necessary, make it opt-in via configuration, clearly document it in the skill description, and provide a way to disable it. Ensure users are explicitly informed about what data is collected.
- 04SQP-280%MEDIUM
SKILL.md:39
detailhide
The skill deletes the freeze-dir.txt file without any confirmation step. While this is the intended behavior, there is no safety mechanism to prevent accidental invocation or to require user acknowledgment before permanent state modification. Users could accidentally unfreeze critical edit restrictions.
37if [ -f "$STATE_DIR/freeze-dir.txt" ]; then38 PREV=$(cat "$STATE_DIR/freeze-dir.txt")39 rm -f "$STATE_DIR/freeze-dir.txt"40 echo "Freeze boundary cleared (was: $PREV). Edits are now allowed everywhere."41elsefix Add an interactive confirmation prompt before deletion, such as: `read -p 'Are you sure you want to clear the freeze boundary? (yes/no): ' confirm && [ "$confirm" = "yes" ] || exit 1` before executing the rm command.
- 05SQP-285%MEDIUM
SKILL.md:28
detailhide
The undisclosed analytics tracking collects repository information, timestamps, and skill usage without informed consent. This represents data collection behavior not explicitly acknowledged in the skill manifest or description, violating privacy and transparency standards.
2627```bash28mkdir -p ~/.gstack/analytics29echo '{"skill":"unfreeze","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 || true30```fix Remove the analytics logging block entirely, or implement a documented, opt-in telemetry system with user consent mechanisms and clear privacy policies.
- 06SQP-275%MEDIUM
SKILL.md.tmpl:35
detailhide
The skill silently deletes the freeze-dir.txt state file without any confirmation, warning, or dry-run preview. If a user accidentally triggers this skill or is unaware of the consequences, they lose their edit restrictions without recourse, which could lead to unintended edits across the codebase.
33if [ -f "$STATE_DIR/freeze-dir.txt" ]; then34 PREV=$(cat "$STATE_DIR/freeze-dir.txt")35 rm -f "$STATE_DIR/freeze-dir.txt"36 echo "Freeze boundary cleared (was: $PREV). Edits are now allowed everywhere."37elsefix Add a confirmation prompt before deletion: ask the user to confirm they want to clear the freeze boundary. Display the current freeze directory before deletion and provide an option to cancel.
- 07SSD-385%MEDIUM
SKILL.md:28
detailhide
Analytics collection occurs without explicit user consent or clear disclosure. The skill description does not mention any tracking or data collection, and there is no mechanism for users to consent to or opt-out of this behavior. This violates privacy principles and user expectations.
2627```bash28mkdir -p ~/.gstack/analytics29echo '{"skill":"unfreeze","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 || true30```fix Either remove the analytics logging entirely, or: (1) Add explicit disclosure to the skill description listing what data is collected, (2) Implement an opt-in mechanism users can configure, (3) Provide clear documentation of how data is used and retained.
- 08SSD-180%HIGH
SKILL.md.tmpl:4
detailhide
The skill is explicitly designed to bypass the `/freeze` permission boundary that restricts edits to specific directories. While framed as a convenience feature ('Use when you want to widen edit scope'), the core functionality undermines user-imposed security controls. This is dangerous in agentic contexts where an agent could be tricked into calling this skill to escalate edit permissions.
2name: unfreeze3version: 0.1.04description: |5 Clear the freeze boundary set by /freeze, allowing edits to all directories6 again. Use when you want to widen edit scope without ending the session.fix Add stronger safeguards: require explicit user confirmation with clear explanation of the security implications, log who cleared the freeze and when, consider limiting unfreeze to only widen (not fully remove) restrictions, or require re-authentication for sensitive operations.
- 09SSD-380%MEDIUM
SKILL.md.tmpl:23
detailhide
The skill logs sensitive metadata including repository name, timestamp, and skill name to a persistent analytics file. This creates an audit trail that persists beyond the session and could be used to fingerprint user activity, repositories being worked on, and when security-sensitive operations (like removing edit restrictions) occur.
21Remove the edit restriction set by `/freeze`, allowing edits to all directories.2223```bash24mkdir -p ~/.gstack/analytics25echo '{"skill":"unfreeze","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 Remove the analytics logging entirely. If metrics are needed, use an ephemeral, opt-in logging mechanism that does not persist to disk, does not include repository names, and is clearly documented to the user.