> For the complete documentation index, see [llms.txt](https://livlog-llc.gitbook.io/engineering-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://livlog-llc.gitbook.io/engineering-handbook/riburoguno/2-products/cotogoto-technology-stack.md).

# CotoGoto 技術構成

CotoGotoは、会話を通じて日々の行動・感情・思考を記録し、作業時間やモチベーションを集計・解析するライフログサービスです。

このページでは、外部公開しても差し支えない範囲で、CotoGotoの技術構成を概要として整理します。詳細な依存関係、設定値、内部接続情報、調査ログは掲載しません。技術スタックを詳細調査する場合は、付録の「技術スタック調査プロンプト」を利用します。

## 位置づけ

CotoGotoは、リブログのライフログ領域の中心となるプロダクトです。

単なるチャットアプリではなく、会話、記録、作業時間、モチベーション、外部サービス連携を組み合わせて、日々の状態を振り返れるようにする基盤です。

## 技術構成の概要

| 項目       | 内容                                                      |
| -------- | ------------------------------------------------------- |
| アプリケーション | Webアプリケーション、会話API、ログイン機能、外部チャネル連携、バッチ処理、モバイルクライアントを含む構成 |
| バックエンド   | Java / Kotlin を中心としたサーバーサイド実装                           |
| Web UI   | サーバーサイドレンダリングとJavaScriptを組み合わせた構成                       |
| データ      | RDB、ドキュメントDB、会話ログ、作業記録、ユーザー状態などを扱う                      |
| 外部連携     | メッセージング、カレンダー、メール、音声、AI、地図・位置情報などとの連携                   |
| 運用       | 複数の実行単位を持つため、機能ごとの責務分離と設定管理が重要                          |

## 構成の特徴

CotoGotoは、単一の画面だけで完結するサービスではありません。

ユーザーとの会話、外部チャネルからの入力、作業記録、通知、分析、バッチ処理など、複数の機能が連携して動作します。そのため、以下を重視します。

* 会話と記録を分けて整理する
* ユーザー状態を継続的に扱えるようにする
* 外部サービス連携を疎結合に保つ
* 秘密情報やAPIキーをコードに含めない
* ログやエラーを運用で追跡できるようにする
* AI連携部分は、出力の確認と制御を前提にする

## 開発・運用上のポイント

CotoGotoでは、機能追加のたびに全体を大きく変えるのではなく、会話機能、記録機能、外部連携、バッチ処理などの責務を分けて改善します。

特にAI連携や会話処理は、試行錯誤が多くなる領域です。新しい処理はまず小さく動かし、人間が振る舞いを確認してから、必要に応じてテストや仕様に固定します。

## 技術スタック調査の扱い

CotoGotoのように複数の実行単位を持つプロダクトでは、技術スタック調査が重要です。

調査時には、以下を確認します。

* 実行単位
* 主要な言語・フレームワーク
* データベースとデータ形式
* 外部サービス連携
* ビルド方法
* テスト方法
* デプロイ方法
* 秘密情報の扱い
* 運用・監視の有無

詳細調査を行う場合は、付録の「技術スタック調査プロンプト」を使用し、公開文書には必要な概要だけを反映します。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://livlog-llc.gitbook.io/engineering-handbook/riburoguno/2-products/cotogoto-technology-stack.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
