Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:27:15 +08:00
commit e4ba6b249f
4 changed files with 177 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
{
"name": "leapmultix-skill-jsdoc-generator",
"description": "Skill jsdoc-generator from LeapMultix",
"version": "1.0.0",
"author": {
"name": "Julien LE SAUX",
"email": "contact@jls42.org"
},
"skills": [
"./skills"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# leapmultix-skill-jsdoc-generator
Skill jsdoc-generator from LeapMultix

45
plugin.lock.json Normal file
View File

@@ -0,0 +1,45 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:jls42/leapmultix:leapmultix-marketplace/skills/jsdoc-generator",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "24d02ee336f5bfa5c48b92750d905d4a5a660bf5",
"treeHash": "df42bec7e426cfb230d5377ae7dc3d6d3d838669f5d40c8a105cff0c2295a2fa",
"generatedAt": "2025-11-28T10:19:13.356494Z",
"toolVersion": "publish_plugins.py@0.2.0"
},
"origin": {
"remote": "git@github.com:zhongweili/42plugin-data.git",
"branch": "master",
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
},
"manifest": {
"name": "leapmultix-skill-jsdoc-generator",
"description": "Skill jsdoc-generator from LeapMultix",
"version": "1.0.0"
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "84f9f02bbeb9f8aefac12978392ad5ae3caf567d57366c06bc708c963ea66ffa"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "7a76e12fe454e15d4d350545270bf675443792b60e3f286e4cda10eb3e823d94"
},
{
"path": "skills/jsdoc-generator/SKILL.md",
"sha256": "57e1ded7ad50c765a970cc598a63fa51ffc18bbaf2a16e736b24284a6148f548"
}
],
"dirSha256": "df42bec7e426cfb230d5377ae7dc3d6d3d838669f5d40c8a105cff0c2295a2fa"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}

View File

@@ -0,0 +1,117 @@
---
name: generating-jsdoc
description: Automatically generates JSDoc documentation for ES6 modules with @param, @returns, @throws and examples. Use when adding functions, refactoring, or improving documentation
allowed-tools: Read, Write, Grep, Glob, Bash
---
# Générateur JSDoc
Génère documentation JSDoc pour modules ES6 (functions, classes, exports).
## Table des matières
- [Quand utiliser](#quand-utiliser)
- [Scripts npm](#scripts-npm)
- [Format JSDoc essentiel](#format-jsdoc-essentiel)
- [Patterns projet](#patterns-projet)
- [Workflow](#workflow)
- [Checklist](#checklist)
- [En cas de doute](#en-cas-de-doute)
## Quand utiliser
- Ajout fonctions ou classes
- Refactoring code
- Amélioration documentation
- Avant release
- Onboarding développeurs
## Scripts npm
- `npm run analyze:jsdoc` - Couverture JSDoc
- `npm run improve:jsdoc` - Améliorer documentation
- JSDoc HTML generation (si configuré)
## Format JSDoc essentiel
**Fonction :**
```javascript
/**
* Description brève (impératif : "Calcule", pas "Cette fonction")
*
* @param {Type} paramName - Description
* @param {Type} paramName2 - Description
* @returns {Type} Description retour
* @throws {ErrorType} Conditions erreur
* @example
* functionName(value1, value2); // → result
*/
```
**Classe :**
```javascript
/**
* Description classe
* @class
* @extends ParentClass
*/
export class ClassName {}
```
**Types :** `string`, `number`, `boolean`, `Array<Type>`, `{key: Type}`, `Promise<Type>`, `Type1|Type2`
## Patterns projet
**Priorités :**
- Haute : API publiques, fonctions complexes, classes
- Moyenne : Méthodes, callbacks, utilitaires
- Basse : Fonctions privées simples, getters évidents
**Tags spéciaux :**
- `@typedef` - Définir types complexes
- `@fires` - Événements émis
- `@deprecated` - Code obsolète
- `@see {@link Name}` - Références croisées
Examine code existant (modes, utils, core) pour patterns.
## Workflow
1. **Analyser :** `npm run analyze:jsdoc` → Identifier gaps
2. **Documenter :** Description + @param + @returns + @example
3. **Enrichir :** Cas limites, erreurs (@throws)
4. **Vérifier :** Code cohérent, types précis, exemples du domaine
## Checklist
- [ ] Description brève et impérative
- [ ] @param pour chaque paramètre avec type précis
- [ ] @returns avec type et description
- [ ] @throws si erreurs possibles
- [ ] @example (au moins 1 cas réaliste)
- [ ] @typedef pour types complexes
- [ ] Types précis (pas {Object} générique)
- [ ] Exemples avec valeurs du domaine
- [ ] Cas limites documentés (null, undefined)
- [ ] Cohérent avec reste projet
## En cas de doute
**Règles absolues :**
1. Description impérative (imperative mood)
2. Types explicites (jamais {\*} sauf dernier recours)
3. Exemples du domaine (réalistes)
4. @example obligatoire pour API publiques
5. Maintenir à jour avec refactoring
**Références :**
- Code existant patterns (modes, utils)
- `npm run analyze:jsdoc` - Vérifier couverture
- JSDoc.app - Syntaxe spécifique
- Examiner fichiers bien documentés du projet