注 : 本トラッカは GitHub Sub-issues 機能で関連 Issue を hierarchy 管理しています。下記のリストは構造的参照(Sprint / Stage / Week 別の整理)、実際の進捗は GitHub UI 上部の Sub-issues セクションで確認してください(2026-05-23 Sub-issues 移行)。
概要
詳細設計書 v1.4.x(基本設計書 v1.4.5 / OpenAPI v1.4.5 / Mermaid 図 / ADR-0001〜0005)と、既存 Spring Boot scaffold(webapi/src/main/java/xyz/dgz48/tasks/webapi/ 配下、33 ファイル)の差分を解消する Phase 1 Sprint 0 アプリ整合実装フェーズ 。
期間: 2026-06-14 開始 〜 2026-06-27 終了 (2 週間、開発計画書 v1.3 §4.3.1 に整合)。
基盤整備は Phase 1 Setup 0-2 + Phase 1 Sprint 0-5 Infra ストリーム が並行で進める(本 Issue は Phase 1 Sprint 0 App ストリーム本体 )。
詳細スケジュールは docs/specs/開発計画書.md v1.3 §4.3.1 + docs/architecture/infrastructure-plan.md v5 を参照。
Sprint 0 着手の前提
完了基準(Sprint 0 終了時)
クリーンアーキ雛形 が動作: Domain / UseCase / Adapter / Infrastructure の 4 層が骨組として存在し、ApplicationModules.verify() が CI で実行されている(ArchUnit 導入は ADR-0002 で保留中、ApplicationModules.verify() に集約)
マルチテナント分離が動作 : X-Tenant-Id ヘッダ経由で tenant_id フィルタが全 SQL に自動付与され、クロステナント漏洩テスト(Testcontainers MySQL 8.4 上)がグリーン
Keycloak Realm がローカル稼働 : Docker Compose(Phase 1 Setup 1 で構築)で OIDC 認証(JWT.sub → users.oidc_sub 突合)が通る。dev 環境(Phase 1 Sprint 1 Infra で構築)での E2E は Phase 1 Sprint 3 Infra S3Infra-1 で検証
DB スキーマが設計書 v1.4.x と一致 : 既存 tasks 拡張 + マルチテナント補助 6 テーブルの Flyway migration が ./gradlew :webapi:flywayMigrate 成功
CI/CD パイプライン : PR で ./gradlew :webapi:check + クロステナントテスト + Trivy スキャン がグリーン
P0(マージブロッカー / 完了基準必達)— 5 件
1 週目前半(6/14-6/16): DB スキーマ確定
1 週目後半(6/17-6/18): 基盤整備
2 週目前半(6/21-6/23): マルチテナント実装
P1(完了基準必達)— 2 件
1 週目並行(6/14-6/18): アーキ規約整備
2 週目後半(6/24-6/25): 認可拡張
P2(優先度低、Sprint 0 中に余裕があれば)— 1 件
Phase 1 並行ストリーム(全担当: win2cot、2026-05-23 構造再編で「別チーム前提」を撤回)
v1.2 で「別チーム前提」だった並行作業は、実体制 win2cot 単独運用のため、以下の構造で順序付けて消化する。詳細は docs/architecture/infrastructure-plan.md v5 + 横断 tracker #206 。
基盤整備フェーズ(Phase 1 Setup 0-2、2026-05-23 〜 2026-06-13、3 週間、Sprint 0 着手のクリティカルパス)
Phase 1 Sprint 0-5 Infra ストリーム(2026-06-14 〜 2026-08-22、本 #121 App ストリームと並行)
Phase 1 Sprint 0 Infra (W3-W4、本 Sprint と並行): Terraform 基盤(state backend / OIDC IAM Role / VPC / SG / ALB 雛形 / Parameter Store + 横断 doc / Route53 Private Hosted Zone)
Phase 1 Sprint 1 Infra (W5-W6): AWS dev リソース(RDS MySQL 8.4 IAM 認証 + PHZ CNAME / ECS Cluster / Keycloak Custom Image + ECS Service / Route53 + ACM / ECR / Realm initial import)
Phase 1 Sprint 2 Infra (W7-W8): deploy CI/CD(各コンポーネント tag 駆動)
Phase 1 Sprint 3 Infra (W9-W10): dev E2E / クロステナント先行テスト / ログ基盤実装 / dev ECS 稼働時間切替(平日 19-02 + 土日 10-02)
Phase 1 Sprint 4 Infra (W11): 運用 runbook 初版 / NIST MVP control(旧「セキュリティ NIST SP 800-53 チェックリスト」を本ストリームに統合 )
Phase 1 Sprint 5 Infra (W12): 最終調整 / リリース前チェックリスト
並行 ADR ストリーム
ログ基盤選定 ADR (infra/docs/adr/ 配下、Phase 1 Sprint 1 Infra 着手までに方針確定が望ましい)
ブランチ・PR 戦略
claude-automation v1.1.0 経由で実装する場合、各 Issue から自動的に claude/impl/issue-XX-* ブランチが作成される。
ブランチ(claude-automation 自動)
対応 Issue
依存
claude/impl/issue-83-flyway-tasks-extend
#83
なし
claude/impl/issue-84-flyway-multitenancy
#84
なし
claude/impl/issue-85-task-entity-extend
#85
#83 と同時 PR (Flyway とエンティティの不整合防止)
claude/impl/issue-86-clean-arch-skeleton
#86
なし(他と並行可)
claude/impl/issue-87-tenant-context
#87
#84 (user_tenants テーブル)が main 反映後
claude/impl/issue-88-jwt-role-extraction
#88
#87 完了後
claude/impl/issue-89-application-yml
#89
なし(他と並行可)
claude/impl/issue-90-docs-correction
#90
なし、Phase 1 Setup 2 ADR 結果を踏まえる
受け入れ条件
P0 全 5 件・P1 全 2 件が main にマージ済
CI(GitHub Actions)グリーン: ./gradlew :webapi:check + ApplicationModules.verify() + クロステナントテスト + Trivy
クロステナント漏洩テストが具体的に下記をパス:
- Tenant A のユーザー JWT で GET /api/tasks/{Tenant B のタスクID} → 404
- Tenant A のユーザー JWT で PATCH /api/tasks/{Tenant B のタスクID}/status → 404
- X-Tenant-Id ヘッダ詐称(自分が所属しないテナント ID 指定)→ 403
./gradlew :webapi:bootRun で local 環境起動成功(Phase 1 Setup 1 の Docker Compose と連携、env vars 注入)
OpenAPI Lint(spectral lint api/openapi.yaml)無警告 — CI 統合は ci(openapi): CI に OpenAPI lint(Spectral)を組み込む #204 で別途対応
関連
注: 本トラッカは GitHub Sub-issues 機能で関連 Issue を hierarchy 管理しています。下記のリストは構造的参照(Sprint / Stage / Week 別の整理)、実際の進捗は GitHub UI 上部の Sub-issues セクションで確認してください(2026-05-23 Sub-issues 移行)。
概要
詳細設計書 v1.4.x(基本設計書 v1.4.5 / OpenAPI v1.4.5 / Mermaid 図 / ADR-0001〜0005)と、既存 Spring Boot scaffold(
webapi/src/main/java/xyz/dgz48/tasks/webapi/配下、33 ファイル)の差分を解消する Phase 1 Sprint 0 アプリ整合実装フェーズ。期間: 2026-06-14 開始 〜 2026-06-27 終了(2 週間、開発計画書 v1.3 §4.3.1 に整合)。
基盤整備は Phase 1 Setup 0-2 + Phase 1 Sprint 0-5 Infra ストリーム が並行で進める(本 Issue は Phase 1 Sprint 0 App ストリーム本体)。
詳細スケジュールは
docs/specs/開発計画書.mdv1.3 §4.3.1 +docs/architecture/infrastructure-plan.mdv5 を参照。Sprint 0 着手の前提
#206で進捗管理)完了 — monorepo 構造整理 + ローカル開発環境 + Keycloak SPI 設計 ADR 等完了基準(Sprint 0 終了時)
ApplicationModules.verify()が CI で実行されている(ArchUnit 導入は ADR-0002 で保留中、ApplicationModules.verify()に集約)X-Tenant-Idヘッダ経由でtenant_idフィルタが全 SQL に自動付与され、クロステナント漏洩テスト(Testcontainers MySQL 8.4 上)がグリーン./gradlew :webapi:flywayMigrate成功./gradlew :webapi:check+ クロステナントテスト + Trivy スキャン がグリーンP0(マージブロッカー / 完了基準必達)— 5 件
1 週目前半(6/14-6/16): DB スキーマ確定
1 週目後半(6/17-6/18): 基盤整備
webapi/src/main/resources/application.ymlに DataSource / Flyway / OAuth2 issuer-uri 設定追加(Spring プロファイル不使用、env vars 注入で環境差を吸収、infrastructure-plan v5 §3.4)2 週目前半(6/21-6/23): マルチテナント実装
P1(完了基準必達)— 2 件
1 週目並行(6/14-6/18): アーキ規約整備
ApplicationModules.verify()(domain / usecase / adapter / infra)。ArchUnit 導入は ADR-0002 で保留中2 週目後半(6/24-6/25): 認可拡張
└ backend: TenantContext + TenantContextFilter + Hibernate Filter 実装 (N5) #87 (TenantContext) 完了後
P2(優先度低、Sprint 0 中に余裕があれば)— 1 件
Phase 1 並行ストリーム(全担当: win2cot、2026-05-23 構造再編で「別チーム前提」を撤回)
v1.2 で「別チーム前提」だった並行作業は、実体制 win2cot 単独運用のため、以下の構造で順序付けて消化する。詳細は
docs/architecture/infrastructure-plan.mdv5 + 横断 tracker #206。基盤整備フェーズ(Phase 1 Setup 0-2、2026-05-23 〜 2026-06-13、3 週間、Sprint 0 着手のクリティカルパス)
Phase 1 Sprint 0-5 Infra ストリーム(2026-06-14 〜 2026-08-22、本 #121 App ストリームと並行)
並行 ADR ストリーム
infra/docs/adr/配下、Phase 1 Sprint 1 Infra 着手までに方針確定が望ましい)ブランチ・PR 戦略
claude-automation v1.1.0 経由で実装する場合、各 Issue から自動的に
claude/impl/issue-XX-*ブランチが作成される。claude/impl/issue-83-flyway-tasks-extendclaude/impl/issue-84-flyway-multitenancyclaude/impl/issue-85-task-entity-extendclaude/impl/issue-86-clean-arch-skeletonclaude/impl/issue-87-tenant-contextclaude/impl/issue-88-jwt-role-extractionclaude/impl/issue-89-application-ymlclaude/impl/issue-90-docs-correction受け入れ条件
./gradlew :webapi:check+ApplicationModules.verify()+ クロステナントテスト + Trivy- Tenant A のユーザー JWT で
GET /api/tasks/{Tenant B のタスクID}→ 404- Tenant A のユーザー JWT で
PATCH /api/tasks/{Tenant B のタスクID}/status→ 404- X-Tenant-Id ヘッダ詐称(自分が所属しないテナント ID 指定)→ 403
./gradlew :webapi:bootRunで local 環境起動成功(Phase 1 Setup 1 の Docker Compose と連携、env vars 注入)spectral lint api/openapi.yaml)無警告 — CI 統合は ci(openapi): CI に OpenAPI lint(Spectral)を組み込む #204 で別途対応関連
docs/specs/基本設計書.mdv1.4.5(最新)api/openapi.yamlv1.4.5docs/reviews/2026-05-10-scaffold-vs-design-gap-analysis.mddocs/specs/開発計画書.mdv1.3 §4.3.1docs/architecture/infrastructure-plan.mdv5