# CLAUDE.md

## このプロジェクト
市民オンライン手続きポータル — マイナンバーカード認証（モックJPKI）で来庁不要のオンライン申請を体験できる参考実装。外部依存ゼロ（Node.js ≥20 標準ライブラリ＋バニラJS、npm install不要）。6言語対応（日本語・英語・やさしい日本語ほか）。

ポートフォリオ・実務アピールに使える品質を目指す。動くデモとして常時公開されていることが最重要。

## コマンド
- 起動: `npm start`（apps/api/server.mjs）
- テスト: `npm test`（node --test tests/*.test.mjs）
- スモーク: `npm run smoke` ／ 構文チェック: `npm run check`
- デモデプロイ（ユーザー指示時のみ）: `npx wrangler deploy --config wrangler.demo.jsonc`
  → https://citizen-portal-demo.highdefinitionaudiodriver.workers.dev/（インメモリ・データ揮発）

## 制約・ルール
- **commitは自分が編集したファイルのみ明示的に `git add <path>`。`git add -A` 禁止**（並行セッションのWIP巻き込み防止）。
- 変更前に方針を説明し、調査→提案→小さく実装の順で進める。既存機能を壊さない。
- モックログイン（カード番号 JPKI-0001／暗証番号 1234）とデモバナーは維持する。
- 公開ページにGitHubへのリンクを張らない（アカウントflagにより訪問者には404になる）。
- 実在の個人情報・APIキー・秘密情報をコードやデータに入れない。
- `.wrangler/` はgitignore対象（アカウントID入りJSONをcommitしない）。
- 多言語UI: 文言追加時は全言語分の翻訳キーを揃える（data-i18n）。
- GitHub Actionsはアカウントflagで実行されない。検証はローカルで（npm test / smoke）。

## 関連
- ポートフォリオハブ: https://civictech-portfolio.pages.dev/
- 標準準拠20業務のmonorepo: gov-standard-systems（こちらにもportal連携あり）
