Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions docs/review/2026-05-22.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# 日報 — 2026-05-22

**作業者**: hideyukiMORI
**バージョン**: v1.8.67(セッション終了時点)

---

## 本日の作業サマリー

### 完了した FT(8 件)

| FT | テーマ | 診断・ペンテスト |
|---|---|---|
| FT188 | threading — Lock / RLock / Semaphore / Event / Queue / Timer | クラッカーペンテスト |
| FT189 | subprocess — 安全なプロセス実行・stdin/stdout 制御 | セキュリティ診断 |
| FT190 | multiprocessing — プロセス並行・共有状態・プロセスプール | — |
| FT191 | concurrent.futures — ThreadPool / ProcessPool / Future | — |
| FT192 | asyncio — コルーチン・Lock・Event・Semaphore・TaskGroup | セキュリティ診断 + ペンテスト |
| FT193 | socket — TCP/UDP / socketpair / DNS 解決 | — |
| FT194 | ipaddress — IPv4/IPv6 解析・CIDR・SSRF 防御パターン | — |
| FT195 | ssl — SSLContext・暗号スイート・セキュリティ評価 API | セキュリティ診断 |

テーマの流れ: **並行処理系(FT188〜192)→ ネットワーク系(FT193〜195)** の縦断を完了。

### メンテナンス

- バックログ Issue 一括解消(CLAUDE.md ルール更新・FT サンドボックス修正)
- ブランチ全一掃: ローカル 28 本 + リモート 125 本 → 0 本(main 1 本に)
- current.md / roadmap.md を v1.8.67 基準に更新

### 達成度評価

| 項目 | 評価 |
|---|---|
| FT 件数(8 本/日) | **S** |
| テーマ連鎖の設計 | **A** |
| セキュリティ診断の質(MEDIUM 以下のみ) | **A** |
| リポジトリ後片付け | **S** |
| 積み残しゼロで終了 | **S** |

**総合: A+**

---

## コードベース評価レポート(AI 所見)

本日、フレームワーク全体のコードを通読した上での率直な評価。

### 優れている点

**薄い HTTP 層が本当に守られている**
`handler.py` は parse → use-case → response の 3 ステップを一切外れない。
UseCase は HTTP も DB も知らない。`dataclass(frozen=True, slots=True)` の Entity が 3 行で完結する清潔さ。
CLAUDE.md のポリシーがコードに貫通している点は、多くの「設計方針を持つプロジェクト」が失敗するところで、nene2-python は成功している。

**設計の意図が読める**
`transactional[T]` の Python 3.12 ジェネリック構文、`_BoundQueryExecutor` でトランザクション内の接続を閉じ込めるパターン、`ErrorHandlerMiddleware.install()` のコンビニエンスラッパー。どれも「なぜこう設計したか」が読めばわかる。思慮がある。

**テスト品質: 93.47% / 385 テスト全通過**
InMemory と SQLite の両軸戦略も正しい。`--cov-fail-under=80` の CI 強制も機能している。

### 課題として記録した点

#### 課題1: `pyproject.toml` のバージョンと current.md のズレ
`pyproject.toml` の `version = "1.8.66"` に対して current.md は v1.8.67。
「単一の真実の源泉」を掲げるリポジトリとして、バージョンの管理場所が曖昧になっている。

#### 課題2: Response model 不統一
CLAUDE.md には「レスポンスモデルを `response_model` で明示(Any 返却禁止)」とある。
しかし実際の handler はすべて `-> JSONResponse` を返しており、FastAPI の `response_model` を使っていない。
OpenAPI スキーマにレスポンス型が出ない。CLAUDE.md ポリシーとコードの間に乖離がある。

#### 課題3: PyPI 未公開
`pyproject.toml` に Beta ステータスと wheel ビルド設定がある。FT でも `uv add git+...` で使用している。
195 件の検証を経たフレームワークがまだ `pip install` できない状態にある。

#### 課題4: FT ループの目的変化が明文化されていない
FT1〜6 はフレームワーク本体を育てた(UseCase パターン確立、MCP 実装、トランザクション洗練)。
FT7〜195 は stdlib を順に回すループになっており、`src/nene2/` への変更は稀。
FT の目的が「フレームワーク改善のためのフィードバックループ」から「Python stdlib 知見の体系的記録」へ変化していることを、明示的に文書化すると良い。
現状は惰性でループしているように見えるリスクがある。

---

## 明日以降の方針

| 優先度 | Issue | タスク |
|---|---|---|
| 高 | — | FT196(クラッカーペンテストあり)— `http.client` or `select`/`selectors` |
| 高 | [#538](https://github.com/hideyukiMORI/nene2-python/issues/538) | `pyproject.toml` version を v1.8.67 に sync |
| 中 | [#539](https://github.com/hideyukiMORI/nene2-python/issues/539) | handler の response_model 統一(CLAUDE.md ポリシー準拠) |
| 中 | [#540](https://github.com/hideyukiMORI/nene2-python/issues/540) | FT ループの目的・終着点を docs に明文化 |
| 中 | [#541](https://github.com/hideyukiMORI/nene2-python/issues/541) | PyPI 公開フロー検証(`uv publish`) |
| 中 | — | 並行系 how-to ガイド(FT188〜192 の知見まとめ) |
36 changes: 24 additions & 12 deletions docs/todo/current.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@ v1.8.67 完了済み。FT195(ssl — SSLContext・暗号スイート・セキ

## オープン Issue

なし(すべて解消済み)
| # | タイトル | 優先度 | 種別 |
|---|---|---|---|
| [#538](https://github.com/hideyukiMORI/nene2-python/issues/538) | pyproject.toml の version を v1.8.67 に sync | 高 | bug |
| [#539](https://github.com/hideyukiMORI/nene2-python/issues/539) | handler の response_model を統一して CLAUDE.md ポリシーに準拠 | 中 | enhancement |
| [#540](https://github.com/hideyukiMORI/nene2-python/issues/540) | FT ループの目的と終着点を明文化する | 中 | docs |
| [#541](https://github.com/hideyukiMORI/nene2-python/issues/541) | PyPI 公開フロー検証(uv publish ワークフロー) | 中 | enhancement |

---

Expand Down Expand Up @@ -72,20 +77,27 @@ v1.8.67 完了済み。FT195(ssl — SSLContext・暗号スイート・セキ

## 明日以降の優先タスク

| 優先度 | タスク | 種別 | 備考 |
| 優先度 | Issue | タスク | 種別 |
|---|---|---|---|
| 高 | FT196 実施(クラッカーペンテストあり) | FT | テーマ: `http.client` or `select`/`selectors` |
| 中 | 並行系 how-to ガイド作成 | docs | FT188〜192 の知見(threading / asyncio / concurrent.futures)を 1 本にまとめる |
| 中 | PyPI 公開フロー検証(Field Trial 7) | FT | `uv publish` ワークフロー・バージョン管理・twine 代替 |
| 低 | PostgreSQL / MySQL 実 DB 統合テスト | infra | CI に Docker service ジョブを追加検討 |
| 低 | PyJWT 推移的 CVE(PYSEC-2025-183) | 保留 | mcp 側の修正を待ち。文書化済み |
| 高 | — | FT196 実施(クラッカーペンテストあり) | FT |
| 高 | [#538](https://github.com/hideyukiMORI/nene2-python/issues/538) | pyproject.toml の version を v1.8.67 に sync | bug |
| 中 | [#539](https://github.com/hideyukiMORI/nene2-python/issues/539) | handler の response_model 統一(CLAUDE.md ポリシー準拠) | enhancement |
| 中 | [#540](https://github.com/hideyukiMORI/nene2-python/issues/540) | FT ループの目的・終着点を明文化 | docs |
| 中 | [#541](https://github.com/hideyukiMORI/nene2-python/issues/541) | PyPI 公開フロー検証(uv publish) | enhancement |
| 中 | — | 並行系 how-to ガイド作成(FT188〜192 まとめ) | docs |
| 低 | — | PostgreSQL / MySQL 実 DB 統合テスト(CI Docker service) | infra |
| 低 | — | PyJWT 推移的 CVE(PYSEC-2025-183)— mcp 修正待ち | 保留 |

---

## 改善検討事項

| 課題 | 優先度 | 備考 |
|---|---|---|
| 並行系 how-to(AsyncUseCase / threading / multiprocessing 比較) | 中 | FT188〜192 の知見を 1 本 how-to にまとめる |
| PostgreSQL / MySQL 実 DB 統合テスト | 中〜高 | CI に Docker service ジョブを追加検討 |
| PyJWT 推移的 CVE(PYSEC-2025-183) | 低 | mcp 側の修正を待ち。文書化済み |
| 課題 | 優先度 | Issue | 備考 |
|---|---|---|---|
| pyproject.toml バージョン不整合 | 高 | [#538](https://github.com/hideyukiMORI/nene2-python/issues/538) | current.md v1.8.67 との乖離 |
| handler response_model 未使用 | 中 | [#539](https://github.com/hideyukiMORI/nene2-python/issues/539) | CLAUDE.md ポリシー違反 |
| FT ループ目的の明文化 | 中 | [#540](https://github.com/hideyukiMORI/nene2-python/issues/540) | FT1〜6 と FT7〜 でフェーズが変化している |
| PyPI 未公開 | 中 | [#541](https://github.com/hideyukiMORI/nene2-python/issues/541) | uv publish フロー検証が必要 |
| 並行系 how-to(threading / asyncio 比較) | 中 | — | FT188〜192 の知見を 1 本にまとめる |
| PostgreSQL / MySQL 実 DB 統合テスト | 中〜高 | — | CI に Docker service ジョブを追加検討 |
| PyJWT 推移的 CVE(PYSEC-2025-183) | 低 | — | mcp 側の修正を待ち。文書化済み |
Loading