Repository navigation
Releases: istb16/dev-orchestra
Release list
v1.2.1
1.2.1
プロジェクトごとに、役割(設計、実装、レビューなど)への指示を書いておけるようになりました(#350)。あわせて、Windows で書き換え中の状態ファイルが一瞬「無い」と読まれることがあった不具合を直しました(#358)。互換性を壊す変更はありません。
足したこと:役割ごとの指示と、作業単位のテストの段取り
instructions.<role>に、役割ごとの指示を書けます。役割はorchestrator、architect、implementer、review_fixer、reviewers、design_reviewersです。その場に文章で書くか、{file: <path>}でリポジトリの中のファイルを指します。レビュアーの席ごとにも書けます- ほかのキーと違い、全体の設定とプロジェクトの設定の両方に書いた指示は、全体のものの後にプロジェクトのものを続けてつなげます
- CLI は、指示を
## Project instructionsの見出しでプロンプトに入れます。指示は CLI 自身の決まりの後に置かれ、それより弱いものとして扱われます。レビュアーへの指示は見る観点を足すことにだけ使え、指摘を出さない・種類を飛ばす・重大度を下げるといった指示には従いません - 読めないファイル、普通のファイルでないもの、32 KB を超えるもの、リンクを通るものは、指示なしで走り、
note:で知らせます - プロジェクトの設定や指示のファイルは、レビューする対象のブランチと一緒に来ることがあります。そのため、これらに触れる変更は高リスクとして扱います。プロジェクトの設定に書かれた指示は、
config validate、doctor、review runが役割ごとに知らせます implementation.unit_tests: after_mergeにすると、作業単位は lint と型の確認までにとどめ、テストは取り込んだ後にまとめて流します。データベースやポートを取り合うテストのためのものですimplementation.worktree_filesに、作業単位の worktree に写す、git が無視しているファイル(config/database.ymlなど)を書けますstatusに、指示の一覧(Instructions:)、オーケストレーターへの指示、Unit tests:の行が出ます。指示があるときは、承認待ちの行に「指示も見せて承認を求める」と出ます。summary、units status、config show、doctorにも出ます。--jsonには、キーを足しただけです
変えたこと
- 作業単位の worktree に写すファイル(CLI の設定ファイル、プロジェクトの設定、計画、決定事項)も、
implementation.worktree_filesと同じ確認を通すようにしました(#354)。リンク越しのものや、普通のファイルでないものは写さず、note:で知らせてcopies_skippedに記録します - 自分で書く adapter:
Provider.file_read_toolsで、CLI がファイルを読む道具の名前を複数書けます(#362)。既定はfile_read_toolから作るので、file_read_toolだけを設定している adapter はそのまま動きます
直したこと
- Windows で、書き換え中のファイルを読むと、一瞬「無い」と判断されることがありました(#358)。
os.replaceで置き換える間、ファイルの名前が一瞬どこにも無くなるためで、動いているジョブや状態が「無い」と読まれることがありました- 書き込みは
atomic_file.rename_overを通るようにしました。Windows 10 1709 以降では、名前を一度で差し替える置き換え(SetFileInformationByHandleの POSIX の流儀)を使います。対応していないボリュームでは、そのボリュームを覚えてos.replaceに戻ります - 読み込み(
read_json、read_text、read_text_strict)は、os.path.isfileではなく、開いた結果で「無い」と判断します。FIFO やデバイスは読みません - ウイルス対策ソフトが置き換えた直後のファイルをつかむと、読み込みが数秒待つことがあります。待った後は正しく読めます
- 書き込みは
- agy 1.4.7 で、ファイルを読む道具の名前が
read_file(引数はPath)になっていました。道具の使い方の報告(Read <path>)と、実機の確かめで、view_fileと両方を受け付けます(#362)
実機で確かめた CLI
- claude 2.1.309(architect のセッションの再開)
- codex 0.163.0
- agy 1.4.7
詳しくは CHANGELOG を参照してください。
v1.2.0
1.2.0
plan を「作業の単位」に分けて、単位ごとに、あるいは並べて実装できるようになりました(#343)。単位を書かない plan は、これまでどおり 1 回の実行で進みます。互換性を壊す変更はありません。
足したこと:作業の単位
- plan に
## Unitsの節(yamlの一覧)を書くと、作業を単位に分けられます。単位ごとにname、kind(feature、fix、refactor、docs、test、ci、integration)、files、depends_onを書き、単位ごとに### Unit: <name>の節を置きます units checkは、動かせない単位の分け方を断ります(終了コード 2)。たとえば、並べて動く 2 つの単位がファイルを共有している場合や、共有ファイル(implementation.hub_paths)を integration 以外の単位が触る場合です。問題がなければ、実行の順番を段(wave)ごとに出しますrun implementer --unit <name>で 1 つの単位を実行します。ほかの単位と並べて動くときは、今の作業ツリーから作ったその単位だけの git worktree の中で動き、並べる相手がいなければその場で動きます- worktree で動いた単位は
units merge <name>で取り込みます。ファイルごとにgit merge-fileを使い、作業ツリーだけを変えます。衝突したときは.ai/execution/units/<name>-conflicts.mdに説明を残して終了コード 7 で止まり、オーケストレーターがreview_fixerに解消させます。解消した後はunits merge <name> --resolvedで記録します - レビュアーには毎回、衝突を解消したファイルと、単位が自分の担当の外で変えたファイルを伝えます
units statusは単位ごとの状態と始められる単位を、units cleanは残った worktree の片付けを行います。jobs cancelは単位のジョブの worktree も消しますjobs waitに複数のジョブ ID を渡せるようになりました。すべての終わりを待ち、--anyを付けると最初の 1 つの終わりを待ちます。ID が 1 つのときの動きは変わりませんrun architect --unitとunits joinで、単位ごとに architect に設計させ、1 つの plan にまとめられます。レビューと承認はまとめて 1 回です- 新しい
implementationの節で、max_parallel(1〜8、既定 2)とhub_paths(既定はCHANGELOGのファイル)を決められます
変えたこと
- 1 つの plan の作業の単位は、まとめて implementer の試行 1 回分として数えます(#343)。plan のハッシュで最初の単位を実行したときに
budgets.implementerを 1 回使い、ほかの単位は追加なしで加わります。同じ回の中で単位をやり直したときだけ、もう 1 回使います。新しい plan のハッシュ(新しい承認)かbudget resetで次の回になります。run architect --unitも同じ考え方でbudgets.architectを使います。total_delegated_runsとmax_runtime_secondsはこれまでどおりすべての実行を数え、--unitなしのrunは 1 回使います。budget showは今の回を出し、--jsonにpassesを足しました - 作業の進め方の指示(
references/workflow.md)を、安く済むように見直しました。CLI の動きは変わりません- 設計の依頼では、短い plan を求めます。背景は
path:lineを挙げた箇条書き、テストは 1 行に 1 つ、手順ごとに触るファイルと関数を書きます。修正の依頼では、指摘のない節はそのまま残します - 実装の依頼では、手順に要るものだけを読み、lint と型の確認は手順ごとに 1 回にするよう求めます
- 実装の手順が 4 つを超える plan は、手順のまとまりごとに順番に動く作業の単位に分けます。数の上限はありません。その場で 1 つずつ動き、試行は合わせて 1 回分です
- 小さな実装や修正は、その役割に
lightの段があればそれで動かします
- 設計の依頼では、短い plan を求めます。背景は
- 実行がもういない作業の単位は、どこで読んでも失敗として記録するようになりました(#345)。これまでは
units cleanだけでしたが、units statusとrun implementer --unitでも、runningのまま担当のプロセスがいない単位をfailedにします。そのため、その単位を待っていた単位はunits cleanなしで始められます。run implementer --unitとunits joinは、plan の Files to Modify にない単位のファイルについて、units checkと同じwarning:を出します。単位の worktree に.claude/settings.local.jsonを写すのは、Claude がその単位を動かすときだけです - 自分で書く adapter:
Provider.worktree_files(既定())で、作業の単位の worktree に写す、git が無視しているファイルを指定できます(#345)
直したこと
- Windows で、日本語などの ASCII 以外の文字がパイプやファイルへの出力で化けていました。Python はパイプやファイルに ANSI コードページ(日本語の Windows では cp932)で書く一方、オーケストレーターは
jobs waitやjobs show --outputなどの出力を UTF-8 として読むため、任せたエージェントの日本語の返事が文字化けしていました。パイプとファイルへは UTF-8 で書くようにしました。コンソールへの出力は変わりません - このため PowerShell(5.1 も 7 も)で出力を取り込む場合(
$x = dev-orchestra ...や別のコマンドへのパイプ)は、[Console]::OutputEncodingを UTF-8 にしていないと、こんどはそちらで化けます。[Console]::OutputEncodingを UTF-8 にするか、前の出力にしたいときはPYTHONIOENCODING=cp932を設定してください。PYTHONIOENCODING、PYTHONUTF8、-X utf8を設定した場合は、常にそれに従います
実機で確かめた CLI
- claude 2.1.307(architect のセッションの再開)
詳しくは CHANGELOG を参照してください。
v1.1.2
1.1.2
長い実行の途中経過の知らせ方を設定で選べるようになり、止まっているかもしれない実行に気づけるようになりました(#330)。設定しなければ、途中経過の出し方はこれまでと変わりません。
足したこと
- 新しい
progressの節で、長い実行の間にオーケストレーターがユーザーへ何を伝えるかを決められますprogress.updates:auto(既定)はこれまでどおり。trueは architect の実行をすべて裏で動かし、review runもすべて--progress付きで裏で動かします。falseは「止まっているかもしれない」の知らせだけを残しますprogress.interval_seconds:途中経過を出す間隔(30〜3600 秒、既定 180)progress.quiet_notice_seconds:この時間(既定 600 秒、0で無効)新しいツールの行が出ない実行は、途中経過でmay be stuck: no new tool line for 12m03sのように知らせます。知らせるだけで、実行を止めることはしません
jobs showとjobs waitはこの知らせをnote:の行で出し、--jsonのactivityにquiet_secondsとmay_be_stuckを足しました。review run --progressはレビュアーごとに出します.ai/jobs/<id>.activityのツールの行に時刻tが付きます。止まっている時間はこれで測りますstatusにProgress:の行とprogressキーを、config showにProgress:の行を足しましたjobs waitを--timeoutなしで呼ぶと、60 秒ではなくprogress.interval_seconds(既定 180 秒)待つようになりました。--timeoutを付ければそちらが優先されます
変えたこと
config validateは、null を受け付ける設定の多く(review.parallel、design.require_approval、optimization.*、workspace.*、progress.*など)について、問題の文にor nullを添えるようになりました。例:review.parallel: must be true or false, or null。変わったのは文面だけで、受け付ける値と問題の並び順は同じです。config validate --jsonやdoctor --jsonの文面で照合しているスクリプトは、新しい文面に合わせてください- CI のテストを分けて走らせるようにしました。OS と Python の組ごとに、Windows は 3 つ、macOS と Ubuntu は 2 つのジョブに分かれ、
Tests (<os>, Python <version>, <part>/<parts>)という名前になります。すべてが通ったときだけTestsジョブが通ります。ブランチの保護で古いTests (<os>, Python <version>)を必須にしていた場合は、Testsを必須にしてください。macOS は Python 3.11 だけで試します tests/run_parallel.pyに--shard I/N、--timings PATH、--write-timings PATH、--split MODULE.CLASSを足しました。--shardなしで動かしたときは、これまでと同じテストを流します
直したこと
- Windows で Claude Code やエディターが
settings.jsonを開いていると、hooks installとhooks uninstallが「could not be written」で失敗していました。置き換えを最大 25 回やり直すようにしました。それでも失敗したときは、ファイルを元のまま残します reviewer set --roleで役割を変えたとき、その席の関連度のルールを外すようにしました(設定のウィザードと同じ動き)。外したことは知らせます。同じコマンドで--relevanceを指定した場合はその値を使い、alwaysは役割にかかわらず残します
実機で確かめた CLI
- claude 2.1.303、codex-cli 0.163.0(architect のセッションの再開)
詳しくは CHANGELOG を参照してください。
v1.1.1
1.1.1
実機の CLI で確かめるスクリプトの不具合を直したリリースです。プラグインとしての動きは 1.1.0 から変わりません。
直したこと
- 日本語の Windows の画面(cp932)で
scripts/smoke_live.pyを動かすと、すべての確認が終わってトークンを使った後、結果を表示するところで、画面に出せない文字(em dash など)のためにUnicodeEncodeErrorで止まっていました。結果が見られず、確認をやり直す必要がありました。dev-orchestraコマンドと同じ対策を入れ、出せない文字は\u2014のような形で表示するようにしました(#322)
実機で確かめた CLI
- claude 2.1.290、codex-cli 0.162.1、agy 1.3.5
詳しくは CHANGELOG を参照してください。
v1.1.0
1.1.0
設計の前に、決めるべき点をまとめてユーザーに質問できるようになりました(#319)。既定では無効で、設定しなければ動きはこれまでと変わりません。互換性を壊す変更はありません。
設計の前の質問
design.ask_questionsをautoかtrueにすると、オーケストレーターが要件について質問し、続いてrun architect --questionsで architect がコードを読んだうえでの質問を出します。どちらも plan を書く前に、まとめてユーザーに尋ねますautoは質問が必要なときだけ、trueは毎回 architect の質問を 1 回出してから設計します- 質問は
design questions recordで記録し、ユーザーの答えはdesign questions answerで残します。選んだ選択肢(--option)、ユーザー自身の言葉(--text)、「おまかせ」(--delegate)のどれかです - 未回答の質問がある間は、plan を書く
run architect、design approve、run implementerが新しい終了コード 6 で止まります - 決まった内容は
decisions.mdと plan の## Decisions節に残り、design レビューでは前提としてレビュアーに渡します。決定そのものへの指摘は、ユーザーに返します - 承認の後に答えを変えると、承認は無効になります(
decisions-changed) - 質問の回数は
design.max_question_rounds(既定 2)、architect の質問の実行回数はbudgets.architect_questions(既定 3)で制限します statusとstatus --json(design_questions)に質問の状態が出ます。止まる理由にはしませんdesign.require_approval: false(誰も見ていない実行)では、質問は出して記録しますが答えは待たず、未回答のものを architect に任せて進みます
実機で確かめた CLI
- claude 2.1.290、codex-cli 0.162.1、agy 1.3.5
詳しくは CHANGELOG を参照してください。
v1.0.0
1.0.0
dev-orchestra の最初の安定版です。ここから先はセマンティックバージョニングに従い、互換性を壊す変更は 2.0.0 で出します。
何ができるか、codex-plugin-cc との違い、Claude Code だけでも使う意味は、紹介記事にまとめました。
約束すること
一覧は README の「Compatibility」にあります。
- 設定の形式(
version: 1):キー、型、受け付ける値。既定値が変わるときは CHANGELOG の Changed に、前と後の値を書きます - コマンド、オプション、終了コード:足すことはあっても、消したり意味を変えたりはしません
--jsonの出力:キーは足すだけです。各コマンドのキーと値の一覧は references/json.md にあります.ai/の形式:足すだけです- 組み込みの adapter(claude、codex、agy、mock)の動き
- 自分で書く adapter:読み込みの決まりと、
references/providers.mdの最小の例が使う部分(resolve_latest、build_command、option_keysなど)
画面に出る文面、notes・warnings の文面、adapter のそれ以外の部分、.ai/ の内部のファイルは約束の対象外です。
0.24.0 からの変更
--jsonの出力の形をreferences/json.mdにまとめました- 古い名前の
_resolve_latestを定義したままの adapter に、doctorが気づいて名前を改めるよう伝えます。組み込みの adapter を継承したものも同じです - パスの一覧のない古いスナップショットは、
review runが断り、statusも取り直すよう伝えます。高リスクのパスに当たるレビュアーが、黙って外れることがなくなりました config setupは、resolve_latestのない adapter を adapter の失敗として伝えます
0.23.0 以前から上げる場合は、0.24.0 のリリースの「今までと変わること」もご覧ください。
実機で確かめた CLI
- claude 2.1.290、codex-cli 0.162.1、agy 1.3.3
詳しくは CHANGELOG を参照してください。
v0.24.0
1.0.0 に向けた整理
1.0.0 で守る互換性の約束を決め、古い版のためだけの処理を消しました。1.0.0 の前に互換性を壊す、最後のリリースのつもりです(#242)。
互換性の約束を決めました
- 約束の対象は、README の「Compatibility」の一覧にまとめました。CHANGELOG、CONTRIBUTING、各リファレンスはそこを指します
- 自分で書く adapter は、読み込みの決まりと、
references/providers.mdの最小の例が使う部分だけを約束します。それ以外のProviderの部分は、これまでどおり minor で変わることがあり、CHANGELOG の User adapters の項目に書きます state record、budget consume、progress recordもほかのコマンドと同じく約束の対象です- 隠しオプション
run --job-file、テスト用の環境変数、.ai/の内部のファイル、--jsonのnotes/warningsの文面は、約束の対象外と明記しました(#311)
今までと変わること
- 自分で adapter を書いている場合:
_resolve_latestをresolve_latestに改めてください。古い名前は呼ばれません(#311) config pruneはなくなりました。0.6.0 より前の、既定値をすべて書いた設定も、書いたとおりに読みます。上書きを消すにはconfig resetを使ってください(#312)- 0.23.0 より前に入れた Claude 用のコピー(
~/.claude/skills/dev-orchestra)が残っていると、インストーラとアンインストーラはそれに触れず、手で消すよう伝えて終わります。消してからインストールし直してください(#312) - 古い版が残したものは読みません:0.4.0 より前の
.ai/、0.4.2・0.9.0 より前の台帳やトークンの集計、changed_pathsのない古いスナップショットは、読み替えません(#312) high_risk_pathsは、既定と同じ並び(順不同)のときだけ既定とみなします(#312)
実機で確かめた CLI
- claude 2.1.290、codex-cli 0.162.1、agy 1.3.3
詳しくは CHANGELOG を参照してください。
v0.23.0
設定の書き間違いと、レビューの関門を緩める設定を知らせます
- 読まれないキーを知らせます:
reveiw:やreview.timout_secondsのような書き間違いは、これまで黙って無視されていました。config validateの Warnings、doctorの注記、config setの警告で、似ている正しいキーと一緒に知らせます。警告なので、終了コードやdoctor --strictは変わりません(#281) - プロジェクトの設定がレビューの関門を緩めていると知らせます:レビューを受けるブランチは、プロジェクトの設定ファイルも一緒に持ち込めます。
reviewersやreview.max_review_iterationsなどが、グローバルの設定や既定より緩い場合、config validate、doctor、review runで警告します。値はそのまま効きます(#279)
今までと変わること
-
design.require_approvalと、リポジトリの外を指すworkspace.dirは、グローバルの設定からだけ読みます。プロジェクトの設定に書いたものは無視し、警告します。計画の承認なしで進める設定を続けるには、次のように移してください(#279)dev-orchestra config set --scope global design.require_approval false -
ファイルを変える
runの、出力が止まったときの時間制限が 300 秒から 1200 秒になりました。実装役が 5 分を超えるテストを動かしているあいだに、止まったとみなされて打ち切られていました。レビュー役と読むだけの run は 300 秒のままです(#273) -
state record testとstate record re-testはokとfailedだけを受け付けます。failureやNGは合格と読まれ、テストが落ちたままレビューに進んでいました(#287) -
workflow removeは、使用中のワークフローを消しません。--forceで消せます(#285) -
review.re_review_severitiesとreview.parallelを検査します。[Critical, High]のように大文字で書いた重大度は、これまで何も止めていませんでしたが、書いたとおりに止めるようになります(#277) -
.dev-orchestra.yamlを持つサブディレクトリから動かすと、すべてのコマンドがその設定を読みます(#282) -
PyYAML がない環境では、タブで字下げした設定や、アンカー・エイリアス・タグ・ブロックスカラーを使う設定を、行番号を付けて断ります(#275、#278)
-
workspace.dirは空でない文字列でなければなりません(#281)
主な修正
- CLI が終わっても、残ったプロセスが出力を握っていると、run が止まらなかったのを直しました
- Windows で、npm が入れた
claude.cmdやcodex.cmdを起動できるようにしました - 日本語の Windows で、パイプで渡した UTF-8 のプロンプトが cp932 と読まれていたのを直しました
- 日本語の名前の未追跡ファイルや、大きな未追跡ファイルが、黙ってレビューの対象から落ちていたのを直しました
- 何も言わずに 0 で終わったレビュー役を、失敗したレビュー役として扱います
review triageを並べて動かしても、判定が失われないようにしました- インストーラとアンインストーラの、Git Bash や PowerShell での不具合をいくつか直しました
ほかにも多くの修正があります。0.22.0 以降の変更のレビューで見つかった指摘も直しています(#308)。
実機で確かめた CLI
- claude 2.1.290、codex-cli 0.161.0、agy 1.3.3
詳しくは CHANGELOG を参照してください。
v0.22.0
実装役の時間制限が 60 分になりました
これまで、設計役・実装役・修正役(run)とレビューは、同じ時間制限 review.timeout_seconds(30 分)を使っていました。実装役は 30 分を超えることがあり、伸ばそうとするとレビュー役の上限も一緒に伸びていました。run の時間制限をレビューと分けました(#258)。
run:
timeout_seconds:
orchestrator: 1800
architect: 1800
implementer: 3600
review_fixer: 1800- 実装役の既定は 3600 秒(60 分)、ほかの役は今までどおり 1800 秒です
dev-orchestra config set run.timeout_seconds.implementer 5400のように、役ごとに変えられます。プリセットを選び直しても消えません--timeoutを付けると、その回だけ上書きできますconfig showの「Deadlines」で、役ごとの時間制限と、それを決めたファイルが見られます- 時間切れのときのメッセージに、効いた設定と、
--timeoutで伸ばせることが出ます
今までと変わること
review.timeout_seconds は、レビュー役(review run と run <レビュー役のid>)だけに効くようになりました。この設定を変えていた場合は、run の時間制限が変わります。
- 実装役のために 3600 などに上げていた場合: 実装役は既定で 3600 のまま。設計役・修正役は 1800 に戻ります。レビュー役のために上げたのでなければ、
review.timeout_secondsを下げ直してください - 900 などに下げていた場合:
runは 1800(実装役は 3600)に延びます。前の上限を残すにはrun.timeout_seconds.<役>を設定してください - 1800 のままの場合: 実装役だけが 3600 になります
出力が止まったときの時間制限(review.idle_timeout_seconds、300 秒)は、今までどおり両方に効きます。
実機で確かめた CLI
- claude 2.1.290、codex-cli 0.160.0、agy 1.3.0
詳しくは CHANGELOG を参照してください。
v0.21.0
返事の言語を設定できます
dev-orchestra を使うと、英語の資料を読んだあとに、オーケストレーターの返事が英語にずれることがありました。決まりを書くだけでは防げなかったため、返事の言語を設定で持ち、Claude Code のフックで守らせるようにしました(#254)。
dev-orchestra config set language.reply jalanguage.replyに言語のタグ(ja、es、zh-TWなど)を書くと有効になります。書かなければ、今までと何も変わりません- 設定すると、あなたの Claude Code の設定(
~/.claude/settings.json)にフックが入ります。何を書いたかを表示し、元のファイルをsettings.json.dev-orchestra-backupに残します。書き込みたくないときは--no-hooksを付けます config setup --language <タグ>、ウィザードの最後の質問、dev-orchestra hooks install|uninstall|statusでも扱えます- フックは、dev-orchestra を使った会話だけで動きます。発言のたびに設定した言語で答えるよう念押しし、返事が違う言語なら 1 回だけ書き直させます。コード、パス、引用などは英語のままで構いません
- 文字で見分ける 20 言語(日本語、中国語、韓国語など)と、よく使う語で見分ける 6 言語(英語、スペイン語、フランス語、ドイツ語、ポルトガル語、イタリア語)を判定します。ほかのラテン文字の言語は念押しだけです
language.rewrite: falseで書き直しを止め、念押しだけにできます- フックは次の会話から効きます。Claude Code だけで動き、Codex と Antigravity では効きません
互換性の約束をまとめました
1.0.0 に向けて、何を守るかを README の「Compatibility」(日本語の README は「互換性」)にまとめました(#242)。
- 守るもの: 設定の形式、コマンドとオプションと終了コード、文書にある環境変数、
--jsonの出力(項目は足すだけ)、.ai/の形式、組み込みの adapter の動き、Python の最低の版と対応するプラットフォーム - 守らないもの: 自分で書く adapter の土台
Provider、人が読む出力、保守用のスクリプト、内部のモジュールなど
古い版からの移行をやめました
- 0.4.0 より前の平らな
.ai/(.ai/plan.mdなどが直下にある形)は、取り込まなくなりました。見つかるとコマンドは止まり、どうすればよいかを表示します。ファイルは動かしません。取り込みたいときは、先に 0.20.0 を一度動かしてください - 0.4.1 以前の予算の記録の古い項目名
workflowは読みません - これが 1.0 の前の最後の互換性を壊す変更の予定です
確認した CLI のバージョン
claude 2.1.290 で、設計役のセッションの継続を確認しました。codex 0.160.0 と agy 1.2.17 も、実機の確認に通っています。
詳しくは CHANGELOG を見てください。