Communitygithub.com

pptx

À utiliser chaque fois qu'un fichier .pptx ou .potx est impliqué — en entrée, en sortie, ou les deux. Cela inclut : créer des présentations, lire/analyser le contenu d'un fichier PowerPoint, éditer ou modifier des présentations existantes, combiner/fractionner des fichiers de diapositives, travailler avec des modèles (.potx), des mises en page, des notes de présentateur ou des commentaires.

Qu'est-ce que pptx ?

Cette compétence permet de créer, éditer et analyser des fichiers PowerPoint (.pptx) et modèles (.potx) de manière fiable, en évitant les pièges courants. Elle utilise trois approches principales : `pptxgenjs` pour la création de nouvelles présentations (avec de nombreux avertissements sur les pièges d'API tels que les couleurs hexadécimales incorrectes, les mutations d'objets, ou les problèmes de graphiques), le dézippage/édition/rezippage XML pour l'édition avancée, et `markitdown` pour l'extraction de texte. Pour la création, la compétence guide l'utilisateur sur l'utilisation correcte de `pptxgenjs`, notamment le réglage du canevas avant d'ajouter des diapositives, la gestion des couleurs hexadécimales sans `#`, et l'emploi des listes avec `breakLine`. Pour l'édition, elle fournit des scripts comme `add_slide.py` pour dupliquer des diapositives avec toutes les dépendances et `clean.py` pour supprimer les fichiers orphelins. La validation finale avec le script `validate.py` garantit l'intégrité du fichier. Enfin, la compétence intègre un guide de conception complet, avec des palettes de couleurs thématiques, des conseils typographiques (polices sûres Arial, Calibri) et des motifs visuels pour éviter les présentations fades. Cette compétence prend en charge les scripts Python, Node.js et les commandes shell dans un environnement sandboxé, et est utile pour les développeurs et les utilisateurs d'agents IA qui doivent automatiser la manipulation de présentations PowerPoint de manière robuste.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/pptx

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Création, édition et analyse de PPTX

Un .pptx est une archive ZIP de fichiers XML. Choisissez votre approche selon la tâche :

TâcheApproche
Créer une nouvelle présentationÉcrire un script pptxgenjs — voir les pièges ci-dessous
Éditer une présentation existante, ou construire à partir d'un modèleDézipper → éditer ppt/slides/slideN.xml → zipper
Lire le contenumarkitdown deck.pptx (un bloc par diapositive sous les marqueurs <!-- Slide number: N -->) ; grille visuelle : python scripts/thumbnail.py deck.pptx

Scripts

Les chemins sont relatifs au répertoire de cette compétence. Tout le reste est du Python, node, ou shell simple.

ScriptCe qu'il fait
scripts/thumbnail.py deck.pptx [prefix]Grille étiquetée de chaque diapositive, pour choisir les mises en page des modèles. .pptx uniquement. Passez prefix — la valeur par défaut est thumbnails, ce qui écrase les grilles de toute autre présentation traitée dans le même répertoire
scripts/add_slide.py unpacked/ slide2.xml [--after slideN.xml]Duplique une diapositive (ou un slideLayoutN.xml) avec toute la comptabilité du package. Accepte également un .pptx directement avec -o out.pptx
scripts/clean.py unpacked/Supprime les diapositives, médias et relations qui ne sont plus référencés. À exécuter après que <p:sldIdLst> soit final
scripts/office/validate.py deck.pptx [--original src.pptx]Vérifications de schéma, relations, types de contenu, graphiques et diapositives ; chaque échec nomme sa correction. Passez --original pour toute présentation dérivée d'un modèle — cela base les vérifications de schéma sur le modèle, afin que les erreurs XSD du modèle lui-même ne soient pas considérées comme les vôtres
scripts/office/soffice.py --headless --convert-to pdf deck.pptxWrapper LibreOffice — soffice nu plante dans ce sandbox

Créer avec pptxgenjs — pièges

pptxgenjs est préinstallé — n'exécutez pas npm install d'abord ; écrivez le script et faites require('pptxgenjs') directement. Seulement si ce require échoue : npm install pptxgenjs. Le modèle connaît l'API ; voici les pièges :

  • Définissez pres.layout avant d'ajouter des diapositives. Le canevas par défaut est LAYOUT_16x9 = 10" × 5.625" , pas 13.3" de large. Les coordonnées au-delà du bord sont écrites, non écrêtées — la forme n'est tout simplement pas sur la diapositive. (LAYOUT_WIDE fait 13.3" × 7.5".)
  • Couleurs hexadécimales : jamais de #, jamais 8 chiffres. color: "FF0000". "#FF0000" ou l'alpha intégré dans l'hex ("00000020") corrompt le fichier. Pour la translucidité : transparency: 0-100 sur les remplissages et les images, opacity: 0.0-1.0 sur les ombres — chacun est silencieusement ignoré sur l'autre.
  • pptxgenjs mute les objets d'options sur place (convertit les valeurs en EMU lors de la première utilisation). Ne partagez jamais un même objet shadow/options entre deux appels add* — construisez un nouvel objet à chaque fois.
  • L'offset de l'ombre doit être ≥ 0 — un offset négatif corrompt le fichier. Pour projeter une ombre vers le haut, utilisez angle: 270 avec un offset positif.
  • letterSpacing est silencieusement ignoré — la vraie option est charSpacing.
  • Listes : bullet: true sur chaque élément, jamais un • littéral (rend des doubles puces). Définissez breakLine: true sur chaque élément du tableau sauf le dernier. Espacez les paragraphes à puces avec paraSpaceAfter, pas lineSpacing (écarts énormes).
  • Un new pptxgen() par fichier de sortie — ne réutilisez jamais une instance.
  • rectRadius fonctionne uniquement sur ROUNDED_RECTANGLE, pas sur RECTANGLE.
  • Les remplissages dégradés ne sont pas pris en charge — utilisez une image dégradée comme arrière-plan à la place.
  • Les zones de texte ont un remplissage interne intégré — définissez margin: 0 chaque fois que le texte doit s'aligner avec une forme, une ligne ou une icône au même x.
  • Les notes du présentateur vont dans slide.addNotes("...") (texte brut, une fois par diapositive), jamais dans une zone de texte sur la diapositive.
  • Conservez les graphiques natifs. Utilisez addChart() pour tout ce que PowerPoint peut graphiquer (passez un tableau de {type, data, options} pour les combinaisons). Pour les fonctionnalités natives de PowerPoint que la bibliothèque n'expose pas (courbes de tendance, barres d'erreur), calculez vous-même la série supplémentaire ou post-traitez le OOXML généré — ne recourez pas à une image rendue. Seuls les types de graphiques dont PowerPoint n'a pas de forme native (Sankey, réseau, chord) vont sous forme d'images.
  • Les graphiques par défaut sont rendus nus — pas de titre, pas d'étiquettes de données, palette datée. Définissez showTitle + title, showValue: true + dataLabelPosition, chartColors: [...] de votre palette, et atténuez le cadre (catAxisLabelColor/valAxisLabelColor, valGridLine: { color, size }, catGridLine: { style: "none" }, showLegend: false pour une seule série).
  • Sur un graphique à barres ou colonnes empilées, dataLabelPosition doit être ctr, inEnd, ou inBase. outEnd corrompt le fichier.
  • Une série combinée utilisant secondaryValAxis/secondaryCatAxis a besoin à la fois de valAxes et catAxes dans les options du graphique, deux entrées chacun. Sans eux, pptxgenjs écrit des ids d'axe qu'il ne déclare jamais, et PowerPoint supprime ce graphique et signale le fichier comme corrompu. Fournir uniquement valAxes ne suffit pas.
  • Après writeFile(), exécutez python scripts/office/validate.py deck.pptx. Il signale les deux défauts de graphique ci-dessus et les défauts de diapositive-XML que PowerPoint refuse, et nomme la correction pour chacun. Corrigez-les dans votre générateur, pas en éditant manuellement le XML emballé.
  • Ne réordonnez jamais les enfants de <p:presentation>. pptxgenjs écrit <p:notesMasterIdLst> juste après <p:sldIdLst> et pointe les deux masters vers une seule partie de thème. PowerPoint le lit heureusement ainsi — déplacez l'élément et la même présentation devient impossible à ouvrir.
  • Icônes : rendez les react-icons en SVG (ReactDOMServer.renderToStaticMarkup), rastérisez avec sharp à ≥256px, et insérez via addImage({ data: "image/png;base64," + buf.toString("base64") }) — le préfixe image/png;base64, est requis (react-icons, react, react-dom, et sharp sont préinstallés — npm install react-icons react react-dom sharp uniquement si un require échoue).

Éditer des présentations et modèles existants

Choisissez d'abord les mises en page : python scripts/thumbnail.py template.pptx template-thumbs écrit une grille étiquetée de chaque diapositive et affiche le(s) fichier(s) créé(s) — template-thumbs.jpg, divisé en template-thumbs-N.jpg au-delà de 12 diapositives. Passez toujours ce second argument, nommé d'après la présentation. Sa valeur par défaut est thumbnails, donc deux présentations miniatures dans un même répertoire écrasent silencieusement les grilles l'une de l'autre — celles de la première présentation sont simplement perdues (analyse de modèle uniquement — le contrôle qualité visuel a besoin des rendus en pleine résolution de Conversion en images ; il n'accepte que .pptx, donc copiez d'abord un .potx en un nom .pptx). Utilisez-le avec markitdown pour mapper chaque section de contenu sur une diapositive de modèle, et variez les mises en page — ne mettez pas chaque section sur la même diapositive titre-et-puces.

python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall('unpacked')" deck.pptx
python scripts/add_slide.py unpacked/ slide2.xml --after slide2.xml   # duplique une diapositive (ou slideLayoutN.xml) ; affiche le chemin de la nouvelle diapositive
# réordonner / supprimer des diapositives = éditer <p:sldIdLst> dans ppt/presentation.xml
python scripts/clean.py unpacked/                                     # après les suppressions : supprime les diapositives, médias, relations orphelines
# éditer le contenu de la diapositive dans ppt/slides/slideN.xml
(cd unpacked && rm -f ../out.pptx && zip -Xr ../out.pptx .)           # zipper DEPUIS l'intérieur du répertoire ; rm d'abord ou les parties supprimées survivent
python scripts/office/validate.py out.pptx --original deck.pptx
  • Effectuez tout le travail structurel — ajouter, supprimer, réordonner — avant d'éditer le contenu d'une diapositive. add_slide.py copie un fichier de diapositive textuellement, donc dupliquer après avoir édité clone le contenu édité ; et clean.py supprime toute diapositive manquante de <p:sldIdLst>, y compris celle que vous venez d'écrire.
  • Ne copiez jamais un fichier de diapositive à la main — add_slide.py fait tous les enregistrements nécessaires pour une nouvelle diapositive et signale ce qu'il a créé (Created ppt/slides/slide17.xml from slide2.xml). Il fonctionne également directement sur un fichier : add_slide.py deck.pptx slide2.xml -o out.pptx — passez -o, ou il réécrit la présentation d'entrée sur place. Une diapositive dupliquée référence toujours les parties de graphique/SmartArt/objet intégré de sa source plutôt que de les cloner, donc éditer le graphique d'une diapositive modifie celui de l'autre.
  • Si vous utilisez python-pptx , trois choses qu'il ne fera pas : dupliquer une diapositive (son seul point d'entrée est add_slide(layout)), préserver la mise en forme via text_frame.text = "..." (cela réduit le paragraphe à une seule séquence non stylisée — assignez plutôt run.text), ou lire le SVG/EMF utilisé par la plupart des illustrations de modèle (add_picture lève UnidentifiedImageError).
  • Le .ppt hérité doit d'abord être converti : python scripts/office/soffice.py --headless --convert-to pptx file.ppt. Les modèles .potx se décompressent et se compressent à l'identique — conservez l'extension .potx sur la sortie.
  • Pour réutiliser une icône ou une image de modèle, dupliquez une diapositive ou une mise en page qui la contient déjà.

Lors du remplissage d'un modèle :

  • Si vous scriptez une transformation XML, analysez avec defusedxml.minidom — le round-trip du OOXML via xml.etree.ElementTree réécrit les préfixes d'espace de noms et corrompt la présentation.
  • Les emplacements du modèle ≠ éléments source. Si le modèle montre 4 membres d'équipe et que vous en avez 3, supprimez le groupe entier du 4ème membre (image + zones de texte), pas seulement son texte — puis vérifiez s'il y a des éléments visuels orphelins lors du contrôle qualité.
  • Un <a:p> par élément de liste — ne concaténez jamais les éléments en un seul paragraphe. Copiez le <a:pPr> frère pour préserver l'espacement, et mettez b="1" sur le <a:rPr> des titres, en-têtes de section et étiquettes en ligne (Status:, Owner:).
  • Laissez les puces hériter de la mise en page ; n'ajoutez <a:buChar>, <a:buAutoNum> (numéroté), ou <a:buNone> que pour remplacer — jamais un • littéral dans le texte.
  • Le texte avec des espaces de début ou de fin a besoin de xml:space="preserve" sur son <a:t>.

Idées de design

Ne créez pas de diapositives ennuyeuses. Les puces simples sur fond blanc n'impressionneront personne. Considérez les idées de cette liste pour chaque diapositive.

Avant de commencer

  • Choisissez une palette de couleurs audacieuse et informée par le contenu : La palette doit sembler conçue POUR ce sujet. Si échanger vos couleurs dans une présentation complètement différente "fonctionnait" toujours, vous n'avez pas fait de choix suffisamment spécifiques.
  • Dominance sur l'égalité : Une couleur doit dominer (60-70% de poids visuel), avec 1-2 tons de soutien et un accent vif. Ne donnez jamais un poids égal à toutes les couleurs.
  • Contraste sombre/clair : Arrière-plans sombres pour les diapositives de titre + conclusion, clairs pour le contenu (structure "sandwich"). Ou optez pour le sombre partout pour une sensation premium.
  • Engagez-vous pour un motif visuel : Choisissez UN élément distinctif et répétez-le — cadres d'image arrondis, icônes dans des cercles colorés. Portez-le sur chaque diapositive. N'utilisez pas de barre de couleur ou de bande d'accent comme motif (voir liste à éviter).

Palettes de couleurs

Choisissez des couleurs qui correspondent à votre sujet — ne vous rabattez pas sur le bleu générique. Utilisez ces palettes comme inspiration :

ThèmePrimaireSecondaireAccent
Midnight Executive1E2761 (bleu marine)CADCFC (bleu glacial)FFFFFF (blanc)
Forest & Moss2C5F2D (forêt)97BC62 (mousse)F5F5F5 (crème)
Coral EnergyF96167 (corail)F9E795 (or)2F3C7E (bleu marine)
Warm TerracottaB85042 (terre cuite)E7E8D1 (sable)A7BEAE (sauge)
Ocean Gradient065A82 (bleu profond)1C7293 (sarcelle)21295C (minuit)
Charcoal Minimal36454F (charbon)F2F2F2 (blanc cassé)212121 (noir)
Teal Trust028090 (sarcelle)00A896 (écume de mer)02C39A (menthe)
Berry & Cream6D2E46 (baie)A26769 (rose poussiéreux)ECE2D0 (crème)
Sage Calm84B59F (sauge)69A297 (eucalyptus)50808E (ardoise)
Cherry Bold990011 (cerise)FCF6F5 (blanc cassé)2F3C7E (bleu marine)

Pour chaque diapositive

Chaque diapositive a besoin d'un élément visuel — image, graphique, icône ou forme. Les diapositives contenant uniquement du texte sont oubliables.

Options de mise en page :

  • Deux colonnes (texte à gauche, illustration à droite)
  • Icône + lignes de texte (icône dans un cercle coloré, en-tête en gras, description en dessous)
  • Grille 2x2 ou 2x3 (image d'un côté, grille de blocs de contenu de l'autre)
  • Image à demi-débordement (côté gauche ou droit complet) avec superposition de contenu

Affichage des données :

  • Chiffres clés en grand (grands nombres 60-72pt avec petites étiquettes en dessous)
  • Colonnes de comparaison (avant/après, avantages/inconvénients, options côte à côte)
  • Chronologie ou flux de processus (étapes numérotées, flèches)

Polissage visuel :

  • Icônes dans de petits cercles colorés à côté des en-têtes de section
  • Texte d'accent en italique pour les statistiques clés ou les slogans

Typographie

Les noms de police que vous écrivez dans le .pptx sont rendus par le PowerPoint de l'utilisateur, pas par cet environnement. Votre rendu de contrôle qualité visuel via LibreOffice substitue les polices qu'il ne possède pas — et pour certaines polices, le substitut a des largeurs différentes, donc votre aperçu de contrôle qualité peut montrer un débordement de texte (ou un ajustement) que la véritable présentation n'aura pas. Pour que votre contrôle qualité reste fiable :

  • Polices sûres (rendues à la bonne largeur dans le contrôle qualité et livrées avec Office) : Arial, Calibri, Cambria, Times New Roman, Courier New, Bookman Old Style, Century Schoolbook. Utilisez-les pour le corps du texte et tout ce qui concerne l'ajustement.
  • En-têtes avec personnalité sans risque pour le contrôle qualité : associez un en-tête serif de la liste sûre (Cambria, Bookman Old Style, Century Schoolbook) avec un corps sans serif de la liste sûre (Calibri ou Arial). Vous obtenez un contraste visuel sans sacrifier les vérifications fiables de débordement.
  • Si l'utilisateur demande une police en dehors de la liste sûre (par exemple Georgia ou Trebuchet MS) : utilisez-la là où l'utilisateur l'a demandée, mais dimensionnez ces conteneurs avec un jeu supplémentaire (~10%) et ne faites pas confiance à l'ajustement du texte du contrôle qualité sur ces éléments — l'aperçu de cette police est approximatif. Si l'utilisateur n'a pas spécifié, préférez les polices de la liste sûre pour le corps du texte.
  • Polices non fiables pour le contrôle qualité (le substitut a des largeurs différentes — les vérifications de débordement peuvent être erronées) : Georgia, Trebuchet MS, Impact, Arial Black, Garamond, Consolas, Palatino Linotype. La substitution de Calibri Light varie selon l'environnement ; traitez-la comme non fiable pour le contrôle qualité. Acceptable pour les titres/accents avec du jeu ; ne faites pas confiance à l'ajustement du texte du contrôle qualité sur ces éléments.
  • Ne vous rabattez jamais sur Aptos — la valeur par défaut d'Office après 2023 n'a pas de substitut compatible métrique ici et est absente des anciennes installations d'Office, donc elle n'est fiable ni d'un côté ni de l'autre.
ÉlémentTaille
Titre de diapositive36-44pt gras
En-tête de section20-24pt gras
Corps du texte14-16pt
Légendes10-12pt atténué

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

Skills associés