🧂

Kiroとの協働を快適にする.kiro/steering活用法

に公開

フィッツプラスシステム開発部の柿久保です。

先日から話題となっているKiroですが、個人的に作っていたリポジトリのメンテをするのに使ってみたりしています。現在はWaitlistで待っている方も多いとのことですが、そのうち緩和されてみんな使えるようになるといいなと思ってます。
Kiroと仲良く作業をすすめる為の、ちょっとしたトピックを紹介します。

コーディングスタイルガイドを用意する

リポジトリルート直下からコーディングスタイルガイドを.kiro/steering/coding-style.mdとして用意すると作業が捗ります。
作業していてちょっと躓きがちだったけど、解消できた事例を今回は2つだけご紹介します。

「gitコマンドで処理が止まってしまう問題」に対処する

git diffgit logをKiroから実行してもらう時によく遭遇するのですが

lesskiro

上の画像の左下部分にあるように、ページ送りの操作を待つ状態になってしまいます。

これはgitのcore.pagerのデフォルトの挙動で、出力が1画面に収まりきらない場合にはページャー(PAGER)にlessなどを使ってページ送りしてくれるような挙動になります。

通常のターミナル操作ではありがたい限りなのですが、Kiroの作業においては
「なんか任してた作業が全然すすまない」「あれ?よくみるとページ送りしないといけないじゃん」みたいな状態になっていて不便です。
いつもこれに遭遇したら「ページ送りを最後までしきる」か「qとタイプしてページャを終了させる」か、を「これ面倒だなあ」と思いながらやってました。

こういうのもコーディングスタイルガイドに以下のように記載しておけば解決してくれます。

.kiro/steering/coding-style.md
## gitコマンドの実行ルール

### ページャー無効化

- Kiroからgitコマンドを実行する際は、必ず `--no-pager` オプションを使用する
- これによりページャー(less、more等)による処理の停止を防ぐ
- 例: `git --no-pager diff`, `git --no-pager log --oneline`, `git --no-pager status`

### 理由

- Kiroの非対話的な環境では、ページャーが有効だとコマンドが停止してしまう
- `--no-pager`により出力が直接表示され、処理が継続される

今のところ、gitの操作に--no-pager付きで実行してくれるようになったので楽になりました。

「コミット時やPR作成時にターミナルが停止してしまう」問題に対処する

これもよく遭遇していた問題でした。
以下のようなコミットメッセージをKiroから実行するようなシチュエーションで

git commit -m "
`test message`
.
.
.
"

もしくはghコマンドで

gh pr create --title "title is .." --body "
このPRでやりたいこと
- `機能A`
- `機能B`
.
.
.
" 

-m--title--bodyで指定されている文字列がダブルクォート(")で括られていることが多かったです。 普段問題ないことの方が多いのですが、git commitghの引数に$`が使われていると、文字列展開やシェルの実行として解釈されるせいか、ターミナルが固まってしまう事象に頻繁に遭遇していました。

これも以下のように指示しておくことで回避できます。

.kiro/steering/coding-style.md
### 文字列の引用符

#### git のコミットログ

- コミットメッセージは常にシングルクォート(')を使用する
- ダブルクォート(")は使用しない
- gh コマンドなどでの--title に対しても引数はシングルクォート(')を使用する

こちらを記載してからはgitghコマンドで固まることがなくなりました。

余談

Kiroの由来について述べられている投稿がありました。

Kiro, meaning "crossroads" in Japanese (きろ), perfectly embodies the intersection where traditional development meets AI powered acceleration.
訳: 日本語で「交差点」を意味する「きろ」は、従来の開発とAIを活用した加速が出会う交差点を完璧に体現しています

「岐路」なんですね ⛰️👻🌊

ARMテックブログ

Discussion