Block 1
⏱ 5時間(0h〜5h)
▼
Android開発
Turn 1/18
M4
Androidプロジェクト初期セットアップ
android/ディレクトリにKotlin/Jetpack Composeプロジェクトを作成する。Android Studio Hedgehogテンプレートをベースに、パッケージ名com.toki.kakeruで初期化する。build.gradle.ktsに以下のDependencyを定義: Hilt(dagger-hilt 2.50+)、Room(2.6+)、Retrofit(2.9+)、Goo
テックリード
Turn 1/14
M1
AIルートエンジンV1 アーキテクチャ設計
Claude APIを使用したルート生成の全体アーキテクチャを設計する。Service層(RouteGenerationService)、Prompt管理(PromptTemplateManager)、エラーハンドリング戦略を定義し、functions/ディレクトリにgenerate_routeの入出力JSONスキーマ(functions/schemas/generate_route_reques
T1-1.1
p1-1
バックエンド開発
Turn 1/22
M1
AIルートエンジンV1 Cloud Functions実装
functions/main.pyにgenerate_route Cloud Functionを作成する。入力: 出発地(lat, lng)、走行時間(hours)、バイク種別(sport/adventure/cruiser/scooter)、ユーザー嗜好(categoryAffinities dict)。Claude APIを使用し、3つのルート案(安定/最適化/冒険)を生成する。レスポンスはJ
T1-1.1
p1-1
データエンジニア
Turn 1/22
M1
YouTube MotoVlog 50chリスト選定
日本のMotoVlog YouTubeチャンネルを50個選定し、Firestoreに登録する。YouTube Data API v3のsearch.list(type=channel, q='MotoVlog 日本 ツーリング')で候補を検索し、登録者数1万以上・月1回以上投稿・ツーリングスポット紹介が中心のチャンネルをフィルタリングする。channels.list(part=statistics
T2-2.1
p4-1
インフラ/DevOps
Turn 1/15
M1-M2
Cloud Scheduler設定
firebase.jsonにCloud Schedulerジョブを定義し、データパイプラインの自動実行を設定する。functions/main.pyの各パイプライン関数にfirebase_functions.scheduler_fn.on_scheduleデコレータを追加する。設定するジョブ: (1) ingest_youtube_spots: schedule='every monday 05:
T2-2.3
iOS開発
Turn 1/31
M1
出発地・走行時間・バイク種別の入力UI
SwiftUIでルート生成に必要な入力フォームを実装する。出発地はMapKitのMKLocalSearchCompleterを使った地点検索、走行時間はSlider(1-8時間、0.5刻み)、バイク種別はPicker(ネイキッド/スポーツ/アドベンチャー/クルーザー/スクーター)で構成する。入力値はRouteGenerationViewModelにバインドし、全項目入力完了でルート生成ボタンを活性
T1-1.4
QA/テスト
Turn 1/14
M1
スナップショットテスト基盤構築
swift-snapshot-testingをSPMで導入し、ios/TouringAppTests/SnapshotTests/にテストファイルを作成する。assertSnapshot(of:as:.image(on:))で全主要画面のスナップショットを記録する。iPhone 15 Pro(.iPhone15Pro)、iPhone SE(.iPhoneSe)、iPad mini(.iPadMin
T4-4.9
UI/UXデザイン
Turn 1/16
M1
UI全面リデザイン デザインカンプ作成
v0.devを使用してKAKERU全画面のデザインカンプを作成する。プロンプト条件: テーマカラー(Cyan #0DCCF2, Cool white #F5F8F8)、モバイル前提、日本語UI、バイクツーリングアプリ。ExploreView、RouteGenerationView、RidingView、RideSummaryView、ProfileView、SettingsViewの6画面をデザイ
T4-4.1
p2-3
コンテンツ
Turn 1/14
M2
カルチャーメディア戦略策定
アプリ宣伝ではなく「ツーリング文化のメディア」としてのコンテンツ戦略をdocs/content/media-strategy.mdに策定する。コンテンツハブ構成(docs-portal/kakeru/magazine/): (1) ルートガイド(地域別おすすめルート、季節ルート)、(2) ライダーインタビュー(MotoVloggerインタビュー、ベテランライダーの思い出ルート)、(3) バイクカル
p7-1
グロース/分析
Turn 1/11
M2
KPI設計: AARRR×ツーリングKPI定義
AARRRフレームワークとツーリング固有KPIを統合した指標体系をdocs/growth/kpi-definitions.mdに定義する。Acquisition: DL数(日/週/月)、流入経路別DL数(オーガニック/ASO/リファラル/SNS/MotoVlogger)、CPI(Cost Per Install)。Activation: 初回ルート生成率(DL後24時間以内にルート生成した率)、1
p6-5
マーケティング
Turn 1/13
M2
KAKERU公式SNSアカウント開設
X(Twitter)、Instagram、YouTubeのKAKERU公式アカウントを開設し統一ブランドで設定する。X: @kakeru_touring、プロフィール画像(KAKERUロゴ Cyan背景)、ヘッダー画像(ツーリング風景+ロゴ)、バイオ「AIがあなただけの最高のツーリングルートを見つける | 開発中 | #KAKERU #ツーリング」、リンク=LPのURL。Instagram: @k
T8-8.2
プロダクトマネージャー
Turn 1/15
M1
Apple Developer Program登録・設定
Apple Developer Programのアカウント設定を確認し、全手順を文書化する。確認項目: (1) iOS Distribution証明書(.p12)の有効期限と更新手順、(2) Provisioning Profile(com.toki.TouringApp)のデバイス登録とProfile再生成手順、(3) App ID設定(Push Notifications, Sign in w
T12-12.1
カスタマーサポート
Turn 1/11
M2
FAQ作成(初期50問)
KAKERUに関するFAQ50問をdocs-portal/kakeru/faq.htmlにHTML形式で作成する。カテゴリ別問答: [アカウント 10問] ログイン方法、パスワードリセット、退会方法、データ引継ぎ、プロフィール変更、メール変更、通知設定、Apple/Google連携、複数デバイス利用、アカウント復旧。[ルート生成 10問] ルート生成方法、3モードの違い、カテゴリの意味、所要時間の
Block 2
⏱ 5時間(5h〜10h)
▼
Android開発
Turn 2/18
M4
Firebase SDK統合・認証実装
Firebase Auth(Google Sign-In + Apple Sign-In)をAndroid版に実装する。android/app/google-services.jsonをFirebaseコンソールから取得して配置する。di/FirebaseModule.ktにHilt @Moduleで FirebaseAuth, FirebaseFirestore, FirebaseCrashly
テックリード
Turn 2/14
M1
プロンプトテンプレート管理システム設計
ルート生成用プロンプトをテンプレート化し、バージョン管理・A/Bテスト切り替えが可能な管理システムを設計する。functions/prompts/ディレクトリにJinja2テンプレートファイル(route_generation_v1.j2, route_adjustment_v1.j2)を配置する構造を策定する。Firestoreのprompt_versionsコレクション(フィールド: temp
T1-1.2
p1-1
バックエンド開発
Turn 2/22
M1
プロンプト最適化・テンプレート管理の実装
functions/prompts/ディレクトリにルート生成用プロンプトテンプレートを配置する。Jinja2テンプレートエンジンで変数(出発地名、距離km、カテゴリ嗜好、天候情報、季節、時間帯)を埋め込み可能にする。functions/prompts/route_generation_v1.j2をメインテンプレートとして作成し、functions/services/prompt_manager.p
T1-1.2
データエンジニア
Turn 2/22
M1
ingest_youtube_spots拡張(バッチ最適化)
既存のfunctions/ingest_youtube_spots.pyを50チャンネル対応に拡張する。YouTube Data API v3のquota効率化のため、channels.list(part=contentDetails)でuploadsPlaylistIdを取得し、playlistItems.list(playlistId=uploadsId, maxResults=50)で1回の
T2-2.2
p9-3
インフラ/DevOps
Turn 2/15
M1-M2
GitHub Actions CI/CD構築
.github/workflows/にiOS用とFunctions用のワークフローYAMLを作成する。build-ios.yml: trigger=pull_request(branches:main), jobs: (1) checkout, (2) Select Xcode(sudo xcode-select -s /Applications/Xcode_15.4.app), (3) xcod
iOS開発
Turn 2/31
M1
UI全面リデザイン・1画面ルート生成
v0.devのデザインカンプを元にSwiftUIで全画面をリデザインする。テキスト入力+距離スライダー+カテゴリチップを1画面に統合したルート生成UIを構築する。AppColors(Cyan #0DCCF2, Cool white #F5F8F8)を全画面に一貫適用し、ios/TouringApp/Views/以下の各Viewファイルを更新する。NavigationStackベースの画面遷移に統一
T4-4.1T4-4.3
p2-3
QA/テスト
Turn 2/14
M1
XCTest UIテスト自動化フレームワーク
ios/TouringAppUITests/に主要ユーザーフローのUIテストを構築する。(1) ルート生成フロー: 入力画面でテキスト入力→距離スライダー操作→生成ボタンタップ→候補表示確認、(2) スポット探索フロー: ExploreView表示→カテゴリフィルタータップ→スポットカードタップ→詳細画面表示確認、(3) 設定変更フロー: 設定画面→各設定項目のisHittable確認→値変更→保
T4-4.9
UI/UXデザイン
Turn 2/16
M1
3フェーズUI切り替えデザインシステム設計
計画モード(情報リッチ: 複数カード、スポット詳細、地図オーバーレイ)、走行モード(極限シンプル: 地図+次の曲がり角+残距離のみ)、振り返りモード(エモーショナル: グラフ、写真ギャラリー、統計カード)の3フェーズそれぞれのデザインガイドラインを策定する。各フェーズの色使い、タイポグラフィ(計画=14pt, 走行=24pt+, 振り返り=16pt)、コンポーネントの切り替えルールをdocs/de
p2-1
コンテンツ
Turn 2/14
M2
KAKERU Awards表彰制度設計
月次ベストルート表彰の仕組みをdocs/content/kakeru-awards.mdに設計する。表彰カテゴリ: (1) 絶景ルート賞(景色スポット充実度)、(2) グルメルート賞(グルメスポット充実度)、(3) 冒険ルート賞(距離+カーブ密度+標高差)、(4) コミュニティ賞(最も多くシェアされたルート)、(5) ルーキー賞(初月のユーザーのベストルート)。選考基準: 走行距離、経由スポット充
p7-4
グロース/分析
Turn 2/11
M2
Firebase Analytics設計・実装
Firebase Analyticsのカスタムイベント設計をdocs/growth/analytics-events.mdに定義し、iOS/Androidの実装ガイドを作成する。カスタムイベント一覧: route_generated(params: mode[omakase/customize/regenerate], duration_hours, categories[], bike_type
マーケティング
Turn 2/13
M2
パーパス定義・ブランドメッセージ策定
KAKERUのブランドアイデンティティとメッセージングをdocs/marketing/brand-guide.mdに文書化する。パーパス: 「ライダーの安全を守り、地方経済に貢献する。テクノロジーで日本のツーリング文化を次の時代へ」。タグライン候補3案: (1)「AIがあなただけの最高の道を見つける」(機能訴求)、(2)「知らない道の先に、最高の景色がある」(エモーショナル)、(3)「走る。見つけ
p7-3
プロダクトマネージャー
Turn 2/15
M1
プライバシーポリシー策定
KAKERU用のプライバシーポリシーを日本語で策定し、HTMLファイルとして公開する。記載事項: (1) 収集データ: 位置情報(GPS走行ログ、リアルタイム位置)、アカウント情報(メール、表示名)、バイク情報(種別、排気量)、利用ログ(ルート生成履歴、スポット閲覧履歴)、(2) 利用目的: AIルート生成の品質向上、スポットDB改善、パーソナライゼーション、安全機能、(3) 第三者提供: Fir
T12-12.2
カスタマーサポート
Turn 2/11
M2
ヘルプセンター構築
docs-portal/kakeru/help/にヘルプセンターを構築する。構成: (1) index.html(トップページ: カテゴリ一覧+検索窓)、(2) カテゴリ別ページ(getting-started.html, route-generation.html, riding.html, subscription.html, safety.html, troubleshooting.html
Block 3
⏱ 5時間(10h〜15h)
▼
Android開発
Turn 3/18
M4
ルート生成画面のCompose実装
iOS版のRouteGenerationView相当をJetpack Composeで実装する。ui/route/RouteGenerationScreen.ktに1画面UIを構築: (1) テキスト入力フィールド(OutlinedTextField、「どんなツーリングがしたい?」プレースホルダー)、(2) 距離スライダー(Slider、50-500km範囲、50km刻み)、(3) カテゴリチップ
テックリード
Turn 3/14
M1
マルチLLM対応設計
Claude API障害時のGemini Fallback戦略を設計する。functions/services/llm_provider.pyにLLMProviderプロトコル(抽象基底クラス)を定義し、generate(prompt, temperature, max_tokens) -> LLMResponseの共通インターフェースを策定する。ClaudeProvider/GeminiP
T1-1.3
バックエンド開発
Turn 3/22
M1
マルチLLM Fallback実装
Claude API障害時にGemini APIにフォールバックする機構をCloud Functionsに実装する。functions/services/llm_provider.pyに共通のLLMProvider抽象クラス(generate, parse_response メソッド)を作成し、ClaudeProvider(anthropic SDK使用)とGeminiProvider(googl
T1-1.3
データエンジニア
Turn 3/22
M1
道の駅データ一括インポート
michinoeki_data/P35-18_GML/のGMLファイルから1,200+の道の駅データをパースし、Firestoreに一括インポートする。scripts/import_michinoeki.pyを作成し、xml.etree.ElementTreeでGMLファイル(P35-18.xml)をパースする。GML名前空間: {http://www.opengis.net/gml}Point,
T3-3.1
p3-6
インフラ/DevOps
Turn 3/15
M1-M2
Fastlane設定
ios/fastlane/Fastfileにlane定義を作成し、ビルド・テスト・リリースを自動化する。Fastfileの各lane: (1) test lane: scan(scheme:'TouringApp', device:'iPhone 15', derived_data_path:'build')でユニットテスト+スナップショットテスト実行。(2) beta lane: match(t
iOS開発
Turn 3/31
M1
ExploreView実データ接続
ios/TouringApp/Views/ExploreView.swiftのモックデータを削除し、FirestoreのExploreService経由でtouring_spotsコレクションからスポットデータをリアルタイム取得する。8リージョン(hokkaido〜kyushu)のサブコレクションに対応し、MapKit上にカテゴリ別アイコンのスポットピンを表示する。ピンタップでSpotDetail
T4-4.2
QA/テスト
Turn 3/14
M2
アクセシビリティ監査フレームワーク
performAccessibilityAudit()を全主要画面のテストに追加する。HomeView、ExploreView、RouteGenerationView、ProfileView、SettingsViewの各画面でアクセシビリティ監査を実行し、VoiceOver対応(accessibilityLabel/Value/Hint設定済み)、Dynamic Type対応(.font(.bod
T4-4.9
UI/UXデザイン
Turn 3/16
M1
1画面ルート生成UIのデザイン
テキスト入力(行きたい場所/雰囲気)+距離スライダー(50-500km)+カテゴリチップ(峠/絶景/温泉/グルメ/海沿い/山岳)を1画面に統合したルート生成UIの詳細デザインを作成する。v0.devでプロトタイプを生成し、スクリーンショットからSwiftUIコンポーネント仕様(各要素の座標、サイズ、色、フォント)を出力する。ルート生成ボタンはCyan(#0DCCF2)で画面下部に固定配置すること。
p2-3
コンテンツ
Turn 3/14
M3
地域ツーリングガイド: 関東エリア
東京発の日帰り/1泊ツーリングルート10選をdocs-portal/kakeru/magazine/guide-kanto.htmlに記事化する。ルート一覧: (1) 奥多摩周遊道路(東京→檜原村→奥多摩、80km、3時間)、(2) 箱根ターンパイク→芦ノ湖(東京→小田原→箱根、120km、5時間)、(3) 房総半島一周(千葉→館山→鴨川、200km、7時間)、(4) 秩父→長瀞(東京→秩父→長瀞
グロース/分析
Turn 3/11
M3
1サイクル完了率の計測・最適化
オンボーディング→ルート生成→実走行→振り返りの「1サイクル完了」をファネルとして計測する仕組みを構築する。Firebase Analyticsのファネル定義: Step1=app_open(初回)、Step2=onboarding_completed、Step3=route_generated(初回)、Step4=ride_started(初回)、Step5=ride_completed(初回)
p6-5
マーケティング
Turn 3/13
M2
Build in Public戦略策定
開発過程をX/Twitterで公開するBuild in Public戦略をdocs/marketing/build-in-public.mdに策定する。投稿カテゴリと頻度: (1) 週次開発進捗(毎週月曜)「今週のKAKERU: {実装した機能}を追加しました」+スクリーンショット、(2) 技術的チャレンジ(隔週水曜)「AIルート生成の裏側: {技術トピック}について」+コードスニペット画像、(3
p7-5
プロダクトマネージャー
Turn 3/15
M1
利用規約&EULA策定
KAKERU利用規約とEnd User License Agreementを日本語で策定する。利用規約の構成: (1) サービス内容の定義(AIルート生成、走行記録、スポット情報提供)、(2) アカウント登録・管理(1人1アカウント、13歳以上)、(3) 禁止事項(逆走ルートの投稿、虚偽スポット登録、他者の走行データへの不正アクセス、スクレイピング)、(4) 免責事項(走行中の事故について一切責任
T12-12.3
カスタマーサポート
Turn 3/11
M2
問い合わせ対応フロー設計
ユーザーからの問い合わせを受付→分類→対応→完了するフローをdocs/support/inquiry-flow.mdに設計する。受付チャネル: (1) アプリ内フィードバック(将来実装)、(2) ヘルプセンター問い合わせフォーム(Googleフォーム)、(3) App Storeレビュー、(4) SNS DM(X/Instagram)、(5) サポートメール(support@kakeru.app)
Block 4
⏱ 5時間(15h〜20h)
▼
Android開発
Turn 4/18
M4
ExploreView(スポット探索画面)のCompose実装
Google Maps SDKを使用してスポットマップを表示するExploreScreen.ktを実装する。com.google.maps.android:maps-compose SDKを使用し、GoogleMap composable内にマーカーを配置する。Firestoreからtouring_spotsコレクションを取得するSpotRepository.kt(GeoHashベースの近傍検索)
テックリード
Turn 4/14
M2
パーソナライゼーション・アーキテクチャ設計
categoryAffinities(景色、グルメ、温泉、ワインディング等のスコア0.0-1.0)とtagAffinities(紅葉、海沿い、高原等)をルート生成プロンプトに注入する仕組みを設計する。Firestoreのusers/{uid}/preferencesドキュメントからaffinityスコアを取得し、Jinja2テンプレートの変数として埋め込む方式を策定する。具体的には、generat
T1-1.7
p9-4
バックエンド開発
Turn 4/22
M1
提案・確認フローAPI実装
ルート提案の3モード(おまかせ/カスタマイズ/再生成)を切り替えるAPIエンドポイントを実装する。functions/main.pyに3つのCloud Functionsを追加: (1) suggest_route: ユーザー入力最小限でAIにお任せルート生成、temperatureを高め(0.7)に設定。(2) customize_route: ユーザーが経由地やカテゴリを指定してカスタマイズ、
T1-1.6
データエンジニア
Turn 4/22
M1
touring_spotsスキーマ拡張
Firestoreのtouring_spotsコレクションのスキーマを拡張するマイグレーションスクリプトを作成する。scripts/migrate_touring_spots_v2.pyで既存ドキュメントに以下の新フィールドをバッチ追加する: category(enum: 景色/グルメ/温泉/道の駅/峠/海沿い/高原)、best_season(enum配列: spring/summer/autum
T3-3.2
p4-4
インフラ/DevOps
Turn 4/15
M1-M2
Firebase Crashlytics設定
iOS版にFirebase Crashlyticsを導入し、クラッシュレポートとSlack通知を設定する。ios/TouringApp/TouringAppApp.swiftのinit()にCrashlytics初期化(既存のFirebaseApp.configure()の後)を確認する。dSYM自動アップロード: Build PhasesにRun Script '$PODS_ROOT/Fireb
iOS開発
Turn 4/31
M1
ルート生成UI改善(3フェーズ対応)
ルート生成の3ステップを1画面に統合する。計画モード(情報リッチ: スポット一覧、距離、高低差表示をカード形式で並べる)から走行開始ボタンタップで走行モード(極限シンプル: 地図+次の曲がり角のみ表示)に自動遷移する仕組みを実装する。@Stateでモード管理し、withAnimationでスムーズに遷移させる。ios/TouringApp/Views/Route/RouteGenerationVi
T4-4.3
p2-1
QA/テスト
Turn 4/14
M3
UIテスト自動化スイート拡充
リデザイン後の全新規画面のスナップショットテストを追加する。RouteGenerationView(1画面統合版)、ExploreView(実データ接続版)、RidingView(ミニマルUI)、RideSummaryView(エモーショナルサマリー)、ProfileView(拡張版)、SettingsView(緊急連絡先追加版)、OnboardingView各画面のLight/Darkモード両方
T4-4.9
UI/UXデザイン
Turn 4/16
M1
デザインシステム: AppColors拡張・カラーパレット確立
ios/TouringApp/Design/AppColors.swiftにKAKERUの全カラーパレットを定義する。Primary(Cyan #0DCCF2)、PrimaryDark(#0AB8DA)、PrimaryLight(#A0E8F5)、Background(#F5F8F8)、Surface(#FFFFFF)、TextPrimary(#0F172A)、TextSecondary(#647
T4-4.1
コンテンツ
Turn 4/14
M3
地域ツーリングガイド: 東海・中部エリア
名古屋発/静岡発のツーリングルート10選をdocs-portal/kakeru/magazine/guide-chubu.htmlに記事化する。ルート一覧: (1) 伊豆スカイライン全線走破(静岡→熱海→下田、130km、5時間)、(2) ビーナスライン(諏訪→白樺湖→車山、80km、3時間、標高差1,000m)、(3) 乗鞍スカイライン(高山→乗鞍岳、往復80km、雲上の絶景)、(4) 三ヶ日→
グロース/分析
Turn 4/11
M3
KPIダッシュボード構築
KPI指標を日次・週次で可視化するダッシュボードをdocs-portal/kakeru/growth-dashboard.htmlに構築する。データソース: Firebase AnalyticsのBigQuery Export(dataset: analytics_XXXXXX)。表示ウィジェット: (1) DAU/WAU/MAU推移(折れ線グラフ、Chart.js使用)、(2) ルート生成数(日
マーケティング
Turn 4/13
M3
App Store最適化(ASO)
App Storeでの検索順位を最大化するASO施策をdocs/marketing/aso-strategy.mdに策定する。タイトル最適化: 'KAKERU - AIツーリングナビ'(主要キーワード「ツーリング」「ナビ」を含む)。サブタイトル: 'AIがバイク旅の最高ルートを提案'(「バイク」「ルート」を追加)。キーワード100文字: 'ツーリング,バイク,ルート,AI,ナビ,道の駅,峠,絶景,
T8-8.1
プロダクトマネージャー
Turn 4/15
M2
PRD: AIルート生成機能の要件定義書
ルート生成機能の詳細PRDをdocs/prd/route-generation.mdに作成する。ユーザーストーリー: 「ライダーとして、出発地と走行時間を入力するだけでAIが最適なツーリングルートを3案提案してくれる」。入力パラメータ仕様: departure(lat,lng or 地名), duration_hours(1-12), bike_type(4種), preferred_catego
カスタマーサポート
Turn 4/11
M3+
App Storeレビュー自動監視+AI感情分析
App Connectのレビューを日次で自動取得しClaude APIで感情分析するスクリプトを作成する。scripts/monitor_appstore_reviews.pyにAppStoreReviewMonitor()を実装する。App Store Connect API(api.appstoreconnect.apple.com)のCustomerReviewsエンドポイントで直近24時間
T10-10.1
Block 5
⏱ 5時間(20h〜25h)
▼
Android開発
Turn 5/18
M5
走行記録・GPS追跡機能の実装
Android Foreground Serviceで走行中のGPS追跡を実装する。service/TrackingService.ktにForeground Service(FOREGROUND_SERVICE_TYPE_LOCATION)を実装し、FusedLocationProviderClient(com.google.android.gms:play-services-location)
テックリード
Turn 5/14
M2
A/Bテスト基盤のアーキテクチャ設計
Firebase Remote Configを活用したA/Bテスト基盤を設計する。experimentsコレクション(experiment_id, name, variants[], metric_key, start_date, end_date, status)のスキーマを定義する。プロンプトバリエーション(温度パラメータ、システムプロンプト文言、スポット推薦ロジック)とUIバリエーション(カ
T1-1.8
p1-1p1-5
バックエンド開発
Turn 5/22
M2
categoryAffinities→プロンプト注入の実装
Firestoreのusers/{uid}/preferencesドキュメントからcategoryAffinities(景色: 0.8, グルメ: 0.6, 温泉: 0.4, ワインディング: 0.9等のスコア辞書)を取得し、ルート生成プロンプトに注入する処理をgenerate_route関数に組み込む。functions/services/user_preference_service.pyを作
T1-1.7
p9-4
データエンジニア
Turn 5/22
M1
OSM curviness score計算
OpenStreetMapのwayデータから日本の主要道路のcurviness score(カーブ密度指標)を計算する。scripts/calculate_curviness.pyを作成し、osmiumライブラリ(pip install osmium)で日本のPBFファイル(japan-latest.osm.pbf、Geofabrikからダウンロード)をパースする。highway=primary/
T3-3.4
p3-1
インフラ/DevOps
Turn 5/15
M2-M3
パイプライン監視基盤構築
Cloud MonitoringでCloud Functionsの実行状況を監視するダッシュボードとアラートを構築する。gcloudコマンドでモニタリングダッシュボードを作成: gcloud monitoring dashboards create --config-from-file=monitoring/dashboard-config.json。ダッシュボードウィジェット: (1) Func
T9-9.1
iOS開発
Turn 5/31
M2
走行中UI(ミニマルUI自動遷移)
走行開始でLocationManagerが動き始めたら自動的にミニマルUIに遷移する。大きな地図+次のウェイポイント名+残り距離のみ表示し、不要な情報は全て非表示にする。グローブ操作対応で全タップターゲットを最低44pt×44ptに確保する。CLLocationManagerのdidUpdateLocationsで速度を監視し、走行中/停止中で表示を切り替える。ios/TouringApp/Vie
T4-4.4
p2-1
QA/テスト
Turn 5/14
M3
ルート生成APIのインテグレーションテスト
generate_route Cloud Functionのエンドツーエンドテストを作成する。正常系テスト: 有効な入力(出発地: 東京駅、距離: 200km、カテゴリ: 峠)→3ルート案返却を検証。異常系テスト: 無効な出発地(緯度経度範囲外)→エラーレスポンス、30秒タイムアウト→適切なエラーハンドリング、Claude API障害時→Geminiフォールバック動作を検証する。XCTestでHT
UI/UXデザイン
Turn 5/16
M2
走行後エモーショナルサマリーのビジュアルデザイン
走行完了後に表示されるサマリー画面のビジュアルデザインをv0.devで作成する。走行距離(大きな数字+単位)、標高グラフ(SwiftUI Chartsのエリアグラフ)、経由スポット数(アイコン付き)、走行スタイル分析(カーブ好き/直線好きの判定テキスト)を美しくカードUIで配置する。シェアボタンを画面下部に大きく配置し、SNS共有を促進するデザインにすること。
p2-4
コンテンツ
Turn 5/14
M3
地域ツーリングガイド: 関西エリア
大阪/京都発のツーリングルート10選をdocs-portal/kakeru/magazine/guide-kansai.htmlに記事化する。ルート一覧: (1) 淡路島一周(明石→洲本→鳴門、150km、6時間)、(2) 紀伊半島(大阪→白浜→串本→那智、300km、1泊)、(3) 天橋立→伊根(京都→天橋立→伊根の舟屋、250km、8時間)、(4) 奈良の山岳道路(大阪→吉野→十津川、200k
グロース/分析
Turn 5/11
M4+
A/Bテスト運用設計
Firebase Remote Configを活用したA/Bテスト運用フレームワークをdocs/growth/ab-test-framework.mdに設計する。テスト対象カテゴリ: (1) プロンプトバリエーション(詳細指示 vs 簡潔指示のルート品質比較)、(2) UI配置(ルート提案のカード表示 vs リスト表示のタップ率比較)、(3) Paywall文言(「Proにアップグレード」vs「す
T1-1.8
マーケティング
Turn 5/13
M3
季節コンテンツカレンダー策定
年間のツーリングシーズンに合わせたコンテンツカレンダーをdocs/marketing/content-calendar.mdに作成する。月別プロモーション計画: 3月-4月(桜ルート特集、花見ツーリング)、5月(GW長距離ツーリング特集)、6月(梅雨明け前の晴れ間を狙え企画)、7月-8月(海沿い・高原避暑ルート)、9月(秋の気配ルート)、10月-11月(紅葉ベストルート、温泉ツーリング)、12月-
T8-8.5
p7-1
プロダクトマネージャー
Turn 5/15
M2
PRD: セーフティ機能の要件定義書
安全機能の詳細PRDをdocs/prd/safety-features.mdに作成する。Phase 1(M1-M3): 異常停止検知+緊急SMS。検知アルゴリズム: GPS速度<1km/h が5分継続かつ走行中フラグON→アプリ内確認ダイアログ(60秒カウントダウン)→応答なし→緊急連絡先にSMS送信。SMS本文: '[KAKERU緊急通知] {name}が走行中に{duration}分間停
カスタマーサポート
Turn 5/11
M3+
アプリ内フィードバック機能設計
アプリ内からフィードバックを送信する機能の仕様をdocs/support/in-app-feedback-spec.mdに策定する。UIフロー: 設定画面→「フィードバックを送る」→フィードバック入力画面。入力項目: (1) カテゴリ選択(SegmentedControl: バグ報告/機能要望/その他)、(2) 詳細テキスト(TextEditor、最大1000文字)、(3) スクリーンショット添付
T10-10.2
Block 6
⏱ 5時間(25h〜30h)
▼
Android開発
Turn 6/18
M5
走行中UIのCompose実装
走行中の極限シンプルUI(ターンバイターンナビ)をJetpack Composeで実装する。ui/riding/RidingScreen.ktに3情報のみ表示するミニマルUIを構築: (1) 次の曲がり角の方向と距離(大きなアイコン+テキスト)、(2) 次のスポットまでの距離(km表示)、(3) 現在の走行速度(km/h)。走行開始ボタンタップで自動的にRidingScreenに遷移し、画面スリー
テックリード
Turn 6/14
M2
フィードバックループ設計
走行後の5秒レーティング(サイコー/まあまあ/いまいち)からルートセグメント品質スコアへの反映パスを設計する。route_feedbackコレクション(route_id, user_id, overall_rating, segment_ratings[], comment, created_at)のスキーマを定義する。フィードバックデータをsegment_scoresコレクション(segment
T1-1.9
p1-5
バックエンド開発
Turn 6/22
M2
A/Bテスト基盤バックエンド実装
Firebase Remote Configの実験IDに基づいて異なるプロンプトバリエーションを選択する機構をCloud Functionsに実装する。functions/services/ab_test_service.pyを作成し、get_experiment_variant(user_id, experiment_name) -> str メソッドを実装する。Firestoreのexp
T1-1.8
データエンジニア
Turn 6/22
M1-M2
X/Twitter Search API v2 データ収集設計
X API v2のRecent Search endpoint(/2/tweets/search/recent)でツーリング関連投稿を日次収集するスクリプトを作成する。scripts/collect_twitter_data.pyにTwitterCollector(Bearer Token認証)を実装する。検索クエリ: '(#ツーリング OR #バイク旅 OR #ライダー OR #バイクのある風景
T2-2.4
p3-4
インフラ/DevOps
Turn 6/15
M2-M3
データ品質チェック自動化
touring_spotsの品質チェックを自動実行するCloud Functionを作成する。functions/services/data_quality_checker.pyにDataQualityChecker()を実装する。チェック項目: (1) 緯度範囲(24.0-46.0)・経度範囲(122.0-153.0)が日本国内か、(2) 必須フィールド(name, location, cate
T9-9.2
iOS開発
Turn 6/31
M2
走行後フィードバックUI
走行完了後にエモーショナルサマリーを表示する画面を実装する。距離、標高差、走行時間、経由スポット数、最高速度を美しいカードUIで表示する。「サイコー/まあまあ/いまいち」の3択フィードバックボタンを大きく配置し、タップ結果をFirestoreのride_feedbackコレクションに保存する。シェアボタンも目立つ位置に配置し、ShareLinkで走行サマリーをSNS共有可能にすること。
T4-4.5
p2-4p9-2
QA/テスト
Turn 6/14
M3
Beta版テスト計画策定・実行
TestFlight 10-20名のBetaテスト計画を策定する。テストシナリオ5種: (1)初回起動→オンボーディング→ルート生成、(2)ルート走行→走行記録→サマリー確認、(3)スポット探索→お気に入り保存、(4)フィードバック送信→シェアカード生成、(5)設定変更→緊急連絡先登録。テスターからのフィードバック収集フォーム(Googleフォーム)を準備し、テスト手順書をdocs/beta-te
T4-4.10
UI/UXデザイン
Turn 6/16
M2
走行中ミニマルUIのデザイン
グローブ着用で時速100kmの状況を想定した極限シンプルUIを設計する。高コントラスト(白文字+ダーク背景)、大きな文字(方向指示は最低32pt、距離表示は最低24pt)、大きなタップターゲット(最低44pt×44pt、推奨60pt×60pt)を厳守する。夜間走行対応のダークバリエーション(赤基調の低輝度モード)も作成し、v0.devでプロトタイプを生成すること。
T4-4.4
コンテンツ
Turn 6/14
M4
地域ツーリングガイド: 北海道エリア
北海道のツーリングルート10選をdocs-portal/kakeru/magazine/guide-hokkaido.htmlに記事化する。ルート一覧: (1) 宗谷岬(稚内→宗谷岬、日本最北端到達証明)、(2) 知床半島(網走→ウトロ→知床峠、世界遺産エリア)、(3) 富良野・美瑛(旭川→美瑛→富良野、パッチワークの丘+ラベンダー)、(4) 支笏湖→洞爺湖(千歳→支笏湖→洞爺湖、カルデラ湖巡り)
グロース/分析
Turn 6/11
M4+
オンボーディング完了率の分析・改善
初回起動からルート生成までの各ステップの完了率を分析し改善提案をまとめる。BigQueryから以下のファネルデータを抽出するSQLクエリを作成: Step1=app_first_open、Step2=location_permission_granted、Step3=bike_type_selected、Step4=departure_set、Step5=first_route_generated
マーケティング
Turn 6/13
M3-M4
AI自動コンテンツ生成設計
Claude APIで週次おすすめルート記事を自動生成する仕組みをdocs/marketing/ai-content-pipeline.mdに設計する。入力データ: (1) 季節コンテンツカレンダーから今週のテーマ、(2) trending_spotsコレクションの今週トップ10スポット、(3) social_trendsの急上昇キーワード、(4) 天気予報(週末の天気が良い地域)。Claude
T8-8.3
p7-1
プロダクトマネージャー
Turn 6/15
M2
走行ログ収集同意フロー仕様
GDPR/個人情報保護法に準拠した同意取得フローの仕様をdocs/prd/consent-flow.mdに策定する。同意画面UIコピー: 「KAKERUはあなたの走行ログ(GPSルート、速度、停止地点)を収集します。このデータはAIルート生成の品質向上、スポットDB改善、道路品質データベースの構築に使用します。収集データは1年後に匿名化され、個人の特定ができない形で統計利用されます」。オプトアウト
T12-12.4
カスタマーサポート
Turn 6/11
M3+
トラブルシューティングガイド作成
よくあるトラブルの解決手順をdocs-portal/kakeru/help/troubleshooting.htmlにステップバイステップで文書化する。トラブル一覧: (1) 位置情報が取得できない: 設定→プライバシー→位置情報サービスON確認→KAKERU「常に許可」確認→再起動→位置情報リセット(設定→一般→リセット→位置情報とプライバシーをリセット)。(2) ルート生成が遅い/失敗する:
Block 7
⏱ 5時間(30h〜35h)
▼
✔ コンテンツ & ブランドストーリーテリング(Mateschitz / Woodman / Gellert)
Android開発
Turn 7/18
M5
走行後フィードバック・サマリー画面
走行完了後のエモーショナルサマリー画面をCompose実装する。ui/riding/RideSummaryScreen.ktに以下を配置: (1) 走行距離(大きなテキスト)、(2) 走行時間、(3) 最高標高と累積標高差、(4) 経由スポット数とリスト、(5) 走行スタイル分析(「ワインディングマスター」「絶景ハンター」等のAI生成タイトル)。Canvas APIとBitmap操作で統計情報を美
テックリード
Turn 7/14
M2
道路セグメント品質スコアDBスキーマ設計
OSMのカーブ密度・標高変化・景観スコアを格納するroad_segmentsコレクションのスキーマを設計する。フィールド: segment_id, geohash(GeoHash6桁で空間インデックス), start_lat, start_lng, end_lat, end_lng, curviness_score(0-100, OSM wayデータの方向変化累積値), elevation_cha
p1-2
バックエンド開発
Turn 7/22
M2
フィードバックループAPI実装
submit_route_feedback Cloud Functionを作成する。入力: route_id, user_id, overall_rating(1-3: サイコー/まあまあ/いまいち), segment_ratings[{segment_id, rating}], comment(optional)。route_feedbackコレクションに保存し、Firestoreトリガーで対象
T1-1.9
p1-5
データエンジニア
Turn 7/22
M1-M2
Claude NERデータ抽出パイプライン
YouTube字幕/X投稿テキストからClaude APIで地名・スポット名・道路名を固有表現抽出するバッチ処理を構築する。functions/services/ner_pipeline_service.pyにNERPipeline(batch_size=50)クラスを実装する。入力: raw_tweetsとyoutube_transcriptsコレクションのstatus='unprocessed
T2-2.5
インフラ/DevOps
Turn 7/15
M2-M3
Firestore使用量&コスト監視
Firebase Consoleの使用量データをCloud Monitoring経由で監視しコストアラートを設定する。GCPのBilling Export(BigQuery)を有効化し、日次のFirestore読み取り/書き込み/削除オペレーション数を記録する。monitoring/cost-dashboard.jsonにダッシュボード定義を作成: (1) 日次読み取り数(firestore.go
T9-9.3
iOS開発
Turn 7/31
M2
走行ログ記録UI改善
走行履歴一覧画面を改善する。日付、距離、ルートのサムネイル地図(MKMapSnapshotterで生成)、評価を表示するList形式のUIを構築する。タップで詳細画面(ルート全体地図+走行統計情報: 平均速度、最高速度、標高差、経由スポット)を表示する。ios/TouringApp/Views/History/RideHistoryView.swiftに実装し、Firestoreのride_log
T4-4.6
QA/テスト
Turn 7/14
M3
Betaフィードバック検証・回帰テスト
Betaテスターからのフィードバックに基づく修正後の回帰テストを実行する。全スナップショットテスト(isRecording=falseで既存リファレンスと比較)、全UIテスト(isHittable確認)、全アクセシビリティ監査(performAccessibilityAudit())を通過することを確認する。テスト結果をautomation/agents/dev-qa/beta-regressio
T4-4.11
UI/UXデザイン
Turn 7/16
M2
シェアカードのビジュアルデザイン
SNSシェア用ビジュアルカードのテンプレートデザインを作成する。OGP用1200×628px(ルートマップ左半分+統計情報右半分+KAKERUロゴ下部)とInstagram用1080×1080px(ルートマップ上部+統計下部+ロゴ)の2テンプレートを設計する。走行距離・時間・日付のタイポグラフィ、ブランドカラー(Cyan #0DCCF2)のアクセント、背景グラデーションを含む美しいカードデザインに
T4-4.7
p7-2
コンテンツ
Turn 7/14
M4
地域ツーリングガイド: 九州エリア
九州のツーリングルート10選をdocs-portal/kakeru/magazine/guide-kyushu.htmlに記事化する。ルート一覧: (1) 阿蘇やまなみハイウェイ(別府→やまなみ→阿蘇、130km、草原と火山の絶景)、(2) 桜島周遊(鹿児島→桜島フェリー→溶岩道路一周、50km、3時間)、(3) 高千穂峡(熊本→高千穂→延岡、200km、7時間、神話の里)、(4) 指宿スカイライ
グロース/分析
Turn 7/11
M4+
コンバージョンファネル分析(Free→Pro)
Free→Pro変換の主要トリガーを分析し最も効果的な変換経路を特定する。BigQueryで以下のコンバージョンパスを分析するSQLクエリを作成: (1) 月3回上限到達→Paywall表示→Pro購入のCVR、(2) 7日間トライアル終了→継続購入のCVR、(3) Pro限定機能(天気連動、リアルタイム道路状況)タップ→Paywall→購入のCVR、(4) ルート共有試行→Pro必要通知→購入の
マーケティング
Turn 7/13
M3-M4
MotoVlogger 10名シードキャンペーン
MotoVlogger10名にKAKERU Pro年額ライセンスを無料提供し、レビュー動画を依頼するキャンペーンを策定する。docs/marketing/motovlogger-campaign.mdに以下を記載: 候補者選定基準: YouTube登録者1万以上、月2回以上投稿、日本国内ツーリングが主コンテンツ、視聴者エンゲージメント率(いいね/再生数)>3%。候補者リスト: youtube
T8-8.4
プロダクトマネージャー
Turn 7/15
M3
App Store申請準備
App Store Connect上でのアプリ情報登録に必要な全情報をdocs/appstore-submission.mdに準備する。アプリ名: 'KAKERU - AIツーリングナビ'(30文字以内)。サブタイトル: 'AIがあなただけの最高の道を見つける'。カテゴリ: プライマリ=ナビゲーション、セカンダリ=旅行。年齢レーティング: 4+(暴力/性的コンテンツなし)。説明文(4000文字以内
T12-12.5
カスタマーサポート
Turn 7/11
M4+
フィードバック分析&優先度付け
収集したフィードバック(App Storeレビュー+アプリ内FB)を月次で集計・分析する仕組みを構築する。functions/services/feedback_analysis_service.pyにFeedbackAnalyzer()を実装する。処理: (1) appstore_reviewsとuser_feedbacksコレクションから月次データを取得、(2) Claude APIでカテゴリ
T10-10.3
Block 8
⏱ 5時間(35h〜40h)
▼
✔ T4: UX/プロダクト✔ AIルートインテリジェンスエンジン(Karpathy / Söderström / Murray)
Android開発
Turn 8/18
M5
オンボーディングフロー実装
初回起動30秒以内にAIデモルート生成で価値体感させるオンボーディングをCompose実装する。ui/onboarding/OnboardingScreen.ktにHorizontalPager(3ページ)で以下のフローを構築: (1) ウェルカム画面: KAKERUロゴ+「AIがあなただけのツーリングルートを作ります」メッセージ。(2) バイク種別選択: LazyVerticalGridで4種類
テックリード
Turn 8/14
M2
時間・天候・暗黙的嗜好のデータモデル設計
日没時刻・太陽方角・降水確率をルート生成変数として組み込むデータモデルを設計する。weather_contextスキーマ(sunrise, sunset, sun_azimuth, precipitation_probability, temperature, wind_speed, visibility)を定義し、ルート生成プロンプトに「日没1時間前に西向き海沿いルートでゴールデンアワー体験」の
p1-3p1-4
バックエンド開発
Turn 8/22
M1
ingest_youtube_spots拡張
既存のingest_youtube_spots関数を50チャンネル対応にバッチ最適化する。functions/data/youtube_channels.jsonに50チャンネルのchannelId/名前/登録者数/主要エリアをリスト化する。YouTube Data API v3のquota効率化としてplaylistItems.list(uploadsプレイリスト一括取得)を活用し、1チャンネル
T2-2.2
p4-1
データエンジニア
Turn 8/22
M1-M2
Google Trends連携データ収集
pytrendsライブラリでツーリング関連キーワードの季節トレンドスコアを週次取得するバッチ処理を構築する。functions/services/trends_collector_service.pyにTrendsCollector(pytrends)を実装する。季節別キーワードリスト: 春['ツーリング 桜','バイク 花見']、夏['ツーリング 海','バイク 高原','バイク キャンプ']、
T2-2.6
p9-3
インフラ/DevOps
Turn 8/15
M2-M3
Firebase Security Rules監査
firestore.rulesの全ルールを監査し、セキュリティ改善を実施する。現在のfirestore.rulesを分析し、以下を確認・修正する: (1) 認証必須: 全コレクションでrequest.auth != nullを確認、(2) ユーザーデータ保護: users/{uid}はrequest.auth.uid == uidでのみ読み書き可能、(3) ride_logs/{logId}: 作
iOS開発
Turn 8/31
M2
シェアカードUI(1タップシェア)
走行後に自動生成されるビジュアルカードを実装する。SwiftUIのCanvas/GeometryReaderでルートマップ+走行距離+走行時間+写真をカードレイアウトに合成する。UIGraphicsImageRendererで1200×628pxのOGP画像と1080×1080pxのInstagram用正方形画像を生成し、ShareLinkで1タップSNSシェアを実現する。KAKERUロゴとブラン
T4-4.7
p7-2
QA/テスト
Turn 8/14
M4
セーフティ機能のテスト
異常停止検知のユニットテストを作成する。5分以上停止(速度0+位置変化なし)→アラート発動の閾値テスト、4分59秒での非発動テスト、コンビニ停車パターンの除外テストを実装する。緊急SMS送信のモックテスト(MFMessageComposeViewControllerのモック)を作成する。CLLocationManagerのシミュレーション用GPXファイルを使用した走行シナリオテスト(正常走行→停止
T5-5.1T5-5.2
UI/UXデザイン
Turn 8/16
M2
オンボーディングフローのデザイン
初回起動からAI体験までの30秒フローをデザインする。ステップ1: バイク種別選択(5種のバイクアイコンを大きく配置、3秒で選択完了)→ステップ2: 位置許可(地図アニメーション+許可ボタン、2秒)→ステップ3: AIルート生成中(バイクが道を走るアニメーション、10秒)→ステップ4: ルートプレビュー(マップ+3ルート候補カード、即座に表示)。各ステップのUIをv0.devで生成すること。
T4-4.8
p2-2
コンテンツ
Turn 8/14
M4
季節コンテンツ: 春ツーリング特集
桜の名所を巡るツーリングルート特集をdocs-portal/kakeru/magazine/spring-special.htmlに作成する。内容: (1) 桜ツーリングの魅力(走りながら見る桜並木の美しさ)、(2) 地域別桜ルート5選: 吉野山(奈良、4月上旬)、高遠(長野、4月中旬)、角館(秋田、4月下旬)、弘前(青森、5月上旬)、北海道(5月中旬)、(3) 開花予想と連動したルート提案のTi
T8-8.5
グロース/分析
Turn 8/11
M4+
ライディングストリーク効果測定
月間走行ストリーク機能のリテンション効果を計測するデータ分析を実施する。BigQueryで以下を分析: (1) ストリーク継続中ユーザー vs 非継続ユーザーのDAU/MAU比較、(2) ストリーク長(1ヶ月/3ヶ月/6ヶ月/12ヶ月)別のPro継続率、(3) ストリーク途切れ後の復帰率(何日以内に再び走行するか)、(4) ストリーク機能導入前後のDay30リテンション率の比較(自然実験)。Fir
p6-4
マーケティング
Turn 8/13
M3-M4
プレスリリース作成
KAKERU正式リリース用のプレスリリースをdocs/marketing/press-release.mdに作成する。見出し: 「日本初、AIがパーソナライズされたバイクツーリングルートを自動生成するアプリ「KAKERU」をリリース」。リード: AIルート生成×安全機能×ソーシャルデータ活用の3つの特徴を簡潔に。本文構成: (1) アプリ概要と開発背景(日本のライダー人口800万人の課題)、(2)
プロダクトマネージャー
Turn 8/15
M3
App Store初回申請&リジェクト対応
TestFlightビルドを提出しApp Store審査を申請するプロセスと、リジェクト対応を文書化する。docs/appstore-review-guide.mdに以下を記載: (1) 申請手順: Xcode Archive→App Store Connect Upload→TestFlight内部テスト→外部テスト→審査提出。(2) 予想リジェクト理由と事前対応: 2.1 位置情報(NSLoc
T12-12.6
カスタマーサポート
Turn 8/11
M4+
Google Playレビュー監視
Google Play ConsoleのレビューをApp Store同様に日次監視+AI感情分析するスクリプトを追加する。scripts/monitor_google_play_reviews.pyにGooglePlayReviewMonitor()を実装する。Google Play Developer API(androidpublisher.googleapis.com)のreviews.li
Block 9
⏱ 5時間(40h〜45h)
▼
Android開発
Turn 9/18
M6
セーフティ機能(異常停止検知+緊急SMS)
iOS版と同等の異常停止検知をAndroidに実装する。service/SafetyService.ktにForeground Service内で走行中の5分以上の予期しない停止を検知するロジックを実装する。検知条件: GPS速度が5分間連続で1km/h未満かつ走行中フラグがON。検知時のフロー: (1) 高優先度通知で「大丈夫ですか?」確認ダイアログ(NotificationCompat.Bui
テックリード
Turn 9/14
M1
KAKERU全体のコーディング標準策定
SwiftUIのアーキテクチャパターン(MVVM+Service層)、命名規約、ディレクトリ構造、コードレビュー基準を文書化する。具体的には: (1) View/ViewModel/Service/Modelの責務定義と依存方向ルール、(2) 命名規約(View接尾辞、ViewModel接尾辞、Service接尾辞、プロトコルは-able/-ingまたはProtocol接尾辞)、(3) ios/T
バックエンド開発
Turn 9/22
M1
Cloud Scheduler週次自動実行
Cloud Schedulerで毎週月曜AM5:00 JSTにingest_youtube_spotsを自動実行するジョブを設定する。firebase.jsonのfunctions設定にschedule: 'every monday 05:00'(Asia/Tokyo)を追加する。関数デコレータ@on_schedule(schedule='every monday 05:00', timezone
T2-2.3
データエンジニア
Turn 9/22
M2
トレンド検知ロジック
YouTube mention数、X投稿数、Google Trendsスコアの3ソースを統合して各スポットの「ホット度」を算出するバッチ処理を構築する。functions/services/trend_detection_service.pyにTrendDetector()クラスを実装する。処理フロー: (1) social_trendsコレクションから直近4週間の週次データを取得、(2) 各スポ
T2-2.7
インフラ/DevOps
Turn 9/15
M4+
API使用量最適化
Claude API、YouTube Data API、X API、Google Geocoding APIの使用量を集計しコスト最適化を実施する。functions/services/api_usage_tracker.pyにAPIUsageTracker()を実装する。各APIの使用量をapi_usage_logsコレクション(api_name, endpoint, request_count
T9-9.4
iOS開発
Turn 9/31
M2
オンボーディング改善(30秒アクティベーション)
初回起動時に30秒以内にAIの価値を体感させるフローを実装する。バイク種別選択(3秒、大きなアイコンタップ)→現在地取得(自動、CLLocationManager)→AIデモルート即時生成(generate_route API呼び出し、10秒)→ルートプレビュー表示の4ステップ構成。TabView+PageTabViewStyleでステップ表示し、進捗インジケーターを表示する。初回起動フラグはUs
T4-4.8
p2-2
QA/テスト
Turn 9/14
M4
StoreKit/課金機能のテスト
StoreKit Testing in Xcode(StoreKit Configuration File)を使用したサブスクリプション購入フローのテストを作成する。テストシナリオ: (1)月額Pro購入→entitlement確認→Pro機能アクセス可能、(2)年額Pro購入→17%OFF価格確認、(3)サブスク期限切れ→Freeダウングレード→Pro機能ロック、(4)購入復元→entitlem
T7-7.2T7-7.3
UI/UXデザイン
Turn 9/16
M3
デザインシステム: コンポーネントライブラリ構築
KAKERUで使用する共通SwiftUIコンポーネントを定義し文書化する。Button(primary/secondary/ghost、small/medium/large)、Card(spot/route/stat)、Badge(earned/locked)、Tag(カテゴリチップ)、Avatar(丸形、サイズ3種)、ProgressBar(走行中用)、Alert(success/error/i
コンテンツ
Turn 9/14
M5-M6
季節コンテンツ: 夏ツーリング特集
涼を求める高原・海沿いルート特集をdocs-portal/kakeru/magazine/summer-special.htmlに作成する。内容: (1) 夏ツーリングの涼しい走り方(標高×気温の関係: 標高100mで0.6℃低下)、(2) 高原ルート5選: ビーナスライン(標高1,900m、地上より12℃涼しい)、志賀草津高原ルート、磐梯吾妻スカイライン、蔵王エコーライン、大台ヶ原。(3) 海沿
グロース/分析
Turn 9/11
M6+
ユーザーセグメンテーション設計
バイク種別×走行頻度×地域でユーザーをセグメント化し、セグメント別マーケティング施策を設計する。セグメント軸: (1) バイク種別(スポーツ/アドベンチャー/クルーザー/スクーター)、(2) 走行頻度(週1以上=ヘビー/月2-3=レギュラー/月1以下=ライト/休眠=30日以上未走行)、(3) 主要地域(関東/東海/関西/北海道/九州/その他)。BigQueryでセグメント別KPI分析: 各セグメン
p9-5
マーケティング
Turn 9/13
M4+
リファラルプログラム設計
既存ユーザーが友人を招待するリファラルプログラムをdocs/marketing/referral-program.mdに設計する。招待フロー: (1) ユーザーがアプリ内「友達を招待」ボタンをタップ、(2) Firebase Dynamic Links(kakeru.page.link/{referral_code})で招待リンク生成、(3) 招待リンクをLINE/X/SMS等でシェア、(4) 被
T8-8.6
プロダクトマネージャー
Turn 9/15
M3
リリースチェックリスト策定
iOS/Androidリリース前の包括的チェックリストをdocs/release-checklist.mdに作成する。カテゴリ別チェック項目: [ビルド] xcodebuildビルド成功、Archive成功、dSYMアップロード確認。[テスト] ユニットテスト全Pass、スナップショットテスト全Pass、アクセシビリティ監査Pass、手動テスト10シナリオ完了。[コンテンツ] スクリーンショット6
カスタマーサポート
Turn 9/11
M5+
アプリ内FAQチャットボット設計
Claude APIを使用したアプリ内FAQチャットボットの仕様をdocs/support/chatbot-spec.mdに策定する。アーキテクチャ: Cloud Function(chat_with_support)がClaude APIを呼び出し、FAQ50問+ヘルプ記事10本のコンテンツをsystemプロンプトのcontextとして注入する。Claude APIプロンプト: 「あなたはKAK
T10-10.4
Block 10
⏱ 5時間(45h〜50h)
▼
Android開発
Turn 10/18
M6
シェアカード生成機能
走行後に自動生成されるビジュアルカード(ルートマップ+距離+写真)をAndroidに実装する。ui/share/ShareCardGenerator.ktにCanvas APIでBitmapを描画するロジックを実装する。カードレイアウト(1080x1920px): (1) 上部1/2にルートマップ(Google Static Maps APIで取得したBitmap)、(2) 中央に走行統計(距離、
テックリード
Turn 10/14
M1
技術負債解消計画
既存コードの技術負債を洗い出し、優先順位付きの解消計画を策定する。ios/TouringApp/以下の全Swiftファイルをスキャンし、(1) TODO/FIXME/HACKコメント、(2) force unwrap(!の使用箇所)、(3) 非推奨API使用、(4) unused import、(5) 500行超の巨大ファイル、(6) PreviewDataの未更新箇所を検出する。特にPrevie
バックエンド開発
Turn 10/22
M1
X/Twitter Search API v2連携
X API v2のSearch Recent endpoint(/2/tweets/search/recent)を使用して、「#ツーリング」「#バイク旅」「#ツーリングスポット」「#バイクのある風景」等のハッシュタグ投稿を日次収集するCloud Functionを作成する。functions/services/twitter_service.pyにTwitterClient(Bearer Toke
T2-2.4
p3-4
データエンジニア
Turn 10/22
M2
social_trendsコレクション設計・構築
ソーシャルデータを統合管理するsocial_trendsコレクションのスキーマを設計し実装する。スキーマ: spot_id(string), period(string: YYYY-WW形式), youtube_mentions(int: YouTube動画でのmention回数), twitter_mentions(int: X投稿でのmention回数), trend_score(float
T2-2.8
インフラ/DevOps
Turn 10/15
M4+
データバックアップ&リカバリ計画
Firestoreの自動エクスポートを設定し、リカバリ手順書を作成する。Cloud Schedulerで日次バックアップジョブを設定: gcloud firestore export gs://touring-app-koh-backups/$(date +%Y%m%d) --project touring-app-koh。functions/main.pyにscheduled_backup Cl
T9-9.5
iOS開発
Turn 10/31
M2
フリーミアム設計UI
Free/Pro機能分割画面を実装する。ProアップグレードバナーをExploreView下部とHomeViewに表示する。「月3回まで無料」の残り回数をFirestoreのusageQuotasから取得して表示し、上限到達時にPaywall画面へ誘導する。Pro限定機能(天気連動ルート最適化、リアルタイム道路状況、詳細統計)のティーザーUIをロック状態で表示し、タップでPaywallに遷移させる
T7-7.1
p6-1
QA/テスト
Turn 10/14
M4
パフォーマンステスト
XCTMetricを使用したメモリ使用量(XCTMemoryMetric)、CPU負荷(XCTCPUMetric)、起動時間(XCTApplicationLaunchMetric)のベンチマークテストを作成する。走行記録中のバッテリー消費量はXCTOSSignpostMetricで測定する。measure(metrics:)で各メトリクスを5回計測し、ベースライン値を設定する。Instrument
UI/UXデザイン
Turn 10/16
M3
ダークモード対応デザイン
全画面のダークモードカラーバリエーションを設計する。iOS標準のColorScheme(.light/.dark)に対応し、AppColorsのdynamic color(Background: light=#F5F8F8, dark=#101F22、Surface: light=#FFFFFF, dark=#1A2C30)を定義する。走行モードはデフォルトでダークUIにする設計方針とし、Cyan
コンテンツ
Turn 10/14
M5-M6
季節コンテンツ: 秋紅葉ツーリング特集
紅葉の名所を巡るルート特集をdocs-portal/kakeru/magazine/autumn-special.htmlに作成する。内容: (1) 紅葉ツーリングのベストタイミング(地域×標高で見頃が異なる)、(2) 紅葉ルート10選: 奥入瀬渓流(10月中旬)、日光いろは坂(10月下旬)、箱根(11月上旬)、京都・嵐山(11月中旬)、香嵐渓(11月中旬)、耶馬渓(11月上旬)等、見頃順に北から
T8-8.5
グロース/分析
Turn 10/11
M6+
リテンション分析・改善施策
Day1/Day7/Day30リテンション率を計測・分析し、改善施策をまとめる。BigQueryでコホート分析SQLを作成: install_date別コホートの日次リテンション率を28日間追跡するマトリクス表を生成する。分析内容: (1) 全体リテンション曲線とベンチマーク比較(ナビアプリ平均Day30: 15-25%)、(2) 時期別コホートの差(季節性: 春DL組 vs 冬DL組)、(3)
マーケティング
Turn 10/13
M4+
Google Play ASO
Google Play Storeでの検索最適化をdocs/marketing/google-play-aso.mdに策定する。タイトル: 'KAKERU - AIツーリングナビ・バイクルート'(50文字以内、主要キーワード含む)。短い説明: 'AIがあなただけの最高のバイクツーリングルートを提案。道の駅・絶景・温泉スポット1,200+件収録'(80文字以内)。詳細説明(4000文字以内): Ap
プロダクトマネージャー
Turn 10/15
M3
PRD: コミュニティ機能の要件定義書
コミュニティ機能の詳細PRDをdocs/prd/community-features.mdに作成する。機能一覧: (1) ルート共有: DeepLink(kakeru://route/{id})で共有、共有時にシェアカード自動生成、公開/フレンド限定/非公開の3段階プライバシー設定。(2) プロフィール: バイク種別、累計走行距離、走行都道府県数、自己紹介文、獲得バッジ一覧。(3) バッジ/実績:
カスタマーサポート
Turn 10/11
M5+
NPS調査設計・実施
アプリ内NPS(Net Promoter Score)調査の設計をdocs/support/nps-survey-spec.mdに策定する。表示タイミング: 走行完了5回後に初回表示、以降は走行完了10回ごとに表示(最大月1回)。表示条件: ride_completed イベントのcountが5/15/25/...の時にフラグを立て、次回アプリ起動時にモーダル表示。質問1(NPS本体): 「KAK
T10-10.5
Block 11
⏱ 5時間(50h〜55h)
▼
✔ T9: データ運用(DataOps)✔ データサイエンス & パーソナライゼーション(Chew / Mason / Lake)
Android開発
Turn 11/18
M6
Google Play Billing実装
Google Play Billing Library v6を使用してPro月額¥580/年額¥4,800のサブスクリプションを実装する。data/billing/BillingRepository.ktにBillingClient接続、queryProductDetails、launchBillingFlowを実装する。商品ID: 'pro_monthly'(¥580/月), 'pro_annu
テックリード
Turn 11/14
M4
多言語化・国際化のアーキテクチャ設計
iOS/Androidの多言語対応と、Firestore・Cloud Functionsの言語パラメータ対応を設計する。iOS: String Catalog(.xcstrings)でja/zh-Hant/enの3言語管理、LocalizedStringKey統一使用ルールを策定する。Android: res/values-zh-rTW/strings.xml、res/values/strings
T11-11.3
バックエンド開発
Turn 11/22
M1
Claude NER固有表現抽出
YouTube字幕テキストやX投稿テキストからClaude APIを使用して地名・スポット名・道路名を固有表現抽出するCloud Functionを作成する。functions/services/ner_service.pyにextract_spots(text) -> list[SpotCandidate]メソッドを実装する。Claude APIへのプロンプトで「以下のテキストからツーリン
T2-2.5
データエンジニア
Turn 11/22
M2
走行ログ集約・暗黙的シグナル収集
ride_logsコレクションからGPS軌跡を集約し、道路セグメントごとの通過パターンとユーザー行動シグナルを抽出する。functions/services/ride_signal_extractor.pyにRideSignalExtractor()を実装する。処理: (1) ride_logsから期間内の全GPS点列を取得し、GeoHash6桁セグメントに分割、(2) セグメントごとに通過回数、
T2-2.9
p9-1
インフラ/DevOps
Turn 11/15
M4+
週次データ品質レポート自動生成
パイプライン実行結果、スポットDB統計、API使用量をまとめた週次レポートHTMLを自動生成しSlack送信するCloud Functionを作成する。functions/services/weekly_report_generator.pyにWeeklyReportGenerator()を実装する。レポート内容: (1) パイプライン実行サマリー(pipeline_logsから集計: 成功/失敗
T9-9.6
iOS開発
Turn 11/31
M2
StoreKit 2 IAP実装
StoreKit 2でProサブスクリプション(月額¥580/年額¥4,800)の購入フローを実装する。Product.products()でプロダクト取得→purchase()で購入→Transaction.currentEntitlementsで検証→課金ステータスをFirestoreのusers/{uid}/subscriptionに保存する。ios/TouringApp/Services/
T7-7.2
p6-1
QA/テスト
Turn 11/14
M4
ネットワーク障害時のテスト
URLProtocolのサブクラスでネットワーク障害をシミュレートするモックを作成する。テストシナリオ: (1)オフライン状態でルート生成→エラーUI表示確認、(2)タイムアウト時→リトライUI表示確認、(3)キャッシュからのスポットデータ表示→オフラインでもExploreView表示可能、(4)走行ログのオフラインキューイング→復帰後に自動同期。URLSessionConfiguration.p
UI/UXデザイン
Turn 11/16
M3
アクセシビリティ対応デザイン
Dynamic Type対応の最小/最大フォントサイズ設定(Body: 17pt-53pt、Caption: 12pt-40pt)、VoiceOverラベル設計(全インタラクティブ要素にaccessibilityLabel/Hint設定)、色覚多様性対応のコントラスト比確認(WCAG AA準拠: 通常テキスト4.5:1以上、大テキスト3:1以上)を実施する。全コンポーネントのaccessibili
コンテンツ
Turn 11/14
M5-M6
SNS投稿テンプレート・素材集作成
X/Instagram投稿用のテンプレートと素材をdocs/content/sns-templates/に作成する。4カテゴリ×5種=20テンプレート: (1) ルート紹介: 「今週のおすすめルート」テンプレート(地図画像+距離+時間+難易度のカード、1200x675px)×5バリエーション。(2) スポット紹介: 「KAKERUスポット」テンプレート(写真+スポット名+キャッチコピー+カテゴリバ
グロース/分析
Turn 11/11
M9+
台湾版KPI設計
台湾市場向けのKPI体系をdocs/growth/taiwan-kpi.mdに設計する。台湾市場調査: バイク保有台数(約1,400万台、人口比で世界有数)、ツーリング文化の特徴(週末の北海岸・陽明山が定番)、競合アプリ(Google Maps中心、専用ツーリングアプリは少ない)。KPI目標: M9(ベータテスト)=テスター10名、M10(ローンチ)=DAU 50/MAU 200、M12=DAU
マーケティング
Turn 11/13
M5+
ランディングページ改善
KAKERUの公式Webランディングページをdocs-portal/kakeru/lp.htmlに作成する。ページ構成: (1) ヒーローセクション(タグライン+スクリーンショット+App Store/Google Playバッジ)、(2) 機能紹介3カラム(AIルート生成、1,200+スポットDB、安全機能)各セクションにアニメーション付きスクリーンショット、(3) 「使い方」3ステップ(出発地
T8-8.7
プロダクトマネージャー
Turn 11/15
M4+
PRD: マネタイズ機能の要件定義書
フリーミアムモデルの詳細PRDをdocs/prd/monetization.mdに作成する。機能分割表: Free版(ルート生成月3回、基本スポット閲覧、走行記録、緊急SMS) vs Pro版(ルート生成無制限、天気連動最適化、リアルタイム道路状況、ルート共有、高度パーソナライゼーション、広告非表示)。価格設定根拠: 競合分析(Calimoto ¥1,100/月、ツーリングサポーター ¥400/月
カスタマーサポート
Turn 11/11
M5+
コミュニティモデレーション設計
ルート共有・コメント機能のモデレーションポリシーをdocs/support/moderation-policy.mdに策定する。禁止コンテンツ定義: (1) スピード違反自慢(「200km/hで走った」等の速度記述)、(2) 危険運転(すり抜け推奨、信号無視ルート等)、(3) 差別的表現(人種、性別、国籍)、(4) スパム/広告(商品宣伝、アフィリエイトリンク)、(5) 個人情報(他者のナンバープ
p5-3
Block 12
⏱ 5時間(55h〜60h)
▼
✔ T2: データパイプライン
Android開発
Turn 12/18
M6
AdMob広告統合
Free版ユーザー向けにGoogle AdMob SDKを統合する。build.gradle.ktsにcom.google.android.gms:play-services-adsを追加し、AdMobアプリIDをAndroidManifest.xmlに設定する。(1) バナー広告: ui/components/BannerAdView.kt(AndroidView + AdView compos
テックリード
Turn 12/14
M5
類似ライダークラスタリング設計
バイク種別(スポーツ/アドベンチャー/クルーザー/スクーター)×走行スタイル(ワインディング好き/ロングツーリング/短距離周遊)×地域(関東/関西/東海等)でユーザーをクラスタ化するデータモデルを設計する。Firestoreのuser_clustersコレクション(user_id, cluster_id, bike_type, riding_style, primary_region, affin
p9-5
バックエンド開発
Turn 12/22
M1
Google Trends連携
pytrendsライブラリを使用してツーリング関連キーワードのトレンドスコアを週次取得するCloud Functionを作成する。functions/services/trends_service.pyにTrendsClient(pytrends)のラッパーを実装する。キーワードリスト: 「ツーリング 紅葉」「バイク 海沿い」「ツーリング 温泉」「バイク キャンプ」「ツーリング 絶景」等を季節ごと
T2-2.6
p9-3
データエンジニア
Turn 12/22
M2
パイプライン統合ダッシュボード
YouTube/X/Trends/走行ログの各パイプラインの実行状況を一覧表示するダッシュボードHTMLを作成する。docs-portal/kakeru/pipeline-dashboard.htmlとして構築する。Firebase JS SDK(v9 modular)でFirestoreのpipeline_logsコレクション(pipeline_name, status, records_pro
T2-2.10
インフラ/DevOps
Turn 12/15
M4+
Firestoreインデックス最適化
頻出クエリパターンを分析し、必要な複合インデックスを定義する。Firebase Consoleのクエリインサイト(firestore/usage)で過去30日間の頻出クエリを調査する。firestore.indexes.jsonに以下の複合インデックスを定義: (1) touring_spots: {category ASC, quality_tier DESC} + {region ASC, c
iOS開発
Turn 12/31
M2
異常停止検知アルゴリズム実装
CLLocationManagerで走行中のGPS更新を監視し、5分以上速度0かつ位置変化なし(半径50m以内)で「異常停止」と判定するアルゴリズムを実装する。判定時にUIAlertControllerでアラートを表示し、30秒以内に「大丈夫」ボタンが押されなければ緊急連絡先へのSMS送信をトリガーする。誤検知防止のため、エンジン停止パターン(コンビニ停車等)を除外するロジックも含めること。
T5-5.1
p8-1
QA/テスト
Turn 12/14
M5
CI/CDへのテスト統合
GitHub Actions(.github/workflows/test.yml)にスナップショットテスト、UIテスト、ユニットテストを統合する。PR作成時にxcodebuild testを自動実行し、テスト失敗時はマージブロック(required status check)にする。テスト結果レポートをGitHub Actions Artifactsにアップロードし、Slack #touring
UI/UXデザイン
Turn 12/16
M4
緊急連絡先UIのデザイン
設定画面内の緊急連絡先登録フォームのデザインを作成する。安全機能であることを強調する視覚的要素(赤い緊急アイコンSF Symbol: exclamationmark.triangle.fill、注意喚起テキスト「ツーリング中の安全を守ります」)を含む。連絡先3件分の入力フォーム(名前+電話番号+関係)を見やすくレイアウトし、テストSMS送信ボタンを目立つ位置に配置すること。
T5-5.3
コンテンツ
Turn 12/14
M5-M6
アプリ内Tips・ヘルプコンテンツ
アプリ内に表示するTipsコンテンツ10記事をFirestoreのapp_tipsコレクションに登録する。記事一覧: (1) KAKERUの使い方ガイド(ルート生成→走行→振り返りの基本フロー)、(2) AIルート生成のコツ(カテゴリ選択で結果が変わる、距離と時間の目安)、(3) 走行記録の活用法(走行後のルート振り返り、距離バッジの獲得条件)、(4) 安全機能の設定方法(緊急連絡先登録、異常停止
マーケティング
Turn 12/13
M5+
SEOコンテンツ戦略
検索流入を増やすSEOコンテンツ戦略をdocs/marketing/seo-strategy.mdに策定する。ターゲットキーワード(検索ボリュームと競合度を調査): 「ツーリング おすすめ ルート」「バイク 日帰り 関東」「ツーリングスポット 関西」「道の駅 バイク」「バイク ナビ アプリ」「ツーリング 計画 アプリ」。コンテンツ計画: 各ターゲットキーワードに対応する記事(docs-portal
T8-8.8
プロダクトマネージャー
Turn 12/15
M4+
競合分析レポート
主要競合アプリを徹底分析しKAKERUの差別化ポイントを文書化する。docs/competitive-analysis.mdに作成する。分析対象: (1) Calimoto(ドイツ、世界最大級バイクナビ、月¥1,100)、(2) Rever(US、ルート共有コミュニティ)、(3) ツーリングサポーター(日本、ナビタイム提供、月¥400)、(4) Google Maps(無料、二輪モードあり)、(5
Block 13
⏱ 5時間(60h〜65h)
▼
✔ T8: グロース & マーケティング
Android開発
Turn 13/18
M7
プロフィール・バッジ・実績システム
ユーザープロフィール画面、走行距離バッジ、都道府県制覇マップをCompose実装する。ui/profile/ProfileScreen.ktに以下を配置: (1) ヘッダー(アバター、ユーザー名、バイク種別、累計走行距離)、(2) バッジグリッド(LazyVerticalGrid: 100km達成/500km達成/1000km達成/10都道府県/全47都道府県)、(3) 都道府県制覇マップ(Can
テックリード
Turn 13/14
M4
Android対応アーキテクチャ設計
iOS版と共通のバックエンド(Cloud Functions)を活用しつつ、Android固有のアーキテクチャを設計する。android/ディレクトリにKotlin/Jetpack Composeプロジェクトの構成を定義: app/src/main/java/com/toki/kakeru/{ui/, data/, domain/, di/, service/}のパッケージ構造、Hilt(DI)に
バックエンド開発
Turn 13/22
M2
トレンド検知ロジック実装
YouTube/X/Google Trendsの3ソースを統合してスポットの「今のホット度」を算出するロジックを実装する。functions/services/trend_detection_service.pyにdetect_trending_spots() -> list[TrendingSpot]を実装する。Z-scoreベースの異常検知: 各スポットの過去4週間のmention数平均
T2-2.7
データエンジニア
Turn 13/22
M2-M3
AIキュレーション品質3段階評価
Claude APIでスポットの品質を自動評価し3段階に分類するバッチ処理を構築する。functions/services/quality_evaluation_service.pyにQualityEvaluator()を実装する。評価入力: mentionCount(YouTube+X出現回数)、sentimentScore(Claude APIで算出した感情スコア0-1)、userRating
T3-3.3
p4-2
インフラ/DevOps
Turn 13/15
M4+
Cloud Functions冷却起動対策
高頻度Cloud Functions(generate_route等)のコールドスタートを回避するパフォーマンス最適化を実施する。firebase.jsonのfunctions設定で以下を調整: (1) generate_route: minInstances=1(常時1インスタンス稼働でコールドスタート回避)、memory='512MiB'、cpu=1、timeoutSeconds=60。(2)
iOS開発
Turn 13/31
M2
緊急SMS送信機能
MFMessageComposeViewControllerまたはURL Scheme(sms:)で緊急連絡先にSMS送信する機能を実装する。メッセージ本文に「KAKERUの異常停止検知: [ユーザー名]が[時刻]に停止しています。位置: https://maps.google.com/?q=[lat],[lng]」を含める。送信失敗時は3回リトライし、全失敗の場合はFirestoreのemerg
T5-5.2
p8-1
QA/テスト
Turn 13/14
M6
Android版テスト基盤構築
Android版のCompose UIテスト基盤をandroid/app/src/androidTest/に構築する。Compose Testing API(createComposeRule、onNodeWithText、performClick)で主要画面(HomeScreen、ExploreScreen、RouteGenerationScreen、ProfileScreen)のUIテストを作
UI/UXデザイン
Turn 13/16
M4
プロフィール画面デザイン
ライダーアイデンティティを表現するプロフィール画面をデザインする。ヘッダー: バイク写真+ユーザー名+バイク歴。統計セクション: 走行距離/走行回数/訪問スポット数を3カラムカードで表示。都道府県マップ: 制覇率の小さなプレビュー。バッジコレクション: 最新獲得バッジ4個をグリッド表示。v0.devでデザインを生成し、SwiftUIコンポーネント仕様をdocs/design/profile-spe
T6-6.1
p5-2
コンテンツ
Turn 13/14
M8+
台湾版コンテンツ作成
台湾のツーリングルート10選を繁体字中国語でdocs-portal/kakeru/magazine/guide-taiwan.htmlに作成する。ルート一覧: (1) 北海岸(金山→基隆→九份、海岸線の絶景)、(2) 陽明山(台北→陽明山→竹子湖、温泉+花のカルデラ)、(3) 蘇花公路(蘇澳→花蓮、断崖絶壁の海岸道路、台湾最美公路)、(4) 太魯閣(花蓮→太魯閣峡谷、大理石の渓谷)、(5) 阿里山
マーケティング
Turn 13/13
M10+
東京モーターサイクルショー出展準備
東京モーターサイクルショー(毎年3月、東京ビッグサイト)でのKAKERU展示計画をdocs/marketing/motorcycle-show.mdに策定する。ブースデザイン(1小間3m×3m想定): KAKERUロゴ大型バナー、デモ端末3台(iPhone×2、Android×1)、24インチモニター(ルート生成デモ動画ループ再生)、テーブル(リーフレット・ステッカー配布)。デモ端末準備: 来場者
T8-8.9
プロダクトマネージャー
Turn 13/15
M4+
Google Play Store公開準備
Google Play Consoleでのアプリ登録に必要な全情報をdocs/google-play-submission.mdに準備する。ストア掲載情報: タイトル'KAKERU - AIツーリングナビ'(50文字以内)、短い説明'AIがあなただけの最高のツーリングルートを提案'(80文字以内)、詳細説明(4000文字以内)をApp Storeと同等の内容で日本語作成。コンテンツレーティング:
Block 14
⏱ 5時間(65h〜70h)
▼
Android開発
Turn 14/18
M7
ルート共有・コミュニティ機能
ルート共有(DeepLink生成+受信)、「この道を走った人」リスト、ルートいいね機能をCompose実装する。ui/community/SharedRouteScreen.ktに共有ルート閲覧画面を実装: (1) ルートマップ表示、(2) 投稿者プロフィール、(3) いいね数とボタン(Firestoreのroute_likes/{route_id}/users/{uid}で管理)、(4) 「この
テックリード
Turn 14/14
M2
セキュリティアーキテクチャレビュー
KAKERUプロジェクト全体のセキュリティを包括的にレビュー・設計する。(1) Firebase Security Rules(firestore.rules): ユーザーデータの読み書き権限、管理者権限、コレクション間のアクセス制御を監査し、不足ルールを追加する。(2) APIキー管理: CLAUDE_API_KEY, GOOGLE_MAPS_API_KEY等がSecret Managerで適切
バックエンド開発
Turn 14/22
M2
social_trendsコレクション設計・構築
YouTube mention数、X投稿数、Google Trendsスコア、ユーザー走行ログの4ソースを統合するsocial_trendsコレクションをFirestoreに構築する。スキーマ: spot_id, period(YYYY-WW週次), youtube_mentions(int), twitter_mentions(int), trends_score(0-100), ride_co
T2-2.8
データエンジニア
Turn 14/22
M2-M3
二輪通行規制DB構築
各都道府県の二輪通行規制区間データを収集し、FirestoreのGeoJSON形式で格納する。scripts/build_motorcycle_restrictions.pyを作成する。データソース: 各都道府県公安委員会の告示PDF、国土交通省の道路規制情報、バイク系WikiのまとめページをWebスクレイピングで収集する。まず東京都・神奈川県・静岡県・長野県・北海道の5道県から開始する。Fire
T3-3.5
p3-2
インフラ/DevOps
Turn 14/15
M4+
本番環境 vs ステージング環境分離
Firebase projectを本番とステージングに分離し、安全なデプロイフローを構築する。Firebase Consoleで新プロジェクト'touring-app-koh-staging'を作成する。.firebasercに環境設定を追加: {"projects": {"default": "touring-app-koh", &qu
iOS開発
Turn 14/31
M2
緊急連絡先設定UI
設定画面に緊急連絡先の登録フォームを追加する。名前(TextField)、電話番号(TextField, .keyboardType(.phonePad))、関係(Picker: 家族/友人/その他)を3件まで登録可能にする。連絡先はFirestoreのusers/{uid}/emergencyContactsサブコレクションに保存する。テストSMS送信ボタンも配置し、登録した連絡先に正しく送信で
T5-5.3
QA/テスト
Turn 14/14
M3
App Store申請前の最終テスト
リリース前の包括的テストチェックリストを実行する。全画面スナップショット(Light/Dark両モード)、全ユーザーフロー(ルート生成→走行→サマリー→共有)の正常完了確認、Instrumentsでメモリリーク確認(Leaksテンプレートでリーク0件)、Crashlytics/Firebase Analyticsでクラッシュフリー率99.9%確認、IPv6ネットワーク環境での動作確認を実施する。結
T12-12.5
UI/UXデザイン
Turn 14/16
M4
フリーミアム・課金画面デザイン
Paywall画面のデザインを作成する。Free vs Pro機能比較表(チェックマーク/ロックアイコンで機能差を視覚化)、価格表示(月額¥580/年額¥4,800 + 17%OFFバッジ)、7日間無料トライアルバナー(目立つCyan背景)を含む。Free→Pro変換率を最大化するため、Pro限定機能のスクリーンショットプレビューと「始める」CTAボタンを大きく配置するデザインにすること。
T7-7.1
コンテンツ
Turn 14/14
M8+
英語版コンテンツ作成
外国人ライダー向けの日本ツーリングガイドを英語でdocs-portal/kakeru/magazine/guide-japan-en.htmlに作成する。内容: (1) Getting Started: ビザ要件(短期滞在90日)、国際運転免許証(ジュネーブ条約加盟国)、日本の交通ルール(左側通行、制限速度、二輪通行規制)。(2) Renting a Motorcycle: レンタルバイク大手(レ
プロダクトマネージャー
Turn 14/15
M9+
台湾版プライバシー・規制対応
台湾の個人資料保護法(PDPA)に準拠したプライバシーポリシー繁体字中国語版をdocs-portal/kakeru/privacy-tw.htmlに策定する。台湾PDPAの要件: (1) 個人資料の蒐集(収集目的の明示)、(2) 利用(目的外利用の禁止)、(3) 国際伝輸(台湾外へのデータ移転の条件: Firestoreのasia-northeast1リージョンが日本に所在する旨を明記)、(4)
T12-12.7
Block 15
⏱ 5時間(70h〜75h)
▼
Android開発
Turn 15/18
M8
Google Playストア公開準備
Google Play Consoleでアプリ登録とストア掲載を準備する。内部テスト→クローズドベータ→オープンベータの段階的リリース計画を実行する。(1) アプリ署名: upload keystore生成(keytool -genkey)、Play App Signingの有効化。(2) ストア掲載: アプリ名「KAKERU - AIツーリング」、短い説明(80文字)、詳細説明(4000文字)、
バックエンド開発
Turn 15/22
M2
走行ログ集約パイプライン
ユーザーのGPS走行ログをFirestoreのride_logsコレクションから集約し、道路セグメントごとの通過回数・速度プロファイル・停止パターンを計算するバッチ処理を実装する。functions/services/ride_aggregation_service.pyにaggregate_ride_logs(period='weekly')メソッドを実装する。処理内容: (1) ride_lo
T2-2.9
p9-1
データエンジニア
Turn 15/22
M3+
クラウドソーシング道路品質DB
ユーザーGPSログから速度プロファイルを分析し、路面状態を推定するアルゴリズムを構築する。functions/services/road_quality_estimator.pyにRoadQualityEstimator()を実装する。推定ロジック: (1) ride_logsからGeoHash6桁セグメントごとに全ユーザーの速度プロファイルを集約、(2) 速度の急変パターンを検出(加速度>
T3-3.6
p3-3
インフラ/DevOps
Turn 15/15
M4+
Android CI/CD構築
GitHub ActionsにAndroid用のCI/CDワークフローを追加する。.github/workflows/build-android.ymlを作成: trigger=pull_request(paths:android/**), jobs: (1) actions/checkout@v4、(2) actions/setup-java@v4(distribution:'temurin',
iOS開発
Turn 15/31
M3
課金ステータス管理
StoreKit 2のTransaction.currentEntitlementsを監視し、課金ステータスをリアルタイムで管理する仕組みを実装する。App起動時にentitlement確認を行い、期限切れ検出時にFreeプランへ自動ダウングレードする。SubscriptionStatusViewModelで@Publishedプロパティとして状態管理し、全画面からPro/Free判定を参照可能に
T7-7.3
UI/UXデザイン
Turn 15/16
M4
App Storeスクリーンショットデザイン
App Store掲載用スクリーンショット5枚のデザインを作成する。iPhone 15 Pro Max(1290×2796px)とiPhone SE(750×1334px)の2サイズ対応。各スクリーンショットに日本語テキストオーバーレイでKAKERUの価値訴求を含める: (1)AIルート生成、(2)走行中ナビ、(3)走行サマリー、(4)スポット探索、(5)安全機能。フレーム+コピー文+画面合成のテ
プロダクトマネージャー
Turn 15/15
M9+
KPI目標設定・トラッキング計画
Phase別のKPI目標と月次レビューのフレームワークをdocs/kpi-tracking-plan.mdに策定する。Phase 1 (M3リリース): DAU 100、MAU 500、ルート生成数 300/月、走行完了率 40%、クラッシュフリー率 99.5%。Phase 2 (M6): DAU 500、MAU 2,000、MRR ¥50,000(Pro 100名)、Pro転換率 5%、NPS
Block 16
⏱ 5時間(75h〜80h)
▼
Android開発
Turn 16/18
M8
UI多言語化(繁体字中国語)
strings.xmlの多言語対応を実装する。app/src/main/res/values/strings.xml(日本語デフォルト)の全文字列リソースを確認し、app/src/main/res/values-zh-rTW/strings.xmlに繁体字中国語の翻訳を作成する。対象: ナビゲーションラベル、ボタンテキスト、プレースホルダー、エラーメッセージ、通知テキスト、オンボーディング文言、P
T11-11.3
バックエンド開発
Turn 16/22
M1
AIキュレーション自動化
Claude APIでスポットの品質を自動評価するcurate_spots Cloud Functionを作成する。functions/services/curation_service.pyにcurate_spot(spot_data) -> CurationResultを実装する。評価基準: mentionCount(YouTube/X出現回数) + sentimentScore(言及の
T3-3.3
p4-2
データエンジニア
Turn 16/22
M3+
スポット自動発見(走行停止パターン)
ride_logsの走行中停止パターンを分析して未登録スポット候補を自動発見するパイプラインを構築する。functions/services/spot_discovery_service.pyにSpotDiscoveryPipeline()を実装する。検出ロジック: (1) ride_logsから走行中に10分以上停止した地点をGeoHash7桁精度で集約、(2) 同一GeoHash7に3ユーザー
T3-3.7
iOS開発
Turn 16/31
M3
Pro限定機能のゲーティング
Pro限定機能(天気連動ルート最適化、リアルタイム道路状況、詳細統計、無制限ルート生成)にアクセスしようとしたFreeユーザーにPaywall画面を表示する。各機能のViewに.proGuard()カスタムViewModifierを適用し、SubscriptionStatusViewModelのisPro判定でゲーティングする。Paywall表示時は「この機能はProで使えます」のメッセージと共に
T7-7.4
p6-2
UI/UXデザイン
Turn 16/16
M6
Android版Material Design適応デザイン
iOS版のデザインシステムをMaterial Design 3(Material You)に適応する。コンポーネントのマッピング(SwiftUI Button→Material3 Button、SwiftUI List→Material3 LazyColumn、TabView→NavigationBar)を文書化する。Android固有のナビゲーション(Bottom Navigation Bar、
Block 17
⏱ 5時間(80h〜85h)
▼
Android開発
Turn 17/18
M9
ライブロケーション共有機能
家族にリアルタイム位置とルート進捗を共有する機能をAndroidに実装する。Foreground Service(TrackingService)でGPS座標をFirestoreのlive_locations/{share_id}ドキュメントに10秒間隔でリアルタイム書き込みする。share_idはUUID v4で生成し、共有URL(https://kakeru.app/live/{share_i
バックエンド開発
Turn 17/22
M3
スポット検索API実装
キーワード・カテゴリ・位置情報(緯度経度+半径km)・季節フィルタでスポットを検索するsearch_spots Cloud Functionを作成する。functions/main.pyにsearch_spots関数を追加し、functions/services/spot_search_service.pyにロジックを分離する。検索パラメータ: keyword(string), categorie
T3-3.8
データエンジニア
Turn 17/22
M3+
スポット検索データ最適化
Firestoreのtouring_spotsに対する検索性能を最適化する。scripts/optimize_spot_search.pyを作成して以下を実行する。(1) GeoHash複合インデックス: firestore.indexes.jsonにgeohash6+category、geohash6+quality_tier、geohash6+best_seasonの複合インデックスを追加して
T3-3.8
iOS開発
Turn 17/31
M3
AdMobバナー広告導入
Free版のExploreView下部とルート一覧画面にAdMobバナー広告を表示する。Google-Mobile-Ads-SDKをSPMで導入し、GADBannerViewをUIViewRepresentableでラップしたBannerAdViewコンポーネントを作成する。Pro版ユーザーには非表示にし、SubscriptionStatusViewModelのisProで切り替える。広告のロード
T7-7.5
Block 18
⏱ 5時間(85h〜90h)
▼
🏁 Phase 3: グローバル展開
Android開発
Turn 18/18
M10
Wear OS連携(転倒検知)
Wear OS(Apple Watch相当)との連携を実装する。wear/モジュールを追加し、com.google.android.wearable:wearable SDKをbuild.gradle.ktsに設定する。Wear OS側: (1) WearMainActivity.ktに走行中画面(次のスポット方向+距離のみ表示)、(2) SensorService.ktで加速度センサー(Sens
バックエンド開発
Turn 18/22
M3
パーソナルスコア計算API
客観スコア(品質評価)とユーザーaffinity(カテゴリ好み)を掛け合わせたパーソナルスコアを算出するget_personalized_spots Cloud Functionを作成する。計算式: personal_score = objective_score(0-1) * 0.6 + affinity_match(0-1) * 0.4。objective_scoreはquality_tier
p4-3
データエンジニア
Turn 18/22
M3+
パーソナルスコアデータモデル構築
客観スコア×ユーザーaffinity=パーソナルスコアを算出するロジックをPythonで実装する。functions/services/personal_score_service.pyにPersonalScoreCalculator()を実装する。計算式: personal_score = objective_score × 0.6 + affinity_match × 0.4。objectiv
p4-3
iOS開発
Turn 18/31
M3
UIテスト自動化・スナップショット基盤
swift-snapshot-testingを使用して全主要画面(HomeView、ExploreView、RouteGenerationView、RidingView、RideSummaryView、ProfileView、SettingsView)のスナップショットテストを構築する。iPhone 15 Pro/SE/iPad miniの3デバイスサイズでassertSnapshot(of:as
T4-4.9
Block 19
⏱ 5時間(90h〜95h)
▼
✔ T3: スポットDB & 地理空間
バックエンド開発
Turn 19/22
M2
スポットストーリー自動生成
Claude APIで全スポットに30文字キャッチコピーと100文字紹介文を自動生成するgenerate_spot_stories Cloud Functionを作成する。functions/prompts/spot_story.j2にプロンプトテンプレートを作成: 「以下のスポット情報を元に、バイクライダー向けの魅力的なキャッチコピー(30文字以内)と紹介文(100文字以内)を生成してください。
p4-5
データエンジニア
Turn 19/22
M6+
スポットDB国際化対応スキーマ
touring_spotsのスキーマを多言語対応に拡張するマイグレーションスクリプトを作成する。scripts/migrate_spots_i18n.pyで既存ドキュメントに多言語フィールドを追加する。新フィールド: name_ja(既存nameの値をコピー), name_zh_tw(繁体字中国語, 初期値null), name_en(英語, 初期値null), name_th(タイ語, 初期値n
T3-3.9
iOS開発
Turn 19/31
M3
ユーザープロフィール拡張
プロフィール画面にライダーアイデンティティ要素を追加する。バイク車種・排気量(TextField)、ツーリングスタイル(SegmentedPicker: ソロ/グループ/両方)、走行距離バッジ(累計距離に応じた自動付与)、バイク歴年数(Stepper)を表示する。Firestoreのusers/{uid}ドキュメントにbikeModel, engineCC, ridingStyle, bikeYe
T6-6.1
p5-2
Block 20
⏱ 5時間(95h〜100h)
▼
✔ 地理空間 & ルーティングアルゴリズム(Hilz / Pham / 古橋)
バックエンド開発
Turn 20/22
M2
時間×天候×光の最適化API
OpenWeather APIとPython astralライブラリを使用して、ルート生成時に天候・日没・太陽方角を考慮したルート最適化ロジックを実装する。functions/services/weather_optimization_service.pyにget_weather_context(lat, lng, datetime) -> WeatherContextを実装する。Weath
p1-3
データエンジニア
Turn 20/22
M6+
災害時通行可否マップデータ基盤
大規模災害後にライダーの走行ログを緊急集約してリアルタイム通行可否情報を生成する緊急パイプラインを設計・実装する。functions/services/disaster_pipeline_service.pyにDisasterPipeline()を実装する。disaster_modeフラグ: Firestoreのsystem_configコレクションにdisaster_mode(bool)フィール
p3-5
iOS開発
Turn 20/31
M3
ルート共有機能
走行済みルートをFirebase Dynamic Links(またはUniversal Links)で共有する機能を実装する。SharedRouteServiceで共有URL(kakeru.app/route/{routeId})を生成し、ShareLinkで送信する。受信側はonOpenURLハンドラーでDeepLinkを処理し、ルート詳細画面を開く。「同じルートを走る」ボタンでルート生成画面に
T6-6.2
p5-1
Block 21
⏱ 5時間(100h〜105h)
▼
バックエンド開発
Turn 21/22
M2
二輪通行規制チェックAPI
各都道府県の二輪通行規制区間データ(GeoJSON)をFirestoreに格納し、ルート生成時にウェイポイントが規制区間を通過していないかチェックするvalidate_route Cloud Functionを作成する。functions/data/motorcycle_restrictions/にGeoJSONファイル(まず東京都/神奈川県/静岡県の3都県から開始)を配置する。motorcycl
T3-3.5
p3-2
データエンジニア
Turn 21/22
M7+
台湾MotoVlogチャンネルリサーチ
台湾のMotoVlog YouTubeチャンネルを50個調査・選定し、Firestoreに登録する。YouTube Data API v3のsearch.list(type=channel, q='機車旅行 台灣', relevanceLanguage='zh-Hant')で候補を検索する。選定基準: 登録者5,000以上(台湾市場規模考慮で日本より低め)、月1回以上投稿、台湾のツーリングスポット
T11-11.1
iOS開発
Turn 21/31
M3
「この道を走った人」リスト
ルート詳細画面に「この道を走った人」セクションを追加する。Firestoreのride_logsコレクションから同一ルート(主要ウェイポイント3点以上が半径500m以内で一致)の走行ユーザーを検索し、アバター画像+バイク種別+走行日をHorizontalScrollViewで表示する。タップで該当ユーザーの走行サマリー(距離、時間、評価)を確認可能にすること。
T6-6.3
p5-1
Block 22
⏱ 5時間(105h〜110h)
▼
🏁 Phase 1: iOS v2.0リリース✔ グロース & マネタイズ(von Ahn / Ek / 田中)
バックエンド開発
Turn 22/22
M6
Google Play課金検証API
Android版のGoogle Play Billing Library v6からのpurchase tokenを検証するverify_android_purchase Cloud Functionを作成する。functions/services/play_billing_service.pyにverify_purchase(purchase_token, product_id) -> Pu
データエンジニア
Turn 22/22
M7+
台湾スポットDB構築
台湾版ingest_youtube_spots処理を構築し、台湾のツーリングスポット・道路情報をFirestoreに格納する。functions/services/tw_spot_ingestion_service.pyにTaiwanSpotIngestion()を実装する。YouTube 50チャンネルから台湾のスポットを抽出し、touring_spotsにcountry:'tw'フラグ付きで保
T11-11.2T11-11.4
iOS開発
Turn 22/31
M3
7日間フルトライアル実装
初回ダウンロード後7日間はPro全機能を開放するトライアルを実装する。StoreKit 2のsubscription.introductoryOfferが利用可能ならそれを使い、なければUserDefaults+Firestoreのusers/{uid}/trialStartDateでカスタムトライアル期間を管理する。残り日数をHomeViewのバナーに表示し、期限切れ前日にUNUserNotif
p6-3
Block 23
⏱ 5時間(110h〜115h)
▼
iOS開発
Turn 23/31
M5
リワード広告(ルート追加生成)
Freeユーザーが月3回のルート生成上限に達した際、リワード広告視聴で1回追加生成できる機能を実装する。GADRewardedAdをロードし、視聴完了コールバック内でFirestoreのusageQuotas/{uid}の残り回数を+1する。広告ロード中はProgressViewを表示し、ロード失敗時は「後でもう一度お試しください」メッセージを表示すること。
T7-7.7
Block 24
⏱ 5時間(115h〜120h)
▼
iOS開発
Turn 24/31
M5
走行ログ収集の同意フロー
初回走行開始時に位置情報の利用目的と走行ログ収集について同意画面を表示する。「KAKERUはルート改善のために走行ログを匿名で収集します」の説明テキスト、プライバシーポリシーへのリンク、「同意する」「同意しない」ボタンを配置する。同意しない場合もアプリ利用可能(走行記録機能のみ無効化)。同意状態はUserDefaultsとFirestoreのusers/{uid}/consentStatusに保存
T12-12.4
Block 25
⏱ 5時間(120h〜125h)
▼
iOS開発
Turn 25/31
M7
ライブロケーション共有
走行中に家族にリアルタイム位置を共有する機能を実装する。Firestoreのlive_locations/{sessionId}に現在地(緯度、経度、速度、方角)を10秒間隔でリアルタイム書き込みする。共有URL(kakeru.app/live/{sessionId})を生成してSMS/LINEで家族に送信し、家族がブラウザで閲覧可能にする。走行終了で自動停止し、Firestoreリスナーを解除し
T5-5.4
p8-2
Block 26
⏱ 5時間(125h〜130h)
▼
iOS開発
Turn 26/31
M7
バッジ/実績システム
走行距離(100km/500km/1000km/5000km)、訪問スポット数(10/50/100)、都道府県数(5/15/30/47)などの条件でバッジを付与するシステムを実装する。Firestoreのusers/{uid}/achievementsサブコレクションにバッジデータ(badgeId, earnedAt, category)を管理する。新バッジ獲得時にアプリ内通知バナーを表示し、co
T6-6.4
p5-2
Block 27
⏱ 5時間(130h〜135h)
▼
iOS開発
Turn 27/31
M7
都道府県制覇マップ
47都道府県の走行済み/未走行をマップ上に色分け表示する画面を実装する。GeoJSONの都道府県境界データをMapKitのMKPolygonオーバーレイで描画し、走行済み=Cyan塗り、未走行=グレー、進行中=薄Cyanで色分けする。ride_logsコレクションのGPSデータから各都道府県の「走破」を自動判定(都道府県内で5km以上走行で走破認定)し、制覇率をパーセンテージで表示すること。
T6-6.5
Block 28
⏱ 5時間(135h〜140h)
▼
iOS開発
Turn 28/31
M8
走行ストリーク&年間統計
月1回以上のツーリングでストリーク継続する仕組みを実装する。12ヶ月連続で特別バッジ「Year Rider」を付与する。年間統計画面(総距離、訪問スポット数、都道府県数、走行回数のサマリー)をSwift Chartsフレームワーク(BarMark、LineMark)で可視化する。月別走行距離の棒グラフ、累計距離の折れ線グラフを表示し、前年比較も可能にすること。
T6-6.6
p6-4
Block 29
⏱ 5時間(140h〜145h)
▼
iOS開発
Turn 29/31
M8
UI多言語化(繁体字中国語)
String Catalog(.xcstrings)で全UI文字列を多言語化対応する。繁体字中国語(zh-Hant)のローカリゼーションを作成し、全画面のText/Label/Buttonに適用する。日付はDateFormatter+Locale、距離はMeasurementFormatter+Locale対応にする。LocalizedStringKeyを使い、プレビューで言語切替確認が可能な構成
T11-11.3
Block 30
⏱ 5時間(145h〜150h)
▼
iOS開発
Turn 30/31
M8
Apple Watch連携(転倒検知)
WatchConnectivityフレームワークでiPhoneアプリと通信するwatchOS Extensionを作成する。Apple WatchのCMMotionManagerで加速度センサーデータを取得し、急激な加速度変化(3G以上)+その後の無動状態で転倒を検知する。検知時にWCSessionでiPhoneに通知し、iPhone側で緊急SMSフロー(30秒カウントダウン→SMS送信)を発動さ
T5-5.6
p8-3
Block 31
⏱ 5時間(150h〜155h)
▼
🏁 Phase 2: Android + グロース✔ プロダクトデザイン & ライダーUX(Newey / Chesky / Buckhouse)
iOS開発
Turn 31/31
M8
プロアクティブ通知
UNUserNotificationCenterで前日夜(20:00 JST)に最適ルート提案通知を送信する機能を実装する。翌日の天気予報(Open-Meteo API)×ユーザーの好み(categoryAffinities)×過去走行データからCloud Functionがルート案を生成し、APNs経由でプッシュ通知を送信する。通知タップでルートプレビュー画面に直接遷移するディープリンクを設定す
p2-5
責任者
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
Android開発
M4
M4
M4
M4
M5
M5
M5
M5
M6
M6
M6
M6
M7
M7
M8
M8
M9
M10
テックリード
M1
M1
M1
M2
M2
M2
M2
M2
M1
M1
M4
M5
M4
M2
バックエンド開発
M1
M1
M1
M1
M2
M2
M2
M1
M1
M1
M1
M1
M2
M2
M2
M1
M3
M3
M2
M2
M2
M6
データエンジニア
M1
M1
M1
M1
M1
M1-M2
M1-M2
M1-M2
M2
M2
M2
M2
M2-M3
M2-M3
M3+
M3+
M3+
M3+
M6+
M6+
M7+
M7+
インフラ/DevOps
M1-M2
M1-M2
M1-M2
M1-M2
M2-M3
M2-M3
M2-M3
M2-M3
M4+
M4+
M4+
M4+
M4+
M4+
M4+
iOS開発
M1
M1
M1
M1
M2
M2
M2
M2
M2
M2
M2
M2
M2
M2
M3
M3
M3
M3
M3
M3
M3
M3
M5
M5
M7
M7
M7
M8
M8
M8
M8
QA/テスト
M1
M1
M2
M3
M3
M3
M3
M4
M4
M4
M4
M5
M6
M3
UI/UXデザイン
M1
M1
M1
M1
M2
M2
M2
M2
M3
M3
M3
M4
M4
M4
M4
M6
コンテンツ
M2
M2
M3
M3
M3
M4
M4
M4
M5-M6
M5-M6
M5-M6
M5-M6
M8+
M8+
グロース/分析
M2
M2
M3
M3
M4+
M4+
M4+
M4+
M6+
M6+
M9+
マーケティング
M2
M2
M2
M3
M3
M3-M4
M3-M4
M3-M4
M4+
M4+
M5+
M5+
M10+
プロダクトマネージャー
M1
M1
M1
M2
M2
M2
M3
M3
M3
M3
M4+
M4+
M4+
M9+
M9+
カスタマーサポート
M2
M2
M2
M3+
M3+
M3+
M4+
M4+
M5+
M5+
M5+
🎯 WBSチーム別 達成ブロック
各WBSチームの全項目がタスクとしてカバーされる最終ブロック
| チーム | 施策名 | 項目数 | 達成ブロック |
|---|---|---|---|
| T1 | AIルート生成 | 10 | 一部未カバー |
| T2 | データパイプライン | 10 | Block 12 (60h) |
| T3 | スポットDB & 地理空間 | 9 | Block 19 (95h) |
| T4 | UX/プロダクト | 11 | Block 8 (40h) |
| T5 | セーフティ | 6 | 一部未カバー |
| T6 | コミュニティ | 7 | 一部未カバー |
| T7 | マネタイズ | 7 | 一部未カバー |
| T8 | グロース & マーケティング | 9 | Block 13 (65h) |
| T9 | データ運用(DataOps) | 6 | Block 11 (55h) |
| T10 | カスタマーサクセス | 6 | 一部未カバー |
| T11 | グローバル展開 | 8 | 一部未カバー |
| T12 | 法務 & コンプライアンス | 8 | 一部未カバー |
🏁 フェーズ別 達成ブロック
各フェーズの最後のタスクが実行されるブロック
| フェーズ | 完了ブロック | ||
|---|---|---|---|
| 🏁 | Phase 1: iOS v2.0リリース | - | Block 22 (110h) |
| 🏁 | Phase 2: Android + グロース | - | Block 31 (155h) |
| 🏁 | Phase 3: グローバル展開 | - | Block 18 (90h) |
🧠 エキスパート提言 達成ブロック
各エキスパートパネルの全提言がタスクとしてカバーされる最終ブロック
| Panel | 専門領域(エキスパート) | 提言数 | 達成ブロック |
|---|---|---|---|
| p1 | AIルートインテリジェンスエンジン(Karpathy / Söderström / Murray) | 5 | Block 8 (40h) |
| p2 | プロダクトデザイン & ライダーUX(Newey / Chesky / Buckhouse) | 5 | Block 31 (155h) |
| p3 | 地理空間 & ルーティングアルゴリズム(Hilz / Pham / 古橋) | 6 | Block 20 (100h) |
| p4 | スポットDB & 品質キュレーション(Poullennec / Sarandos / 星野) | 6 | 一部未カバー |
| p5 | コミュニティ & ネットワーク効果(Citron / Gainey / 笠原) | 5 | 一部未カバー |
| p6 | グロース & マネタイズ(von Ahn / Ek / 田中) | 5 | Block 22 (110h) |
| p7 | コンテンツ & ブランドストーリーテリング(Mateschitz / Woodman / Gellert) | 5 | Block 7 (35h) |
| p8 | セーフティ & コネクテッド(Pemble / Williams / Samuelsson) | 4 | 一部未カバー |
| p9 | データサイエンス & パーソナライゼーション(Chew / Mason / Lake) | 5 | Block 11 (55h) |