mcpField
P
paperclip-page

paperclip-page

github.com/paperclipaiクラウド・DevOps108.3k94 回インストール今日更新
リポジトリ

paperclip-page について

paperclip-page は、設定済みの Paperclip pages ホストに静的ディレクトリを公開するスキルです。公開前に構成を検証し、指定されたバケットとプレフィックスに書き込みます。更新時にリモートオブジェクトは削除しません。

主な機能

  1. 01静的ディレクトリの公開
  2. 02公開前のディレクトリ構成検証
  3. 03URL スラッグの指定または自動導出
  4. 04更新時は上書きのみでリモート削除なし
  5. 05シンボリックリンクと隠しファイルの拒否

活用シーン

  1. 01ルートに index.html がある静的サイトの公開
  2. 02固定 URL パスでのページ公開
  3. 03元のソースディレクトリからの安全な更新

インストール

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

$npx skills add https://github.com/paperclipai/paperclip --skill paperclip-page

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
scripts/
publish.sh
publish.test.mjs

詳細

Paperclip ページ

設定済みの Paperclip ページホスト(例:https://pages.paperclip.ing/<slug>/)に静的ディレクトリを公開するには、このスキルを使用します。

要件

  • ソースディレクトリのルートに index.html が含まれていること。
  • ライブ公開には、aws CLI v2、curl、jq が PATH 上で利用可能であること。
  • 環境変数が設定されていること:
    • PAPERCLIP_PAGE_BUCKET
    • PAPERCLIP_PAGE_BASE_URL
    • AWS_REGION
    • PAPERCLIP_PAGE_AWS_ACCESS_KEY_ID および PAPERCLIP_PAGE_AWS_SECRET_ACCESS_KEY に Paperclip Secrets のページアップローダー認証情報が設定されていること
  • 任意の環境変数:
    • PAPERCLIP_PAGE_DEFAULT_PREFIX
    • PAPERCLIP_PAGE_AWS_PROFILE(名前空間付きキーのペアの代わりに使用)
    • PAPERCLIP_PAGE_AWS_SESSION_TOKEN(名前空間付きキーのペアと併用する場合のみ)

ページアップローダーの認証情報をグローバルな AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY として設定しないでください。静的な環境変数キーはすべての AWS SDK で AWS_PROFILE より優先されるため、グローバル設定の値によって、エージェントの実行中にすべてのプロセスでホストの ID が気付かれないまま置き換えられます。名前空間付き変数を使うと、アップローダーの ID をこのヘルパーのみに限定できます。PAPERCLIP_PAGE_AWS_* の認証情報変数が設定されていない場合は、環境に応じた認証情報チェーンが引き続きフォールバックとして機能します。

ワークフロー

  1. ソースディレクトリを確認し、公開用の静的コンテンツのみであることを確認します。
  2. scripts/publish.sh <dir> --dry-run を実行して、ローカル構造を検証し、解決された URL とプレフィックスを確認します。
  3. スラッグを選択します:
    • ユーザーから固定の URL パスが指定されている場合は、--slug <slug> を使用します。
    • --slug を省略すると、ソースディレクトリ名からスラッグが生成されます。
  4. 公開します:
.agents/skills/paperclip-page/scripts/publish.sh ./site --slug my-page
  1. 表示された公開 URL と S3 プレフィックスを課題またはユーザーに返します。

更新ワークフロー

更新では、既存オブジェクトへの追加上書きのみを行います。このヘルパーがリモートオブジェクトを削除することはありません。

.agents/skills/paperclip-page/scripts/publish.sh ./site --slug my-page --update

対象のプレフィックスがすでに存在する場合、--update を実行するには、同じソースディレクトリから以前に公開した際に生成された ./site/.paperclip-page/state.json によるローカル所有権の証明が必要です。その状態ファイルがない場合は、別のページを上書きせず、新しいスラッグを作成してください。

安全規則

  • 公開コンテンツのみを公開してください。秘密情報、顧客データ、社外秘の社内資料、認証情報、内部ログは公開しないでください。
  • AWS のシークレット値を表示しないでください。
  • このスキルからバケットポリシー、IAM、DNS、CloudFront、ACM の設定を変更しないでください。セットアップは公開ヘルパーではなく、オペレーター用の手順書に従って行います。
  • 設定済みのバケットとプレフィックスの外部にはアップロードしないでください。
  • aws s3 sync --delete を使用したり、v1 で s3:DeleteObject を必須にしたりしないでください。
  • このヘルパーは --no-follow-symlinks を強制し、ソースにシンボリックリンクがある場合は失敗します。
  • このヘルパーは、独自の .paperclip-page/state.json を除く隠しファイルとドットセグメントのパスを拒否します。
  • スラッグとプレフィックスの各セグメントには、小文字の ASCII 文字、数字、ハイフンのみを使用してください。
  • 404.html などのサイト全体のルートオブジェクトは、オペレーターが管理してください。公開先は常に <slug>/... または <default-prefix>/<slug>/... です。

トラブルシューティング

  • Slug already exists:別のスラッグを選ぶか、.paperclip-page/state.json を含む元のソースディレクトリから --update を使用してください。
  • Missing index.html:先に静的サイトをビルドするか、ルート HTML ファイルを含むディレクトリをヘルパーに指定してください。
  • Found symlink:公開前にシンボリックリンクを実ファイルに置き換えてください。
  • AccessDenied:アップローダーの IAM ポリシーで、設定済みバケット/プレフィックスに対する ListBucket、GetObject、PutObject が許可されていることと、エージェントに Paperclip Secrets が渡されていることを確認してください。
  • 公開 URL の検証に失敗した場合:CloudFront のデプロイ/DNS、オブジェクトの存在、およびディストリビューションがプライベートな S3 REST オリジンで HTTPS を使用していることを確認してください。

オペレーターによるセットアップ、AWS ポリシーの例、認証情報のローテーション、インストール/アタッチ用コマンドについては、このスキルと同じ場所にある README.md を参照してください。

コメント