mcpField
S
sota-anchor

sota-anchor

ローカル
github.com/luckmanqasim検索03 週間前に更新

sota-anchor について

sota-anchorは、学習後に公開された技術を調べ、重複実装や根拠のない不可能判断を防ぐ、コーディングエージェント向けのMCPサーバー兼Claude Codeプラグインです。最近の論文、リポジトリ、パッケージを検索し、日付付きの根拠を示します。現在のモデルAPI ID一覧も提供します。

主な機能

  1. 01過去12か月の論文、リポジトリ、パッケージを検索
  2. 02日付付き情報を基に既存解決策を評価
  3. 03検索で情報がない場合はその旨を報告
  4. 04現在のモデルAPI ID一覧を提供
  5. 05モデル一覧をプロジェクトの指示ファイルへ書き込み

活用シーン

  1. 01実装前に形式対応リーダーの有無を確認
  2. 02タスクに使えるモデルやベンチマークを探す
  3. 03プロジェクト設定のモデルIDを確認
  4. 04エージェント指示ファイルへモデル一覧を同期

MCP 対応

MCPサーバーはcheck_what_existsツールとmodels://activeリソースを公開し、対応するコーディングエージェントが最近の根拠やモデルIDを参照できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"luckmanqasim-sota-anchor": {
"command": "uvx",
"args": [
"sota-anchor"
],
"env": {
"SOTA_ANCHOR_GITHUB_TOKEN": "<SOTA_ANCHOR_GITHUB_TOKEN>",
"SOTA_ANCHOR_BRAVE_API_KEY": "<SOTA_ANCHOR_BRAVE_API_KEY>"
}
}
}
}
起動コマンドuvx sota-anchor
設定が必要な環境変数
SOTA_ANCHOR_GITHUB_TOKENシークレットOptional. Raises GitHub's search limit from 10 to 30 requests a minute. Use a token with no scopes, so private repositories stay out of search results.
SOTA_ANCHOR_BRAVE_API_KEYシークレットOptional. Adds general web search through Brave Search as an evidence source.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisota-anchor0.2.1

ツール

1

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
pitchstringはい
monthsintegerいいえ
domain_queryanyいいえ
capability_queryanyいいえ

詳細

sota-anchor

コーディングエージェントは、学習後に公開されたものを知りません。
sota-anchorは、MCP サーバーであり、Claude Codeプラグインでもあります。
エージェントが既に存在するものを作り直したり、実現できないと言ったりする前に、
過去1年間の論文、リポジトリ、パッケージを確認します。

CI ライセンス:MIT Python 3.11+ MCP サーバー Claude Codeプラグイン APIキー不要

同じタスクから始まり、Xcode 27のプロジェクトファイルを解析してCIでビルド設定を確認する、2つのワークフロー。sota-anchorを使わない場合、エージェントはモデルが知っていることをもとに作り直します。末尾のカンマを取り除き、プロジェクトをモデル化し、ビルド設定を解決し、ルールエンジンを作成し、CLIとテストを書くのです。モデルはAppleのライブラリを学習時に見ていないため、2分37秒で新しいコードが755行作られます。sota-anchorを使う場合は、学習後に公開されたものを確認し、モデルの学習後である2026-09-15にリリースされた、Apple独自のフォーマット用ライブラリxcode-project-formatを見つけて再利用します。コードは一切書かず、42秒で完了します。

コーディングエージェントは、学習で得た知識をもとに計画を立てます。タスクに未知のものが必要な場合、それは存在しないと思い込み、コストのかかる2つの対応のどちらかを行います。ゼロから作るか、実現できないと伝えるかです。多くの場合、作業を簡単にするライブラリ、リーダー、モデルは、エージェントの学習終了後に公開されています。

