* 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>
6.8 KiB
Misskey – AI Agent Guide
このファイルは Misskey リポジトリで動く AI コーディングエージェント (Claude Code / OpenAI Codex / GitHub Copilot 等) が共通で参照する 絶対禁止事項と最低限のチェック を集めた索引。次の 3 経路から参照・読み込みされる:
- Claude Code: ルート
CLAUDE.mdから@AGENTS.mdで取り込まれる。詳細手順・規約は.claude/skills/(description で自動索引) - OpenAI Codex: ルート
AGENTS.mdを直接読み込む (skill エントリは.agents/skills/、実体は.claude/skills/を指す) - GitHub Copilot:
.github/copilot-instructions.md(本ファイルの規約を Copilot code review 向けに再掲) 経由で参照する
人間 contributor 向けの一般規約 (Issue / PR の出し方、ActivityPub 拡張など) は CONTRIBUTING.md を参照。本ファイルは AI が コードを書く・直す・出す 際に踏み外してはいけない事項に絞る。
絶対にやってはいけない事
違反すると CI 失敗 / 本番事故 / 共有環境破壊 になる。順守すること。
コード・データ関連
-
SPDX ヘッダー欠落のまま AGPL 管轄ディレクトリへ新規ファイルを追加しない
- 対象: 新規
.ts/.js/.cjs/.mjs/.vue/.scss/.htmlファイル - CI の対象判定は .github/workflows/check-spdx-license-id.yml の
directories配列を参照 (*.config.{ts,js,cjs,mjs}と*eslint*は除外) - 欠落すると CI (
spdxジョブ) が失敗する packages/misskey-jsは MIT ライセンスのサブパッケージなので、この AGPL ヘッダーを一律に付けない (サブパッケージ固有のpackage.json/LICENSE/ 既存ファイルのヘッダーに従う)
.ts/.js/.cjs/.mjs/.scss:/* * 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 --> - 対象: 新規
-
locales/ja-JP.yml以外の locale YAML を手動編集しない- 他言語ファイル (
en-US.ymlなどja-JP.yml以外すべて) は Crowdin の自動配信先。手動編集すると次の同期で上書き喪失する - 根拠: locales/README.md と crowdin.yml (
ja-JP.yml→locales/%locale%.ymlの同期設定)
- 他言語ファイル (
-
マージ済 migration ファイルを編集しない
- 対象:
packages/backend/migration/{unixMs}-{name}.jsのうち、既にdevelop/masterにマージされたもの - 本番環境で履歴改変が起きると深刻なデータ不整合を引き起こす
- スキーマ変更が必要な場合は 新しいタイムスタンプで新規ファイル を作成する (
node -e "console.log(Date.now())"でタイムスタンプ取得) - 新規 migration は
up()とdown()の両方を実装し、pnpm --filter backend check-migrationsを通すこと (TypeORM schema builder で pending DDL を検出)
- 対象:
Git / リポジトリ操作
git push --force/--force-with-leaseをmain/develop/masterにしない (他人の作業を消す可能性)git commit --no-verifyで hook をスキップしない (lint / format / SPDX チェックを潰す)- マージ済 / プッシュ済コミットを
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 / メール 等) へ送信しない
- secrets / 認証情報をリポジトリにコミットしない (
.config/*.ymlの本番値、.envファイル、API token、private key 等)
スキル呼び出し
上流スキルの実行・事前知識・memory の内容に関わらず免除されない。
working-on-backendスキルを参照せずにpackages/backend/配下のファイルを編集・追加しないworking-on-frontendスキルを参照せずにpackages/frontend/配下のファイルを編集・追加しないshipping-misskey-changeスキルを参照せずに commit / PR 作成 / 作業をユーザーに返さない
変更を出す前の最低チェック
各エージェントは shipping-misskey-change スキル を参照すること。スキルが利用できない環境でも、以下のチェックは必ず実施すること:
- lint:
pnpm lintが通る (typecheck + eslint, 全パッケージ) - backend API 変更時:
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()両方実装済 - 新規ファイル: SPDX ヘッダーを付けた (
.vue/.htmlは HTML コメント形式、それ以外は TS コメント形式) - ユーザー影響のある変更:
CHANGELOG.mdの## Unreleased配下の該当サブセクション (### General/### Client/### Server) に- <Feat|Enhance|Fix>: <概要>を 1 行追記 - locale safety:
locales/を編集した場合、git diff --name-only develop -- 'locales/*.yml' | grep -v '^locales/ja-JP\.yml$'が空 (ja-JP.yml 以外に差分が無い) ことを確認
Validation commands
各チェックで使う pnpm コマンド一覧。状況に応じて最も近いコマンドから検証する。
| 用途 | コマンド |
|---|---|
| 全体 lint (typecheck + eslint) | 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 unit test | pnpm --filter frontend test |
| Migration 差分検査 (pending DDL) | pnpm --filter backend check-migrations |
misskey-js 再生成 (API 変更後必須) |
pnpm build-misskey-js-with-types |
| 全体ビルド | pnpm build |
| 開発サーバー (backend + frontend watch) | pnpm dev |
注意: 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 で作成)。