Publish Skill
skills.shにはサブミッションキューがありません。公開されているGitHubリポジトリから適切な形式のskills/<slug>/SKILL.mdファイルをクロールしてスキルを発見します。したがって、「公開」とは、リポジトリが公開されており、すべてのSKILL.mdに有効なフロントマターがあり、(オプションで)スキルがリポジトリを直接インデックス化するセカンダリマーケットプレイス/組織にミラーリングされていることを意味します。
検証
このスキルディレクトリから実行します:
python3 scripts/skill_publisher.py validate --workspace /path/to/repo --fail-on block
すべてのskills/<slug>/SKILL.mdをチェックします:フロントマターが---で始まり---で終わっていること、nameが存在し小文字のkebab-caseであること、nameがそのディレクトリと一致すること、descriptionが存在し20〜1024文字であること、フロントマター後の本文に実際の指示があること(単なるスタブではないこと)。
より厳格なゲートには--fail-on reviseを、機械処理用には--format jsonを使用します。
インストールマニフェストの生成
python3 scripts/skill_publisher.py manifest --workspace /path/to/repo
git remote originからリポジトリのGitHubスラッグを解決し、有効なスキルごとにnpx skills add <owner>/<repo> --skill <name>の行を1つ出力します。これが「skills.shからインストールする」手順として配布するもの(またはREADME/アナウンスに貼り付けるもの)です。別途サブミッション手順はありません。
allはvalidateとmanifestを1回の呼び出しで実行し、同じ--fail-onゲートを共有します。
組織全体を1つのコマンドで公開
python3 scripts/skill_publisher.py org --org farfarfun-skill --workspaces-dir /path/to/farfarfun-skill
これは「すべてを公開する」ワンショットエントリポイントです。--org内のすべての公開されている非フォークリポジトリをgh repo listで一覧表示し、--workspaces-dir以下にまだチェックアウトされていないものはクローンし(既存のクローンをプルしたり変更したりすることはありません)、skills/ディレクトリのないリポジトリをスキップし、残りに対してvalidateを実行し、組織全体の結合されたインストールマニフェストを出力します。--workspaces-dirのデフォルトは--workspaceの親ディレクトリであるため、ディスク上で兄弟リポジトリの隣にあるリポジトリから実行する場合、追加のフラグは必要ありません。
--registerを追加すると、検証に合格したすべてのスキルに対してローカルでnpx skills add <owner>/<repo> --skill <name> -yも実行します。これは実際にskills.shのインストールテレメトリ/リーダーボードにフィードするメカニズムであり(サブミッションAPIはありません)、またこのマシンのエージェントスキルディレクトリにスキルをインストールするため、その副作用が必要な場合にのみ渡してください。
さらにスキルをセカンダリ組織にフォーク/同期するには、--mirror-to <org>を追加します(以下を参照)。
別のプラットフォームにミラーリング
python3 scripts/skill_publisher.py mirror --workspace /path/to/repo --target-org farfarfun-skills
最初の実行時にリポジトリを--target-org(デフォルトfarfarfun-skills)に<owner>--<repo>としてフォークし、以降の実行ごとにそのフォークをソースから再同期します。これは、この組織がセカンダリ発見のためにfarfarfun-skill/*リポジトリを既にミラーリングしている方法と一致します。ターゲット組織内にリポジトリを作成する権限を持つ認証済みのghが必要です。これはリモートのGitHub状態を変更する唯一のサブコマンドです。最初にvalidateを実行し、検証に合格したリポジトリのみをミラーリングしてください。
結果を返す
validateからallow、revise、blockのいずれか、合格したチェック、および各指摘事項に対する具体的な修正パス(どのファイル、どのフィールド、何を変更すべきか)を返します。manifestとmirrorは情報提供/アクションの出力であり、ゲートではありません。これらでブロックしないでください。