一键导入
sklein-create-node-project
Créer un nouveau projet Node.js basé sur les préférences de Stéphane Klein.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Créer un nouveau projet Node.js basé sur les préférences de Stéphane Klein.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Créer un nouveau projet Node.js avec PostgreSQL (raw SQL, migrations, conteneur Podman) basé sur les préférences de Stéphane Klein. Use when user wants to create a Node.js project with PostgreSQL, migrations, or raw SQL.
Initialize ADR/agents/docs infrastructure in a project
Génère le template (template/), le script generate.sh, le vars-example.yaml, et le SKILL.md d'un projet à partir d'un projet source existant. Use when user wants to create a project scaffolding template from an existing project.
Conventions HTTP API de Stéphane Klein — nommage, verbes, codes, pagination, erreurs, versioning, HATEOAS, filtres, embedding, upload, OpenAPI. Utiliser lors de la création, modification ou review d'une API HTTP.
Gère la todo list de Stéphane via la banque mémoire hindsight `todo` et le sous-agent `@todo`. Use when user says: ajoute à ma todo, marque comme fait, liste mes tâches, supprime une tâche, bloque/débloque une tâche, quelles sont mes priorités, importe ça dans ma todo, ou colle un bloc de texte contenant plusieurs tâches.
Guide pour la création de nouveaux skills
基于 SOC 职业分类
| name | sklein-create-node-project |
| description | Créer un nouveau projet Node.js basé sur les préférences de Stéphane Klein. |
Créer un nouveau projet Node.js basé sur les préférences de Stéphane Klein.
Ce skill est activé lorsque l'utilisateur demande de créer un projet Node.js, par exemple :
Si l'utilisateur n'a pas fourni de PROJECT_SHORT_DESCRIPTION, l'agent doit lui demander brièvement avant de procéder :
« Quel est le but de ce projet ? (1–2 phrases) »
Si l'utilisateur refuse de donner une description, l'agent peut utiliser une chaîne vide et continuer la génération.
L'agent doit demander à l'utilisateur (use question tool) :
« Utiliserez-vous Jujutsu (jj) pour ce projet ? (Oui/Non) »
USE_JUJUTSU = trueUSE_JUJUTSU = falseCette information sera transmise au template AGENTS.md.
L'agent doit demander à l'utilisateur (use question tool) :
« Voulez-vous inclure la gestion de variables d'environnement secrètes (fichier
.secret) ? »
Si Oui : demander ensuite :
« Voulez-vous intégrer gopass pour la gestion des secrets ? »
INCLUDE_GOPASS_SETUP_SECRET = trueINCLUDE_GOPASS_SETUP_SECRET = falseINCLUDE_ENVIRONMENT_SECRETS = true
Si Non : INCLUDE_ENVIRONMENT_SECRETS = false et INCLUDE_GOPASS_SETUP_SECRET = false
Si l'utilisateur a fourni une PROJECT_SHORT_DESCRIPTION, l'agent évalue si elle est suffisante et optimale en termes de :
Si la description semble insuffisante ou non optimale, l'agent la reformule directement en anglais (une seule version).
Cette version reformulée est utilisée directement dans les templates, sans validation utilisateur.
L'agent doit déterminer PROJECT_SLUG automatiquement :
Dérivation depuis PROJECT_NAME :
Mon Super Projet → mon-super-projetVérification du dossier cible :
TARGET_DIR comme baseDemande de confirmation :
PROJECT_NAME contient des caractères spéciaux ambigus ou si le PROJECT_SLUG résultant semble incohérent, demander confirmation à l'utilisateurPROJECT_SLUG déduit et demander : « Le nom du repository GitHub sera {{project_slug}}. Est-ce correct ? »PROJECT_SLUG personnaliséPROJECT_NAME (requis) : nom du projet. Peut contenir des tirets, pas d'espaces.PROJECT_SHORT_DESCRIPTION : courte explication du projet et de son but (1–2 phrases).PROJECT_SLUG (optionnel) : nom du repository GitHub (minuscules, tirets, pas d'espaces). Si non fourni, il est déduit automatiquement de PROJECT_NAME.TARGET_DIR (optionnel) : chemin absolu ou relatif du répertoire cible. Par défaut : le dossier courant.AUTHOR_NAME = Stéphane KleinAvant toute génération, l'agent doit récupérer dynamiquement :
Dernière version LTS de Node.js via https://nodejs.org/dist/index.json :
lts n'est pas false.date décroissante et prendre la dernière version (ex: 22.14.0).v.Dernière version de pnpm via curl -s https://registry.npmjs.org/pnpm/latest | jq -r '.version' :
10.8.0Dernière version de Biome via curl -s https://registry.npmjs.org/@biomejs/biome/latest | jq -r '.version' :
2.3.11Si l'une de ces requêtes échoue ou retourne une donnée inutilisable, l'agent doit échouer proprement et informer l'utilisateur que la création du projet est impossible sans les versions à jour.
Avant d'écrire quoi que ce soit, l'agent doit vérifier si les fichiers cibles existent déjà dans TARGET_DIR.
Si un ou plusieurs de ces fichiers existent déjà, l'agent doit prévenir l'utilisateur, lister les fichiers concernés, et demander une confirmation explicite avant d'écraser. Sans confirmation, l'opération s'arrête.
Une fois les versions récupérées et les conflits résolus (ou confirmés par l'utilisateur) :
Créer un fichier YAML temporaire /tmp/opencode/vars.yaml :
author_name: Stéphane Klein
project_name: "{{PROJECT_NAME}}"
project_slug: "{{PROJECT_SLUG}}"
project_short_description: "{{PROJECT_SHORT_DESCRIPTION}}"
use_jujutsu: {{USE_JUJUTSU}}
last_node_lts_version: "{{LAST_NODE_LTS_VERSION}}"
last_pnpm_version: "{{LAST_PNPM_VERSION}}"
last_biome_version: "{{LAST_BIOME_VERSION}}"
include_environment_secrets: {{INCLUDE_ENVIRONMENT_SECRETS}}
include_gopass_setup_secret: {{INCLUDE_GOPASS_SETUP_SECRET}}
Exécuter generate.sh :
/home/sklein/.config/opencode/skill/sklein-create-node-project/generate.sh \
/home/sklein/.config/opencode/skill/sklein-create-node-project/template \
/tmp/opencode/vars.yaml \
"{{TARGET_DIR}}"
Supprimer le fichier temporaire après exécution.
L'agent ne doit PAS exécuter pnpm install ni aucune autre commande d'installation.
Ce skill a un périmètre strict : initialiser le projet et rien d'autre.
Une fois les fichiers créés et la confirmation envoyée, l'agent doit s'arrêter. Il ne doit en aucun cas :
pnpm install, pnpm dev, pnpm build, pnpm test, git init, etc.)L'initialisation est terminée quand les fichiers sont écrits. L'utilisateur décidera lui-même de la suite.
Après avoir écrit les fichiers, l'agent confirme le succès à l'utilisateur en listant les fichiers créés et le répertoire cible, puis s'arrête.