Retrospective: v0.3.5
v0.3.4 で暫定 skip した Linux CI bats テスト 8 件(tests/token.bats 7 件 + tests/jailrun.bats 1 件)を全件解除し、根本原因(dash bashism 不整合)を特定して両 OS green を達成した patch リリース。Issue #66 を close。
サイクル概要
Keep(継続したい良いプラクティス)
- findings.md による失敗ログ→根本原因の構造化分析
bats 失敗 8 件を 4 分類(exit_code_diff / shim_resolution_failure / assertion_compatibility / other)+ precondition_gate フラグ + Self-Healing 履歴で記録した。次サイクル以降の Linux CI 系問題に対する型として活用可能。
- patch リリース最小スコープの徹底
shebang 4 ファイル変更(tests/token.bats / tests/jailrun.bats の skip ガード除去 2 + bin/jailrun / lib/token.sh の shebang 変更 2)のみで両 OS green を達成。アプリ機能拡張やリファクタを混ぜずに限界を見極めた。
- Operations での AI レビュー指摘判断
codex の P1 指摘(POSIX 互換性後退)を Unit 001 の意思決定 + Intent スコープ + プロジェクト前提(minimal Linux image 対象外)で OUT_OF_SCOPE 判断した。Construction の意思決定を Operations で覆さない原則を実践。
Problem(顕在化した課題)
Problem 1: Construction codex と Operations codex の評価軸ずれ
主因切り分け: 両方に責任
- Construction Phase の codex 統合レビューは shebang 変更を auto_approved(unresolved_count=0)通過させたが、Operations Phase の codex review が同じ変更を P1(POSIX 互換性後退)として指摘。
- レビュー観点が Phase 間で統一されておらず、Operations で「Construction の意思決定を覆す指摘」が出る構造になっている。
- プロダクト側: Intent / Unit 定義の前提条件(対象環境、minimal Linux image 非対応 等)の明示で軽減可能。
- AI-DLC 側: Operations codex review の focus / プロンプト設計を「リリース承認・ポータビリティ後退・破壊的変更検出」に絞る設計改善の余地あり(→ Try 1 で mirror 送信)。
Problem 2: shebang 選択の意思決定が findings.md のみ、コード/HISTORY からは追跡不可
主因切り分け: プロダクト固有
/bin/bash 絶対パス採用理由(tests/ruleset.bats の PATH isolation で /usr/bin/env bash が解決できず exit 127)が .aidlc/cycles/v0.3.5/findings.md §4 Retry 1 にのみ記載されている。
.aidlc/cycles/ は untrack 方針のため、将来の保守者が bin/jailrun の shebang を見て「/usr/bin/env bash の方が一般的では?」と書き換えるリスクがある。
- → Try 2 で次サイクル chore PR 候補化。
Try(次サイクル以降で試す改善)
Try 1: Operations codex review プロンプトの focus 絞り込み
主因切り分け: AI-DLC Starter Kit 固有 / mirror 送信予定
Operations Phase の codex review 呼び出しに「リリース承認・ポータビリティ後退・破壊的変更検出に絞る」focus を明示する。Construction で意思決定済みの設計選択(shebang / 言語選択 / 依存関係 等)は審査対象外と明示することで、Operations が Construction の決定を覆す指摘を出す確率を下げる。
Try 2: shebang 選択理由のコード/HISTORY 追記
主因切り分け: プロダクト固有
bin/jailrun / lib/token.sh のヘッダーコメントに「/bin/bash 絶対パス: tests/ruleset.bats PATH isolation 対応」を 1 行追記。
- HISTORY.md v0.3.5 エントリの "Production" 節にも「
#!/usr/bin/env bash 不採用理由」を 1 文補完。
- 次サイクルの小規模 chore PR 候補。
Try 3: POSIX 互換性チェックの位置付け再整理
主因切り分け: プロダクト固有
tests/posix_compliance.bats が bin/jailrun を sh -n で構文チェックしている。今回 shebang を #!/bin/bash 化したが sh -n チェックは構文のみ(ランタイム動作と独立)で、実際の実行時シェル(bash)とは異なる。
- 「
bin/jailrun の構文は POSIX 互換、ランタイム挙動は bash 依存」の意図を testfile or README に明記する案。次サイクル以降のバックログ候補。
クローズした関連 Issue
関連 Issue(次サイクル以降)
- Try 2 → 次サイクル chore PR で対応(バックログ Issue 化予定)
- Try 3 → 次サイクル以降の改善候補(バックログ Issue 化予定)
備考
feedback_mode=mirror 設定。Problem 1 と Try 1 は AI-DLC Starter Kit 側に mirror 送信予定(/aidlc feedback)。
- 振り返り対話は
.aidlc/rules.md の「振り返り対話必須ルール」に従い AskUserQuestion 経由で項目ごとに実施した。
Retrospective: v0.3.5
v0.3.4 で暫定 skip した Linux CI bats テスト 8 件(
tests/token.bats7 件 +tests/jailrun.bats1 件)を全件解除し、根本原因(dash bashism 不整合)を特定して両 OS green を達成した patch リリース。Issue #66 を close。サイクル概要
Keep(継続したい良いプラクティス)
bats 失敗 8 件を 4 分類(
exit_code_diff/shim_resolution_failure/assertion_compatibility/other)+precondition_gateフラグ + Self-Healing 履歴で記録した。次サイクル以降の Linux CI 系問題に対する型として活用可能。shebang 4 ファイル変更(
tests/token.bats/tests/jailrun.batsの skip ガード除去 2 +bin/jailrun/lib/token.shの shebang 変更 2)のみで両 OS green を達成。アプリ機能拡張やリファクタを混ぜずに限界を見極めた。codex の P1 指摘(POSIX 互換性後退)を Unit 001 の意思決定 + Intent スコープ + プロジェクト前提(minimal Linux image 対象外)で OUT_OF_SCOPE 判断した。Construction の意思決定を Operations で覆さない原則を実践。
Problem(顕在化した課題)
Problem 1: Construction codex と Operations codex の評価軸ずれ
主因切り分け: 両方に責任
Problem 2: shebang 選択の意思決定が findings.md のみ、コード/HISTORY からは追跡不可
主因切り分け: プロダクト固有
/bin/bash絶対パス採用理由(tests/ruleset.batsの PATH isolation で/usr/bin/env bashが解決できず exit 127)が.aidlc/cycles/v0.3.5/findings.md§4 Retry 1 にのみ記載されている。.aidlc/cycles/は untrack 方針のため、将来の保守者がbin/jailrunの shebang を見て「/usr/bin/env bashの方が一般的では?」と書き換えるリスクがある。Try(次サイクル以降で試す改善)
Try 1: Operations codex review プロンプトの focus 絞り込み
主因切り分け: AI-DLC Starter Kit 固有 / mirror 送信予定
Operations Phase の codex review 呼び出しに「リリース承認・ポータビリティ後退・破壊的変更検出に絞る」focus を明示する。Construction で意思決定済みの設計選択(shebang / 言語選択 / 依存関係 等)は審査対象外と明示することで、Operations が Construction の決定を覆す指摘を出す確率を下げる。
Try 2: shebang 選択理由のコード/HISTORY 追記
主因切り分け: プロダクト固有
bin/jailrun/lib/token.shのヘッダーコメントに「/bin/bash絶対パス:tests/ruleset.batsPATH isolation 対応」を 1 行追記。#!/usr/bin/env bash不採用理由」を 1 文補完。Try 3: POSIX 互換性チェックの位置付け再整理
主因切り分け: プロダクト固有
tests/posix_compliance.batsがbin/jailrunをsh -nで構文チェックしている。今回 shebang を#!/bin/bash化したがsh -nチェックは構文のみ(ランタイム動作と独立)で、実際の実行時シェル(bash)とは異なる。bin/jailrunの構文は POSIX 互換、ランタイム挙動は bash 依存」の意図を testfile or README に明記する案。次サイクル以降のバックログ候補。クローズした関連 Issue
.aidlc/operations.mdの導入検討)」を v0.3.5 Retrospective でクローズ判断。完了条件(方針決定 /.aidlc/operations.md導入 /01-setup.mdステップ8 整合)はすべて v0.3.4 + v0.3.5 で満たされている。関連 Issue(次サイクル以降)
備考
feedback_mode=mirror設定。Problem 1 と Try 1 は AI-DLC Starter Kit 側に mirror 送信予定(/aidlc feedback)。.aidlc/rules.mdの「振り返り対話必須ルール」に従い AskUserQuestion 経由で項目ごとに実施した。