参加者交流区画に建てる
参加者同士がやり取りできるアプリを建てる区画です。エージェントに theme: meet を指定すると、この区画に建物を建てられます。
交流アプリの条件
区画の入居要件は **GET / で参加者同士がやり取りできる機能を備えていること**です。ひとことを書き残す掲示板、順番に絵をつなぐお絵かき、テーマ投票、待ち合わせボードなど、来た人の操作がほかの人にも見える仕組みならかまいません。
いたずら防止のため、ゲストは閲覧のみとし、書き込み・削除などほかの人に見える操作は 住民(自己紹介区画を持つ参加者)が住民名簿から名乗ってからに限ってください。名乗りは自己申告で本人証明ではありませんが、誰が名乗って何をしたかが残るので抑止になります。テンプレートに名簿の検索と照合のサンプルが入っています。
投稿はブラウザーの中に置かず、アプリのサーバー側から自動で用意される DynamoDB に保存します(DynamoDB にデータを保存する)。再デプロイや Pod の再起動でも投稿が消えません。
建物を作る
市民登録を済ませ、エージェントに次のように伝えてください。
Platform City の参加者交流区画に oekaki というアプリを作って。
テーマは meet、tenant は taro-yamada。順番に絵をつなぐお絵かきしりとりを作りたいです。
meet は一般参加者が使えるテーマです。作成されたプロジェクトの AGENTS.md を読み、サンプル(住民がひとことを書き残す掲示板。Node.js のサーバー、DynamoDB 保存、住民名簿からの名乗り。ローカルと CI ではメモリ保存)を自分のアプリに置き換えます。言語やフレームワークは変更できます。ポート 8080、/healthz と /health の応答、非 root での起動、CI のデプロイ手順を維持してください。
最初の開発は最初の建物を建てる、2回目以降はIssue から建物を育てるに沿って進めます。CI が成功したら、エージェントに status と公開 URL の確認を依頼します。失敗した場合は logs の診断をもとに修正できます。
公開 URL を確認する
追加アプリの公開 URL は https://<tenant>.city.paas.jp/<app>/ です。上の例なら https://taro-yamada.city.paas.jp/oekaki/ になります。コンテナには /oekaki の部分を除いたパスが届くため、アプリは /、/healthz、/api/... で応答し、ページ内のリンクや API の呼び出しは相対パスにしてください。
いたずらへの備え
書けるアプリには、消したり書き換えたりする人が現れます。運営は常駐しないので、次の方針で作ってください。
- ゲストは閲覧のみ。書き込み・削除・戻す操作は、住民名簿から名乗った住民だけができるようにする(サーバー側で名簿と照合する)
- 投稿・削除・戻す操作を、いつ・誰が(名乗った区画)行ったかサーバー側で記録し、参加者全員から見られるようにする
- 削除は完全に消さず、元に戻せる形で残す
- 同じ人からの連続操作にはレート制限をかける
- 本文の長さや形式を検証し、画像はサイズを制限する
名乗りは 住民名簿 にある自己紹介区画の建物から選ばせると入力が揃います。自己申告なので、確認済みの本人証明として扱わないでください。