Communitygithub.com

コンピュータ使用サマリー(liuyewang/computer-usage-summary-skill)

プライバシー重視のActivityWatchサマリーをCodex向けに提供するクロスプラットフォームスキルです。

computer-usage-summary-skill) とは?

このスキルは、CodexなどのAIエージェントがユーザーのコンピュータ使用状況をプライバシーを優先してサマリーできるようにします。macOS、Windows、LinuxでローカルのActivityWatch APIとPython 3.9以降が必要です。フォアグラウンドアプリ、サニタイズされたウィンドウタイトル、AFK状態のみを記録することでプライバシーバランスを保ち、ブラウザ拡張機能やクラウドストレージは使用しません。セットアップと検証の手順を提供し、ActivityWatchが利用できない場合のフォールバック(「利用不可」としてマーク)もサポートします。Markdown、TSV、CSV形式でのレポート出力(アプリ別、タイムライン、週次レビューなど)を可能にし、強力なプライバシールール(ウィンドウタイトルからURL除去、機密データのエクスポート禁止など)を実装しています。

対応~Claude Code✓Codex CLI~Cursor
npx skills add liuyewang/computer-usage-summary-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

コンピュータ使用サマリー

概要

まずはローカルのActivityWatchデータを使用します。このスキルは、ローカルのActivityWatch APIとPython 3.9以降が利用可能なmacOS、Windows、Linuxに対応しています。プライバシーバランスを考慮した設計では、フォアグラウンドアプリ、サニタイズされたウィンドウタイトル、AFK状態のみを記録します。ブラウザ拡張機能のインストール、aw-syncの有効化、クラウドストレージの設定、またはローカルAPIの公開は行わないでください。

正確な履歴アプリ時間とAFK時間は、ActivityWatchが記録を開始した時点からのみ存在します。プロセスの稼働時間、macOSシステムログ、ブラウザ履歴、または文書化されていないデータベースからこれらを推測しないでください。

セットアップと検証

このセクションは、ActivityWatchが存在しない、停止している、または修復が必要な場合にのみ使用します。

  1. ローカルのActivityWatchアプリケーション、その起動設定、ローカルプロセス、および現在のユーザーのActivityWatchデータディレクトリを検査します。動作中のインストール環境を置き換えないでください。
  2. ユーザーに公式のインストールソースを選択させます。起動または自動起動を有効にする前に、発行元とオペレーティングシステムのセキュリティステータスを確認します。macOSでは、codesign --verify --deep --strict および spctl --assess --type execute を使用します。ユーザーが明示的に別の判断をしない限り、検証に失敗した場合は停止します。
  3. ウィンドウウォッチャーとAFKウォッチャーのみを有効にします。macOSには通常のインターフェースを通じてアクセシビリティ許可を要求させ、プログラムでプライバシー許可をバイパスまたは変更しないでください。
  4. Windowsでは、python -m pip install tzdata を一度実行して、Pythonが Asia/Singapore などのIANAタイムゾーンを一貫して解決できるようにします。
  5. ローカルの http://127.0.0.1:5600 サーバーに currentwindow バケットと afkstatus バケットがあり、イベントが含まれていることを確認します。デフォルトのAFKしきい値は180秒です。

ActivityWatchなしのフォールバック

アプリ、ローカルAPI、バケット、または要求された範囲のイベントが利用できない場合:

  • アクティブ時間、AFK時間、セッション、起動回数をゼロではなく unavailable とマークします。
  • 現在の最前面アプリまたは実行中のアプリのスナップショットは、現在の証拠にすぎず、要求された範囲のものではありません。
  • スクリーンタイムは、ユーザーが可視の合計値を利用可能にした場合にのみ使用し、「Screen Time reported」とラベル付けし、プライベートデータベースを読み取らないでください。
  • ブラウザ履歴は、明示的なウェブサイトレベルの要求がある場合にのみ検査します。最近のドキュメントやターミナル履歴は、明示的でソース固有の許可を得た後でのみ検査します。そのような結果はすべて、時間ではなくメタデータの手がかりとして扱います。

ワークフロー

  1. ローカルの日付範囲とタイムゾーンを確立します。
  2. scripts/activitywatch_summary.py --date today を実行するか、アンカー日付を中心に --period week または --period month を使用するか、包括的な --start YYYY-MM-DD --end YYYY-MM-DD 日付を使用します。再現可能なローカルタイムスタンプのために --timezone Area/City を追加します。--api-url はループバックインターフェースに保持します。
  3. active_seconds と afk_seconds は、ActivityWatchがそれらを確認した場合にのみ使用します。foreground_sessions は、プロセスの起動ではなく、観測されたフォアグラウンド間隔として説明します。
  4. サニタイズされたアプリ名とウィンドウタイトルを使用してタイムラインを再構築します。タイトルは、説明されたアクティビティを直接サポートする場合にのみ confirmed となります。
  5. ユーザーがプロジェクト/クライアントまたは請求可能なレポートを必要とする場合は、オプションのローカルJSON --rules ファイルを提供します。サニタイズされたタイトルのみを照合します。最初に一致したルールが優先され、同意なしにルールを作成またはアップロードしないことを説明します。
  6. スプレッドシート出力の場合は、コマンドごとに1つのテーブルを実行します。
    • --format markdown --table apps チャット用。
    • --format tsv --table apps スプレッドシートソフトウェアに直接コピーする場合。
    • --format tsv --table timeline 時系列行の場合。
    • --format csv --table apps --csv-bom --output report.csv Excel互換ファイルの場合(ユーザーが保存を明示的に要求した場合のみ)。
    • --report client-timesheet プロジェクト/クライアントの請求可能行の場合。
    • --report weekly-review コンパクトなレビューテーブルの場合。
    • --report app-trend ローカルの日次トレンド行の場合。
  7. ActivityWatchが利用できない場合は、構造化された理由を返します。Markdown、TSV、CSV出力は status、reason、source 列を提供します。

プライバシールール

  • ウィンドウタイトルは機密情報として扱います。URLを削除し、長いタイトルは切り詰め、完全なブラウザURLは絶対に含めないでください。
  • 有用なタイムラインのためにデフォルトのサニタイズされたタイトルを保持します。ユーザーがタイトルなしのエクスポートを希望する場合は --hide-titles を使用します。
  • 最小限の有用なタイトルコンテキストを使用します。アプリケーションとサマリーテーブルにはタイトルは不要です。
  • 数式として解釈される可能性のあるスプレッドシートセルをエスケープします。
  • レポートは現在の会話にローカルに保持します。明示的なユーザー承認なしにアクティビティデータをエクスポート、アップロード、または共有しないでください。

関連スキル