GitHub Agentic Workflows
loopkeep の workflow 形式は GitHub Agentic Workflows(gh-aw)で、ローカル実行向けに 拡張しています。gh-aw のファイルを loopkeep に持ち込み、GitHub Actions に届く前に 実行できますし、loopkeep の workflow を gh-aw にエクスポートすることもできます — 移行で 何が生き残るかの正直なレポート付きで。
互換性の契約
- gh-aw に存在するキーは gh-aw での意味を持ちます。再解釈は決してしません — のちに 上流が loopkeep も欲しかったキーを追加したら、上流の意味が勝ちます。
- loopkeep はキーを 追加 するだけです。ローカルのトリガー種別、ローカルの
safe-outputs、そして
x-loopkeepの下にネストした設定です。 - 未知のキーは保持され警告されます。捨てられることはありません。ファイルは そのまま往復します。
インポート
lk import <gh-aw-file>
gh-aw の workflow を workspace に取り込み、そこに manual トリガーを足します。ファイルが何を
宣言していても、ほかのトリガーがここで発火できるかどうかにも関係なく、常に足します。これが
一番効くのは、トリガーが GitHub のイベントだけの workflow です。それらがこのマシンに届くのは
Console とペアリングして GitHub を接続したあとなので、それまでは足された
manual が「push する前にこのマシンで試す」を成り立たせます。これは act が GitHub Actions に
対して果たす役割と同じです。
エクスポート
lk export --to-gh-aw <workflow> # 人が読めるレポート
lk export --to-gh-aw <workflow> --json
gh-aw へのエクスポートは決して静かに劣化しません。workflow の各部は 3 つのバケットのいずれかに入り、 レポートがどれかを示します:
| バケット | 意味 | 例 |
|---|---|---|
| green | そのまま通る | schedule、engine、GitHub ネイティブの safe-outputs |
| yellow | 変換され、意味は保たれる — 変換内容は明示される | on_limit: replace → cancel-in-progress: true、on.github → 素の gh-aw イベント(フィルタと repos は落ちる) |
| red | 等価物がない — lost として列挙され、エクスポートは続行する | file-watch、run-completed、on.slack、on.webhook、ローカルの safe-outputs |
この脱出口の要点は、離れることの代償を事前に知ることです。workflow がローカルの トリガーに頼っているなら、red のリストが、その振る舞いのどの部分が Actions に付いて こないかを正確に教えます。