Skip to content

fix: バックログ Issue 13件を一括解消(ルール変更・ドキュメント・FT サンドボックス修正)#526

Merged
hideyukiMORI merged 1 commit into
mainfrom
fix/close-backlog-issues
May 21, 2026
Merged

fix: バックログ Issue 13件を一括解消(ルール変更・ドキュメント・FT サンドボックス修正)#526
hideyukiMORI merged 1 commit into
mainfrom
fix/close-backlog-issues

Conversation

@hideyukiMORI
Copy link
Copy Markdown
Owner

Summary

バックログに積み上がっていた 13 件の Issue をすべて解消します。

ルール変更 (CLAUDE.md)

  • FT フロー: 発見した Issue はその場で修正してクローズ。積み残し禁止
  • セキュリティ診断: MEDIUM 以下も同 FT の PR 内で修正してからマージ
  • APIRouter + create_app() のファイル末尾配置ルールを明文化
  • defusedxml を XML 処理の必須依存として追記

ドキュメント追加

  • docs/how-to/email-address-parsing.md — parseaddr() の寛容な挙動
  • docs/how-to/decimal-unicode-input.md — Unicode 全角数字と Decimal

FT サンドボックス修正

FT 修正内容 Issue
ft176 calculate_tax/discount にビジネスロジックバリデーション #499
ft180 build_xml() 子タグ名 NCName バリデーション #507
ft183 パスワード SecretStr 化 + SMTP SSRF 防御 #513 #514
ft184 fetch_safe() リダイレクト先 SSRF チェック #516 #517
ft186 /flatten 内側リスト max_length=100 #520
ft189 subprocess OSError → ValueError(400) #524

Test plan

各 FT サンドボックスで確認:

  • ft176: 42 tests passed, mypy --strict OK, ruff OK
  • ft180: 56 tests passed, mypy --strict OK
  • ft183: 47 tests passed, mypy --strict OK
  • ft184: 64 tests passed, mypy --strict OK
  • ft186: 64 tests passed, mypy --strict OK
  • ft189: 57 tests passed, mypy --strict OK

Closes #499, #500, #501, #506, #507, #510, #511, #513, #514, #516, #517, #520, #524

🤖 Generated with Claude Code

Closes #499, #500, #501, #506, #507, #510, #511, #513, #514, #516, #517, #520, #524

### CLAUDE.md 変更
- APIRouter + create_app() ファイル末尾配置ルールを追加 (closes #501, #510)
- defusedxml を XML 処理の必須依存として追記 (closes #506)
- FT フロー Step 8 を「発見した Issue はその場で修正してからクローズ」に変更
- セキュリティ診断「条件付き合格」を「同 FT の PR 内で修正してからマージ」に変更

### ドキュメント追加
- docs/how-to/email-address-parsing.md — parseaddr() の寛容な挙動と注意点 (closes #511)
- docs/how-to/decimal-unicode-input.md — Unicode 全角数字と Decimal (closes #500)

### FT サンドボックス修正
- ft176: calculate_tax/discount にビジネスロジックバリデーション追加 (closes #499)
- ft180: build_xml() 子タグ名 key にも NCName バリデーションを追加 (closes #507)
- ft183: SmtpConfig パスワードを SecretStr 経由に変更・/send・/check-server に SSRF 防御追加 (closes #513, #514)
- ft184: fetch_safe() リダイレクト先 URL を SSRF チェックする _SsrfSafeRedirectHandler を追加 (closes #516, #517)
- ft186: /flatten 内側リストに max_length=100 追加 (closes #520)
- ft189: subprocess 関数の OSError を ValueError に変換して 400 で返す (closes #524)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hideyukiMORI hideyukiMORI merged commit 0a358a3 into main May 21, 2026
2 checks passed
@hideyukiMORI hideyukiMORI deleted the fix/close-backlog-issues branch May 21, 2026 11:03
hideyukiMORI pushed a commit that referenced this pull request May 21, 2026
- APIRouter FT テンプレート反映は #526 でクローズ済みのため「完了」に更新
- リナのレビュー指摘(スタンドアローン Issue の未クローズ表記)を反映
- stdlib 並行系知見 → how-to 化タスクを改善検討に追加

Co-Authored-By: Claude Sonnet 4.6 <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.

[FT176] calculate_tax/discount にビジネスロジックバリデーション追加

1 participant