1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-23 02:53:58 +02:00
Files
misskey/.claude/commands/quality-gate.md
2026-05-12 17:56:06 +09:00

5.2 KiB

description, argument-hint
description argument-hint
Misskey の lint / typecheck / 高速テストを順に実行して品質ゲートを通すコマンド。完了前の軽量検証用。 [repo|backend|frontend|<path/to/file.ts>]

/quality-gate — Misskey 軽量品質ゲート

/quality-gate [scope]

完了前の 軽量 品質チェック。重い E2E / 連合テスト (test:e2e / test:fed / Cypress) は CI 側で実行されるため、本コマンドには含めない。

Scope

  • repo (default) — 全パッケージ
  • backendpackages/backend のみ
  • frontendpackages/frontend のみ
  • path/to/file.ts — 単一ファイルへの ESLint --fix のみ

Pipeline

Repo scope (全部)

各パッケージの lint スクリプト実体は pnpm typecheck && pnpm eslint (packages/backend/package.json, packages/frontend/package.json) で、ルートの pnpm lintpnpm --no-bail -r lint (= 全パッケージで lint を --no-bail で実行)。typecheck は lint に含まれているため、通常はこの 2 コマンドで十分:

# 1. Lint (= typecheck + ESLint、全パッケージ。--no-bail で最初の失敗で止まらず全結果を集める)
pnpm lint

# 2. Unit test (高速、e2e は含まない)
pnpm --filter backend test
pnpm --filter frontend test

詳細を分けて見たい時のみ (optional)

lint がまとめて失敗していて typecheck の結果だけ単独で見たい場合は、以下を個別に回す。通常は不要 (lint の出力を読めば足りる):

pnpm --filter backend typecheck    # tsgo 単体
pnpm --filter frontend typecheck   # vue-tsc 単体 (Vue SFC の型を見るため)

Backend scope

pnpm --filter backend lint は内部で pnpm typecheck && pnpm eslint を実行する (packages/backend/package.json) ので、lint を回せば typecheck も終わる。軽量ゲートでは typecheck の二重実行を避けるため lint + test のみ:

pnpm --filter backend lint
pnpm --filter backend test

tsgo の出力を単独で見たい時のみ optional で pnpm --filter backend typecheck を別途回す。

Frontend scope

pnpm --filter frontend lint も内部で pnpm typecheck && pnpm eslint を実行する (packages/frontend/package.json) ため、軽量ゲートでは Backend 同様に lint + test のみ:

pnpm --filter frontend lint
pnpm --filter frontend test

vue-tsc の出力を単独で見たい時のみ optional で pnpm --filter frontend typecheck を別途回す。

Single file scope

pnpm exec eslint --fix <path>

Output

実行したフェーズの pass/fail と件数を集計する。標準パイプラインは pnpm lint (typecheck 内包) と unit test のみなので、デフォルトの出力は以下のようになる:

Quality Gate (repo):

Lint:        PASS  (0 errors, 2 warnings)
Backend ut:  PASS  (412/412)
Frontend ut: PASS  (87/87)

→ 完了前の軽量チェック OK。重い e2e / 連合テストは CI 側で実行される。

#### 詳細を分けて見たい時のみ (optional) で個別 typecheck (pnpm --filter backend typecheck / pnpm --filter frontend typecheck) も回した場合のみ、その結果を追加行として表示する:

Quality Gate (repo):

Lint:        PASS  (0 errors, 2 warnings)
Backend tc:  PASS  (0 errors)        # optional 実行時のみ
Frontend tc: PASS  (0 errors)        # optional 実行時のみ
Backend ut:  PASS  (412/412)
Frontend ut: PASS  (87/87)

失敗時は最初に落ちたフェーズで停止して詳細を見せる。

関連 skill / コマンド

元 ECC 版との差分

  • ジェネリックな言語自動判定を排除し、Misskey 固定 pipeline に。
  • formatter フェーズなし (Misskey は ESLint --fix のみ採用)。
  • e2e / federation / Cypress は重いため除外し CI 側に委譲。