v0.21.2
状態管理ダッシュボードが「完了済みのプロジェクトを未着手として表示する」問題を修正したパッチリリースです。あわせてダッシュボード全体の網羅性を点検し、9 件の不整合を修正しました。
ハイライト
完了済みプロジェクトが全て pending と表示される問題を修正
フェーズのステータスは進捗レジストリ (work/pipeline-progress.json) が無条件に優先していました。しかしこのレジストリを書くのは、各 SKILL.md 末尾の「pipeline-progress.json を completed に更新する」という緩い手順です。実際には頻繁に飛ばされ、オーケストレータ経由でない単独実行では最初から走りません。
その結果、未更新のフェーズは初期値の pending に留まり続け、23 フェーズ全ての成果物がディスク上に存在するプロジェクトが 2/23 完了 と表示されていました。各行は自己矛盾しています。
フェーズ 2/23 完了 ##.................. pending 21 | completed 1 | skipped 1
調査 0/1
`- investigate [====] 4/4 ! o pending 84d前 ← 4/4 書けているのに pending
分析 0/2
+- analyze [====] 4/4 ! o pending 84d前
評価 0/3
+- evaluate-mmi [====] 2/2 ! o pending 84d前
pending はレジストリの初期値であって、何も主張していない値です。全フェーズがそこから始まり、スキルがスタンプを忘れれば居残るだけ。一方 in_progress / completed / failed / skipped はスキルが実際に行った主張です。
この非対称性を反映し、pending は実在する宣言済み出力に負けるようになりました。他の記録済みステータスは従来通り優先されます。
フェーズ 16/23 完了 ##############...... pending 4 | completed 15 | skipped 1 | stale 3
調査 1/1
`- investigate [====] 4/4 ! * completed 84d前
分析 1/2
+- analyze [====] 4/4 ! * completed 84d前
レビュー 5/7
`- review-synthesizer [====] 2/2 ! @ stale 84d前
レポート 0/2
+- report [====] 1/1 ! @ stale 57d前
食い違い自体はドリフト (!) として引き続き表示されるため、レジストリ未更新が黙って隠蔽されることはありません。
副次的に stale 判定の連鎖も復活しました。 pending のフェーズは stale になり得ないため、レジストリ未更新の箇所では v0.21.1 で入れた無効化の伝播が丸ごと抑制されていました。上の例では review-scalardb が 48 日前に書き直されたことが効いて、review-synthesizer → report → review-report が stale として現れています。これは今まで完全に見えていなかった実在の信号です。
ダッシュボード網羅性の点検 (9 件)
- 2 つのタブが矛盾しなくなった — バックログビューのパイプライン行は進捗レジストリを直接数えていたため、合計が「レジストリに記載されたフェーズ数」になり stale も無視していた。同じ画面で片方が
pipeline 2/5、Tab 1 回で切り替わるもう片方がフェーズ 2/24 完了と表示される状態だった。パイプラインビューと同じ状態レイヤーで導出するようになった - キー凡例と日本語ラベルの追従 —
Tab・a・?は動作していたのに下部バーに無く、ヘッダの 4 ラベルが--lang=jaでも英語のままだった - フィルタが
--jsonにも効く — 適用内容をfiltersオブジェクトに記録 - 不正な
--phase/--epicは終了コード 2 — 従来は空のツリーを表示して 0 で終了しており、「そのフェーズが空」と読めてしまっていた。実在するフェーズ / Epic ID を stderr に列挙する - 更新ポーリングが 3 階層下まで見る — architect が実際に書く深さ 3 のレポート上書きを検知できていなかった
- 拡張ティアが SKILL.md の約束通りの出力を宣言 — 進捗バーが 0/1 や 1/1 しか出せなかった。
report-token-costを 15 番目のメンバーとして追加 investigate-securityの出力ファイル名からコロンを除去 —architect:investigate-security.mdは kebab-case 規約外で、実際にマッチし得なかった。security-assessment.mdに変更
テスト
tools/nexus-status.test.sh を新設し、スクラッチプロジェクト上で CLI の契約を検証します(プロジェクト解決と終了コード 0/1/2、--view=auto の選択、--md のフロントマターと --ascii の純度を含む全出力モード、フィルタによる絞り込み、2 ビュー間の一致、更新ポーリングの検知)。pipeline_status_data.test.py には未スタンプ pending の契約と拡張ティアの検証を追加。全 8 スイート pass。
アップグレード
/plugin marketplace update nexus-architect
3 プラグイン (product / architect / scalardb) は同一バージョンで一括リリースされます。スキルの呼び出し方や出力構造に破壊的変更はありません。
Full Changelog: v0.21.1...v0.21.2