Skip to content

Retrospective: v0.3.5 #73

@ikeisuke

Description

@ikeisuke

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(継続したい良いプラクティス)

  1. findings.md による失敗ログ→根本原因の構造化分析
    bats 失敗 8 件を 4 分類(exit_code_diff / shim_resolution_failure / assertion_compatibility / other)+ precondition_gate フラグ + Self-Healing 履歴で記録した。次サイクル以降の Linux CI 系問題に対する型として活用可能。
  2. patch リリース最小スコープの徹底
    shebang 4 ファイル変更(tests/token.bats / tests/jailrun.bats の skip ガード除去 2 + bin/jailrun / lib/token.sh の shebang 変更 2)のみで両 OS green を達成。アプリ機能拡張やリファクタを混ぜずに限界を見極めた。
  3. 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.batsbin/jailrunsh -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 経由で項目ごとに実施した。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions