Synthèse automatique
Cette skill transforme des modifications non commitées en une pull request complète : elle collecte le contexte, lance des vérifications qualité adaptées aux fichiers touchés, sécurise la branche, puis commit, pousse et ouvre la PR avec des points de validation.
Points forts
- Workflow séquencé en 8 étapes obligatoires avec compteur de progression affiché à chaque étape
- Garde-fou explicite contre les commits sur master/main, avec options de création de branche ou de reset (opérations destructives prévisualisées)
- Vérifications qualité contextuelles : détection des types de fichiers et analyse de l'historique de conversation pour éviter les lint/build redondants
- Catégorisation des fichiers modifiés (YAML de packages, outils Go, workflows CI, scripts, infrastructure, thème) pour adapter les contrôles et les messages de commit
Limites
- Fortement couplé à un dépôt précis : chemins codés en dur (themes/default, tools/resourcedocsgen, infrastructure/) et préfixe de branche CamSoper/
- Suppose un environnement Claude Code disposant d'AskUserQuestion et des fichiers de référence shipit:references:* (quality-checks, commit-messages)
- Nécessite des changements non commités dans le répertoire de travail et impose un déroulé rigide peu adapté aux petits commits intermédiaires
À utiliser lorsque votre travail est terminé et que vous voulez enchaîner contrôles qualité, commit, push et création de pull request en une seule commande guidée.
À éviter pour un commit rapide en cours de développement, sur un dépôt sans rapport avec cette structure, ou si vous préférez garder la main totale sur chaque commande git.
Analyse de sécurité
PrudenceThe skill performs legitimate version-control and PR workflow actions using git and network push. It is not destructive or exfiltrating by default, but it does involve powerful operations (commit, push, reset --hard) that could cause harm if misused or if the user approves without understanding the consequences. The presence of a hard reset option and remote push warrants caution.
- •Pushes changes to a remote repository, which can publish unintended work if the user approves without fully reviewing the commit preview.
- •Includes a `git reset --hard origin/master` option in the branch verification step that would discard all uncommitted changes, though it is previewed and requires explicit user selection.
Exemples
/shipitI finished the fix for the package registry schema and updated the CI workflow. Run /shipit and propose commit messages, then open a PR.Run /shipit, and if I'm on main, create a new feature branch instead of committing there.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 (Go code, YAML, CI workflows, scripts, theme, infrastructure)
Special handling: Detects and prevents master branch commits, validates Go code and YAML, and scans conversation history to avoid redundant quality checks.
Process
CRITICAL SUCCESS CRITERIA: Complete all 8 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/8] 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/8] 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:
- Package YAML (
themes/default/data/registry/packages/) - Go tools (
tools/resourcedocsgen/,tools/mktutorial/) - CI workflows (
.github/workflows/) - Build scripts (
Makefile,scripts/) - Infrastructure (
infrastructure/) - Theme/layout (
themes/default/layouts/,themes/default/theme/) - Community packages (
community-packages/) - Other
- Package YAML (
Output: Display summary of changes with file counts per category
[Step 2/8] Quality Checks
Run context-aware quality checks. Scan conversation history to skip redundant checks (lint/build), and run appropriate checks based on file types changed.
See shipit:references:quality-checks for complete procedures, detection patterns, and error handling.
Display summary and ask user to proceed with AskUserQuestion.
[Step 3/8] 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/8] Skipped - already on feature branch
{branch-name}" - Continue to Step 4
- Display: "[Step 3/8] Skipped - already on feature branch
Safety: Always preview destructive operations (like reset --hard) before executing.
[Step 4/8] 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 Opus 4.6 <noreply@anthropic.com>
[Step 5/8] Commit Preview
Purpose: Preview exactly what will be committed before execution.
Display preview:
Ready to commit:
Branch: CamSoper/fix-yaml-validation
Files to be committed:
M themes/default/data/registry/packages/example.yaml
M tools/resourcedocsgen/cmd/generate.go
A tools/resourcedocsgen/cmd/generate_test.go
Commit message:
─────────────────────────────────────────
Fix YAML validation for community packages
Corrects category field validation in resourcedocsgen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
─────────────────────────────────────────
Commands that will run:
git add themes/default/data/registry/packages/example.yaml tools/resourcedocsgen/cmd/generate.go tools/resourcedocsgen/cmd/generate_test.go
git commit -m "$(cat <<'EOF'
Fix YAML validation for community packages
Corrects category field validation in resourcedocsgen.
Co-Authored-By: Claude Opus 4.6 <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/8] Push Changes
Purpose: Commit and push changes to remote.
Actions (execute sequentially):
-
Stage specific files:
git add file1.yaml file2.go file3_test.go ...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 Opus 4.6 <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/fix-yaml-validation
If any step fails:
- Display error
- Offer to retry or cancel
- Don't proceed to Step 7 if push failed
[Step 7/8] 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:
Corrects category field validation in resourcedocsgen for community packages. ## Changes - Fixed YAML validation for category enum values - Added unit tests for edge cases - Updated example package YAML -
Display PR preview:
Pull Request Preview: ───────────────────────────────────────── Title: Fix YAML validation for community packages Body: Corrects category field validation in resourcedocsgen for community packages. ## Changes - Fixed YAML validation for category enum values - Added unit tests for edge cases - Updated example package YAML ───────────────────────────────────────── -
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 --title "{title}" --body "$(cat <<'EOF' {body} EOF )"
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/registry/pull/new/{branch-name}
[Step 8/8] 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: #1234 URL: https://github.com/pulumi/registry/pull/1234 Title: Fix YAML validation for community packages Branch: CamSoper/fix-yaml-validation Next steps: - Monitor PR for CI/CD status - {any next steps from conversation} -
Celebrate:
Ship it! Your changes are ready for review.
End of skill
Critical Workflow Rules
- Progress Display: Always display step number "[Step X/8]" 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/8] Skipped - {reason}"
- 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
CamSoper/{descriptive-name}format - All git operations use safe practices (no force push, no destructive defaults)
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/ship-it-msl9cf6p/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/ship-it-msl9cf6p' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ship-it-msl9cf6p/download' --output '.skill-downloads/ship-it-msl9cf6p/SKILL.md.part' && mv '.skill-downloads/ship-it-msl9cf6p/SKILL.md.part' '.skill-downloads/ship-it-msl9cf6p/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.
Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/ship-it-msl9cf6p/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Configurer un canal de discussion avec SecretRefs
DevOps
Configurez des canaux de discussion avec des commandes non interactives, les secrets étant uniquement des SecretRefs. Couvre les étapes de collecte, modification, réparation et vérification.
Enquêter sur les échecs CI de ClickHouse
DevOps
Investigue un échec CI de ClickHouse de bout en bout à partir d'une URL de PR ou de rapport S3. Récupère les tests échoués, classe flaky vs vraie régression, et cherche des issues/fixes existants.
Revue de PR Ansible
DevOps
Examine une PR Ansible selon le processus standardisé du projet, incluant la validation des changelogs, la couverture de tests et le suivi des commentaires.