Codexを勉強の相手として使うための、学習記録用テンプレートです。
このリポジトリでは、GitHub Issueを「1つの学習テーマ」として使います。 Codexとの会話を、あとから読める学習記録にします。
大事なのは、AIに答えだけを作ってもらうことではありません。 自分が何を疑問に思い、どう予想し、何を確かめ、どう考え直したかを残すことです。
このハーネスでできることは、次のようなことです。
- 勉強したいテーマをIssueに残す
- 最初にわからなかったことを記録する
- 自分の予想や考えを記録する
- Codexにヒント、解説、添削、類題を出してもらう
- 間違えた理由を整理する
- 最後に確認問題を解く
- 次に復習することを決める
- GitHub Pagesで、思考の道すじをHTMLとして公開する
公開されるHTMLは、点数表ではありません。 次のように、考えが深まった順番を見せるページです。
問い
-> 予想
-> 確認
-> 考え直し
-> 気づき
-> 次に使う
このリポジトリを自分用にコピーして使います。
- GitHubでこのリポジトリをTemplate repositoryとしてコピーします。
- コピーしたリポジトリをCodexまたはローカル環境で開きます。
- 必要なパッケージを入れます。
npm install- 壊れていないか確認します。
npm run check- GitHubのIssueラベルを作ります。
npm run sync-labelsnpm run sync-labels を使うには、先にGitHub CLIでログインしておきます。
gh auth login学習レポートをWebで見られるようにするには、GitHub Pagesを設定します。
GitHubのリポジトリ画面で、次の順に開きます。
Settings
-> Pages
-> Build and deployment
-> Source
Source は GitHub Actions にします。
Deploy from a branch にはしません。
このリポジトリでは、Portfolio workflowがHTMLを作って、GitHub Pagesに公開します。
学習を始めるときは、Codexにこう言います。
ハーネススタート
次の言い方でも始められます。
ハーネス開始
学習ハーネスを始めて
このテーマでハーネスを使いたい
学習を終えるときは、Codexにこう言います。
ハーネス終了
次の言い方でも終了処理に入ります。
ハーネス完了
今日の学習を完了したい
Issueを閉じて次に進みたい
ハーネススタート と言うと、Codexは学習セッションを始めます。
Codexは、足りない情報を確認します。
- 今日の教科やテーマ
- 何ができるようになりたいか
- 今わかっていること
- わからないこと
- まず自分で考えたこと
- 希望する進め方
すでにテーマや問題文を書いている場合は、同じことをもう一度聞く必要はありません。 足りないことだけ確認します。
次に、CodexはIssueラベルを整理します。 これは、あとからIssueを見たときに「何の学習で、どんな種類で、どんな状態か」がすぐわかるようにするためです。
開始時に確認するラベル:
subject:*: 教科type:*: 学習の種類status:*: 今の状態needs:*: 必要な助けdifficulty:*: 難しさportfolio:show/portfolio:hide: Webレポートに載せるか
通常の学習記録は portfolio:show を付けます。
個人情報、未整理の提出物、公開したくない内容は portfolio:hide にします。
Codexには、進め方を指定できます。
ヒントモード: すぐに答えを出さず、考えるためのヒントを出す添削モード: 自分の答えや説明を見てもらう解説モード: わからないところを順番に説明してもらう類題モード: 似た問題で練習する振り返りモード: 今日わかったことや次に復習することを整理するテストモード: Codexに問題を出してもらい、答えて確認する
例:
ハーネススタート
数学の一次関数の文章題を、ヒントモードで進めたいです。
Issueは、GitHubの中にある「1つの学習カード」のようなものです。
このハーネスでは、1つのIssueに次のようなことを残します。
- 学習テーマ
- 目標
- 最初の理解
- わからなかったこと
- 自分で考えたこと
- Codexとのやりとりで気づいたこと
- 間違えた理由
- 確認問題の結果
- 次に復習すること
あとからIssueを読めば、「どのように考えが深まったか」がわかるようにします。
Issueラベルは、学習カードにつける目印です。
ラベル名は英語のままで使います。 理由は、GitHub Actionsやスクリプトが読み取りやすく、ほかの人がコピーしても壊れにくいからです。
ただし、ラベルの説明文は中学生にもわかる日本語にしています。
ハーネス開始時には、Codexがまずラベルを整理します。 最低でも、次の3つは必ず付けます。
type:*: そのIssueがどんな学習かstatus:*: 今どんな状態かportfolio:*: Webレポートに載せるか
教科や進め方が判断できる場合は、subject:*、needs:*、difficulty:* も付けます。
portfolio:show と portfolio:hide は同時に付けません。
例:
subject:math: 数学の学習ですtype:concept: 言葉や仕組みを理解する学習ですtype:mistake: 間違えた理由を整理する学習ですstatus:ready: すぐに学習を始められる状態ですneeds:hint: まずヒントがほしい状態ですportfolio:show: Webの学習レポートに載せますportfolio:hide: Webの学習レポートには載せません
ラベルの一覧は docs/labels.md にあります。 ラベルをGitHubに反映するときは、次を実行します。
npm run sync-labels学習を始めたら、内容がわかるブランチ名を使います。
Issue番号がある場合は、次の形にします。
study/YYYYMMDD-issue-N-topic-slug
例:
study/20260513-issue-7-linear-function
Issue番号がまだない場合は、次の形でもよいです。
study/YYYYMMDD-topic-slug
ハーネス終了 と言ったら、CodexはすぐにIssueを閉じません。
まず、次のことがそろっているか確認します。
- 何を学んだか
- 最初に何がわからなかったか
- 自分ではどう考えたか
- 途中で考えがどう変わったか
- 何に気づいたか
- 確認問題や類題を1問以上やったか
- 間違えやすい点は何か
- 次に復習することは何か
足りないものがある場合、Issueは閉じません。 Codexは「閉じる前に必要なこと」を短く出します。
GitHub Pagesで正しいレポートを出すために、順番が大事です。
正しい順番:
1. 学習ログやレポートの変更をコミットする
2. 学習ブランチをmainに合流する
3. mainに合流してからIssueを閉じます
4. Portfolio workflowが動く
5. GitHub PagesにHTMLが公開される
Issueを先に閉じると、古いファイルでレポートが作られることがあります。 そのため、必ずmainに合流してからIssueを閉じます。
PRを使う場合は、PR本文に次のように書きます。
Closes #<Issue番号>
これを書くと、PRがmainに合流したあとでIssueが自動で閉じます。 順番がずれにくいのでおすすめです。
全体の学習レポートを作る場合:
npm run build:portfolioこのコマンドは、HTMLの public/index.html に加えて、Markdown版の public/portfolio.md も作ります。
特定のIssueから、思考深化レポートを作る場合:
npm run harness:end-report -- --issue <Issue番号>Markdown版も同時に作る場合:
npm run harness:end-report -- --issue <Issue番号> --markdown-out public/thinking-depth.md学習ログファイルから作る場合:
npm run harness:end-report -- --source learning-log/YYYY-MM-DD-topic.md作られたHTMLは public/ に入ります。
Markdown版も同じく public/ に入ります。
public/ は自動生成される場所なので、ふつうはコミットしません。
Portfolio workflowが動くと、次のページが作られます。
index.html: 全体の学習レポートthinking-depth.html: 最新の思考深化レポートthinking-depth/issue-<Issue番号>.html: Issueごとの固定レポートportfolio.md: Pages公開に失敗した場合にも読めるMarkdown版の全体レポートthinking-depth.md: Pages公開に失敗した場合にも読めるMarkdown版の最新レポート
URLの例:
https://<owner>.github.io/<repo>/
https://<owner>.github.io/<repo>/thinking-depth.html
https://<owner>.github.io/<repo>/thinking-depth/issue-<Issue番号>.html
Pagesの権限や設定の問題でHTML公開が失敗した場合でも、Portfolio workflowは portfolio-markdown というActions artifactをアップロードします。
GitHubのActions画面で該当runを開き、Artifactsから portfolio-markdown をダウンロードすると、次のMarkdownを確認できます。
portfolio.mdthinking-depth.mdthinking-depth/issue-<Issue番号>.md
手動でGitHub Pagesを作り直す場合:
gh workflow run portfolio.yml
gh run watch特定のIssue番号を指定する場合:
gh workflow run portfolio.yml -f issue_number=<Issue番号>
gh run watchnpm install
npm run check
npm run sync-labels
npm run build:portfolio
npm run build:thinking-depth
npm run harness:end-report -- --issue <Issue番号>.github/ISSUE_TEMPLATE/ Issueを作るときのテンプレート
.github/workflows/ 自動チェックとGitHub Pages公開の設定
config/labels.json Issueラベルの名前と説明
docs/ 詳しい説明
goals/ 長期、月間、週間の目標
learning-log/ 学習ログ
prompts/ Codexに渡すためのプロンプト
scripts/ チェックやHTML生成のスクリプト
AGENTS.md Codexに守ってほしいルール
README.md この使い方説明
LICENSE ライセンス
このハーネスは、AIに宿題を丸投げするためのものではありません。
Codexは、次のように使います。
- まず自分の考えを書く
- わからないところを質問する
- すぐ答えを見ずにヒントをもらう
- 自分の答えを添削してもらう
- 間違えた理由を説明できるようにする
- 最後に確認問題で試す
「自分がどう考えたか」を残すことが、このハーネスの一番大事な目的です。
このリポジトリはMITライセンスです。
Copyright (c) 2026 Aoyama Gakuin Junior High School, Noboru Ando.
詳しくは LICENSE を見てください。