Notre avis
Finalise un travail en cours en enchaînant contrôles qualité, commit, push et création de pull request selon un processus strict de neuf étapes.
Points forts
- Processus en 9 étapes obligatoires avec compteur de progression affiché, ce qui évite les workflows abandonnés en cours de route.
- Détecte les commits sur master/main et propose de créer une branche de fonctionnalité, avec prévisualisation des opérations destructrices comme reset --hard.
- Contrôles qualité contextuels : ignore les lint/build déjà lancés d'après l'historique de conversation et module la sévérité selon le type de fichier.
- Points de validation utilisateur explicites avant les étapes sensibles.
Limites
- Le préfixe de branche est codé en dur sur un auteur précis (CamSoper/) et doit être adapté.
- Les catégories de fichiers et chemins (content/docs, static/programs) sont propres à un dépôt de site donné.
- Suppose des changements non commités et l'outil AskUserQuestion de Claude Code pour les choix interactifs.
À utiliser lorsque des modifications non commitées sont prêtes et que vous voulez un chemin reproductible du staging jusqu'à la pull request.
À éviter pour une correction d'une seule ligne ou dans un dépôt dont les conventions de branches et d'arborescence diffèrent de celles prévues.
Analyse de sécurité
PrudenceThe skill performs standard Git workflow operations (status, branch, add, commit, push) with multiple user approval checkpoints. The main risk is the destructive reset --hard option, which is offered as an explicit choice and preceded by a warning, so it is a caution rather than risky. No exfiltration, obfuscation, or unsafe external commands are present.
- •Includes an optional `git reset --hard origin/master` that discards all uncommitted changes, although it requires explicit user confirmation and a warning.
- •Pushes commits to a remote repository, which is a network operation that modifies shared state.
- •No allowed-tools are declared, but the skill clearly instructs shell/git commands, which may bypass tool restrictions.
Exemples
I've finished the caching docs and updated the program examples. Run /shipit to lint, test the examples, commit, and open a PR.I'm on master with a bunch of uncommitted edits — run /shipit so it moves me to a feature branch, checks everything, and opens the pull request.Run the quality checks on my changed files, propose commit messages, push the branch, and create a pull request.description: Finalize and ship changes with quality checks, commits, and PR creation
Ship It! 🐿️
Use this when: You're ready to commit your work and create a pull request.
Performs comprehensive quality checks (lint, build, code compilation), creates meaningful commits, and handles the complete workflow from staging to PR creation with multiple approval checkpoints.
Usage
/shipit
Finalizes your current work by running quality checks, committing changes, pushing to remote, and creating a pull request.
Required: Uncommitted changes in the working directory
Works with: All file types (documentation, code, tests, examples)
Special handling: Detects and prevents master branch commits, tests inline code snippets, validates program examples, and scans conversation history to avoid redundant quality checks.
Process
CRITICAL SUCCESS CRITERIA: Complete all 9 steps in sequence. Every step is mandatory and serves a critical purpose in the workflow. DO NOT SKIP ANY STEP OR END THE WORKFLOW PREMATURELY!
Step Counter: Display progress before each step as: [Step X/9] followed by the step heading. This helps users track progress through the workflow.
References: This skill uses detailed reference files. Always follow the detailed instructions in these referenced documents when applicable:
shipit:references:quality-checks- Quality check procedures and code testingshipit:references:commit-messages- Commit message style guidelines
[Step 1/9] Context Gathering
Purpose: Understand what's changed and check for next steps from previous work.
Actions:
- Run
git status --shortto see all changes - Run
git branch --show-currentto verify current branch - Scan last 5 conversation messages for "next steps" or "TODO" mentions
- Categorize changed files:
- Documentation (content/docs/, content/product/)
- Blog posts (content/blog/)
- Program examples (static/programs/)
- Tests (_test., test_*, tests/)
- Infrastructure/config
- Other
Output: Display summary of changes with file counts per category
[Step 2/9] Quality Checks
Run context-aware quality checks. Scan conversation history to skip redundant checks (lint/build), test inline code snippets in markdown files, and run full tests for program examples.
See shipit:references:quality-checks for complete procedures, detection patterns, compilation commands, and error handling.
Critical distinctions:
- Inline snippet failures: warnings only (docs often have partial examples)
- Program test failures: mandatory blockers (must be full working examples)
Display summary and ask user to proceed with AskUserQuestion.
[Step 3/9] Branch Verification
Purpose: Prevent accidental commits to master branch.
Actions:
-
Check current branch:
git branch --show-current -
If on
masterormain:- Display warning with current git status
- Use
AskUserQuestionwith options:- Create new branch from current state (Recommended)
- Prompts for branch name with format:
CamSoper/{descriptive-name} - Runs:
git checkout -b CamSoper/{name}
- Prompts for branch name with format:
- Reset to origin/master and create clean branch
- Warns this will discard all changes
- Runs:
git reset --hard origin/master - Then prompts for branch name and creates it
- Cancel (I'll handle manually)
- Exits the skill
- Create new branch from current state (Recommended)
-
If on feature branch:
- Display: "[Step 3/9] Skipped - already on feature branch
{branch-name}" - Continue to Step 4
- Display: "[Step 3/9] Skipped - already on feature branch
Safety: Always preview destructive operations (like reset --hard) before executing.
[Step 4/9] Commit Preparation
Generate 3 meaningful commit message suggestions based on:
git diff --statoutput- Conversation context (user's stated goal from last 10 messages)
- Recent commit style (
git log --oneline -5) - File types changed
See shipit:references:commit-messages for message format, prefix guidelines, and generation strategies.
Present suggestions with AskUserQuestion (3 options + custom message).
All messages include: Co-Authored-By: Claude <noreply@anthropic.com>
[Step 5/9] Commit Preview
Purpose: Preview exactly what will be committed before execution.
Display preview:
Ready to commit:
Branch: CamSoper/add-mcp-docs
Files to be committed:
M content/docs/ai/mcp-server/index.md
M content/docs/ai/_index.md
A static/images/mcp-diagram.png
Commit message:
─────────────────────────────────────────
Add MCP server documentation for AI features
Documents the new Model Context Protocol integration for Claude.
Co-Authored-By: Claude <noreply@anthropic.com>
─────────────────────────────────────────
Commands that will run:
git add content/docs/ai/mcp-server/index.md content/docs/ai/_index.md static/images/mcp-diagram.png
git commit -m "$(cat <<'EOF'
Add MCP server documentation for AI features
Documents the new Model Context Protocol integration for Claude.
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
Ask for confirmation:
- Use
AskUserQuestionwith options:- Commit (Recommended) - Proceed to Step 6
- Edit message - Return to Step 4 to select different message
- Cancel - Exit without committing
If "Edit message": Loop back to Step 4
If "Cancel": Exit skill with message about uncommitted changes
[Step 6/9] Push Changes
Purpose: Commit and push changes to remote.
Actions (execute sequentially):
-
Stage specific files:
git add file1.md file2.ts file3.png ...Never use
git add .orgit add -A- always list specific files -
Commit with heredoc:
git commit -m "$(cat <<'EOF' {commit message from Step 5} Co-Authored-By: Claude <noreply@anthropic.com> EOF )" -
Check remote tracking:
git rev-parse --abbrev-ref @{u} 2>/dev/nullIf fails (no tracking branch): Need to push with
-u -
Push to remote:
# If no tracking branch: git push -u origin {branch-name} # If tracking branch exists: git push -
Verify push:
git statusShould show "Your branch is up to date with 'origin/{branch}'"
Display confirmation:
✓ Committed changes (abc123d)
✓ Pushed to origin/CamSoper/add-mcp-docs
If any step fails:
- Display error
- Offer to retry or cancel
- Don't proceed to Step 7 if push failed
[Step 7/9] Create Pull Request
Purpose: Generate and create a pull request with appropriate description.
Actions:
-
Generate PR description:
Title: Use first line of commit message (without co-author line)
Body:
- Brief summary (1-2 sentences from commit message)
- Changes included (from
git diff --stat master...HEAD) - Keep concise (aim for < 500 characters)
- Include issue references if applicable (e.g., "Fixes #123")
- No "Generated with Claude Code" footer
Example:
Documents the new Model Context Protocol integration for Claude AI features. ## Changes - Added MCP server documentation page - Updated AI section index - Added architecture diagram -
Display PR preview:
Pull Request Preview: ───────────────────────────────────────── Title: Add MCP server documentation for AI features Body: Documents the new Model Context Protocol integration for Claude AI features. ## Changes - Added MCP server documentation page - Updated AI section index - Added architecture diagram ───────────────────────────────────────── -
Ask for confirmation:
- Use
AskUserQuestionwith options:- Create PR (Recommended) - Execute pr creation
- Edit description - Allow custom title/body input, show preview again
- Cancel - Exit without creating PR (changes are still committed/pushed)
- Use
-
If "Edit description":
- Ask for custom title (or keep current)
- Ask for custom body (or keep current)
- Show updated preview
- Loop back to confirmation
-
If "Create PR":
gh pr create --draft --title "{title}" --body "$(cat <<'EOF' {body} EOF )"Draft, always — per
CONTRIBUTING.md§Draft-first pull requests. Automated review fires on the ready-for-review transition, so opening ready means the review runs against whatever is pushed at that moment. Step 9 offers to mark it ready once the user is done iterating. The exception CONTRIBUTING allows — a genuinely trivial typo fix opened straight to ready — is the user's call to make, not a default to assume.
If PR creation fails:
- Display error (auth issues, network, etc.)
- Note that changes are still committed and pushed
- Suggest manual PR creation with URL:
https://github.com/pulumi/docs/pull/new/{branch-name}
[Step 8/9] Completion Report
Purpose: Confirm successful completion and provide next steps.
Actions:
-
Fetch PR details:
gh pr view --json url,number,title -
Check for "next steps" in conversation:
- Scan last 10 messages for mentions of "next steps", "TODO", "follow-up"
- Extract any action items that were mentioned
-
Display success message:
✅ Successfully shipped your changes! Pull Request: #17380 URL: https://github.com/pulumi/docs/pull/17380 Title: Add MCP server documentation for AI features Branch: CamSoper/add-mcp-docs Next steps: - Monitor PR for CI/CD status - {any next steps from conversation} -
Celebrate:
🐿️ Ship it! Your changes are pushed and the PR is open as a draft.
[Step 9/9] Hand off to the review loop
Purpose: Shipping isn't finished when the PR exists — it's finished when the pre-merge review's findings are. This step makes sure the PR doesn't get opened and forgotten. Never skip it, and never end the skill at Step 8.
Actions:
-
If the PR is still a draft (the normal case): state in one line that automated review fires on the ready-for-review transition, and offer to mark it ready now. A draft gets no review, so there is nothing to watch yet.
-
Once the PR is ready for review, offer to watch, with
AskUserQuestion:- Watch for the review (Recommended) — invoke
/address-review {PR} --watch. Reviews typically post in 5-15 minutes. - I'll come back to it — tell the user the exact command for later:
/address-review {PR}. - Skip the review — accepted, but say once what it costs: findings that are never dispositioned scrape as ignored and tune the pipeline toward flagging more.
- Watch for the review (Recommended) — invoke
-
If the user picks watching, hand control to
/address-reviewand follow that skill from its Step 1. Do not re-implement watching or triage here. -
Display the closing line:
Next: the pre-merge review. I'll work every finding with you — the blocking ones, the questions it puts to you, and the advisory style and reviewer-check items — until each one is fixed, refuted, or explicitly accepted. That's what "done" means on this repo.
Rules: ask once, take the answer, don't nag. See AGENTS.md §PR Lifecycle for AI-Assisted Contributions and CONTRIBUTING.md §Working the review to zero for the expectation this step implements.
End of skill
Critical Workflow Rules
- Progress Display: Always display step number "[Step X/9]" before each heading
- Sequential Execution: Never skip ahead - complete each step before moving to next
- User Approval: Get explicit approval before destructive actions (Steps 3, 5, 7)
- Error Handling: If a step fails, don't proceed - offer retry or cancel
- Skip Display: If skipping a step, show "[Step X/9] Skipped - {reason}" — Step 9 is never skippable
- Context Preservation: Store decisions from previous steps to avoid re-asking
Notes
- This skill respects the
/AGENTS.mdrepository guidelines - Commit messages always include co-author attribution for Claude
- PR descriptions never include "Generated with Claude Code"
- Branch names follow
{GitHub-alias}/{descriptive-name}format - All git operations use safe practices (no force push, no destructive defaults)
Architecte Docker Compose
DevOps
Concoit des configurations Docker Compose optimisees.
Rapport de Post-Mortem
DevOps
Rédige des rapports post-mortem d'incidents structurés et blameless.
Créateur de Runbooks
DevOps
Crée des runbooks opérationnels clairs pour les procédures DevOps courantes.