WR

writeDocumentation

Handles documentation writing and maintenance for duplojs-utils in both French and English.

Install

mkdir -p .claude/skills/writedocumentation && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12530" && unzip -o skill.zip -d .claude/skills/writedocumentation && rm skill.zip

Installs to .claude/skills/writedocumentation

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

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.
222 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Maintain documentation in French and English
  • Ensure sections are synchronized across languages
  • Respect rules for code examples
  • Write API function pages
  • Update namespace index pages
  • Adjust prev/next links for new pages

How it works

The skill identifies the page type, maintains documentation in both French and English, and ensures sections are synchronized. It applies specific rules for code examples and content structure.

Inputs & outputs

You give it
documentation content or update request
You get back
updated or new documentation pages in FR/EN

When to use writeDocumentation

  • Updating API documentation
  • Writing new user guides
  • Synchronizing docs across languages

About this skill

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 foldLines dans MonacoTSEditor pour replier du code long si besoin.
  • Le height depend 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 foldLines est 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 foldLines commencent 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 ExpectType pour rendre le type explicite (utile en mobile).
  • Pour les fonctions predicate/type-guard, utiliser un if + ExpectType comme 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 foldLines et les compter comme une seule ligne visible: docs/examples/v1/api/pattern/match/builder.doc.ts.
  • Les ExpectType ne 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 description du 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}.md et des exemples dedies dans docs/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 liens prev/next des 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.md pour docs/{fr,en}/v1/api/dataParser/index.md.
  • Utiliser assets/api-namespace-clean-template.md pour docs/{fr,en}/v1/api/clean/index.md.

When not to use it

  • When documentation is not for duplojs-utils
  • When not adhering to the specified repo structure
  • When not using MonacoTSEditor examples

Limitations

  • Requires documentation to follow the repo's structure
  • Requires adherence to MonacoTSEditor examples
  • Requires specific sections and prev/next metadata

How it compares

This workflow enforces strict formatting, language synchronization, and specific content requirements for documentation, unlike a generic approach that might lack these constraints.

Compared to similar skills

writeDocumentation side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
writeDocumentation (this skill)07moNo flagsIntermediate
writing-docs129dReviewBeginner
update-api-docs13moReviewBeginner
Outline Open Source Team Knowledge Base and Wiki Platform02moNo flagsBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry