For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme
Codex

Codex use case

Ajoutez de la télémétrie à une app Mac

Utilisez Codex pour instrumenter une fonctionnalité Mac avec Logger, lancer l’app et vérifier dans les journaux unifiés que l’action a bien eu lieu.

Difficulty Advanced
Time horizon 30m

Avec Codex et le plugin Build macOS Apps, ajoutez quelques événements Logger ciblés pour suivre les fenêtres, les barres latérales, les commandes ou les étapes de synchronisation. Lancez ensuite l’app et vérifiez dans Console ou avec log stream que les actions attendues ont bien eu lieu.

Best for

  • Fonctionnalités d’apps Mac pour lesquelles Codex a besoin d’une trace fiable des ouvertures de fenêtres, des sélections dans la barre latérale, des commandes de menu, des actions dans la barre des menus, des étapes clés de synchronisation ou des chemins de repli
  • Sessions de débogage où Codex corrige le code, relance l’app et examine les journaux à chaque itération pour déterminer le correctif suivant à partir des événements observés
  • Sessions locales de collecte de journaux pour comparer, d’une exécution à l’autre, une courte séquence d’actions de l’utilisateur et d’événements du cycle de vie de l’app

Contents

    ← All use cases

    Ajoutez de la télémétrie à une app Mac

    Utilisez Codex pour instrumenter une fonctionnalité Mac avec Logger, lancer l’app et vérifier dans les journaux unifiés que l’action a bien eu lieu.

    Avec Codex et le plugin Build macOS Apps, ajoutez quelques événements Logger ciblés pour suivre les fenêtres, les barres latérales, les commandes ou les étapes de synchronisation. Lancez ensuite l’app et vérifiez dans Console ou avec log stream que les actions attendues ont bien eu lieu.

    Advanced
    30m

    Avec Codex et le plugin Build macOS Apps, ajoutez quelques événements Logger ciblés pour suivre les fenêtres, les barres latérales, les commandes ou les étapes de synchronisation. Lancez ensuite l’app et vérifiez dans Console ou avec log stream que les actions attendues ont bien eu lieu.

    Advanced
    30m

    Best for

    • Fonctionnalités d’apps Mac pour lesquelles Codex a besoin d’une trace fiable des ouvertures de fenêtres, des sélections dans la barre latérale, des commandes de menu, des actions dans la barre des menus, des étapes clés de synchronisation ou des chemins de repli
    • Sessions de débogage où Codex corrige le code, relance l’app et examine les journaux à chaque itération pour déterminer le correctif suivant à partir des événements observés
    • Sessions locales de collecte de journaux pour comparer, d’une exécution à l’autre, une courte séquence d’actions de l’utilisateur et d’événements du cycle de vie de l’app

    Skills & Plugins

    • Utilisez les skills macOS dédiés à la télémétrie, à la compilation et à l’exécution pour ajouter une journalisation structurée avec `OSLog`. Lancez l’app, testez le parcours dans l’interface et vérifiez les événements émis dans Console ou avec `log stream`.
    Skill Why use it
    Build macOS Apps Utilisez les skills macOS dédiés à la télémétrie, à la compilation et à l’exécution pour ajouter une journalisation structurée avec `OSLog`. Lancez l’app, testez le parcours dans l’interface et vérifiez les événements émis dans Console ou avec `log stream`.

    Starter prompt

    Utilisez le plugin Build macOS Apps pour ajouter une journalisation unifiée légère à [name one Mac feature or action flow]. Lancez ensuite l’app et vérifiez dans les journaux que les événements se produisent dans l’ordre prévu. Contraintes - Privilégiez `Logger` du module `OSLog` plutôt que `print`. Donnez des noms explicites au sous-système et à la catégorie de cette fonctionnalité pour faciliter le filtrage des journaux. - Consignez sur une seule ligne concise chaque début ou fin d’action importante et chaque transition d’état significative. Par exemple, consignez l’ouverture d’une fenêtre, un changement de sélection dans la barre latérale, l’exécution d’une commande de menu, le début ou la fin d’une synchronisation ou le recours à un chemin de repli. - Gardez les messages permanents de niveau `info` stables et limitez-les aux informations pertinentes. Réservez `debug` aux détails qui encombreraient les journaux hors des tests locaux. Avant de terminer, supprimez les appels de journalisation temporaires ou abaissez leur niveau. - Ne consignez ni secrets, ni tokens d’authentification, ni données personnelles, ni contenu brut de documents. Si vous devez consigner un identifiant, choisissez l’annotation qui protège le mieux sa confidentialité et justifiez ce choix. - Compilez et lancez l’app, testez vous-même le parcours dans l’interface et vérifiez les événements dans Console ou avec un prédicat ciblé pour `log stream`. - Si le parcours est long, ne se reproduit que par intermittence ou est plus facile à reproduire à la main, enregistrez le flux de journaux filtré dans un petit fichier de trace local pour cette session. Au besoin, laissez-moi tester l’app manuellement, puis relisez le fichier et résumez la chronologie des événements. - Si un événement attendu manque, rapprochez l’appel de journalisation du chemin d’exécution que vous soupçonnez. Rejouez le parcours et poursuivez jusqu’à ce que les journaux expliquent ce qui s’est passé. Éléments à fournir - La nouvelle configuration du journaliseur et la liste exacte des événements ajoutés - Le filtre de Console ou le prédicat `log stream` utilisé - Un bref bilan comparant ce que les journaux permettaient d’observer avant la modification et ce qu’ils montrent désormais - Le fichier de trace enregistré et un résumé chronologique si la capture s’est prolongée - Une ou deux lignes de journal représentatives qui confirment que le parcours est correctement instrumenté
    Utilisez le plugin Build macOS Apps pour ajouter une journalisation unifiée légère à [name one Mac feature or action flow]. Lancez ensuite l’app et vérifiez dans les journaux que les événements se produisent dans l’ordre prévu. Contraintes - Privilégiez `Logger` du module `OSLog` plutôt que `print`. Donnez des noms explicites au sous-système et à la catégorie de cette fonctionnalité pour faciliter le filtrage des journaux. - Consignez sur une seule ligne concise chaque début ou fin d’action importante et chaque transition d’état significative. Par exemple, consignez l’ouverture d’une fenêtre, un changement de sélection dans la barre latérale, l’exécution d’une commande de menu, le début ou la fin d’une synchronisation ou le recours à un chemin de repli. - Gardez les messages permanents de niveau `info` stables et limitez-les aux informations pertinentes. Réservez `debug` aux détails qui encombreraient les journaux hors des tests locaux. Avant de terminer, supprimez les appels de journalisation temporaires ou abaissez leur niveau. - Ne consignez ni secrets, ni tokens d’authentification, ni données personnelles, ni contenu brut de documents. Si vous devez consigner un identifiant, choisissez l’annotation qui protège le mieux sa confidentialité et justifiez ce choix. - Compilez et lancez l’app, testez vous-même le parcours dans l’interface et vérifiez les événements dans Console ou avec un prédicat ciblé pour `log stream`. - Si le parcours est long, ne se reproduit que par intermittence ou est plus facile à reproduire à la main, enregistrez le flux de journaux filtré dans un petit fichier de trace local pour cette session. Au besoin, laissez-moi tester l’app manuellement, puis relisez le fichier et résumez la chronologie des événements. - Si un événement attendu manque, rapprochez l’appel de journalisation du chemin d’exécution que vous soupçonnez. Rejouez le parcours et poursuivez jusqu’à ce que les journaux expliquent ce qui s’est passé. Éléments à fournir - La nouvelle configuration du journaliseur et la liste exacte des événements ajoutés - Le filtre de Console ou le prédicat `log stream` utilisé - Un bref bilan comparant ce que les journaux permettaient d’observer avant la modification et ce qu’ils montrent désormais - Le fichier de trace enregistré et un résumé chronologique si la capture s’est prolongée - Une ou deux lignes de journal représentatives qui confirment que le parcours est correctement instrumenté

    Ajoutez un Logger là où le comportement de l’application est difficile à expliquer

    Dans une application Mac, il arrive que l’on constate que « quelque chose s’est passé » sans qu’une revue de code suffise à expliquer quoi. Demandez à Codex de consigner quelques événements révélateurs dans les journaux unifiés pour un comportement précis, de lancer l’application, de déclencher ce comportement et de vérifier dans Console ou avec log stream que les événements attendus se sont produits.

    Utilisez le plugin Build macOS Apps pour suivre cette démarche. Son skill de télémétrie macOS se limite volontairement à l’essentiel. Utilisez le Logger d’Apple, choisissez un sous-système et une catégorie aux noms explicites, puis consignez le début et la fin des actions ainsi que les changements d’état. Évitez de journaliser des données sensibles. Compilez et lancez l’application en local, puis vérifiez que l’événement apparaît pour vous assurer que l’instrumentation fonctionne.

    Pourquoi la télémétrie facilite le développement avec des agents

    Des journaux bien conçus permettent à Codex de répéter les mêmes vérifications après chaque correctif. Au lieu de vous demander de vérifier manuellement chaque fenêtre, chaque action de menu ou chaque changement d’état de la synchronisation, l’agent peut lancer l’application, reproduire le scénario, examiner les journaux filtrés et s’appuyer sur ses observations pour décider de la prochaine modification du code.

    Cette démarche se prête particulièrement bien à trois scénarios :

    • Débogage autonome : Codex instrumente le parcours qui semble poser problème, lance l’application, clique dans la barre latérale ou déclenche une commande, puis examine la suite des événements consignés. Il corrige le code qui met à jour l’état et répète le parcours jusqu’à ce que les journaux concordent avec le comportement de l’interface.
    • Enregistrement d’une session : Codex ajoute un événement pour chacune des étapes à observer : lancement de l’application, ouverture d’une fenêtre, sélection dans la barre latérale, début, fin ou échec d’un import. Il exécute ensuite une session en local et en résume la chronologie pour faire ressortir les transitions manquantes ou survenues dans le désordre.
    • Capture pendant vos manipulations : Codex lance l’application avec la journalisation activée et maintient un flux de journaux filtré pendant que vous reproduisez manuellement un scénario délicat. Il examine ensuite la session enregistrée et s’appuie sur la trace pour proposer le prochain correctif.

    Limitez l’instrumentation et facilitez le filtrage

    Demandez à Codex d’utiliser un seul enregistreur par domaine fonctionnel. Évitez de consigner systématiquement chaque modification d’état. Des catégories fonctionnelles telles que Windowing, Commands, MenuBar, Sidebar, Sync ou Import facilitent le filtrage des journaux lors de la prochaine séance de débogage.

    import SwiftUI
    
    struct SidebarItem { let id: String }
    @MainActor private var selection: String?
    import OSLog
    
    private let logger = Logger(
      subsystem: Bundle.main.bundleIdentifier ?? "SampleApp",
      category: "Sidebar"
    )
    
    @MainActor
    func selectItem(_ item: SidebarItem) {
      logger.info("Selected sidebar item: \(item.id, privacy: .public)")
      selection = item.id
    }

    Utilisez info pour consigner brièvement les actions et les événements du cycle de vie qui resteront utiles dans la durée. Réservez debug aux détails plus nombreux sur l’état local, que vous pourrez supprimer ou passer à un niveau de journalisation inférieur avant de terminer la tâche. Ajoutez des points de mesure (signposts) uniquement lorsque vous mesurez une durée.

    Demandez à Codex de confirmer l’événement à partir des journaux

    Allez au-delà de l’ajout d’appels à Logger. Demandez à Codex de lancer l’application, de reproduire le parcours instrumenté et de vous fournir le filtre exact utilisé dans Console ou le prédicat passé à log stream, ainsi qu’une ou deux lignes représentatives du journal.

    log stream --style compact --predicate 'subsystem == "com.example.app" && category == "Sidebar"'

    Si un événement attendu n’apparaît pas, demandez à Codex de rapprocher l’appel de journalisation du chemin d’exécution suspecté, de reproduire le même parcours et de répéter l’opération jusqu’à ce que les journaux expliquent ce qui s’est passé. Si vous devez finalement analyser un plantage ou une trace de pile, passez au workflow de débogage du plugin qui compile et lance l’application, et limitez la télémétrie au début et à la fin des actions.

    Enregistrez une trace de session pour une prochaine exécution de Codex

    Pour les bugs qui demandent du temps à reproduire ou qui ne surviennent que par intermittence, demandez à Codex d’enregistrer un flux de journaux filtré dans un petit fichier de trace local, d’en résumer la chronologie et de laisser le fichier dans l’espace de travail. Lors d’une prochaine exécution, Codex pourra examiner les mêmes événements sans avoir à reconstituer toute la session de mémoire. Cela facilite le débogage en plusieurs étapes lorsqu’une première exécution de l’agent sert à recueillir une trace et qu’une autre sert à comparer le comportement avant et après un correctif.

    Cette méthode convient aussi lorsque vous devez effectuer vous-même une partie des manipulations. Demandez à Codex de lancer l’application en mode débogage avec la journalisation activée, de démarrer une capture filtrée, d’attendre pendant que vous reproduisez le problème manuellement, puis de lire le fichier de trace enregistré une fois vos manipulations terminées.

    Conseils pratiques

    Instrumentez une seule fonctionnalité à la fois

    Commencez par une seule barre latérale, une fenêtre, une commande ou un parcours de synchronisation pour que la suite des événements reste facile à examiner. Une fois ce parcours fiable, Codex peut appliquer la même méthode aux parcours associés.

    Précisez les exigences de confidentialité dans le prompt

    Demandez à Codex d’expliquer chaque identifiant consigné et d’éviter d’écrire des secrets, des données personnelles ou du contenu brut dans les journaux unifiés. Quelques types d’événements suffisent généralement pour le débogage local.

    Incluez un extrait du journal dans le résumé final

    Quelques lignes représentatives permettent de vérifier la modification bien plus facilement que la seule mention « la télémétrie a été ajoutée ». Demandez à Codex d’inclure le prédicat de filtrage et une brève chronologie des actions pour que l’agent puisse répéter la même vérification lors de sa prochaine exécution.

    Tech stack

    Need

    Journalisation de l’app

    Default options

    Logger d’OSLog

    Why it's needed

    Grâce à la journalisation unifiée structurée, Codex peut filtrer les événements pour suivre précisément un parcours, sans multiplier les appels à print dans le code.

    Need

    Workflow de l’agent

    Why it's needed

    Les skills du plugin dédiés à la télémétrie, à la compilation et à l’exécution se complètent. Instrumentez un parcours, lancez l’app, examinez les journaux, puis affinez le choix des événements à consigner.

    Need

    Vérification à l’exécution

    Default options

    Console.app et log stream --predicate ...

    Why it's needed

    Avec un filtre précis et un exemple de sortie, l’agent peut transmettre une procédure qui permet de vérifier facilement la nouvelle instrumentation à chaque exécution.

    Need Default options Why it's needed
    Journalisation de l’app Logger d’OSLog Grâce à la journalisation unifiée structurée, Codex peut filtrer les événements pour suivre précisément un parcours, sans multiplier les appels à print dans le code.
    Workflow de l’agent Plugin Build macOS Apps Les skills du plugin dédiés à la télémétrie, à la compilation et à l’exécution se complètent. Instrumentez un parcours, lancez l’app, examinez les journaux, puis affinez le choix des événements à consigner.
    Vérification à l’exécution Console.app et log stream --predicate ... Avec un filtre précis et un exemple de sortie, l’agent peut transmettre une procédure qui permet de vérifier facilement la nouvelle instrumentation à chaque exécution.

    Related use cases