各ボックスの「コピー」ボタンを押すと、そのプロンプトがそのままコピーされる(手で選択しなくてよい=改行が壊れない)。Claude Code に貼り付けて使う。プロンプト本文はその場で書き換えられる(プロジェクト名などを自分のものに直してからコピーできる)。
テキスト版(印刷・全文コピー用):prompts.txt
参考: vibecodingnotes.com/handson-cloudflare-static-upload/
public/index.html を作って。 Hello World と表示するだけのシンプルなHTML。
文字を大きくして、中央に寄せて。 派手にして。
Hello Worldの下に日本語訳「こんにちは世界」を足して
文字をクリックすると拡大するようにして
参考: vibecodingnotes.com/handson-cloudflare-wrangler/
npx wrangler login
ブラウザで承認画面が開くので進める。
現在時刻も表示して!
Cloudflare の既存の Worker「thisisapen」に、public フォルダの中身を npx wrangler でデプロイして。 設定ファイル(wrangler.jsonc)も作ってほしい。
thisisapen はブラウザでデプロイしたときの Worker 名(<Worker名>.<サブドメイン>.workers.dev の先頭の部分)に置き換える。
open -e ~/.claude/CLAUDE.md
notepad %USERPROFILE%\.claude\CLAUDE.md
すでに ~/.claude/CLAUDE.md にコミュニティで配られた開発ルールを入れている人は、ここで止まることがある。開いたファイルから該当の部分を消して保存し、Claude Code を開き直す。スライドの PDF からコピーすると ~/ .claude のように空白が入って開けないことがあるので、ここからコピーする。
流れ星も出して
デプロイして
Cloudflare に新しい Worker「applepen」を作って、public フォルダの中身を npx wrangler でデプロイして。 設定ファイル(wrangler.jsonc)も作ってほしい。
🚀 やってみよう! Webアプリ作成:好きなお題を選んで作り、ひとつ上の「クロコだけで作成からデプロイまで」の依頼文で公開してみよう。
HTML+JavaScriptでポモドーロタイマーを作って! public/index.html 1ファイルで作って。
複利計算機をHTML+JavaScriptで作って! 構成はHTMLファイル(public/index.html)が1つ。
マウスかタッチパッドでボタンを10回連打するのに何秒かかるかを競うゲーム。public/index.html 1ファイルで作って。
ボタンを押すと効果音が出るWebアプリをHTMLファイル1つ(public/index.html)で作って。3つのボタンで三つの効果音。
TODOリストをHTML+JavaScriptで作って! 項目の追加・削除ができて、ページを閉じても消えないようにしたい。public/index.htmlに書いて。ファイルは1つで。
最大60秒のカウントダウンタイマーをHTML+JavaScriptで作って! 秒数を入力してスタート・リセットできるようにしたい。HTMLファイル1つ(public/index.html)にまとめて。
参考: vibecodingnotes.com/guide-git-basic/
README.md を作って、内容は「# 私の最初のリポジトリ」だけにして。
このパソコンの Git に、名前とメールアドレスを登録して。 名前は Your Name、メールアドレスは [email protected] で。 このフォルダの Git 管理はまだ始めない。
このパソコンの Git で、最初のブランチ名を main にする設定をして。
Git管理始める。 「最初のコミット」としてコミットして。
public/index.html として Hello World と表示するだけのシンプルなHTMLを作って。 README.md にもそのことを書いておいて
コミットして
public/index.html を派手にして
コミットして
Claude Code を題材にした川柳を1つ作って、README.md に足して
コミット
README.md の1行目のタイトルに、今日の日付を足して
commit
変更履歴を表で見せて
git log
今日やったことを100文字ほどでまとめて
間違って消しちゃった。戻して
README.md を、川柳を足す前のコミットの時点に戻して。 その後の変更も一緒に消えてよい。
戻したのを取り消して
派手にする前と今で、何が変わった?
brew install gh
gh --version
gh auth login
質問が順に出るので、全部改行で進む。ワンタイムコードが表示されるので、自動で開いたブラウザ画面に貼り付けて承認する。
GitHubに非公開のリポジトリ git-test を作って、今のフォルダの内容をpushして
gh repo create git-test --private --source=. --remote=origin --push
カフェオレについて約200文字の短文をREADME.mdに足して
プッシュして
AI使う人でGitHub使ってないとやばい!的な煽りコピーを3つpublic/index.htmlに足して
push
タコライスのレシピを約100文字でREADME.mdに書いてpush
GitHub の最新を取り込んで
Git管理したい
ブランチを作って、index.html の見出しをもっと派手にする案を試して
よさそうだから main に取り込んで、ブランチは消して
ブランチを作って、index.html の背景を真っ黒にする案を試して
やっぱりやめて main に戻して、ブランチも消して
pushして
ブランチを作って、README に「ブランチの練習」という節を足して。 終わったら GitHub に push して、プルリクエストを作って
返ってきたリンクを開いて「Files changed」タブで差分を確認する。
プルリクエストをマージして、手元の main も最新にして
マージ済みのブランチを、手元と GitHub の両方から消して
README の1行目の見出しを「私の最初のリポジトリ(手元で変更)」に変えてコミットして。 pushはまだしないで
# 私の最初のリポジトリ(GitHub で変更)
GitHub の最新を取り込んで
どこがぶつかっているか教えて
両方の内容を残す形で直して、pushして
手元の方を残して
GitHub の方を残して
参考: vibecodingnotes.com/guide-in-repo-notes/
このフォルダに作業メモの置き場所を作って。 決めごとは https://raw.githubusercontent.com/yto/yto-skills/main/plugins/in-repo-notes/skills/in-repo-notes/SKILL.md を notes/rules-in-repo-notes.md として保存して、 AGENTS.md からそれを読むように書いて。 CLAUDE.md からは AGENTS.md を読み込むようにして。
このフォルダに作業メモの置き場所を作って。 notes/ フォルダを作り、AGENTS.md に「調査や検討の経緯は notes/ に <topic>-<YYYY-MM-DD>.md の形式で置く(topic は英数字とハイフン)。 冒頭に作成日と目的、末尾に参照を書く」というルールを追記して。 CLAUDE.md からは AGENTS.md を読み込むようにして。
このフォルダに作業メモの置き場所を作って。
参考: vibecodingnotes.com/guide-security-check/
このリポジトリ全体をセキュリティの観点でチェックして。
このURLのセキュリティをチェックして: https://… まず、何でできているか調べて(ホスティング/フロント/データ置き場/外部API)。 前回の結果は使わず、いま実際にリクエストを送って確かめて。推測では答えない: ・認証なしで DB が読める / 書けるか ・認証なしで叩ける API があるか(とくに AI を呼ぶもの) ・ログインなしで管理画面に入れるか ・課金が無防備に置かれていないか 報告は「実際に確認した」と「コードから推測した」を分けて。
参考: vibecodingnotes.com/handson-basic-auth/
このフォルダに public フォルダを作って、2ページだけの静的サイトを作ってください。 - public/index.html は誰でも見られるトップページ - public/secret/index.html は、あとで合言葉で守るページ - 中身は見分けがつけばよく、凝らなくていい - トップページから secret のページへのリンクを置いてください
npx wrangler login
Cloudflare に新しい Worker「my-secret-site」を作って、public フォルダの中身を npx wrangler でデプロイして。 設定ファイル(wrangler.jsonc)も作ってほしい。
/secret/ 以下のページを、Basic 認証の合言葉で守って。 合言葉は SITE_PASSWORD という名前で Cloudflare のシークレットに預けるので、コードにも設定ファイルにも書かない。ユーザー名は guest でよい。 守らないページは、今までどおりコードを通さずに配信する。
デプロイして
SITE_PASSWORD
Cloudflare → Workers & Pages → 自分の Worker → Settings → Runtime variables and secrets → + Add variable で、Production にチェックが入っているか確かめ、Key に上の文字列、Value に合言葉を入れ、Value の右の Secret にチェックを入れて Add 1 variable and deploy を押す(これでデプロイまで済む)。スライドの PDF からコピーすると SITE PASSWORD _ のように _ がずれて崩れることがあるので、ここからコピーする。
合言葉を Cloudflare のシークレット SITE_PASSWORD に登録して。 値は私がターミナルのタブで入力する
「ターミナルでコマンドを実行します」と聞かれたら「一度だけ許可」。ターミナルのタブが開いたら、合言葉を貼り付けて Enter(画面には表示されない)。入れた時点で反映される(デプロイし直さなくてよい)。「値は私が…」を付けないと、合言葉が会話に残ることがある。
Basic認証のユーザーを複数にしたい。 環境変数 SITE_USERS を "ユーザー名:合言葉,ユーザー名:合言葉" の形式として読み、 どれかに一致したら通すようにして。 値は私が自分で Cloudflare に入れるので、コードにも設定ファイルにも書かないで。
Basic認証をサイト全体にかけたい。 パスの範囲判定を外して、どのページでも合言葉を求めるようにして。 鍵をかける範囲に関わる設定があれば、それも合わせて変えて
Basic認証をかける範囲を /admin/ と /api/admin/ の2つにして。 鍵をかける範囲に関わる設定があれば、それも合わせて変えて
Basic認証をやめたい。認証の処理を消して、静的ファイルだけのサイトに戻して。 鍵をかける範囲に関わる設定があれば、それも元に戻して
/admin/ 以下に Basic認証をかけて
サイト全体に Basic認証をかけて
参考: vibecodingnotes.com/handson-cloudflare-d1-webapp/
以下を AGENTS.md に記録してください。 CLAUDE.md からは AGENTS.md を読み込むようにしてください。 ==== このプロジェクトのベース名は my-bbs です。 - アプリ名・プロジェクト名・GitHubリポジトリ名 = ベース名 - D1データベース名 = ベース名のうしろに -db を付けた名前 これ以降、私のプロンプトの <ベース名> はベース名に、 <D1データベース> は「ベース名-db」に読み替えて作業してください。
これから作るアプリの仕様を AGENTS.md に書いてください。 ==== ## 作るもの:匿名一行掲示板 - 名前登録なし、初めて投稿したときに会員番号が払い出される(1, 2, 3...の連番) - 同じブラウザから投稿した人には毎回同じ会員番号が使われるようにする - 画面には「会員1号」「会員2号」と表示する - 投稿内容は1行のテキスト
AGENTS.md の仕様のとおりに、この掲示板を Cloudflare Workers で作って。 D1データベース <D1データベース> がまだ無ければ作って。 テーブルはマイグレーションファイルで作る。 公開するのは public フォルダの中だけにする。 API のコードは src/index.js に書く。 作ったら、ローカルの D1 にマイグレーションを適用(migrations apply)してから、 ローカルサーバーを起動して。
作ったものを見学したい。 このフォルダにできたファイルとフォルダ(隠しフォルダも含めて)を、 データベース・スキーマ・バックエンド・フロントエンド・設定のどれに当たるかで表にして。 D1 のデータベースそのものはどこにあるかも教えて。
本番DBにマイグレーションを適用(migrations apply)してから、 wrangler で Cloudflare に直接デプロイして
ユーザーごとに投稿の背景色を変えてほしい
デプロイして
投稿者が名前を設定できるようにして、投稿に会員番号と一緒に名前も表示してほしい
不適切な投稿があるので、◯◯の投稿を削除して
①作業フォルダの準備 は Finder での操作のため、コピーするプロンプトはなし(手順は上記の参考リンクへ)。