ライフスタイル
実践:小さな Web サイトを作る
brief.md から Small Steps のタスクサイトを計画・制作し、追加、完了、削除、絞り込み、ローカル保存を実装します。HTML、CSS、データ関数、画面イベント、テストを分け、Node とブラウザーで検証して再起動・復元の手順を残します。
読了目安 20 分 · 操作 60 分

この記事の目次
Codex 学習目次に戻るCodex 学習ガイド:全記事の目次導入と最初のタスクから MD の指示、高度な連携まで、60 レッスン・十単元を予定しています。習熟度、環境、目的、コマンドで次の記事を探せます。未公開の記事には状態を表示します。記事全文を読む
目標と開始地点
この段落の教材・資料: Codex 入門Codex とは?ChatGPT との違いCodex は、指定した環境でプロジェクトを読み、ファイルを編集し、ツールを実行できる開発エージェントです。モデルは推論の仕組み、タスクは一つの依頼、プロジェクトは関連する作業やファイルのまとまりです。チャットのコードを自分で貼り付ける方法とは、変更を行う場所が異なります。記事全文を読む
手順1:空の作業場所と参考版を用意する
Small Steps 教材を展開し、expected は別の参考場所に保存します。本編は新規 website-lab の brief.md から始め、他編の制御教材 start・broken は混ぜません。expected の5ファイルは詰まった時の完成例です。作業端末で node --version、Windows は py -3 --version、macOS/Linux は python3 --version を確認し、不足命令は導入とパス設定ターミナルのパスとプロジェクトルートWindows、macOS、Linux で練習フォルダーを作り、現在位置、相対パス、絶対パスを区別します。記事全文を読むで解決します。
各 OS は同一 HTML/CSS/JavaScript を使います。デスクトップで website-lab を選び、CLI は cd 後に codex、IDE はそのフォルダーをプロジェクトとして開きます。携帯で PC タスクを追えても、ファイルとプレビューは実行ホストにあり、携帯の127.0.0.1は PC ではありません。携帯展示のために練習サーバーを公開せず、まず PC でレスポンシブを確認します。
手順2:成果と合格条件を書く
下記を brief.md に保存します。英語の UI 名は参考版と一致させ、5言語で同じボタンを照合します。追加後の表示が Read、完了の切替が Update なので CRUD の4動作を満たし、ログイン・同期・共同作業は追加しません。見た目だけでなく損壊データ、空白入力、キーボード操作も定義します。
# Small Steps website brief
Build a local todo website using HTML, CSS and JavaScript only.
## Files
- index.html: accessible page and form
- style.css: responsive layout
- core.mjs: immutable data functions
- app.js: DOM events and localStorage
- core.test.mjs: Node built-in tests
## Data contract
- Task: {id: string, title: string, completed: boolean}
- Trim titles; accept 1 to 100 non-blank characters. IDs must be unique.
- Export addTask(tasks, title, id), toggleTask(tasks, id), removeTask(tasks, id),
visibleTasks(tasks, filter), decodeTasks(raw), encodeTasks(tasks).
- Filters: all, active, completed. Missing toggle/delete IDs leave data unchanged.
- Store {version: 1, tasks: [...]} under mokaair-codex-todo-v1.
- Invalid stored data must remain untouched; warn and allow temporary work.
## Interface and acceptance
- Labels: New task, Add task, Show, All tasks, Active, Completed, Delete.
- Show active and total counts, including when a filter is selected.
- Add, toggle, delete, filter and reload must work.
- Render task text as text, not HTML.
- Visible keyboard focus; preserve sensible focus after list updates.
- Fit 360px, 390px and 1280px viewports without page overflow.
- Include an About this exercise disclosure with a Reset practice data button.
- Reset practice data removes only this app's storage key.
- No dependencies, account, backend, analytics or external requests.
## Delivery
Explain changes, run node --test core.test.mjs, and list actual browser checks.
Do not claim checks that were not run. Do not publish or deploy.
手順3:設計を確認して段階的に実装する
Plan モードPlan モードで実装前に計画するPlan モードは範囲や方法を決める段階に向いています。成果は実装計画であり、完成したコードではありません。入力、出力、制約、検証方法が含まれるかを確認します。記事全文を読むで brief.md を読み、5ファイルの責務、データの流れ、検証を提案させます。core.mjs は DOM に触らず、app.js が操作と保存を担当し、framework や追加サービスがないか確認します。損壊や復元が欠ければ計画へ追加してから実装へ切替えます。データ・試験、画面・操作の2段階に分け、各回で実変更と未検証点を報告させます。
Implement core.mjs and core.test.mjs from the approved brief.md contract.
Keep all data operations immutable. Test empty and long titles, Unicode,
duplicate IDs, filters, missing IDs, storage round trips and invalid storage.
Run node --test core.test.mjs and report the command, result and remaining work.
Do not change the brief, publish anything or build the UI in this stage.
Implement index.html, style.css and app.js using the tested core.mjs.
Follow the UI, storage, accessibility and responsive criteria in brief.md.
Do not weaken the data tests to accommodate UI bugs.
Run the data tests again. Give local preview instructions and list which
browser interactions you actually verified and which still need verification.
各段階で自分でもファイルと試験を確認します。参考 core.test.mjs は複数断言を持つ3つの上位試験ですが、生成版の件数は異なり得るため数だけで比較しません。実装と試験が同じ勘違いを持つ場合もあり、次の独立した画面確認が必要です。詰まれば expected の該当ファイルを比べ、未保存作業を丸ごと上書きする前に原因を理解します。撤回は Git と復元Git・ブランチ・差分・復元Git は履歴、ブランチは変更のまとまり、diff は差分を扱います。会話の再開ではファイルは復元されません。記事全文を読むを確認します。
手順4:同じフォルダーをプレビューする
node --test core.test.mjs
py -3 -m http.server 4173 --bind 127.0.0.1
node --test core.test.mjs
python3 -m http.server 4173 --bind 127.0.0.1
http://127.0.0.1:4173 を開き、その端末を維持し、他命令は別端末で実行します。占用時は自分の練習サーバーか確認してから停止を判断し、空きポートへ変えるなら URL と検証記録も変えます。HTML を直接開く file URL は ES module を制限し得ます。版違いなら全面再作成を頼む前に提供フォルダー、URL、Network の app.js を確認します。
手順5:機能と画面を順に検証する
About this exercise を開き、全て捨てられる架空資料と確認して Reset practice data で専用キーだけを消します。Show で All tasks を選び、0 active / 0 total を確認してから Read・Build を追加し Read を完了にします。All tasks は2件、Active は Build、Completed は Read、統計は1 active / 2 totalです。再読込で保持を確認し、All tasks に戻り Read を削除して Build を残します。トップページの画像1枚で終わらず次の表を検証します。
| 例 | 操作 | 期待結果 |
|---|---|---|
| 空白 | 3空白を送信 | 追加せず理解可能なエラー |
| Unicode | 寫作 ✨ を追加 | 再読込でも保持 |
| 文字安全 | 下記 HTML 試験文字列 を追加 | 文字表示、画像要素なし |
| キーボード | Tab・Enter・Space | 可視焦点、完了・削除後も操作可能 |
| 携帯幅 | 360px・390px、長い題名 | 折返し、ページ全体の横方向のはみ出しなし |
| デスクトップ幅 | 1280px | 一覧・統計・操作が読める |
レスポンシブ表示は実 iOS/Android 試験ではなく、添付 Windows/Edge 参考画像は今回の生成成果の証明ではありません。
<img src=x>
手順6:損壊データ・修正・引渡し
高度な確認はローカルの架空データの練習ページだけで行います。必要記録を保存後、開発ツールの Storage/Application → Local Storage で現在の127.0.0.1とポートを選び、mokaair-codex-todo-v1を bad-json にして再読込します。警告が出て、暫定追加後も保存値が bad-json のままか確認します。Reset practice data でその鍵だけを消し、新規追加・再読込で保存復旧を確認します。他サイトの全資料は消しません。
引継ぎ前に架空データを空にして次の順序をたどり、期待と観察を別欄に記録します。参照実装でも自分のページを観察します。絞込み時も全タスクを数える条件で、表示部分だけを数える誤りを検出できます。プレビュー不可なら未確認とし、期待値を実測にしません。
# Website handoff
Root / source version:
Node test command / exit status:
Browser / version / viewport / date:
| Step | Expected active / total | Observed |
| --- | --- | --- |
| Reset fictional practice data; select All tasks | 0 / 0 | |
| Add Read, then Build | 2 / 2 | |
| Complete Read | 1 / 2 | |
| Select Active; only Build visible | 1 / 2 | |
| Select Completed; only Read visible | 1 / 2 | |
| Select All tasks, delete Read | 1 / 1 | |
Input/storage recovery evidence:
Keyboard and narrow-layout evidence:
Actual changed files:
Unverified requirements:
How to restart / restore:
失敗時は入力・操作・期待・実際を正確に伝え、Bug 手順不具合修正の一連の流れ不具合修正は再現する症状から始め、根拠で原因を絞って検証します。入力、操作、期待、実際を伝えます。記事全文を読むで該当層だけ修正・再検証します。brief、5ファイル、Node 記録、広幅・狭幅画面、未実測プラットフォーム、復元方法を引渡します。元端末の Ctrl+C で停止し、引き継ぎ形式コンテキストと作業の引き継ぎ長い作業には判断と証拠を残します。README は使い方、設計書は理由、引き継ぎは進捗、AGENTS.md は継続する規則に分けます。記事全文を読むで再起動法を説明させます。framework・バックエンド・公開は別の明確な範囲であり、ローカル表示を配備済みとしません。
Codex 学習目次に戻るCodex 学習ガイド:全記事の目次導入と最初のタスクから MD の指示、高度な連携まで、60 レッスン・十単元を予定しています。習熟度、環境、目的、コマンドで次の記事を探せます。未公開の記事には状態を表示します。記事全文を読む
詳しい説明を読む
Brief to HTML / CSS to Browser checks


同じテーマの記事
ライフスタイル
Codex 学習ガイド:全記事の目次
導入と最初のタスクから MD の指示、高度な連携まで、60 レッスン・十単元を予定しています。習熟度、環境、目的、コマンドで次の記事を探せます。未公開の記事には状態を表示します。
ライフスタイル
Worktree とタスクの分離
Worktree は一つの Git リポジトリに別ブランチの作業場所を作ります。ファイルは分かれても DB、ポート、外部サービスは共有される場合があります。
ライフスタイル
使用量と効率:やり直しを減らす
条件、モデル設定、時間、成果を記録し、不要な再試行と過剰な文脈を減らします。
ライフスタイル
既存のコードベースを理解する
読み取りで入口、データの流れ、テストを探し、ファイルに基づくプロジェクト地図を作ります。
最新の旅の情報・ガイド

ガイド東京
東京ではどのエリアに泊まる?新宿・上野・東京駅・渋谷・浅草・池袋・銀座の七エリア比較。空港アクセス、宿泊税、荷物配送も解説
東京ではどのエリアに泊まる?新宿、上野、東京駅、渋谷、浅草、池袋、銀座の七エリアを同じ基準で比較。成田・羽田空港からのアクセス、利用できる路線、周辺にあるもの、街の雰囲気、向いている人を、比較表と山手線の概略図とともに紹介します。2026年9月に確認した東京都の宿泊税(2027年4月から3%)と、空港宅急便で荷物を送る際のルールも解説します。
- 予算
- ホテル

