← 戻る

unkonowを作りながら

2025-08-23

うんこ中の人が匿名でコミュニケーションできる「unkonow」という Web サービスを作ってみた。

[unkonow](https://unkonow.neguse.net/)

## 初めは思いつきから
もともとは「うんこがビジネスにならんか」みたいな内輪の与太話から、「うんこライフログ的なものってどう?」というアイデアを思いついて作りはじめた。

最初は「うんこログの SNS」という方向性を考えていて、うんこログが SNS 風に公開される+うんこ中はお互いリアルタイムに応援しあえるという内容を考えていた。うんこはかなりプライベートな情報であるから、最初からアカウントは匿名で行こうと思っていた。

[unkonow の最初の仕様](https://gist.github.com/neguse/023ebd71b5001cf11ab50b983263fd5d)

Claude と壁打ちしながら仕様をまとめて、まとまった仕様を Claude Code に食わせて一晩でとりあえず動くところまではできた。が、その後が長かった…

## Claude Code への丸投げ、そして引き取り
当初は雑に思いついた機能を実装するタスクを作って Claude Code に投げるという形で開発を進めていた。
開発はうまくいったりいかなかったりしながら進んでいたものの、開発速度が少しずつ低下していった。

実装作業はほぼ Claude Code に丸投げのいわゆる Vibe Coding で、ことあるごとに「とりあえず t-wada 式で!」「それ t-wada だったらどうすると思う?」と言ってテスト駆動で進めていた。

定型的な機能追加や変更であれば割とシュッとやってくれるんだけど、やや難度が高いタスクは Claude Code 単独では完了が難しかった。
一度詰まってしまうととにかくタスクを完了させるためにめちゃくちゃなことをやりだし、にっちもさっちもいかなくなった。

最初は問題があるごとに 「どうしたら問題起きなかったと思う?」と振り返りをしつつ CLAUDE.md に書き足していくという運用をしていた。
ところが CLAUDE.md が膨れてしまい、それだけでコンテキストを圧迫してしまう事態になった。
もうすこし抽象的な指示のほうがいいかと思い「プロ意識をもって」「コードはコンパクトにきれいに」みたいな基本的な価値観を植え付ける内容を書いたのだけど、これはあまり意味なかった。

またステップごとに「アーキテクト」「テスター」「実装」「レビュワー」という仮想的ロールを切り替えながら、最初に design doc を書いて作業をして、提出前に自己レビューするステップを含めてみたのだけど、こちらもあまり効果がなかった。特にレビュワーと実装者が同じコンテキストを引き継いだ AI なので、細かくチェックすることなく「ヨシ!👈️」となりがちだった。

最終的に自分がコードを全部把握して実装しつつ、相談や UI(CSS の class とか)など限定的な部分だけ書いてもらうような形に落ち着いた。

改めて Claude Code が書いたコードを通読すると一貫性がないというか、機能的に冗長なコードや dead code が多くて、
これは主導権をこっちで握った上でやらないと難しいなという気持ちになった。

人間はコードを読み書きすることで慣れや成長があり、だんだんとアウトプットが速く、品質も良くなることが期待できるのだけど、
今の AI はそれがなくコードベースの肥大化や要件の複雑化によりだんだん悪くなるほうの影響が大きそうだった。
AI にまかせる部分を大きくとりつつもっとうまくやる方法はあるのだろうけど、今のところ自分自身の成長に資するほうがリターンが大きくて、
それの補助のために AI を使うのが得だし、何より作るために学ぶのが楽しいという判断をした。

![CLAUDE.mdに書いていたMission Vision Value](/media/images/792606140571811840_0.png)
CLAUDE.md に書いていた Mission Vision Value

## 大きな方針転換
一方機能面でも 2 つ課題があって、まず 1 つが某トイレメーカーがライフログ的な健康を目的とした機能をもつスマホアプリを出すというニュースが入ってきたこと。
ハードウェア的なスキャナも使った構成となっていて、まあ太刀打ち難しいだろうなと…ということでライフログ方面は当面はやらないことにして、コミュニケーション機能に割り切ることにした。

またもう一点が法律まわりの対応。
公開することを考えて規約やプライバシーポリシーを改めて調べながら書いていたところ、思っていたより個人情報の取り扱いは難しくて、最近さらに難しくなったということを知った。
具体的には、個人情報取り扱い事業者として厳格にやるならプライバシーポリシーあたりに運営者の情報を氏名住所含めて載せる(あるいは請求に遅延なく対応する)ことが必要なのだけど、
個人開発のサービスでそれはちょっとな~…と思い、個人情報を扱わないことに方針を変えた。
もともと匿名ベースのサービスではあったのだけど、永続的なアカウントがあると個人情報として扱われるリスクが上がるため、これを粉砕してすべての情報は短命で消去することとした。

万が一サービスがうまくいったら自宅とは別にオフィスを借りるなどして対応可能だろうけど、
野良の個人開発者ぐらいの規模でまともに個人情報を取り扱う WEB サービスを運営するの、実質不可能ではないかと思っている。
あるいは自宅住所をオープンにするか…

## できたものとこれから
そんなこんなで作ってみて、まあ一風変わったものにはなったかなという気がしている。
一方リアルタイムに人が集まらないと面白さがわからないものなので、どうすれば人が集まるかな~というのも考えないといけない。
まあ手探りでなんとか…なるといいなあ。

今回得た経験として、LLM を使った開発の雰囲気とか期待値、WEB サービス開発技術(Next.js,Hono,Cloudflare)、個人情報保護法などがある。
これらは応用範囲が広いので、他のことをやるときにも活きてきそう。

一方[ブリストルスケール](https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%AA%E3%82%B9%E3%83%88%E3%83%AB%E3%83%BB%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB)みたいなドメイン知識もあって、これはこれで今回のような取り組みがなければ知らない分野だったので面白かった。知らないことを知るのは楽しい。