Go Public
ゴール:ユーザーがあなた(AI)と一緒に実行したワークフローが、誰でも使えるリンクになる。訪問者はリンクを開き、入力を入力して「実行」を押すだけで、同じ種類の結果を得られる。訪問者はアカウント不要。ページには無料の1日あたりのAI利用枠が付属している。
すべての操作は、このスキルのフォルダにある share.py(Python 3、標準ライブラリ)を通じて行います。以下 <skill> はこのスキルのフォルダを指します。
1. ワークフローを明確にする(推測せずに確認する)
会話から、以下の項目を3~6行で書き出し、ユーザーに表示します。
- 訪問者が入力するもの:各入力(テキストボックス、1行フィールド、リストからの選択)。
- ステップ:各AI呼び出しを順番に、その処理内容とともに記述。ほとんどのワークフローは1~3ステップです。この会話で実際に機能したプロンプトを、周囲の会話なしでも意味が通るように記述します。
- 訪問者が得るもの:どのステップの結果が表示されるか。
- タイトルと、初めて見る人にもわかる1文の説明。
ユーザーに確認または修正を求めます。また、ページの言語が明らかでない場合は、どの言語にするか尋ねます。
パスワード、支払い情報、カード詳細、ワンタイムコードを求めるページや、他の企業・人物になりすますページを作成しないでください。会話から得た個人データ(名前、メールアドレス、内部番号)をプロンプトやサンプルに入れないでください。架空の例を使用します。
2. workflow.json を作成する
ユーザーの現在のフォルダに作成します。形式:
{
"title": "会議メモ → フォローアップメール",
"description": "会議のラフなメモを貼り付けてください。決定事項、担当者、短いフォローアップメールを取得します。",
"inputs": [
{"id": "notes", "label": "会議メモ", "type": "textarea", "placeholder": "乱雑でも大丈夫です…"},
{"id": "tone", "label": "トーン", "type": "select", "options": ["フレンドリー", "フォーマル"]}
],
"steps": [
{"id": "facts", "prompt": "決定事項、アクションアイテム(担当者 — タスク — 期限)および未解決の質問をリストアップしてください。メモに書かれている内容のみを使用してください。プレーンテキスト、Markdownは使わないでください。", "input": "{{notes}}", "show": true, "label": "決定されたこと"},
{"id": "email", "prompt": "{{tone}}なトーンで、150語以内のフォローアップメールを書いてください。プレーンテキスト、Markdownは使わないでください。", "input": "{{facts}}", "show": true, "label": "フォローアップメール"}
],
"examples": [{"label": "プロダクト同期", "values": {"notes": "リリースは12月2日に延期、支払いバグのため。Rajが金曜までにバグを修正…", "tone": "フレンドリー"}}]
}
ルール:
type:textarea(デフォルト)、text、またはselect(optionsが必要)。入力は必須ですが、"required": falseで任意にできます。prompt、system、input内の{{id}}は、入力または前のステップの回答に置き換えられます。訪問者のテキストはinputに、指示はpromptに配置します。オプションのsystemはロールとルールを設定します。show: trueでそのステップが表示されます。非表示ステップは中間処理に使用できます。最後の表示ステップはストリーミング表示されます。- ステップごとの
maxTokens、デフォルトは800(ページの制限も同じ)。 - 必ず1つ以上のサンプルを提供します。訪問者はクリックして、入力をしなくてもページの動作を確認できます。
- 回答はプレーンテキストとして表示されるため、
**太字**はアスタリスクとして表示されます。表示されるすべてのステップのプロンプトの末尾に「プレーンテキスト、Markdownは使わないでください。」と付け、リストには単純なダッシュを使用します。
3. チェックして実際に試す
python3 <skill>/share.py check workflow.json
python3 <skill>/share.py try workflow.json # サンプル1を実際のAIで実行し、すべてのステップを表示
出力を初めて見る人のように読みます。ステップが曖昧、間違っている、または長すぎる場合は、プロンプトを修正して try を再実行します。公開前にサンプルの最終出力をユーザーに表示します。
4. ビルドして公開する
python3 <skill>/share.py build workflow.json page.html
python3 <skill>/share.py publish page.html
publish は公開リンクを表示します。ページIDと編集用の秘密トークンを .go-public.json に保存します(gitリポジトリの場合は .gitignore にも追加します)。ユーザーに以下の内容を伝えます。
- リンク(誰にでも送信可能)。
.go-public.jsonは後でページを変更・削除するために必要なので、保管し、共有しないこと。
page.html を手動で編集しないでください。workflow.json を変更してから再度ビルドしてください。
5. 後で変更または削除する
workflow.json を編集し、同じフォルダで build と publish を再度実行します。同じリンクで新しいコンテンツが反映されます。python3 <skill>/share.py delete でページを削除します。
制限事項(該当する場合に正直に伝える)
- 各ページには1日あたりの無料AI利用枠と、訪問者ごとのレート制限があります(
publishで表示されます)。混雑しているページが枠を使い切ると、その旨が表示され、翌日には再び利用可能になります。 - ユーザーが上限を引き上げる方法や使用状況を確認する方法を尋ねた場合:
.go-public.json内のclaim_urlを使用してページを自分のものとして主張できます。メールアドレスを入力し、受信トレイから確認すると、そのページは自分のアカウントの利用枠で実行されるようになります。この説明は、ユーザーから尋ねられたときか、利用枠が切れたときのみ行います。「Made with OneTag · Report」の小さなマークはすべてのページに残ります。 - 訪問者はページを報告できます。複数の人が報告したページは、確認のためにオフラインになります。
- ページは外部の画像、フォント、ライブラリを読み込めず、ストレージやログインもありません。フォーム、AIステップ、結果のみのシンプルな構成です。