← Back to list

writedocumentation
by duplojs
@duplojs/utils is the TypeScript utility toolbox used across the DuploJS ecosystem. It focuses on strong typing, good DX, and small composable primitives that scale from simple helpers to full validation pipelines.
⭐ 11🍴 0📅 Jan 24, 2026
SKILL.md
name: writeDocumentation description: Write or update duplojs-utils documentation pages (FR/EN) including API function pages, namespace index pages, and guides, following the repo's structure, MonacoTSEditor examples, required sections, and prev/next metadata.
Documentation du projet
Identifier le type de page
- Utiliser ces chemins comme source de verite.
- Choisir le format de page avant de rediger.
- Toujours maintenir la doc dans les deux langues (FR et EN) et garder les sections synchronisees.
Chemins:
docs/{fr,en}/index.md: pages home.docs/{fr,en}/v1/guide/*.md: guides.docs/{fr,en}/v1/api/{namespace}/index.md: sommaire + presentation du namespace.docs/{fr,en}/v1/api/{namespace}/{function}.md: documentation d'une fonction.docs/{fr,en}/v1/api/{namespace}/{concept + function}.md: cas specifiques (rare).docs/examples/v1/api/{namespace}/{function}/tryout.doc.ts: exemple simple.docs/examples/v1/api/{namespace}/{function}/otherExample.doc.ts: cas specifiques.
Respecter les regles des exemples
- Ecrire les commentaires en anglais.
- Utiliser des noms de variables de plus de 2 caracteres.
- Wrapper les structures avec plus d'un element (retours a la ligne, un element par ligne).
- Utiliser
foldLinesdansMonacoTSEditorpour replier du code long si besoin. - Le
heightdepend du nombre de lignes visibles dans le fichier d'exemple. - Compter le nombre total de lignes du fichier
*.doc.ts(ne pas compter la ligne vide finale). - Si
foldLinesest present, chaque pli compte comme 1 ligne visible et toutes les lignes cachees du bloc plie (toutes les lignes du bloc sauf la premiere) doivent etre soustraites. - Calcul final:
height = (lignes_visibles * 21) + 40, en pixels. - Les index
foldLinescommencent a 0 (index de ligne). - Importer uniquement depuis
@duplojs/utils(jamais de chemin relatif).
Exemple:
<MonacoTSEditor
src="/examples/v1/api/<namespace>/<function>/tryout.doc.ts"
majorVersion="v1"
height="300px"
:foldLines="[3, 7]"
/>
Contenu des exemples (*.doc.ts)
- Les exemples doivent etre simples et didactiques.
- Eviter de montrer plusieurs fonctions dans un meme exemple sauf si le contexte l'exige.
- Pour les fonctions avec predicate (filter, find, when, equal, etc.), garder un contexte minimal et ajouter un
ExpectTypepour rendre le type explicite (utile en mobile). - Pour les fonctions predicate/type-guard, utiliser un
if+ExpectTypecomme ici:docs/examples/v1/api/array/is/tryout.doc.ts. - Si un exemple necessite des types declares en amont (ex: pattern match), les replier via
foldLineset les compter comme une seule ligne visible:docs/examples/v1/api/pattern/match/builder.doc.ts. - Les
ExpectTypene doivent jamais etre plies: afficher le type complet. - Pour les exemples Clean avec contexte DDD, replier un namespace complet si besoin (ex:
User):docs/examples/v1/api/clean/repository/tryout.doc.ts.
Templates d'exemples disponibles (a adapter):
assets/example-predicate-template.md(base type-guard)assets/example-transformer-template.md(transformer simple)assets/example-combinator-template.md(combiner simple)assets/example-context-predicate-template.md(predicate avec contexte minimal)assets/example-types-folded-template.md(types declares en amont + foldLines)assets/example-clean-folded-namespace-template.md(namespace Clean replie)
Rediger une page API (fonction)
- Partir du template
assets/api-function-template.md. - Copier/coller la description courte dans
descriptiondu frontmatter. - Inclure la version currifiee si elle existe.
- Ajouter "Voir aussi" avec des liens voisins ou proches.
- Ajouter "Sources" seulement si une reference externe est utile.
- Pour les cas specifiques, utiliser
docs/{fr,en}/v1/api/{namespace}/{concept + function}.mdet des exemples dedies dansdocs/examples/v1/api/{namespace}/{function}/. - Quand une page est ajoutee, mettre a jour le sommaire du namespace (
docs/{fr,en}/v1/api/{namespace}/index.md) et reajuster les liensprev/nextdes pages voisines pour inserer la page correctement.
Format obligatoire:
- Frontmatter YAML:
outline,prev,next,description. - Contenu:
# NomDeLaFonction, description courte, exemple interactif, syntaxe, parametres, valeur de retour, voir aussi.
Cas speciaux a garder en tete
- Pages avec comparatifs ou multi-exemples (ex: DataParser object): regrouper par sous-sections claires, utiliser plusieurs MonacoTSEditor et des grilles si besoin.
- Pages d'index riches (ex: Clean primitives): structurer en sections (intro, exemples, liste d'API, operateurs) et garder une progression narrative.
Templates de namespaces speciaux
- Utiliser
assets/api-namespace-dataparser-template.mdpourdocs/{fr,en}/v1/api/dataParser/index.md. - Utiliser
assets/api-namespace-clean-template.mdpourdocs/{fr,en}/v1/api/clean/index.md.
Score
Total Score
65/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
✓説明文
100文字以上の説明がある
+10
○人気
GitHub Stars 100以上
0/15
✓最近の活動
1ヶ月以内に更新
+10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon


