合格判定
前項のプログラム仕様書には、「# テスト観点・合格条件」として「Codexが5回プレイし、最後まで正常に動作すれば合格。テスト結果をチャットに表示する」と記述した。Codex はプログラムを生成した後、この条件に従って自動テストを実行し、その結果をチャットに表示する。

今回のテスト結果は次の通りだった。
今回のテスト結果は次の通りだった。
| 確認項目 | 結果 |
|---|---|
| 5局すべて正常に終局 | OK |
| 最終石数(例:54–10、7–57、12–52、9–55、20–44) | OK |
| サイコロによる先攻・後攻決定 | 正常 |
| 勝敗表示、降参、パス、再対局 | 正常 |
| JavaScript構文・必須表示 | 正常 |
| エラー発生 | なし |
そこで、前項のスレッドに続いて、次のようなプロンプトを入力してほしい。
プロンプト:合格判定
# 合格判定 テスト結果を表示し、合格かどうかをユーザーに質問する。 質問が正しければ、以降の処理を進める。
Codex はテスト結果を表示し、「合格として簡易取扱説明書(README.txt)の作成へ進めてよいですか?」とユーザーに確認を求める。これが合格判定のステップだ。ユーザーが「はい」と答えると、次の工程に進む。
簡易取扱説明書の作成
合格が確認できたら、次は簡易取扱説明書を作成する。取扱説明書は「README.txt」というファイル名で、プログラムファイル(othello.html)と同じフォルダに保存する。

README.txt に含める項目は次の通りだ。
README.txt に含める項目は次の通りだ。
| 項目名 | 内容 |
|---|---|
| # プログラムの名称 | プログラムの名前 |
| # バージョン | バージョン番号 |
| # 目的 | プログラムの目的・概要 |
| # 動作環境 | 動作確認済みのブラウザやOSなど |
| # 著作権表示および使用条件 | ライセンス・著作権・免責事項 |
| # インストール方法 | 利用開始までの手順 |
| # 使い方 | 操作方法の説明 |
| # 変更履歴 | バージョンごとの変更内容 |
| # お問い合わせ | 連絡先やWebサイトのURL |
このうち「著作権表示および使用条件」と「お問い合わせ」は、プロンプトに文章をそのまま書いておくと、Codex がその文章をそのままREADME.txtに書き込む。ライセンス文など一字一句変えてはならない文章は、このようにプロンプトに直接記述する。

Codex はREADME.txtを作成した後、必須9項目がすべて含まれているかを自動確認し、チャットに結果を表示する。

プロンプトは次のように記述する。
Codex はREADME.txtを作成した後、必須9項目がすべて含まれているかを自動確認し、チャットに結果を表示する。
プロンプトは次のように記述する。
プロンプト:簡易取扱説明書の作成
# 簡易取扱説明書の作成 1)HTMLファイルと同じ場所に、簡易取扱説明書のテキストファイルを作成する。ファイル名は "README.txt" にする。 2)説明書には以下の項目を含める。各々の項目は "# 項目名" と表記する。 - プログラムの名称 - バージョン - 目的 - 動作環境 - 著作権表示および使用条件 - インストール方法 - 使い方 - 変更履歴 - お問い合わせ
著作権表示および使用条件には、以下の文章をそのまま入れる。
このプログラムは OpenAI社の Codex によって作成し、作者が動作を確認しました。 このプログラムは外部とのデータ通信を行いません。
本アプリケーションはMIT Licenseです。 商用を含む無償利用が可能です。自由に改造できます。 再配布の際は、下記の著作権表記、およびURLと本使用条件を必ず明記してください。
Copyright by (c)studio pahoo https://www.pahoo.org/
MITライセンスについては、下記のリンク先を参考にしてください。 http://ja.wikipedia.org/wiki/MIT_License http://www.opensource.org/licenses/mit-license.php
なお,本アプリケーションの利用または改造することによって生じた得失については一切関知いたしません.また,二次利用先の組織・企業・団体の目的・内容・活動については一切関知いたしません.
お問い合わせには、以下の文章をそのまま入れる。
ぱふぅ家のホームページ https://www.pahoo.org/ - サイト案内 - お問い合わせ
リソース管理とバージョン番号
プログラムが完成したら、ファイルを Git に登録(コミット)する。このとき、作業の種類に応じてバージョン番号を変更するルールを設けておくと、後から「どのバージョンで何が変わったか」が追跡しやすくなる。

バージョン番号は「X.Y.Z」の3桁で表す。それぞれの意味は次の通りだ。
バージョン番号は「X.Y.Z」の3桁で表す。それぞれの意味は次の通りだ。
| 作業の種類 | 変更箇所 | 例 |
|---|---|---|
| 新規作成 | 1.0.0 で開始 | 1.0.0 |
| メジャーバージョンアップ | X を +1(Y・Z はリセット) | 1.0.0 → 2.0.0 |
| マイナーバージョンアップ | Y を +1(Z はリセット) | 1.0.0 → 1.1.0 |
| 不具合修正 | Z を +1 | 1.0.0 → 1.0.1 |
プロンプトは次のように記述する。
プロンプト:リソース管理
# リソース管理 1)今回の作業が、新規作成、メジャーバージョンアップ、マイナーバージョンアップ、不具合修正のいずれに当たるか、ユーザーに質問する。 2)バージョン番号を次のルールで変更し、プログラムファイル、簡易取扱説明書、このプロジェクトのプロンプト(ファイル名は PROMPT.md にする)をGitにコミットする。 - 新規作成‥‥バージョン1.0.0 - メジャーバージョンアップ‥‥バージョン番号の整数部分を+1 - マイナーバージョンアップ‥‥バージョン番号の小数の1番目を+1 - 不具合修正‥‥バージョン番号の小数の2番目を+1
Codex は「今回の作業はどれに当たりますか?」とユーザーに質問し、回答に従ってバージョン番号を更新する。バージョン番号はプログラムファイルと "README.txt" の両方に反映される。

今回は初回作成なので「新規作成」を選んだ。バージョン番号は 1.0.0 のまま維持される。Codex はその後、プログラムファイル(othello.html)、README.txt、プロンプトファイル(PROMPT.md)の3ファイルを Git にコミットする。

プロンプトファイルとは、プロジェクトで使ったプロンプト全体を記録したファイルだ。ファイル名は "PROMPT.md" にする。これをGitに登録しておくと、あとから「どのような指示でプログラムを作ったか」を確認できる。
今回は初回作成なので「新規作成」を選んだ。バージョン番号は 1.0.0 のまま維持される。Codex はその後、プログラムファイル(othello.html)、README.txt、プロンプトファイル(PROMPT.md)の3ファイルを Git にコミットする。
プロンプトファイルとは、プロジェクトで使ったプロンプト全体を記録したファイルだ。ファイル名は "PROMPT.md" にする。これをGitに登録しておくと、あとから「どのような指示でプログラムを作ったか」を確認できる。
配布ファイルの作成
最後に、配布用のZIPファイルを作成する。
ZIPとは、複数のファイルを1つにまとめて圧縮するファイル形式だ。他の人にプログラムを渡すとき、ファイルをバラバラに渡すと受け取った側が管理しにくい。ZIPにまとめることで、一度にすべてのファイルを渡せる。

ZIPファイルには次の3つのファイルを収録する。

