For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Codex

Codex use case

Mac テレメトリの追加

Codex を使って Mac の 1 つの機能に Logger による計測を追加し、アプリを実行して、そのアクションを統合ログで確認します。

Difficulty 上級
Time horizon 30分

Codex と Build macOS Apps プラグインを使い、ウィンドウ、サイドバー、コマンド、同期フローの要所に、重要な情報に絞った少数の Logger イベントを追加します。その後、アプリを実行し、意図したアクションが実行されたことをコンソールまたは log stream で確認します。

最適な用途

  • ウィンドウを開く操作、サイドバーの選択、メニューコマンド、メニューバーの操作、同期の節目、フォールバック経路を Codex が確実に追跡する必要がある Mac アプリの機能
  • Codex がコードにパッチを適用し、アプリを再実行してログを調べ、推測ではなく証拠に基づいて次の修正を決定するエージェント型デバッグループ
  • ユーザー操作とアプリのライフサイクルイベントを簡潔なシーケンスとして収集し、繰り返し実行した結果を比較するローカルのアプリセッション収集ループ

Contents

    ← すべてのユースケース

    Mac テレメトリの追加

    Codex を使って Mac の 1 つの機能に Logger による計測を追加し、アプリを実行して、そのアクションを統合ログで確認します。

    Codex と Build macOS Apps プラグインを使い、ウィンドウ、サイドバー、コマンド、同期フローの要所に、重要な情報に絞った少数の Logger イベントを追加します。その後、アプリを実行し、意図したアクションが実行されたことをコンソールまたは log stream で確認します。

    上級
    30分

    Codex と Build macOS Apps プラグインを使い、ウィンドウ、サイドバー、コマンド、同期フローの要所に、重要な情報に絞った少数の Logger イベントを追加します。その後、アプリを実行し、意図したアクションが実行されたことをコンソールまたは log stream で確認します。

    上級
    30分

    最適な用途

    • ウィンドウを開く操作、サイドバーの選択、メニューコマンド、メニューバーの操作、同期の節目、フォールバック経路を Codex が確実に追跡する必要がある Mac アプリの機能
    • Codex がコードにパッチを適用し、アプリを再実行してログを調べ、推測ではなく証拠に基づいて次の修正を決定するエージェント型デバッグループ
    • ユーザー操作とアプリのライフサイクルイベントを簡潔なシーケンスとして収集し、繰り返し実行した結果を比較するローカルのアプリセッション収集ループ

    スキルとプラグイン

    • macOS テレメトリスキルとビルド/実行スキルを使って構造化された `OSLog` 計測を追加し、アプリを起動して UI の操作経路を実行し、出力されたイベントをコンソールまたは `log stream` で確認します。
    Skill Why use it
    Build macOS Apps macOS テレメトリスキルとビルド/実行スキルを使って構造化された `OSLog` 計測を追加し、アプリを起動して UI の操作経路を実行し、出力されたイベントをコンソールまたは `log stream` で確認します。

    開始用プロンプト

    Build macOS Apps プラグインを使って、[name one Mac feature or action flow] の周辺に軽量な統合ログを追加し、アプリを実行して、それらのイベントが想定どおりの順序で発生することをログで確認してください。 制約: - `Logger` は `OSLog` から提供されるものを使い、`print` は使わないでください。また、ログを簡単に絞り込めるよう、この機能には明確な subsystem/category の組み合わせを作成してください。 - 重要なアクションの区切りまたは状態遷移ごとに、簡潔なログを 1 行記録してください。たとえば、ウィンドウが開いた、サイドバーの選択が変わった、メニューコマンドが実行された、同期が開始または完了した、フォールバック経路が使われた、といったイベントです。 - 常設の `info` ログは、安定的で重要な情報に絞ったものにしてください。ノイズの多いローカルの詳細に限って `debug` を使い、一時的な計測は完了前に削除するか、ログレベルを下げてください。 - シークレット、認証トークン、個人データ、未加工のドキュメント内容はログに記録しないでください。識別子の記録が必要な場合は、最も安全なプライバシーアノテーションを選び、その理由を説明してください。 - アプリをビルドして実行し、機能の操作経路を実際に試して、コンソールまたは対象を絞った `log stream` の述語でイベントを確認してください。 - フローが長い、断続的である、または手動の方が再現しやすい場合は、絞り込んだログストリームを小さなローカルセッショントレースファイルに保存してください。必要であれば私がアプリを手動で操作してから、そのファイルを読み戻してイベントのタイムラインを要約してください。 - 想定したイベントが表示されない場合は、疑わしい制御経路により近い位置へログ出力を移し、フローを再実行して、ログから何が起きたかを説明できるまで続けてください。 成果物: - 新しいロガーの設定と、追加したイベントの正確な一覧 - 使用したコンソールのフィルターまたは `log stream` の述語 - ログで観測できるようになった内容を示す簡潔な before/after 要約 - 長時間のキャプチャセッションになった場合は、保存したトレースファイルとタイムラインの要約 - フローに正しく計測が追加されたことを示す代表的なログ 1~2 行
    Build macOS Apps プラグインを使って、[name one Mac feature or action flow] の周辺に軽量な統合ログを追加し、アプリを実行して、それらのイベントが想定どおりの順序で発生することをログで確認してください。 制約: - `Logger` は `OSLog` から提供されるものを使い、`print` は使わないでください。また、ログを簡単に絞り込めるよう、この機能には明確な subsystem/category の組み合わせを作成してください。 - 重要なアクションの区切りまたは状態遷移ごとに、簡潔なログを 1 行記録してください。たとえば、ウィンドウが開いた、サイドバーの選択が変わった、メニューコマンドが実行された、同期が開始または完了した、フォールバック経路が使われた、といったイベントです。 - 常設の `info` ログは、安定的で重要な情報に絞ったものにしてください。ノイズの多いローカルの詳細に限って `debug` を使い、一時的な計測は完了前に削除するか、ログレベルを下げてください。 - シークレット、認証トークン、個人データ、未加工のドキュメント内容はログに記録しないでください。識別子の記録が必要な場合は、最も安全なプライバシーアノテーションを選び、その理由を説明してください。 - アプリをビルドして実行し、機能の操作経路を実際に試して、コンソールまたは対象を絞った `log stream` の述語でイベントを確認してください。 - フローが長い、断続的である、または手動の方が再現しやすい場合は、絞り込んだログストリームを小さなローカルセッショントレースファイルに保存してください。必要であれば私がアプリを手動で操作してから、そのファイルを読み戻してイベントのタイムラインを要約してください。 - 想定したイベントが表示されない場合は、疑わしい制御経路により近い位置へログ出力を移し、フローを再実行して、ログから何が起きたかを説明できるまで続けてください。 成果物: - 新しいロガーの設定と、追加したイベントの正確な一覧 - 使用したコンソールのフィルターまたは `log stream` の述語 - ログで観測できるようになった内容を示す簡潔な before/after 要約 - 長時間のキャプチャセッションになった場合は、保存したトレースファイルとタイムラインの要約 - フローに正しく計測が追加されたことを示す代表的なログ 1~2 行

    デバッグの手がかりが曖昧な箇所に Logger を 1 つ追加

    このユースケースは、Mac アプリのフローで「何かが起きた」というだけでは情報が曖昧すぎて、コードレビューだけではデバッグできない場合を対象としています。Codex に、1 つの動作の要所へ重要な情報に絞った少数の統合ログを追加し、アプリを実行してその動作を発生させ、想定したイベントが発生したことをコンソールまたは log stream で確認するよう依頼します。

    このループには、Build macOS Apps プラグイン を使います。その macOS テレメトリスキルは、意図的に軽量に設計されています。Apple の Logger を使い、明確なサブシステムとカテゴリの組み合わせを選び、アクションの区切りと状態遷移をログに記録し、機密性の高いデータは避けます。また、計測が正しく組み込まれていると思い込まず、ローカルでビルド/実行した後にイベントを検証します。

    エージェント型エンジニアリングでテレメトリが役立つ理由

    適切なログがあれば、Codex はパッチを適用するたびに再現可能なフィードバックループを回せます。すべてのウィンドウ、メニュー操作、同期遷移を手動で確認するよう求める代わりに、エージェントがアプリを実行してフローを操作し、絞り込んだログを調べ、証拠に基づいて次のコード変更を決定できます。

    これは特に、次の 3 つのエージェント型ループで役立ちます:

    • ハンズフリーのデバッグループ: Codex が問題の疑われるフローに計測を追加し、アプリを起動してサイドバーをクリックするかコマンドを実行し、出力されたログシーケンスを読み取ります。その後、状態更新の処理経路にパッチを適用し、ログと UI の動作が一致するまで同じフローを再実行します。
    • アプリセッション収集ループ: Codex がアプリ起動、ウィンドウを開く操作、サイドバーの選択、インポート開始、インポート完了、インポート失敗のそれぞれにイベントを 1 件ずつ追加します。その後、ローカルセッションを実行して結果のタイムラインを要約するため、欠落した遷移や順序の誤った遷移が明確になります。
    • 人が操作するキャプチャループ: Codex がログを有効にしてアプリを起動し、対象を絞ったログストリームを実行したまま、ユーザーが難しいフローを手動で操作できるようにします。その後、キャプチャしたセッションを調べ、そのトレースに基づいて次のパッチを提案します。

    小規模で絞り込みやすい計測

    状態変更ごとに恒久的なログを 1 行ずつ残すのではなく、機能領域ごとにロガーを 1 つ設けるよう Codex に依頼します。機能カテゴリを WindowingCommandsMenuBarSidebarSyncImport などにすると、次回のデバッグでログを簡単に絞り込めます。

    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
    }

    継続的に役立つ簡潔なアクションイベントとライフサイクルイベントには info を使い、タスク完了前に削除したりレベルを下げたりする可能性のある、ノイズの多いローカル状態の詳細には debug を使います。サインポストは時間区間を計測するときだけ追加し、デフォルトでは追加しないでください。

    ログによるイベントの実証を Codex に依頼

    価値があるのは、Logger の呼び出しを追加することだけではありません。Codex にアプリを実行して計測対象のフローを発生させ、使用した正確なコンソールフィルターまたは log stream の述語と、代表的なログ 1~2 行を提示するよう依頼します。

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

    想定したイベントが表示されない場合は、疑わしい制御経路により近い位置へログ出力を移し、同じフローを再実行して、何が起きたかをログで説明できるまで反復するよう Codex に依頼します。タスクがクラッシュやバックトレースの分析に発展した場合は、プラグインのビルド/実行デバッグワークフローに切り替え、テレメトリの対象はアクションの区切りに絞ってください。

    後続の Codex 実行に備えたセッショントレースの保存

    時間がかかるバグや断続的なバグでは、対象を絞ったログストリームを小さなローカルトレースファイルに保存し、タイムラインを要約して、その成果物をワークスペースに残すよう Codex に依頼します。そうすれば、後続の Codex 実行では、記憶を頼りにセッション全体を再現することなく、同じ証拠を調べられます。あるエージェント実行でトレースを収集し、別の実行でパッチ適用前後の動作を比較したい場合に、複数回にわたるデバッグが容易になります。

    これは、セッションの一部を人が操作する必要がある場合にも有効です。Codex に、ログを取得しやすいデバッグループでアプリを起動し、絞り込んだキャプチャを開始して、ユーザーが問題を手動で再現する間は待機し、操作が終わったら保存済みのトレースファイルを読み取るよう依頼します。

    実践的なヒント

    一度に 1 つの機能への計測

    ログシーケンスを確認しやすく保つため、まずサイドバー、ウィンドウ、コマンド、同期経路のいずれか 1 つから始めます。その経路の信頼性が確保できたら、Codex は同じパターンを隣接するフローに展開できます。

    プロンプトにプライバシー要件を明記

    ログに記録するすべての識別子について説明し、シークレット、個人データ、未加工のコンテンツを統合ログに書き込まないよう Codex に依頼します。ローカルデバッグには通常、ごく少数のイベント種別だけで十分です。

    最終要約に出力例を記載

    「テレメトリを追加しました」という説明より、代表的なログ行がある方が変更をはるかに信頼しやすくなります。Codex にフィルター述語と簡潔なアクションタイムラインを含めるよう依頼すると、次回のエージェント実行で同じ検証ループを再利用できます。

    Tech stack

    Need

    アプリのログ記録

    Default options

    OSLog Logger

    Why it's needed

    構造化された統合ログにより、コードベースを print 文だらけにすることなく、Codex が対象を絞り込めるフィードバックループを利用できます。

    Need

    エージェントワークフロー

    Why it's needed

    このプラグインのテレメトリスキルとビルド/実行スキルは、連携するように設計されています。1 つのフローに計測を追加し、アプリを起動してログを調べ、イベントの組み合わせを絞り込めます。

    Need

    実行時検証

    Default options

    Console.app と log stream --predicate ...

    Why it's needed

    具体的なログフィルターと出力例があれば、エージェントが再現可能な形で作業を引き継げるようになり、実行を重ねても新しい計測を簡単に検証できます。

    Need Default options Why it's needed
    アプリのログ記録 OSLog Logger 構造化された統合ログにより、コードベースを print 文だらけにすることなく、Codex が対象を絞り込めるフィードバックループを利用できます。
    エージェントワークフロー Build macOS Apps プラグイン このプラグインのテレメトリスキルとビルド/実行スキルは、連携するように設計されています。1 つのフローに計測を追加し、アプリを起動してログを調べ、イベントの組み合わせを絞り込めます。
    実行時検証 Console.app と log stream --predicate ... 具体的なログフィルターと出力例があれば、エージェントが再現可能な形で作業を引き継げるようになり、実行を重ねても新しい計測を簡単に検証できます。

    関連するユースケース