ガイド東京
東京の交通パスの選び方:Suica/Welcome Suica、Tokyo Subway Ticket、JR Passは買うべき?
初めての東京では、まず一人一枚ICカードで都度払い(Welcome Suicaはデポジット不要、有効期間28日)。一日に地下鉄へ4回以上乗るならTokyo Subway Ticketの72時間券2,000円を追加し、関西へ行かず東京だけならJR Passは必ず割高です。TOURIST PASMO、iPhoneのSuica、東京メトロ一日乗車券で乗れる路線・乗れない路線を決定チャートで比較。価格は2026年9月に確認。
- 交通
- 予算

ガイド東京
東京ディズニーランド・シー攻略:チケット料金、ファンタジースプリングス、ディズニー・プレミアアクセス(DPA)とスタンバイパスの使い方、初めてならどちらを選ぶ?
東京ディズニーの一日パスポートは変動価格制で、2026 年 9 月は平日の多くが 9,900 円、週末が 10,900 円。公式サイトでは毎日 14:00 に二か月後の同日分を発売します。無料のプライオリティパスは公式サイトのサービス一覧に載っておらず、待ち時間を短縮できるのは有料のディズニー・プレミアアクセス(一人一回 1,000~3,500 円)のみ。運営時間、25 周年イベント、スタンバイパス、エントリー受付、ファンタジースプリングスの利用方法、初回にランドとシーのどちらを選ぶかも解説。2026 年 9 月に公式サイトで確認しました。
- モデルコース
- 家族向け
出典
- Codex prompting · 確認日:
- Codex browser · 確認日: