> For the complete documentation index, see [llms.txt](https://docs.cherryai.com.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cherryai.com.cn/docs/jp/contribution/code.md).

# コードに貢献

コードへの貢献は、明確な問題から始まります。バグ修正の前に再現できることを確認し、機能追加の前にユーザーシナリオと期待される挙動を説明してください。範囲の大きい変更は、まず GitHub Issue または Discussion で方向性をすり合わせることをおすすめします。

<figure><img src="/files/f61a6f41218acf62d8624204577a32b6f6297daa" alt="从说明问题、最小改动、本地验证到提交评审和合并的贡献流程图"><figcaption><p>1回の貢献で解決するのは、明確な1つの問題だけにし、まずローカルで検証してからレビューに出してください。</p></figcaption></figure>

## 始める前に

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Cherry Studio リポジトリ</strong></td><td>ソースコード、README、開発エントリ</td><td><a href="https://github.com/CherryHQ/cherry-studio">https://github.com/CherryHQ/cherry-studio</a></td></tr><tr><td><strong>GitHub Issues</strong></td><td>バグ、機能提案、未解決の課題</td><td><a href="https://github.com/CherryHQ/cherry-studio/issues">https://github.com/CherryHQ/cherry-studio/issues</a></td></tr><tr><td><strong>貢献ガイド</strong></td><td>ブランチ、テスト、署名、レビュー要件</td><td><a href="https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md">https://github.com/CherryHQ/cherry-studio/blob/main/CONTRIBUTING.md</a></td></tr><tr><td><strong>行動規範</strong></td><td>コミュニティ協力の境界線</td><td><a href="https://github.com/CherryHQ/cherry-studio/blob/main/CODE_OF_CONDUCT.md">https://github.com/CherryHQ/cherry-studio/blob/main/CODE_OF_CONDUCT.md</a></td></tr></tbody></table>

取り組みやすいタスクは `good first issue`、`help wanted` と `kind/bug` というラベルから探せます。着手前に、Issue で担当予定を明記し、複数人の重複作業を避けてください。

## どのブランチを選ぶか

ほとんどの現在の機能、修正、リファクタリング、最適化は `main` に送ります。Issue、メンテナの案内、または貢献ガイドで別の対象ブランチが指定されている場合は、その時点のプロジェクトの案内に従ってください。古いチュートリアルだけで判断しないでください。

{% hint style="warning" %}
古いチュートリアルで対象ブランチを判断しないでください。PR を作成する前に、リポジトリの現在の貢献ガイドと PR テンプレートをもう一度確認してください。ブランチ戦略が変わっている場合は、リポジトリ内の内容を基準にしてください。
{% endhint %}

## コード貢献に適している場合

| 状況                      | 推奨方法                               |
| ----------------------- | ---------------------------------- |
| 安定して再現できる問題             | まず最小限の修正と対応するチェックを提出する             |
| 境界が明確な小さな機能             | 要件と対象ブランチを先に確認してから実装を始める           |
| データ移行、権限、またはアーキテクチャに関わる | まず Issue または Discussion で方針をすり合わせる |
| 説明文やスクリーンショットの修正だけが必要   | 【ドキュメントの貢献】に進み、コード PR に混ぜないでください   |

{% hint style="info" %}
1つの PR では、明確な1つの問題だけを解決してください。機能追加、リファクタリング、無関係な整形を同時に含めると、レビュー担当者はリスクを判断しにくく、ロールバックもしづらくなります。
{% endhint %}

## 提出の流れ

{% stepper %}
{% step %}

### 1. Fork してブランチを作成する

正しい対象ブランチから、範囲の明確な作業ブランチを作成してください。1つの PR は1つのテーマだけを解決し、ついでのリファクタリングや書式調整は混ぜないでください。
{% endstep %}

{% step %}

### 2. 開発環境を準備する

リポジトリの【Developer Guide】に従って指定された Node.js と pnpm のバージョンをインストールし、 `pnpm install`を実行してください。変更を始める前に、対象モジュールに関連する既存のチェックを実行し、ベースラインが使えることを確認してください。
{% endstep %}

{% step %}

### 3. 変更して検証する

バグ修正には、問題を再現できるテストを追加してください。新機能には、重要な経路と失敗シナリオをカバーしてください。提出前に、リポジトリで求められるフォーマット、静的チェック、テスト、ビルドチェックを実行してください。
{% endstep %}

{% step %}

### 4. コミットして署名する

コミットメッセージには変更の種類とモジュールを明記し、 `git commit --signoff` を使って DCO 署名を追加してください。署名は、この内容をプロジェクトのライセンスに従って提出する権利があることを示します。
{% endstep %}

{% step %}

### 5. PR を作成する

テンプレートに従って、変更前後、なぜこの方法を採用したのか、トレードオフと代替案、破壊的変更、検証方法、Release Note を記入してください。まだ議論が必要な変更は、まず Draft PR を作成してかまいません。
{% endstep %}
{% endstepper %}

## PR 提出後

新規貢献者の PR にはまず `needs-ok-to-test` が付き、自動テストはすぐには開始されません。リポジトリメンバーの確認後、 `/ok-to-test`  を使ってパイプラインを開始します。Draft PR は通常のレビュー担当者が割り当てられず、自動テストもスキップされます。準備ができたら Ready for review に切り替えてください。

レビューコメントは、新しいコミットで修正して、議論の文脈を維持してください。設計上の意見の相違が起きたら、まずユーザーの問題と検証可能な挙動に立ち返り、局所的な問題を避けるために大幅な書き換えをしないでください。

## 提出前のセルフチェック

* 対象ブランチは正しいか；
* 変更範囲は Issue/PR の説明と一致しているか；
* 新しい挙動にはテスト、または再現可能な手動検証手順があるか；
* ユーザーに見える変更はドキュメントも更新したか；
* データ移行、アップグレード、互換性を考慮したか；
* API キー、実際のユーザーデータ、デバッグファイルをコミットしていないか；
* Commit は署名済みで、Release Note はテンプレート要件に合っているか。

<details>

<summary>小さな変更でも Issue は必要ですか？</summary>

スペルミスや明らかな小修正はそのまま提出して構いません。製品の挙動、アーキテクチャ、または比較的大きな作業が関わる場合は、先に Issue を立てたほうが方向性を確認しやすくなります。Issue が必要かどうかは、リポジトリの現在の運用ルールに従ってください。

</details>

<details>

<summary>なぜ CI が自動で実行されなかったのですか？</summary>

まず PR が Draft ではないことを確認してください。新規貢献者の PR には、リポジトリメンバーが `/ok-to-test`見たら `needs-ok-to-test` 、PR 内で気長に確認をお待ちください。

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cherryai.com.cn/docs/jp/contribution/code.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
