Skip to content

audit: monorepo audit findings — 2026-04-01 #181

@claude

Description

@claude

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.


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions