opencroc 0.6.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md CHANGED
@@ -1,317 +1,386 @@
1
- <p align="center">
2
- <img src="assets/banner.png" alt="OpenCroc バナー" width="820" />
3
- </p>
4
-
5
- <h1 align="center">OpenCroc</h1>
6
-
7
- <p align="center">
8
- <strong>ソースコードを読み取り、テストを自動生成し、失敗を自己修復する AI ネイティブ E2E テストフレームワーク。</strong>
9
- </p>
10
-
11
- <p align="center">
12
- <a href="https://www.npmjs.com/package/opencroc"><img src="https://img.shields.io/npm/v/opencroc?color=green" alt="npm version" /></a>
13
- <a href="https://github.com/opencroc/opencroc/actions/workflows/ci.yml"><img src="https://github.com/opencroc/opencroc/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI" /></a>
14
- <a href="https://github.com/opencroc/opencroc/blob/main/LICENSE"><img src="https://img.shields.io/github/license/opencroc/opencroc" alt="MIT License" /></a>
15
- <a href="https://opencroc.com"><img src="https://img.shields.io/badge/docs-opencroc.com-blue" alt="Documentation" /></a>
16
- </p>
17
-
18
- <p align="center">
19
- <a href="README.en.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.ja.md">日本語</a>
20
- </p>
21
-
22
- ---
23
-
24
- ## OpenCroc とは
25
-
26
- OpenCroc は [Playwright](https://playwright.dev) 上に構築された **AI ネイティブ E2E テストフレームワーク** です。手作業で大量のテストスクリプトを書く代わりに、OpenCroc は**バックエンドのソースコード**(モデル、コントローラー、DTO)を解析し、API チェーン、シードデータ、リクエストボディ、アサーションを含む E2E テストスイートを自動生成します。
27
-
28
- テストが失敗した場合、単なるエラー出力で終わりません。リクエストチェーン全体をたどって**根本原因を特定**し、**修正パッチを生成**し、**再実行で修正を検証**します。
29
-
30
- ### 主な機能
31
-
32
- | 機能 | 説明 |
33
- |---|---|
34
- | **ソースコード認識型テスト生成** | [ts-morph](https://ts-morph.com) で Sequelize/TypeORM モデル、Express/NestJS コントローラー、DTO デコレーターを解析し API 面を把握 |
35
- | **AI 駆動の設定生成** | LLM がリクエストテンプレート、シードデータ、パラメータマッピングを生成し、3層検証(schema -> semantic -> dry-run)で確認 |
36
- | **インテリジェントなチェーン計画** | API 依存 DAG を構築し、トポロジカルソートと貪欲最適化でテストチェーンを設計 |
37
- | **ログ駆動の完了判定** | `networkidle` を超えて、バックエンド実行ログ(`api_exec end`)で完了を検証 |
38
- | **失敗チェーンの原因追跡** | ネットワークエラー -> 遅延 API -> バックエンドログの順で追跡し根因特定 |
39
- | **制御された自己修復** | `backup -> AI patch -> dry-run -> apply -> re-run -> verify -> rollback` を安全ゲート付きで実行 |
40
- | **影響範囲分析** | 外部キー関係を BFS でたどり、影響範囲を可視化し Mermaid 図を生成 |
41
-
42
- ## クイックスタート
43
-
44
- ### 前提条件
45
-
46
- - Node.js >= 18
47
- - Express/NestJS + Sequelize/TypeORM を利用するバックエンドプロジェクト
48
-
49
- ### インストール
50
-
51
- ```bash
52
- npm install opencroc --save-dev
53
- ```
54
-
55
- ### 初期化
56
-
57
- ```bash
58
- npx opencroc init
59
- ```
60
-
61
- このコマンドで以下を実行します:
62
- 1. プロジェクト構成をスキャン
63
- 2. ORM とフレームワークを検出
64
- 3. `opencroc.config.ts` を初期生成
65
- 4. サンプルテストを生成
66
-
67
- ### テスト生成
68
-
69
- ```bash
70
- # 単一モジュールのテスト生成
71
- npx opencroc generate --module=knowledge-base
72
-
73
- # 全モジュールのテスト生成
74
- npx opencroc generate --all
75
-
76
- # ドライラン(ファイルを書き込まない)
77
- npx opencroc generate --all --dry-run
78
- ```
79
-
80
- ### テスト実行
81
-
82
- ```bash
83
- # 生成済みテストをすべて実行
84
- npx opencroc test
85
-
86
- # 特定モジュールのみ実行
87
- npx opencroc test --module=knowledge-base
88
-
89
- # 自己修復モードで実行
90
- npx opencroc test --self-heal
91
- ```
92
-
93
- ### AI 設定の検証
94
-
95
- ```bash
96
- # 生成設定を検証
97
- npx opencroc validate --all
98
-
99
- # AI 生成結果とベースラインを比較
100
- npx opencroc compare --baseline=report-a.json --current=report-b.json
101
- ```
102
-
103
- ## アーキテクチャ
104
-
105
- ```
106
- ┌─────────────────────────────────────────────────────────────┐
107
- │ CLI / Orchestrator │
108
- ├──────────┬──────────┬──────────┬──────────┬─────────────────┤
109
- │ Source │ Chain │ Test │ Execution│ Self-Healing │
110
- │ Parser │ Planner │Generator │ Engine │ Engine │
111
- │ │ │ │ │ │
112
- ts-morph │ DAG + │ Template │Playwright│ AI Attribution │
113
- │ Model │ Topo │ + AI │ + Log │ + Controlled │
114
- Controller│ Sort + │ Config │ Driven │ Fix + Verify │
115
- DTO │ Greedy │ Merge │ Assert │ + Rollback │
116
- ├──────────┴──────────┴──────────┴──────────┴─────────────────┤
117
- │ Observation Bus (Network + Backend Logs) │
118
- ├──────────────────────────────────────────────────────────────┤
119
- │ Report Engine (HTML / JSON / Markdown) │
120
- └──────────────────────────────────────────────────────────────┘
121
- ```
122
-
123
- ### 6 段階パイプライン
124
-
125
- ```
126
- Source Scan -> ER Diagram -> API Analysis -> Chain Planning -> Test Generation -> Failure Analysis
127
- │ │ │ │ │ │
128
- ts-morph Mermaid Dependency Topological Playwright + Root Cause +
129
- parsing erDiagram DAG builder + greedy AI body/seed Impact map
130
- ```
131
-
132
- ## 仕組み
133
-
134
- ### 1. ソース解析
135
-
136
- OpenCroc は [ts-morph](https://ts-morph.com) を使ってバックエンドを静的解析します。
137
-
138
- - **Models**: Sequelize `Model.init()` / TypeORM `@Entity()` からテーブル名、列型、インデックス、外部キーを抽出
139
- - **Controllers**: Express `router.get/post/put/delete` からルート、HTTP メソッド、パスパラメータを抽出
140
- - **DTOs**: `@IsString()`、`@IsNumber()`、`@IsOptional()` からバリデーションルールを抽出
141
-
142
- ### 2. AI 設定生成
143
-
144
- 各モジュールごとに、OpenCroc LLM(OpenAI / ZhiPu / OpenAI 互換 API)を呼び出して以下を生成します。
145
-
146
- - **リクエストボディテンプレート**: フィールド精度の高い POST/PUT ペイロード
147
- - **シードデータ**: 正しい API 順序を持つ `beforeAll` セットアップ
148
- - **パラメータマッピング**: パスパラメータ別名(`/:id` -> `categoryId`)
149
- - **ID エイリアス**: 複数リソースチェーンでの ID 衝突防止
150
-
151
- 各設定は **3 層検証** を通過します。
152
- 1. **Schema 検証**: JSON 構造の完全性
153
- 2. **Semantic 検証**: フィールド値がソースメタデータに一致するか
154
- 3. **Dry-run 検証**: TypeScript コンパイル確認
155
-
156
- 失敗した設定は書き込み前に自動修正(最大 3 ラウンド)されます。
157
-
158
- ### 3. ログ駆動の完了判定
159
-
160
- 壊れやすい `networkidle` に依存せず、以下で判定します。
161
-
162
- ```
163
- Frontend Request -> Backend api_exec start log -> Backend processing -> api_exec end log
164
-
165
- OpenCroc polls end logs to confirm completion
166
- ```
167
-
168
- フロントが待機状態でもバックエンドが継続処理中のケースを検出できます。
169
-
170
- ### 4. 自己修復ループ
171
-
172
- ```
173
- Test Failure
174
- -> AI Attribution (LLM + heuristic fallback)
175
- -> Generate Fix Patch
176
- -> Dry-Run Validation
177
- -> Apply Patch (with backup)
178
- -> Re-run Failed Tests
179
- -> Verify Fix
180
- -> Commit or Rollback
181
- ```
182
-
183
- ## 実プロジェクト検証
184
-
185
- OpenCroc は**本番規模の RBAC システム**(マルチテナント企業権限管理)で検証済みです。100+ の Sequelize モデル、75+ の Express コントローラー、モデルファイル内埋め込みアソシエーションを含みます:
186
-
187
- ```
188
- $ npx tsx examples/rbac-system/smoke-test.ts
189
-
190
- Modules : 5 (default, aigc, data-platform, integration, workflow)
191
- ER Diagrams : 5
192
- [default] 102 tables, 65 relations
193
- [aigc] 6 tables, 0 relations
194
- [data-platform] 4 tables, 0 relations
195
- [integration] 14 tables, 0 relations
196
- [workflow] 2 tables, 0 relations
197
- Chain Plans : 5
198
- [aigc] 78 chains, 150 steps
199
- Generated Files: 78
200
- Duration : 1153ms
201
- ```
202
-
203
- 主な結果:
204
- - フラットモデルレイアウトから **102 テーブル** と **65 の外部キー関係** を正確に抽出
205
- - 専用の association ファイル不要 モデルファイル内の**埋め込みアソシエーション**(`.belongsTo()` / `.hasMany()`)を検出
206
- - 5 モジュールで **78 テストファイル** を約1秒で生成
207
- - フラット(`models/*.ts`)とネスト(`models/module/*.ts`)の両ディレクトリ構造に対応
208
-
209
- ## 設定例
210
-
211
- ```typescript
212
- // opencroc.config.ts
213
- import { defineConfig } from 'opencroc';
214
-
215
- export default defineConfig({
216
- // バックエンドソースのパス
217
- backend: {
218
- modelsDir: 'src/models',
219
- controllersDir: 'src/controllers',
220
- servicesDir: 'src/services',
221
- },
222
-
223
- // 対象アプリケーション
224
- baseUrl: 'http://localhost:3000',
225
- apiBaseUrl: 'http://localhost:3000/api',
226
-
227
- // AI 設定
228
- ai: {
229
- provider: 'openai', // 'openai' | 'zhipu' | 'custom'
230
- apiKey: process.env.AI_API_KEY,
231
- model: 'gpt-4o-mini',
232
- },
233
-
234
- // テスト実行
235
- execution: {
236
- workers: 4,
237
- timeout: 30_000,
238
- retries: 1,
239
- },
240
-
241
- // ログ駆動完了判定(バックエンド側の計測が必要)
242
- logCompletion: {
243
- enabled: true,
244
- endpoint: '/internal/test-logs',
245
- pollIntervalMs: 500,
246
- timeoutMs: 10_000,
247
- },
248
-
249
- // 自己修復
250
- selfHealing: {
251
- enabled: false,
252
- fixScope: 'config-only', // 'config-only' | 'config-and-source'
253
- maxFixRounds: 3,
254
- dryRunFirst: true,
255
- },
256
- });
257
- ```
258
-
259
- ## 対応技術スタック
260
-
261
- | レイヤー | 対応済み | 予定 |
262
- |---|---|---|
263
- | **ORM** | Sequelize, TypeORM, Prisma, Drizzle | — |
264
- | **Framework** | Express | NestJS, Fastify, Koa |
265
- | **Test Runner** | Playwright | — |
266
- | **LLM** | OpenAI, ZhiPu (GLM), Ollama (local) | Anthropic |
267
- | **Database** | MySQL, PostgreSQL | SQLite, MongoDB |
268
-
269
- ## 比較
270
-
271
- | 機能 | OpenCroc | Playwright | Metersphere | auto-playwright |
272
- |---|---|---|---|---|
273
- | ソース認識生成 | ✅ | ❌ | ❌ | ❌ |
274
- | AI 設定生成 + 検証 | ✅ | ❌ | ❌ | ❌ |
275
- | ログ駆動完了判定 | ✅ | ❌ | ❌ | ❌ |
276
- | 失敗チェーン帰属分析 | ✅ | ❌ | Partial | ❌ |
277
- | 自己修復 + ロールバック | ✅ | ❌ | ❌ | ❌ |
278
- | API 依存 DAG | ✅ | ❌ | ❌ | ❌ |
279
- | ゼロ設定テスト生成 | ✅ | Codegen only | Manual | NL->action |
280
- | 影響範囲分析 | ✅ | ❌ | ❌ | ❌ |
281
-
282
- ## Roadmap
283
-
284
- - [x] 6-stage source-to-test pipeline
285
- - [x] AI configuration generation with 3-layer validation
286
- - [x] Controlled self-healing loop
287
- - [x] Log-driven completion detection
288
- - [x] Failure chain attribution + impact analysis
289
- - [x] TypeORM / Prisma adapter
290
- - [x] Ollama local LLM support
291
- - [x] Real-world validation (102 tables, 65 relations, 78 generated tests)
292
- - [x] GitHub Actions / GitLab CI integration
293
- - [x] VS Code extension scaffold
294
- - [x] Plugin system
295
- - [x] HTML / JSON / Markdown report generation
296
- - [x] NestJS controller parser
297
- - [x] Visual dashboard (opencroc.com)
298
- - [x] Drizzle ORM adapter
299
-
300
- ## ドキュメント
301
-
302
- 詳細は **[opencroc.com](https://opencroc.com)** を参照してください。あわせて以下も確認できます。
303
-
304
- - [Architecture Guide](docs/architecture.md)
305
- - [Configuration Reference](docs/configuration.md)
306
- - [Backend Instrumentation Guide](docs/backend-instrumentation.md)
307
- - [AI Provider Setup](docs/ai-providers.md)
308
- - [Self-Healing Guide](docs/self-healing.md)
309
- - [Troubleshooting](docs/troubleshooting.md)
310
-
311
- ## コントリビュート
312
-
313
- 貢献を歓迎します。ガイドラインは [CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。
314
-
315
- ## ライセンス
316
-
317
- [MIT](LICENSE) © 2026 OpenCroc Contributors
1
+ <p align="center">
2
+ <img src="assets/banner.png" alt="OpenCroc バナー" width="820" />
3
+ </p>
4
+
5
+ <h1 align="center">OpenCroc</h1>
6
+
7
+ <p align="center">
8
+ <strong>ソースコードを読み取り、テストを自動生成し、失敗を自己修復する AI ネイティブ E2E テストフレームワーク。</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://www.npmjs.com/package/opencroc"><img src="https://img.shields.io/npm/v/opencroc?color=green" alt="npm version" /></a>
13
+ <a href="https://github.com/opencroc/opencroc/actions/workflows/ci.yml"><img src="https://github.com/opencroc/opencroc/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI" /></a>
14
+ <a href="https://github.com/opencroc/opencroc/blob/main/LICENSE"><img src="https://img.shields.io/github/license/opencroc/opencroc" alt="MIT License" /></a>
15
+ <a href="https://opencroc.com"><img src="https://img.shields.io/badge/docs-opencroc.com-blue" alt="Documentation" /></a>
16
+ </p>
17
+
18
+ <p align="center">
19
+ <a href="README.en.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.ja.md">日本語</a>
20
+ </p>
21
+
22
+ ---
23
+
24
+ ## OpenCroc とは
25
+
26
+ OpenCroc は [Playwright](https://playwright.dev) 上に構築された **AI ネイティブ E2E テストフレームワーク** です。手作業で大量のテストスクリプトを書く代わりに、OpenCroc は**バックエンドのソースコード**(モデル、コントローラー、DTO)を解析し、API チェーン、シードデータ、リクエストボディ、アサーションを含む E2E テストスイートを自動生成します。
27
+
28
+ テストが失敗した場合、単なるエラー出力で終わりません。リクエストチェーン全体をたどって**根本原因を特定**し、**修正パッチを生成**し、**再実行で修正を検証**します。
29
+
30
+ ### 主な機能
31
+
32
+ | 機能 | 説明 |
33
+ |---|---|
34
+ | **ソースコード認識型テスト生成** | [ts-morph](https://ts-morph.com) で Sequelize/TypeORM モデル、Express/NestJS コントローラー、DTO デコレーターを解析し API 面を把握 |
35
+ | **AI 駆動の設定生成** | LLM がリクエストテンプレート、シードデータ、パラメータマッピングを生成し、3層検証(schema -> semantic -> dry-run)で確認 |
36
+ | **インテリジェントなチェーン計画** | API 依存 DAG を構築し、トポロジカルソートと貪欲最適化でテストチェーンを設計 |
37
+ | **ログ駆動の完了判定** | `networkidle` を超えて、バックエンド実行ログ(`api_exec end`)で完了を検証 |
38
+ | **失敗チェーンの原因追跡** | ネットワークエラー -> 遅延 API -> バックエンドログの順で追跡し根因特定 |
39
+ | **制御された自己修復** | `backup -> AI patch -> dry-run -> apply -> re-run -> verify -> rollback` を安全ゲート付きで実行 |
40
+ | **影響範囲分析** | 外部キー関係を BFS でたどり、影響範囲を可視化し Mermaid 図を生成 |
41
+
42
+ ## クイックスタート
43
+
44
+ ### 前提条件
45
+
46
+ - Node.js >= 18
47
+ - Express/NestJS + Sequelize/TypeORM を利用するバックエンドプロジェクト
48
+
49
+ ### インストール
50
+
51
+ ```bash
52
+ npm install opencroc --save-dev
53
+ ```
54
+
55
+ ### 初期化
56
+
57
+ ```bash
58
+ npx opencroc init
59
+ ```
60
+
61
+ このコマンドで以下を実行します:
62
+ 1. プロジェクト構成をスキャン
63
+ 2. ORM とフレームワークを検出
64
+ 3. `opencroc.config.ts` を初期生成
65
+ 4. サンプルテストを生成
66
+
67
+ ### テスト生成
68
+
69
+ ```bash
70
+ # 単一モジュールのテスト生成
71
+ npx opencroc generate --module=knowledge-base
72
+
73
+ # 全モジュールのテスト生成
74
+ npx opencroc generate --all
75
+
76
+ # ドライラン(ファイルを書き込まない)
77
+ npx opencroc generate --all --dry-run
78
+ ```
79
+
80
+ ### テスト実行
81
+
82
+ ```bash
83
+ # 生成済みテストをすべて実行
84
+ npx opencroc test
85
+
86
+ # 特定モジュールのみ実行
87
+ npx opencroc test --module=knowledge-base
88
+
89
+ # 自己修復モードで実行
90
+ npx opencroc test --self-heal
91
+ ```
92
+
93
+ ### AI 設定の検証
94
+
95
+ ```bash
96
+ # 生成設定を検証
97
+ npx opencroc validate --all
98
+
99
+ # AI 生成結果とベースラインを比較
100
+ npx opencroc compare --baseline=report-a.json --current=report-b.json
101
+ ```
102
+
103
+ ### OpenCroc Studio の起動
104
+
105
+ OpenCroc Studio は**ピクセルアート風ワニオフィス** + リアルタイム**ナレッジグラフ** UI です。ローカル Web サーバーとして起動し、プロジェクト構造・Agent ステータス・テスト結果を可視化します。
106
+
107
+ ```bash
108
+ # Studio を起動(http://localhost:8765 をブラウザで自動オープン)
109
+ npx opencroc serve
110
+
111
+ # カスタムポート
112
+ npx opencroc serve --port 3000
113
+
114
+ # ブラウザ自動オープンを無効化
115
+ npx opencroc serve --no-open
116
+
117
+ # ホスト指定(リモートアクセス用)
118
+ npx opencroc serve --host 0.0.0.0 --port 8765
119
+ ```
120
+
121
+ Studio の機能:
122
+ - **ナレッジグラフキャンバス** — モデル・コントローラー・API 関係のインタラクティブグラフ(ドラッグ、ズーム、ホバー)
123
+ - **ピクセルワニオフィス** — 6 体の AI Agent(パーサー 🐊、アナライザー 🐊、テスター 🐊、ヒーラー 🐊、プランナー 🐊、レポーター 🐊)、リアルタイムステータスアニメーション付き
124
+ - **リアルタイム WebSocket** — Agent ステータスとグラフ変更を即座にブラウザへ配信
125
+ - **モジュールサイドバー** — 検出されたモジュールと Agent ステータスをひと目で確認
126
+ - **REST API** `GET /api/project`(グラフデータ)、`GET /api/agents`(Agent ステータス)、`POST /api/project/refresh`(再スキャン)
127
+
128
+ ### フルパイプライン(ワンコマンド)
129
+
130
+ ```bash
131
+ # すべてを実行:generate → execute → analyze → heal → report
132
+ npx opencroc run
133
+
134
+ # オプション付き
135
+ npx opencroc run --module=users --self-heal --report html,json
136
+ ```
137
+
138
+ ### CI/CD 統合
139
+
140
+ ```bash
141
+ # GitHub Actions ワークフローを生成
142
+ npx opencroc ci --platform github
143
+
144
+ # GitLab CI パイプラインを生成
145
+ npx opencroc ci --platform gitlab --self-heal
146
+ ```
147
+
148
+ ### Dashboard とレポート
149
+
150
+ ```bash
151
+ # ビジュアル Dashboard を生成
152
+ npx opencroc dashboard
153
+
154
+ # 複数形式のレポートを生成
155
+ npx opencroc report --format html,json,markdown
156
+ ```
157
+
158
+ ## アーキテクチャ
159
+
160
+ ```
161
+ ┌─────────────────────────────────────────────────────────────┐
162
+ │ OpenCroc Studio (localhost:8765) │
163
+ │ ピクセルワニオフィス + ナレッジグラフ + WebSocket │
164
+ ├─────────────────────────────────────────────────────────────┤
165
+ │ CLI / Orchestrator │
166
+ ├──────────┬──────────┬──────────┬──────────┬─────────────────┤
167
+ │ Source │ Chain │ Test │ Execution│ Self-Healing │
168
+ │ Parser │ Planner │Generator │ Engine │ Engine │
169
+ │ │ │ │ │ │
170
+ ts-morph │ DAG + │ Template │Playwright│ AI Attribution │
171
+ │ Model │ Topo │ + AI │ + Log │ + Controlled │
172
+ │ Controller│ Sort + │ Config │ Driven │ Fix + Verify │
173
+ DTO │ Greedy │ Merge │ Assert │ + Rollback │
174
+ ├──────────┴──────────┴──────────┴──────────┴─────────────────┤
175
+ │ Observation Bus (Network + Backend Logs) │
176
+ ├──────────────────────────────────────────────────────────────┤
177
+ │ Report Engine (HTML / JSON / Markdown)
178
+ └──────────────────────────────────────────────────────────────┘
179
+ ```
180
+
181
+ ### 6 段階パイプライン
182
+
183
+ ```
184
+ Source Scan -> ER Diagram -> API Analysis -> Chain Planning -> Test Generation -> Failure Analysis
185
+ │ │ │ │ │ │
186
+ ts-morph Mermaid Dependency Topological Playwright + Root Cause +
187
+ parsing erDiagram DAG builder + greedy AI body/seed Impact map
188
+ ```
189
+
190
+ ## 仕組み
191
+
192
+ ### 1. ソース解析
193
+
194
+ OpenCroc は [ts-morph](https://ts-morph.com) を使ってバックエンドを静的解析します。
195
+
196
+ - **Models**: Sequelize `Model.init()` / TypeORM `@Entity()` からテーブル名、列型、インデックス、外部キーを抽出
197
+ - **Controllers**: Express `router.get/post/put/delete` からルート、HTTP メソッド、パスパラメータを抽出
198
+ - **DTOs**: `@IsString()`、`@IsNumber()`、`@IsOptional()` からバリデーションルールを抽出
199
+
200
+ ### 2. AI 設定生成
201
+
202
+ 各モジュールごとに、OpenCroc は LLM(OpenAI / ZhiPu / OpenAI 互換 API)を呼び出して以下を生成します。
203
+
204
+ - **リクエストボディテンプレート**: フィールド精度の高い POST/PUT ペイロード
205
+ - **シードデータ**: 正しい API 順序を持つ `beforeAll` セットアップ
206
+ - **パラメータマッピング**: パスパラメータ別名(`/:id` -> `categoryId`)
207
+ - **ID エイリアス**: 複数リソースチェーンでの ID 衝突防止
208
+
209
+ 各設定は **3 層検証** を通過します。
210
+ 1. **Schema 検証**: JSON 構造の完全性
211
+ 2. **Semantic 検証**: フィールド値がソースメタデータに一致するか
212
+ 3. **Dry-run 検証**: TypeScript コンパイル確認
213
+
214
+ 失敗した設定は書き込み前に自動修正(最大 3 ラウンド)されます。
215
+
216
+ ### 3. ログ駆動の完了判定
217
+
218
+ 壊れやすい `networkidle` に依存せず、以下で判定します。
219
+
220
+ ```
221
+ Frontend Request -> Backend api_exec start log -> Backend processing -> api_exec end log
222
+
223
+ OpenCroc polls end logs to confirm completion
224
+ ```
225
+
226
+ フロントが待機状態でもバックエンドが継続処理中のケースを検出できます。
227
+
228
+ ### 4. 自己修復ループ
229
+
230
+ ```
231
+ Test Failure
232
+ -> AI Attribution (LLM + heuristic fallback)
233
+ -> Generate Fix Patch
234
+ -> Dry-Run Validation
235
+ -> Apply Patch (with backup)
236
+ -> Re-run Failed Tests
237
+ -> Verify Fix
238
+ -> Commit or Rollback
239
+ ```
240
+
241
+ ## 実プロジェクト検証
242
+
243
+ OpenCroc は**本番規模の RBAC システム**(マルチテナント企業権限管理)で検証済みです。100+ の Sequelize モデル、75+ の Express コントローラー、モデルファイル内埋め込みアソシエーションを含みます:
244
+
245
+ ```
246
+ $ npx tsx examples/rbac-system/smoke-test.ts
247
+
248
+ Modules : 5 (default, aigc, data-platform, integration, workflow)
249
+ ER Diagrams : 5
250
+ [default] 102 tables, 65 relations
251
+ [aigc] 6 tables, 0 relations
252
+ [data-platform] 4 tables, 0 relations
253
+ [integration] 14 tables, 0 relations
254
+ [workflow] 2 tables, 0 relations
255
+ Chain Plans : 5
256
+ [aigc] 78 chains, 150 steps
257
+ Generated Files: 78
258
+ Duration : 1153ms
259
+ ```
260
+
261
+ 主な結果:
262
+ - フラットモデルレイアウトから **102 テーブル** と **65 の外部キー関係** を正確に抽出
263
+ - 専用の association ファイル不要 モデルファイル内の**埋め込みアソシエーション**(`.belongsTo()` / `.hasMany()`)を検出
264
+ - 5 モジュールで **78 テストファイル** を約1秒で生成
265
+ - フラット(`models/*.ts`)とネスト(`models/module/*.ts`)の両ディレクトリ構造に対応
266
+
267
+ ## 設定例
268
+
269
+ ```typescript
270
+ // opencroc.config.ts
271
+ import { defineConfig } from 'opencroc';
272
+
273
+ export default defineConfig({
274
+ // バックエンドソースのパス
275
+ backend: {
276
+ modelsDir: 'src/models',
277
+ controllersDir: 'src/controllers',
278
+ servicesDir: 'src/services',
279
+ },
280
+
281
+ // 対象アプリケーション
282
+ baseUrl: 'http://localhost:3000',
283
+ apiBaseUrl: 'http://localhost:3000/api',
284
+
285
+ // AI 設定
286
+ ai: {
287
+ provider: 'openai', // 'openai' | 'zhipu' | 'custom'
288
+ apiKey: process.env.AI_API_KEY,
289
+ model: 'gpt-4o-mini',
290
+ },
291
+
292
+ // テスト実行
293
+ execution: {
294
+ workers: 4,
295
+ timeout: 30_000,
296
+ retries: 1,
297
+ },
298
+
299
+ // ログ駆動完了判定(バックエンド側の計測が必要)
300
+ logCompletion: {
301
+ enabled: true,
302
+ endpoint: '/internal/test-logs',
303
+ pollIntervalMs: 500,
304
+ timeoutMs: 10_000,
305
+ },
306
+
307
+ // 自己修復
308
+ selfHealing: {
309
+ enabled: false,
310
+ fixScope: 'config-only', // 'config-only' | 'config-and-source'
311
+ maxFixRounds: 3,
312
+ dryRunFirst: true,
313
+ },
314
+ });
315
+ ```
316
+
317
+ ## 対応技術スタック
318
+
319
+ | レイヤー | 対応済み | 予定 |
320
+ |---|---|---|
321
+ | **ORM** | Sequelize, TypeORM, Prisma, Drizzle | — |
322
+ | **Framework** | Express | NestJS, Fastify, Koa |
323
+ | **Test Runner** | Playwright | — |
324
+ | **LLM** | OpenAI, ZhiPu (GLM), Ollama (local) | Anthropic |
325
+ | **Database** | MySQL, PostgreSQL | SQLite, MongoDB |
326
+
327
+ ## 比較
328
+
329
+ | 機能 | OpenCroc | Playwright | Metersphere | auto-playwright |
330
+ |---|---|---|---|---|
331
+ | ソース認識生成 | ✅ | ❌ | ❌ | ❌ |
332
+ | AI 設定生成 + 検証 | ✅ | ❌ | ❌ | ❌ |
333
+ | ログ駆動完了判定 | ✅ | ❌ | ❌ | ❌ |
334
+ | 失敗チェーン帰属分析 | ✅ | ❌ | Partial | ❌ |
335
+ | 自己修復 + ロールバック | ✅ | ❌ | ❌ | ❌ |
336
+ | API 依存 DAG | ✅ | ❌ | ❌ | ❌ |
337
+ | ゼロ設定テスト生成 | ✅ | Codegen only | Manual | NL->action |
338
+ | 影響範囲分析 | ✅ | ❌ | ❌ | ❌ |
339
+
340
+ ## Roadmap
341
+
342
+ - [x] 6-stage source-to-test pipeline
343
+ - [x] AI configuration generation with 3-layer validation
344
+ - [x] Controlled self-healing loop
345
+ - [x] Log-driven completion detection
346
+ - [x] Failure chain attribution + impact analysis
347
+ - [x] TypeORM / Prisma adapter
348
+ - [x] Ollama local LLM support
349
+ - [x] Real-world validation (102 tables, 65 relations, 78 generated tests)
350
+ - [x] GitHub Actions / GitLab CI integration
351
+ - [x] VS Code extension scaffold
352
+ - [x] Plugin system
353
+ - [x] HTML / JSON / Markdown report generation
354
+ - [x] NestJS controller parser
355
+ - [x] Visual dashboard (opencroc.com)
356
+ - [x] Drizzle ORM adapter
357
+ - [x] AI Config Suggester + Enhanced DTO-aware Suggester
358
+ - [x] Auto-Fixer (4 strategies: interface-path, DTO field, seed dependency, param mapping)
359
+ - [x] 3-layer config validation (schema → semantic → dry-run)
360
+ - [x] DTO Parser (ts-morph interface + express-validator extraction)
361
+ - [x] Baseline Comparator (Playwright report diff + regression detection)
362
+ - [x] Module config preset loader
363
+ - [x] LLM-enhanced chain planner
364
+ - [x] Runtime infrastructure (Playwright config, auth setup, teardown, network monitor)
365
+ - [x] Full orchestration pipeline
366
+ - [x] Advanced reporters (checklist, workorder, token tracking)
367
+ - [x] OpenCroc Studio — ピクセルワニオフィス + ナレッジグラフ UI(`opencroc serve`)
368
+
369
+ ## ドキュメント
370
+
371
+ 詳細は **[opencroc.com](https://opencroc.com)** を参照してください。あわせて以下も確認できます。
372
+
373
+ - [Architecture Guide](docs/architecture.md)
374
+ - [Configuration Reference](docs/configuration.md)
375
+ - [Backend Instrumentation Guide](docs/backend-instrumentation.md)
376
+ - [AI Provider Setup](docs/ai-providers.md)
377
+ - [Self-Healing Guide](docs/self-healing.md)
378
+ - [Troubleshooting](docs/troubleshooting.md)
379
+
380
+ ## コントリビュート
381
+
382
+ 貢献を歓迎します。ガイドラインは [CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。
383
+
384
+ ## ライセンス
385
+
386
+ [MIT](LICENSE) © 2026 OpenCroc Contributors