sota-anchorを使うと、エージェントはその後に公開されたものを確認します。何かが利用できないことを前提に計画を立てるとき、エージェントは過去1年間の論文、リポジトリ、パッケージを検索し、日付とともに見つかった情報を評価します。そして既存のものを再利用するか、それ以上のものがないと把握したうえで開発します。

  • あらゆる分野に対応。 コードには特定の分野に関する知識がありません。CADファイル形式でも、ゲノミクスのパイプラインでも、コンパイラのパスでも、同じ確認を行います。
  • 追加のAPIキーは不要。 推論はエージェントが行い、検索はsota-anchorが行います。
  • 記憶ではなく根拠。 すべての主張に日付付きの情報源を引用します。検索して何も見つからない場合は、推測せずにそう伝えます。

Before and after

Xcode 27 の同じプロジェクトで、どちらのときも同じ依頼をしました。「xcode 27 でプロジェクトが新しい project.xcproj 形式に移行したが、まだ対応ライブラリがないので、CI で各ターゲットのビルド設定をチェックできる Swift パーサーを書いてください」。

Before. sota-anchor がない場合、Claude Code は依頼をそのまま受け取り、パーサーを書きました。8 ファイル、755 行の Swift パッケージで、形式については「Apple のドキュメントではなく、Logbook.xcodeproj/project.xcproj から」独自に解明したとのことです。所要時間は 2 分 37 秒でした。

Mac のターミナル上の Claude Code セッション。Xcode 27 の project.xcproj 形式用 Swift パーサーを依頼され、依頼には対応ライブラリがまだないと記されています。Claude Code はゼロからパーサーを作成します。Package.swift、末尾のカンマを削除する処理、147 行のプロジェクトモデル、169 行のビルド設定リゾルバーなどのファイルが続きます。

After. sota-anchor を使うと、コードを書く前にチェックが実行されます。モデルの学習後の 2026-09-15 に Apache 2.0 ライセンスで公開された、Apple 独自の形式用ライブラリ xcode-project-format が見つかります。Claude Code は GitHub で確認し、「自作すると重複する」ため独自パーサーを見送り、Apple のライブラリを使って CI チェックを書く前に、どのルールを適用するか尋ねます。42 秒で、まだコードは書かれていません。

sota-anchor を使った同じ依頼。Claude Code は sota-anchor のチェックを 2 回呼び出し、github.com/apple/xcode-project-format を取得します。Apple がこの形式用の公式 Swift ライブラリを公開していると報告し、独自パーサーを書くと重複すると述べ、CI チェックで適用すべきルールを尋ねます。コードはまだ書かれておらず、42 秒で完了しています。

どちらも記録された Claude Code のセッション(Opus 5.5、2026-09-25 と 2026-09-26)で、記録された画面をもとに Mac のターミナルとして描画しています。最初の例は冒頭から表示されており、その後さらに 116 行続きます。サンプルプロジェクトのファイルは Apple のライブラリを使って生成されたため、実際の形式です。

他のプランでも同じチェック
記憶を頼りに作業するエージェント確認してから作業するエージェント
.nwd 形式をバイト単位でリバースエンジニアリングし、Autodesk のソフトウェアなしでは読み取れないと決めつけます。2 週間前に公開された独立した NWD リーダーを見つけ、ライセンスがないため、作者の許可なしには再利用できないと指摘します。
モデルはエンジニアリング図面を読めないと決めつけ、ビジョンモデルを OCR パイプラインでラップします。今年公開された、まさにその図面を対象にしたマルチモーダルモデルのベンチマーク AECV-Bench と Enginuity を提示し、測定結果に基づいて選べるようにします。
新しいプロジェクトの .env に gemini-3-pro を記述します。これは提供されたことのないモデル ID です。公開モデルレジストリに現在提供中と記載されている gemini-3.1-pro-preview を使います。

最初と最後の行は、記録された実行結果に基づいています。2 行目の論文は、2026-09-24 にそのプランについて検索して得られたものです。

仕組み

リクエストはエージェントに渡され、エージェントは計画が「存在しない」と仮定しているものへと問いを反転させ、2つのクエリを作成します。sota-anchor は直近1年分の arXiv、Hugging Face、GitHub、npm、crates.io を検索し、日付付きの根拠を返します。エージェントは記憶ではなく根拠を判断材料にして、「既存のものを再利用する」「構築する」「結論を出さない」のいずれかに至ります。

リクエストが何かの入手不能を前提としている場合(ベンダーのソフトウェアでしか開けない形式のリーダー、誰も作っていないライブラリ、まだモデルにできないタスクなど)、check-what-exists スキルは3段階の確認を行います。

  1. 反転。 エージェントは、計画が「存在しない」と仮定しているものを明示します。たとえば、Xcode 27の project.xcproj 形式を読み取るライブラリはまだない、というようにです。あなたが示した制約(「ベンダーの SDK は使えない」など)はそのまま前提とし、それ以外に条件を満たすものがあるかを確認します。エージェントは2つのクエリを作成します。1つはその分野でのタスクの呼び方、もう1つは回避策を不要にするものです。
  2. 検索。 sota-anchor は直近12か月の論文(arXiv、Hugging Face)、リポジトリ(GitHub)、パッケージ(npm、crates.io)を検索します。Brave のキーを指定した場合はウェブも検索します。関連するものが見つかるまで各クエリの条件を緩めます。すべての情報源を合わせて60秒の制限時間内で検索します。
  3. 判断。 エージェントは検索で得られた情報だけを評価します。根拠が反証しない限り、前提は維持されます。「ライブラリは存在しない」という前提は、その作業をこなす公開済みのリポジトリまたはパッケージが見つかれば覆されます。ただし、存在することと成熟していることは同じではないため、公開からの期間や活動状況も報告されます。「モデルにはできない」という主張には、ベンチマーク結果が必要です。

結論は3つのうちいずれかです。すでに作業をこなすものがある場合、エージェントは上記のセッション例のように、その名称と根拠を示します。根拠だけでは判断できない場合、前提は維持され、何があれば覆るかをエージェントが説明します。何も見つからなかった場合は、何も確認できなかったと伝え、検索結果がないことを結論として扱いません。

そのほか:最新のモデル ID

新しいプロジェクト向けの、主に利便性を目的とした機能です。すべての Claude Code セッションの開始時に、OpenRouter の公開レジストリで現在提供されているモデル API ID と、それに置き換えられた古い ID の短い日付付きリストが表示されるため、新しい設定では実在するモデルを指定できます。

- GEMINI_MODEL=gemini-3-pro            # recalled from training: not a served ID
+ GEMINI_MODEL=gemini-3.1-pro-preview  # from the session's registry snapshot

リストには情報源が明記され、どのモデルが実行中かについての主張はありません。フックは事前に生成されたブロックを読み込み、1日1回バックグラウンドで更新するため、1セッションあたりの所要時間は約160 msです。他のエージェントも sota-anchor sync で同じリストを利用できます。

クイックスタート:Claude Code

メモ

Python 3.11+ と uv が必要です。API キーは不要です。

Claude Code で:

/plugin marketplace add luckmanqasim/sota-anchor
/plugin install sota-anchor@sota-anchor

その後、新しいセッションを開始します。最初のセッションでは uv が MCP サーバーの環境を構築するため、数秒長くかかります。以降はすぐに起動します。

インストールせずに1つのセッションで試すには:

git clone https://github.com/luckmanqasim/sota-anchor
claude --plugin-dir ./sota-anchor

利用できる機能:

部分機能
check-what-exists スキルリクエストが何かの入手不能を前提としている場合、自動で確認を実行します。
/sota-check <plan>必要に応じて確認を実行します。
MCP サーバーcheck_what_exists ツールと models://active リソースを提供します。
セッション開始フック日付付きのモデルリストを各セッションに追加します。実行を忘れる心配はありません。
/sota-syncモデルリストを更新し、CLAUDE.md、AGENTS.md、Cursor のルールに書き込みます。
プロンプトフック (オプトイン)SOTA_ANCHOR_PROMPT_HOOK=1 を設定すると、メッセージに「できない」と書かれている場合に注意を促します。
お試しください

