opencroc 1.8.3 → 1.8.5
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 +383 -386
- package/README.md +383 -417
- package/README.zh-CN.md +383 -414
- package/dist/cli/index.js +24 -8
- package/dist/cli/index.js.map +1 -1
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -1,386 +1,383 @@
|
|
|
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
|
|
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.
|
|
20
|
-
</p>
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## OpenCroc とは
|
|
25
|
-
|
|
26
|
-
OpenCroc は [Playwright](https://playwright.dev)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
| 機能 | 説明 |
|
|
33
|
-
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
42
|
-
## クイックスタート
|
|
43
|
-
|
|
44
|
-
### 前提条件
|
|
45
|
-
|
|
46
|
-
- Node.js
|
|
47
|
-
- Express
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
OpenCroc Studio
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
npx opencroc
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
-
|
|
197
|
-
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
-
|
|
205
|
-
-
|
|
206
|
-
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
1.
|
|
211
|
-
2.
|
|
212
|
-
3.
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
-
|
|
347
|
-
-
|
|
348
|
-
-
|
|
349
|
-
-
|
|
350
|
-
-
|
|
351
|
-
-
|
|
352
|
-
-
|
|
353
|
-
-
|
|
354
|
-
-
|
|
355
|
-
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
- [
|
|
374
|
-
- [
|
|
375
|
-
- [
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
## ライセンス
|
|
385
|
-
|
|
386
|
-
[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.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 ネイティブなエンドツーエンドテストフレームワークです。大量のテストスクリプトを手書きする代わりに、OpenCroc はバックエンドのソースコードを読み取り、モデル、コントローラ、DTO、関連を理解したうえで、シードデータ、リクエストボディ、API チェーン、アサーションを含む E2E スイートを自動生成します。
|
|
27
|
+
|
|
28
|
+
テストが失敗した場合も、単にエラーを表示するだけではありません。リクエストチェーンを横断して原因を追跡し、根本原因の候補を整理し、修正案を生成し、制御されたフローの中で再検証できます。
|
|
29
|
+
|
|
30
|
+
## 主な機能
|
|
31
|
+
|
|
32
|
+
| 機能 | 説明 |
|
|
33
|
+
| --- | --- |
|
|
34
|
+
| ソースコード認識型生成 | Sequelize、TypeORM、Prisma、Drizzle の構造を解析し、モジュール、モデル、ルート、DTO を把握 |
|
|
35
|
+
| AI 設定生成 | リクエストテンプレート、シード計画、パラメータマッピング、テスト雛形を生成し、検証ゲートを通過 |
|
|
36
|
+
| チェーン計画 | 依存 DAG を構築し、より高い API カバレッジの実行順を計画 |
|
|
37
|
+
| ログ駆動完了判定 | `networkidle` だけに頼らず、バックエンドの完了シグナルでも判定 |
|
|
38
|
+
| 失敗の帰属分析 | フロントの要求、バックエンドログ、依存チェーンを結びつけて原因を追跡 |
|
|
39
|
+
| 制御された自己修復 | backup、patch、dry-run、re-run、verify、rollback のループを提供 |
|
|
40
|
+
| 可視化 Studio | グラフ探索、Agent 状態確認、ピクセルオフィス表示のためのローカル Web UI を提供 |
|
|
41
|
+
|
|
42
|
+
## クイックスタート
|
|
43
|
+
|
|
44
|
+
### 前提条件
|
|
45
|
+
|
|
46
|
+
- Node.js 18 以上
|
|
47
|
+
- Express または NestJS を使うバックエンドプロジェクト
|
|
48
|
+
- サポート対象の ORM またはスキーマ構造
|
|
49
|
+
|
|
50
|
+
### インストール
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm install opencroc --save-dev
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 初期化
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx opencroc init
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
このコマンドは次を実行します。
|
|
63
|
+
|
|
64
|
+
1. プロジェクト構造のスキャン
|
|
65
|
+
2. フレームワークと ORM パターンの検出
|
|
66
|
+
3. `opencroc.config.ts` の生成
|
|
67
|
+
4. 初期出力構成の生成
|
|
68
|
+
|
|
69
|
+
### テスト生成
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# 単一モジュールのテスト生成
|
|
73
|
+
npx opencroc generate --module=knowledge-base
|
|
74
|
+
|
|
75
|
+
# すべての検出モジュールのテスト生成
|
|
76
|
+
npx opencroc generate --all
|
|
77
|
+
|
|
78
|
+
# 書き込みなしのプレビュー
|
|
79
|
+
npx opencroc generate --all --dry-run
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### テスト実行
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# 生成済みテストをすべて実行
|
|
86
|
+
npx opencroc test
|
|
87
|
+
|
|
88
|
+
# 単一モジュールのみ実行
|
|
89
|
+
npx opencroc test --module=knowledge-base
|
|
90
|
+
|
|
91
|
+
# headed モードで実行
|
|
92
|
+
npx opencroc test --headed
|
|
93
|
+
|
|
94
|
+
# CLI からフックを上書き
|
|
95
|
+
npx opencroc test --setup-hook="npm run e2e:setup" --auth-hook="node scripts/auth.js" --teardown-hook="npm run e2e:cleanup"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### AI 設定の検証
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npx opencroc validate --all
|
|
102
|
+
npx opencroc compare --baseline=report-a.json --current=report-b.json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## OpenCroc Studio
|
|
106
|
+
|
|
107
|
+
OpenCroc Studio は OpenCroc のローカル可視化ワークスペースです。知識グラフ、ピクセルオフィス運用ビュー、3D オフィスランタイムを、CLI から起動する 1 つの Web 体験にまとめています。
|
|
108
|
+
|
|
109
|
+
### Studio の起動
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Studio を起動し、ブラウザを開く
|
|
113
|
+
npx opencroc serve
|
|
114
|
+
|
|
115
|
+
# カスタムポート
|
|
116
|
+
npx opencroc serve --port 3000
|
|
117
|
+
|
|
118
|
+
# ブラウザ自動起動を無効化
|
|
119
|
+
npx opencroc serve --no-open
|
|
120
|
+
|
|
121
|
+
# 公開 host にバインド
|
|
122
|
+
npx opencroc serve --host 0.0.0.0 --port 8765
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 現在の Web アーキテクチャ
|
|
126
|
+
|
|
127
|
+
- Fastify がローカル Studio アプリと API を配信
|
|
128
|
+
- フロントエンドは単一エントリの Vite SPA
|
|
129
|
+
- 主要ルートは `/`、`/studio`、`/pixel`
|
|
130
|
+
- Web ソースは `src/web` 配下で `app`、`pages`、`features`、`shared`、`styles`、`public` に整理
|
|
131
|
+
- 旧 URL である `/index-studio.html` と `/index-v2-pixel.html` は SPA ルートへリダイレクト
|
|
132
|
+
|
|
133
|
+
### Studio の機能
|
|
134
|
+
|
|
135
|
+
- モジュール、API、関連を可視化する知識グラフキャンバス
|
|
136
|
+
- Agent の稼働状況を見せるピクセルオフィスダッシュボード
|
|
137
|
+
- 没入感のある監視用 3D オフィスランタイムビュー
|
|
138
|
+
- WebSocket によるリアルタイム更新
|
|
139
|
+
- ルート切替対応のサイドナビゲーション
|
|
140
|
+
- `GET /api/project`、`GET /api/agents`、`POST /api/project/refresh` などの REST API
|
|
141
|
+
|
|
142
|
+
## フルパイプライン
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# フルパイプラインを実行
|
|
146
|
+
npx opencroc run
|
|
147
|
+
|
|
148
|
+
# 単一モジュールに自己修復とレポートを付けて実行
|
|
149
|
+
npx opencroc run --module=users --self-heal --report html,json
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## CI/CD 統合
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
npx opencroc ci --platform github
|
|
156
|
+
npx opencroc ci --platform gitlab --self-heal
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## ダッシュボードとレポート
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
npx opencroc dashboard
|
|
163
|
+
npx opencroc report --format html,json,markdown
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## アーキテクチャ
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
+-------------------------------------------------------------------+
|
|
170
|
+
| OpenCroc Studio |
|
|
171
|
+
| Fastify サーバー + 単一エントリ Vite SPA + WebSocket 更新 |
|
|
172
|
+
| ルート: /, /studio, /pixel |
|
|
173
|
+
+-------------------------------------------------------------------+
|
|
174
|
+
| CLI / Orchestrator |
|
|
175
|
+
+--------------+--------------+---------------+----------------------+
|
|
176
|
+
| ソース解析 | チェーン計画 | テスト生成 | 実行 / 観測 |
|
|
177
|
+
+--------------+--------------+---------------+----------------------+
|
|
178
|
+
| 自己修復 | 影響分析 | レポート | Dashboard / Studio |
|
|
179
|
+
+--------------+--------------+---------------+----------------------+
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### 6 段階パイプライン
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
Source Scan -> ER Diagram -> API Analysis -> Chain Planning -> Test Generation -> Failure Analysis
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 仕組み
|
|
189
|
+
|
|
190
|
+
### 1. ソース解析
|
|
191
|
+
|
|
192
|
+
OpenCroc は [ts-morph](https://ts-morph.com) とフレームワーク認識型パーサを使って次を解析します。
|
|
193
|
+
|
|
194
|
+
- モデルと関連
|
|
195
|
+
- コントローラとルート
|
|
196
|
+
- DTO フィールドとバリデーションルール
|
|
197
|
+
- モジュール境界と依存面
|
|
198
|
+
|
|
199
|
+
### 2. AI 設定生成
|
|
200
|
+
|
|
201
|
+
各モジュールに対して OpenCroc は次を生成できます。
|
|
202
|
+
|
|
203
|
+
- リクエストボディテンプレート
|
|
204
|
+
- シードデータ計画
|
|
205
|
+
- パラメータマッピング
|
|
206
|
+
- ID エイリアス規則
|
|
207
|
+
|
|
208
|
+
各設定は以下の検証を通過します。
|
|
209
|
+
|
|
210
|
+
1. Schema 検証
|
|
211
|
+
2. Semantic 検証
|
|
212
|
+
3. Dry-run 検証
|
|
213
|
+
|
|
214
|
+
### 3. ログ駆動完了判定
|
|
215
|
+
|
|
216
|
+
ブラウザのアイドル状態だけに頼らず、バックエンドの完了シグナルも使ってリクエストが本当に終了したかを判定します。
|
|
217
|
+
|
|
218
|
+
### 4. 自己修復ループ
|
|
219
|
+
|
|
220
|
+
```text
|
|
221
|
+
Test Failure
|
|
222
|
+
-> Attribution
|
|
223
|
+
-> Proposed Fix
|
|
224
|
+
-> Dry-Run Validation
|
|
225
|
+
-> Apply Patch
|
|
226
|
+
-> Re-run
|
|
227
|
+
-> Verify
|
|
228
|
+
-> Rollback if needed
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## 実プロジェクト検証
|
|
232
|
+
|
|
233
|
+
OpenCroc は 100 を超える Sequelize モデル、数十のコントローラ、埋め込み関連定義を含む本番スタイルの RBAC システムで検証されています。
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
$ npx tsx examples/rbac-system/smoke-test.ts
|
|
237
|
+
|
|
238
|
+
Modules : 5
|
|
239
|
+
ER Diagrams : 5
|
|
240
|
+
Chain Plans : 5
|
|
241
|
+
Generated Files: 78
|
|
242
|
+
Duration : 1153ms
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
主な結果:
|
|
246
|
+
|
|
247
|
+
- フラットなモデル構成から 102 テーブルと 65 外部キー関連を抽出
|
|
248
|
+
- 専用 association ファイルなしで埋め込み関連を検出
|
|
249
|
+
- 5 モジュールに対して 78 テストファイルを生成
|
|
250
|
+
- フラット構成とネスト構成の両方に対応
|
|
251
|
+
|
|
252
|
+
## 設定例
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
import { defineConfig } from 'opencroc';
|
|
256
|
+
|
|
257
|
+
export default defineConfig({
|
|
258
|
+
backend: {
|
|
259
|
+
modelsDir: 'src/models',
|
|
260
|
+
controllersDir: 'src/controllers',
|
|
261
|
+
servicesDir: 'src/services',
|
|
262
|
+
},
|
|
263
|
+
|
|
264
|
+
baseUrl: 'http://localhost:3000',
|
|
265
|
+
apiBaseUrl: 'http://localhost:3000/api',
|
|
266
|
+
|
|
267
|
+
ai: {
|
|
268
|
+
provider: 'openai',
|
|
269
|
+
apiKey: process.env.AI_API_KEY,
|
|
270
|
+
model: 'gpt-4o-mini',
|
|
271
|
+
},
|
|
272
|
+
|
|
273
|
+
execution: {
|
|
274
|
+
workers: 4,
|
|
275
|
+
timeout: 30_000,
|
|
276
|
+
retries: 1,
|
|
277
|
+
},
|
|
278
|
+
|
|
279
|
+
logCompletion: {
|
|
280
|
+
enabled: true,
|
|
281
|
+
endpoint: '/internal/test-logs',
|
|
282
|
+
pollIntervalMs: 500,
|
|
283
|
+
timeoutMs: 10_000,
|
|
284
|
+
},
|
|
285
|
+
|
|
286
|
+
selfHealing: {
|
|
287
|
+
enabled: false,
|
|
288
|
+
fixScope: 'config-only',
|
|
289
|
+
maxFixRounds: 3,
|
|
290
|
+
dryRunFirst: true,
|
|
291
|
+
},
|
|
292
|
+
});
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## サポート技術スタック
|
|
296
|
+
|
|
297
|
+
| レイヤー | 対応済み | 今後 |
|
|
298
|
+
| --- | --- | --- |
|
|
299
|
+
| ORM | Sequelize, TypeORM, Prisma, Drizzle | 必要に応じて拡張 |
|
|
300
|
+
| Framework | Express | NestJS, Fastify, Koa |
|
|
301
|
+
| Test Runner | Playwright | 追加ランナー |
|
|
302
|
+
| LLM | OpenAI, ZhiPu, Ollama | Anthropic |
|
|
303
|
+
| Database | MySQL, PostgreSQL | SQLite, MongoDB |
|
|
304
|
+
|
|
305
|
+
## 比較
|
|
306
|
+
|
|
307
|
+
| 機能 | OpenCroc | Playwright | Metersphere | auto-playwright |
|
|
308
|
+
| --- | --- | --- | --- | --- |
|
|
309
|
+
| ソース認識型生成 | Yes | No | No | No |
|
|
310
|
+
| AI 設定生成と検証 | Yes | No | No | No |
|
|
311
|
+
| ログ駆動完了判定 | Yes | No | No | No |
|
|
312
|
+
| 失敗帰属分析 | Yes | No | Partial | No |
|
|
313
|
+
| 自己修復とロールバック | Yes | No | No | No |
|
|
314
|
+
| API 依存 DAG | Yes | No | No | No |
|
|
315
|
+
| ゼロ設定テスト生成 | Yes | Limited | Manual | Prompt-driven |
|
|
316
|
+
| 影響分析 | Yes | No | No | No |
|
|
317
|
+
|
|
318
|
+
## ロードマップ
|
|
319
|
+
|
|
320
|
+
- [x] 6 段階ソースからテストへのパイプライン
|
|
321
|
+
- [x] AI 設定生成と検証
|
|
322
|
+
- [x] 制御された自己修復ループ
|
|
323
|
+
- [x] ログ駆動完了判定
|
|
324
|
+
- [x] 失敗帰属分析と影響分析
|
|
325
|
+
- [x] Prisma と Drizzle への対応
|
|
326
|
+
- [x] Ollama ローカルモデル対応
|
|
327
|
+
- [x] CI 統合
|
|
328
|
+
- [x] VS Code 拡張スキャフォールド
|
|
329
|
+
- [x] プラグインシステム
|
|
330
|
+
- [x] HTML、JSON、Markdown レポート
|
|
331
|
+
- [x] 可視化 Studio ダッシュボード
|
|
332
|
+
- [x] Runtime 基盤
|
|
333
|
+
- [x] フルオーケストレーション
|
|
334
|
+
- [x] 高度なレポーター
|
|
335
|
+
- [x] OpenCroc Studio のルートベース Web アプリ化
|
|
336
|
+
|
|
337
|
+
## リリーススナップショット
|
|
338
|
+
|
|
339
|
+
- この README が対象とする製品スナップショット: `1.8.3`
|
|
340
|
+
- Studio アーキテクチャスナップショット: Fastify + 単一エントリ Vite SPA + ルートベースビュー
|
|
341
|
+
- 主な Studio ルート: `/`、`/studio`、`/pixel`
|
|
342
|
+
- フルスイート品質ゲート: 41 テストファイル、414 テスト通過
|
|
343
|
+
|
|
344
|
+
### バージョンの流れ
|
|
345
|
+
|
|
346
|
+
- `0.3.x`: プラグインシステム、CI テンプレート、レポーター、VS Code スキャフォールド
|
|
347
|
+
- `0.4.x`: NestJS コントローラパーサ
|
|
348
|
+
- `0.5.x`: Drizzle ORM アダプタ
|
|
349
|
+
- `0.6.x`: 可視化ダッシュボードと Windows Vitest 安定化
|
|
350
|
+
- `0.7.x - 0.9.x`: runtime 基盤、認証、ログ駆動検出、ルールエンジン
|
|
351
|
+
- `1.0.0`: フルオーケストレーション
|
|
352
|
+
- `1.1.0`: 高度な自己修復
|
|
353
|
+
- `1.2.0`: 高度なレポーターと移行作業
|
|
354
|
+
- `1.3.0`: OpenCroc Studio M1
|
|
355
|
+
- `1.8.3`: Vite SPA ルーティング、Web アーキテクチャ整理、配布パッケージ軽量化
|
|
356
|
+
|
|
357
|
+
### リリース検証
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
npm run lint
|
|
361
|
+
npm run typecheck
|
|
362
|
+
npm test
|
|
363
|
+
npm view opencroc version dist-tags --json
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
## ドキュメント
|
|
367
|
+
|
|
368
|
+
詳細は **[opencroc.com](https://opencroc.com)** を参照してください。あわせて次も確認できます。
|
|
369
|
+
|
|
370
|
+
- [Architecture Guide](docs/architecture.md)
|
|
371
|
+
- [Configuration Reference](docs/configuration.md)
|
|
372
|
+
- [Backend Instrumentation Guide](docs/backend-instrumentation.md)
|
|
373
|
+
- [AI Provider Setup](docs/ai-providers.md)
|
|
374
|
+
- [Self-Healing Guide](docs/self-healing.md)
|
|
375
|
+
- [Troubleshooting](docs/troubleshooting.md)
|
|
376
|
+
|
|
377
|
+
## コントリビュート
|
|
378
|
+
|
|
379
|
+
コントリビューションを歓迎します。詳細は [CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。
|
|
380
|
+
|
|
381
|
+
## ライセンス
|
|
382
|
+
|
|
383
|
+
[MIT](LICENSE) Copyright 2026 OpenCroc Contributors
|