weed
Alliumの仕様と実装コードの乖離を検出し、解消を支援します。仕様とコードの整合性チェック、仕様ドリフトの監査、仕様とコードの同期など、実装が仕様通りかどうかを確認・修正したいときに使用してください。
description の原文を見る
Weed the Allium garden. Find where Allium specifications and implementation code have diverged, and help resolve the divergences. Use when the user wants to check spec-code alignment, compare specs against implementation, audit for spec drift or violations, sync specs with code or code with specs, or verify whether the implementation matches what the spec says.
SKILL.md 本文
Weed
あなたは Allium ガーデンの雑草取りをします。.allium 仕様を実装コードと比較し、乖離を発見して、その解決を支援します。
スタートアップ
言語リファレンスを読んで Allium の構文と検証ルールを学びます。- 関連する
.alliumファイルを読みます (指定されていない場合はプロジェクトから検索します)。 alliumCLI が利用可能な場合は、allium checkでファイルの構文が正しいことを確認します。- 対応する実装コードを読みます。
モード
呼び出し元のリクエストによって、以下の 3 つのモードのいずれかで動作します。
Check (チェック)。 仕様とコードの両方を読みます。すべての乖離をその位置とともに報告します。何も変更しません。
Update spec (仕様を更新)。 .allium ファイルを変更して、コードが実際に行っていることと一致させます。仕様は現在の動作の忠実な説明になります。
Update code (コードを更新)。 実装を変更して、仕様が説明していることと一致させます。コードは指定された動作の忠実な実装になります。
モードが指定されない場合は、デフォルトで check になり、すべての検出結果を報告します。
動作方法
仕様内の各エンティティ、ルール、またはトリガーについて、対応する実装を見つけます。コード内の各重要なコードパスについて、仕様がそれを説明しているかを確認します。両方向のミスマッチを報告します:仕様は X と言うがコードは Y を行っている、コードは Z を行うが仕様は無言である。
プロセスレベルのチェック
構造ごとの比較を超えて、プロセスレベルのプロパティをチェックします。
- コード内の遷移到達可能性。 仕様の遷移グラフで宣言された各遷移について、実装がそれをトリガーするコードパスを持つことを確認します。遷移が宣言されているがコードパスがそれを生成しない場合は、フラグします。
- サーフェストリガーカバレッジ。 外部刺激トリガーを持つ各ルールについて、実装が対応するエントリポイント (API エンドポイント、webhook ハンドラ、メッセージコンシューマ) を持つことを確認します。仕様が
BackgroundCheckResultReceivedがサーフェスで提供されていると言う場合、コードが対応するハンドラを持つことを確認します。 - コード内の宣言されていない遷移。 実装が仕様の遷移グラフで宣言されていない状態変更を生成するかどうかを確認します。コードがエンティティを状態 A から状態 C に遷移できるが、グラフが A → B → C のみを許可する場合、フラグします。
- 不変量の強制。 仕様内の式を持つ不変量について、実装がそれを強制するかどうかを確認します (データベース制約、アプリケーションレベルのチェック、テストアサーション)。強制が存在しない場合は、ギャップをフラグします。
- ボトムアップ処理の再構築。 ステータスフィールドを持つエンティティについて、コードから状態マシンをトレースします:どの状態が存在するか、コードが生成する遷移、それらをトリガーするアクター。再構築されたプロセスを仕様の遷移グラフと比較します。再構築されたプロセスをユーザーに検証用に提示します。「コードから見ると、Order のこのようなライフサイクルが見えます:placed → paid → shipped → delivered で、paid からのキャンセルも可能。仕様の遷移グラフはこれと一致していますが、paid からのキャンセルが含まれていません。これは仕様のギャップですか、それはコードのバグですか?」
プロセスレベルの乖離を構造レベルのものとともに報告します。チェック前に仕様の評価を読んで、仕様の成熟度を理解します。その開発レベルに達していない粗い仕様のプロセスレベルのギャップをフラグしないでください。
乖離の分類
ミスマッチを見つけたら、推論とともに分類を提案します。呼び出し元が確認するか上書きします。各乖離を以下のいずれかに分類します。
- 仕様のバグ。 仕様が間違っており、コードが正しい。仕様を修正します。
- コードのバグ。 コードが間違っており、仕様が正しい。コードを修正します。
- 志向的設計。 仕様は意図された将来の動作を説明しています。両方をそのまま残しますが、ギャップをメモします。
- 意図的ギャップ。 乖離は意図的です (例:仕様が実装の詳細を抽象化)。両方をそのまま残します。
エンティティまたはルール別にグループ化して乖離を提示します。
コードがサービス境界を超えて繰り返されるインターフェース契約を持つ場合 (例:複数の統合ポイント間で同じシリアライゼーション要件)、仕様が再利用用の contract 宣言を使用しているかを確認します。コードアサーションと不変量 (例:assert balance >= 0、クラスレベルのバリデータ) は仕様の不変量と一致すべきです。対応する invariant Name { expression } が仕様にない場合は、ギャップをフラグします。
仕様の更新ガイドライン
- 既存の
-- allium: Nバージョンマーカーを保持します。バージョン番号を変更しません。 - 言語リファレンスで定義されたセクション順序に従います。
- 実装ではなく動作を説明します。ストレージメカニズムや API 詳細を暗示するフィールド名を書いていることに気づいたら、言い換えます。
- 可変値 (しきい値、タイムアウト、制限) には
configブロックを使用します。ルール内にハードコードされた数値を入れません。 - 時間的トリガーは常に再発火を防ぐために
requiresガードが必要です。 - 関係には
withを、プロジェクションにはwhereを使用します。入れ替えないでください。 - フィールド間で比較されるインラインの列挙は、名前付き列挙に抽出する必要があります。
- 新しいルールまたはエンティティを追加する場合は、ファイル構造に従って正しいセクションに配置します。
- 他のサービスの config から派生した config 値 (例:
extended_timeout = base_timeout * 2) は、限定参照または仕様内の式形式のデフォルトを使用すべきです。
コード更新ガイドライン
- プロジェクトの既存のスタイル、構造、命名規則に従います。
- 変更後にテストを実行します。テストが失敗する場合、テストを無言で調整するのではなく、失敗を報告します。
- 直接のファイルを超えた影響を持つ変更をフラグします (例:API 契約の変更、データベース移行、ダウンストリームコンシューマ)。
- 最小限でターゲットを絞った変更を優先します。乖離の修正によって直接必要でない限り、周辺コードをリファクタしないでください。
- コード変更がマイグレーションまたはデプロイメントステップを必要とする場合、これを明示的に注記します。
境界
- 新しい仕様をスクラッチから構築しません。それは
elicitスキルに属します。 - コードから仕様を抽出しません。それは
distillスキルに属します。 skills/allium/references/language-reference.mdを変更しません。言語定義は別途管理されています。- アーキテクチャの決定を行いません。より広い影響をフラグして、呼び出し元に決定させます。
コンテキスト管理
仕様整合性チェックは多くの編集検証サイクルを必要とする場合があります。長い反復セッションを予想する場合、またはコンテキストが大きくなっている場合は、仕様の雑草取り専用に新しいチャットを開くようにユーザーにアドバイスします。再開できるようにコピペプロンプトを提供します。例えば:「weed スキルを使用して [Spec Name] 仕様と [Implementation Files] 間の乖離の解決を続けます。」
検証
.allium ファイルへのすべての編集後、CLI がインストールされている場合は、変更されたファイルに対して allium check を実行します。結果を提示する前に報告された問題を修正します。CLI が利用不可の場合は、言語リファレンスに対して検証します。CLI が最初に見つからない場合は、メモします:「言語リファレンスに対して検証します。自動チェックが必要な場合、CLI は Homebrew または crates.io で利用可能です。詳細は README を参照してください。」
乖離チェックの完了後、allium analyse が利用可能な場合は実行します。構造ごとの比較が見落とすプロセスレベルのギャップを特定するために検出結果を使用します。missing_producer 検出結果は、仕様のギャップ (コードが処理するが仕様がモデル化しない) またはコードのギャップ (誰も実装しなかったデータパス) を示す可能性があります。コードがそれに対処するかどうかを確認して、各検出結果を分類します。検出結果をドメインの質問に変換する方法については、検出結果の実行を参照してください。
出力形式
乖離を報告する場合 (チェックモード)、各検出結果について以下の構造を使用します。
### [Entity/Rule name]
Spec: [what the spec says] (file:line)
Code: [what the code does] (file:line)
Classification: [proposed classification with reasoning]
関連する乖離をグループ化します。最も重要な検出結果で始めます。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- juxt
- リポジトリ
- juxt/allium
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/juxt/allium / ライセンス: MIT
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。