Loading...
Loading...
Compare original and translation side by side
bunpnpmnpmnpxpnpm run Xbun run X--smolundefinedbunpnpmnpmnpxpnpm run Xbun run X--smolundefined
---
---LOCK_FILE="/tmp/rad-engineer-quality-gate.lock"LOCK_FILE="/tmp/rad-engineer-quality-gate.lock"undefinedundefinedif (( $(echo "$load > 8.0" | bc -l) )); then
echo "BLOCKED: Load too high ($load). Wait 30 seconds."
return 1
fi
if (( $(echo "$kernel_cpu > 40" | bc -l) )); then
echo "BLOCKED: kernel_task too high (${kernel_cpu}%). Wait 30 seconds."
return 1
fi
return 0if (( $(echo "$load > 8.0" | bc -l) )); then
echo "BLOCKED: 负载过高($load)。请等待30秒。"
return 1
fi
if (( $(echo "$kernel_cpu > 40" | bc -l) )); then
echo "BLOCKED: kernel_task占用过高(${kernel_cpu}%)。请等待30秒。"
return 1
fi
return 0
**Full resource check script:** `.claude/hooks/check-system-resources.sh`
---
**完整资源检查脚本:** `.claude/hooks/check-system-resources.sh`
---LOCK="/tmp/rad-engineer-quality-gate.lock"
cd rad-engineerLOCK="/tmp/rad-engineer-quality-gate.lock"
cd rad-engineer
**Failure Actions:**
- List all TypeScript errors with file:line
- Separate lint errors into auto-fixable vs manual
**失败处理动作:**
- 列出所有TypeScript错误,包含文件:行号
- 将代码检查错误分为可自动修复和需手动修复两类LOCK="/tmp/rad-engineer-quality-gate.lock"
cd rad-engineerLOCK="/tmp/rad-engineer-quality-gate.lock"
cd rad-engineer
**Requirements:**
- All tests must pass
- Coverage ≥ 80% (when explicitly checked)
**要求:**
- 所有测试必须通过
- 覆盖率≥80%(当显式检查时)LOCK="/tmp/rad-engineer-quality-gate.lock"
cd rad-engineerLOCK="/tmp/rad-engineer-quality-gate.lock"
cd rad-engineer
---
---cd rad-engineer && \
LOCK="/tmp/rad-engineer-quality-gate.lock" && \
( ../.claude/hooks/check-system-resources.sh || { sleep 30; ../.claude/hooks/check-system-resources.sh; } ) && \
flock -w 300 "$LOCK" sh -c 'bun run typecheck && bun run lint && bun test'cd rad-engineer && \
LOCK="/tmp/rad-engineer-quality-gate.lock" && \
( ../.claude/hooks/check-system-resources.sh || { sleep 30; ../.claude/hooks/check-system-resources.sh; } ) && \
flock -w 300 "$LOCK" sh -c 'bun run typecheck && bun run lint && bun test'[test]
smol = true # Reduces memory from 343MB to 54MB
coverage = false # Disabled by default (run explicitly when needed)
timeout = 300000 # 5 min timeout for integration tests
coverageSkipTestFiles = true[test]
smol = true # 将内存占用从343MB降至54MB
coverage = false # 默认禁用(按需显式运行)
timeout = 300000 # 集成测试超时时间为5分钟
coverageSkipTestFiles = true✓ TypeScript: 0 errors
✓ Lint: Clean
✓ Tests: XX passed
✓ Coverage: XX% (if explicitly run)
✓ Build: Success
━━━━━━━━━━━━━━━━━━━━━━
Ready to commit!✓ TypeScript: 0个错误
✓ 代码检查:无问题
✓ 测试:XX个通过
✓ 覆盖率:XX%(若显式运行)
✓ 构建:成功
━━━━━━━━━━━━━━━━━━━━━━
可提交!✗ TypeScript: X errors
- src/file.ts:42 - Error message
✗ Tests: X failed
- test/file.test.ts - Test name
Expected: X
Received: Y
━━━━━━━━━━━━━━━━━━━━━━
BLOCKED: Fix issues before commit✗ TypeScript: X个错误
- src/file.ts:42 - 错误信息
✗ 测试:X个失败
- test/file.test.ts - 测试名称
预期值:X
实际值:Y
━━━━━━━━━━━━━━━━━━━━━━
BLOCKED:修复问题后再提交| Metric | Minimum | Target |
|---|---|---|
| TypeScript Errors | 0 | 0 |
| Lint Errors | 0 | 0 |
| Test Pass Rate | 100% | 100% |
| Coverage | 80% | 90% |
| Build | Pass | Pass |
| 指标 | 最低要求 | 目标值 |
|---|---|---|
| TypeScript 错误数 | 0 | 0 |
| 代码检查错误数 | 0 | 0 |
| 测试通过率 | 100% | 100% |
| 代码覆盖率 | 80% | 90% |
| 构建结果 | 通过 | 通过 |
| Command | Processes Spawned | Memory |
|---|---|---|
| pnpm + tsc = 2 | ~200MB |
| bun only = 1 | ~54MB |
| pnpm + bun = 2 | ~400MB |
| bun only = 1 | ~54MB |
| Approach | Total Processes | Total Memory |
|---|---|---|
| pnpm (old) | 3 × 6 = 18 | ~1.8GB |
| bun (new) | 3 × 3 = 9 | ~162MB |
| 命令 | 启动的进程数 | 内存占用 |
|---|---|---|
| pnpm + tsc = 2 | ~200MB |
| bun 仅1个 | ~54MB |
| pnpm + bun = 2 | ~400MB |
| bun 仅1个 | ~54MB |
| 方案 | 总进程数 | 总内存占用 |
|---|---|---|
| pnpm(旧) | 3×6=18 | ~1.8GB |
| bun(新) | 3×3=9 | ~162MB |
Agent 1: bun run typecheck → runs immediately
Agent 2: bun run typecheck → runs in PARALLEL!
Agent 3: bun run lint → runs in PARALLEL!
Result: 3+ heavy processes, potential overloadAgent 1: flock ... bun run typecheck → runs, holds lock
Agent 2: flock ... bun run typecheck → WAITS for lock
Agent 3: flock ... bun run lint → WAITS for lock
Result: Only 1 quality gate at a time代理1:bun run typecheck → 立即运行
代理2:bun run typecheck → 并行运行!
代理3:bun run lint → 并行运行!
结果:3个及以上高负载进程,可能导致系统过载代理1:flock ... bun run typecheck → 运行并持有锁
代理2:flock ... bun run typecheck → 等待锁释放
代理3:flock ... bun run lint → 等待锁释放
结果:同一时间仅运行一个质量门禁undefinedundefined
---
**Version**: 3.0.0 (Bun-Only + JIT Resource Check)
**Last Updated**: 2026-01-13
---
**版本**:3.0.0(仅支持Bun + 实时资源检查)
**最后更新**:2026-01-13