Communitygithub.com

netresearch/jujutsu-workflow-skill

Contrôle de version adapté aux agents avec Jujutsu (jj) — jj pour la gestion locale des modifications, Git comme interface distante/canonique pour les PR, CI et audits. Skill Netresearch pour agents.

Qu'est-ce que jujutsu-workflow-skill ?

Ce skill fournit un workflow de contrôle de version optimisé pour les agents d'IA, utilisant Jujutsu (jj) comme couche de modifications locales tout en conservant Git comme interface distante canonique pour les revues de code, l'intégration continue et les audits. Il garantit la sécurité des agents en imposant des règles strictes (pas d'éditeur interactif, pas de pagination, pas de modifications de l'index Git) et en automatisant les opérations de récupération via `jj undo` et `jj op restore`. Le skill inclut une détection automatique de l'état du dépôt, un guide de manipulation sécurisé des conflits, des workflows pour la manipulation parallèle via des espaces de travail jj, et des scripts de vérification pour valider l'état avant les livraisons. Il est conçu pour les environnements Claude Code, Cursor, Codex et autres agents, et nécessite que l'agent exécute le script de détection (`detect_jj_state.sh`) avant toute opération de versionnement.

Compatible avec✓Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add netresearch/jujutsu-workflow-skill

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Workflow Jujutsu

Pour le codage par agent, préférez jj (Jujutsu) à git brut dès lors qu'un dépôt .jj/ est présent — c'est la couche de modification locale supérieure. Git reste l'interface distante/canonique pour les PR, CI et audits : modifiez avec jj, vérifiez avec Git en lecture seule.

1. Détecter et bloquer d'abord

Exécutez ${CLAUDE_SKILL_DIR}/scripts/detect_jj_state.sh, ou vérifiez manuellement :

  • .jj/ présent → dépôt jj : utilisez jj, jamais git en modification.
  • .jj/ et .git/ → colocalisé : modifiez avec jj, lisez avec git, ne touchez jamais à l'index/staging de git.
  • seulement .git/ → dépôt Git standard : n'introduisez pas jj sauf demande explicite.

Voir references/git-interop.md.

2. Règles de sécurité pour l'agent (non négociables)

  • Toujours --no-pager sur les commandes de sortie ; définissez jj config set --user ui.paginate never.
  • Toujours -m. Ne jamais exécuter d'éditeur/formulaire TUI — les commandes jj describe|commit|squash nues, jj split (interactif), jj squash -i, jj resolve, jj diffedit bloquent les agents.
  • jj prend un instantané de la copie de travail uniquement lorsqu'une commande jj est exécutée, pas à chaque écriture de fichier.

Voir references/agent-safety.md.

3. Boucle d'édition

jj --no-pager status
# modifier les fichiers (instantané pris à la prochaine commande jj)
jj --no-pager diff
jj describe -m "<message conventionnel du projet>"
jj new -m "<prochaine unité>"     # un changement par unité logique — évite un commit unique trop gros

Diviser un changement mixte de manière non interactive : jj split <chemin> -m "<msg>". Voir references/command-map.md.

4. Récupération (réversible)

jj --no-pager op log → jj undo (dernière opération) ou jj op restore <id>. Les conflits sont de première classe : jj status les signale ; résolvez en éditant les marqueurs, puis vérifiez. Voir references/recovery-playbook.md.

5. Remise via Git

jj git fetch
jj rebase -d <branche-par-défaut>
jj bookmark create <branche> -r @-
jj git push --bookmark <branche>      # les nouveaux signets poussent directement

Ne jamais pousser vers une branche protégée/par défaut ; ne jamais réécrire l'historique public sauf autorisation. Ouvrez la PR avec gh/glab. Voir references/pr-handoff.md.

6. Agents parallèles

Un jj workspace par agent concurrent — ne partagez jamais la copie de travail. Voir references/parallel-agents.md.

7. Vérifier avant « terminé »

Exécutez ${CLAUDE_SKILL_DIR}/scripts/verify_handoff.sh, ou rapporter jj --no-pager status, jj --no-pager log --limit 10, jj --no-pager diff --stat, git status --short --branch. Rapportez les commandes exactes et leur sortie ; ne déclarez jamais « terminé/testé/prêt » sans cela ; divulguez les force-push, récupérations, conflits.

Pourquoi jj bat git pour les agents (et quand ne PAS l'utiliser) : references/why-jj-for-agents.md.

Skills associés