From a41fb26694aeba552f5f2f8386e2d5e3e6f20344 Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Sat, 30 May 2026 07:33:10 +0000 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20ml-model-structure=20skill=20?= =?UTF-8?q?=E3=82=92=20ndf=20=E3=81=AB=E8=BF=BD=E5=8A=A0=E3=81=97=20v4.10.?= =?UTF-8?q?0=20=E3=81=B8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新規 skill `ml-model-structure` を追加 (i19 登録依頼) - 機械学習モデルの版ごと自己完結構造 + 版内 feature SSoT + 推論コンテナ規約 - レビュー指摘を反映 (.dockerignore 文言の正確化 / 受け入れ基準に import 解決・docker代替を追加) - plugin.json: version 4.9.0 → 4.10.0、skills 配列追加、description を 45 skills に更新 - marketplace.json / README / AGENTS.md / ndf-plugin-reference: skill 数・version 表記を整合 Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude-plugin/marketplace.json | 2 +- AGENTS.md | 4 +- README.md | 6 +- docs/ndf-plugin-reference.md | 3 +- issues/i19.md | 77 +++++++++ plugins/ndf/.claude-plugin/plugin.json | 7 +- plugins/ndf/README.md | 5 +- .../ndf/skills/ml-model-structure/SKILL.md | 152 ++++++++++++++++++ .../references/inference-and-contract.md | 117 ++++++++++++++ 9 files changed, 361 insertions(+), 12 deletions(-) create mode 100644 issues/i19.md create mode 100644 plugins/ndf/skills/ml-model-structure/SKILL.md create mode 100644 plugins/ndf/skills/ml-model-structure/references/inference-and-contract.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 4ebcfc4..a6aa677 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -8,7 +8,7 @@ { "name": "ndf", "source": "./plugins/ndf", - "description": "All-in-one plugin (v4.0.0): 8 specialized agents, 33 skills (PR/review workflows, principles, data analysis, Codex CLI integration, skill usage stats), SessionStart hook (transcript retention >= 90 days), Stop hook (AI-summarized Slack notifications). Codex CLI is invoked via /ndf:codex skill or corder agent (MCP server removed in v4.0.0)." + "description": "All-in-one plugin (v4.10.0): 8 specialized agents, 45 skills (PR/review workflows, principles, ML model structure standard, data analysis, Codex CLI integration, skill usage stats), SessionStart hook (transcript retention >= 90 days), Stop hook (AI-summarized Slack notifications). Codex CLI is invoked via /ndf:codex skill or corder agent (MCP server removed in v4.0.0)." }, { "name": "affaan-m", diff --git a/AGENTS.md b/AGENTS.md index 1b2be58..fb93e91 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -62,9 +62,9 @@ ai-plugins/ ## NDFプラグインについて -**NDFプラグイン**は、このマーケットプレイスの主要プラグインです(v4.7.6): +**NDFプラグイン**は、このマーケットプレイスの主要プラグインです(v4.10.0): - 8個の専門サブエージェント(director、data-analyst、corder、researcher、qa、debugger、devops-engineer、code-reviewer) -- 39個のSkills(PR/コードレビューワークフロー、AIクロスレビュー (codex/gemini)、原則・ガイドライン、issue→multi-PR ワークフロー戦略、SQL最適化、データエクスポート、skill利用統計、Codex CLI連携、Playwrightシナリオテスト、Google Drive/Chat連携 等) +- 40個のSkills(PR/コードレビューワークフロー、AIクロスレビュー (codex/gemini)、原則・ガイドライン、MLモデル構造標準 (ml-model-structure)、issue→multi-PR ワークフロー戦略、SQL最適化、データエクスポート、skill利用統計、Codex CLI連携、Playwrightシナリオテスト、Google Drive/Chat連携 等) - SessionStartフック(transcript保持期間自動管理 `cleanupPeriodDays >= 90`) - Stopフック(AI要約生成 + 自動Slack通知) - 外部AI委譲は `/ndf:codex` skill と `corder` エージェント経由で Codex CLI を呼び出し(v4.0.0 で Codex MCP サーバは廃止) diff --git a/README.md b/README.md index 916f271..22fccfb 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ Claude CodeプラグインおよびKiro CLI向けのスキル・MCP設定を共 **NDFプラグイン v4.0.0** は、以下の機能を**オールインワン**で提供する統合プラグインです: -- **33個のSkills**: +- **34個のSkills**: - PR/レビューワークフロー (pr, pr-tests, fix, review, review-branch, review-pr-comments, resolve-pr-comments, cherry-pick-pr, deploy, sync-main, merged, clean, browser-test) - - 原則・ガイドライン (ndf-policies, branch-fix-strategy, implementation-plan, investigation-rules, problem-solving, logging-guidelines, markdown-writing) + - 原則・ガイドライン (ndf-policies, branch-fix-strategy, implementation-plan, investigation-rules, problem-solving, logging-guidelines, markdown-writing, ml-model-structure) - データ分析・品質 (data-analyst-sql-optimization, data-analyst-export, qa-security-scan) - 外部連携・環境 (codex, git-gh-operations, google-auth, python-execution, docker-container-access, deepwiki-transfer, knowledge-reorg, mcp-builder, official-skills-autoloader) - 運用 (skill-stats) @@ -81,7 +81,7 @@ kiro-cli chat | プラグイン名 | バージョン | 説明 | 詳細 | |------------|----------|------|------| -| **ndf** | 4.0.0 | Claude Code / Kiro CLI開発環境を**オールインワン**で強化する統合プラグイン。8個の専門エージェント(director、data-analyst、corder、researcher、qa、debugger、devops-engineer、code-reviewer)、33個のSkills(PR/レビューワークフロー、原則・ガイドライン、データ分析、品質、Codex CLI連携、skill利用統計など)、SessionStartフック(transcript保持期間自動管理)、Stopフック(AI要約生成+Slack通知)を提供。v4.0.0 で Codex MCP サーバを廃止し、`/ndf:codex` skill + `corder` エージェント経由の CLI 直接実行に一本化。 | [README](./plugins/ndf/README.md) | +| **ndf** | 4.10.0 | Claude Code / Kiro CLI開発環境を**オールインワン**で強化する統合プラグイン。8個の専門エージェント(director、data-analyst、corder、researcher、qa、debugger、devops-engineer、code-reviewer)、34個のSkills(PR/レビューワークフロー、原則・ガイドライン、MLモデル構造標準、データ分析、品質、Codex CLI連携、skill利用統計など)、SessionStartフック(transcript保持期間自動管理)、Stopフック(AI要約生成+Slack通知)を提供。v4.0.0 で Codex MCP サーバを廃止し、`/ndf:codex` skill + `corder` エージェント経由の CLI 直接実行に一本化。 | [README](./plugins/ndf/README.md) | ## 開発ガイドライン diff --git a/docs/ndf-plugin-reference.md b/docs/ndf-plugin-reference.md index 2ea433d..43567bd 100644 --- a/docs/ndf-plugin-reference.md +++ b/docs/ndf-plugin-reference.md @@ -18,7 +18,7 @@ plugins/ndf/ │ ├── ensure-retention.sh # cleanupPeriodDays >= 90 を保つ │ └── slack-notify.js # Slack通知スクリプト ├── agents/ # 専門エージェント(8個) -├── skills/ # Skills(36個) +├── skills/ # Skills(45個) ├── CLAUDE.md # プラグイン開発者向けガイド └── README.md # 利用者向けドキュメント ``` @@ -74,6 +74,7 @@ NDF プラグイン本体はコア MCP サーバを**同梱しない**(v4.0.0 | `problem-solving` | 根本原因分析・多層防御 | | `logging-guidelines` | ログ運用 (言語非依存) | | `markdown-writing` | Markdown 文書の体裁 | +| `ml-model-structure` | ML モデル構築・推論API の標準ディレクトリ構造 (版内 feature SSoT / train↔serve 契約) | ### 4. 補助 Skills diff --git a/issues/i19.md b/issues/i19.md new file mode 100644 index 0000000..b946a44 --- /dev/null +++ b/issues/i19.md @@ -0,0 +1,77 @@ +# [新規skill] ml-model-structure を ndf に登録する + +- 対象 plugin: `ndf` (現 v4.9.0) +- 種別: 新規 skill 追加 (登録作業のみ依頼。skill 実体は作成済み) +- 報告者: takemi-ohama +- 起点: `carmo-screening` の PLAN43 (OAC予測モデルの analysis ディレクトリ再編) で確立した + 「機械学習モデルの構築・推論API開発の標準構造」を、横展開可能な基準として skill 化したもの + +## 背景・目的 + +機械学習モデルの学習コードと推論API(コンテナ)を、連番スクリプトでプロジェクト直下にフラットに並べると +「どれがデプロイ済みの正規コードか」「どれが旧版・ボツ実験か」が判別できなくなる。 +また将来 v2/v3 を champion/challenger・shadow で**並行運用**する際、全版が単一の特徴量ライブラリを +共有する設計は (特徴量ロジックが版ごとに進化するため) 破綻する。 + +これを **版 (version) 単位の自己完結ディレクトリ + 版内 feature SSoT** で解決する構造・実装方法を、 +`carmo-screening` の実プロジェクトで確立・検証した。これを ndf の標準 skill として登録し、 +以後のモデル構築・API開発の基準としたい。 + +## 追加する skill (作成済み) + +- パス: `plugins/ndf/skills/ml-model-structure/` + - `SKILL.md` (148 行) + - `references/inference-and-contract.md` (117 行、推論コンテナ規約 + TRAIN_SPEC テンプレ) +- `name`: `ml-model-structure` +- `description` (要約): 機械学習モデルの構築・再学習・推論API(SageMaker等)開発における標準ディレクトリ構造と + 実装方法。版ごとに自己完結する構造 (`vN/`) + 版内 feature SSoT (`features.py`) + 推論コンテナ規約で、 + train/serve skew を版内で防ぎ champion/challenger の並行運用に備える。 +- `when_to_use` (要約): モデルの新規構築・再学習・推論コンテナ開発・バージョン管理/並行運用を行うとき。 + Triggers: 'モデル構築', 'モデル再学習', '推論コンテナ', 'SageMaker', 'feature SSoT', 'train/serve skew', + 'champion challenger', '並行運用' 等。 + +### skill が定める基準 (要点) + +1. **版ごとに自己完結** (`vN/` が独自の `features.py`/`train/`/`inference/` を持つ)。 + 版跨ぎ共有 (`shared/`) や `current -> vN` symlink は作らない。 +2. **版内 feature SSoT** (`vN/features.py` を学習・推論・テストが共有)。train/serve skew は版内で保証。 +3. **「コードの並行」と「デプロイの並行」は別レイヤー** (デプロイ並行は推論基盤側で解決)。 +4. 推論コンテナ規約 (SageMaker 標準ハンドラ / build context=版ルート / `COPY features.py` / + `.dockerignore` は context ルート / `model.tar.gz` は成果物のみ)。 +5. `train/` の canonical・採用根拠系 experiments・`lab/` (不採用)・`v1/` (read-only) の区分。 +6. `TRAIN_SPEC.md` (train↔serve 契約書) の章立て。 +7. 受け入れ基準 (テスト緑 / py_compile / docker build smoke / dead-link なし / `git mv` で履歴保持)。 + +ASCII ツリー以外の図は mermaid を使用 (`ndf:markdown-writing` 準拠)。 + +## 依頼内容 (登録作業) + +skill 実体は配置済みのため、以下の **plugin への登録のみ** をお願いしたい +(本リポジトリ側の規約・version 運用に合わせて実施してください): + +1. `plugins/ndf/.claude-plugin/plugin.json` + - `skills` 配列に `"./skills/ml-model-structure"` を追加。 + - `version` を bump (新規 skill 追加のため、運用ルールに従って minor 等)。 + - `description` 内の skill 数表記 ("… skills including …") を +1 に更新。 +2. `.claude-plugin/marketplace.json` — ndf エントリの version/description が plugin.json に追従する場合は更新。 +3. `plugins/ndf/AGENTS.md` / ルート `README.md` の skill 数・一覧記述があれば更新 + (現状 "39個のSkills" 等の表記は既に実数とずれている可能性があるため、合わせて整合を取ると望ましい)。 + +> skill の中身 (`SKILL.md` / `references/`) のレビュー・微修正は ai-plugins 側の判断で実施して構いません。 +> 命名 (`ml-model-structure`) や粒度に異論があれば調整可。 + +## 検証済み事項 (skill の根拠となった実プロジェクト) + +`carmo-screening` PLAN43 にて本構造を実装・検証済み: + +- 推論コンテナ単体テスト 18 passed (train/serve 一致の回帰テスト含む)。 +- 全 `.py` `py_compile` OK / `docker build` (版ルート context) exit 0 / `export --dry-run` OK。 +- ドキュメント dead-link なし (リポジトリ全体 grep)。 +- 全移動を `git mv` で履歴保持。 + +## 関連 + +- 由来プロジェクト: `carmo-screening` `analysis/20260505_oac-prediction/` + (設計書 `issues/PLAN43-restructure-design.md`、PR #288) +- 既存類似 skill: `ndf:implementation-plan`, `ndf:issue-plan-strategy`, `ndf:mcp-builder` + (本 skill は「ML モデル構築・推論API の構造基準」を担い、これらと相補) diff --git a/plugins/ndf/.claude-plugin/plugin.json b/plugins/ndf/.claude-plugin/plugin.json index 4a249f5..2bdd73f 100644 --- a/plugins/ndf/.claude-plugin/plugin.json +++ b/plugins/ndf/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "ndf", - "version": "4.9.0", - "description": "Integrated plugin with 8 specialized agents (model-tiered: opus/sonnet/haiku), 44 skills including official mcp-builder, on-demand loader for Anthropic official skills, generic workflow/principle skills, skill usage statistics, pytest-playwright E2E testing split into 5 focused skills (test-planning, script-creation, execution, report, kit-ops) + orchestrator with video-by-default evidence, Google Drive/Chat integration, and Codex CLI integration via /ndf:codex skill. Transcript retention is automatically kept at >= 90 days. Serena MCP is a separate plugin (mcp-serena).", + "version": "4.10.0", + "description": "Integrated plugin with 8 specialized agents (model-tiered: opus/sonnet/haiku), 45 skills including official mcp-builder, on-demand loader for Anthropic official skills, generic workflow/principle skills, ML model structure standard (ml-model-structure), skill usage statistics, pytest-playwright E2E testing split into 5 focused skills (test-planning, script-creation, execution, report, kit-ops) + orchestrator with video-by-default evidence, Google Drive/Chat integration, and Codex CLI integration via /ndf:codex skill. Transcript retention is automatically kept at >= 90 days. Serena MCP is a separate plugin (mcp-serena).", "author": { "name": "takemi-ohama", "url": "https://github.com/takemi-ohama" @@ -71,6 +71,7 @@ "./skills/google-chat", "./skills/gemini", "./skills/cross-review", - "./skills/issue-plan-strategy" + "./skills/issue-plan-strategy", + "./skills/ml-model-structure" ] } diff --git a/plugins/ndf/README.md b/plugins/ndf/README.md index 59a59af..db2f1dd 100644 --- a/plugins/ndf/README.md +++ b/plugins/ndf/README.md @@ -7,7 +7,7 @@ Claude Code開発環境を**オールインワン**で強化する統合プラ このプラグイン1つで、以下の**すべて**の機能を利用できます: 1. **コアMCP**: なし (v4.0.0 で Codex MCP 廃止 / Serena MCP は `mcp-serena` プラグインに分離) -2. **Skills**: 39個(PR/コードレビュー系ワークフロー13個 + 原則・ガイドライン8個 (issue→multi-PR 戦略含む) + データ分析/品質/環境系13個 + skill-stats + Playwright シナリオテスト + Google Drive/Chat 連携 + AI クロスレビュー (cross-review / gemini)) +2. **Skills**: 40個(PR/コードレビュー系ワークフロー13個 + 原則・ガイドライン9個 (issue→multi-PR 戦略・MLモデル構造標準含む) + データ分析/品質/環境系13個 + skill-stats + Playwright シナリオテスト + Google Drive/Chat 連携 + AI クロスレビュー (cross-review / gemini)) 3. **専門エージェント**: 8つの特化型AIエージェント(director、data-analyst、corder、researcher、qa、debugger、devops-engineer、code-reviewer) 4. **自動フック**: Slack通知 @@ -452,7 +452,7 @@ Claude Codeが自動的に適切なMCPツールを選択・利用します。 | `/ndf:merged` | PRマージ後のローカルブランチクリーンアップ | `[PR番号]` | | `/ndf:clean` | マージ済みブランチの一括削除 | - | -### 4. 原則・ガイドライン系スキル(7個) +### 4. 原則・ガイドライン系スキル(8個) モデル起動型のガイドラインスキル。該当する文脈で自動参照される。 @@ -465,6 +465,7 @@ Claude Codeが自動的に適切なMCPツールを選択・利用します。 | `problem-solving` | 根本原因分析・上流修正・多層防御 | | `logging-guidelines` | ログ運用ガイドライン(言語非依存) | | `markdown-writing` | Markdown文書作成(mermaid/plantUML) | +| `ml-model-structure` | MLモデル構築・推論API開発の標準ディレクトリ構造(版内feature SSoT / train↔serve契約) | ### 5. データ分析・品質・環境系スキル(13個) diff --git a/plugins/ndf/skills/ml-model-structure/SKILL.md b/plugins/ndf/skills/ml-model-structure/SKILL.md new file mode 100644 index 0000000..2f3bca1 --- /dev/null +++ b/plugins/ndf/skills/ml-model-structure/SKILL.md @@ -0,0 +1,152 @@ +--- +name: ml-model-structure +description: "機械学習モデルの構築・再学習・推論API(SageMaker等)開発における標準ディレクトリ構造と実装方法。版ごとに自己完結する構造 (vN/) + 版内 feature SSoT (features.py) + 推論コンテナ規約で、train/serve skew を版内で防ぎ champion/challenger の並行運用に備える。新しいモデルを作る・再学習する・推論コンテナを書く・モデルをバージョン管理するときは、フラットに連番スクリプトを置く前に必ず本スキルを参照すること。" +when_to_use: "機械学習モデルの新規構築・再学習・推論API/コンテナ開発・モデルのバージョン管理/並行運用を行うとき。analysis/ 配下に学習スクリプトや推論コードを配置する設計判断が必要なとき。Triggers: 'モデル構築', 'モデル再学習', 'モデルのバージョン管理', '推論コンテナ', '推論API', 'SageMaker', 'feature SSoT', 'train/serve skew', 'analysis ディレクトリ', 'champion challenger', '並行運用'" +allowed-tools: + - Read + - Write + - Edit + - Bash +--- + +# ML モデル構築・API開発の標準構造 + +機械学習モデルの学習コードと推論API(コンテナ)を、**版ごとに自己完結する構造**で配置するための基準。 +連番スクリプト (`01_…` `10_…`) をプロジェクト直下にフラットに並べると「どれがデプロイ済みの正規コードか」 +「どれが旧版・ボツ実験か」が判別できなくなる。本構造はこれを **版 (version) 単位の実体ディレクトリ** で解決し、 +将来 v2/v3 を champion/challenger・shadow で**並行運用**しても破綻しないようにする。 + +## 設計の核 (なぜこの形か) + +- **版ごとに自己完結**: 各版 `vN/` は独自の `features.py` / `train/` / `inference/` を持つ。 + 並行運用では特徴量ロジック自体が版ごとに進化するため、全版が単一の共通ライブラリを共有する設計は破綻する。 + 版を跨いだ共有 (`shared/`) や `current -> vN` の symlink は**作らない**。 +- **版内 feature SSoT**: 同一版の学習 (`train/`)・推論 (`inference/`)・テストが **`vN/features.py` だけ** を参照する + (import / Docker COPY)。train/serve skew (学習時と推論時で特徴量計算がずれる事故) は **版内で** 保証する。 + 版間は独立でよい — v3 が別ロジックでも v2 に影響しない。 +- **「コードの並行」と「デプロイの並行」は別レイヤー**。デプロイ並行は推論基盤側 (SageMaker production/shadow + variants・multi-model endpoint 等) で解決する。本構造が担うのは**コード層の独立**のみ。 +- **本番版の所在は symlink でなく明示管理**。並行運用では「今の本番」が複数になり得るため、 + 本番版はエンドポイント名・環境変数・README の表で管理する。 + +## 目標ディレクトリ構造 + +モデルプロジェクト 1 つ (例: `analysis/_/`) を版で分割する。 + +``` +/ # 例: analysis/20260505_oac-prediction/ +├── v1/ # 退役版: read-only アーカイブ +│ ├── train/ # 旧学習コード (features.py 非依存・自己完結) +│ ├── *_report.md *.csv # 旧レポート・成果物 +│ └── README.md # 「read-only。再実行非想定」を明記 +├── v2/ # 現役版: 自己完結の実体 (symlink なし) +│ ├── features.py # ★版内 feature SSoT (学習・推論が共有) +│ ├── train/ +│ │ ├── 01_build_dataset.py # canonical: データ生成 (→ train/data/) +│ │ ├── 10_train_model.py # canonical: 学習 → train/results/ に成果物 +│ │ ├── experiments/ # 採用根拠系の実験 (+ README)。CI非対象・参照専用 +│ │ ├── data/ # 生成データ (gitignore 対象) +│ │ └── results/ # モデル成果物 (.cbm / *.json 等) +│ ├── inference/ # 推論コンテナ一式 (詳細は references) +│ │ ├── Dockerfile # build context = vN/、COPY features.py +│ │ ├── inference.py … # ハンドラ + tests/ +│ │ └── README.md +│ ├── .dockerignore # ★build context ルート (= vN/) に置く +│ ├── export_model_to_s3.py # 成果物を model.tar.gz 化して配布 +│ ├── TRAIN_SPEC.md # train↔serve 契約書 +│ └── README.md *_report.md executive_summary.md +└── lab/ # 版非依存・不採用の探索 (+ README)。「ボツにしたアイデア集」 +``` + +> 図表は ASCII ツリーのみ例外的に許可 (本スキルは `ndf:markdown-writing` 準拠)。フロー図は mermaid を使う。 + +## 版内 SSoT と train/serve 一致 + +```mermaid +flowchart LR + subgraph TR["学習 (vN/train/)"] + A["01_build_dataset.py"] --> B["train/data/dataset.csv"] + B --> C["features.base_features"] + C --> D["10_train_model.py 学習"] + D --> E["train/results/ 成果物"] + end + subgraph SV["推論 (vN/inference/)"] + P["生 payload"] --> F["features.to_model_input"] + F --> G["features.base_features"] + G --> H["predict_proba"] + end + C -. 同一関数を共有 .- G + E -. model.tar.gz 同梱 .-> H +``` + +- 特徴量化ロジックは **`vN/features.py` に閉じ込め、学習も推論も同じ関数を import** する。 + 呼び出し側 (APIゲートウェイ等) は生データを転送するだけにし、列名マッピングや前処理を二重実装しない。 +- 学習時のみ必要な統計 (中央値補完値・列順・dtype 等) は学習スクリプトが成果物 (JSON) に書き出し、 + 推論時に読み込んで適用する。1行推論で `df.median()` が壊れる等の事故を防ぐ。 +- **回帰テスト (主防衛線)**: 「学習データの1行」と「同じ素データを `to_model_input` に通した出力」が + 全学習列で一致することを検証する。列順・クラス順・補完値も版内テストで固定する。 + +## train/ の規約 + +- **canonical (本線)**: デプロイ済みモデルを再現する最小経路。`01_build_dataset.py` → `10_train_model.py` + → `export_model_to_s3.py`。版ディレクトリで版が自明なため、ファイル名から `_v2` 等の冗長な版接尾辞は外す + (`10_v2_model.py` → `10_train_model.py`)。 +- **train/experiments/ (採用根拠系)**: その版の意思決定・解釈に寄与した実験 (ハイパラ探索・不均衡対策比較・ + SHAP・リーク検証等) を版同梱する。連番は履歴安定のため維持。CI 非対象・参照専用を README に明記。 +- **train/data/・train/results/**: データは gitignore、成果物 (モデル本体・列順/dtype/統計 JSON) は追跡する。 +- **絶対パスと相対解決の使い分け**: + - 出力先 `OUTPUT_DIR` は `…//vN/train` の**絶対パス**で固定 (symlink を使わず曖昧さを消す)。 + - `features.py` の解決は `__file__` からの**相対計算**にする (例: train 直下は `parent.parent`、 + `train/experiments/` 配下は `parents[2]` が版ルート `vN/`)。階層を変えても import が壊れにくい。 + +## inference/ の規約 (要点) + +- SageMaker 標準ハンドラ (`model_fn` / `input_fn` / `predict_fn` / `output_fn`) を実装する。 +- **build context は版ルート `vN/`** に固定し、Dockerfile は `COPY features.py …` で版内 SSoT を取り込む + (`COPY ../…` は Docker 仕様上不可)。`inference/features.py` を**実体ファイルとして置かない** + (build 時に COPY するのみ)。 +- **`.dockerignore` は build context ルート (= `vN/.dockerignore`) に置く**。BuildKit が読むのは context ルートの + `.dockerignore` か `.dockerignore` のみで、`inference/.dockerignore` という名前では機能しない。 + `train/` 等を除外して context を軽くする。 +- `model.tar.gz` には**モデル成果物のみ**を入れ、`inference.py` は ECR イメージ側 (`/opt/ml/code`) に同梱する。 + +詳細 (ハンドラ雛形・Dockerfile・テスト・TRAIN_SPEC の章立て) は +[`references/inference-and-contract.md`](references/inference-and-contract.md) を参照。 + +## lab/ と v1/ の扱い + +- **`lab/`**: その版が**採用しなかった**探索 (派生特徴量・別アルゴリズム等)。特定の版に属さないため + 版ディレクトリの外 (プロジェクト直下) に置く。README に「不採用の結論」を残す。 +- **`v1/` (旧版)**: 退役版は read-only アーカイブとして集約する。当時の `OUTPUT_DIR` 絶対パスは + **書き換えない** (再現性の歴史的記録)。README に「read-only・再実行非想定・新版で全面置換済み」を明記。 + +## TRAIN_SPEC.md (train↔serve 契約書) + +版ルートに置き、「学習で何がどう作られ、推論がそれをどう使うか」を 1 ファイルに集約する。 +推論コンテナ/エンドポイント/API結線の実装者が、学習コードを読まずに契約を把握できることが目的。 +章立てテンプレは [`references/inference-and-contract.md`](references/inference-and-contract.md)。 + +## 新しい版を作る・既存を再編する手順 + +1. **新版 `vN/` を v(N-1) と対等な実体として作る** (既存版に触れない)。`features.py` / `train/` / `inference/` + を独自に持たせ、独立してビルド・配布・エンドポイント作成できる状態にする。旧版は並行稼働を続けられる。 +2. **既存をこの構造へ再編するときは全移動を `git mv`** で行い履歴を保つ。改名 (`10_v2_model`→`10_train_model`) も `git mv`。 +3. 生成データ/成果物の gitignore を新パスに追従させる。 +4. パス参照 (絶対 `OUTPUT_DIR`・Docker build context・ドキュメントの相対リンク) を新構造に更新する。 + ディレクトリ階層を変えたら**相対リンクの深さ**もずれるので grep で洗い出す。 + +## 受け入れ基準 (再編・新規ともに) + +- [ ] 版内テストが**全 pass** (特に train/serve 一致の回帰テスト)。 +- [ ] 全 `.py` が `py_compile` を通る。 +- [ ] 全 `.py` から `features.py` の **import が解決できる** (py_compile では検出されない相対解決の崩れを潰す。 + 例: `python -c "import inference.inference"` / pytest collection が通る)。 +- [ ] `cd vN && docker build -f inference/Dockerfile …` が**通る** (build smoke)。 + Docker 不可環境では Dockerfile の `COPY` パス実在チェック (`features.py` / `inference/*` の存在 grep) で代替する。 +- [ ] `export_model_to_s3.py --dry-run` 等で成果物が新パスから取得できる。 +- [ ] canonical 学習スクリプトが**単独完走可** (他の実験スクリプトを import しない)。 +- [ ] ドキュメントに **dead link なし** (リポジトリ全体 grep)。 +- [ ] 移動は `git mv` で**履歴保持**。 + +> これらは「構造を変えたら壊れていないことを機械的に確かめる」ための最小セット。 +> ファイルを動かした直後に必ず回す。 diff --git a/plugins/ndf/skills/ml-model-structure/references/inference-and-contract.md b/plugins/ndf/skills/ml-model-structure/references/inference-and-contract.md new file mode 100644 index 0000000..b433bec --- /dev/null +++ b/plugins/ndf/skills/ml-model-structure/references/inference-and-contract.md @@ -0,0 +1,117 @@ +# 推論コンテナ規約と train↔serve 契約書テンプレ + +`SKILL.md` の「inference/ の規約」「TRAIN_SPEC.md」の詳細。推論コンテナ (SageMaker 前提) を書く / +レビューするとき、および TRAIN_SPEC.md を起こすときに読む。 + +## 目次 + +1. SageMaker 推論ハンドラ +2. Dockerfile (build context = 版ルート) +3. .dockerignore の置き場所 +4. model.tar.gz の中身 +5. テストの path 解決 (conftest) +6. TRAIN_SPEC.md の章立て + +## 1. SageMaker 推論ハンドラ + +`vN/inference/inference.py` に標準 4 関数を実装する。 + +| 関数 | 役割 | +|---|---| +| `model_fn(model_dir)` | `model_dir` からモデル本体 + 学習時統計 (列順/dtype/中央値/版文字列) を読み込む。クラス順 (`classes_`) が期待通りかを fail-fast で検証する | +| `input_fn(body, content_type)` | 生 payload を dict にパースする (変換ロジックは持たない) | +| `predict_fn(data, model)` | `features.to_model_input(data)` → `features.base_features(df, …)` → `predict_proba`。**版が採用していない派生特徴量は呼ばない**。列順は学習時に保存した列順 JSON を唯一の正とする | +| `output_fn(pred, accept)` | クラス確率 + ラベル + 版文字列を返す | + +- 特徴量化は `features.to_model_input` → `base_features` に閉じる。呼び出し側 (APIゲートウェイ) は + 生データ (統計・レスポンス項目・申込属性) を**転送するだけ**にする。 +- 版文字列 (`model_version`) は学習成果物の JSON から**動的読込**し、欠落時のみ既定値にフォールバックする。 + 「学習スクリプトが版文字列を書き出していない」と再学習時に既定値へ化けるので、書き出しを受け入れ基準に含める。 + +## 2. Dockerfile (build context = 版ルート) + +```dockerfile +# build context は版ルート vN/ に固定する。 +# cd /vN && docker build -f inference/Dockerfile -t :vN . +FROM python:3.13-slim +# … 依存インストール (MMS/sagemaker-inference を使うなら JRE と setuptools<81 に注意) … +WORKDIR /opt/ml/code +COPY inference/requirements.txt /opt/ml/code/requirements.txt +RUN pip install --no-cache-dir -r requirements.txt +# 版内 SSoT: context 直下の features.py を取り込む (../ は不可) +COPY features.py /opt/ml/code/features.py +COPY inference/inference.py /opt/ml/code/inference.py +# … handler_service.py / dockerd-entrypoint.py 等 … +``` + +- `COPY ../features.py` は Docker 仕様上**不可** (context 外参照)。context を版ルートにすることで + `features.py` も `inference/` 配下も同一 context 内で参照できる。 +- `inference/features.py` を実体として commit しない。誤コミット検知として CI に + `find inference/ -name features.py` のガードを置くとよい。 + +## 3. .dockerignore の置き場所 (重要) + +`.dockerignore` は **build context のルート (= `vN/.dockerignore`)** に置く。 +BuildKit は「Dockerfile 隣の `.dockerignore`」か「context ルートの `.dockerignore`」しか読まないため、 +`inference/.dockerignore` に置いても**機能しない** (context が肥大化するだけ)。 + +``` +# vN/.dockerignore — 取り込むのは features.py と inference/ の推論コード + requirements のみ +train/ +*.md +*.csv +*.parquet +*.cbm +__pycache__/ +inference/tests/ +export_model_to_s3.py +``` + +## 4. model.tar.gz の中身 + +SageMaker の `model_data` (tar.gz) には**モデル成果物のみ**を入れる: + +- モデル本体 (`*.cbm` 等) + 推論に必要な学習時統計 (列順 JSON / dtype JSON / 統計 JSON)。 +- `inference.py` は**含めない** — ECR イメージ側 (`/opt/ml/code`、`SAGEMAKER_PROGRAM` / + `SAGEMAKER_SUBMIT_DIRECTORY`) に同梱する。 +- パッケージングは専用スクリプト (`export_model_to_s3.py`) で行い、必要ファイルが揃わなければ fail-fast。 + 手動 `tar` は禁止 (同期ミスの温床)。`--dry-run` で中身検証だけできるようにしておく。 + +## 5. テストの path 解決 (conftest) + +ローカルとコンテナで import 文を共通化するため、`vN/inference/tests/conftest.py` で path を相対計算する: + +```python +_HERE = os.path.dirname(__file__) # vN/inference/tests +_INFER = os.path.dirname(_HERE) # vN/inference +_V = os.path.dirname(_INFER) # vN (features.py 同梱) +for p in (_V, _INFER, _HERE): + sys.path.insert(0, p) +RESULTS_DIR = os.path.join(_V, "train", "results") +DATASET_CSV = os.path.join(_V, "train", "data", "dataset.csv") +``` + +- コンテナでは `features.py` と `inference.py` が同じ `/opt/ml/code` に並ぶため、同じ + `from features import …` が成立する。 +- 学習データが存在するときだけ走る train/serve 一致テストを入れ、存在時に pass することを受け入れ基準にする。 + +## 6. TRAIN_SPEC.md の章立て + +版ルート `vN/TRAIN_SPEC.md` に置く。性能考察 (`*_report.md`) や経営層向け概要 (`executive_summary.md`) とは +目的を分け、**train↔serve 契約に限定**する。リンクで相互参照し実体を二重化しない。 + +``` +# vN TRAIN_SPEC — train↔serve 契約書 +0. train↔serve 全体像 … mermaid (学習→成果物→推論の流れ) +1. データソースと対象母集団 … 生成SQL/期間/母集団定義/リーク除外 +2. ターゲット定義 (クラス符号化) … 学習整数 ↔ 推論ラベルの対応、クラス順 +3. 特徴量契約 … to_model_input のマッピング、列順の唯一の正 +4. 欠損補完規約 … 0補完/NA補完/中央値補完の対象と実装位置 +5. 学習成果物 … tar.gz 同梱ファイルと生成元 +6. train/serve skew の防衛線 … 回帰テストの内容と「再学習で再生成するもの」 +7. 再学習手順 … コマンド列 + 変更時の同期チェックリスト +``` + +- 「特徴量列を変えたら何を再生成・再ビルドするか」をチェックリストで明示する + (マッピング辞書・成果物・テスト golden・コンテナ再ビルド)。 +- 行番号参照を使う場合、ファイル内容が不変ならパスのみ更新し行番号は維持する。 From 1c5c0b23351c9a36ebb10fd068f51825f32a41b4 Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Sat, 30 May 2026 07:43:25 +0000 Subject: [PATCH 2/5] =?UTF-8?q?docs:=20skill=20=E3=82=AB=E3=83=86=E3=82=B4?= =?UTF-8?q?=E3=83=AA=E6=95=B0=E3=82=92=E5=AE=9F=E6=95=B0=E3=81=AB=E6=95=B4?= =?UTF-8?q?=E5=90=88=20(=E5=85=A8=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=8845=E5=80=8B=E3=81=A7=E7=B5=B1=E4=B8=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README/AGENTS/ndf README/docs reference の skill 数・カテゴリ個数を実数45に修正 - 欠落していたカテゴリ (issue-plan-strategy / Playwright E2E 6個 / Google連携 2個 / AIクロスレビュー 2個 / skill-stats) を各ドキュメント本文へ追記し45個を網羅 - ndf README のセクション番号衝突 (### 5 重複) を解消し連番化 Co-Authored-By: Claude Opus 4.8 (1M context) --- AGENTS.md | 2 +- README.md | 16 +++++++------ docs/ndf-plugin-reference.md | 11 +++++++++ plugins/ndf/README.md | 44 ++++++++++++++++++++++++++++++++---- 4 files changed, 61 insertions(+), 12 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index fb93e91..fc872c5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -64,7 +64,7 @@ ai-plugins/ **NDFプラグイン**は、このマーケットプレイスの主要プラグインです(v4.10.0): - 8個の専門サブエージェント(director、data-analyst、corder、researcher、qa、debugger、devops-engineer、code-reviewer) -- 40個のSkills(PR/コードレビューワークフロー、AIクロスレビュー (codex/gemini)、原則・ガイドライン、MLモデル構造標準 (ml-model-structure)、issue→multi-PR ワークフロー戦略、SQL最適化、データエクスポート、skill利用統計、Codex CLI連携、Playwrightシナリオテスト、Google Drive/Chat連携 等) +- 45個のSkills(PR/コードレビューワークフロー、AIクロスレビュー (codex/gemini)、原則・ガイドライン、MLモデル構造標準 (ml-model-structure)、issue→multi-PR ワークフロー戦略、SQL最適化、データエクスポート、skill利用統計、Codex CLI連携、Playwrightシナリオテスト、Google Drive/Chat連携 等) - SessionStartフック(transcript保持期間自動管理 `cleanupPeriodDays >= 90`) - Stopフック(AI要約生成 + 自動Slack通知) - 外部AI委譲は `/ndf:codex` skill と `corder` エージェント経由で Codex CLI を呼び出し(v4.0.0 で Codex MCP サーバは廃止) diff --git a/README.md b/README.md index 22fccfb..72d224f 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,14 @@ Claude CodeプラグインおよびKiro CLI向けのスキル・MCP設定を共 **NDFプラグイン v4.0.0** は、以下の機能を**オールインワン**で提供する統合プラグインです: -- **34個のSkills**: - - PR/レビューワークフロー (pr, pr-tests, fix, review, review-branch, review-pr-comments, resolve-pr-comments, cherry-pick-pr, deploy, sync-main, merged, clean, browser-test) - - 原則・ガイドライン (ndf-policies, branch-fix-strategy, implementation-plan, investigation-rules, problem-solving, logging-guidelines, markdown-writing, ml-model-structure) - - データ分析・品質 (data-analyst-sql-optimization, data-analyst-export, qa-security-scan) - - 外部連携・環境 (codex, git-gh-operations, google-auth, python-execution, docker-container-access, deepwiki-transfer, knowledge-reorg, mcp-builder, official-skills-autoloader) - - 運用 (skill-stats) +- **45個のSkills**: + - PR/レビューワークフロー (13): pr, pr-tests, fix, review, review-branch, review-pr-comments, resolve-pr-comments, cherry-pick-pr, deploy, sync-main, merged, clean, browser-test + - 原則・ガイドライン (9): ndf-policies, branch-fix-strategy, implementation-plan, investigation-rules, problem-solving, logging-guidelines, markdown-writing, issue-plan-strategy, ml-model-structure + - データ分析・品質・環境 (12): data-analyst-sql-optimization, data-analyst-export, qa-security-scan, python-execution, docker-container-access, git-gh-operations, google-auth, codex, deepwiki-transfer, knowledge-reorg, mcp-builder, official-skills-autoloader + - E2Eテスト/Playwright (6): playwright-test-planning, playwright-script-creation, playwright-execution, playwright-report, playwright-kit-ops, playwright-scenario-test + - 外部サービス連携 (2): google-drive, google-chat + - AIクロスレビュー (2): cross-review, gemini + - 運用 (1): skill-stats - **8つの専門エージェント**: director, data-analyst, corder, researcher, qa, debugger, devops-engineer, code-reviewer - **自動フック**: SessionStart (transcript保持期間を最低90日に保つ) + Stop (AI要約生成+Slack通知) - **外部AI委譲**: `/ndf:codex` skill + `corder` エージェント経由で Codex CLI をバックグラウンド実行 (v4.0.0 で Codex MCP サーバは廃止) @@ -81,7 +83,7 @@ kiro-cli chat | プラグイン名 | バージョン | 説明 | 詳細 | |------------|----------|------|------| -| **ndf** | 4.10.0 | Claude Code / Kiro CLI開発環境を**オールインワン**で強化する統合プラグイン。8個の専門エージェント(director、data-analyst、corder、researcher、qa、debugger、devops-engineer、code-reviewer)、34個のSkills(PR/レビューワークフロー、原則・ガイドライン、MLモデル構造標準、データ分析、品質、Codex CLI連携、skill利用統計など)、SessionStartフック(transcript保持期間自動管理)、Stopフック(AI要約生成+Slack通知)を提供。v4.0.0 で Codex MCP サーバを廃止し、`/ndf:codex` skill + `corder` エージェント経由の CLI 直接実行に一本化。 | [README](./plugins/ndf/README.md) | +| **ndf** | 4.10.0 | Claude Code / Kiro CLI開発環境を**オールインワン**で強化する統合プラグイン。8個の専門エージェント(director、data-analyst、corder、researcher、qa、debugger、devops-engineer、code-reviewer)、45個のSkills(PR/レビューワークフロー、原則・ガイドライン、MLモデル構造標準、データ分析、品質、Playwright E2E、Google連携、AIクロスレビュー、Codex CLI連携、skill利用統計など)、SessionStartフック(transcript保持期間自動管理)、Stopフック(AI要約生成+Slack通知)を提供。v4.0.0 で Codex MCP サーバを廃止し、`/ndf:codex` skill + `corder` エージェント経由の CLI 直接実行に一本化。 | [README](./plugins/ndf/README.md) | ## 開発ガイドライン diff --git a/docs/ndf-plugin-reference.md b/docs/ndf-plugin-reference.md index 43567bd..dc7bae3 100644 --- a/docs/ndf-plugin-reference.md +++ b/docs/ndf-plugin-reference.md @@ -74,6 +74,7 @@ NDF プラグイン本体はコア MCP サーバを**同梱しない**(v4.0.0 | `problem-solving` | 根本原因分析・多層防御 | | `logging-guidelines` | ログ運用 (言語非依存) | | `markdown-writing` | Markdown 文書の体裁 | +| `issue-plan-strategy` | issue→plan 作成・multi-PR 実行のワークフロー戦略 | | `ml-model-structure` | ML モデル構築・推論API の標準ディレクトリ構造 (版内 feature SSoT / train↔serve 契約) | ### 4. 補助 Skills @@ -92,6 +93,16 @@ NDF プラグイン本体はコア MCP サーバを**同梱しない**(v4.0.0 | `knowledge-reorg` | 知識再編成 | | `mcp-builder` | MCP サーバ作成(Anthropic 公式) | | `official-skills-autoloader` | Anthropic 公式 Skill の自動ロード | +| `playwright-test-planning` | E2E テスト計画立案 (HTSM/ISTQB) | +| `playwright-script-creation` | E2E テストスクリプト作成 | +| `playwright-execution` | E2E 実行+エビデンス収集 (動画/a11y/CWV) | +| `playwright-report` | E2E テスト結果の Markdown レポート | +| `playwright-kit-ops` | playwright_kit スクリプト操作 | +| `playwright-scenario-test` | フル E2E ワークフロー統括 | +| `google-drive` | Google Drive/Docs 操作 | +| `google-chat` | Google Chat メッセージ取得 | +| `cross-review` | codex/gemini 両方でレビュー自動ループ | +| `gemini` | gemini CLI 直接実行 | ### 5. 専門エージェント(8個、モデル階層化) diff --git a/plugins/ndf/README.md b/plugins/ndf/README.md index db2f1dd..5834b60 100644 --- a/plugins/ndf/README.md +++ b/plugins/ndf/README.md @@ -7,7 +7,7 @@ Claude Code開発環境を**オールインワン**で強化する統合プラ このプラグイン1つで、以下の**すべて**の機能を利用できます: 1. **コアMCP**: なし (v4.0.0 で Codex MCP 廃止 / Serena MCP は `mcp-serena` プラグインに分離) -2. **Skills**: 40個(PR/コードレビュー系ワークフロー13個 + 原則・ガイドライン9個 (issue→multi-PR 戦略・MLモデル構造標準含む) + データ分析/品質/環境系13個 + skill-stats + Playwright シナリオテスト + Google Drive/Chat 連携 + AI クロスレビュー (cross-review / gemini)) +2. **Skills**: 45個(PR/コードレビュー系ワークフロー13個 + 原則・ガイドライン9個 (issue→multi-PR 戦略・MLモデル構造標準含む) + データ分析/品質/環境系12個 + Playwright E2E 6個 + Google Drive/Chat 連携2個 + AI クロスレビュー2個 (cross-review / gemini) + skill-stats 1個) 3. **専門エージェント**: 8つの特化型AIエージェント(director、data-analyst、corder、researcher、qa、debugger、devops-engineer、code-reviewer) 4. **自動フック**: Slack通知 @@ -452,7 +452,7 @@ Claude Codeが自動的に適切なMCPツールを選択・利用します。 | `/ndf:merged` | PRマージ後のローカルブランチクリーンアップ | `[PR番号]` | | `/ndf:clean` | マージ済みブランチの一括削除 | - | -### 4. 原則・ガイドライン系スキル(8個) +### 4. 原則・ガイドライン系スキル(9個) モデル起動型のガイドラインスキル。該当する文脈で自動参照される。 @@ -465,9 +465,10 @@ Claude Codeが自動的に適切なMCPツールを選択・利用します。 | `problem-solving` | 根本原因分析・上流修正・多層防御 | | `logging-guidelines` | ログ運用ガイドライン(言語非依存) | | `markdown-writing` | Markdown文書作成(mermaid/plantUML) | +| `issue-plan-strategy` | issue→plan作成・multi-PR実行のワークフロー戦略 | | `ml-model-structure` | MLモデル構築・推論API開発の標準ディレクトリ構造(版内feature SSoT / train↔serve契約) | -### 5. データ分析・品質・環境系スキル(13個) +### 5. データ分析・品質・環境系スキル(12個) Claudeが自律的に判断して起動するスキル群。 @@ -486,7 +487,42 @@ Claudeが自律的に判断して起動するスキル群。 | 公式連携 | `mcp-builder` | MCPサーバー作成ガイド(Anthropic公式、Apache-2.0) | | | `official-skills-autoloader` | Anthropic公式Skillの自動ロード | -### 5. 自動フック +### 6. E2Eテスト(Playwright)系スキル(6個) + +pytest-playwright ベースの E2E テストワークフロー。 + +| スキル名 | 概要 | +|---------|------| +| `playwright-test-planning` | HTSM/ISTQB に基づくテスト計画立案・page role 分類 | +| `playwright-script-creation` | 再現可能なテストスクリプト作成 | +| `playwright-execution` | テスト実行+エビデンス収集(動画/trace/a11y/CWV) | +| `playwright-report` | テスト結果の Markdown レポート生成 | +| `playwright-kit-ops` | playwright_kit スクリプト操作(init/分類/スキャン) | +| `playwright-scenario-test` | フル E2E ワークフロー統括(計画→作成→実行→レポート) | + +### 7. 外部サービス連携系スキル(2個) + +| スキル名 | 概要 | +|---------|------| +| `google-drive` | Google Drive/Docs のエクスポート・アップロード(公開共有リンク付与) | +| `google-chat` | Google Chat スペースのメッセージ取得・スペース一覧 | + +### 8. AIクロスレビュー系スキル(2個) + +外部 AI に第二意見レビュー/調査を委譲する。 + +| スキル名 | 概要 | +|---------|------| +| `cross-review` | PR を codex/gemini 両方でレビューし APPROVE まで自動ループ | +| `gemini` | gemini CLI 直接実行(コード生成/レビュー/調査) | + +### 9. 運用系スキル(1個) + +| スキル名 | 概要 | +|---------|------| +| `skill-stats` | Skill 利用統計の集計(呼び出し数/ヒット率) | + +### 10. 自動フック Claude Codeの起動時と終了時に自動的に以下が実行されます: From 77a3c1ad8a748178e6187acb82414fc23e4c9a95 Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Sat, 30 May 2026 14:09:37 +0000 Subject: [PATCH 3/5] =?UTF-8?q?Fix:=20v4.10.0=20=E5=90=91=E3=81=91?= =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3=E8=A1=A8=E8=A8=98?= =?UTF-8?q?=E3=81=A8=E3=82=A8=E3=83=BC=E3=82=B8=E3=82=A7=E3=83=B3=E3=83=88?= =?UTF-8?q?=E4=B8=80=E8=A6=A7=E3=81=AE=E4=B8=8D=E6=95=B4=E5=90=88=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README.md: 冒頭の NDFプラグイン バージョン表記を v4.0.0 → v4.10.0 - docs/ndf-plugin-reference.md: 現行バージョンを v4.7.0 → v4.10.0、 ml-model-structure skill の記載追加、バージョン変遷表に v4.10.0 を追記 - plugins/ndf/README.md: 実体のない scanner エージェントを削除し、 欠落していた debugger / devops-engineer / code-reviewer の詳細を追加(実在8エージェントに整合) Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 2 +- docs/ndf-plugin-reference.md | 3 +- plugins/ndf/README.md | 60 +++++++++++++++++++++++++----------- 3 files changed, 45 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 72d224f..79fbc2d 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Claude CodeプラグインおよびKiro CLI向けのスキル・MCP設定を共 このマーケットプレイスは、チーム全体でAI開発ツール(Claude Code / Kiro CLI)の導入を加速するための事前設定されたプラグインを提供します。 -**NDFプラグイン v4.0.0** は、以下の機能を**オールインワン**で提供する統合プラグインです: +**NDFプラグイン v4.10.0** は、以下の機能を**オールインワン**で提供する統合プラグインです: - **45個のSkills**: - PR/レビューワークフロー (13): pr, pr-tests, fix, review, review-branch, review-pr-comments, resolve-pr-comments, cherry-pick-pr, deploy, sync-main, merged, clean, browser-test diff --git a/docs/ndf-plugin-reference.md b/docs/ndf-plugin-reference.md index dc7bae3..9456872 100644 --- a/docs/ndf-plugin-reference.md +++ b/docs/ndf-plugin-reference.md @@ -4,7 +4,7 @@ NDF プラグインは、Claude Code / Kiro CLI 向けのオールインワン開発支援プラグイン。エージェント、Skills、フックを統合して提供する。 -**現行バージョン**: **v4.7.0** — `/ndf:fix` の修正ポリシー刷新(minor/nit のうち performance/readability/duplication は積極修正、+30 行超は要問い合わせ)、CI 完了待ち廃止、PR範囲外 flaky テストも修正対象。`/ndf:cross-review` 内のサブエージェントプロンプトも同期。重要度ラベルは AI agent の付与を鵜呑みにせず独自再判定。完了報告には PR URL 必須。詳細は [CHANGELOG.md](../plugins/ndf/CHANGELOG.md)。`/ndf:codex` skill + `corder` エージェント経由の Codex CLI 直接実行に一本化、Serena MCP は別プラグイン `mcp-serena` に分離済み、Playwright シナリオ E2E、Google Drive / Chat 連携 skill を提供。 +**現行バージョン**: **v4.10.0** — `ml-model-structure` skill(MLモデル構築・推論API開発の標準ディレクトリ構造: 版内feature SSoT / train↔serve契約)を追加。`/ndf:fix` の修正ポリシー刷新(minor/nit のうち performance/readability/duplication は積極修正、+30 行超は要問い合わせ)、CI 完了待ち廃止、PR範囲外 flaky テストも修正対象。`/ndf:cross-review` 内のサブエージェントプロンプトも同期。重要度ラベルは AI agent の付与を鵜呑みにせず独自再判定。完了報告には PR URL 必須。詳細は [CHANGELOG.md](../plugins/ndf/CHANGELOG.md)。`/ndf:codex` skill + `corder` エージェント経由の Codex CLI 直接実行に一本化、Serena MCP は別プラグイン `mcp-serena` に分離済み、Playwright シナリオ E2E、Google Drive / Chat 連携 skill を提供。 ## ディレクトリ構造 @@ -187,3 +187,4 @@ claude -p --settings '{"disableAllHooks": true, "disableAllPlugins": true}' --ou | v3.7.0 | transcript 保持期間自動管理 hook、`/ndf:skill-stats` skill | | **v4.0.0 (BREAKING)** | **Codex MCP 廃止 → CLI 直接実行一本化**、レガシー CLAUDE.ndf.md 救済機構削除、skill-stats にプロジェクト別/日付範囲フィルタ追加 | | **v4.1.0** | `playwright-scenario-test` / `google-drive` / `google-chat` skill 追加、`google-auth` v0.2.0 (永続トークン `~/.config/gcloud/google_token.json` + `get_credentials()` API + 手動 copy-paste フロー) | +| **v4.10.0** | `ml-model-structure` skill 追加 (MLモデル構築・推論API開発の標準ディレクトリ構造、版内 feature SSoT / train↔serve 契約) | diff --git a/plugins/ndf/README.md b/plugins/ndf/README.md index 5834b60..faaf578 100644 --- a/plugins/ndf/README.md +++ b/plugins/ndf/README.md @@ -381,24 +381,6 @@ Claude Codeが自動的に適切なMCPツールを選択・利用します。 @researcher AWS Lambda関数のベストプラクティスを調査してください ``` -#### `scanner` エージェント -**専門領域:** ファイル読み取りとOCR - -**使用MCPツール:** -- Codex CLI (`/ndf:codex` skill または `corder` エージェント経由、MCP非使用)(ファイル読み取り) - -**機能:** -- PDFドキュメントのテキスト抽出 -- 画像内のテキスト認識(OCR) -- PowerPoint/Excelファイルの読み取り -- 読み取った内容の構造化 -- Markdown/CSV/JSON形式への変換 - -**使用例:** -``` -@scanner document.pdfの内容を読み取って要約してください -``` - #### `qa` エージェント **専門領域:** 品質管理とテスト @@ -423,6 +405,48 @@ Claude Codeが自動的に適切なMCPツールを選択・利用します。 @qa プラグインがClaude Code仕様に準拠しているか確認してください ``` +#### `debugger` エージェント +**専門領域:** エラー・バグの根本原因分析 + +**機能:** +- スタックトレース・ログ・失敗テストからの原因特定 +- 症状ではなく根本原因の究明 +- 再現手順の整理 +- 最小限の修正案の提示 + +**使用例:** +``` +@debugger このスタックトレースから例外の原因を特定してください +``` + +#### `devops-engineer` エージェント +**専門領域:** コンテナ・CI/CD・インフラ + +**機能:** +- Dockerfile / docker-compose の作成・最適化 +- GitHub Actions ワークフロー設計 +- Kubernetes マニフェスト作成 +- CI/CD パイプラインのデバッグ +- インフラ IaC + +**使用例:** +``` +@devops-engineer このアプリのDockerfileを最適化してください +``` + +#### `code-reviewer` エージェント +**専門領域:** git diff / PR差分の一般コードレビュー + +**機能:** +- 可読性・設計・バグ・セキュリティ・テスト観点のチェック +- 重要度順の指摘整理 +- Claude 単体で外部AIを使わず素早くレビュー(外部AI第二意見が必要な場合は `corder` を利用) + +**使用例:** +``` +@code-reviewer 直近のコミットの差分をレビューしてください +``` + ### 3. PR/コードレビューワークフロースキル(13個) 開発の各段階で使用するスキル群です。`/ndf:*` のスラッシュコマンドで呼び出します。 From ac880616c4f844bfa7a86d6fbced0e702f436e7d Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Sat, 30 May 2026 14:17:08 +0000 Subject: [PATCH 4/5] =?UTF-8?q?Update:=20CHANGELOG=20=E3=81=AB=20v4.10.0?= =?UTF-8?q?=20=E3=82=A8=E3=83=B3=E3=83=88=E3=83=AA=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=81=97=E3=83=AA=E3=83=95=E3=82=A1=E3=83=AC=E3=83=B3?= =?UTF-8?q?=E3=82=B9=E3=81=A8=E3=81=AE=E6=95=B4=E5=90=88=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ndf-plugin-reference.md が v4.10.0 の詳細参照先として CHANGELOG.md を案内するが、 CHANGELOG の最新項目が v4.7.6 のままだった codex レビュー指摘 (minor) に対応。 ml-model-structure skill 追加・skill 数 45 更新の v4.10.0 エントリを追記。 Co-Authored-By: Claude Opus 4.8 (1M context) --- plugins/ndf/CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/ndf/CHANGELOG.md b/plugins/ndf/CHANGELOG.md index 200ba47..ec5d061 100644 --- a/plugins/ndf/CHANGELOG.md +++ b/plugins/ndf/CHANGELOG.md @@ -1,5 +1,18 @@ # NDF Plugin CHANGELOG +### v4.10.0 (feature/add-ml-model-structure-skill: ml-model-structure skill 追加) + +機械学習モデル構築・推論API開発の標準ディレクトリ構造を提供する新規 skill を追加。 +skill 数を 45 個に更新し、関連ドキュメントのバージョン・skill 数表記を整合。 + +- **新規 skill `ml-model-structure` 追加** + (`skills/ml-model-structure/`): + - 機械学習モデルの版ごと自己完結構造 + 版内 feature SSoT + 推論コンテナ規約。 + - `references/inference-and-contract.md` に train↔serve 契約・推論コンテナ規約を分離。 +- **plugin.json: version 4.9.0 → 4.10.0、skills 配列に `ml-model-structure` を追加**、 + description を 45 skills に更新。 +- **marketplace.json / README / AGENTS.md / ndf-plugin-reference: skill 数・version 表記を整合**。 + ### v4.7.6 (fix/review-pr-comments: PRコメント取得を3ソース対応に拡張) PRレビューコメント取得が review body / PR レベルコメントを含む3ソースに対応。 From 8f7e74081c3bd17c7377c8164d9b59944292de6e Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Sat, 30 May 2026 14:21:04 +0000 Subject: [PATCH 5/5] =?UTF-8?q?Fix:=20README=20=E6=AF=94=E8=BC=83=E8=A1=A8?= =?UTF-8?q?=E3=81=AE=E3=82=B9=E3=82=AD=E3=83=AB=E6=95=B0=E3=82=92=E5=AE=9F?= =?UTF-8?q?=E6=95=B0=2045=E5=80=8B=20=E3=81=AB=E6=9B=B4=E6=96=B0=20(?= =?UTF-8?q?=E6=97=A7=E8=A1=A8=E8=A8=9823=E5=80=8B=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- plugins/ndf/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ndf/README.md b/plugins/ndf/README.md index faaf578..93019f1 100644 --- a/plugins/ndf/README.md +++ b/plugins/ndf/README.md @@ -761,7 +761,7 @@ NDFプラグインと併用することで、以下の機能が追加されま | プラグイン | 役割 | |-----------|------| -| **NDFプラグイン** | MCP統合、スキル(23個)、専門エージェント | +| **NDFプラグイン** | MCP統合、スキル(45個)、専門エージェント | | **affaan-mプラグイン** | コンテキスト管理、品質保証、TDDワークフロー | 詳細は[affaan-mプラグインREADME](../affaan-m/README.md)を参照してください。