ZIPファイル名は「プログラム主ファイル名_バージョン番号.zip」の形式にする。今回は othello.html のバージョン 1.0.0 なので、ファイル名は「othello_1.0.0.zip」になる。
ZIPとは、複数のファイルを1つにまとめて圧縮するファイル形式だ。他の人にプログラムを渡すとき、ファイルをバラバラに渡すと受け取った側が管理しにくい。ZIPにまとめることで、一度にすべてのファイルを渡せる。
ZIPファイルには次の3つのファイルを収録する。
ZIPファイル名は「プログラム主ファイル名_バージョン番号.zip」の形式にする。今回は othello.html のバージョン 1.0.0 なので、ファイル名は「othello_1.0.0.zip」になる。
| ファイル名 | 内容 |
|---|---|
| othello.html | プログラム本体 |
| README.txt | 簡易取扱説明書 |
| PROMPT.md | プロンプト(開発時の指示書) |
プロンプトは次のように記述する。
プロンプト:配布ファイルの作成
# 配布ファイルの作成 1)プログラムファイル、簡易取扱説明書、このプロンプトを1つのZIPファイルに圧縮する。ZIPファイル名は、"プログラム主ファイル名_バージョン番号.zip" の形式にする。 2)完了後、作成したZIPファイルの保存場所を教える。
Codex はZIPファイルを作成した後、収録ファイルが3つあることを確認し、ファイルの保存場所をチャットに表示する。今回のチャットでは次のような結果が表示された。
| 項目 | 内容 |
|---|---|
| Gitコミット | d3b89db |
| 収録ファイル | othello.html、README.txt、PROMPT.md |
| 保存ファイル | othello_1.0.0.zip |
これで、プログラム本体・取扱説明書・プロンプトの3点セットが1つのZIPにまとまり、配布できる状態になった。次回以降、このZIPをそのまま他人に渡せばよい。受け取った側はZIPを解凍し、README.txtを読んでから othello.html をブラウザで開くだけで、インストール不要でプログラムを使い始めることができる。
プログラム仕様書:まとめ
前項と本項で学んだ、プログラム作成から配布用ZIPファイル完成までの一連の流れを画像として整理するとともに、1つのプロンプトとしてまとめておこう。このプロンプトを入力するだけで、途中、テスト結果の合格判定などの確認は人間が行う必要があるが、配布用ZIPファイルまで自動的に作ってくれる。作業を中断したければ、プロンプトで「中断」と入力すれば、Codex はただちに作業を中断する。
プロンプト:プログラム仕様書(まとめ)
# 目標 画面上でコンピュータと対戦するオセロゲームを作る。
# プログラム・ファイル名 othello.html
# プロジェクト・フォルダ作成 - プログラム・ファイル名の拡張子を除いた主ファイル名と同じ名前のサブフォルダを作成し、以降の作業はサブフォルダで行う。 - すでにサブフォルダがあれば、そのサブフォルダに移動して以降の作業を進める。
## 入力 - ユーザーはマウス入力で石を置く。 - ユーザーが「降参」ボタンをクリックしたらゲーム終了。
## 処理 1)ゲーム開始時に、サイコロを振って先攻・後攻を決める。 2)ユーザーが石を置いたら、盤面にある石の状態を更新する。 3)コンピュータは勝利することを目標に石を置き、盤面にある石の状態を更新する。 4)ユーザーの次の入力を待つ。
## 通信 なし。
## 出力 - プログラム上部にタイトル「オセロゲーム」、バージョン番号、製作者「(c)pahoo.org Powerd by Codex」と記載する。 - 画面に盤面の状態を見やすい色で表示する。 - 石は白色・黒色にする。 - 盤面は緑系の配色にする。 - ゲーム終了後に、盤面の状態はそのままで、勝者と敗者を画面に表示する。
## 例外・エラー処理 - 無限ループに陥ったり、システム・エラーが出たときは、画面にエラー情報を表示して終了すること。
## 記録 なし。
# テスト観点・合格条件 - Codexが5回プレイし、最後まで正常に動作すれば合格。テスト結果をチャットに表示する。 - すべての処理が含まれていること。 - 前提条件、制約条件が守られていること。
# 前提条件 - 仕様で分からないことがあれば、ユーザーに質問すること。 - JavaScriptを使った1本のプログラム・ファイルにすること。 - クライアントPCのブラウザ(OSやブラウザの種類は問わない)で動作すること。 - スマホでも利用できること。 - httpサーバなどやNode.jsなどサーバ技術は使わず、ブラウザの機能で完結すること。 - コーディングは「Airbnb JavaScript Style Guide」にのっとること。
# 制約条件 - インターネットとのデータ送受信は行わないこと。 - 外部ライブラリを使用する場合は、下記のサイトに限定すること https://cdn.jsdelivr.net/ https://cdnjs.cloudflare.com/ https://ajax.googleapis.com/ https://code.jquery.com/ https://ajax.aspnetcdn.com/ - プログラムがMIT Licenseに違反していないこと。
# 合格判定 - テスト結果を表示し、合格かどうかをユーザーに質問する。 - 質問が正しければ、以降の処理を進める。
# 簡易取扱説明書の作成 1)HTMLファイルと同じ場所に、簡易取扱説明書のテキストファイルを作成する。ファイル名は "README.txt" にする。 2)説明書には以下の項目を含める。各々の項目は "# 項目名" と表記する。 - プログラムの名称 - バージョン - 目的 - 動作環境 - 著作権表示および使用条件 - インストール方法 - 使い方 - 変更履歴 - お問い合わせ
## 著作権表示および使用条件 このプログラムは OpenAI社の Codex によって作成し、作者が動作を確認しました。 このプログラムは外部とのデータ通信を行いません。 本アプリケーションはMIT Licenseです。 商用を含む無償利用が可能です。自由に改造できます。 再配布の際は、下記の著作権表記、およびURLと本使用条件を必ず明記してください。 Copyright by (c)studio pahoo https://www.pahoo.org/ MITライセンスについては、下記のリンク先を参考にしてください。 http://ja.wikipedia.org/wiki/MIT_License http://www.opensource.org/licenses/mit-license.php なお,本アプリケーションの利用または改造することによって生じた得失については一切関知いたしません.また,二次利用先の組織・企業・団体の目的・内容・活動については一切関知いたしません.
## お問い合わせ ぱふぅ家のホームページ https://www.pahoo.org/ - サイト案内 - お問い合わせ
# リソース管理 1)今回の作業が、新規作成、メジャーバージョンアップ、マイナーバージョンアップ、不具合修正のいずれに当たるか、ユーザーに質問する。 2)バージョン番号を次のルールで変更し、プログラムファイル、簡易取扱説明書、このプロジェクトのプロンプト(ファイル名は PROMPT.md にする)をGitにコミットする。 -新規作成‥‥バージョン1.0.0 -メジャーバージョンアップ‥‥バージョン番号の整数部分を+1 -マイナーバージョンアップ‥‥バージョン番号の小数の1番目を+1 -不具合修正‥‥バージョン番号の小数の2番目を+1
# 配布ファイルの作成 1)プログラムファイル、簡易取扱説明書、このプロンプトを1つのZIPファイルに圧縮する。ZIPファイル名は、"プログラム主ファイル名_バージョン番号.zip" の形式にする。 2)完了後、作成したZIPファイルの保存場所を教える。
プログラム仕様書ビルダー
プログラム仕様書はかなり長文になるので、抜け漏れなく簡便に作れるよう、専用ビルダーを用意した。下記のボタンをクリックしてほしい。作成したプログラム仕様書(プロンプト)はクリップボードにコピーするか、ダウンロードできる。
参考サイト
- Codex:OpenAI
- JavaScriptによるプログラミング入門:ぱふぅ家のホームページ
(この項おわり)
大きな写真
本項では、Codex を使って、テスト結果の合格判定から、簡易取扱説明書の作成、Gitへのコミット、ZIPファイルへのまとめ方までを一連の流れで学ぶ。前項で作ったオセロゲームを例に、ZIPファイルを配布できる状態にするまでの手順を追う。