Monorepo Audit Report — 2026-04-01
Skills Audited
- Turborepo (best practices from
.agents/skills/turborepo/)
- pnpm (best practices from
.agents/skills/pnpm/)
- Workleap React Best Practices (best practices from
.agents/skills/workleap-react-best-practices/)
Summary
| # |
Severity |
Skill |
Finding |
File |
| 1 |
Medium |
Turborepo |
CI test step bypasses turbo orchestration for PR builds |
.github/workflows/ci.yml |
Details
1. CI test step bypasses turbo orchestration for PR builds
Severity: Medium
Skill: Turborepo
File: .github/workflows/ci.yml:119
Issue: The "Test packages" step uses pnpm test --filter=...[${{ github.event.pull_request.base.sha }}] for PR builds, while every other filtered CI step (build, eslint, typecheck) consistently uses pnpm turbo run <task> --filter=...[$sha]. When pnpm's --filter flag is passed to pnpm test, pnpm applies workspace filtering and runs each matched package's test script directly (vitest --config vitest.config.ts --no-watch), bypassing Turborepo entirely. This means PR test runs lose turbo's caching (the test task has outputs: ["node_modules/.cache/vitest/**"] configured in turbo.json) and consistent task orchestration. The non-PR path (pnpm test) correctly calls the root script "test": "turbo run test --continue", which does go through turbo.
Recommendation: Change line 119 to use pnpm turbo run test --filter=...[${{ github.event.pull_request.base.sha }}] to match the pattern used by all other CI steps and restore turbo caching for PR test runs.
Monorepo Audit Report — 2026-04-01
Skills Audited
.agents/skills/turborepo/).agents/skills/pnpm/).agents/skills/workleap-react-best-practices/)Summary
.github/workflows/ci.ymlDetails
1. CI test step bypasses turbo orchestration for PR builds
Severity: Medium
Skill: Turborepo
File:
.github/workflows/ci.yml:119Issue: The "Test packages" step uses
pnpm test --filter=...[${{ github.event.pull_request.base.sha }}]for PR builds, while every other filtered CI step (build, eslint, typecheck) consistently usespnpm turbo run <task> --filter=...[$sha]. When pnpm's--filterflag is passed topnpm test, pnpm applies workspace filtering and runs each matched package'stestscript directly (vitest --config vitest.config.ts --no-watch), bypassing Turborepo entirely. This means PR test runs lose turbo's caching (thetesttask hasoutputs: ["node_modules/.cache/vitest/**"]configured inturbo.json) and consistent task orchestration. The non-PR path (pnpm test) correctly calls the root script"test": "turbo run test --continue", which does go through turbo.Recommendation: Change line 119 to use
pnpm turbo run test --filter=...[${{ github.event.pull_request.base.sha }}]to match the pattern used by all other CI steps and restore turbo caching for PR test runs.