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 に取り込みます。loopkeep がローカルで動かせないトリガー (GitHub がホストするイベントトリガー。Console 経由で届かない 限り)は、失敗するのではなく手動で実行できるようになります — だから「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 |
| red | 等価物がない — lost として列挙され、エクスポートは続行する | file-watch、run-completed、ローカルの safe-outputs |
この脱出口の要点は、離れることの代償を事前に知ることです。workflow がローカルの トリガーに頼っているなら、red のリストが、その振る舞いのどの部分が Actions に付いて こないかを正確に教えます。