Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ contact_links:
url: https://acecore.net/contact/
about: 事業相談や非公開の連絡は公式お問い合わせフォームを利用してください。
- name: セキュリティ報告
url: https://acecore.net/contact/
url: https://github.com/acecore-systems/.github/blob/main/SECURITY.md
about: 脆弱性は公開 Issue に投稿せず、まずセキュリティポリシーと連絡窓口を確認してください。
29 changes: 29 additions & 0 deletions .github/workflows/community-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Community settings

on:
pull_request:
push:
branches: [main]

permissions:
contents: read

concurrency:
group: community-check-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
community-check:
name: community-check
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "24"
cache: npm
- run: npm ci
- run: npm run check
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
4 changes: 4 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"proseWrap": "preserve",
"endOfLine": "lf"
}
13 changes: 7 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@ Acecore プロジェクトへの改善提案ありがとうございます。

## Issue

可能な限り Issue テンプレートを使ってください。
共通の Issue テンプレートは次の2種類です。独自テンプレートがあるリポジトリでは、そちらの案内に従ってください。

- バグ報告には、期待される動作、実際の動作、再現手順、関連する環境情報を
含めてください。
- 機能要望には、解決したい課題、望ましい結果、制約条件を含めてください。
- コンテンツやドキュメントの変更では、対象ページ、言語、ファイルパスを
明記してください。
- **不具合**: 現在の挙動、期待する挙動、直ったと判断できる状態を記載してください。
再現手順や環境情報は、分かる範囲で添えてください。
- **タスク**: 改善、機能追加、コンテンツ、CMS、運用などの依頼に使います。
何をしたいかと完了条件を記載し、対象ページ、言語、ファイルパスや制約があれば添えてください。

迷った場合は「タスク」を使い、足りない情報はコメントで補います。空の Issue も利用できます。

## Pull Request

Expand Down
63 changes: 62 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,65 @@
- `.github/ISSUE_TEMPLATE/`: 共通の Issue フォーム
- `.github/PULL_REQUEST_TEMPLATE.md`: 共通の Pull Request テンプレート

各リポジトリに同名のファイルがある場合は、リポジトリ側の設定が優先されます。
## 共通設定が使われる条件

この公開リポジトリのデフォルトブランチにある共通ファイルは、`acecore-systems` が
所有するリポジトリで、対応する個別設定がない場合にGitHub上で使われます。
継承先の公開・非公開は問いません。共通ファイルは継承先にコピーされず、cloneにも含まれません。

| 対象 | 個別設定との関係 |
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CONTRIBUTING・CODE_OF_CONDUCT・SECURITY・SUPPORT | 各リポジトリにその種類のファイルがあれば個別版を優先します。複数の配置場所が使えるファイルは `.github/` → ルート → `docs/` の順で探します。 |
| Issue Forms・問い合わせ設定 | 個別リポジトリの `.github/ISSUE_TEMPLATE/` に有効なテンプレートまたは `config.yml` があれば、共通フォルダーの内容は一切使われません。フォーム単位では合成されません。 |
| PRテンプレート | 個別テンプレートがある場合は個別版を使います。 |
| `profile/README.md` | Organizationの公開プロフィールに表示されます。個別repoのREADMEにはなりません。 |

GitHub Actions、`AGENTS.md`、`.github/copilot-instructions.md` は、ここに置くだけでは
他のリポジトリへ自動適用されません。Actionsは各repoにworkflowを配置するか、
呼び出し側を用意して再利用します。エージェント向け指示も必要な各repoで管理してください。

共通設定を使う場合は、個別設定の必要性と差分を確認したうえで、その種類の個別設定を取り除きます。
独自設定が必要な場合は、そのrepoで管理します。特に独自Issue設定では、必要な非公開連絡先も
個別の `config.yml` に記載してください。

詳しくは [GitHubの共通ファイル仕様](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file) を参照してください。

## 検証

Node.js 24とnpmを使います。依存関係はlockfileに固定しています。

```sh
npm ci
npm run check
```

`npm run check` は以下を実行します。

- PrettierによるMarkdown・YAML・検証コードの整形確認。
- YAML構文、Issue Formsの基本構造(必須キー・入力型・IDやラベルの重複など)、問い合わせ設定の検証。
- Markdownの通常リンク・画像・参照リンクの相対パス確認。
- 検証処理が誤りを検出できることを確認するテスト。

自動修正は `npm run format`、構造とリンクだけの確認は `npm run check:community` です。
構造検証はGitHubの全仕様を再実装するものではありません。外部URLの応答、見出しアンカー、
HTMLで記述したリンク、GitHub上のフォーム表示は自動チェックの対象外です。
相対パスはこのrepo内に存在するファイルやディレクトリを指す必要があります。

CIはPRと `main` へのpushで `community-check` を実行します。必須チェックとして使うため、
パスによる実行除外や `[skip ci]` は使わないでください。外部サービスの認証情報は不要です。

## 更新手順と影響確認

1. 最新の `origin/main` から専用branch/worktreeを作成し、他の未コミット作業を混ぜずに変更します。
2. Issueは「不具合・タスク」の2種類を基本にし、必須入力やPR本文をむやみに増やしません。
3. `npm run check` と `git diff --check` を実行し、変更した外部リンクの到達先も確認します。
4. 日本語のdraft PRに変更理由・検証結果・適用先への影響を記載します。CI成功後にレビューを受けます。
5. マージ後、Organizationの公開プロフィール、文書リンク、Issue選択画面とフォーム表示を確認します。

継承確認には、共通Issue設定を使う `homepage-hatt` と、独自設定を持つ `acecore-net` を使います。
確認時に各repoのデフォルトブランチの設定を読み、前者には共通変更が反映され、後者の独自フォームは
維持されていることを確認してください。テンプレートの確認だけでIssueを投稿する必要はありません。

初回導入ではPRの `community-check` 成功後に、既存の `main` 保護へ同名チェックを必須として追加します。
レビュー人数や管理者への適用など、他の保護項目は維持します。
チェックを改名する場合は、旧名の必須設定がマージを止めないよう、workflowと保護設定を一緒に見直します。
9 changes: 5 additions & 4 deletions SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
プロジェクト固有の相談や作業依頼は、各リポジトリの Issue テンプレートを
利用してください。

- バグ: 再現手順と期待される動作を含めて報告してください。
- 機能要望: 解決したい課題と望ましい結果を説明してください。
- ドキュメント・コンテンツ変更: 対象のパス、言語、ページを明記してください。
- **不具合**: 現在の挙動と期待する挙動、直ったと判断できる状態を報告してください。再現手順は分かる範囲で構いません。
- **タスク**: 改善、機能追加、ドキュメント・コンテンツ、CMS、運用などの依頼に使います。依頼内容と完了条件、分かれば対象のパス・言語・ページを記載してください。

迷った場合は「タスク」を使ってください。独自テンプレートがあるリポジトリでは、その案内に従ってください。

事業に関する問い合わせやWebサイト経由の連絡は、以下を利用してください。

https://acecore.net/contact/

セキュリティ報告は `SECURITY.md` に従い、公開の場には投稿しないでください。
セキュリティ報告は [セキュリティポリシー](https://github.com/acecore-systems/.github/blob/main/SECURITY.md) に従い、公開の場には投稿しないでください。リポジトリ固有の手順がある場合は、そちらを優先してください。
Loading