タスク百葉箱
- React
- Next.js
- TypeScript
- Python
- Django
「こんなツールがほしい」を、おしゃべりするだけで気軽に相談できる、小規模ツール開発の受付プラットフォーム。
依頼者はAIのヒアリングエージェントと雑談形式で対話しながら要件をまとめ、要件サマリーと見積もりの概算をその場で得られる。確定した要件サマリーは管理者(開発者本人)にメールと管理者画面で届き、以降の面談・契約・開発は管理者がサイトの外で行う。
構成
| ディレクトリ | 内容 |
|---|---|
| backend/ | Django REST Framework のAPI(Google認証 + JWT、Claude によるエージェント、要件サマリーの送信・管理) |
| frontend/ | Next.js(App Router)の画面(LP、ログイン、対話画面、管理者画面) |
| docs/ | バックエンド / フロントエンドの詳細ドキュメント |
| .kiro/ | steering(プロジェクトの前提)/ specs(機能ごとの要件・設計・タスク)/ hooks |
| memo/ | 構想メモとエージェントのプロンプト草案 |
| logs/ | 作業ログ |
バックエンドとフロントエンドは独立しており、HTTP経由でのみ通信する。
動かし方
前提: Python 3.12、Node.js 24。
# バックエンド(http://localhost:8000)
cd backend
python -m venv .venv
.\.venv\Scripts\python -m pip install -r requirements.txt
Copy-Item .env.example .env # 値を設定する
.\.venv\Scripts\python manage.py migrate
.\.venv\Scripts\python manage.py seed_agents
.\.venv\Scripts\python manage.py runserver
# フロントエンド(http://localhost:3000)
cd frontend
npm install
Copy-Item .env.example .env.local # 値を設定する
npm run dev
必要な外部サービスと、その設定先:
| サービス | 用途 | 設定 |
|---|---|---|
| Google(OAuthクライアントID) | ログイン | backend/.env の GOOGLE_OAUTH_CLIENT_ID と frontend/.env.local の NEXT_PUBLIC_GOOGLE_CLIENT_ID(同じ値) |
| Anthropic(APIキー) | エージェントのLLM | backend/.env の ANTHROPIC_API_KEY |
| メール送信 | 要件サマリーの管理者への通知 | backend/.env の EMAIL_* と ADMIN_EMAIL |
これらが未準備でも、backend/.env に ALLOW_DEV_LOGIN=true と LLM_CLIENT_CLASS=agents.demo.DemoLLMClient、frontend/.env.local に NEXT_PUBLIC_ENABLE_DEV_LOGIN=true を設定すると、開発用ログインと決まった応答を返すデモのLLMで画面の動きを確認できる(DEBUG=true のときのみ)。
環境変数の一覧、テスト、管理者の設定(set_admin)などの詳細はリポジトリ内の backend / frontend のドキュメントにまとめている。
テスト
cd backend; .\.venv\Scripts\python manage.py test # 実際のLLMは呼ばない
cd frontend; npm run lint; npm run test; npm run build
開発の進め方
新しい機能は、実装より先に .kiro/specs/<feature-slug>/ に requirements → design → tasks を書く仕様駆動の進め方をとり、Claude Code で作業する際の指針も CLAUDE.md にまとめている。