このツールの動作を示す3つのプロンプトです:

  1. 欠けているものを前提としたプラン。 チェックは自動で実行されます:

    xcode 27 moved our project to the new project.xcproj format and there's no library for
    it yet, so write a swift parser we can use in CI to check each target's build settings
    

    Claude は、モデルの学習後にリリースされた Apple 独自の xcode-project-format ライブラリを見つけ、パーサーを書く代わりに、CI チェックで何を強制すべきかを尋ねます。

  2. 必要なときに実行するチェック。 通常はベンダーの SDK が必要だと思われている形式を対象とします:

    /sota-check "Write our own reader for Navisworks .nwd files, since we can't use the Autodesk SDK"
    

    最近のリポジトリ、パッケージ、論文を検索し、見つかった内容を日付とともに報告するか、何も見つからなかったと明確に伝えます。

  3. コード内のモデル識別子。 セッションのモデル一覧が役立ちます:

    Add an Anthropic client to this script and pick the current flagship model
    

    Claude は、学習時に記憶した古いエンドポイントではなく、プラグインがセッションに追加する日付付きの一覧からエンドポイントを使用します。

その他のコーディングエージェント

このチェックは標準的な MCP サーバーなので、MCP に対応するあらゆるエージェントで動作します。モデルリストは、プロジェクトの指示ファイルに記載します。

エージェントチェックの実行方法モデルリストの取得元
Claude Code自動、または /sota-checkプラグイン。毎セッション
Cursorcheck_what_exists ツール.cursor/rules/sota.mdc
VS Code + GitHub Copilotcheck_what_exists ツールAGENTS.md
OpenAI Codex CLIcheck_what_exists ツールAGENTS.md
Gemini CLIcheck_what_exists ツールAGENTS.md
OpenCodecheck_what_exists ツールAGENTS.md
その他の MCP クライアントcheck_what_exists ツールクライアントの指示ファイル

1. CLI を一度インストールします:

uv tool install sota-anchor   # or: pipx install sota-anchor

2. 以下のスニペットを使って、エージェントに MCP サーバーを登録します。

3. 必要に応じて、モデルリストをプロジェクトに書き込み、新しいリストが必要になったときに再実行します:

sota-anchor sync --target agents   # writes AGENTS.md
sota-anchor sync --target cursor   # writes .cursor/rules/sota.mdc and .cursorrules

SOTA-ANCHOR マーカーの間にあるテキストだけが変更されるため、ファイルの残りの部分はそのまま維持されます。

ヒント

Claude Code 以外では、エージェントはツールの説明に基づいて check_what_exists を呼び出すタイミングを決定します。確実に実行するには、次のように依頼してください:"このプランを実装する前に、check_what_exists を実行してください。"

Cursor

プロジェクト内の .cursor/mcp.json、またはすべてのプロジェクトで使う場合は ~/.cursor/mcp.json:

{
  "mcpServers": {
    "sota-anchor": { "command": "sota-anchor", "args": ["serve"] }
  }
}

モデルリスト:sota-anchor sync --target cursor を実行すると、常に適用される .cursor/rules/sota.mdc が書き込まれます。Cursor は AGENTS.md も読み取ります。

VS Code (GitHub Copilot)

.vscode/mcp.json。VS Code ではキーに mcpServers ではなく servers を使います:

{
  "servers": {
    "sota-anchor": { "command": "sota-anchor", "args": ["serve"] }
  }
}

または、ターミナルからユーザープロファイルに追加します:

code --add-mcp '{"name":"sota-anchor","command":"sota-anchor","args":["serve"]}'

