Skip to content

#453 を実装する(スプリント m8b) - #471

Merged
takemi-ohama merged 2 commits into
sprint/m8bfrom
feat/issue-453-m8b
Oct 12, 2026
Merged

takemi-ohama merged 2 commits into
sprint/m8bfrom
feat/issue-453-m8b

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

補完が --context を取らない末端の道で --context を候補に出した場合に、テストが落ちるようにしました。あわせて、一致テストと実行テストが --context の余分を末端の道で比べることを仕様書に書き足しました(#453)。

利用者向けの変化

  • 無し

移行の手順

  • 無し

変更の要点

  • tests/cli/test_name_context_consistency.py で、一致テストが --context の余分を末端の道ごとに比べるようにしました。
  • tests/cli/test_zsh_completion_run.py で、--context を取らない末端の道で補完が --context を出すと、実行テストが落ちるようにしました。
  • docs/specifications/cli-argument-resolution.md に、上の 2 つのテストが末端の道で --context の余分を比べることを書きました。
  • 変更はテストと仕様書だけです。CLI の動きは変わりません。
  • 対象は 3 ファイルで、55 行の追加と 8 行の削除です。

テスト

ステップ 結果
test-limited exit 0。範囲テスト 1 本が通過(220.8 秒、戦略 local-full)
design-tests exit 3。#453 に設計文書が無いため、3 つの確認はどれも該当なしで止まりました

設計と違う点

  • 該当なし(設計文書が無い)

何を変えたか

  • 一致テスト(tests/cli/test_name_context_consistency.py)に、--context を取らない末端の道(子の parser を持たない parser の道から --context の集合を引いたもの。NO_CONTEXT_LEAF_PATHS)を足し、bash の補完が devbase <道> - で --context を出したら道を挙げて落ちる test_bash_completion_has_no_extra_context を足した
  • zsh の側は、zsh の補完の実際の候補を確かめるテストが無く、分岐の文字列はそろっていても候補が出ない退行を拾えない #455 の補完の実行テスト(tests/cli/test_zsh_completion_run.py)に不変条件 X1 の行(devbase <道> - の候補に --context が入らない)を足し、分岐の文字列でなく実際の候補で比べる。Request に exclude(含まれてはならない語)を足した
  • 親の道(project profile など)は、zsh の分岐が子の分岐を含み子の --context を拾うため、余分の比べ方から外す(シェル補完が --context を open と post-start でしか出さない #435 の設計の決定 5 のとおり)
  • 確定仕様 docs/specifications/cli-argument-resolution.md に、末端の道の集合・bash の比べ方・X1・(a) の位置の規則を書いた

今の補完の余分

無かった。今の補完で、--context を取らない末端の道 42 本のどれでも、bash も zsh も devbase <道> - で --context を出さない(補完のファイルは変えていない)。

手で確かめたこと

  • 受け入れ条件 1・2: bash の env set|delete|edit の分岐と zsh の env set の分岐へ一時に --context を足すと、test_bash_completion_has_no_extra_context(('env', 'delete'), ('env', 'edit'), ('env', 'set') を挙げる)と test_no_extra_context_on_leaf_without_it(devbase env set - を挙げる)が落ちた。戻した
  • 受け入れ条件 5: bash の exec|token) を token) にすると、従来の test_bash_completion_offers_context_after_path が落ちた。戻した。欠けの検査は変えていない
  • 受け入れ条件 3・4: 今の補完で tests/cli が全件通る(1068 passed)

設計と違えたところ

モード: standard / 通した工程: 実装 → 完了判定 → Pull Request

🤖 Generated with Claude Code

takemi-ohama and others added 2 commits October 12, 2026 23:42
一致テストに、子の parser を持たない末端の道から --context の集合を引いた
NO_CONTEXT_LEAF_PATHS を足し、bash の補完の余分を比べる。zsh は補完の実行テスト
に X1 の行を足し、実際の候補で余分を比べる。親の道は子の分岐を含むため比べない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@takemi-ohama
takemi-ohama marked this pull request as ready for review October 12, 2026 14:49
@takemi-ohama
takemi-ohama merged commit 0eb4af9 into sprint/m8b Oct 12, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant