mcpField
C
craft-anything

craft-anything

github.com/storytold開発20.4k50 回インストール今日更新
リポジトリ

craft-anything について

Craft Anythingは、実行ファイル、アプリ、ライブラリ、キャプチャなど、ビルド済みソフトウェアを証拠に基づいて調査するスキルです。仮説、証拠付きの所見、引き継ぎを記録し、観察と推論を区別して分析を進めます。

主な機能

  1. 01出荷済みソフトウェアの調査
  2. 02概要・計画・引き継ぎの記録
  3. 03仮説と証拠付き所見の追跡
  4. 04観察・導出・推論の区別
  5. 05形式別ツールセットへの対応

活用シーン

  1. 01実行ファイルやライブラリの調査
  2. 02アプリバンドルやAPKの分析
  3. 03アプリの2つのバージョンの比較
  4. 04クラッシュダンプやネットワークキャプチャの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/storytold/craft-anything --skill craft-anything

インストール後、Claude Code で/craft-anythingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

clients.rs
config.rs
doctor.rs
lib.rs
plan.rs
skill_recovery.md
skill.rs
tests.rs
tools.rs
yaml.rs

詳細

Craft Anything:証拠を重視した調査

実行可能ファイル、ライブラリ、アプリバンドル、APK、Electron アプリ、WebAssembly モジュール、ファームウェア、クラッシュダンプ、ネットワークキャプチャなど、実際に構築され、リリースされたものに答えが左右される場合は、Craft Anything を使用してください。ソースコードがあり、質問がソースに関するものであれば、ソースを読んでください。そのほうが速く、直接的です。

必要なときだけ接続する

  • craft-anything ツールがすでにツール一覧にある場合は、そのまま作業を始めてください。最初にセットアップや doctor を実行する必要はありません。
  • このファイルよりも、現在のツール一覧とそのスキーマを優先してください。サーバーのバージョンは新しい場合も古い場合もあります。
  • ツールが見つからない、または起動に失敗する場合は、craft-anything-cli doctor を実行してから craft-anything-cli setup --dry-run を実行し、適用する前に計画をユーザーに提示してください。セットアップが成功した後、ユーザーはアプリを再起動するか、再接続する必要があります。
  • 最初に表示されるのは、少数のコアツールだけです。list_toolsets を呼び出して他のツールセットを確認し、enable_toolset を呼び出して有効にしてください(ネイティブコード、Android、Apple、Web、ランタイムなど)。
  • Clean room(Deep モードはデフォルトでオフ)では、ターゲット内部のものは何も読み取られません。外部から動作するツールだけが一覧表示され、それ以外は details.reason が clean_room として拒否されます。回避策を探すのではなく、質問への回答には Deep モード(アプリ内の切り替え、settings_set deep_mode true、または --deep を付けて起動したサーバー)が必要だとユーザーに伝えてください。

作業メモリ:常に最新に保つ

長期にわたる調査は、単一のコンテキストウィンドウを超えて続きます。プロジェクトには概要、計画、仮説、調査結果、引き継ぎメモが保存されています。毎回これらを活用してください。

  1. 開始または再開する。 まず core_investigation_show を呼び出してください。引き継ぎメモがある場合は、最初からやり直すのではなく、そこに記された内容と計画に沿って続けてください。また、開いている項目を確認するために core_session_show も呼び出してください。
  2. 新しい質問の場合は? 分析の呼び出しを行う前に、core_brief_write で概要を書き込みます(質問、その質問の背景、対象、制約(「プログラムを実行しない」など)、回答を完成とみなす条件)。続いて core_plan_update で初期計画を作成します(短い番号付き手順を記し、それぞれに、理由を添えて todo/doing/done/blocked のいずれかの状態を設定します)。
  3. ツール呼び出しをまとめて行った後: 計画の各手順の状態を更新します。検証する価値のある主張を立てたら、core_hypothesis_record に確認または反証の予測を記録してください。証拠が得られたら、証拠 ID を添えて core_hypothesis_update で状態を更新します(supported、refuted、abandoned)。
  4. 結論が出たら: 主張と少なくとも1つの証拠 ID を core_finding_record に記録してください。レポートは調査結果をもとに作成します。チャットの文章をもとに作成するものではありません。
  5. 各ターンの最後に: core_handoff_write を使って、現状、次にすべきこと、避けるべき落とし穴(行き詰まった方法、時間のかかるツール、誤解を招く文字列)を記録してください。次の担当者が初めて読む場合を想定して書いてください。
  6. すでに試したことを確認する必要がある場合は、core_journal_read を使うと、これまでのすべてのツール呼び出しとモデルのターンを確認できます。

方法

  • 観察し、導出し、推論し、どれに当たるかを明示します。 観察した事実は、バイト列またはキャプチャから直接得られます。導出した事実は、観察結果から計算したものです(制御フローグラフ、呼び出しグラフなど)。推論は判断です(名前、意図、モデルによる解釈など)。各主張に該当する区分を付けてください。
  • すべての主張に証拠 ID(ev_…)を付けてください。証拠 ID のない主張は仮説です。
  • 不在は証明ではありません。「文字列が見つからない」や「呼び出し元が見つからない」という結果は、検索した範囲に限られます。検索範囲とツールが報告した網羅範囲を明示し、重要でありながら未解決の事項については、未確認事項(core_unknown_add)を記録してください。
  • 予測してから検証します。 仮説を検証するツールを実行する前に、何が見つかると予想するかを書き留めてください。結果が予想と異なる場合は、結果を無理に説明しようとせず、仮説を更新してください。
  • まず要約を確認し、その後ページを取得します。 大きな結果は、要約と証拠 ID の組み合わせで返されます。一度にすべてを取得するのではなく、ページ(offset/limit)または必要な特定の項目を要求してください。すでに成功した、または拒否された同一の呼び出しを繰り返さないでください。
  • ファイル名ではなく、形式に基づいて判断します。 ファイルの種類はパーサーに判定させてください。

対象別の開始方法

対象最初の手順
ネイティブ実行ファイルまたはライブラリ(ELF、PE、Mach-O)core_target_open を実行し、概要、検索、関数の各ツールを使用します
Electron アプリ、.asar、または JavaScript バンドルアプリまたはアーカイブに対して core_target_open を実行し、JavaScript ツールセットを使用します
Android APK/DEXcore_target_open を実行し、Android ツールセットを使用します
.NET アセンブリcore_target_open を実行し、マネージドツールセットを使用します
WebAssembly、Go、PE リソース、ファームウェア、クラッシュダンプフォーマットツールセットを使用します
ライブのウェブページまたは Electron ウィンドウブラウザツールセットを使用します(観察のみ)
同一アプリの 2 つのバージョン両方を開き、アプリケーションツールセットの比較ツールを使用します

ユーザーがアプリ名を挙げずに「自分のアプリ」と言った場合は、どのアプリか尋ねてください。サンプルファイルで決めつけないでください。

同意と安全性

  • 対象のコードを実行するツールや、接続されたデバイスを変更するツールには、ユーザーの明示的な OK が必要です。呼び出しが consent_required を返した場合は、実行内容を説明して許可を求めてください。回避方法を探してはいけません。
  • 静的解析では対象を実行しません。静的な証拠だけから実行時の挙動を断定せず、推論であることを明示してください。
  • メモ、所見、引き継ぎ情報に、秘密情報、Cookie、個人データを記載しないでください。

失敗した場合

エラーコード対応
not_foundまず対象を開きます(core_target_open)。またはパスや名前を確認します
feature_missing / engine_missing対応方法を読みます。必要なツールセット、エンジン、または設定が記載されています
over_limit結果が大きすぎて送信できませんでした。ページごとに取得するか、証拠 ID(evidence://<id> リソース)で読み込みます
stale_revisioncore_investigation_show で読み直し、マージしてから再試行します
consent_requiredユーザーに許可を求めます

完了する前に、各計画ステップを完了またはブロックとしてマークし、回答内のすべての結論が記録済みの所見と一致することを確認してください。未確認事項を列挙し、引き継ぎ情報を作成してください。

コメント