mcpField
P
paste

paste

github.com/coreyhaines31生産性875336 回インストール6 日前に更新
リポジトリ

paste について

pasteは、テキストを整え、用途に応じて形式を変えるスキルです。ターミナル出力や共有用の文章に使え、秘密情報の検出とクリップボード操作にも対応します。

主な機能

  1. 01ANSIコードとプロンプト表記の除去
  2. 02用途に応じたテキスト整形
  3. 03クリップボードへのコピーとプレビュー
  4. 04秘密情報の可能性を検出して確認
  5. 05HTMLを生成してブラウザーで表示

活用シーン

  1. 01ターミナル出力を整えて貼り付け
  2. 02Slackやメール向けに文章を整形
  3. 03SNS投稿用の文章を準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/coreyhaines31/makerskills --skill paste

インストール後、Claude Code で/pasteを入力して読み込まれたか確認します。

同梱ファイルreferences/destinations.mdreferences/secret-patterns.md

詳細

/paste — あらゆる宛先向けにコンテンツを整形

ターミナル出力(ANSI、罫線文字、プロンプトの不要な表示など)を整理し、宛先のルールに合わせて再フォーマットします。デフォルトでクリップボードを読み取り、結果をクリップボードに書き戻して、チャットにプレビューを表示します。

ステップ 1 — コンテンツを取得

次の順に処理します。

  1. ユーザーがプロンプトにコンテンツを含めている場合(貼り付けた場合、または会話の前の部分で言及した場合)は、それを使用します。
  2. それ以外の場合は、クリップボードを読み取ります(以下のコマンドを参照)。
  3. どちらも空の場合は、貼り付ける内容をユーザーに尋ねます。

プラットフォーム別のクリップボードコマンド(読み取り/書き込み):

プラットフォーム読み取り書き込み
macOSpbpastepbcopy < "$f"
Linux(Wayland)wl-paste -nwl-copy < "$f"
Linux(X11)xclip -selection clipboard -oxclip -selection clipboard < "$f"
Windowspowershell Get-Clipboard -Rawpowershell "Get-Content -Raw '$f' | Set-Clipboard"

$f はステップ 6 の書き込み手順で使用する一時ファイルです。必ずファイルからコピーし、ヒアドキュメントや echo からコピーしないでください。

クリップボードを使えないエージェント(リモート、ヘッドレス、チャットボットなど)は、クリップボードを使わず、プロンプトからコンテンツを取得し、整形したテキストをコードフェンス内で返してください。

ステップ 2 — 宛先を解析

呼び出し宛先
/pasteプレーンテキスト(デフォルト)
/paste plainプレーンテキスト
/paste slackSlack
/paste notionNotion
/paste twitter または /paste xTwitter
/paste linkedin または /paste liLinkedIn
/paste emailメール(プレーンテキスト)
/paste email rich または /paste email htmlメール(リッチテキスト/HTML)
/paste github または /paste ghGitHub
/paste markdown または /paste mdMarkdown のレンダリング
/paste htmlHTML ファイルにレンダリングしてブラウザーで開く

曖昧な場合は、ユーザーに尋ねてください。宛先ごとのルールは references/destinations.md にあります。

ステップ 3 — シークレットをスキャン

整形やコピーを行う前に、references/secret-patterns.md のパターンに照らしてスキャンします。

一致するものが見つかった場合:

  1. 停止します。 まだコピーしないでください。
  2. 検出されたものを、値をマスクした状態で報告します(先頭 4 文字と末尾 4 文字のみ。例:sk-12...wxyz)。
  3. 次のように尋ねます。「コンテンツ内に[type]が見つかりました。続行、秘匿化([REDACTED] に置換)、または中止しますか?」
  4. 明確な返答がない場合は、デフォルトで中止します。

ステップ 4 — 共通の整形

コンテンツから次のものを取り除きます。

  • ANSI エスケープコード — \x1b\[[0-9;]*[a-zA-Z] などの関連コード(カラーコード、カーソル移動、画面制御)
  • 罫線文字 — ╭ ─ ╮ │ ╰ ╯ ╞ ╡ ╤ ╧ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ━ ┃ ┏ ┓ ┗ ┛ など。状況に応じて簡単な文字(-、|)に置き換えるか、完全に削除します。
  • ターミナルプロンプトの不要な表示 — 行頭にある $ 、> 、❯ 、% 、# (シェルプロンプトに見える行で、最初の非空白文字となっている場合)
  • キャリッジリターン(\r) — \n に置き換えるか削除します
  • 行末の空白
  • 過剰な空行 — 連続する空行が 3 行以上の場合は 2 行にまとめます

ステップ 5 — 宛先のルールを適用

references/destinations.md を読み、該当する変換を適用します。

ステップ 6 — 出力

クリップボードへの書き込み手順(クリップボードに書き込むすべての出力先で実施します):

  1. エージェントのファイル書き込みツールを使って、整形済みの内容を一時ファイルに書き込みます。例:/tmp/paste-<slug>.txt。シェルのヒアドキュメントや echo でパイプしてはいけません。エージェントのハーネスは、ヒアドキュメントを約70文字で強制的に折り返したり、すべての行にインデントを加えたりする場合があり、チャット上では問題なく見えても、貼り付けると内容が崩れることがあります。
  2. ステップ 1 の書き込みコマンドで、ファイルの内容をコピーします。
  3. 一連の処理を検証します。 クリップボードの内容を読み戻し、ファイルと比較します。例:pbpaste | cmp -s - "$f" && echo match(環境に応じて読み取りコマンドを置き換えてください。Windows の場合は powershell "(Get-Clipboard -Raw) -eq (Get-Content -Raw '$f')" を使用します)。一致しない場合はその旨を報告し、コードフェンス内にテキストを表示します。
  4. チャットのプレビューは、コピーしようとした内容ではなく、読み戻した内容から作成します。記憶を頼りにプレビューを作ると、コピーが壊れているのに正常に見えるまま出荷されてしまいます。
  5. 検証後、一時ファイルを削除します。ファイルには、ユーザーがコピーした内容が含まれている可能性があります。シークレットスキャンを通過したテキストも例外ではありません。
出力先出力動作
plain / slack / notion / twitter / linkedin / email / github(a) チャット内のコードフェンスにプレビューを表示します。(b) 上記のクリップボードへの書き込み手順を実行します。プレビューには読み戻した内容を使用します。
email richHTML に変換し、/tmp/paste-<timestamp>.html に書き込み、ブラウザーで開きます(macOS では open、Linux では xdg-open、Windows では start)。クリップボードは使用しません(リッチテキストを保持するため、ユーザーがブラウザーからコピーします)。
markdown整形済みの Markdown をチャットに直接表示します(ほとんどのエージェント UI ではレンダリングされます)。また、上記の手順で生の Markdown をクリップボードにコピーします。"HTML としても開きますか?" と確認します。希望する場合は、ファイルに書き込んで開きます。
htmlHTML に変換し、/tmp/paste-<timestamp>.html に書き込み、ブラウザーで開きます。クリップボードは使用しません。

出力後、整形した内容の概要を1行で報告します(例:"ANSI コードを12個、罫線文字を4個、プロンプト由来のアーティファクトを1個削除しました。文字数:248 / 280(X)。クリップボードとの往復を検証済みです。")。

文字数に関する警告

Twitter と LinkedIn には実用上の文字数制限があります。ユーザーが「自分で調整する」と言った場合、拒否したり、自動で短縮したりしないでください。

  • Twitter/X:280文字を超える場合は警告します。超過文字数も示します。
  • LinkedIn:400文字を超える場合は警告します(厳密な上限ではなく、目安です)。
  • その他の出力先では、文字数に関する警告は不要です。

ソーシャルメディア向け出力先での URL の扱い

内容に URL が含まれ、出力先が twitter または linkedin の場合:

  • URL は本文に含めず、別に提示します。
  • リンクは本文ではなく、最初のコメント(LinkedIn)または返信(X)に載せるようユーザーに伝えます。
  • メモリストア内の makerskills:jab-hook と feedback_social_link_placement.md を参照してください(エージェントのメモリ、または ${MAKERSKILLS_MEMORY:-${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/memory}/)。

例

/paste slack

→ クリップボードを読み取り、ANSI を除去し、**太字** を *太字* に変換してクリップボードにコピーし、プレビューを表示します。

/paste twitter
[pasted error log]

→ 貼り付けられた内容を使用します(クリップボードは無視します)。すべての不要な要素を除去し、412 / 280文字であることを警告してコピーし、短縮するか、別の出力先を選ぶか確認します。

/paste html
[pasted markdown table]

→ 表を HTML に変換し、ブラウザーで開きます。ユーザーが選択してコピーすると、書式を保持したまま Notion / email に貼り付けられます。

/paste
[pasted output with sk-anthropic-key in it]

→ 停止します。"Anthropic API キーのようなものが見つかりました:sk-an...3kf9。続行、伏せ字化、中止のいずれにしますか?"

他のスキルとの連携

  • jab-hook — MCP の経路が適さない場合に、Typefully の下書きへ貼り付ける内容を整えます。また、X / LinkedIn への出力ではリンク配置ルールも適用します。
  • social-fetch — 取得した投稿を、下書きやニュースレターで引用する前に整えます。
  • second-brain — paste の出力を raw/note-<slug>.md にきれいに取り込み、後でまとめられるようにします。
  • watch-video — 文字起こしや要約の出力は、プラットフォームごとに形式を整えるため、paste に渡されることがよくあります。

品質に関する注意事項

  • クリップボードへの書き込み手順は省略できません。 ファイル → ファイルからコピー → 読み戻して照合 → 読み戻した内容をプレビュー、の手順を踏みます。発生元:2026-07-31、heredoc からパイプでコピーしたところ、チャットのプレビューでは問題なく見えたものの、実際には不自然な位置で改行され、インデントも付いていました。気付いたのはユーザーで、検証ではありませんでした。
  • シークレットの検出を必ず最初に実行します。 書式設定や出力先の判定を行う前に、paste が sk-*、AKIA*、xoxb-*、JWT 形式の文字列、長い 16 進数トークンをスキャンします。該当するものが見つかった場合は、処理を続行する前に確認を求めます。実際のキーを漏らすより、たまに誤検出するほうが安全です。
  • 画一的な変換ではなく、出力先に応じて変換します。 Slack では *bold*、LinkedIn では Unicode の装飾太字、メールでは HTML が必要です。同じ入力でも、有効な出力は 9 通りあります。出力先フラグは必須です。
  • すべての出力先で ANSI コードを除去します。 ターミナルのエスケープシーケンス(\033[31m など)は、元のターミナル以外では文字化けします。
  • 文字数制限は警告するのではなく、適用します。 X は 280 文字、LinkedIn は 3000 文字、Twitter は 25000 文字です。上限を超える出力のコピーは paste が拒否し、短縮方法を提示します。
  • ソーシャル向けの出力先では、リンクは本文ではなく最初のコメントに記載します。 出力先が twitter または linkedin の場合に適用されます。メモリーストアの feedback_social_link_placement.md に記載されています。
  • HTML の出力先では、クリップボードではなくブラウザーのタブで開きます。 書式付きの表やコードブロックは、書式を保持したまま選択してコピーできるよう、レンダリングされた画面が必要です。生の HTML をクリップボードにコピーすると、Notion やメールでは使いものになりません。

コメント