Imported from n624-dev/takupoke-ios (
AGENTS.md). Install upstream withnpx skills add n624-dev/takupoke-ios. Copyright stays with the author.
開発時の指針
- 実装前に
docs/development-policy.mdとdocs/roadmap.mdを読む。 - ①の AltStore Source による初回導入・更新の実機確認を優先し、未確認の事項を完了済みと記載しない。
- Swift / SwiftUI による独立した iOS アプリとして開発する。Microsoft Graph、Web 版のラップ、Windows 版へのコード共有は導入しない。
- 今後新規に追加するUIはApple標準のLiquid Glassを採用する。既存画面の全面的な置き換えは後の作業とし、新規画面の実装へ混在させない。対応SDK・OSと標準コンポーネントの利用方針は
docs/development-policy.mdに従う。 - 実資料と既存実装を参照するときは必要な仕様だけを取り込み、学校資料・個人情報・認証情報をコピーしない。
- 公開テストの入力・期待結果には実際の教師名・教科名を使わない。「架空教員A」「架空科目A」など明確な架空値を使用し、実資料の名前だけを置換したものも使用しない。
- 公開ファイル・テスト・ログ・生成物は
docs/public-repository.mdに従う。 - ローカルに一時ファイルを溜めない。作業用ファイルは一時ディレクトリに作成し、作業完了・失敗・キャンセル時に可能な範囲で削除する。アプリでは異常終了後の残存ファイルの回収も設計する。削除対象は自分の処理が所有する一時ファイルに限定し、元資料・前回正常データ・別処理の使用中ファイルは保持する。
- 取得・解析の失敗で前回正常データを破壊しない。曖昧な内容は推測で反映しない。
- 未確定の解析規則や利用者に見える振る舞いを独断で仕様化しない。既存仕様だけでは判断できない場合は、具体例と影響を平易に説明して利用者へ確認する。確定済みの仕様や通常の実装方法について再承認を求める必要はない。
- 開発はこのデバイスと Windows の両方で行う。実装時には変更内容に合った検証を行い、このデバイス / Windows / CI / 実機のどこで確認したかを記録する。
- Git の作者・コミッターには GitHub の非公開用
noreplyメールアドレスを使用し、コミット前に有効な設定を確認する。ユーザーのグローバル Git 設定を変更しない。 - コードを変更した push 後は該当コミットの Actions が完了するまで確認する。失敗時はログを調べて修正し、修正後の実行も確認する。文書修正だけの push は監視しない。成功・失敗と確認できた範囲を利用者に報告する。
- CI・自動テストから学校サイトの本番URLへ通信しない。HEAD、疎通確認、条件付きGETも含む。実装に必要な調査のための取得は利用者から許可済みで、必要な回数に限定し、取得資料を公開物やテストへ混入させない。通信テストには架空URLと応答を使い、テスト用URLProtocolは想定外のURLも捕捉して拒否する。アプリ起動時には保存済み年度の行事APIを条件付きGETで確認し、行事元PDFのHEADと選択済みPDF・XLSXの変更確認も行う。初めての年度の行事取得は利用者が操作する。
- README を公開リポジトリの入口として維持する。機能・配布方法・必要環境の変更時には関連ドキュメントも更新し、実装済みと検証済みを区別する。
- Actions のキャッシュ・保存用 artifact は使用しない。容量をユーザーが手動管理する運用にしない。GitHub Releases の添付は別扱いとし、正式な Release を件数制限で自動削除しない。