モデルリスト:sota-anchor sync --target agents を実行し、chat.useAgentsMdFile 設定を有効にします。VS Code のローカルエージェントは、デフォルトでは AGENTS.md を読み取りません。

OpenAI Codex CLI
codex mcp add sota-anchor -- sota-anchor serve

または ~/.codex/config.toml に記述します:

[mcp_servers.sota-anchor]
command = "sota-anchor"
args = ["serve"]

モデルリスト:sota-anchor sync --target agents を実行します。Codex は AGENTS.md を読み取ります。

Gemini CLI
gemini mcp add sota-anchor sota-anchor serve

または ~/.gemini/settings.json に記述します(単一のプロジェクトの場合は .gemini/settings.json)。Gemini CLI はデフォルトで GEMINI.md を読み取るため、AGENTS.md を読み取るように指示するのもこのファイルです:

{
  "mcpServers": {
    "sota-anchor": { "command": "sota-anchor", "args": ["serve"] }
  },
  "context": { "fileName": ["AGENTS.md", "GEMINI.md"] }
}

モデルリスト:sota-anchor sync --target agents を実行します。

OpenCode

プロジェクト内の opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sota-anchor": { "type": "local", "command": ["sota-anchor", "serve"], "enabled": true }
  }
}

インストールせずに uvx 経由で実行するには、タイムアウトを延長してください。OpenCode がサーバーのツールを待つ時間は 5 秒ですが、初回起動時はパッケージのダウンロードにそれ以上かかります。

"sota-anchor": {
  "type": "local",
  "command": ["uvx", "sota-anchor", "serve"],
  "enabled": true,
  "timeout": 30000
}

モデルリスト:sota-anchor sync --target agents を実行します。OpenCode は AGENTS.md を読み取り、存在しない場合は CLAUDE.md を読み取ります。

その他の MCP クライアント

Claude Desktop を含む多くのクライアントは、一般的な mcpServers の形式を使います。ファイルの場所については、クライアントのドキュメントを確認してください。

{
  "mcpServers": {
    "sota-anchor": { "command": "sota-anchor", "args": ["serve"] }
  }
}

何もインストールせずに実行するには、必要に応じて uv に PyPI から取得させます。初回起動時はパッケージがダウンロードされるため、起動タイムアウトが短いクライアントでは、もう一度試す必要がある場合があります:

{
  "mcpServers": {
    "sota-anchor": { "command": "uvx", "args": ["sota-anchor", "serve"] }
  }
}

プラグインを使わずに Claude Code で実行する場合:claude mcp add sota-anchor -- sota-anchor serve。

ヒント

エディターで sota-anchor が見つからないと表示された場合は、フルパスを指定してください。uv tool dir --bin を実行すると、uv がインストールしたフォルダーが表示されます。

コマンドライン

プラグインが行うことはすべてコマンドから実行でき、API キーはどれも必要ありません。

コマンド機能
sota-anchor check "<your plan>"チェック全体を実行します。結果についてはCI での使用を参照してください。
sota-anchor evidence --query "Xcode 27 project.xcproj parser"根拠を検索します。LLM は使用しません。スクリプトでは --json を指定します。
sota-anchor serveMCP サーバーを stdio 経由で実行します。
sota-anchor seedセッションブロックを表示します。--refresh を指定すると、最初にレジストリを取得します。
sota-anchor sync --target allモデル一覧を CLAUDE.md、AGENTS.md、Cursor のルールに書き込みます。

sync のオプション:

オプション機能
--targetclaude(デフォルト)、cursor、agents、または all。
--provider一覧に含めるプロバイダーを指定します。複数回指定できます。デフォルトは anthropic、google、openai です。
--all-providersすべてのプロバイダーを一覧表示します。コンテキスト量は約 4,600 トークン(通常は 510 トークン)になります。
--max-per-providerプロバイダーごとに一覧表示するエンドポイント数です。デフォルトは 4 です。
--staleness-monthsモデルが廃止済みとみなされるまでに、プロバイダーの最新リリースからどれだけ遅れてよいかを指定します。デフォルトは 12 です。リリース頻度が低いプロバイダーでは、この値を増やしてください。
--refresh24 時間のキャッシュを無視します。
CI での使用

