anki-connect
AnkiConnectを通じてAnkiと連携するスキルで、デッキ・ノート・カード・モデル・メディアの読み取りや編集、同期操作など、ユーザーがAnkiに関する操作を求めた際に使用します。
description の原文を見る
This skill is for interacting with Anki through AnkiConnect, and should be used whenever a user asks to interact with Anki, including to read or modify decks, notes, cards, models, media, or sync operations.
SKILL.md 本文
AnkiConnect
概要
AnkiConnect ローカル HTTP API を通じて Anki との信頼できる対話を実現します。このスキルを使用して、ユーザーリクエストを AnkiConnect アクションに変換し、JSON リクエストを作成し、curl/jq(または同等のツール)で実行し、結果を安全に解釈します。
前提条件と環境
- Anki が実行されていない場合は Anki を起動し、AnkiConnect サーバーが
http://127.0.0.1:8765(デフォルト)で応答するまで待機します。curl を使用した確認(例:curl -sS http://127.0.0.1:8765はAnki-Connectを返すべき)で準備状況を確認します。
安全確認ポリシー(重要)
重要 — 例外なし
ノートまたはカードに対する破壊的または変更操作(追加、更新、削除、リスケジューリング、サスペンド、サスペンド解除、デッキ変更、フィールド/タグ変更)を実行する前に、ユーザーから確認をリクエストします。AskUserQuestion ツールが利用可能な場合はそれを使用し、そうでない場合はチャットで質問します。論理的な操作ごとに1 回だけ確認をリクエストしてください。複数の API 呼び出しが必要な場合でも(例:検索 + 更新 + 検証)変わりません。意図と範囲でグループ化された確認をリクエストしてください(例:「クエリ X にマッチする 125 個のノートを更新」)。
デフォルトで確認が必要と見なされるのは以下の場合です:
- ノート:
addNote、addNotes、updateNoteFields、updateNoteTags、updateNote、updateNoteModel、deleteNotes、removeEmptyNotes、replaceTags、replaceTagsInAllNotes、clearUnusedTags。 - カード:
setEaseFactors、setSpecificValueOfCard、suspend、unsuspend、forgetCards、relearnCards、answerCards、setDueDate、changeDeck。 - カード/ノートを実質的に変更するデッキまたはモデルの変更(デッキ削除、モデル編集)。上記に明示されていなくても質問してください。
API の基本
リクエスト形式
すべてのリクエストは以下を含む JSON です:
action:文字列アクション名version:API バージョン(ユーザーが別途指定しない限り6を使用)params:パラメータのオブジェクト(オプション)
レスポンス形式
すべてのレスポンスは以下を含む JSON です:
result:戻り値error:成功時はnullまたはエラーを説明する文字列
result を使用する前に必ず error を確認してください。
パーミッション
- 信頼されていないオリジンからやり取りする場合、最初に
requestPermissionを使用してください。これはあらゆるオリジンを受け入れる唯一のアクションです。 versionを使用して互換性を確保してください。古いバージョンではversion≤ 4 の場合、レスポンス内のerrorフィールドが省略されることがあります。
curl + jq パターン
JSON を構築し、レスポンスを解析するには jq を優先します。リクエストは明示的で構造化された状態に保ちます。
最小限のリクエストテンプレート
jq -n --arg action "deckNames" --argjson version 6 '{action:$action, version:$version}' \
| curl -sS http://127.0.0.1:8765 -X POST -H 'Content-Type: application/json' -d @-
パラメータ付き
jq -n \
--arg action "findNotes" \
--argjson version 6 \
--arg query "deck:French tag:verbs" \
'{action:$action, version:$version, params:{query:$query}}' \
| curl -sS http://127.0.0.1:8765 -X POST -H 'Content-Type: application/json' -d @-
result/error の処理
curl -sS http://127.0.0.1:8765 -X POST -H 'Content-Type: application/json' -d @- \
| jq -e 'if .error then halt_error(1) else .result end'
複数アクションのバッチ処理
multi を使用して往復を減らし、データ修正時にアクションを単一の確認でグループ化します。
jq -n --argjson version 6 --arg query "deck:French" \
'{action:"multi", version:$version, params:{actions:[
{action:"findNotes", params:{query:$query}},
{action:"notesInfo", params:{notes:[]}}
]}}' \
| curl -sS http://127.0.0.1:8765 -X POST -H 'Content-Type: application/json' -d @-
チェーン処理時に前のアクションの結果で空の配列を置き換えてください。CLI 使用時には、スクリプト言語を使用しない限り 2 つの呼び出しに分割します。
コアワークフロー ガイダンス
1) 接続性とバージョンの確認
requestPermissionを呼び出します(安全)。versionを呼び出して API レベルを確認し、リクエストでversion: 6を使用します。
2) サポートされているアクションを検出
apiReflectをscopes: ["actions"]で使用して、サポートされているアクションをリストアップします。- このリストを使用してユーザーの意図をアクション名にマッピングします。
3) ユーザーリクエストをアクションシーケンスに解決
- 読み取り専用と破壊的な操作を識別します。
- ノート/カードに対する破壊的/変更操作については、スコープと数を一度確認します。
- 変更前のプレビューのため、
findNotes/findCards+notesInfo/cardsInfoを優先します。
4) 実行と検証
- 順番に呼び出しを実行します。
- 各レスポンスで
errorを確認します。 - 集計された結果と返された ID を報告します。
一般的なタスク レシピ(CLI 指向)
デッキをリストアップ
- アクション:
deckNames
デッキを作成
- アクション:
createDeck - デッキがカード/ノート変更ワークフローの一部として作成される場合、確認が必要です。
ノート/カードを検索
- アクション:
findNotes、findCards - Anki 検索構文を使用します(以下の「検索構文クイックノート」を参照)。
ノートデータをプレビュー
- アクション:
notesInfo(ノート ID)
ノートを追加
- アクション:
addNote、addNotes - 確認が必要です。
- プリフライトチェックには
canAddNotesまたはcanAddNotesWithErrorDetailを使用します。
ノートのフィールドまたはタグを更新
- アクション:
updateNoteFields、updateNoteTags、または統合updateNote - 確認が必要です。
- 警告:ブラウザでノートを開かないでください。更新が適用されない場合があります。
ノートを削除
- アクション:
deleteNotes - 確認が必要です。
カードをサスペンド/サスペンド解除
- アクション:
suspend、unsuspend - 確認が必要です。
カードをデッキに移動
- アクション:
changeDeck - 確認が必要です。
期日を設定またはリスケジュール
- アクション:
setDueDate - 確認が必要です。
メディア アップロード/ダウンロード
- アクション:
storeMediaFile、retrieveMediaFile、getMediaFilesNames、getMediaDirPath、deleteMediaFile - アップロードには base64(
data)、ファイルパス(path)、または URL(url)を使用します。
同期
- アクション:
sync
検索構文クイックノート(findNotes/findCards 用)
- 複数の語句をスペースで区切ります。デフォルトで語句は AND でつながります。
- NOT ロジックのために
or、括弧、-を使用します。 deck:Name、tag:tagname、note:ModelName、card:CardNameを使用します。front:...または他のフィールド名を使用して、フィールドで制限します。re:は正規表現用、w:は単語境界検索用、nc:はアクセント無視用です。is:due、is:new、is:learn、is:review、is:suspended、is:buriedを使用してカードの状態でフィルタリングします。- interval や期日などのプロパティについては
prop:検索を使用します。 - 必要に応じてクォートまたはバックスラッシュで特殊文字をエスケープします。
アクション カタログ(マッピング リファレンスとして使用)
カード アクション
getEaseFactorssetEaseFactorssetSpecificValueOfCardsuspendunsuspendsuspendedareSuspendedareDuegetIntervalsfindCardscardsToNotescardsModTimecardsInfoforgetCardsrelearnCardsanswerCardssetDueDate
デッキ アクション
deckNamesdeckNamesAndIdsgetDeckscreateDeckchangeDeckdeleteDecksgetDeckConfigsaveDeckConfigsetDeckConfigIdcloneDeckConfigIdremoveDeckConfigIdgetDeckStats
グラフィカル アクション
guiBrowseguiSelectCardguiSelectedNotesguiAddCardsguiEditNoteguiAddNoteSetDataguiCurrentCardguiStartCardTimerguiShowQuestionguiShowAnswerguiAnswerCardguiUndoguiDeckOverviewguiDeckBrowserguiDeckReviewguiImportFileguiExitAnkiguiCheckDatabaseguiPlayAudio
メディア アクション
storeMediaFileretrieveMediaFilegetMediaFilesNamesgetMediaDirPathdeleteMediaFile
その他のアクション
requestPermissionversionapiReflectsyncgetProfilesgetActiveProfileloadProfilemultiexportPackageimportPackagereloadCollection
モデル アクション
modelNamesmodelNamesAndIdsfindModelsByIdfindModelsByNamemodelFieldNamesmodelFieldDescriptionsmodelFieldFontsmodelFieldsOnTemplatescreateModelmodelTemplatesmodelStylingupdateModelTemplatesupdateModelStylingfindAndReplaceInModelsmodelTemplateRenamemodelTemplateRepositionmodelTemplateAddmodelTemplateRemovemodelFieldRenamemodelFieldRepositionmodelFieldAddmodelFieldRemovemodelFieldSetFontmodelFieldSetFontSizemodelFieldSetDescription
ノート アクション
addNoteaddNotescanAddNotescanAddNotesWithErrorDetailupdateNoteFieldsupdateNoteupdateNoteModelupdateNoteTagsgetNoteTagsaddTagsremoveTagsgetTagsclearUnusedTagsreplaceTagsreplaceTagsInAllNotesfindNotesnotesInfonotesModTimedeleteNotesremoveEmptyNotes
統計 アクション
getNumCardsReviewedTodaygetNumCardsReviewedByDaygetCollectionStatsHTMLcardReviewsgetReviewsOfCardsgetLatestReviewIDinsertReviews
注意と落とし穴
- macOS では Anki をフォアグラウンドに保つか、App Nap を無効にして AnkiConnect が一時停止しないようにします。
- ノートを更新する場合、ブラウザエディタで表示されていないことを確認してください。更新が適用されない場合があります。
importPackageパスはクライアントではなく、Ankicollection.mediaフォルダに相対的です。deleteDecksではデッキに沿ってカードも削除するためにcardsToo: trueが必要です。
リソース
このスキルに必要なバンドルされたスクリプトやアセットはありません。
ライセンス: CC0-1.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- intellectronica
- ライセンス
- CC0-1.0
- 最終更新
- 不明
Source: https://github.com/intellectronica/agent-skills / ライセンス: CC0-1.0
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。