Loading...
Loading...
Compare original and translation side by side
claude --printclaude --printundefinedundefined
Options:
| Flag | Description | Default |
|------|-------------|---------|
| `--quick` | Run only first 3 projects | `false` |
| `--base <path>` | Override base directory | `~/dev/vercel-plugin-testing` |
| `--timeout <ms>` | Per-project timeout (forwarded to runner) | `900000` (15 min) |
选项:
| Flag | 描述 | 默认值 |
|------|-------------|---------|
| `--quick` | 仅运行前3个项目 | `false` |
| `--base <path>` | 自定义基础目录 | `~/dev/vercel-plugin-testing` |
| `--timeout <ms>` | 单项目超时时间(传递给运行器) | `900000` (15分钟) |claude --printVERCEL_PLUGIN_LOG_LEVEL=tracerun-manifest.jsonreport.mdreport.jsonVERCEL_PLUGIN_LOG_LEVEL=traceclaude --printrun-manifest.jsonreport.mdreport.jsonrun-manifest.jsonrun-manifest.json<base>/results/run-manifest.jsoninterface BenchmarkRunManifest {
runId: string; // UUID for this pipeline run
timestamp: string; // ISO 8601
baseDir: string; // Absolute path to base directory
projects: Array<{
slug: string; // e.g. "01-recipe-platform"
cwd: string; // Absolute path to project dir
promptHash: string; // SHA hash of the prompt text
expectedSkills: string[];
}>;
}<base>/results/run-manifest.jsoninterface BenchmarkRunManifest {
runId: string; // 本次流水线运行的UUID
timestamp: string; // ISO 8601格式时间戳
baseDir: string; // 基础目录的绝对路径
projects: Array<{
slug: string; // 例如 "01-recipe-platform"
cwd: string; // 项目目录的绝对路径
promptHash: string; // 提示词文本的SHA哈希
expectedSkills: string[];
}>;
}events.jsonlevents.jsonl<base>/results/events.jsonl// Each line is one JSON object:
{ "stage": "pipeline", "event": "start", "timestamp": "...", "data": { "baseDir": "...", "quick": false } }
{ "stage": "runner", "event": "start", "timestamp": "...", "data": { "script": "...", "args": [...] } }
{ "stage": "runner", "event": "complete", "timestamp": "...", "data": { "exitCode": 0, "durationMs": 120000 } }
// On failure:
{ "stage": "verify", "event": "error", "timestamp": "...", "data": { "exitCode": 1, "durationMs": 5000, "slug": "04-conference-tickets" } }
{ "stage": "pipeline", "event": "abort", "timestamp": "...", "data": { "failedStage": "verify", "exitCode": 1, "slug": "04-conference-tickets" } }<base>/results/events.jsonl// 每行是一个JSON对象:
{ "stage": "pipeline", "event": "start", "timestamp": "...", "data": { "baseDir": "...", "quick": false } }
{ "stage": "runner", "event": "start", "timestamp": "...", "data": { "script": "...", "args": [...] } }
{ "stage": "runner", "event": "complete", "timestamp": "...", "data": { "exitCode": 0, "durationMs": 120000 } }
// 失败时的日志:
{ "stage": "verify", "event": "error", "timestamp": "...", "data": { "exitCode": 1, "durationMs": 5000, "slug": "04-conference-tickets" } }
{ "stage": "pipeline", "event": "abort", "timestamp": "...", "data": { "failedStage": "verify", "exitCode": 1, "slug": "04-conference-tickets" } }report.jsonreport.json<base>/results/report.jsoninterface ReportJson {
runId: string | null;
timestamp: string;
verdict: "pass" | "partial" | "fail";
gaps: Array<{
slug: string;
expected: string[];
actual: string[];
missing: string[];
}>;
recommendations: string[];
suggestedPatterns: Array<{
skill: string; // Skill that was expected but not injected
glob: string; // Suggested pathPattern glob
tool: string; // Tool name that should trigger injection
}>;
}<base>/results/report.jsoninterface ReportJson {
runId: string | null;
timestamp: string;
verdict: "pass" | "partial" | "fail";
gaps: Array<{
slug: string;
expected: string[];
actual: string[];
missing: string[];
}>;
recommendations: string[];
suggestedPatterns: Array<{
skill: string; // 预期但未被注入的Skill
glob: string; // 建议的pathPattern glob规则
tool: string; // 应该触发注入的工具名称
}>;
}while true; do
bun run scripts/benchmark-e2e.ts
sleep 3600
donereport.jsonreport.mdwhile true; do
bun run scripts/benchmark-e2e.ts
sleep 3600
donereport.jsonreport.mdbun run scripts/benchmark-e2e.tsreport.jsonsuggestedPatternsrecommendationsreport.jsonverdict"fail""partial""pass"bun run scripts/benchmark-e2e.tsreport.jsonsuggestedPatternsrecommendationsreport.json"fail""partial""pass"| # | Slug | Expected Skills |
|---|---|---|
| 01 | recipe-platform | auth, vercel-storage, nextjs |
| 02 | trivia-game | vercel-storage, nextjs |
| 03 | code-review-bot | ai-sdk, nextjs |
| 04 | conference-tickets | payments, email, auth |
| 05 | content-aggregator | cron-jobs, ai-sdk |
| 06 | finance-tracker | cron-jobs, email |
| 07 | multi-tenant-blog | routing-middleware, cms, auth |
| 08 | status-page | cron-jobs, vercel-storage, observability |
| 09 | dog-walking-saas | payments, auth, vercel-storage, env-vars |
| # | Slug | 预期技能 |
|---|---|---|
| 01 | recipe-platform | auth, vercel-storage, nextjs |
| 02 | trivia-game | vercel-storage, nextjs |
| 03 | code-review-bot | ai-sdk, nextjs |
| 04 | conference-tickets | payments, email, auth |
| 05 | content-aggregator | cron-jobs, ai-sdk |
| 06 | finance-tracker | cron-jobs, email |
| 07 | multi-tenant-blog | routing-middleware, cms, auth |
| 08 | status-page | cron-jobs, vercel-storage, observability |
| 09 | dog-walking-saas | payments, auth, vercel-storage, env-vars |
rm -rf ~/dev/vercel-plugin-testingrm -rf ~/dev/vercel-plugin-testing