From d4cd13701135ba7ef71904d8c8b2e9a4c28e600f Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Sun, 24 May 2026 15:35:00 +0900 Subject: [PATCH 1/4] Applied Branch Naming Rule to AGENTS.md --- AGENTS.md | 165 +++++++++++++++++++++++++++++++++++++++++++++++ Package.resolved | 19 ++++-- 2 files changed, 179 insertions(+), 5 deletions(-) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..3e7ee9f --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,165 @@ +# AGENTS.md + +このリポジトリは iOS App `Testy` と Linux CUI target `TestyOnLinux` の開発・レビュー用です。 +Codex または自動レビュー agent は、以下の方針に従って作業してください。 + +## 基本方針 + +- レビューでは、iOS App のビルド、Linux Static SDK クロスビルド、`blocks` 連携、`overlayNetwork` 経由の通信、UI 変更、CI 失敗、テスト不足を優先して確認する。 +- 変更を求められていないレビューでは、ファイル編集、コミット、push、merge、tag 作成、release 作成をしない。 +- 指摘は、対象ファイル、行番号、重要度、理由、可能なら修正案を含める。 +- 推測だけで断定しない。ローカル確認または GitHub Actions のログに基づいて説明する。 +- iOS は `Testy.xcodeproj`、Linux は `Package.swift` を入口として扱う。 + +## 実行してよい主な確認コマンド + +読み取り系: + +```sh +git status --short --branch +git diff +git diff --stat +git log --oneline --decorate -n 20 +git show --stat +rg +rg --files +sed -n '1,220p' +``` + +iOS build: + +```sh +xcodebuild -project Testy.xcodeproj -scheme Testy -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO build +``` + +Swift Package / Linux: + +```sh +swift --version +swift package resolve +swift build -v +swift test -v +swift sdk list +swift build -v --swift-sdk x86_64-swift-linux-musl --build-path .build/linux-musl +``` + +macOS 上で Swift 6.1.2 toolchain を明示して使う必要がある場合: + +```sh +TOOLCHAINS=org.swift.612202505261a swift build -v --swift-sdk x86_64-swift-linux-musl --build-path .build/linux-musl +``` + +GitHub / pull request 確認: + +```sh +gh pr view +gh pr diff +gh pr checks +gh run list --branch --limit 5 +gh run view +gh run view --log +``` + +CI 設定の構文確認: + +```sh +ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); puts "YAML OK"' +``` + +## ビルド出力ディレクトリのルール + +- ローカル検証では、スナップショット保存時にプロジェクト容量が増えないよう、可能な限りプロジェクト外の `~/appOutput/` を `--build-path` に指定する。 +- Linux Static SDK のローカルクロスビルドでは、例として次のように実行する。 + +```sh +swift build -v --swift-sdk x86_64-swift-linux-musl --build-path ~/appOutput/Testy +``` + +- CI では個人環境の home directory や絶対パスに依存しない。GitHub Actions では引き続き `.build/linux-musl` を使う。 + +## Pull Request ブランチ命名ルール + +- pull request 用ブランチを作成する場合は、変更内容に応じて次の接頭辞を使う。 + +| 接頭辞 | 用途 | +| --- | --- | +| `feature/` | 新機能 | +| `fix/` | バグ修正 | +| `ci/` | CI 設定 | +| `docs/` | ドキュメント | +| `refactor/` | リファクタ | +| `test/` | テスト追加 | +| `release/` | リリース準備 | + +- 例: `feature/account-screen`, `ci/static-linux-sdk-cache`, `docs/review-guardrails` + +## 条件付きで実行してよい操作 + +- ユーザーが明示的に依頼した場合のみ、ファイル編集、コミット、push、PR 作成を行う。 +- `gh pr create`、`gh pr comment`、`gh pr review` は、ユーザーの依頼または自動レビューの目的に必要な場合のみ使う。 +- 依存関係や toolchain のインストールは、CI の再現やユーザーの依頼に必要な場合に限る。 +- ローカル path 依存で検証する場合、CI では必要な兄弟 package を checkout または配置する。GitHub tag 依存へ切り替えた PR では、該当 dependency の追加 checkout は原則不要。 + +## Package.swift の依存関係ルール + +- 開発中は、隣接ディレクトリのソースを直接確認できるように `Package.swift` の `dependencies` ではローカル path 依存を使う。 + +```swift +.package(name: "blocks", path: "../blocks"), //using source code in same device. +.package(name: "SharedDesignSystem", path: "../SharedDesignSystem"), //using source code in same device. +``` + +- pull request を作成または更新する前に、`blocks` と `SharedDesignSystem` のどの GitHub tag を使うかを必ずユーザーに確認する。 +- pull request 用の状態では、ユーザーが指定した tag を使って GitHub tag 依存へ切り替える。 + +```swift +.package(url: "https://github.com/webbananaunite/blocks", .upToNextMajor(from: "")), //using source code in github tag +.package(url: "https://github.com/webbananaunite/SharedDesignSystem", .upToNextMajor(from: "")), //using source code in github tag +``` + +- 例として現在想定されている tag は `blocks` が `0.5.4`、`SharedDesignSystem` が `0.1.0` だが、PR ごとに最新の意図をユーザーへ確認する。 +- GitHub tag 依存へ切り替える場合、その tag が GitHub に push 済みであり、PR で検証したい変更を含んでいることを確認する。tag に含まれないローカル変更は CI では検証されない。 +- SwiftPM の version requirement には SemVer として解釈できる tag を使う。`0.1` のような短い tag を使う必要がある場合は、SwiftPM が受け付けるか確認し、問題があれば `0.1.0` のような 3 要素の tag をユーザーに提案する。 + +## してはならない操作 + +- ユーザーの明示的な許可なしに、以下を実行しない。 + +```sh +git reset --hard +git clean -fdx +git checkout -- +git push --force +git push --force-with-lease +gh pr merge +gh release create +gh auth login +gh auth token +rm -rf +``` + +- secret、token、署名鍵、認証情報を表示、保存、ログ出力しない。 +- `.git` の履歴を書き換える操作を、レビュー目的だけで行わない。 +- CI で `/Users/yoichi/appOutput/Testy` のような個人環境の絶対パスを使わない。CI では `.build/linux-musl` を使う。 +- Linux 検証を `swift:5.8` などの Linux container native build で代替しない。Static Linux SDK クロスビルドを優先する。 +- 失敗した CI を `continue-on-error` で隠して成功扱いにしない。 + +## レビュー時の重点 + +- iOS UI 変更では SwiftUI view、navigation、権限、通知、入力検証を確認する。 +- Linux target では `Sources/Testy/iOS` が除外され、CUI/domain 側だけでビルドできることを確認する。 +- `blocks` と `overlayNetwork` の API 変更が `Testy` 側に波及していないか確認する。 +- `#if os(...)`、Darwin、Glibc、Musl、POSIX API の型差分を確認する。 +- public API 変更がある場合は、README、tests、CI の更新漏れを確認する。 + +## 推奨する報告形式 + +レビュー結果は次の順で報告する。 + +1. 重要な問題点 +2. 根拠となるファイル・行・ログ +3. 修正案 +4. 実行した確認コマンド +5. 残っているリスク + +問題が見つからない場合も、その旨と確認した範囲を明記する。 diff --git a/Package.resolved b/Package.resolved index 3a42b45..6fed7a2 100755 --- a/Package.resolved +++ b/Package.resolved @@ -1,13 +1,22 @@ { - "originHash" : "bb82be2a944ceefc086e3810039a585b7739985ad65d4f6080187d8dbf726372", + "originHash" : "b28ba646fcc33c93faa176be6d515da41fba7449954a010d52f31311d0ee7028", "pins" : [ + { + "identity" : "overlaynetwork", + "kind" : "remoteSourceControl", + "location" : "https://github.com/webbananaunite/overlayNetwork", + "state" : { + "revision" : "95f03332470ee9908394ea8d06655a200d406be0", + "version" : "0.5.4" + } + }, { "identity" : "swift-asn1", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-asn1.git", "state" : { - "revision" : "f70225981241859eb4aa1a18a75531d26637c8cc", - "version" : "1.4.0" + "revision" : "eb50cbd14606a9161cbc5d452f18797c90ef0bab", + "version" : "1.7.0" } }, { @@ -15,8 +24,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-crypto.git", "state" : { - "revision" : "334e682869394ee239a57dbe9262bff3cd9495bd", - "version" : "3.14.0" + "revision" : "95ba0316a9b733e92bb6b071255ff46263bbe7dc", + "version" : "3.15.1" } } ], From 58f94d08ebe44d2af8b29b53d5bb9ec941ffc869 Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Sun, 24 May 2026 15:43:24 +0900 Subject: [PATCH 2/4] Applied Pulling --- Package.resolved | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Package.resolved b/Package.resolved index f5bd48b..852c006 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "b28ba646fcc33c93faa176be6d515da41fba7449954a010d52f31311d0ee7028", + "originHash" : "89e5e3d884e722e89e899c76ba050ecd97266a02c41ba441f8eceb00cd7cf0c7", "pins" : [ { "identity" : "blocks", @@ -22,10 +22,10 @@ { "identity" : "shareddesignsystem", "kind" : "remoteSourceControl", - "location" : "https://github.com/webbananaunite/overlayNetwork", + "location" : "https://github.com/webbananaunite/SharedDesignSystem", "state" : { - "revision" : "95f03332470ee9908394ea8d06655a200d406be0", - "version" : "0.5.4" + "revision" : "e4c0879dbb3c4674ff1dbaeb3d03ddb420c7a962", + "version" : "0.1.0" } }, { From 3d1fe1f5d715e57a8b89012561100955440f9a9d Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Mon, 25 May 2026 10:02:59 +0900 Subject: [PATCH 3/4] Added Funding.yml --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..c570212 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: webbananaunite From 240b2dc08023bed725cd6a7979d04ba6efed9beb Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Mon, 25 May 2026 12:12:47 +0900 Subject: [PATCH 4/4] chore: remove AGENTS.md from PR --- AGENTS.md | 165 ------------------------------------------------------ 1 file changed, 165 deletions(-) delete mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 3e7ee9f..0000000 --- a/AGENTS.md +++ /dev/null @@ -1,165 +0,0 @@ -# AGENTS.md - -このリポジトリは iOS App `Testy` と Linux CUI target `TestyOnLinux` の開発・レビュー用です。 -Codex または自動レビュー agent は、以下の方針に従って作業してください。 - -## 基本方針 - -- レビューでは、iOS App のビルド、Linux Static SDK クロスビルド、`blocks` 連携、`overlayNetwork` 経由の通信、UI 変更、CI 失敗、テスト不足を優先して確認する。 -- 変更を求められていないレビューでは、ファイル編集、コミット、push、merge、tag 作成、release 作成をしない。 -- 指摘は、対象ファイル、行番号、重要度、理由、可能なら修正案を含める。 -- 推測だけで断定しない。ローカル確認または GitHub Actions のログに基づいて説明する。 -- iOS は `Testy.xcodeproj`、Linux は `Package.swift` を入口として扱う。 - -## 実行してよい主な確認コマンド - -読み取り系: - -```sh -git status --short --branch -git diff -git diff --stat -git log --oneline --decorate -n 20 -git show --stat -rg -rg --files -sed -n '1,220p' -``` - -iOS build: - -```sh -xcodebuild -project Testy.xcodeproj -scheme Testy -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO build -``` - -Swift Package / Linux: - -```sh -swift --version -swift package resolve -swift build -v -swift test -v -swift sdk list -swift build -v --swift-sdk x86_64-swift-linux-musl --build-path .build/linux-musl -``` - -macOS 上で Swift 6.1.2 toolchain を明示して使う必要がある場合: - -```sh -TOOLCHAINS=org.swift.612202505261a swift build -v --swift-sdk x86_64-swift-linux-musl --build-path .build/linux-musl -``` - -GitHub / pull request 確認: - -```sh -gh pr view -gh pr diff -gh pr checks -gh run list --branch --limit 5 -gh run view -gh run view --log -``` - -CI 設定の構文確認: - -```sh -ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); puts "YAML OK"' -``` - -## ビルド出力ディレクトリのルール - -- ローカル検証では、スナップショット保存時にプロジェクト容量が増えないよう、可能な限りプロジェクト外の `~/appOutput/` を `--build-path` に指定する。 -- Linux Static SDK のローカルクロスビルドでは、例として次のように実行する。 - -```sh -swift build -v --swift-sdk x86_64-swift-linux-musl --build-path ~/appOutput/Testy -``` - -- CI では個人環境の home directory や絶対パスに依存しない。GitHub Actions では引き続き `.build/linux-musl` を使う。 - -## Pull Request ブランチ命名ルール - -- pull request 用ブランチを作成する場合は、変更内容に応じて次の接頭辞を使う。 - -| 接頭辞 | 用途 | -| --- | --- | -| `feature/` | 新機能 | -| `fix/` | バグ修正 | -| `ci/` | CI 設定 | -| `docs/` | ドキュメント | -| `refactor/` | リファクタ | -| `test/` | テスト追加 | -| `release/` | リリース準備 | - -- 例: `feature/account-screen`, `ci/static-linux-sdk-cache`, `docs/review-guardrails` - -## 条件付きで実行してよい操作 - -- ユーザーが明示的に依頼した場合のみ、ファイル編集、コミット、push、PR 作成を行う。 -- `gh pr create`、`gh pr comment`、`gh pr review` は、ユーザーの依頼または自動レビューの目的に必要な場合のみ使う。 -- 依存関係や toolchain のインストールは、CI の再現やユーザーの依頼に必要な場合に限る。 -- ローカル path 依存で検証する場合、CI では必要な兄弟 package を checkout または配置する。GitHub tag 依存へ切り替えた PR では、該当 dependency の追加 checkout は原則不要。 - -## Package.swift の依存関係ルール - -- 開発中は、隣接ディレクトリのソースを直接確認できるように `Package.swift` の `dependencies` ではローカル path 依存を使う。 - -```swift -.package(name: "blocks", path: "../blocks"), //using source code in same device. -.package(name: "SharedDesignSystem", path: "../SharedDesignSystem"), //using source code in same device. -``` - -- pull request を作成または更新する前に、`blocks` と `SharedDesignSystem` のどの GitHub tag を使うかを必ずユーザーに確認する。 -- pull request 用の状態では、ユーザーが指定した tag を使って GitHub tag 依存へ切り替える。 - -```swift -.package(url: "https://github.com/webbananaunite/blocks", .upToNextMajor(from: "")), //using source code in github tag -.package(url: "https://github.com/webbananaunite/SharedDesignSystem", .upToNextMajor(from: "")), //using source code in github tag -``` - -- 例として現在想定されている tag は `blocks` が `0.5.4`、`SharedDesignSystem` が `0.1.0` だが、PR ごとに最新の意図をユーザーへ確認する。 -- GitHub tag 依存へ切り替える場合、その tag が GitHub に push 済みであり、PR で検証したい変更を含んでいることを確認する。tag に含まれないローカル変更は CI では検証されない。 -- SwiftPM の version requirement には SemVer として解釈できる tag を使う。`0.1` のような短い tag を使う必要がある場合は、SwiftPM が受け付けるか確認し、問題があれば `0.1.0` のような 3 要素の tag をユーザーに提案する。 - -## してはならない操作 - -- ユーザーの明示的な許可なしに、以下を実行しない。 - -```sh -git reset --hard -git clean -fdx -git checkout -- -git push --force -git push --force-with-lease -gh pr merge -gh release create -gh auth login -gh auth token -rm -rf -``` - -- secret、token、署名鍵、認証情報を表示、保存、ログ出力しない。 -- `.git` の履歴を書き換える操作を、レビュー目的だけで行わない。 -- CI で `/Users/yoichi/appOutput/Testy` のような個人環境の絶対パスを使わない。CI では `.build/linux-musl` を使う。 -- Linux 検証を `swift:5.8` などの Linux container native build で代替しない。Static Linux SDK クロスビルドを優先する。 -- 失敗した CI を `continue-on-error` で隠して成功扱いにしない。 - -## レビュー時の重点 - -- iOS UI 変更では SwiftUI view、navigation、権限、通知、入力検証を確認する。 -- Linux target では `Sources/Testy/iOS` が除外され、CUI/domain 側だけでビルドできることを確認する。 -- `blocks` と `overlayNetwork` の API 変更が `Testy` 側に波及していないか確認する。 -- `#if os(...)`、Darwin、Glibc、Musl、POSIX API の型差分を確認する。 -- public API 変更がある場合は、README、tests、CI の更新漏れを確認する。 - -## 推奨する報告形式 - -レビュー結果は次の順で報告する。 - -1. 重要な問題点 -2. 根拠となるファイル・行・ログ -3. 修正案 -4. 実行した確認コマンド -5. 残っているリスク - -問題が見つからない場合も、その旨と確認した範囲を明記する。