Commit Graph

436 Commits

Author SHA1 Message Date
toyota 6fd16ceced docs(plugins): セットアップ手順を /plugin コマンド (Marketplace 経由) に統一
- xtone-project-init-plugin / xtone-auth-plugin / xtone-aid-skill-creator-plugin の README とusage-guide
- 旧 `claude --plugin-dir` / `claude plugin validate` 記述を `/plugin marketplace add` + `/plugin install` に置換
- 開発時の検証コマンドは ai-delivery/scripts/validate-plugin.sh に統一

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 15:18:03 +09:00
Yoichi Toyota 87b65e0b73 Merge pull request #210 from xtone/feat/project-init-marketplace-register
feat(marketplace): xtone-project-init-plugin を Marketplace 配信プラグインに追加
2026-06-02 15:05:36 +09:00
toyota 57665b9a18 feat(marketplace): xtone-project-init-plugin を Marketplace 配信プラグインに追加
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 14:49:42 +09:00
Yoichi Toyota 65c77fdaa2 Merge pull request #209 from xtone/feat/project-backend-init-rails-docker-compose
feat(project-backend-init): バックエンド土台に Rails(API)/Hotwire の docker compose セットアップを追加
2026-06-02 14:39:17 +09:00
toyota 6c9d71c9fb fix(project-backend-init): rails.md インライン compose 例に build.args.RUBY_VERSION を追記 (PR #209 review Minor)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 14:23:23 +09:00
toyota 8cdace28e8 docs(project-backend-init): authoring log の「昇格項目」を最終実装と整合 (PR #209 review)
- -u フラグ → root 生成+chown(実機の正解に統一)
- gem named volume 化 → イメージ内に焼く方式(named volume は不要)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 14:17:08 +09:00
toyota 7facf73aab docs(project-backend-init): database.yml の本番 DATABASE_URL 必須を明示 (PR #209 review Minor)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 14:09:40 +09:00
toyota 23f3ef4756 fix(project-backend-init): references/rails.md のインライン Dockerfile 例を実テンプレと整合 (PR #209 review)
- 冒頭の検証記録を Ruby 4.0.5 / 非 root に更新
- §2 インライン例: RUBY_VERSION デフォルト撤廃、libyaml-dev 追加、Gemfile.lock*、非 root 化を反映

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 14:03:19 +09:00
toyota 9b36cad495 fix(project-backend-init): bundle volume 不要の方針に references/README を統一 (PR #209 review)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 13:54:33 +09:00
toyota 5bb0be1edc docs(project-backend-init): 判断ポイント (DP-PINIT-12/13, DP-RUBY-VER, DP-TEST-FW, DP-CSS-FW) と作業記録を追加
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 13:41:33 +09:00
toyota 6f948d2ebc feat(project-backend-init): バックエンド土台に Rails(API)/Hotwire の docker compose セットアップを追加
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 13:41:25 +09:00
Yoichi Toyota 5faf192854 Merge pull request #208 from xtone/feat/B-25-tech-version-check-pending-decisions
feat(tech-version-check): 複数候補が残った技術判断を pending-decisions に自動起票 (B-25)
2026-06-02 12:01:50 +09:00
toyota b46338bfe6 fix(tech-version-check): セクション番号の相互参照を 6→7 に修正 (B-25 review)
version-matrix.template.md に新セクション6「複数候補が残った技術判断」を挿入
したことで「採用根拠の要約」が7へ繰り下がったが、SKILL.md 内の相互参照1箇所が
旧番号6のまま残っていた。PR #208 レビュー指摘(Major)に対応。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 10:58:42 +09:00
toyota 8d4e4e8cc3 feat(tech-version-check): 複数候補が残った技術判断を pending-decisions に自動起票 (B-25)
tech-version-check が複数候補の技術判断を起票せず、agent が推奨で独断確定して
しまう問題(T-002 warn_and_document 違反)を塞ぐ。

- SKILL.md: 手順5を「判断ポイントの起票」に拡張し、「複数候補が残った技術判断
  の DP 起票(B-25)」節を新設(誤検知防止ルール / DP 仮ID命名 / 起票フォーマット
  / 検証シナリオ)
- version-matrix.template.md: 「6. 複数候補が残った技術判断(DP 起票)」節を追加
  し pending-decisions と相互参照。単一候補なら空でよい(誤検知防止)
- implementer.md(template / auth / project-init / skill-creator): tech-version-
  check 完了時に version-matrix の DP 候補を pending-decisions へ append するフック
  を追加。確定済み・単一候補は append しない

xtone-shared-plugin の実体編集が symlink 経由で全プラグインに反映され、symlink
構造は不変。validate-plugin.sh 全プラグイン pass。

Closes #184

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 10:44:04 +09:00
Yoichi Toyota 6439e193b4 Merge pull request #207 from xtone/feat/T-051-project-init
feat(project-init): add xtone-project-init-plugin (T-051)
2026-06-01 20:26:12 +09:00
TOYOTA, Yoichi 1cce768a63 docs(project-init): document how to add a setup language/framework
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 18:00:23 +09:00
TOYOTA, Yoichi c3dc1006f4 fix(project-init): mark decided DP-PINIT-05..10 as accepted in delivery artifacts
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 17:41:52 +09:00
TOYOTA, Yoichi 1f2bd87310 feat(project-init): add xtone-project-init-plugin (T-051)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 16:57:52 +09:00
TOYOTA, Yoichi 98b695244c feat(schemas): add project-scope schema and wire validate-plugin
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 16:57:52 +09:00
TOYOTA, Yoichi fb366de98e feat(schemas): allow DP-<USECASE>-NN ids in requirements/design undecided
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 16:57:46 +09:00
Yoichi Toyota 75ac073684 Merge pull request #206 from xtone/feat/aid-plugins-marketplace-publish
feat(marketplace): ai-delivery 配下の2プラグインを公開対象に追加
2026-06-01 12:11:39 +09:00
TOYOTA, Yoichi a7af291337 feat(marketplace): ai-delivery 配下の2プラグインを公開対象に追加
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 12:08:31 +09:00
Yoichi Toyota 810d6285ae Merge pull request #203 from xtone/feat/issue-201-aid-sample-case-binding-skill
feat(aid-skill-creator): aid-sample-case-binding を Skill 化 (closes #201)
2026-05-28 20:13:20 +09:00
Yoichi Toyota ca0e22c6b6 Merge pull request #205 from xtone/feat/B-AID-03-dp-registration
feat(aid-skill-creator): DP-AID-01〜05 を Notion DP DB に正式起票(B-AID-03 / ドッグフード)
2026-05-28 19:56:05 +09:00
Yoichi Toyota 4fa1b6ed75 Merge pull request #204 from xtone/feat/B-AID-02-startup-test
docs(aid-skill-creator): #199 実起動試験ログを delivery/ に追加
2026-05-28 19:55:40 +09:00
TOYOTA, Yoichi 616c3d08f6 fix(aid-sample-case-binding): 参考セクションの体裁統一(句点追加)
PR #203 のセルフレビューで Suggestion として指摘された参考セクションの
最終行が句点なしで終わる体裁不揃いを解消。同 SKILL.md 内の既知の制約・
判断ポイント・メタゆえの留意点セクションが全箇条書きで句点 `。` で
終わっている体裁に合わせ、参考セクションの全 5 行に句点を追加した。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 19:55:17 +09:00
Yoichi Toyota 11e6397016 Merge pull request #202 from xtone/fix/issue-198-dp-regex
fix(ai-delivery): pre-phase-transition Hook の DP 正規表現を template と auth-plugin にも反映 (Closes #198)
2026-05-28 19:54:58 +09:00
TOYOTA, Yoichi 532b32563d feat(aid-skill-creator): DP-AID-01〜05 を Notion DP DB に正式起票(B-AID-03 / ドッグフード)
`/aid-dp-register` の 3 段階運用(プレビュー → ユーザ確認 → 起票)で本プラグイン
固有の判断ポイント 5 件を Notion 判断ポイントカタログ DB に起票。命名は ADR-AID-002
で確定済みの `DP-AID-NN` 形式。本プラグイン自身のドッグフード機会として
`delivery/dogfood/self/findings.md` に仕様改善候補(FINDING-SELF-01〜05)を所見化。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 19:41:04 +09:00
TOYOTA, Yoichi 540c268608 docs(aid-skill-creator): #199 実起動試験ログを delivery/ に追加
xtone-aid-skill-creator-plugin の実起動試験(B-AID-02)を ヘッドレス
(`claude --print --plugin-dir`)で実施し、DoD のチェックリスト 5 項目
(コマンド 16 / Subagent 7 / Skill 9 / Hook 3+1 / 不具合なし)を全て確認。
結果を `delivery/startup-test-log.md` に追記。

Refs #199

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 19:33:50 +09:00
TOYOTA, Yoichi 6f11f12766 feat(aid-skill-creator): aid-sample-case-binding を Skill 化(Issue #201 / Step 9 残作業)
PR #197 で起稿した /aid-sample-case-binding Command は手順ベース実装のままだったため、
他の /aid-* コマンドとの対称性を保つため対応 Skill を起稿し、Command を Skill 呼び出し
形式に書き換える。

- skills/implementation/aid-sample-case-binding/SKILL.md を新設(SKL-12 3 要素・SKL-20
  frontmatter 準拠)。通常モード(symlink 作成)と --legacy-only モード(FINDING-02 /
  sample_case_legacy 記録)の両方を網羅し、validate-plugin.sh カテゴリ 8(#174 / B-21)
  との対応も明記
- commands/aid-sample-case-binding.md を Skill 起動形式にリファクタ
- docs/usage-guide.md のスキル一覧表に aid-sample-case-binding を追記
- validate-plugin.sh --strict pass を確認

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 19:30:13 +09:00
TOYOTA, Yoichi eb30c215f6 fix(ai-delivery): pre-phase-transition Hook の DP パターンを template と auth-plugin にも反映
PR #197 follow-up(Issue #198)。aid-skill-creator プラグインで対応した
ADR-AID-002 の 3 形式(DP-NNN / DP-<USECASE>-NN / DP-<DOMAIN>-<TOPIC>-NNN)
検出を、上流の以下 2 ファイルにも反映する:

- ai-delivery/xtone-plugin-template/hooks/pre-phase-transition.sh
  (今後生成される全プラグインに伝搬するマスターテンプレ)
- ai-delivery/plugins/xtone-auth-plugin/hooks/pre-phase-transition.sh
  (既存 DP-INVITATION-POLICY-001 等を検出できていなかった既存プラグイン)

両ファイル L23 の正規表現を `DP-[A-Z]+(-[A-Z]+)*-[0-9]+|DP-[0-9]+` に統一し、
コメント(3 形式の意図)も同梱して aid-skill-creator (81ebab7) と完全一致させる。

検証:
- validate-plugin.sh --strict ai-delivery/plugins/xtone-auth-plugin → pass
- 3 ファイル diff 一致確認
- DP-007 / DP-PAYMENT-01 / DP-AID-01 / DP-INVITATION-POLICY-001 の 4 種を grep -Eo で検出確認

Refs: PR #197, ADR-AID-002, 元コミット 81ebab7
Closes: #198

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 19:24:26 +09:00
Yoichi Toyota ab6faa079f Merge pull request #197 from xtone/feat/aid-skill-creator-plugin
feat(aid-skill-creator): AIデリバリ用プラグインを起こすメタプラグインを新設
2026-05-28 18:55:41 +09:00
TOYOTA, Yoichi 81ebab78e5 fix(aid-skill-creator): pre-phase-transition Hook の DP パターンを ADR-AID-002 3 形式対応に拡張
PR #197 レビュー Major 対応。`DP-[0-9]+` は旧番号形式(DP-001〜DP-028)
のみにマッチし、ADR-AID-002 で定義した以下の新形式を検出できず、本プラグイン
自身の DP-AID-01〜05 が pending-decisions.md に記載されても未決 0 件と誤報告
していた:

- DP-NNN(既存番号形式・凍結)
- DP-<USECASE>-NN / DP-AID-NN(新規プラグイン固有・メタ層)
- DP-<DOMAIN>-<TOPIC>-NNN(既存プレフィックス付き・凍結)

正規表現を `DP-[A-Z]+(-[A-Z]+)*-[0-9]+|DP-[0-9]+` に拡張し、4 種類の
代表パターン(DP-007 / DP-28 / DP-AID-01 / DP-PAYMENT-01 / DP-AUDIT-VIEW-001 /
DP-INVITATION-POLICY-001)すべての検出を確認。

> 補足: 同等の正規表現は `xtone-plugin-template/hooks/pre-phase-transition.sh`
> と `xtone-auth-plugin/hooks/pre-phase-transition.sh` にも存在するが、これは
> ADR-AID-002 以前の状態(プレフィックス付き DP の検出漏れは黙過)。本 PR の
> スコープは aid-skill-creator-plugin のみとし、template / auth プラグインの
> 同種修正は後続 PR で対応する想定。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 18:48:45 +09:00
TOYOTA, Yoichi 5b846c80b7 feat(aid-skill-creator): AIデリバリ用プラグインを起こすメタプラグインを新設
23 本の Rollout プラグイン(T-023〜T-045)を「中身ごと」起こすための
Claude Code メタプラグイン `xtone-aid-skill-creator-plugin` を追加。
既存 `generate-plugin.sh` が作る容器に、Notion 16 DB と xtone-auth-plugin
を学習リファレンスにしながら中身を入れていくスキル群を集約。

主な内容:
- Skill 9 本(plugin-guide / scope-extraction / architecture-design /
  domain-architect-design / plugin-scaffold / skill-authoring /
  references-authoring / decision-point-registration / validation-runner)
- Subagent 7(基盤6 + aid-skill-creator-architect = メタ層 architect)
- Slash Command 16(基盤8 + aid-* 8: design / scaffold / architect-author /
  skill-new / references-new / dp-register / sample-case-binding /
  validation-runner)
- 判断ポイント DP-AID-01〜05 を docs/decision-points.md に文書化
- ADR-AID-001(メタプラグイン修正時のドッグフード必須化)
- ADR-AID-002(DP 命名規約の拡張・CONV-19 拡張・Rollout 開始前合意)
- ドッグフード成果物(delivery/dogfood/auth/)で auth プラグインへの
  フォーマット妥当性を実証(FINDING-01〜03 はすべて解消済み)

設計方針:
- warn_and_document(T-002)/ SSoT(CONV-14)/ 言語非依存契約 + references 分離
  / 「人間判断をスルーさせない」を全 Skill に強制
- Notion MCP 必須(書き込みは aid-decision-point-registration のみに限定)
- メタゆえの循環参照リスクは ADR-AID-001 の運用ルールで緩和

validate-plugin.sh --strict pass。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 18:40:07 +09:00
Yoichi Toyota 6431aa1c89 Merge pull request #196 from xtone/feat/B-21-sample-cases-catalog
feat(B-21): 業種別 架空案件カタログを xtone-shared-plugin/sample-cases/ に整備
2026-05-27 19:09:13 +09:00
Yoichi Toyota e7b381e8ca Merge pull request #195 from xtone/feat/B-23-implementer-seeds-variant
feat(B-23): implementer の seeds.rb を確定済み DP に応じて可変生成 (#182)
2026-05-27 19:07:36 +09:00
toyota ce4aade185 Merge remote-tracking branch 'origin/main' into feat/B-23-implementer-seeds-variant
# Conflicts:
#	ai-delivery/plugins/xtone-auth-plugin/skills/implementation/firebase-auth-setup/templates/rails/README.md
2026-05-27 18:44:27 +09:00
Yoichi Toyota fb6f54bd44 Merge pull request #194 from xtone/feat/B-20-hotwire-bare-specifier-templates
feat(B-20): firebase-auth-frontend に templates/hotwire/ 同梱 + bare specifier 必須を明文化 (#179)
2026-05-27 18:43:07 +09:00
toyota d58e7c1ad1 fix(B-21): マトリクスの「管理画面」列の抜け漏れを修正
レビュー指摘(PR #196)対応。以下の 3 案件は requirements.json の
scope.must に管理画面要件を含むのに、マトリクスの「管理画面」列に
✔ が抜けていた:

- ec-d2c-app SCP-008: 運営スタッフの管理画面(商品・在庫・受注・モデレーション)
- maas-carshare SCP-006: オペレーター向け管理画面(車両 / 会員 / 利用履歴)
- event-campaign-lp SCP-008: 事務局・協賛企業向け管理画面とリアルタイムダッシュボード

マトリクスはプラグインが Verification 入力を選定する唯一の参照点なので
ここの不整合は管理画面プラグインの検証漏れに直結する。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:34:24 +09:00
toyota 7348b914f4 Merge remote-tracking branch 'origin/main' into feat/B-20-hotwire-bare-specifier-templates 2026-05-27 18:33:32 +09:00
Yoichi Toyota 38e161df06 Merge pull request #193 from xtone/feat/B-19-rails-zeitwerk-fix
fix(B-19): Rails テンプレ adapter.rb の Zeitwerk 規約違反を解消 (Issue #178)
2026-05-27 18:29:56 +09:00
Yoichi Toyota 105d546768 Merge pull request #192 from xtone/feat/B-22-auth-requirements-checklist
feat(B-22): auth-requirements-extraction に招待/監査ログ/通知の3区分を追加
2026-05-27 18:28:34 +09:00
toyota 87cda9b00e fix(B-23): Vertex AI 再レビュー Suggestion 3 件対応
PR #195 2 回目のレビュー(スコア 8/10・全 Suggestion)を解消:

- `demo-key` を定数 `DEFAULT_EMULATOR_API_KEY` に切り出し
- レスポンスボディログを `RESPONSE_BODY_LOG_LIMIT`(200 文字)の
  `truncate_body` ラムダで一律に切り詰め、raise / warn の両方に適用
- implementer.md の pending-decisions.md 追記フォーマットに
  対象ファイルへの相対リンク・列見出しの参照と、複数 DP 未確定時の
  記載例(1 DP 1 行)を追加

Refs: #195 second review

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:25:01 +09:00
Yoichi Toyota 99b16ccf36 Merge pull request #191 from xtone/feat/B-21-firebase-emulator-bind-host
docs(B-21): firebase.json テンプレで ui/hub/logging も 0.0.0.0 バインドを明示
2026-05-27 18:23:09 +09:00
toyota 05b56e6808 feat(B-21): 業種別 架空案件カタログを xtone-shared-plugin/sample-cases/ に整備
23 個の Rollout プラグイン(T-023〜T-045)の Verification を整合的に通せるよう、
7 業種分の架空案件(EC/D2C・MaaS・メディア・教育バウチャー・コーポレートサイト・
業務 SaaS・イベント LP)を Single Source of Truth として集約する。

- xtone-shared-plugin/sample-cases/ を新設し、各案件に requirements-input.md(自然言語)と
  requirements.json(requirements.schema.json 準拠)の 2 ファイルを配置
- 案件 × ユースケース マトリクスを README に置き、プラグイン側は sample-inputs/ から
  symlink で取り込む運用に揃える(CONV-14 と同じ SSoT 発想)
- plugin-developer-guide.md Step 5 から sample-cases の使い方が辿れるよう追記
- validate-plugin.sh に sample-inputs/ → sample-cases/ の参照整合性チェックを追加
  (壊れた symlink / カタログ外参照を warn_and_document で警告、ブロックなし)
- 認証プラグインの bookclub-app.requirements-input.md は経緯保存のため並存(移行しない)

Closes #174

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:19:44 +09:00
toyota 286203ec12 fix(B-20): Vertex AI レビュー指摘対応(Major + Suggestion 3件)
PR #194 の自動レビュー指摘に対応:

**Major**: withdraw の CSRF + レスポンスチェック欠落
- client.js / hotwire.md Section 2 の withdraw に X-CSRF-Token を追加
  (Rails の protect_from_forgery で 422 拒否される問題)
- res.ok チェックを追加し、サーバ失敗時は signOut せず throw
  (クライアントだけ抜けてアカウントが残る不整合を防ぐ)
- 共通 csrfToken() ヘルパを client.js に追加

**Suggestion 1**: auth_controller.js の入力バリデーション
- signIn 先頭で email/password の空文字ガードを追加
- HTML の required と二重ガード(プログラム呼び出し経由のケース対策)

**Suggestion 2**: ActionCodeSettings URL のコメント強化
- 「/auth/email-link は必ず案件要件に合わせて差し替え」「Firebase コンソールの
  承認済みドメインに当該ドメインを登録」を明示

**Suggestion 3**: importmap.rb の <latest> プレースホルダ
- pin 行頭に「TODO: <latest> を実バージョンに置換」コメントを追加
- 上部に「未置換のまま起動すると 404 で SDK が読まれない」警告を追加

Refs: #179, PR #194 review

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:18:07 +09:00
toyota e1ff4f90e1 fix(B-23): Vertex AI レビュー指摘対応(Major 1件 / Minor 1件 / Suggestion 2件)
PR #195 の Conditional Approve 指摘を解消:

- Major: seeds.rb.template の冪等経路で `accounts:lookup` を使っていたが、
  email での lookup はサービスアカウント認証必須のため Emulator の API key
  経路では動かない。`accounts:signInWithPassword` に変更し、既存ユーザの
  localId を確実に取得できるようにした。
- Minor: `JSON.parse(... ) rescue {}` が握りつぶしていたパースエラーを
  `parse_body` lambda にまとめ、status code と body 断片を warn ログに出す
  ようにした。
- Suggestion: `demo-key` を ENV `FIREBASE_API_KEY` で上書き可能にした
  (Emulator 既定は `demo-key` のまま)。
- Suggestion: implementer.md に DP-AUTHFLOW-001 が undecided のときの
  pending-decisions.md 行フォーマット例を追加。

Refs: #195 review

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:18:00 +09:00
toyota 1b5c48d8b7 feat(B-23): implementer の seeds.rb を確定済み DP に応じて可変生成
DP-AUTHFLOW-001(運用ユーザー作成ポリシー)を decision_record から
読み取り、招待制 / 自己サインアップに応じて db/seeds.rb を分岐生成
できるようにした。固定 UID operator による chicken-and-egg と
Firebase Auth Emulator との UID 不整合(422 Email has already been
taken)を防ぐための型化。

- templates/rails/db/seeds.rb.template 新設(<% if invitation_based? %>
  …)
- implementer.md(xtone-plugin-template / xtone-auth-plugin)に
  「DP 読み取り → 生成物分岐 → delivery/seeds-strategy.md 出力」を追加
- firebase-auth-setup/SKILL.md と templates/rails/README.md に
  新テンプレへの導線を追記

Refs: #182, #183 (B-24), #185 (B-26), DP-AUTHFLOW-001

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:11:00 +09:00
toyota 902a0bcbd5 feat(B-20): firebase-auth-frontend に templates/hotwire/ 同梱 + bare specifier 必須を明文化
Propshaft + importmap-rails 構成での相対パス import が 503 を返して Stimulus が起動しない致命バグ(Issue #179 / B-20)への対応:

- references/hotwire.md に「Propshaft + importmap では bare specifier 必須」の節と NG/OK 対照表、application.js / controllers/index.js / config/importmap.rb の例を追加
- 新規 templates/hotwire/ に動く構成のスナップショットを同梱(application.js / controllers/{application,index,auth_controller}.js / auth/{client,firebase_init}.js / config/importmap.rb / README.md)。pin と物理パスが 1:1 で対応した状態を保証
- templates/hotwire/README.md に bare specifier 必須の理由、pin/物理パス対応表、新規 Rails アプリへの導入手順、受け入れ確認手順を明記
- SKILL.md にテンプレ参照を追記(コピー導入推奨)
- 実機検証は B-20-E2E として pending-decisions.md に未決登録(次パイロット着手前に必須)

Refs: #179

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:10:30 +09:00
toyota d23cbe6021 fix(B-19): Rails テンプレを Zeitwerk 規約準拠に整理(Issue #178)
`firebase-auth-setup/templates/rails/app/adapters/auth/adapter.rb` 内で
`Auth::AuthUser` / `Auth::Error` / `Auth::InvalidToken` / `Auth::NotFoundError`
を同時定義していたため、Zeitwerk autoload テーブルに乗らず、
eager_load なしの開発環境で初回参照時に `NameError` が発生していた
(T-022 パイロットでは `rails new` の eager_load の偶然で動いていた)。

- `app/adapters/auth.rb` を新設し、共通定数を集約
- `app/adapters/auth/adapter.rb` は `Auth::Adapter` のみに整理
- `FirebaseAdapter` 内の `NotFoundError` を共通定義 `Auth::NotFoundError` に統合
- README にファイル一覧・配置後構造・Zeitwerk 規約に関する注意書きを追記
- references/rails.md のコードサンプルも同期

検証: zeitwerk gem 2.8.2 で eager_load / lazy 参照とも全件 PASS。
受け入れ基準(`rails runner 'puts Auth::AuthUser'` / `bin/rails zeitwerk:check`)
の同等条件を満たすことを確認。

Refs: #178, B-09 (#134) 事後補正, DP-007

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:10:22 +09:00