コンテンツにスキップ

AIアシスタントとの連携

codeknitには、AIコーディングアシスタントが効果的に利用する方法を教える、すぐに使えるスキルが同梱されています。これらのスキルにより、アシスタントは手動でのプロンプトなしでコード構造の抽出、重複の検出、および構造分析を実行できます。

codeknitは2つのスキルを提供します:

  • codeknit-parse:アシスタントにコード構造(関数、クラス、メソッド、変数)と関係性(呼び出し、継承、包含)を.sktファイルに抽出する方法を教えます。
  • codeknit-fingerprint:ファジーハッシュを使用して重複および近似重複コードを検出する方法をアシスタントに教えます。

各スキルには、アシスタントが使用方法、フラグ、出力フォーマット、およびワークフローを理解するためにオンデマンドで読み込むドキュメントが含まれています。

スキルディレクトリをアシスタントのスキルフォルダにコピーします。

Kiroの場合:

Terminal window
cp -r skills/codeknit-parse ~/.kiro/skills/codeknit-parse
cp -r skills/codeknit-fingerprint ~/.kiro/skills/codeknit-fingerprint

Claude Codeの場合:

Terminal window
cp -r skills/codeknit-parse ~/.claude/skills/codeknit-parse
cp -r skills/codeknit-fingerprint ~/.claude/skills/codeknit-fingerprint

インストール後、アシスタントは自動的にcodeknitコマンドの呼び出し方法、適切なフラグの選択、および.skt出力の解釈方法を理解します。

codeknit-parseスキルは、アシスタントに以下を教えます:

  • さまざまなシナリオに適したフラグでcodeknit parseを実行する
  • 適切な出力モードを選択する:
    • directory-flat(デフォルト)ほとんどのプロジェクトに適している
    • inline 単一ファイルまたは小規模な入力に適している
    • directory-tree ソース構造をミラーリングする
  • .skt出力ファイルを読み取り、解釈する([symbols][edges]、およびオプションの[dict]セクションを含む)
  • 構造データをリファクタリング、依存関係マッピング、およびコードレビューに使用する
  • codeknit graph analyzeを実行して、より深いコード品質の洞察を得る(循環依存、ハブシンボル、god classesなど)

codeknit-fingerprintスキルは、アシスタントに以下を教えます:

  • 重複検出、DRY監査、およびリファクタリングの特定のためにcodeknit fingerprintを使用する
  • 適切な類似度範囲を選択する(--min-similarity--max-similarity
  • [duplicates]セクションを読み取り、近似重複コードを特定する
  • フィンガープリントは意味的な意図ではなく、構造的な形状を測定することを理解する
  • 必要に応じてOllama埋め込みと--rerankを使用して誤検出を減らす
  1. アシスタントにコードベースの構造を分析するよう依頼する
  2. アシスタントがcodeknit parse ./srcを実行し、結果の.sktファイルを読み取る
  3. アシスタントが構造的な質問に答える:依存関係、呼び出しチェーン、デッドコード
  4. より深い洞察のために、codeknit graph analyze ./srcを実行し、レポートを解釈する
[symbols]
## src/service.go
S1 type/struct L5-L8 AuthService {}
S2 callable/method L10-L15 Authenticate(token: string) {receiver=*AuthService}
[edges]
S1 --contains--> S2
  1. アシスタントに重複コードを見つけるよう依頼する
  2. アシスタントがcodeknit fingerprint ./srcを実行する
  3. アシスタントが出力の[duplicates]セクションを読み取る
  4. アシスタントがフラグ付けされたペアを調査し、統合を提案する
[duplicates]
S1, S2: 87% 類似度
S3, S4: 76% 類似度
  • 構造的な質問には、生のソースではなく.sktファイルを読み取る — これらはコンパクトで信頼性の高い形式で抽出された構造を含んでいる
  • codeknit graph analyzeを使用して、循環依存、ハブシンボル、および深い継承チェーンなどのコード品質の問題を発見する
  • 大規模なリファクタリングの前にcodeknit fingerprintを実行して、統合すべきコピー&ペーストされたコードを特定する
  • .sktフォーマットはトークン効率が良く設計されており、LLMのコンテキストウィンドウに最適である
  • 大規模なコードベースを処理する際には、--minifyを使用してトークン使用量をさらに削減する