misskey/.claude/commands/quality-gate.md
おさむのひと 2328ef3737
chore(llm/docs): .claude配下の再構成 (#17514)
* chore(docs): .claude配下の再構成

* fix AGENTS.md

* fix AGENTS.md

* fix review

* 行番号参照の除去

* docs: fix storybook note in vue reviewer agent

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix local review

* fix

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-03 09:03:10 +09:00

5.5 KiB

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 側に委譲。