mcpField
D
decodie-flag-stale

decodie-flag-stale

github.com/owenbushテスト・品質1245 回インストール9 週間前に更新
リポジトリ

decodie-flag-stale について

Decodie Flag Staleは、Gitのファイル名変更を基に`.decodie/index.json`の検証済みエントリーを調べ、影響を受けた項目をstaleにするCI向けモードです。ソースファイルの読み込みやハッシュの再計算は行いません。

主な機能

  1. 01ソースファイル名とGit変更の比較
  2. 02変更された項目をstaleに設定
  3. 03`.decodie/index.json`のみ更新
  4. 04未検証またはソースなしの項目を除外
  5. 05アンカーハッシュを再計算せず実行

活用シーン

  1. 01ファイル変更の影響を受ける検証済み項目の特定
  2. 02CIでの軽量なstaleチェック
  3. 03stale項目と未検証項目数の確認

インストール

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

$npx skills add https://github.com/owenbush/decodie-skill --skill decodie-flag-stale

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

詳細

Decodie — 古い状態のフラグ付け

verify モードに代わる、高速で CI に適したモードです。verified_sha がある各エントリーについて、その SHA 以降にソースファイルが変更されているかを確認し、変更されているエントリーに stale: true を設定します。ソースファイルを読み込んだり、アンカーハッシュを再計算したりせず、ファイル名と Git 履歴を照合するだけです。

このモードで変更されるのは .decodie/index.json のみです。

有効化

引数は不要です。常にインデックス全体を対象にします。

セットアップ

  1. .decodie/ が存在することを確認します。存在しない場合:「.decodie/ ディレクトリが見つかりません — 確認するものはありません。」と表示して終了します。
  2. Git リポジトリであることを確認します。
    git rev-parse --git-dir
    
    Git リポジトリでない場合:「Git リポジトリではありません — flag-stale には Git 履歴が必要です。代わりに verify モードを実行してください。」と表示して終了します。
  3. .decodie/index.json を読み込みます。エントリーがない場合:「確認するエントリーはありません。」と表示して終了します。

検出プロセス

各エントリーについて:

  1. verified_sha がないエントリーはスキップします。 unverified として報告します。
  2. sources がなく、references[].file にも代替情報がないエントリーはスキップします。 no-sources として報告します。
  3. 変更されたファイルを計算します。
    git diff --name-only <verified_sha>..HEAD
    
    Git が SHA を認識できない場合(履歴が書き換えられている場合)は、古い状態として扱います。
  4. 照合します。 変更されたファイルとエントリーのソースファイルを比較します。一致するものがあれば、そのエントリーは古い状態です。
  5. 更新します。
    • 新たに古い状態になった場合 → stale: true を設定します。verified_sha は変更しません。
    • すでに古い状態の場合 → 変更しません(件数には引き続き含めます)。
    • 差分にソースファイルがない場合 → stale はそのままにします。古い状態を解除して最新の状態に戻してはいけません。それができるのは verify モードだけです。

更新内容を index.json に書き戻します。

レポート

Decodie flag-stale
  Newly stale:  N entries
  Already stale: M entries
  Fresh:        F entries
  Unverified:   U entries (no verified_sha -- run verify mode)
  No sources:   K entries

新たに古い状態になったエントリーがある場合は、一覧表示します。

Newly stale:
  - entry-1711540000-a1b2 -- src/lib/foo.ts
  - entry-1711540123-c3d4 -- src/lib/bar.ts, src/lib/baz.ts

重要な注意事項

  • フラグは一方向です。 stale を true にするだけです。解除するには verify モードが必要です。
  • ソースファイルは読み込みません。 git diff --name-only の結果だけに基づきます。これにより、CI で十分な速さを実現しています。
  • 終了コードのポリシーはありません。 古い状態のエントリーによって PR をブロックするかどうかは、リポジトリごとに決めます。
  • Git 履歴は書き換えません。 読み取り専用の Git コマンドのみを使用します。

コメント