À propos du projet

L'Open Presentation Format (OPF) est un format de document JSON portable et lisible par l'humain pour les jeux de diapositives. Ce dépôt est le foyer canonique de la spécification du format, des schémas JSON, des presets de catalogues, des exemples, des types développeurs générés, des outils de validation locale et des documents de planification pour un futur kit d'outils de rendu/édition/conversion. Il est publié sur npm sous @openpresentation/opf, actuellement en version pré-stable (0.x, avec des changements majeurs attendus entre les versions mineures avant la 1.0), sous licence MIT. Motivation : le .pptx est un ensemble compressé de XML difficile à comparer pour les humains, difficile à lire et à écrire de manière fiable pour les modèles, et difficile à suivre de manière significative pour git, car chaque modification ressemble à un bloc binaire. L'OPF est du JSON pur — lisible dans un éditeur, escribable par un modèle sans avoir à deviner le schéma par l'exemple, et traçable dans le contrôle de version aux côtés d'autres travaux. L'objectif déclaré est de permettre aux LLM de participer à la création de présentations (structure narrative, cadrage, analyse de données, suggestions de graphiques, révision) plutôt que de lutter contre des balises de marquage. Conventions et nommage : les documents OPF sont des fichiers JSON nommés *.opf.json (par exemple board-review.opf.json) pour les présentations complètes. Le projet déconseille l'extension *.opf seule car elle est déjà utilisée par d'autres formats de documents et de projets. Le nom Open Presentation Format ainsi que les schémas, catalogues, packages et outils locaux peuvent être utilisés par des outils tiers pour lire, écrire, valider, rendre, convertir et décrire le support sans adopter de branding spécifique à un produit. Ce que fait le package JavaScript/TypeScript : il exporte les schémas canoniques et les enregistrements de catalogues groupés depuis spec/, un manifeste de fichier de spécification brut typé pour le contenu de spécification adressable par package, des types TypeScript générés avec Presentation comme type de haut niveau, et une validation locale pour le JSON OPF et les enregistrements de catalogue. La validation renvoie la validité ainsi que des avertissements consultatifs, par exemple des identifiants de catalogue inconnus. Des imports de sous-chemins ciblés sont disponibles pour les schémas, les catalogues, les fichiers de spécification, le validateur et les types, et les schémas JSON bruts peuvent être importés directement par des moteurs ou des résolveurs. Le package expose également une géométrie de composition pure afin que les bibliothèques en aval partagent le comportement de mise en page. Il ne rend pas et n'analyse pas explicitement le .pptx, ne génère pas de contenu avec l'IA, ne récupère pas de catalogues distants, n'appelle pas d'API hébergées et ne fournit pas de services gérés. Outillage local : une CLI installable sous licence MIT peut créer, valider, éditer et inspecter des fichiers OPF localement, par exemple en créant une présentation avec un titre, en validant un fichier ou en appliquant un patch sur place. Une commande CLI 0.5.0 installe six compétences OPF dans un projet pour les agents IA, en utilisant des copies locales, en préservant les instructions existantes et en refusant d'écraser les compétences personnalisées, avec des cibles documentées et des tests de pré-version. La documentation couvre les compétences des agents, la rédaction par LLM, la composition dynamique et la vérification de l'écosystème local. Points forts de la structure du dépôt : le schéma JSON canonique pour les documents Presentation de haut niveau ; une introduction conceptuelle au modèle de document, aux formes de contenu, à la résolution de catalogue et à la philosophie de validation ; un algorithme de préséance de conception (conception de diapositive, conception de présentation, thème résolu, valeurs par défaut du moteur) ; des références pour les auteurs concernant les champs de haut niveau, les définitions de schémas, les schémas de catalogues compagnons et les charges utiles de contenu de diapositive/région incluant les graphiques et les tableaux ; des guides sur les installations techniques et des exemples de galerie orientés scénarios ; des notes sur l'éditeur en direct concernant le canvas du navigateur, le chargement des polices et les limites de fidélité actuelles ; et un guide de déploiement pour le mainteneur. Un contrat OpenAPI de référence optionnel existe pour les services en aval qui choisissent d'exposer l'OPF via HTTP, mais OpenPresentation n'héberge pas cette API. Limite de l'écosystème : les capacités de rendu, d'édition et de conversion résident dans des dépôts frères distincts sous licence MIT — opf-render (OPF vers SVG/PNG/PDF), opf-editor (primitives d'éditeur headless plus composants UI optionnels) et opf-pptx (import/export PPTX purement local). Ceux-ci ne fournissent que des primitives open-source ; les applications en aval gèrent l'hébergement, l'authentification, le stockage, la collaboration, les files d'attente, les aperçus, les analyses, le support et l'UX du flux de travail. Des packages Python et Go futurs devraient suivre la même limite locale, exposant les schémas, les modèles, les catalogues, la validation et les actifs adressables par package sans appels réseau requis ni télémétrie cachée. Des presets de catalogues consultables par l'humain tels que les mises en page, les thèmes, les schémas de couleurs et de polices, les types de graphiques, les récits, les audiences, les objectifs, les tons, les langues et les plateformes sociales sont référencés via pptx.gallery.