Skip to content

T-N9AJ-polish-checks-into-quality-gate

Status: closed/done · Impact: medium · Complexity: medium

The repo-wide quality gate (sdlc quality run, driven by sdlc.yaml) checks only the TypeScript substrate + docs — it never runs the moon project graph. The only repo-wide moon hook is moon run :fmt-check (rust formatting, in lefthook). So polish’s clippy, cargo tests, and frontend lint/typecheck/test run only when invoked by hand — polish is a standalone moon workflow. Wire its checks into the automated gate so regressions are caught without manual runs.

LocationRole today
sdlc.yaml quality_checkstsc --noEmit, bun test, docs/entities gates; no moon / cargo / nuxt
lefthook.yml rust-fmt-checkmoon run :fmt-check — the ONLY repo-wide moon gate; polish participates
apps/determined/apps/polish/moon.ymllint (clippy), test, frontend-* exist but run only on explicit moon run polish:*
repono .moon/tasks.yml and no moon ci aggregate — no repo-wide moon build/check at all

Polish’s clippy + cargo tests + frontend lint/typecheck/test run automatically in the repo’s gate (and/or per-PR CI), not just by hand. A broken check fails the gate.

  1. Choose the seam:
    • add polish moon targets to sdlc.yaml quality_checks, and/or
    • introduce a per-PR CI workflow (see T-LH85 neighbourhood / the .github/workflows/polish.yml sketch in apps/determined/apps/polish/MIGRATION.md), and/or
    • introduce a repo-wide moon ci / .moon/tasks.yml aggregate and gate on it.
  2. Ensure the gate environment has the rust toolchain + frontend deps (depends on the frontend-deps bootstrap).
  3. Wire it; confirm a deliberately-broken clippy or vitest fails the gate.

Open decision: solve for polish only, or close the broader “no repo-wide moon build aggregation” gap at the same time.

LocationKindChange
sdlc.yamlmodifyadd polish check targets to quality_checks
.github/workflows/polish.ymlnewper-PR moon-driven checks scoped to apps/determined/apps/polish/** (if CI is chosen)
  • AC-1: a deliberately-broken polish clippy lint fails the automated gate/CI.
  • AC-2: a deliberately-broken polish frontend (vitest / eslint) check fails the automated gate/CI.
  • The full-bundle cargo tauri build in CI (heavy; track separately with release/signing).
  • T-Y8YP — frontend deps must be bootstrapped for the gate to run frontend checks.
  • Analysis this session: sdlc.yaml has zero moon/polish references; polish’s non-fmt checks are unreachable from the automated gate.

← Back to Tasks