archive-project
Freeprojects/<プロジェクト名>/ 配下のファイルをまとめて ZIP にして、成果物として持ち帰れるようにするスキル。node_modules / .venv / __pycache__ など再生成可能なビルド成果物は自動で除外する。/archive-project で明示起動。
The English summary is being prepared. Showing the original description.
ハンズオンの「課題・解決策の一言」から、時間枠内で作れる実装スコープ(scope.md)を対話形式で固めていくスキル。projects/<name>/ に input.md → idea.md → scope.md を順に書き出す。/scope-design で明示起動。
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
ハンズオン参加者が、限られた時間枠で何をどこまで作るかを決められるように、1問ずつの対話で scope.md に辿り着くまでをガイドする。
scope.md を完成させる起動時に .claude/skills/workshop-premises.md(標準構成)を読み、時間枠・技術・成果物・有料 API の扱いはそれに従う。このファイル内には固定値を置かない。前提ファイルが見つからない場合は、標準構成(1日完結・Next.js・デプロイなし・成果物は動くアプリ + LP)を前提にして進める。あわせて .claude/skills/conversation-principles.md(対話の共通原則)も読み、聞き方・書き方・ファイルの扱いはそれに従う。
projects/<プロジェクト名>/ 直下に書き出すprojects/<プロジェクト名>/apps/ 配下に作る。設計ドキュメントと混ざらないようにディレクトリで分離する。複数の実装を試したい場合は apps/<アプリ名>/ のようにサブディレクトリで分けてよいprojects/<名前>/ の配下に書き出していきます」と伝え、プロジェクト名を聞くprojects/<名前>/ が存在しなければ作るprojects/<名前>/progress.log に start 行を追記する(共通原則 14)。以降、各 Phase でファイルを書き出すたびに write 行を追記するinput.md があれば内容を読み上げて「この内容で進めるか、書き直すか」を確認。## 時間枠 が無い古い形式なら質問3だけ追加で聞いて追記するidea.md / scope.md も同様共通原則(1問ずつ・先回りしない・逐次書き出し・差分更新・既存ファイルの確認)は conversation-principles.md に従う。このスキル固有の原則:
input.md、Phase 2 → idea.md、Phase 4 → scope.md。フェーズの完了時に必ず書き出してから次に進むscope.md は完成後も何度でも調整する前提。「実装に進みたい」と言われるまで対話で詰め、実装は /build-app に引き継ぐinput.md に記録し、以降の見積もりはすべてその値を基準にする。標準値は workshop-premises.md にあり、このファイル内には固定の時間を置かない限られた時間で動くものを作り切ることを優先し、プロダクトへの有料 API・サービスの組み込みは避ける ことを前提にする。参加者のプロダクトのコード内で、クレカ登録や課金が必要な外部サービスを呼び出す実装は提案しない。
Claude Code(開発ツール) は全員が使う前提で、制約対象ではない。制約対象は「参加者のプロダクトのコード内から有料APIを呼び出す実装」のみ。
workshop-premises.md の標準構成では、成果物は Next.js(App Router / TypeScript)の Web アプリ とする。理由:
apps/lp/)と同じ Node.js 環境で完結し、成果物が「動くアプリ + LP」で揃う「解きたい課題を一言で教えてください」
「その課題に対する解決策を一言で教えてください」
workshop-premises.md の「形式」の行を読み、標準構成なら 確認だけ する:
「標準構成は1日完結型です(設計から発表まで今日中に完走します)。この前提で進めてよいですか? 半日など時間枠が違う場合は、だいたいの時間を教えてください」
projects/<name>/input.md に以下のフォーマットで書き出す:
# インプット
## 課題
<質問1の回答>
## 解決策
<質問2の回答>
## 時間枠
<質問3の回答(例: 1日完結 / 半日 / 2コマ(約180分))>
書き出したら Phase 2 に進む旨を伝える。
入力をもとに、2〜4個の実装アプローチ案 を考える。
input.md の時間枠で作れるかを各案の評価軸に入れるprojects/<name>/idea.md に書き出す。フォーマット例:
# 実装アプローチ案
入力: `input.md`
## 案A: <一言で>
- **何をするか**: ...
- **できる**: ...
- **できない**: ...
- **難易度**: ...
- **学びどころ**: ...
## 案B: <一言で>
...
## 案C: <一言で>
...
書き出した idea.md の要点を会話でも簡潔に提示しつつ聞く:
「どの案で進めますか? 混ぜてもOKです」
回答を待って Phase 3 に進む。
採用案が決まったら、以下を 1問ずつ 聞いて詰めていく。各回答はメモしておき、Phase 4 で scope.md に反映する。
「MVP として『これだけは絶対作る』機能を3つ挙げるとしたら?」
「時間が余ったらやりたいストレッチ機能はありますか?」
「今回はあえてやらないこと(スコープ外)を宣言しておきますか?」
「使う技術に希望はありますか? 任せてもOKです」
Claude Code 前提なので、線形分解ではなく「一気に生成 → 対話でチューニング」のサイクルで組む。
「ここまでの内容で、『Claude Code に scope.md を渡して初期一括生成 → 動かしながら対話で詰める』というサイクルで <input.md の時間枠> に収まりそうか、一緒に見てみましょう」
目安(時間枠を 前半・後半 に二分して組む。休憩やコマの区切りがあればそこで分ける)。配分はあくまで目安 で、守るのは時間枠内に完走することだけ:
時間枠ごとの読み替え例:
| 時間枠 | 前半 | 後半 | 調整の方向 |
|---|---|---|---|
| 90分 | 生成 10分 + 確認 10分 + チューニング 25分 | 仕上げ 15分 + ストレッチ 1本 | MVP を 1〜2 機能に絞る |
| 1日完結(標準構成。実装パートの目安 約180分) | 生成 15分 + 確認 15分 + チューニング 60分(3〜4サイクル) | 仕上げ 30分 + ストレッチ 60分 | 標準。MVP 3 機能が目安。検証・LP は実装パートの外側に時間がある |
| 実装だけで半日〜1日 | 同上 | ストレッチを厚く積む | MVP を増やすより、検証・LP などの後工程に時間を回す |
MVP が多すぎて対話サイクルが回らなさそうなら MVP を削る方向に誘導する。
Phase 3 の回答をもとに、以下の 9セクション構成 で projects/<name>/scope.md を書き出す。
projects/<name>/ 直下、アプリ本体は projects/<name>/apps/ 配下に置く前提で書くinput.md の時間枠を前半・後半に分け、何をやるか時間配分付きで(コマや休憩の区切りがあればそれに合わせる)書き出したら、ユーザーに以下を伝える:
「
projects/<name>/scope.mdに書き出しました。確認して、気になる箇所があれば『ここを変えたい』と教えてください。scope.md は何度でも調整できます。実装に進むときは/build-appを呼んでください。アプリ本体はprojects/<name>/apps/配下に作るので、設計ドキュメントとは混ざりません。あわせて レビュー用のページ(HTML)を作りますか? 内容に読むときの観点を添えて、ブラウザで読める形にします。ペアフィードバックで相手に見せるのにも使えます」
肯定なら review-page.md に従って projects/<name>/review/scope.html を作る(共通原則 15)。
ユーザーが調整を要求したら:
Edit で差分更新する(ファイル全体の書き直しは避ける)review/scope.html があれば、聞かずに作り直す以下は実際に同じプロセスで作られた2つのサンプルプロジェクトの scope.md。生成時はこの粒度を目指す。どちらも実装時間 180分(90分 × 2コマ)で作られた記録 で、実装パートの長さは標準構成と同じ。サンプル2(CLI)は標準構成の技術(Next.js)から外れる別形態の参考例なので、着地の粒度と実装計画の組み方だけを参考にする。時間枠が異なる場合は「8. 実装計画」の区切りと配分を読み替える。
入力の解決策: 「国土交通省のデータを活用して、最寄り駅から大学キャンパスに行くバスがおおよそどれくらいの時間を要するかチャットで質問できるWebアプリを作る」
scope.md で着地したアプローチ: 「CSVから事前計算したJSONを静的サイトが読み込む構成。チャット UI は採用せず、タイムピッカー + グラフ + 表の構造化UIに転換」
# スコープ設計書: 通学バス所要時間ダッシュボード
## 1. 概要
| 項目 | 内容 |
|---|---|
| 課題 | 大学への通学時にバスの遅延が大きく、自宅を出発する時間に対する学校の到着時間の予測が立てづらい |
| 解決策 | 国土交通省の道路交通センサスデータを事前集計し、時間帯別の所要時間を可視化する静的Webダッシュボードを作る |
| 対象ユーザー | 市街地から郊外キャンパスにバス通学する学生 |
| アーキテクチャ | CSVから事前計算したJSONを静的サイトが読み込む構成。バックエンド不要 |
## 2. 使用データ
国土交通省「全国道路・街路交通情勢調査(道路交通センサス)」の福岡県データを使用する。
### データファイル
| ファイル | 内容 | 主な用途 |
|---|---|---|
| kasyo40.csv | 箇所データ(道路区間の属性情報) | 路線名、区間延長(km)、旅行速度(混雑時/非混雑時) |
| zkntrf40.csv | 交通量データ(時間帯別) | 各区間の時間帯別交通量(7時台〜翌6時台) |
## 3. 機能一覧
### MVP(必ず作る)
| # | 機能 | 説明 |
|---|---|---|
| 1 | 時間帯別所要時間グラフ | 横軸=時間帯(7〜22時)、縦軸=推定所要時間の折れ線グラフ |
| 2 | 区間別旅行速度テーブル | 国道202号の博多→糸島区間を一覧表示 |
| 3 | 出発時刻シミュレーター | 到着希望時刻をタイムピッカーで選ぶと、推定所要時間と推奨出発時刻を表示 |
### ストレッチ(時間があれば)
| # | 機能 | 説明 |
|---|---|---|
| 4 | 区間別速度ヒートマップ | 区間 × 時間帯のヒートマップ |
| 5 | 上り/下り切替 | 通学(駅→大学)と帰宅(大学→駅)の切替 |
## 4. 画面構成
1画面構成。3つのセクションを配置。
(タイムピッカー → 所要時間グラフ → 区間テーブル)
## 5. 技術スタック
| レイヤー | 技術 | 選定理由 |
|---|---|---|
| フロントエンド | HTML + CSS + JavaScript | ビルド不要、ワークショップ環境ですぐ動く |
| グラフ描画 | Chart.js(CDN読み込み) | 導入が簡単 |
| データ集計(ビルド時) | Python スクリプト | CSVの読み込み・集計が簡潔。実行は1回のみ |
| 配信 | 静的ファイルのみ | バックエンド不要 |
## 6. ディレクトリ構成
01_bus-arrival-dashboard/ ├── input.md ├── idea.md ├── scope.md └── apps/ ├── scripts/ │ └── build_route_data.py ├── app/ │ ├── index.html │ ├── app.js │ └── data/ │ └── route_hakata_kyudai.json └── data/ ├── kasyo40.csv └── zkntrf40.csv
## 7. データ加工の方針
CSVからの集計はビルド時に1回だけ実行し、結果をJSONとして出力する。
- ステップ1: 対象区間の抽出(国道202号)
- ステップ2: 時間帯別交通量の取得
- ステップ3: 混雑度の算出 `混雑度(h) = その時間帯の交通量 / ピーク時間帯の交通量`
- ステップ4: 推定速度の線形補間 `推定速度(h) = 非混雑時速度 × (1-混雑度) + 混雑時速度 × 混雑度`
- ステップ5: 時間帯別の所要時間算出
## 8. 実装計画(2コマ = 180分)
Claude Code 前提。「一気に生成 → 動かして対話でチューニング」のサイクルで進める。
### 1コマ目(90分): MVP が動く状態まで
- **初期一括生成(0〜15分)**: scope.md を Claude Code に渡して、CSV 集計スクリプト + 静的 HTML + Chart.js のドラフトを一気に生成
- **動作確認(15〜30分)**: ブラウザで開いて挙動確認。致命的な不具合の修正
- **対話チューニング(30〜90分)**: グラフの見た目、シミュレータのロジック、区間テーブルの粒度などを対話で詰める(1サイクル 10〜20分 × 3〜4本)
**目標**: 1コマ目終了時点で MVP 3機能(グラフ・シミュレータ・区間テーブル)が動く状態
### 2コマ目(90分): 仕上げ + ストレッチ
- **MVP 仕上げ(0〜30分)**: UI の詰め(コントラスト・レスポンシブ・見出し・空状態)を対話で
- **ストレッチ(30〜90分)**: 対話サイクル単位で順に積む。1つあたり 15〜25分目安
## 9. スコープ外
- リアルタイム交通情報取得
- 地図上での経路表示
- バス時刻表との連携
- LLM/AIエージェント(構造化UIで代替)
- ユーザー認証・データ永続化
- 複数路線の比較
入力の解決策: 「履修候補をCSVに書き出すと、時間割の衝突・週マップ・単位数サマリをターミナルに表示してくれるコマンドラインツールを作る」
scope.md で着地したアプローチ: 「Python + Click + Rich で、単一CSVを読み込みターミナルに整形出力するシンプルCLI」
# スコープ設計書: 履修登録シミュレータ (jiji)
## 1. 概要
| 項目 | 内容 |
|---|---|
| 課題 | 履修登録のときに複数の候補科目から選ぶのだが、時間割の衝突や単位数の合計を手作業で確認するのが大変 |
| 解決策 | 履修候補をCSVに書き出すと、時間割の衝突・週マップ・単位数サマリをターミナルに表示するCLIツール |
| 対象ユーザー | 履修登録を控えた大学生 |
| アーキテクチャ | 単一のPythonパッケージ。CSVを読み込んでターミナルに整形出力 |
## 2. 入力フォーマット
```csv
id,name,day,period,credits,category,priority
CS101,プログラミング基礎,月,1,2,必修,high
CS201,アルゴリズム,水,3,2,選択必修A,medium
CS202,データベース,水,3,2,選択必修A,medium
| カラム | 必須 | 内容 |
|---|---|---|
| id | ✓ | 科目コード |
| name | ✓ | 科目名 |
| day | ✓ | 曜日 |
| period | ✓ | 時限 |
| credits | ✓ | 単位数 |
| category | ✓ | 区分 |
| priority | — | 取りたさ(デフォルト medium) |
| # | 機能 | 説明 |
|---|---|---|
| 1 | jiji check | 衝突検出 + 週マップ + 単位数サマリ |
| 2 | 衝突検出 | 同じ(day, period)の重複を警告 |
| 3 | 週マップ描画 | Rich Tableで曜日×時限を表示 |
| 4 | 単位数サマリ | category別に集計 |
| # | 機能 | 説明 |
|---|---|---|
| 5 | jiji diff | 2プラン比較 |
| 6 | priority推奨 | 衝突時の推奨選択 |
$ jiji check courses.csv
[衝突] 水3限
- CS201 アルゴリズム (priority: medium)
- CS202 データベース (priority: medium)
週間マップ:
月 火 水 木 金
1 CS101 ... — ... —
...
単位数サマリ:
必修 : 5 単位
選択必修A : 2 単位
合計 : 11 単位
| レイヤー | 技術 | 選定理由 |
|---|---|---|
| 言語 | Python 3.10+ | ワークショップ環境に標準。CSV処理が簡潔 |
| CLIフレームワーク | Click | サブコマンド定義が簡単 |
| ターミナル装飾 | Rich | 表・色付き出力が綺麗 |
| パッケージ管理 | uv | 高速 |
02_rishu_simulator/
├── input.md
├── idea.md
├── scope.md
└── apps/
├── pyproject.toml
├── src/
│ └── jiji/
│ ├── cli.py
│ ├── loader.py
│ ├── conflict.py
│ ├── timetable.py
│ └── summary.py
└── samples/
└── courses.csv
Claude Code 前提。「一気に生成 → 動かして対話でチューニング」のサイクルで進める。
src/jiji/ の各モジュールを一気に生成uv run jiji check samples/courses.csv を実行して挙動確認、致命的な不具合の修正目標: 1コマ目終了時点で jiji check が MVP 4機能を含めて動く状態
jiji diff → priority 推奨 など)。1つあたり 15〜25分目安
---
## まとめ:このスキルが生む体験
1. 参加者は「課題+解決策」の一言だけ持ってくれば始められる
2. Claude が実装アプローチを複数案ぶつけるので、**第一案に縛られずに選べる**
3. MVP / ストレッチ / スコープ外 を明文化することで、**時間枠内の見通しが立つ**
4. scope.md は完成後も対話で何度でも調整できる
5. 最終的な scope.md はそのまま Claude Code に渡して実装着手できる粒度になっている
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
projects/<プロジェクト名>/ 配下のファイルをまとめて ZIP にして、成果物として持ち帰れるようにするスキル。node_modules / .venv / __pycache__ など再生成可能なビルド成果物は自動で除外する。/archive-project で明示起動。
The English summary is being prepared. Showing the original description.
scope.md をもとに Next.js アプリを projects/<name>/apps/ に実装する対話スキル。MVP を一括生成したあと「完了」で終わらず、想定ユーザー1人になりきって触る → 1サイクル1改善のチューニングを回し続けて体験を磨く。/scope-design の後、/verify-project の前に実行する。/build-app で明示起動。
The English summary is being prepared. Showing the original description.
ハンズオンで作った動くアプリを「商品として売り出す」視点で見直し、ペライチのランディングページ(LP)を作る対話スキル。動くアプリを実際に触りながらコピーを練り、最後に frontend-design スキルを自動で呼び出して HTML 実物まで一気に着地させる。標準構成では /verify-project の後に本線として実施する(30〜50分)。/landing-page-design で明示起動。
The English summary is being prepared. Showing the original description.
ハンズオンで実装したプロダクトを「もし実際にデリバリーするなら」の観点で棚卸しし、足りない知識を学習計画(study-plan.md)に落とすスキル。ローカルで動作確認できる範囲で実装した前提。`/verify-project` 後・ピッチ前に実行してメタ認知してから登壇する。/study-plan で明示起動。
The English summary is being prepared. Showing the original description.
ハンズオンで実装したプロダクトを「作ったものを評価する」観点で検証し、その結果をピッチ発表の骨子(verification.md)としてまとめる対話スキル。検証と発表準備を同じ流れで進める。ペアフィードバックのリハーサル素材にもなる。/verify-project で明示起動。
The English summary is being prepared. Showing the original description.