SuperSkill Registry について
SuperSkill Registryは、レビュー済みの再利用可能なAIエージェント機能を探して導入するためのカタログです。Web画面とCLIを備え、リリース、信頼の根拠、失効、同意の条件を明示します。
主な機能
- 01エージェントリソースの検索と絞り込み
- 02信頼情報、ファイル、バージョンの確認
- 03CodexとClaude Codeへの機能導入
- 04CLIによる検証と評価
- 05ワークスペースの承認と設定ゲート
活用シーン
- 01エージェントのタスクに使う機能の検索
- 02導入前のリリースと信頼情報の確認
- 03CodexまたはClaude Codeへの機能導入
- 04ハーネスパッケージの検証や評価
MCP 対応
カタログ機能はMCPとHTTPから利用でき、`/mcp` を含むエージェント向けの発見用エンドポイントもあります。CLIからMCP設定を生成することもできます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://superskill.sh/mcpclaude mcp add --transport http com-onlyharness-registry https://superskill.sh/mcp{"mcpServers":{"com-onlyharness-registry":{"type":"http","url":"https://superskill.sh/mcp"}}}Cursor で開く{"servers":{"com-onlyharness-registry":{"type":"http","url":"https://superskill.sh/mcp"}}}VS Code で開く{"mcpServers":{"com-onlyharness-registry":{"type":"http","url":"https://superskill.sh/mcp"}}}{"mcpServers":{"com-onlyharness-registry":{"serverUrl":"https://superskill.sh/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
12| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 公開 SuperSkill リソースを検索する自然言語またはキーワードのクエリ。 |
詳細
SuperSkill
superskill.sh は、レビュー済みの AI エージェント機能を見つけてインストールするための、人間向けの唯一のプロダクトです。既存の登録情報とワークスペースをそのまま維持し、Codex と Claude Code 共通のインストールリンクを提供するとともに、正確なリリース、信頼性、取り消し、同意に関するゲートを明示します。
旧 OnlyHarness の UI とホストは、互換性のためだけに維持されます。人間向けのルートは SuperSkill にリダイレクトされますが、インストール済みのクライアントとデータの継続性のため、旧 API/MCP の接続先、npm/パッケージ名、データベース識別子、不変のアーカイブ URL は引き続き利用できます。内部パッケージ名には引き続き @harnesshub/* を使用し、公開されている互換 CLI パッケージは onlyharness のままです。
ネイティブハーネスパッケージとは何ですか?
ネイティブハーネスパッケージは、より広範な OnlyHarness リソースカタログ内にある、厳密に検証されたパッケージ形式です。
- ランタイム、ツール、権限、品質ゲート、リスクプロファイルを含む
harness.yamlマニフェスト。 - プロンプト、例、評価ケース、期待される出力。
- 検証、評価、ゲート、差分、インポート、PR 注釈の CLI コマンド。
- ソーシャルレイヤー:スター、サーバー側のリミックスフォーク、スレッド、検証済みゲート実行、インストール確認、注目度、タグ、成果、メンテナーによるレビュー。
ライブ MVP
- アプリ:https://superskill.sh
- API ヘルス:https://superskill.sh/api/healthz
- レジストリ API:https://superskill.sh/api/registry
- 共通インストーラーマニフェスト:https://superskill.sh/api/superskill/install
Supabase 認証は、サインアップ/ログイン、スター、ローカルのリミックス下書き、スレッド投稿、認証済みの公開で有効になっています。
機能
- エージェントリソースを見つけるための HuggingFace スタイルのディスカバリー。実際のウィンドウマネージャー(ドラッグ、最小化、Z オーダー、タスクバー、スタートメニュー)を備えた Win98 デスクトップに表示されます。
- 成果によるフィルター、グローバル検索、リーダーボード、Harness Heat、スター、サーバー側のリミックスフォーク数、スレッド、検証済みゲート実行数。
- ハーネスの詳細は独立したウィンドウで開き、概要、インストール、信頼性、サンプルの試用、スレッド、ファイル、バージョンの各タブと、簡潔な口調の信頼性パネルを表示します。バージョンはアーカイブスナップショット履歴を参照します。
- Markdown を小規模な未検証のひな型にインポートする、認証済みのクイック公開フロー(
New Resource Wizard)。 - 共有カードウィンドウ(
harness_flex.exe)、Wild West アワード、Paint のヒートチャート、ウィザードを開くクリップのマスコット。 hh互換コマンドとsuperskill installを備えた CLI パッケージonlyharness。HH_REGISTRY_URLで別のレジストリを指定でき、デフォルトはhttps://superskill.sh/apiです。- エージェント向けディスカバリー:
/llms.txt、/api/openapi.json、/server.json、/mcp。 - ローカルの報奨金フロー:既存の
gate_escrowレールを介して作業状態を作成/請求/納品/承認します。paidが設定されるのは、納品されたゲートレシートに対する一致するエスクロー購入が確定した後だけです。 - セマンティック PR レビューと品質ゲートのサイドカー API。
- 共有 VPS ホスト向けのシステム Caddy デプロイモードを備えた、Docker 本番スタック。
アーキテクチャ
flowchart LR
Web["React/Vite UI"] --> API["Fastify Harness API"]
API --> Seeds["Seed harnesses"]
API --> Imports["Imported harnesses"]
Web --> Supabase["Supabase Auth + RLS tables"]
API --> SupabaseAuth["Supabase token verification"]
Caddy["System Caddy / superskill.sh"] --> Web
CLI["hh CLI"] --> Schema["Schema, eval, gate, diff"]
ローカルで実行
npm install
npm run seed
npm run check
npm run smoke
npm run dev
次を開きます。
- UI:
http://127.0.0.1:5177 - API:
http://127.0.0.1:8787/healthz - ローカル Gitea フォージ:
http://127.0.0.1:3000
オペレーターへの支払い
支払いのレポート作成と台帳の作成は、手動運用のみで行います。このスクリプトは、決済済みの purchases と payout_accounts を読み込み、現在のレートを適用し、冪等な支払い台帳の下書きを作成できます。支払いプロバイダーを呼び出すことはなく、項目を支払い済みにすることもありません。
npm run payout:report -- --month 2026-07
npm run payout:report -- --month 2026-07 --json
npm run payout:ledger -- --month 2026-07 --ledger-out data/payout-ledgers/2026-07.json
SUPABASE_URL と SUPABASE_SERVICE_ROLE_KEY を使用するか、--purchases と --payout-accounts でローカルの JSON フィクスチャを指定してください。--record-ledger は Supabase のサービスロールを通じて payout_runs/payout_items をアップサートします。creator_user_id がない行には MISSING_CREATOR_ID を設定し、支払いアカウントがない行は MISSING_PAYOUT_ACCOUNT としてブロックします。
CLI
npm パッケージを公開しています。
npx onlyharness@latest search market research
npx onlyharness@latest suggest market research --json
npx onlyharness@latest resources search superpowers --json
npx onlyharness@latest resources detail github:obra/superpowers --json
npx onlyharness@latest resources open github:obra/superpowers --json
npx onlyharness@latest resources approve onlyharness:harnesses/deep-market-researcher --workspace acme --collection approved --json
npx onlyharness@latest install harnesses/deep-market-researcher --target claude-code --json
npx onlyharness@latest publish-resource ./agent-tool --name agent-tool --type command_pack --json
npx onlyharness@latest publish-resource ./agent-tool --workspace acme --name agent-tool --type command_pack --json
npx onlyharness@latest mcp-config deep-market-researcher --target claude-desktop --json
npm i -g onlyharness # installs the `hh` command
リソースカタログ、不変の publish-resource、ワークスペースの承認/セットアップ/ゲート、メンバーシップの有効期限、手動かつプロバイダーに依存しないワークスペースサブスクリプションのライフサイクル、ユニバーサルインストール、SuperSkill の管理コマンドは、公開済みの [email protected] で利用できます。0.2.18 は、公開されたユニバーサルスキルのダイジェストが古い、既知の不具合があるワンリンクリリースです。サーバーカタログのフローは MCP/HTTP 経由でも利用できます。
ローカル開発では、ワークスペースバンドルをビルドして直接実行します。
npm run build -w onlyharness
node packages/harness-cli/dist/hh.mjs doctor
node packages/harness-cli/dist/hh.mjs audit-setup
node packages/harness-cli/dist/hh.mjs suggest market research --apply --out suggested-deep-market-researcher --json
node packages/harness-cli/dist/hh.mjs suggest market research --apply --target codex --out suggested-deep-market-researcher --adapter-out .codex/harnesses/deep-market-researcher --json
node packages/harness-cli/dist/hh.mjs install harnesses/deep-market-researcher --target codex --out deep-market-researcher --adapter-out .codex/harnesses/deep-market-researcher --json
node packages/harness-cli/dist/hh.mjs pull harnesses/deep-market-researcher --version 0.1.0 --out deep-market-researcher-0.1.0 --json
node packages/harness-cli/dist/hh.mjs mcp-config deep-market-researcher --target claude-desktop --out mcp.json
node packages/harness-cli/dist/hh.mjs benchmark benchmarks/research-discovery.yaml --json
node packages/harness-cli/dist/hh.mjs extract ~/.claude/skills/my-skill --out my-skill-harness
HH_TOKEN=<token> node packages/harness-cli/dist/hh.mjs publish [email protected]:acme/harnesses.git --path harnesses/my-harness --name my-harness --json
HH_TOKEN=<token> node packages/harness-cli/dist/hh.mjs publish-resource ./agent-tool --name agent-tool --type command_pack --json
HH_TOKEN=<token> node packages/harness-cli/dist/hh.mjs publish-resource https://github.com/acme/agent-tool.git --path packages/tool --name agent-tool --type command_pack --json
HH_WORKSPACE_TOKEN=<workspace-token> node packages/harness-cli/dist/hh.mjs publish-resource ./agent-tool --workspace acme --name agent-tool --type command_pack --json
HH_WORKSPACE_TOKEN=<workspace-token> node packages/harness-cli/dist/hh.mjs resources search agent-tool --workspace acme --json
HH_WORKSPACE_TOKEN=<workspace-token> node packages/harness-cli/dist/hh.mjs resources detail @acme/agent-tool --json
HH_WORKSPACE_TOKEN=<workspace-token> node packages/harness-cli/dist/hh.mjs workspace setup acme --target claude-code --json
HH_ORG_TOKEN=<org-token> node packages/harness-cli/dist/hh.mjs setup @acme
HH_ORG_TOKEN=<org-token> node packages/harness-cli/dist/hh.mjs publish workflow.md --org acme --name my-private-harness
HH_ORG_TOKEN=<org-token> node packages/harness-cli/dist/hh.mjs sync [email protected]:acme/skills.git --org acme
TELEGRAM_BOT_TOKEN=<bot-token> HH_ORG_TOKEN=<org-token> TELEGRAM_CHANNEL_ID=<channel-id> npm run telegram:gate-bot
SuperSkill 内部アルファ
SuperSkill は、OnlyHarness を基盤とする、タスク優先の管理機能レイヤーです。チェックイン済みのカタログには、完全に一致する不変の候補が現在 12 件含まれています。実際の Claude Code、Codex、人間によるレビューの証明が存在するまで、承認済みのショールーム項目は意図的に 0 件にしています。
- 公開、読み取り専用:
GET /api/showroom/capabilitiesとGET /api/showroom/capabilities/{id}。これらのルートは、ファイルを推奨、ダウンロード、アクティベートすることはありません。 - 選択済みの棚:
GET /api/showroom/selectedは、現在レビュー待ちの取り込み候補をselected_unreviewedカードとして公開します。Daylight カタログを補完できますが、リリースが完全に一致する承認証拠が存在するまで、推奨またはアクティベートすることはできません。 - 確認済みユーザーの Bearer:
/api/recommendations、/api/capabilities/{id}、リリース/アーカイブの完全一致ルート、ホスト型の証明公開、および管理ライフサイクルイベントでは、確認済みの Supabase ユーザー認証情報 1 つと、有効なサーバー側のsuperskill:managed権限付与を使用します。ヘッドレスクライアントはHH_TOKENを明示的に継承します。HH_SUPERSKILL_TOKENは内部アルファとの互換性を保つためのレガシー機能に限られ、公開 GO の証拠には使用できません。 - 管理 CLI リリース:
[email protected]は現在のワンリンクリリースであり、クリーンなnpxインストールを通じて公開・検証済みで、plugins/superskill/runtime.jsonには公式 npm integrity が固定されています。ホスト型のスキル詳細、アーカイブヘッダー、アーカイブのバイト列を、1 つの不変なバージョン/ダイジェスト/サイズ/信頼のタプルに結び付けます。0.2.14と0.2.18は既知の不具合があるワンリンクリリースです。正確なランタイムピンの代わりにlatestを使用しないでください。 - Web:SuperSkill のプロダクト画面は
superskill.shのホスト名に固定されています。レガシーのクエリ状態や保存済みのスキン状態で切り替えることはできません。
npm run build:superskill-catalog
npm run check:superskill-catalog
npm run check:superskill-router
npm run smoke:superskill
npm run superskill:pilot-report
プラグインのソースは plugins/superskill にあり、Claude Code と Codex でバイト単位まで同一の共有スキルが 1 つあります。機能の引き渡しには、不変の https://superskill.sh/api/superskill/install/{id}/{version}/{sha256} URL を 1 つ使用します。固定されたローカルインストーラーは曖昧さのないクライアントを 1 つだけ選択し、ルーティングとアクティベーションへの同意は別々に扱います。マーケットプレイスへの公開と、クリーンな新規セッションでのプラグイン証明は、別々のロールアウト作業です。
エージェント向け
- ディスカバリー:
/llms.txt、/AGENTS.md、/api/openapi.json、/server.jsonの MCP Registry メタデータ、/.well-known/oauth-protected-resourceの OAuth 保護リソースメタデータを利用できます。SuperSkill は独自の認可サーバーを公開していません。管理されたヘッドレスフローでは、確認済みアカウントのトークンをHH_TOKENを通じて手動で受け取ります。また、完全に標準準拠したフローを担う発行者が決まるまで、/.well-known/oauth-authorization-serverは意図的に 404 を返します。 - MCP v0.2.19:
https://superskill.sh/mcpで、正確なツール一覧はsearch_harnesses、harness_detail、search_resources、resource_detail、resource_use_instructions、pull_instructions、pull_harness、search_docs、publish_markdown_to_harness、publish_resource_packageです。リソースの詳細/利用ツールは任意の正確なversionを受け付けます。過去バージョンを明示して読み込んだ場合、最新バージョンに切り替わることはありません。ツールの結果はstructuredContentを使用します。論理エラーではisError: trueと、安定した機械可読コードおよびサニタイズ済みの詳細が設定されます。 - リソースパッケージの公開は、本番環境で有効です。確認済みの公開者は、冪等性、永続的な所有権、アーティファクトの SHA-256、上限付きテキストアーカイブを備えた不変のセマンティックバージョンを作成できます。既存のバージョンを変更する処理は安全側に失敗します。SuperSkill のウェブフォームは、リポジトリのフォルダーまたは作成済みのスキルを受け付け、別途レビューの証拠が存在するまで、受け付けたリリースすべてに
unreviewedのラベルを付けます。static-v2 のfailは、アーカイブ、カタログ、イベントを変更する前に拒否され、ルール/ファイルの証拠はサニタイズされます。HTTP ではSECURITY_SCAN_FAILEDを使用し、MCP では安定したVALIDATION_FAILEDエンベロープを維持します。受け付けられたpass/warnリリースもunreviewedのままであり、静的チェックの合格は既知のランタイムリスク階層を示すものではありません。 - Registry への公開:
server.jsonは正規 URLhttps://superskill.sh/mcpのリモート専用です。com.onlyharness/registryは互換性識別子として維持されます。公開には、superskill.shに対する MCP Registry の認可/公開証明、正確な公開済みランタイムのピン留め、および問題のないクライアント証明が引き続き必要です。onlyharness.comは互換性のためだけに使用されます。 - チームのセットアップと公開:
hh setup @acmeはGET /api/orgs/{slug}/bundleを読み込み、hh publish --org acmeは組織のプライベートなハーネスを書き込みます。どちらもORGS_ENABLED=trueの場合にHH_ORG_TOKENを使用します。組織の認証/バンドル/監査では、まず Supabase のサービスロールテーブルを読み込み、ローカルでのスモークテスト用フォールバックとしてHARNESS_ORGS_PATH/HARNESS_ORG_AUDIT_PATHを保持します。 - チームのワークスペース UI/API:Network Neighborhood は、同じ組織トークンを使って
GET /api/orgs/{slug}/workspaceを呼び出し、組織のプライベートカード、サニタイズ済みの監査行、権限/リスクの概要を返します。 - ワークスペースのリソースカタログ:確認済みアカウントは
POST /api/workspacesを通じて招待制のワークスペースを作成します。このトランザクションでは、オーナーのメンバーシップ、招待ポリシー、デフォルトの承認済みコレクションも作成されます。GET /api/workspaces/{slug}/workspace、GET/PUT /api/workspaces/{slug}/setup-bundle、GET /api/workspaces/{slug}/resources、GET /api/workspaces/{slug}/resources/{id}、GET /api/workspaces/{slug}/resources/{id}/archive、POST /api/workspaces/{slug}/imports/resource-package、POST /api/workspaces/{slug}/resources/approve、および/api/workspaces/{slug}/collections...はWORKSPACES_ENABLED=trueの場合に利用できます。API/ウェブの読み込みでは、有効かつ期限切れでないワークスペースメンバーセッションまたはHH_WORKSPACE_TOKENのどちらかを受け付けます。CLI は現時点では引き続きトークンを使用し、移行時のフォールバックとしてHH_ORG_TOKENを利用します。hh workspace setup acme --target claude-codeは、ワークスペースでホストされたパッケージをインストールし、承認済みの公開リソースについては、ワークスペースのアーカイブがあるかのように装わずに手順を記述します。GET/POST /api/workspaces/{slug}/members、POST /api/workspaces/{slug}/invites、POST /api/workspaces/{slug}/join、DELETE /api/workspaces/{slug}/members/{userId}は、member:write/invite:writeを通じてメンバーシップを管理します。POST /membersは任意のexpiresAtを受け付けます。期限切れまたは削除済みのメンバーは、プライベートなインストール/アーカイブ用パスを利用できません。生の招待コードは一度だけ返され、保存されるのはハッシュ値のみです。ウェブの共有 URL では生のコードを#の後ろに保持するため、明示的に参加する前にサーバーへ送信されることはありません。ワークスペースのゲートでは、GET/PUT /api/workspaces/{slug}/join-policies、POST /api/workspaces/{slug}/join-code、読み取り専用のPOST /api/workspaces/{slug}/join-code/verify、および Telegram/Discord/エンタイトルメントの確認に使う明示的なPOST /api/workspaces/{slug}/join-grantsが、gate:verify/gate:writeスコープとともに追加されます。有効なpaid_subscription参加ポリシーにはWORKSPACE_SUBSCRIPTIONS_ENABLED=trueが必要です。POST /subscriptions/checkoutは未完了のレシートのみ作成します。署名付きのPOST /webhooks/workspace-subscriptionsは、アクセスを冪等に有効化/更新/猶予/キャンセルしますが、削除済みまたは一時停止中のメンバーを復元することはありません。また、POST /subscriptions/sweepは料金を請求せずに終了済みのアクセスを期限切れにします。hh resources approve onlyharness:harnesses/deep-market-researcher --workspace acme --collection approvedを使うと、スキャン済みの公開リスティングを OnlyHarness による検証ではなく、ローカルの整理としてワークスペースのコレクションに追加できます。not_scannedおよび失敗したリソースは、インストール可能として承認できません。 - チームの Git 同期:
hh sync <git-url-or-local-path> --org acmeは Markdown のスキルとランブックをクローン/スキャンし、組織の公開エンドポイントを通じてインポートします。初期バージョンには Webhook がありません。 - メンテナーによる公開:
hh publish <harness-dir>にはローカルの.harnesshub/results.jsonが必要です。hh publish <git-url> --path <harness-dir>は一時ディレクトリにクローンし、そこでローカルの評価/ゲートを実行した後、サーバーがスキーマ、セキュリティ、ゲートを正常に再チェックした場合にのみ公開します。 - リソースパッケージの公開:
hh publish-resource <dir-or-git-url> --name <slug> --type <type>は、スキル、プラグイン、ワークフロー、MCP サーバー、コマンドパック、スクリプト、ドキュメント、ソースバンドルから、安全でサイズ上限のあるテキストファイルをパッケージ化して OnlyHarness のアーカイブストレージに保存し、結果を/api/resourcesに掲載します。Verified ハーネスのバッジではありません。 - ワークスペースのリソースパッケージの公開:
hh publish-resource <dir-or-git-url> --workspace acme --name <slug> --type <type>は、同じ完全なパッケージを@acme/nameとしてプライベートなワークスペースカタログに公開します。Markdown のスキャフォールド経由ではなく、Verified バッジを示すものでもありません。 - 組織のプライベートなプルでも同じトークン経路を使用します:
HH_ORG_TOKEN=<org-token> hh pull @acme/private-harness。 - ディレクトリの棚エントリーは、
directoriesというオーナーのもとにある、リンクのみのディスカバリーインデックスです。検索結果にはopen <url>と表示され、GET /api/repos/directories/{name}/archiveは実行可能なファイルではなく409 DIRECTORY_LINK_ONLYを返します。 - サーバー側のリミックスは、実際のフォークグラフ行を持つローカルドラフトフローです。
POST /api/repos/{owner}/{repo}/remixesは、アーカイブファイルのみから無料の未検証local/{name}コピーを作成し、ソースからフォークへのエッジを記録します。有料、組織/プライベート、ディレクトリ、リンクのみ、ライセンス未指定のソースは安全側に倒して失敗します。コピーされたフォールバックレシピはフォーク数を増やさず、プロンプトやローカルパスも保存しません。 - 公開 API のペイロードでサーバーのファイルシステムパスが公開されることはありません。レジストリ/詳細では、利用可能な場合は公開フォージ、OnlyHarness の GitHub ミラー、またはアップストリームの URL を使用します。
/healthzが返すのはステータスのみです。詳細画面のメンテナーレビューは、実際のフォージ PR ソースが接続されるまで、明示的にlocal-demoプレビューとして扱われます。 /api/resourcesは、スキル、プラグイン、ワークフロー、MCP サーバー、設定、ガイド、ランタイム、ディレクトリ、ネイティブなハーネス形式のパッケージを扱う、ソース認識型の主要な混合カタログです。/api/registryは、既存のエージェントクライアント向けに、ハーネスとリンクのみのディレクトリを組み合わせた仕様を維持します。- カテゴリベンチマークのインフラストラクチャはローカル優先です。
hh benchmark <suite.yaml>は、宣言された評価ケースのスコアを使い、ローカルパスにある候補ハーネスと類似ハーネスを比較します。スイートはbenchmarks/に置かれ、そこにあるすべての YAML スイートがスモーク実行されます。これは引き続き実行/比較レイヤーであり、独立した LLM 品質測定ではありません。 - エージェントの自動操縦:
hh suggest <task> --jsonは検索を行い、信頼性フィールド付きの候補をランキング順に返し、選択されたハーネスの詳細を取得し、信頼性の概要全体を表示して、プライバシーに配慮したsuggestedイベントを記録します。別の候補を確認/適用するには--pick <rank>を使用します。hh suggest <task> --apply --out <dir>はhh pullと同じアーカイブ経路で選択したハーネスをインストールし、--applyが選ばれた時点でacceptedを記録し、ファイルの書き込み後にのみappliedを記録します。--target cli|claude-code|codex|cursorを追加すると、appliedの記録前にアダプターのインストール経路全体を実行します。 - バージョン付きアーカイブ:ハーネスの詳細には
versions[]が含まれます。hh pull owner/name --version <semver>とhh install owner/name --version <semver>は、同じ不変の/archive?version=パスをリクエストし、.harnesshub/source.jsonには解決済みのバージョンをピン留めして保持します。 hh evalとhh gateは、プルしたハーネスが合格した場合に、プライバシーに配慮したeval/gateイベントを記録します。詳細ペイロードでは、これらのイベントに基づくverification.lastVerifiedAtが公開されます。レジストリのrunsに数えられるのは、合格したgateイベントのみであり、hh runのサンプルプレビューは含まれません。hh gate --receiptは、ハーネス参照、バージョン、resultsHash、判定、タイムスタンプを含む署名済みゲートレシートを書き込みます。POST /api/receiptsが検証するのは ed25519 署名のみです。副作用はなく、プロンプト、ローカルパス、支払い、エンタイトルメントは保存しません。- ゲートエスクローは先に予約します。
pricing.model: gate_escrowのチェックアウト/Webhook は、reservedと有効期限付きのescrow_reservedアーカイブエンタイトルメントを作成します。POST /api/billing/escrow/receiptは、有効で合格したレシートがあれば決済を確定し、有効で不合格のレシートがあれば返金します。POST /api/billing/escrow/timeoutは 72 時間の期間終了後に返金します。 - バウンティは、同じエスクロー経路を使う作業状態です。
/api/bounties*は作成、申請、納品、受け入れをサポートします。受け入れ時には、納品されたレシート、エスクローの対象、金額、通貨を検証し、エスクローの再利用を防止して、決済確定後にのみpaidを書き込みます。 - ホスト型エンドポイントはまだ稼働していません。
hh runはサンプルプレビューとしてローカルでのみ実行され、HTTP/MCP のサーフェスは、作成者のコードをサーバー側で実行せずにハーネスファイルを提供します。ランナー/パートナー経路が提供され、スモークテストが完了するまで、pricing.model=per_callは409 HOSTED_EXECUTION_NOT_AVAILABLEを返します。 - 有料のインストール/プルは、エンタイトルメントが付与されるまで 402 を返します。
PAYMENTS_ENABLED=true、X402_ENABLED=true、X402_PAY_TOが設定されている場合、アーカイブの応答には x402 v2 のPAYMENT-REQUIREDヘッダーも含まれます。hh install --payまたはhh pull --payによるアーカイブの提供成功には、X402_FACILITATOR_URLによる検証/決済が必要で、その後ウォレットのエンタイトルメントが付与されます。 - チェックアウト URL は
/checkoutに移動します。provider_refがない場合、ウェブ UI は購入者にログオンして手動チェックアウトセッションを作成するよう求めます。provider_refがある場合は、手動引き継ぎ待ちとして表示します。どちらの状態でも、クライアント側でアクセス権が付与されることはありません。 - 有効なチェックアウトプロバイダーは手動チェックアウトのみです(
PAYMENT_PROVIDERが未設定またはmanual)。その他のプロバイダー値は、購入を作成する前に安全側に倒して失敗します。x402 は独立したアーカイブ決済経路として引き続き利用できます。 - 購入者のレシートは読み取り専用です。
GET /api/billing/receipt?provider_ref=<ref>は、認証済みユーザーの支払い待ち/支払い済みの購入状況とエンタイトルメントフラグを返しますが、プロバイダーの決済確定やアクセス権の付与は行いません。 - ボットのゲートは、
entitlements:readを持つ組織トークンを使い、GET /api/entitlements/check?subject=user:<id>&harness=owner/nameを呼び出せます。返されるのは判定のみで、アーカイブファイルは含まれません。 - より安全なコミュニティゲートでは、有効期間の短い署名付きコードを使用します。購入者はエンタイトルメントの付与後に
POST /api/community/invite-codeを呼び出し、Telegram/Discord ボットはアクセスを付与する前に、スコープを限定した組織トークンを使ってPOST /api/community/verify-codeを呼び出します。API にはCOMMUNITY_INVITE_SECRETの設定が必要です。 - レジストリアイテムには
installConfirmsが含まれます。認証済みのkind=install&client=claude-codeイベントのみが、works in Claude Code: N confirmsバッジのカウント対象になります。 - Claude Code 互換マーケットプレイス:
claude plugin marketplace add elvismusli/onlyharness、続いてclaude plugin install superskill@superskillを実行します。主要な経路はワンリンクインストーラーです。 - Codex MCP の設定:
codex mcp add superskill --url https://superskill.sh/mcp --bearer-token-env-var HH_TOKEN。 - ローカル検証:
npm run check:mcp-registry && npm run check:plugin。Claude CLI がインストールされている場合は、claude plugin validate . && claude plugin validate plugins/onlyharnessも実行します。 例からローカル環境を作成します:
cp .env.example .env.local
cp .env.example apps/registry-web/.env.local
本番環境へのデプロイ
現在の VPS では、ポート 80/443 で共有システム Caddy が稼働しています。OnlyHarness は 127.0.0.1:8097 の背後で動作します。
SSH_TARGET=hetzner-root DEPLOY_MODE=system-caddy scripts/deploy-production.sh
scripts/deploy-production.sh は、コンテナの再読み込み後にデフォルトでパブリックのスモークテストを実行します。対象は、/api/healthz、/server.json、/.well-known/oauth-protected-resource、意図的に 404 を返す /.well-known/oauth-authorization-server、/checkout、および /mcp です。デフォルト以外のホスト名を使用する場合は PUBLIC_BASE_URL を上書きするか、意図的に一部のみをデプロイする場合に限り RUN_DEPLOY_SMOKE=0 を設定してください。
使い捨てユーザーを作成せずに認証済みの本番スモークテストを行うには、無視対象の本番環境ファイルに互換性 QA 認証情報を設定し、https://superskill.sh/api に対して scripts/smoke-production-auth.ts を実行してください。
デプロイ成果物:
infra/production-compose.ymlinfra/production-system-caddy.override.ymlinfra/Caddyfile.local-smokescripts/deploy-production.shscripts/smoke-production-compose.shscripts/smoke-production-auth.ts
本番スモークテスト:
scripts/smoke-production-compose.sh
set -a
. infra/production.env
set +a
SMOKE_API_URL=https://superskill.sh/api SMOKE_EXPECT_EMAIL_CONFIRMATION=1 npm run smoke:prod-auth
検証
現在の検証ゲート:
npm run build
npm run check
npm run smoke
npm run smoke:mcp
npm run smoke:x402
scripts/smoke-production-compose.sh
本番認証スモークテストでは QA Supabase ユーザーを作成し、メール確認によって直ちにサインインできないことを検証します。確認済みトークンを使用して認証済みの公開をテストするには、CLI の公開フローに HH_TOKEN を渡すか、確認済みセッションを使って API 公開スモークテストを実行してください。
リポジトリの構成
apps/
harness-api/ Fastify API and registry endpoints
registry-web/ React/Vite OnlyHarness UI
packages/
cli/ hh CLI
schema/ harness.yaml schema, validation, risk checks
semantic-diff/ harness semantic diff and PR review markdown
seed-harnesses/ curated MVP harness examples
supabase/ auth/social/thread schema migrations
infra/ Docker, Caddy, Gitea, and production compose
scripts/ seed, smoke, deploy, Gitea proof scripts
セキュリティに関する注意事項
- 実際の
.env.local、アプリ環境ファイル、およびinfra/production.envファイルは gitignore 対象です。 - 本番環境での公開には、有効な Supabase ベアラートークンが必要です。
- 設定されている場合、内部 webhook/eval エンドポイントには
HARNESS_WEBHOOK_TOKENが必要です。 - 組織のセットアップは
ORGS_ENABLEDによって制御されます。組織トークンは Supabase またはローカルのフォールバックストアにsha256:ハッシュとして保存され、監査ログに生のトークンを含めてはなりません。 - Supabase のテーブルでは、プロフィール、ユーザーアクション、スレッド投稿に RLS ポリシーが使用されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。