Skip to content

build-proposal.py: 出力の名前で拒むのは前後の空白だけだと文言を直す(#442) - #485

Merged
hdknr merged 2 commits into
mainfrom
issue/442-proposal-strip-wording
Oct 28, 2026
Merged

hdknr merged 2 commits into
mainfrom
issue/442-proposal-strip-wording

Conversation

@hdknr

@hdknr hdknr commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Fixes #442

build-proposal.py の bad_out が拒むのは前後に空白のある名前だけで、名前の途中の空白は通る。ところが docstring(終了コード 2 の行)・bad_out の文言・references/tree.md は「空白・改行を含む」と言っていた。判定は正しいので、文言のほうを判定に合わせた。

計画と受入基準: docs/plans/issue-442.md

不在の周(/dev-loop:cruise 474 --absent)。このリポジトリではマージがサイトを再デプロイするので、不在の線「マージ」が効かない(#476)。PR までで止める。

🤖 Generated with Claude Code

hdknr and others added 2 commits October 28, 2026 09:38
docstring・bad_out の文言・references/tree.md は「空白を含む名前は 2」と言っていたが、
判定は前後の空白だけで、名前の途中の空白は通る。判定は変えず、文言を合わせた。
途中の空白が通ることと、末尾の空白が 2 になることを試料に足し、途中の空白も拒む変異を殺す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hdknr

hdknr commented Oct 28, 2026

Copy link
Copy Markdown
Owner Author

レビュー結果(dev-loop 手順 6)

直す線: 既定(出所: cruise の確かめた線。台帳 issue-474)

関門

関門 パス 結果
Verifier(dev-loop:dev-loop-verifier・sonnet) 1 パス目 反証 0 件(軽微な点 1 件)
/code-review(high) 1 パス目 不具合 0 件・指摘 6 件(テストの網羅と文言)
  • 2 パス目: 該当なし。 1 パス目の指摘対応で、成果物の差分は 0 行だった。既定の線で「直す」の行が 0 件だったため。確かめ方: 起点 48165d2 から git diff 48165d2 -- ':(top)' ':(top,exclude)docs/plans/issue-442.md' が空で、git status --porcelain には計画ファイルしか出なかった。
  • 狭いパス: 該当なし。
  • 歯止め: python3 scripts/check-all.py 52/52 が緑。scripts/test-build-proposal.py は python 3.14 と 3.12 の両方で OK(3.12 では「変異 98 件」。3.14 には 3.12 でだけ死ぬ変異が 1 件あり、当てていない)。
  • 2 つの関門とも I1〜I3 は成り立つと報告した。I1 は 3 箇所の文言と判定の一致、I2 は判定が変わっていないこと、I3 は途中の空白も拒む変異が赤になること。/code-review は、リポジトリの外に写した bad_out に名前を直接当てて確かめている。
  • 生成物: なし(skill-metrics.py --check は緑)

証明できないもの・BLOCKED

なし(すべてテストと grep で確かめられる)。

残課題(1 パス目の指摘。既定の線では受入基準を破らないので直していない)

  1. 既存の変異の行で空白が 1 つ落ちた。 scripts/test-build-proposal.py の ("改行を含む名前を見ない","len(… で、カンマの後ろの空白が無い。この周の編集で入った。見た目だけで、挙動は変わらない。
  2. 新しい試料が見ていないことがある。 印に名前が残るかは見るが、次の実行がその名前を読み戻して前の出力を消すかは見ていない。owned_names が行を空白で割る変異が入っても残る(/code-review の想定。著者は走らせていない)。
  3. 「空白で終わると 2」の試料に専用の変異が無い。 strip → lstrip の変異が一覧に無く、この試料が要ることを変異の側からは示していない(/code-review のプローブ)。
  4. 足した変異は 2 つの変更を兼ねている。 「名前の途中の空白も拒む」は、strip の検査を外す変更も含む。strip を残して " " in out.name だけ足す狭い変異でも、同じ試料で赤になることは /code-review が手で確かめた。ただし、その狭い変異は一覧に無い。
  5. 「空白」「改行」の語が覆いきらない文字がある。 strip と splitlines は \x0b・\x1c・
 などにも効くので、--out 'a\x1cb.md' は「改行を含む」で 2 になる。この周より前からの挙動である(/code-review。著者は走らせていない)。
  6. 計画ファイルが無い関数名を挙げていた。 「触らない」の欄の read_manifest は存在しない。印を読むのは owned_names で、計画ファイルの記述はそう直した(計画ファイルは成果物ではない)。

この周の起票

0 件。不在の周なので、手順 8 の起票は訊いていない。

マージ

不在の周で、このリポジトリのマージはサイトを再デプロイする。そのため、マージは利用者の判断を待つ(#476)。

@hdknr
hdknr merged commit 9950e48 into main Oct 28, 2026
3 checks passed
hdknr added a commit that referenced this pull request Oct 28, 2026
…突は spec-loop の版の行だけ。版は 0.28.0)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hdknr added a commit that referenced this pull request Oct 28, 2026
…ring の衝突を解く(#286)

版は周の 0.30.0 を取る(main の 0.26.2 より上)。docstring の終了コード 2 は
main の「前後に空白がある」に周の想定外の例外(#286)の追記を足した。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

spec-loop: build-proposal.py の「空白を含む名前は 2」は前後の空白だけ

1 participant