* 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>
5.5 KiB
Copilot Instructions for Misskey
このファイルは GitHub Copilot の repository-wide instructions として使われる。Copilot code review では AGENTS.md が読まれない環境があるため、レビューや軽微な実装判断に必要な規約はこのファイル単体で満たすこと。
リポジトリは Misskey の pnpm workspace モノレポ。主要な実装は packages/backend (NestJS / TypeORM) と packages/frontend (Vue 3) にある。より詳しいガイドはリポジトリルートの AGENTS.md を参照してよいが、このファイルの要件を省略してそちらへの参照だけで済ませないこと。
絶対にやってはいけない事
違反すると CI 失敗 / 本番事故 になる。
コード・データ関連
-
SPDX ヘッダー必須: AGPL-3.0-only 管轄かつ SPDX CI 対象ディレクトリに新規
.ts/.js/.cjs/.mjs/.scss/.vue/.htmlファイルを追加する場合は冒頭に必ず付ける。詳細な対象判定は.github/workflows/check-spdx-license-id.ymlを参照。/* * SPDX-FileCopyrightText: syuilo and misskey-project * SPDX-License-Identifier: AGPL-3.0-only */新規
.vue/.htmlファイルは HTML コメント形式で:<!-- SPDX-FileCopyrightText: syuilo and misskey-project SPDX-License-Identifier: AGPL-3.0-only -->packages/misskey-jsは MIT ライセンスのサブパッケージなので、この AGPL ヘッダーを一律に付けない (サブパッケージ固有のpackage.json/LICENSE/ 既存ファイルのヘッダーに従う)。 -
locales/ja-JP.yml以外の locale YAML を編集しない。他言語ファイル (en-US.ymlなどja-JP.yml以外すべて) は Crowdin の自動配信先で、手動編集すると次の同期で上書き喪失する。 -
マージ済 migration を編集しない。
packages/backend/migration/{timestamp}-*.jsのうち既にdevelop/masterに入ったものは絶対に変更しない。スキーマ変更が必要なら新しい timestamp で新規ファイルを追加し、up()とdown()の両方を実装する。 -
secrets / 認証情報をリポジトリにコミットしない (
.config/*.ymlの本番値、.envファイル、API token、private key 等)。
Git / リポジトリ操作
git push --force/--force-with-leaseをmain/develop/masterにしないgit commit --no-verifyで hook をスキップしない- マージ済 / プッシュ済コミットを
git commit --amendで書き換えない - 他人のブランチを
git reset --hard/git branch -Dで破壊しない git configをユーザーに無断で書き換えない (特にuser.name/user.email/commit.gpgsign)
Issue / PR / 外部送信
- ユーザーの明示指示なしに PR を merge / close / force-push しない
- ユーザーの明示指示なしに external service (GitHub comments / Slack / メール 等) へ送信しない
変更を出す前の最低チェック
pnpm lintが通る (typecheck + eslint, 全パッケージ)- backend で
meta/paramDef/resを変更した →pnpm build-misskey-js-with-typesを実行しpackages/misskey-js/src/autogen/の差分も commit に含めた - entity / migration を変更した →
pnpm --filter backend check-migrationsが pending DDL 0 件で通る / 新規 migration はup()とdown()両方実装済 - 新規
.ts/.js/.cjs/.mjs/.vue/.scss/.htmlファイルを追加した → SPDX ヘッダーを付けた - ユーザー影響のある変更 →
CHANGELOG.mdの## Unreleased配下の該当サブセクション (### General/### Client/### Server) に- <Feat|Enhance|Fix>: <概要>を 1 行追記 locales/を編集した場合、git diff --name-only develop -- 'locales/*.yml' | grep -v '^locales/ja-JP\.yml$'が空 (ja-JP.yml 以外に差分が無い) ことを確認
Validation コマンド
- 全体ビルド:
pnpm build - 全体 lint / typecheck:
pnpm lint - Backend unit test:
pnpm --filter backend test - Backend e2e test:
pnpm --filter backend test:e2e - Backend federation test:
pnpm --filter backend test:fed - Frontend test:
pnpm --filter frontend test - Migration 差分検査:
pnpm --filter backend check-migrations misskey-js再生成 (API 変更後必須):pnpm build-misskey-js-with-types
注意: backend テスト (test / test:e2e / test:fed) 実行前に .config/test.yml が必要。未作成の場合は ncp .github/misskey/test.yml .config/test.yml (または cp .github/misskey/test.yml .config/test.yml) を実行してから走らせる。各テストスクリプトが内部で cross-env NODE_ENV=test pnpm compile-config を呼ぶため、コピー済みであれば追加の compile-config は不要。
変更範囲に応じて最も近いコマンドから優先して検証し、必要なら全体コマンドに広げること。
Editing hints
- Backend の API / migration / TypeORM 変更は
packages/backendを見る - Frontend の Vue コンポーネントやページ変更は
packages/frontendを見る AGENTS.md内の相対リンクはリポジトリルート起点で解決する想定
補足: AGENTS.md はより詳細な正典 (Codex / Claude Code が読み込む)。Copilot code review ではこのファイルが主な入口になる。両方が読まれる環境では AGENTS.md を補助情報として使ってよい。