ship
“Ship workflow: detect + merge base branch, run tests, review diff, bump VERSION, update CHANGELOG, commit, push, create PR. (gstack)”
aipkg.jsonLICENSE.txtREADME.mdSKILL.mdSKILL.md.tmpl- 01SQP-292%HIGH
SKILL.md.tmpl:5
detailhide
The skill description claims it is a 'non-interactive, fully automated workflow' and explicitly instructs the agent to 'DO IT' and 'Run straight through' without user confirmation for major operations (PR creation, code pushes, version bumps). This normalizes autonomous execution of high-risk Git operations that could corrupt shared repositories or push breaking changes without human review. The skill design pattern treats 'do not ask' as a feature rather than recognizing it as a security boundary violation.
3preamble-tier: 44version: 1.0.05description: |6 Ship workflow: detect + merge base branch, run tests, review diff, bump VERSION,7 update CHANGELOG, commit, push, create PR. Use when asked to "ship", "deploy",fix Rewrite the skill to require explicit user confirmation gates for: (1) pushing code to origin, (2) creating/updating PRs, (3) bumping MINOR/MAJOR versions. Add a `--force-ship` flag if truly non-interactive automation is needed, but default to interactive mode. Require the user to explicitly acknowledge each gate with typed confirmation (e.g., 'yes, ship') rather than implicit consent from the initial `/ship` command.
- 02SSD-488%MEDIUM
SKILL.md.tmpl:37
detailhide
The 'Never stop for' directive (lines 52–70) explicitly lists categories where the workflow must NOT pause for user input, including 'Uncommitted changes', 'Version bump choice', 'CHANGELOG content', and 'Commit message approval'. This creates a class of operations where the agent is instructed to act unilaterally on behalf of the user without any confirmation or visibility. If the agent misunderstands scope (e.g., accidentally includes unrelated files in the shipment), the user has no opportunity to object before push.
35# Ship: Fully Automated Ship Workflow3637You are running the `/ship` workflow. This is a **non-interactive, fully automated** workflow. Do NOT ask for confirmation at any step. The user said `/ship` which means DO IT. Run straight through and output the PR URL at the end.3839**Only stop for:**fix Replace the 'Never stop for' list with 'Always summarize and ask for approval before'. For each category (uncommitted changes, auto-generated content, etc.), require the user to review and explicitly approve the auto-generated artifact (CHANGELOG, commit message) before proceeding. Use structured AskUserQuestion for each category, not silent automation.
- 03SSD-185%MEDIUM
SKILL.md.tmpl:52
detailhide
The phrase 'Never stop for: Uncommitted changes (always include them)' and 'CHANGELOG content (auto-generate from diff)' reframes unilateral decision-making as normal operation. The skill is telling the agent to override what would normally be user decisions (what to commit, what the changelog says) without asking. This is a soft version of 'ignore safeguards' — it's not a direct instruction to break rules, but it normalizes the agent making assumptions about user intent.
50- TODOS.md disorganized and user wants to reorganize (ask — see Step 14)5152**Never stop for:**53- Uncommitted changes (always include them)54- Version bump choice (auto-pick MICRO or PATCH — see Step 12)fix Reframe auto-actions as 'propose and request approval' rather than 'do silently'. For CHANGELOG generation, ask the user to review and edit before commit. For uncommitted changes, explicitly list what will be included and require confirmation. This preserves the 'streamlined' feel while maintaining user agency.
- 04SSD-380%MEDIUM
SKILL.md.tmpl:644
detailhide
Step 20 instructs the skill to log coverage and plan completion data to `~/.gstack/projects/$SLUG/$BRANCH-reviews.jsonl` without any user disclosure that this telemetry is being collected. The log contains sensitive metadata (coverage%, version, branch name) that reflects on the quality of the user's work. There is no notice in the skill description, no opt-in prompt, and no explanation of where this data goes or how it is used.
642643```bash644# Export [gstack-context] blocks from all WIP commits on this branch.645# This file becomes input to the CHANGELOG entry and may inform PR body context.646mkdir -p "$(git rev-parse --show-toplevel)/.gstack"fix Add explicit disclosure in the skill description: 'This skill logs anonymized metrics (coverage %, plan completion %) to ~/.gstack/projects for trend analysis.' Before Step 20, use AskUserQuestion to offer opt-out: 'Would you like to log ship metrics for retrospective trending? (Logs: coverage %, plan completion, version, branch) A) Yes (default), B) No for this run, C) Never (disable in config).' Honor user choice and record it in config.