アノテーション

アノテーションはAI出力のための赤ペンです。プレビューでレンダリングされたテキストを選択し、取り消し線、ロック、コメント、メモ、ブロック指示でマークアップして、任意のAIアシスタント用の構造化プロンプトとしてコピーできます。

アノテーションはビューアモードでのみ機能します。自分で変更するには編集モードに切り替えるか、アノテーションを使ってAIツールに変更内容を伝えましょう。

アノテーションの種類

5種類のアノテーションがあります:

  • 取り消し線 — テキストを選択し、フローティングツールバーの取り消し線をクリックするか、Sを押します。テキストに赤い取り消し線を付けて削除対象としてマークします。テキストを完全に削除すべき場合に使用します。
  • ロック — テキストを選択し、フローティングツールバーのロックをクリックするか、Lを押します。テキストを緑色でハイライトして変更から保護します。テキストをそのまま残すべき場合に使用します。
  • コメント — テキストを選択し、フローティングツールバーのコメントをクリックするか、Cを押して、提案を入力します。テキストを黄色でハイライトし、編集指示を添付します。テキストを書き直すか変更すべき場合に使用します。
  • メモ⌘⇧Nでドキュメントレベルのメモを追加します。メモは特定のテキストに紐づきません。「結論セクションを追加する」や「もっとフォーマルなトーンに変える」などの一般的な指示に使用します。
  • ブロックメモ⌘⇧Bを押してブロックメモモードに入ります。ブロックレベル要素(段落、見出し、リスト、コードブロック)が選択可能になります。ブロックをクリックして、周囲のテキストに関する指示を入力します。AIツールにブロックレベルの指示を与える場合に使用します。

プレビューでテキストを選択すると、取り消し線、ロック、コメント、削除のボタンを持つフローティングツールバーが表示されます。ツールバーが表示されている間はキーボードショートカットも使用できます:Sで取り消し線、Lでロック、Cでコメント、Xでアノテーションの削除。

アノテーションツールバー

⌘⇧Aまたはツールバーボタンでアノテーションツールバーを切り替えます。ツールバーはウインドウのタイトルバーの下にスライド表示されるインラインストリップで、ドキュメントメモ、ブロックメモ、コピー/エクスポート、すべて削除、閉じるのボタンとアノテーション数が表示されます。ツールバーボタンにはアノテーションの合計数がバッジとして表示されます。

ドキュメントメモには専用のパネルがあります — アノテーションツールバーのメモアイコンをクリックして切り替えます。ツールバーの下に付箋メモとして表示され、特定のテキストに紐づかない指示を入力できます。

アノテーションのコピー

⌘⌥⇧Cを押してアノテーションをコピーします。Peekdownはすべてのアノテーションを含むAIアシスタント用の構造化プロンプトをクリップボードにコピーします。フォーマットはJSON配列を使用し、各アノテーションにtypeフィールド(deletelockcommentnoteblocknote)とbeforeafterコンテキストフィールドを含み、AIアシスタントが正確なテキストを特定して解析できるようにしています。

プロンプトをお使いのAIアシスタント(Claude Code、Cursor、ChatGPT、Claude.aiなど)に貼り付けてください。ターミナルでは、pbpaste | claude(またはお使いのツールの同等コマンド)でクリップボードを直接会話に渡せます。

コピー後、PeekdownはAIの応答をクリーンな状態のドキュメントに適用できるよう、アノテーションをドキュメントから消去します。気が変わった場合 — たとえばAIの編集結果が望んだものでない場合 — ⌘⌥⇧Zを押すか、編集 > アノテーションを復元を選択するか、アノテーションツールバーの復元ボタンをクリックすると、アノテーションを呼び戻せます。スナップショットは再起動後も保持され、ファイルを閉じても残るため、数日後でも復元できます。コピーするたびに新しいスナップショットが作成され、前のものを置き換えます。

ドキュメントが変更されると、復元は自動的に破棄されます。 AIアシスタントが編集を適用してファイルを保存した場合(またはあなた自身が編集した場合)、スナップショットはドキュメントと一致しなくなり、Peekdownはそれを破棄します — 復元ボタンは消え、メニュー項目は無効になります。これは意図的な動作です。変更されたテキストにアノテーションを復元すると、間違った場所に配置されてしまうためです。ドキュメントに何が起こっても永続的なバックアップが必要な場合は、先にエクスポートしてください:編集 > アノテーションをエクスポート⌘⌥⇧E)でドキュメントの隣に.jsonファイルが作成され、ドキュメントが編集された後でもいつでも再インポートできます。

永続化

アノテーションはアプリのストレージ(~/Library/Application Support/Peekdown/annotations/)に自動保存されます。ファイルを再度開くと、アノテーションは自動的に復元されます。エクスポートされていないアノテーションがあるファイルから別のファイルに切り替えると、Peekdownはアノテーションが保存されており、戻った時に復元されることを通知します。

ファイルのインポートとエクスポート

編集メニューを使用して、アノテーションを標準的なJSONファイルにエクスポートしたり、JSONファイルからインポートしたりできます。

アノテーションをエクスポート(編集 > アノテーションをエクスポート)は、ドキュメントの横に.jsonファイルを保存します。命名規則はファイル名.jsonです — 例えば、notes.mdのアノテーションはnotes.jsonとして保存されます。ファイルは標準的なJSONファイルで、Finderに表示され、共同作業者と共有したりドキュメントと一緒にバックアップしたりできます。

アノテーションをインポート(編集 > アノテーションをインポート)は、.jsonアノテーションファイル用のファイルピッカーを開きます。.jsonアノテーションファイルをPeekdownウインドウに直接ドラッグ&ドロップしてインポートすることもできます。アノテーションをインポートすると、Peekdownの内部ストレージに保存されます。その時点から、アノテーションはPeekdownに自動的に保持されます。JSONファイルを保管しておく必要はありません。ドキュメントを閉じて後で再度開いても、インポートしたアノテーションはそのまま残っています。

ファイルフォーマット

アノテーションファイルは以下のスキーマのJSONを使用します:

{
  "annotations": [
    {
      "id": 1,
      "type": "strike",
      "text": "text to delete",
      "contextBefore": "preceding context",
      "contextAfter": "following context"
    },
    {
      "id": 2,
      "type": "lock",
      "text": "text to preserve",
      "contextBefore": "...",
      "contextAfter": "..."
    },
    {
      "id": 3,
      "type": "comment",
      "text": "text to change",
      "comment": "editing instruction",
      "contextBefore": "...",
      "contextAfter": "..."
    },
    {
      "id": 4,
      "type": "note",
      "text": "document-level instruction"
    },
    {
      "id": 5,
      "type": "blocknote",
      "text": "instruction for this block",
      "blockText": "the block this note applies to",
      "contextBefore": "...",
      "contextAfter": "..."
    }
  ],
  "nextId": 6,
  "hasUnexported": false,
  "exportedContentHash": "sha256-hex-string"
}

typeフィールドはstrikelockcommentnoteblocknoteのいずれかである必要があります。contextBeforecontextAfterフィールドは前後のテキストにアノテーションを固定し、軽微な編集にも対応できるようにします。exportedContentHashは、エクスポート後にAIツールによってドキュメントが更新されたことをPeekdownが検出するために使用されます。