Communitygithub.com

getshareout/shareout-skill

AIエージェントがShareOutを使用してライブWebページを構築、公開、管理するためのスキルです。shareout.site/v1/skillで提供されています。

shareout-skill とは?

このスキルは、AIエージェント(Claude Code、Cursor、Codexなど)向けに設計されたShareOutプラットフォームの公式スキルです。ShareOutは、ファイルを永続的なデータ、リアルタイムコラボレーション、ファイルストレージ、統合、自動化機能を備えた共有可能なWebアーティファクトに変換します。HTMLアプリに加えて、CSV、Markdown、JSON、TXTビューアをサポートしています。 スキルは、エージェントが常に最新バージョンを使用するための強制バージョンチェックから始まります。その後のモードルーターは、ユーザーの意図(HTMLアプリの公開、データの保存、外部データの使用、AIチャットの追加など)に基づいて適切なAPIドキュメントとSDKモジュールをロードします。PersonalプランとTeamsプランの両方をサポートし、Teams機能はベーススキルに追加される形で動作します。 SDKのローディング、HTMLアーティファクトのエディタ対応ルール、デザインの味付けに関する詳細なガイドラインを提供し、AIが生成したページがプロフェッショナルに見えるようにします。認証トークンの取得、アーティファクトの公開、データストレージの選択(シンプルな状態、構造化レコード、ファイル、ライブ外部システム)についてもカバーしています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add getshareout/shareout-skill

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

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

ドキュメント

ShareOut スキル

ShareOutは、ファイルを永続的なデータ、リアルタイムコラボレーション、ファイルストレージ、統合、自動化機能を備えた共有可能なWebアーティファクトに変換します。HTMLアプリに加えて、CSV、Markdown、JSON、TXTビューアをサポートしています。

これは公式スキルです。ShareOutタスクの最初にこれをロードしてください。

バージョンチェック — 最初の必須ステップ

他の操作を行う前に、最新のスキルを持っていることを確認してください。このファイルのフロントマターの version が現在保持しているバージョンです(現在 2.21.0)。

  1. GET https://shareout.site/v1/skill/version → { "version": "...", "updated_at": "..." }.
  2. 返された version がこのファイルのフロントマターの version よりも新しい場合、古い状態です:GET https://shareout.site/v1/skill(スキルフォルダ全体のzip)をダウンロードし、解凍し、古いコピーを破棄して、解凍されたファイルから続行します。
  3. 一致する場合は、処理を進めます。

このチェックをスキップしないでください。古いスキルで動作すると、誤ったエンドポイントと動作が発生します。

プランモデル

ShareOutには2つのプランがあります:

プランこのスキルの動作方法
Personalこのベーススキルのみを使用します。ユーザー自身のアーティファクトを構築、公開、更新、自動化、管理します。
Teams最初にこのベーススキルを使用し、その後、ワークスペース管理またはTeams専用機能のためにTeamsオーバーレイをロードします。

Teamsは追加機能です。このベーススキルの代わりにTeamsオーバーレイを使用しないでください。

エージェントローディングプロトコル

  1. このファイルから開始します。
  2. ユーザーがチーム、ワークスペース、メンバー、内部ワークスペース共有、サブドメイン、ワークスペースハウススタイル、ワークスペーススケジュール、または管理者コントロールについて言及した場合、まだ明確でなければ、Teams プランかどうかを尋ねます。
  3. ユーザーがTeamsプランでない場合、Personalモードを維持し、Teams専用の指示をロードしたり適用したりしません。
  4. ユーザーがTeamsプランの場合、team/SKILL.md をロードします。ワークスペーススラッグ/IDとトークンが利用可能な場合、GET /v1/skill?workspace={slugOrId} を取得します — zipにはハウスルールが記載された追加の workspace-context.md が含まれています。
  5. INDEX.md を使用して、オンデマンドで詳細ファイルをロードします。

最初の質問

実装を推奨する前に、以下を特定します:

  1. 何を構築していますか? ダッシュボード、フォーム、レポート、ツール、ドキュメント、データグリッド、プレゼンテーション、または自動化。
  2. 誰が使用しますか? 所有者のみ、招待された人々、Teamsワークスペース、または一般公開。
  3. どのようなデータが必要ですか? なし、単純な状態、構造化レコード、ファイル、ライブ外部データ、またはリアルタイムコラボレーション。
  4. 公開後に何が起こるべきですか? リンクの共有、データ収集、通知の送信、スケジュール配信、メトリクスアラート、受信メールの受信と処理、または視聴者とのAIチャット。

モードルーター

ユーザーの意図最初にロードその後必要に応じて
HTML/CSV/Markdown/JSON/TXTを公開api/artifact-types.mdapi/artifacts.md、core/source-editor.md、auth.md
HTMLアプリ/ページ/ダッシュボード/フォームを構築core/html-spec/overview.mdmodules/ui/overview.md、patterns/overview.md
見栄えを良くする / 良いデザインセンス / 汎用的なAIルックを避けるmodules/ui/taste.mdmodules/ui/overview.md
単純な状態を保存sdk/json.mdcore/html-spec/manifest.md
レコード/送信を保存sdk/table.mdpatterns/forms.md、patterns/tables.md
編集可能なスプレッドシートグリッドsdk/grid.mdsdk/table.md、integrations/google-sheets.md
ファイル/画像をアップロードsdk/blobs.mdpatterns/uploads.md
ライブ外部データを使用sdk/live-data.mdsdk/connections.md、integrations/overview.md
リアルタイムコラボレーションを構築sdk/realtime.mdmodules/_shared/permissions.md
コメントを追加sdk/comments.mdmodules/_shared/permissions.md
アーティファクト内AIチャットを追加agents/overview.mdagents/context.md
Telegramからページとチャットagents/telegram.mdapi/jobs.md
Slackからページとチャット(DMボット)agents/slack.mdintegrations/slack.md、agents/telegram.md
ブラウザでPythonを実行sdk/python.mdsdk/overview.md
メールまたはテンプレートを送信sdk/email.mdapi/templates.md
メールを受信 / メールをアーティファクトに転送 / 受信メールでトリガーintegrations/inbound-email.mdapi/jobs.md
スケジュールされたウェアハウス/jsonスナップショット更新(決定論的)api/jobs.mdagents/crew.md、sdk/connections.md
アーティファクトクルー(クエリ→要約→配信)agents/crew.mdapi/jobs.md、integrations/slack.md
プライベートページへのアクセスをリクエストmodules/_shared/permissions.mdcore/access-policy.md
スケジュール配信またはwebhookapi/jobs.mdapi/destinations.md
メトリクスがしきい値を超えたときにアラートapi/metric-alerts.mdpatterns/dashboards.md
Teamsワークスペース/管理者/サブドメイン/コンテキストteam/SKILL.mdteam/INDEX.md
Teams公開ガバナンス(メンバー承認(公開用))team/publish-governance.mdteam/SKILL.md、modules/_shared/publishing.md
Teamsスキルマーケットプレイス(再利用可能なプレイブック)team/skill-marketplace.mdteam/workspace-context.md、agents/overview.md

データの選択

最適な最小のストアを選択してください:

単純な状態: テーマ、フィルター、最後に開いたもの -> sdk.json
構造化レコード: タスク、送信、注文 -> sdk.table()
リアルタイム編集: ドキュメント、ボード、マルチプレイヤーUI -> sdk.realtime()
ファイル: 画像、PDF、添付ファイル -> sdk.blobs
ライブ外部システム: REST、BigQuery、Mixpanel、ウェアハウス -> sdk.connection / live-data

データの選択とアカウントプランを混同しないでください。sdk.json、sdk.table()、および sdk.realtime() はデータストアであり、請求プランではありません。

SDKの読み込み

<head>
  <link rel="stylesheet" href="https://shareout.site/sdk/shareout.css">
  <script src="https://shareout.site/sdk/shareout-ui.js" defer></script>
  <script src="https://shareout.site/sdk/shareout.js"></script>
