For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Theme
Codex

Codex use case

Adicione telemetria a um aplicativo para Mac

Use o Codex para instrumentar um recurso de um aplicativo para Mac com Logger, executar o aplicativo e confirmar a ação nos logs unificados.

Difficulty Advanced
Time horizon 30m

Use o Codex e o plugin Build macOS Apps para registrar com Logger alguns eventos relevantes de janelas, barras laterais, comandos ou fluxos de sincronização. Depois, execute o aplicativo e confirme no Console ou com log stream que as ações esperadas ocorreram.

Best for

  • Recursos de aplicativos para Mac em que o Codex precisa de um registro confiável da abertura de janelas, das seleções na barra lateral, dos comandos de menu acionados, das ações na barra de menus, das etapas importantes da sincronização ou dos caminhos alternativos percorridos
  • Ciclos de depuração com agentes de IA em que o Codex deve corrigir o código, executar o aplicativo novamente e examinar os logs para decidir a próxima correção com base no que observou
  • Coletas repetidas de logs de sessões locais do aplicativo para comparar, entre execuções, uma sequência curta de ações do usuário e eventos do ciclo de vida do aplicativo

Contents

    ← All use cases

    Adicione telemetria a um aplicativo para Mac

    Use o Codex para instrumentar um recurso de um aplicativo para Mac com Logger, executar o aplicativo e confirmar a ação nos logs unificados.

    Use o Codex e o plugin Build macOS Apps para registrar com Logger alguns eventos relevantes de janelas, barras laterais, comandos ou fluxos de sincronização. Depois, execute o aplicativo e confirme no Console ou com log stream que as ações esperadas ocorreram.

    Advanced
    30m

    Use o Codex e o plugin Build macOS Apps para registrar com Logger alguns eventos relevantes de janelas, barras laterais, comandos ou fluxos de sincronização. Depois, execute o aplicativo e confirme no Console ou com log stream que as ações esperadas ocorreram.

    Advanced
    30m

    Best for

    • Recursos de aplicativos para Mac em que o Codex precisa de um registro confiável da abertura de janelas, das seleções na barra lateral, dos comandos de menu acionados, das ações na barra de menus, das etapas importantes da sincronização ou dos caminhos alternativos percorridos
    • Ciclos de depuração com agentes de IA em que o Codex deve corrigir o código, executar o aplicativo novamente e examinar os logs para decidir a próxima correção com base no que observou
    • Coletas repetidas de logs de sessões locais do aplicativo para comparar, entre execuções, uma sequência curta de ações do usuário e eventos do ciclo de vida do aplicativo

    Skills & Plugins

    • Use as habilidades de telemetria do macOS e de compilação e execução para instrumentar o código com logs estruturados do `OSLog`, iniciar o aplicativo, percorrer o fluxo na interface e verificar os eventos emitidos no Console ou com `log stream`.
    Skill Why use it
    Build macOS Apps Use as habilidades de telemetria do macOS e de compilação e execução para instrumentar o código com logs estruturados do `OSLog`, iniciar o aplicativo, percorrer o fluxo na interface e verificar os eventos emitidos no Console ou com `log stream`.

    Starter prompt

    Use o plugin Build macOS Apps para adicionar logs unificados de baixo impacto a [name one Mac feature or action flow]. Depois, execute o aplicativo e confirme nos logs que os eventos ocorrem na ordem esperada. Restrições: - Prefira `Logger` do `OSLog` a `print`. Defina um subsistema e uma categoria com nomes claros para facilitar a filtragem dos logs desse recurso. - Registre uma linha curta sempre que uma ação importante começar ou terminar, ou quando houver uma mudança de estado. Por exemplo, registre quando uma janela se abrir, a seleção na barra lateral mudar, um comando de menu for acionado, a sincronização começar ou terminar, ou o aplicativo seguir um caminho alternativo. - Mantenha os logs permanentes de nível `info` estáveis e restritos a eventos relevantes. Use `debug` apenas para detalhes locais que geram muito ruído. Antes de concluir, remova a instrumentação temporária ou reduza o nível dos logs correspondentes. - Não registre segredos, tokens de autenticação, dados pessoais nem o conteúdo bruto de documentos. Se precisar registrar um identificador, escolha a anotação de privacidade mais segura e explique o motivo. - Compile e execute o aplicativo, percorra o fluxo do recurso por conta própria e verifique os eventos no Console ou com um predicado de `log stream` específico para esse fluxo. - Se o fluxo for longo, intermitente ou mais fácil de reproduzir manualmente, salve os logs filtrados da sessão em um pequeno arquivo de rastreamento local. Se necessário, deixe que eu percorra o fluxo manualmente no aplicativo. Depois, leia o arquivo e resuma os eventos em ordem cronológica. - Se um evento esperado não aparecer, mova a chamada de log para mais perto do trecho de código por onde você suspeita que a execução passe. Execute o fluxo novamente e continue até que os logs expliquem o que aconteceu. Entregue: - a nova configuração do logger e a lista exata dos eventos adicionados - o filtro do Console ou o predicado de `log stream` utilizado - um breve resumo do que era possível observar nos logs antes da mudança e do que é possível observar agora - o arquivo de rastreamento salvo e um resumo cronológico dos eventos, caso a captura tenha se prolongado - uma ou duas linhas de log representativas que comprovem que o fluxo foi instrumentado corretamente
    Use o plugin Build macOS Apps para adicionar logs unificados de baixo impacto a [name one Mac feature or action flow]. Depois, execute o aplicativo e confirme nos logs que os eventos ocorrem na ordem esperada. Restrições: - Prefira `Logger` do `OSLog` a `print`. Defina um subsistema e uma categoria com nomes claros para facilitar a filtragem dos logs desse recurso. - Registre uma linha curta sempre que uma ação importante começar ou terminar, ou quando houver uma mudança de estado. Por exemplo, registre quando uma janela se abrir, a seleção na barra lateral mudar, um comando de menu for acionado, a sincronização começar ou terminar, ou o aplicativo seguir um caminho alternativo. - Mantenha os logs permanentes de nível `info` estáveis e restritos a eventos relevantes. Use `debug` apenas para detalhes locais que geram muito ruído. Antes de concluir, remova a instrumentação temporária ou reduza o nível dos logs correspondentes. - Não registre segredos, tokens de autenticação, dados pessoais nem o conteúdo bruto de documentos. Se precisar registrar um identificador, escolha a anotação de privacidade mais segura e explique o motivo. - Compile e execute o aplicativo, percorra o fluxo do recurso por conta própria e verifique os eventos no Console ou com um predicado de `log stream` específico para esse fluxo. - Se o fluxo for longo, intermitente ou mais fácil de reproduzir manualmente, salve os logs filtrados da sessão em um pequeno arquivo de rastreamento local. Se necessário, deixe que eu percorra o fluxo manualmente no aplicativo. Depois, leia o arquivo e resuma os eventos em ordem cronológica. - Se um evento esperado não aparecer, mova a chamada de log para mais perto do trecho de código por onde você suspeita que a execução passe. Execute o fluxo novamente e continue até que os logs expliquem o que aconteceu. Entregue: - a nova configuração do logger e a lista exata dos eventos adicionados - o filtro do Console ou o predicado de `log stream` utilizado - um breve resumo do que era possível observar nos logs antes da mudança e do que é possível observar agora - o arquivo de rastreamento salvo e um resumo cronológico dos eventos, caso a captura tenha se prolongado - uma ou duas linhas de log representativas que comprovem que o fluxo foi instrumentado corretamente

    Adicione um Logger onde for difícil identificar o que aconteceu

    Este caso de uso se aplica a fluxos de aplicativos para Mac em que saber que “algo aconteceu” é vago demais para diagnosticar o problema só pela revisão do código. Peça ao Codex que registre alguns eventos relevantes nos logs unificados para acompanhar um comportamento específico, execute o aplicativo, reproduza esse comportamento e confirme no Console ou com log stream que os eventos esperados ocorreram.

    Use o plugin Build macOS Apps nesse ciclo. A habilidade de telemetria do macOS foi pensada para manter a instrumentação simples. Use o Logger da Apple, escolha nomes claros para o subsistema e a categoria, registre o início e o fim das ações e as transições de estado e evite incluir dados sensíveis. Depois de compilar e executar o aplicativo localmente, confirme que o evento foi registrado antes de concluir que a instrumentação funciona.

    Por que a telemetria é útil na engenharia de software com agentes de IA

    Com bons logs, o Codex pode repetir o mesmo ciclo de verificação após cada correção. Em vez de pedir que você inspecione manualmente cada janela, ação de menu ou transição de sincronização, o agente pode executar o aplicativo, percorrer o fluxo, examinar os logs filtrados e usar o que observou para decidir qual será a próxima alteração no código.

    Isso é especialmente útil em três ciclos com agentes de IA:

    • Depuração sem intervenção manual: o Codex instrumenta um fluxo em que pode haver uma falha, inicia o aplicativo, clica na barra lateral ou aciona um comando, lê a sequência de logs, corrige o trecho do código que atualiza o estado e repete o fluxo até que os logs correspondam ao comportamento da interface.
    • Coleta de eventos de uma sessão do aplicativo: o Codex adiciona um evento para cada tipo de ocorrência: inicialização do aplicativo, abertura de janela, seleção na barra lateral, início da importação, conclusão da importação e falha na importação. Em seguida, executa uma sessão local e resume os eventos em ordem cronológica para que fique fácil identificar transições ausentes ou fora de ordem.
    • Captura conduzida por você: o Codex inicia o aplicativo com os logs ativados e mantém um fluxo de logs filtrado enquanto você percorre manualmente um fluxo difícil de depurar. Depois, examina os registros da sessão e propõe a próxima correção com base neles.

    Mantenha a instrumentação enxuta e os logs fáceis de filtrar

    Peça ao Codex que use um logger por área funcional e evite adicionar uma linha de log permanente para cada alteração de estado. Categorias como Windowing, Commands, MenuBar, Sidebar, Sync ou Import facilitam a filtragem dos logs na próxima rodada de depuração.

    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
    }

    Use info para registrar de forma concisa ações e eventos do ciclo de vida que continuarão úteis com o tempo. Use debug para detalhes do estado local que geram mais ruído e cujos registros podem ser removidos ou passar para um nível de log menos visível antes do fim da tarefa. Adicione marcadores de intervalo (signposts) somente quando precisar medir a duração de uma operação.

    Peça ao Codex que confirme o evento nos logs

    Adicionar chamadas a Logger é só o primeiro passo. Peça ao Codex que execute o aplicativo, acione o fluxo instrumentado e forneça o filtro exato do Console ou o predicado de log stream que usou, junto com uma ou duas linhas de log representativas.

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

    Se um evento esperado não aparecer, peça ao Codex que mova a chamada de log para mais perto do trecho do código onde pode estar o problema, execute o mesmo fluxo novamente e repita o processo até que os logs expliquem o que aconteceu. Se a investigação passar a exigir a análise de um encerramento inesperado ou de um rastreamento de pilha, use o fluxo de depuração do plugin para compilar e executar o aplicativo e mantenha a telemetria concentrada no início e no fim das ações.

    Salve o rastreamento da sessão para uma execução posterior do Codex

    Para bugs que levam mais tempo para investigar ou ocorrem de forma intermitente, peça ao Codex que salve um fluxo de logs filtrado em um pequeno arquivo de rastreamento local, resuma os eventos em ordem cronológica e deixe o arquivo no espaço de trabalho. Assim, em uma execução posterior, o Codex poderá examinar as mesmas evidências sem precisar reconstruir a sessão inteira de memória. Isso facilita a depuração em etapas quando você quer que o agente colete o rastreamento em uma execução e, em outra, compare o comportamento antes e depois de uma correção.

    Essa abordagem também funciona bem quando você precisa conduzir parte da sessão. Peça ao Codex que inicie o aplicativo em um ciclo de depuração que facilite a coleta de logs, comece a captura com o filtro aplicado, aguarde enquanto você reproduz o problema manualmente e leia o arquivo de rastreamento salvo quando você terminar.

    Dicas práticas

    Instrumente uma funcionalidade por vez

    Comece com uma única barra lateral, janela, comando ou rotina de sincronização para que a sequência de logs seja fácil de examinar. Se esse fluxo passar a funcionar de forma confiável, o Codex poderá aplicar o mesmo padrão a fluxos relacionados.

    Inclua a privacidade no prompt

    Peça ao Codex que explique cada identificador registrado e evite gravar segredos, dados pessoais ou conteúdo bruto nos logs unificados. Para depurar localmente, em geral bastam poucos tipos de evento.

    Inclua exemplos de saída no resumo final

    Linhas de log representativas dão mais confiança na alteração do que a simples afirmação de que “a telemetria foi adicionada”. Peça ao Codex que inclua o predicado usado no filtro e uma breve sequência cronológica das ações para que o agente possa repetir a mesma verificação na próxima execução.

    Tech stack

    Need

    Logs do aplicativo

    Default options

    Logger do OSLog

    Why it's needed

    Com logs unificados e estruturados, o Codex pode filtrar os eventos e acompanhar apenas o fluxo em teste, sem espalhar chamadas a print pelo código.

    Need

    Fluxo de trabalho do agente

    Why it's needed

    As habilidades de telemetria e de compilação e execução do plugin se complementam. Com elas, você pode instrumentar um fluxo, iniciar o aplicativo, examinar os logs e ajustar quais eventos são registrados.

    Need

    Verificação em tempo de execução

    Default options

    Console.app e log stream --predicate ...

    Why it's needed

    Com um filtro de logs específico e uma amostra da saída, o agente pode compartilhar um procedimento fácil de repetir para verificar a nova instrumentação a cada execução.

    Need Default options Why it's needed
    Logs do aplicativo Logger do OSLog Com logs unificados e estruturados, o Codex pode filtrar os eventos e acompanhar apenas o fluxo em teste, sem espalhar chamadas a print pelo código.
    Fluxo de trabalho do agente Plugin Build macOS Apps As habilidades de telemetria e de compilação e execução do plugin se complementam. Com elas, você pode instrumentar um fluxo, iniciar o aplicativo, examinar os logs e ajustar quais eventos são registrados.
    Verificação em tempo de execução Console.app e log stream --predicate ... Com um filtro de logs específico e uma amostra da saída, o agente pode compartilhar um procedimento fácil de repetir para verificar a nova instrumentação a cada execução.

    Related use cases