Synthèse automatique
Procédure pas à pas pour valider et documenter honnêtement la compatibilité d'un plugin Bukkit/Paper/Folia avec une nouvelle version de Minecraft ou de Paper.
Points forts
- Impose une recherche préalable (annonces Paper, docs.papermc.io, notes de version) au lieu de se fier à la mémoire du modèle, souvent antérieure à la sortie.
- Délimite la surface d'API à auditer en grepant uniquement les classes org.bukkit / io.papermc / net.kyori réellement utilisées par le plugin.
- Politique de build explicite : compiler contre la plus ancienne API Paper supportée et garder la cible de bytecode au plancher, avec la mise en garde sur le JVM max supporté par Gradle.
- Échelle de vérification runtime graduée (boot, passe manuelle, suite e2e, Folia) qui distingue clairement « testé » de « supposé ».
Limites
- Suppose un accès web, un serveur de test et une suite e2e disponibles : le skill guide la démarche mais n'effectue pas la vérification à votre place.
- Très spécifique à l'écosystème Bukkit/Paper/Folia, peu transposable à d'autres stacks.
- Les suites pilotées par bots (mineflayer, etc.) peuvent bloquer la revendication « testé » quand le protocole n'est pas encore suivi, ce qui oblige à reporter ou nuancer la claim.
À utiliser dès qu'une nouvelle version de Minecraft ou de Paper sort, qu'un bump de paper-api est envisagé ou qu'il faut rédiger une mention de compatibilité dans des notes de version.
Inutile pour du développement de fonctionnalités ou du débogage sans lien avec un changement de version de serveur.
Analyse de sécurité
SûrThe skill only describes a legitimate compatibility-validation workflow: web research, grepping source for Bukkit/Paper API usage, building, runtime testing, and updating documentation. It contains no destructive commands, secret exfiltration, obfuscated payloads, or safety-disabling instructions.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Paper 1.21.5 just came out. Can you check whether the plugin in ./my-plugin supports it, and tell me honestly whether that's a tested claim or an assumed one?I'm thinking about bumping paper-api from 1.20.4 to 1.21 in my Gradle build. Walk me through whether that's actually needed and what it would cost me in supported server versions.Update the compatibility matrix in our docs for Paper 1.21.5, marking Folia as N/A if no build exists yet, and add a compatibility line to the release notes.name: paper-version-compat description: Repeatable procedure for validating and honestly documenting a Bukkit/Paper/Folia plugin's compatibility when a new Minecraft/Paper version ships — research-first API checking, build strategy, runtime verification, and maintaining a tested-vs-assumed compatibility matrix. Use whenever a new Minecraft or Paper version is released, the user asks "does my plugin support version X", a paper-api dependency bump is considered, or release notes need a compatibility claim.
Validating a Paper plugin against a new Minecraft/Paper version
The goal is an honest, documented compatibility claim — "tested" and "assumed" are different statements and users deserve to know which one they're getting. Most version bumps need zero code changes; the work is research, verification, and documentation discipline.
Step 1 — Research first (never trust model memory)
New MC/Paper versions are usually past the model's training cutoff, and Minecraft's versioning/cadence has changed over time. Before any code conclusion:
- Web-search the Paper release announcement and docs.papermc.io update notes for the target
version. Look specifically for: required Java version, plugin-affecting API removals,
api-versionpolicy changes, and remap/mappings changes. - Check the loaders-that-lag: Folia releases behind Paper — if no Folia build exists for the target version, the matrix entry is "N/A yet", not "supported".
- If findings are thin (fresh release), mark every conclusion medium-confidence and say so in anything you write.
Step 2 — Grep the plugin's real API surface
Don't audit the whole Bukkit API — audit what the plugin actually touches. Build the list once and keep it in the project's context doc:
grep -roh --include=*.kt --include=*.java \
-E 'org\.bukkit\.[A-Za-z.]+|io\.papermc\.[A-Za-z.]+|net\.kyori\.[A-Za-z.]+' src/ \
| sort -u
Cross-check that list against the release's deprecations/removals. Typical hot spots:
registry access patterns (enum → Registry migrations), scheduler APIs (legacy
scheduleSyncRepeatingTask-style methods are perennial removal candidates), event signature
changes, ItemStack/component APIs, and anything @Deprecated(forRemoval = true) in the
current compile.
Step 3 — Decide the build strategy (this is a policy, not a routine step)
- Default: keep compiling against the oldest supported Paper API. One JAR spanning
versions comes from API stability plus conservative bytecode targeting — not from chasing
the newest
paper-api. - Only bump
paper-api/api-versionwhen (a) you need a new API, or (b) you are deliberately dropping old-version support. Both are support-range decisions; changelog them. - Java: servers may raise their required Java version across MC versions while old servers
stay lower. Keep the bytecode target at the floor (e.g. Java 21 bytecode runs fine on a
Java 25 server); use a newer toolchain freely. Verify Gradle itself can run on the JDK in
use — Gradle's max-supported-JVM lags JDK releases, and the failure message is cryptic
(run Gradle on an older JDK via
JAVA_HOME; keep the toolchain block for compilation).
Step 4 — Build & fix
Branch (e.g. dev/<new-version>), build, and treat new deprecation warnings as work items
now — they're the removals of the next cycle.
Step 5 — Runtime verification ladder
Each rung upgrades the claim you're allowed to make:
- Boots clean — plugin enables on the target version, no stack traces, info command works.
- Manual pass — one full cycle of the plugin's core flow(s) by hand.
- Suite pass — the project's e2e/bot suite green on the target version. Caveat for bot-based suites: bot libraries (mineflayer etc.) lag new protocol versions — options are ViaVersion on the test server (bots handshake old, server runs new) or deferring the "tested" claim, explicitly.
- Folia pass — separate rung; Paper-tested says nothing about region-thread behavior.
Only rung 3+ justifies "Tested" in public docs. Rungs 1–2 justify "expected to work".
Step 6 — Update the compatibility matrix (the durable artifact)
Maintain a table in the project context doc with Status ∈ {Tested, Assumed, Partially tested, N/A yet, Not supported} and an evidence column (what ran, when). Rules:
- Never promote to "Tested" without the suite/manual pass on that exact platform+version.
- Downgrade honestly: a big internal change (threading, scheduler rework) drops previously "Tested" platforms back to "Partially tested" until re-run.
- Mirror the matrix everywhere users see claims: release notes, README badges, and the Modrinth/Hangar listing's game-version range — same commit.
Step 7 — Release hygiene
- Changelog states the new supported range and whether code changed or only verification.
- If zero code changes were needed, say exactly that — "no code changes; verified on X" is a meaningful, reassuring release note.
- Update the local dev server pin (
runServerversion or equivalent) so the next contributor tests against the new default.
Anti-patterns
- Claiming a version range from API stability alone while labeling it "tested".
- Bumping
paper-apito the newest version reflexively — it silently narrows your floor. - Skipping the Folia check because "it's just Paper with threads" (it is not).
- Letting the compatibility claim live only in a Modrinth dropdown, with no evidence trail in the repo.
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/paper-plugin-version-compatibility-validation-msh3us7b/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/paper-plugin-version-compatibility-validation-msh3us7b' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/paper-plugin-version-compatibility-validation-msh3us7b/download' --output '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/SKILL.md.part' && mv '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/SKILL.md.part' '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/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
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/SKILL.md' && test -s '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/paper-version-compat' && cp -R '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b' '.claude/skills/paper-version-compat'Cursor
test -f '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/SKILL.md' && test -s '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/paper-version-compat' && cp -R '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b' '.cursor/skills/paper-version-compat'Codex
test -f '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/SKILL.md' && test -s '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/paper-version-compat' && cp -R '.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b' '.agents/skills/paper-version-compat'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/paper-plugin-version-compatibility-validation-msh3us7b'openskills read 'paper-plugin-version-compatibility-validation-msh3us7b'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode 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/paper-plugin-version-compatibility-validation-msh3us7b/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.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.