</head>
<script>
(async () => {
  const sdk = await ShareOut.create();
})();
</script>

ルール:

  • ShareOut.create() を呼び出す前に https://shareout.site/sdk/shareout.js をロードします。
  • 埋め込まれたBearerトークンが準備できるように、new ShareOut() よりも await ShareOut.create() を優先します。
  • 公開されたHTMLは {hex}.shareoutcdn.site 上のサンドボックスiframe内で実行されます。生の fetch を /v1/data/... に使用するのではなく、SDKメソッドを使用してください。sdk/live-data.md を参照してください。
  • https://shareout.site/sdk/shareout.css をリンクし、カスタムCSSを記述する前に .so- クラスを使用してください。modules/ui/overview.md を参照してください。
  • cdn.jsdelivr.net のShareOut SDK URLを使用しないでください。

HTMLアーティファクトルール

HTMLアーティファクトは、ShareOutの構造マーカーを持つかどうかに関係なく機能します — 公開がブロックされることはありません。しかし、アーティファクトが宣言すればするほど、ビジュアルエディター ができることが増えます(アウトラインナビゲーション、インライン編集、行の追加/削除)。デフォルトでエディター対応を目指し、意図的に使い捨ての静的ページの場合のみスキップしてください。

エディター対応チェックリスト(エディターが探すもの):

  • ドキュメント head 内の script type="shareout/manifest" タグ、有効なJSONを含む。
  • 使用されるすべての sdk.json キーと sdk.table() 名がマニフェスト sources で宣言されている。
  • 動的コンテンツには data-shareout-binding があり、各バインディングは宣言されたソースを参照している。
  • ページは data-shareout-page を使用(エディターアウトラインを駆動);繰り返しコンテンツは data-shareout-template を使用。
  • インタラクティブターゲットが解決される:data-shareout-link / data-shareout-action は実際のページ/セクション/モーダル/タブを指す;モーダルにはオープントリガーがある;フォームには送信がある。
  • sources に default サンプルデータを宣言 — json、tables、および connections(BigQuery/Snowflake/Sheetsなどのライブコネクタ:sources.connections.<name>.default はサンプル行の配列)。ビジュアルエディターは、ライブフェッチやクエリなしで データをプレビューします(sdk.connection(...).query() を含むすべてのSDK読み取りをこれらのデフォルトから解決するか、空で解決します)。そのため、UIを await sdk.table(...).exec() / コネクタクエリの背後にゲートしているアーティファクトでも、レンダリングされ、編集可能なままです。default のないソースは空でプレビューされます。

HTMLアーティファクトを公開するたびに、これらを評価し、各ギャップが何を無効にするかを指定する アドバイザリ editor_readiness プロファイルが返されます(api/artifacts.md を参照)。ユーザーと1行の要約を共有しますが、ガイダンスとして扱い、ゲートとして扱わないでください — ユーザーは希望するものを正確に公開できます。

完全な仕様:core/html-spec/overview.md。

デザインの味付け

エディター対応は構造に関するものであり、見た目に関するものではありません。見た目は別個の意図的な決定 であり、AIが構築したページのデフォルトは「テンプレート化された汎用的なもの」です。視覚的なものを構築する前に、modules/ui/taste.md を読んでください:プロフェッショナルにデザインされたように見え、自動生成されたようには見えないアーティファクトを提供する方法を要約しています。簡単な要約:

  • デザインシステムを使用する(.so- クラス + トークン)— ブランドフォント、暖色系の明るいパレット、調和のとれたスペーシング/シャドウを提供するため、無料で良いセンスを継承できます。modules/ui/overview.md を参照してください。
  • 味付けは抑制すること: 1つのアクセントカラー、1つのフォントシステム、画面ごとに1つのプライマリアクション、十分な余白、動機がある場合のみモーション。
  • AIスロップの兆候を避ける: 紫/ネオングロー、3つの等しいカードの行、アイブロウスパム、偽の完璧な数字、マーケティングの決まり文句、空の状態/エラー状態の欠如。完全な禁止リストと公開前チェックリストは modules/ui/taste.md にあります。

アーティファクトタイプ

ShareOutは、MIMEタイプまたはファイル拡張子から自動的にタイプを検出します:

タイプ拡張子用途
html.html、.htm完全なSDKアプリ、ダッシュボード、ツール、プレゼンテーション
csv.csvソート可能/フィルタ可能なデータグリッド
markdown.md、.markdownレンダリングされたHTMLと目次付きのドキュメント
json.json折りたたみ可能なツリービューア
txt.txtプレーンテキスト/ログビューア

詳細:api/artifact-types.md。

初回実行 — トークンの取得

認証されたアクションにはすべてトークンが必要です。~/.shareout/credentials がまだ存在しない場合、ユーザーはアカウントを持っていません — 公開やその他の認証された呼び出しの前に、アカウントをブートストラップします:

  1. POST https://shareout.site/v1/auth/create-account(唯一の認証不要エンドポイント、ボディなし)→ { "token": "so_…", "user_id": "usr_…" }。
  2. token を ~/.shareout/credentials に { "token": "so_…" } として保存します(chmod 600)。
  3. 以降のすべてのリクエストでは、Authorization: Bearer so_… を使用します。

アカウント作成はIPごとにレート制限されています(code: RATE_LIMIT_EXCEEDED、429)。アカウントは匿名でヘッドレスです — 公開にメールは必要ありません。

次に、ユーザーにGmail/Googleに接続するかどうかを尋ねます。 ブートストラップアカウントにはメールがないため、保存されたトークンを介してのみ使用できます。メールをリンクすると、https://shareout.site のWeb UIにサインインできるようになります(ホームダッシュボード、ビジュアルエディター、セルフサービスAPIトークン)。両方のパスを提供します:

  • Google: ブラウザで GET https://shareout.site/v1/auth/link-google(Bearerトークン)を開き、Googleアカウントをリンクします。
  • メールコード: POST /v1/auth/link-email/start { "email" } → POST /v1/auth/link-email/verify { "email", "code" }(6桁コード、10分有効期限)。

ユーザーが拒否した場合、トークンのみのフローは引き続き機能します。完全なオンボーディングとリンクのリファレンスについては、auth.md を参照してください。

公開

ShareOutはCloudflareによって保護されています。Python requests は1010ブロックをトリガーする可能性があります。ペイロードは好きなように構築し、curl にパイプします:

TOKEN=$(python3 -c "import json,os; print(json.load(open(os.path.expanduser('~/.shareout/credentials')))['token'])")
python3 build_payload.py | curl -sS -X POST 'https://shareout.site/v1/publish' \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  --data-binary @-

完全なAPI:api/overview.md。

Teamsの境界

Personalアーティファクトは、プライベート、コラボレーターとの共有、公開、または未掲載のままにすることができます。Teamsプランのワークスペース機能に対してのみTeamsドキュメントをロードします:

  • ワークスペースメンバーとロール。
  • 内部ワークスペースの可視性(visibility: "workspace")。
  • メール/ドメインによるワークスペースメンバーシップポリシー。
  • ワークスペースサブドメイン。
  • ハウススタイルのためのワークスペースコンテキストファイル。
  • ワークスペースレベルのスケジュール、自動化、機能フラグ、管理者ビュー。

重要な用語の区別:

用語意味
access_policy行レベルのアーティファクトデータフィルタリング:各視聴者は許可された行のみを表示します。core/access-policy.md を参照してください。
ワークスペースメンバーシップポリシーTeamsのメール/ドメインメンバーシップルール:誰がワークスペースに参加できるか。team/SKILL.md を参照してください。
コラボレーターロールアーティファクトレベルの owner、editor、viewer。
ワークスペースロールTeamsワークスペースの owner、admin、member。

バージョンチェック

各タスクの前に必須バージョンチェックを実行します。保持している version を最新と比較する3つの同等の方法:

GET https

…

[翻訳のため切り詰められています]

関連スキル