API キーがない場合、check はエージェントが回答するためのプロトコルを表示します。API キーがある場合は、それ自体で判定するため、ゲートとして使用できます。

終了コード意味
0制約は引き続き有効です。
2計画が古くなったものに依存しています。
3判定なし:キーが設定されていないため、エージェントが引き続き判断する必要があります。意図的に 0 以外にしています。
- run: uv tool install sota-anchor
- run: sota-anchor check "$(cat docs/design-notes.md)"
  env:
    SOTA_ANCHOR_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}

設定

設定は不要です。以下はすべて任意です。

Claude Code では、プラグインを有効にすると、任意の 2 つのキーを設定するよう求められ、システムの認証情報ストアに保存されます。どちらかを空欄のままにすれば、そのキーなしで使用できます。

プラグインの設定効果
GitHub トークンGitHub の検索上限を毎分 10 リクエストから 30 リクエストに引き上げます。スコープは指定しないでください。プライベートリポジトリを参照できるトークンを使うと、そのリポジトリがエージェントの読む検索結果に追加されます。
Brave Search API キー一般的なウェブ検索を根拠の情報源として追加します。未設定の場合、ウェブ検索は行われません。

sota-anchor は自身の名前が付いた変数のみを読み取るため、GITHUB_TOKEN など、ほかのツール用に設定したキーが読み込まれることはありません。プラグイン以外で使用する場合は、代わりに以下を設定してください。

変数効果
SOTA_ANCHOR_GITHUB_TOKEN上記の GitHub トークンです。
SOTA_ANCHOR_BRAVE_API_KEY上記の Brave Search キーです。
SOTA_ANCHOR_CACHE_DIRカタログとセッションブロックのキャッシュ先です。デフォルトは ~/.cache/sota-anchor です。
SOTA_ANCHOR_TTL_MINUTESフックが更新するまでの、セッションブロックの有効期間(分)です。デフォルトは 1440 です。
SOTA_ANCHOR_PROMPT_HOOK1 に設定すると、Claude Code でプロンプト時の通知が有効になります。

判断するエージェントが存在しない環境(CI など)で、エージェントを介さずに判定する場合:

変数効果
SOTA_ANCHOR_API_KEYOpenAI 互換のキーを指定します。
SOTA_ANCHOR_BASE_URLAPI のベース URL です。デフォルトは OpenRouter です。別のプロバイダーのキーを使う場合は、そのプロバイダーの URL を設定してください。https:// が必要です。このマシン上のサーバー(localhost、127.0.0.1、::1)には http:// を使用できます。
SOTA_ANCHOR_MODEL判定に使用するモデルです。未設定の場合、最新のカタログから選択されます。

送信・取得する情報

sota-anchor がネットワーク経由で行うすべての処理と、書き込むすべてのファイルです。テレメトリはありません。

チェックの実行時には、リクエストからエージェントが作成した検索クエリと、検索範囲を広げる際に短縮したクエリが、次の公開 API に sota-anchor/<version> の User-Agent とともに送信されます。

サービスエンドポイント受信する情報
arXivexport.arxiv.org/api/queryクエリ
Hugging Facehuggingface.co/api/papers/searchクエリ
GitHubapi.github.com/search/repositoriesクエリ、および設定している場合は GitHub トークン
npmregistry.npmjs.org/-/v1/searchクエリ
crates.iocrates.io/api/v1/cratesクエリ
Brave Searchapi.search.brave.com/res/v1/web/searchクエリ、および設定している場合のみキー

モデルリストについては、キーが不要で、あなたに関する情報を受け取らない公開エンドポイント openrouter.ai/api/v1/models から取得します。セッションフックは、最大でも 1 日に 1 回、バックグラウンドでリストを更新します。

ヘッドレスで判定する場合、SOTA_ANCHOR_API_KEY が設定されていると、プランとそのために見つかった根拠が SOTA_ANCHOR_BASE_URL の API に送信されます。変更しない限り、URL は openrouter.ai/api/v1 です。sota-anchor check と MCP ツールの両方がこれを行います。プラグインのサーバーも、Claude Code の起動時にその変数が環境に設定されていれば同様です。設定されていない場合は、エージェントが判定を行い、LLM API には何も送信されません。

初回起動時には、uv がサーバーに必要な Python パッケージを PyPI からダウンロードします。バージョンは uv.lock で固定されたものです。

ディスク上では、モデルカタログとセッションブロックを ~/.cache/sota-anchor、または SOTA_ANCHOR_CACHE_DIR に書き込みます。/sota-sync と sota-anchor sync は、実行したときに限り、現在のプロジェクトの CLAUDE.md、AGENTS.md、または Cursor のルールに、目印付きのブロックを書き込みます。オプトインのプロンプトフックは、ナッジを追加するか判断するために、プロンプトをマシン上で読み取ります。プロンプトを外部に送信することはありません。

トラブルシューティング

症状対処方法
Claude Code で check サーバーに接続できないuv がインストールされ、PATH に含まれていることを確認してから、新しいセッションを開始してください。初回起動時はサーバーの環境を構築するため、数秒長くかかります。/mcp でサーバーの状態を確認できます。
別のエージェントが sota-anchor を見つけられないフルパスを指定してください。uv tool dir --bin を実行すると、uv のインストール先フォルダーが表示されます。
uvx の使用時に OpenCode がサーバーの起動失敗を報告するtimeout を 30000 に引き上げてください。OpenCode のデフォルトの待機時間は 5 秒で、初回の uvx 起動ではパッケージのダウンロードにさらに時間がかかります。
チェックで何も見つからなかったと表示される表示されたエラーを確認してください。ソースによっては、リクエスト数が制限されたかタイムアウトした可能性があります。GitHub の制限を引き上げるには GitHub トークンを設定し、より大きな months を指定して再試行するか、最も具体的な語を先頭に置いてクエリを書き直してください。
モデルリストが見つからない、または古い/sota-sync を実行するか、Claude Code の外で sota-anchor sync を実行してください。
check に SOTA_ANCHOR_BASE_URL must start with https:// と表示されるプロバイダーの https:// URL を使用してください。プレーンな http:// が受け入れられるのは、自分のマシン上のサーバーに限られます。

その他の問題については、issue を作成してください。セキュリティ上の問題については、代わりに SECURITY.md の手順に従ってください。

制限事項

  • チェックを実行するかどうかは、エージェントの判断です。 Claude Code では、上記のようなエンジニアリング依頼をテストしたところ、毎回コードを書く前に実行され、通常の依頼では何も出ませんでした。他のエージェントでは、必要なときに名前を指定して依頼してください。
  • 見つかったものは手掛かりであり、結論ではありません。 論文が本番環境で使えるツールの存在を証明するわけではなく、リポジトリが正常に動作することを証明するわけでもありません。見つかったものは、調べるきっかけとして扱ってください。
  • 関連性は語彙に基づきます。 結果にはクエリの用語が2つ含まれている必要があります。これにより、頭字語が共通しているだけのプロジェクトは除外されますが、一般的な単語が共通しているものは除外されません。エージェントはすべての説明を確認し、無関係なものを除外しますが、ノイズが多少含まれることは想定してください。
  • PyPI は検索されません。 検索 API がないためです。Python パッケージは通常、GitHub リポジトリ経由で見つかります。
  • arXiv は遅く、挙動に癖があります。 利用規約に従い、リクエストは3.5秒間隔で送信されます。エッジサーバーが一部の HTTP クライアントを拒否するため、拒否されたリクエストは標準ライブラリ経由で再試行されます。ソースでエラーが発生した場合は、その旨が表示されます。「制限が有効」という結論を信頼する前に、エラーを確認してください。
  • 取得は60秒で停止します。 期限時点で実行中のソースは、見つかった結果を保持し、不足分を報告します。
  • モデル一覧は1日ほど古い場合があります。 フックはネットワーク上の応答を待ちません。すぐに更新するには、/sota-sync を実行してください。
  • ヘッドレス判定は、実際のプロバイダーでのテストが行われていません。 偽のモデルを使ったテストでカバーされていますが、実際の API を使った実行はまだ行われていません。

設計メモ

  • トピック辞書はありません。 取得処理が把握するのは一般的な英語の機能語だけで、特定の分野については何も把握しません。クエリは作成者が記述した順序を保ち、最後の用語から順に取り除くことでクエリを緩和します。
  • OR ではなく AND です。 arXiv は all:{phrase} をすべての単語に対する OR として解釈します。あるテスト用クエリでは329,590件の論文が一致したため、日付順に並べると、ほぼあらゆる分野の最新論文が返されました。用語は AND で結合され、何も見つからない場合にのみクエリが緩和されます。
  • 証拠がなければ判定しません。 証拠セットが空の場合、判定ステップには進まないため、エージェントが記憶から陳腐化の判定を補うことはできません。
  • 参照データであり、指示ではありません。 セッションブロックには、データの取得元と用途が記されており、それを読むモデルに対する権威を主張しません。以前の文面は権威を主張していたため、ホストモデルにプロンプトインジェクションとして適切に拒否されました。
  • モデルのハードコードはありません。 ティア分けでは、モデル ID の構造を読み取ります。数字を含むスラッグトークンはバージョンで、アルファベットのトークンは系統に属します。そのため、命名規則が変わっても gpt-4o と gpt-5.5 は同じ系統です。より新しいモデルが同じ系統に属する場合、プロバイダーの最新リリースよりも陳腐化期間を超えて遅れている場合、またはレジストリで有効期限が切れている場合、そのモデルは置き換え済みと見なされます。

開発

git clone https://github.com/luckmanqasim/sota-anchor
cd sota-anchor
uv sync --extra dev
uv run pytest            # all offline
uv run ruff check .
claude plugin validate .

テストスイートは、ネットワークやユーザー自身のキャッシュに一切アクセスしません。HTTP には httpx.MockTransport を使用し、LLM には注入された偽のモデルを使用します。各テストには専用のキャッシュディレクトリが割り当てられ、実際の DNS ルックアップが発生するとテストは失敗します。また、フックのテストでは、偽の更新ツールを PATH の先頭に配置します。CI では Ubuntu と Windows 上で、Python 3.11、3.12、3.13、3.14 を使用して実行します。

背景

SciUnlearn(Paul、Patwardhan、Cohan、arXiv:2608.20960)によると、現在の機械アンラーニング手法は「主張レベルの知識を効果的に除去できず、多くの場合、表面的な抑制しか実現できません」。古くなった主張をモデルの重みからきれいに取り除けないのであれば、モデルが古い信念に基づいて行動しようとする瞬間に、コンテキスト内で修正する必要があります。sota-anchor が機能するのはそのためです。

このスキルは、「すでにこれを実現するものがある」という判定を、主張と理由のブロック([SOTA ARBITER PARADIGM SHIFT])として求めます。これは、そのベンチマークにおける4種類の QA 形式のひとつを、形式として借用したものです。このような形式で更新を表現すると、エージェントがそれに基づいて行動する可能性が高まるという考えは、このプロジェクトの設計上の仮説であり、論文の知見ではありません。

License

MIT © 2026 Luckman Qasim

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。