From d6a223b301f08f00b904eec8dd7b22ac215a5359 Mon Sep 17 00:00:00 2001 From: hideyukiMORI Date: Tue, 19 May 2026 23:11:58 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=86=85=E9=83=A8=E3=83=89=E3=82=AD?= =?UTF-8?q?=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88=E3=81=AE=E6=95=B4=E5=90=88?= =?UTF-8?q?=E6=80=A7=E3=82=AF=E3=83=AA=E3=83=BC=E3=83=B3=E3=82=A2=E3=83=83?= =?UTF-8?q?=E3=83=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CLAUDE.md のプロジェクトレイアウトを現状に合わせて更新(mcp/未実装・tag/未実装を修正、全サブパッケージを列挙) - README の「MCP 対応予定」を「MCP 対応」に修正、認証・SQLAlchemy の特徴を追記 - FT2/FT3 レポートの Follow-up Issue 列の TBD を実際の Issue 番号に更新 - roadmap に FT1〜FT3 完了を記録し、FT4 と PyPI をネクストステップとして追記 Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 23 ++++++++++++++++------ README.md | 4 +++- docs/field-trials/2026-05-field-trial-2.md | 8 ++++---- docs/field-trials/2026-05-field-trial-3.md | 6 +++--- docs/roadmap.md | 6 +++++- 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 5da7974..6954075 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -281,20 +281,31 @@ docker compose up app src/ nene2/ フレームワークコア http/ JSON レスポンス・ページネーション・Problem Details - middleware/ ミドルウェアパイプライン + middleware/ ミドルウェアパイプライン(Error / Security / RequestId / Logging / SizeLimit / Throttle) validation/ ValidationException / ValidationError config/ 型付き設定オブジェクト(AppSettings) - mcp/ MCP サーバー(未実装) + auth/ TokenVerifierProtocol / BearerTokenMiddleware / ApiKeyAuthMiddleware + database/ SqlAlchemyQueryExecutor / SqlAlchemyTransactionManager + mcp/ LocalMcpServer / HttpxMcpClient + log/ structlog セットアップ + use_case/ UseCaseProtocol / AsyncUseCaseProtocol example/ リファレンス実装 - note/ Note ドメイン (entity / repository / use_case / handler) - tag/ Tag ドメイン(未実装) + note/ Note ドメイン(entity / repository / use_case / handler / sqlalchemy_repository) + tag/ Tag ドメイン(entity / repository / use_case / handler / sqlalchemy_repository) + comment/ Comment ドメイン(Note に紐付く nested ドメイン) app.py アプリケーションファクトリ + mcp.py MCP サーバー(Note / Tag / Comment 全 15 ツール) tests/ pytest テスト(src/ を鏡像) docs/ adr/ 設計決定記録(変更理由を残す) - howto/ How-to ガイド - field-trials/ AI 実装検証記録 + how-to/ How-to ガイド + howto/ MCP セットアップガイド + field-trials/ フィールドトライアル記録(FT1〜FT3) + tutorials/ チュートリアル + explanation/ アーキテクチャ解説 + reference/ 設定・モジュールリファレンス + ja/ 日本語ドキュメント(上記すべての翻訳) .github/workflows/ CI(GitHub Actions) ``` diff --git a/README.md b/README.md index ab5adcf..b2a41af 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,9 @@ NENE2 の設計哲学を Python で実装したリファレンスフレームワ - **mypy strict** — PHP 版 PHPStan level 8 相当の型安全性 - **ruff** — Lint + Format 一体型ツール - **RFC 9457 Problem Details** — 統一エラーレスポンス -- **MCP 対応予定** — AI エージェントとのネイティブ統合 +- **Bearer Token / API Key 認証** — `LocalTokenVerifier` で設定ゼロ +- **MCP 対応** — `LocalMcpServer` で UseCase を AI エージェントに公開 +- **SQLAlchemy Core** — ORM なし・生 SQL でシンプルな永続化 ## 開発コマンド diff --git a/docs/field-trials/2026-05-field-trial-2.md b/docs/field-trials/2026-05-field-trial-2.md index 1d10df5..d0abf2e 100644 --- a/docs/field-trials/2026-05-field-trial-2.md +++ b/docs/field-trials/2026-05-field-trial-2.md @@ -131,10 +131,10 @@ configuration.md に `DB_ADAPTER` 別の `db_url` 生成例を追記すれば解 | ID | 摩擦 | 深刻度 | 種別 | Follow-up Issue | |-----|-------------------------------------------|--------|--------------------|-----------------| -| F-1 | `dict[str, Any]` → entity キャストパターン不明 | 中 | ドキュメント | TBD | -| F-2 | スキーマ管理(`ensure_schema`)の指針なし | 高 | ドキュメント不足 | TBD | -| F-3 | `write()` 返り値の型・意味が不明確 | 中 | API/ドキュメント | TBD | -| F-5 | `db_url` 生成規則が不透明 | 低 | ドキュメント | TBD | +| F-1 | `dict[str, Any]` → entity キャストパターン不明 | 中 | ドキュメント | #73 | +| F-2 | スキーマ管理(`ensure_schema`)の指針なし | 高 | ドキュメント不足 | #73 | +| F-3 | `write()` 返り値の型・意味が不明確 | 中 | API/ドキュメント | #74 | +| F-5 | `db_url` 生成規則が不透明 | 低 | ドキュメント | #75 | FT1 で修正した F-4〜F-7(ミドルウェアスタック・`request_validation_error_handler`)は 今回ドキュメント通りに実装でき、**修正が機能していることを確認**。 diff --git a/docs/field-trials/2026-05-field-trial-3.md b/docs/field-trials/2026-05-field-trial-3.md index 1d89c75..5fcd889 100644 --- a/docs/field-trials/2026-05-field-trial-3.md +++ b/docs/field-trials/2026-05-field-trial-3.md @@ -118,9 +118,9 @@ Windows 上の Claude Desktop から WSL2 の uv プロジェクトを呼ぶに | ID | 摩擦 | 深刻度 | 種別 | Follow-up Issue | |-----|-----------------------------------------------|--------|------------------|-----------------| -| F-1 | `list[str]` の `.env` 書き方が JSON 形式と知らない | 高 | ドキュメント不足 | TBD | -| F-2 | MCP と HTTP API がメモリ共有しないことが不明確 | 中 | 設計説明不足 | TBD | -| F-3 | Claude Desktop WSL2 設定例がない | 中 | ドキュメント不足 | TBD | +| F-1 | `list[str]` の `.env` 書き方が JSON 形式と知らない | 高 | ドキュメント不足 | #81 | +| F-2 | MCP と HTTP API がメモリ共有しないことが不明確 | 中 | 設計説明不足 | #82 | +| F-3 | Claude Desktop WSL2 設定例がない | 中 | ドキュメント不足 | #83 | FT2 で修正した SQLite 関連ドキュメント(#73〜#75)の効果は確認できた。 diff --git a/docs/roadmap.md b/docs/roadmap.md index 62defd6..d2772d8 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -127,8 +127,12 @@ PHP 版追跡・Python 固有の強化: - [x] MySQL / PostgreSQL repository 実装 (#40) - [x] 非同期対応: `AsyncUseCaseProtocol` + `nene2.use_case` パッケージ (#42) - [x] Diátaxis 構造のドキュメント整備(tutorial / howto / explanation / reference)(#43) +- [x] Field Trial 1: InMemory CRUD + git+ インストール検証 (#67) +- [x] Field Trial 2: SQLite 永続化リポジトリ DX 検証 (#72) +- [x] Field Trial 3: Bearer Token 認証 + MCP stdio DX 検証 (#80) +- [ ] Field Trial 4: MCP + SQLite 共有 / ApiKey / CORS 検証 +- [ ] PyPI パッケージ公開(FT4 完了後) - [ ] WebSocket サポート検討 -- [ ] PyPI パッケージ公開 ---