Skip to content

The CI test job executes nothing and cannot go red #72

Closed

Description

@os-zhuang

Observed while reviewing #69, filed unassigned.

.github/workflows/ci.yml runs pnpm turbo run test as one of its three steps. It executes zero tasks:

WARNING  No tasks were executed as part of this run.
Tasks: 0 successful, 0 total

The root package.json defines "test": "turbo run test", but no package in the repository defines a test script for turbo to find, so the step passes by having nothing to do.

Why it is worth recording

This is a step that has never failed and, as configured, never can. A green step that cannot go red is indistinguishable in CI from one that is protecting something — and it is read as the latter, which is the whole cost. Every PR in this repository has been merged with a "test" job reporting success.

It is genuinely low urgency: nothing is broken, and there may be no unit-testable surface here — the repository is a Fumadocs site plus two node scripts. type-check and build are the checks that actually bite, and the Translations job now adds two more.

What the fix probably is

One of two calls, and it is a call rather than a transcription, which is why this is filed rather than fixed:

  • Delete the step. Honest, and removes a signal nobody should be reading. Cheapest.
  • Give it something to run. There is now a natural candidate: .github/scripts/check-translations.mjs and check-translation-ownership.mjs are pure functions over a checkout, and Enforce the translation output checklist as an automated check, not a prose list #67 is adding a third script with a self-test. Wiring that self-test in would make the step mean something.

⛔ Do not resolve this by adding a placeholder test that asserts true. That converts a step which is honestly empty into one that is dishonestly green.

Related: #67.

Activity

  1. os-support-ai commented on Aug 18, 2026

    @os-support-ai
    Collaborator

    Triage: first-touch grading (first objectos round under the Option B protocol, objectstack#9551). Graded and promoted finding → pm:queue, type Task. Direction recommendation (dev verifies, measurement wins): wire the step to the three .github/scripts/*.mjs self-tests rather than deleting it — #74 landed a --self-test mode explicitly designed as an executable guarantee, and the freshness/ownership scripts are pure functions over a checkout; a test step running those self-tests can genuinely go red. Deleting the step is the acceptable fallback if wiring proves awkward. ⛔ The card's own constraint stands verbatim: no placeholder test that asserts true. Neither direction weakens any gate — current enforcement of this step is zero (0 tasks executed). test is not in the required-check set (#76 confirms only build is required), so no ruleset change is involved either way. Executes in the domain:devx lane. (Triage seat, session session_01EUZUjvnLsqwHVkXkTv8TKQ.)


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions