re0-tutorial について
re0-tutorialは、人が選んだスキル演習を進め、提出物を評価して各試行を記録する教育用スキルです。個別スキル、複数スキルの組み合わせ、コードベースの課題を扱い、完了は演習基準を満たしたことだけを示します。
主な機能
- 013段階でスキル演習を進行
- 02提出物と評価基準を事前に提示
- 03スキルの契約に基づいて成果物を評価
- 04学習者作成とエージェント作成を区別
- 05証拠を含む変更不可のローカル記録を追加
活用シーン
- 011つのスキルを練習し成果物を検証
- 02スキルの組み合わせで順序や省略を検討
- 03コードベースの課題に選んだ組み合わせを適用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lilmgenius/ paperthin --skill re0-tutorialインストール後、Claude Code で/re0-tutorialを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlscripts/attempt.mjsattempt.test.mjs詳細
人間が選んだ演習を3つのレベルで進め、学習者の提出物を評価し、非公開の試行記録を追加します。
目標
1つのスキルのベストプラクティス、組み合わせについての推論、現実の問題への適用を、この順序で教えます。完了とは、提出された演習が契約を満たしていることのみを意味します。人間による完了と応用力は測定されません。シミュレートされた学習者も呼び出しトレースも、学習を測定するものではありません。
ワークフロー
- 人間からの呼び出しがあった場合にのみ開始します。対象、レベル、演習 ID に合意します。インストール済みの対象スキルと、その契約を「Verification」を含めて読みます。呼び出し経路を優先するのではなく、教える内容に基づいてスキルを選びます。学習者が始める前に、必要な提出物と評価基準を伝えます。
- 以下の表に従ってレベルを定義します。学習者の手順を代わりに実行したり、提出物を作成したり、L3 の組み合わせを示したりせずに、タスクとそのトリガーを説明します。学習者の提出を待ちます。
- 再開時には、このスキルのフォルダーから
node scripts/attempt.mjs --exercise <id> --skills <skill folders...> [--json]を演習のスキルフォルダーを指定して実行します。このコマンドは、改行コードを正規化してそれらの内容をダイジェスト化し、.re0/tutorial/<exercise>/にある演習の記録を読み込み、最新の記録を現在のインストール状態と比較して、ステータス(fresh、match、version-only、content-difference、stale、unreadableのいずれか)と、次に未使用の試行パスを出力します。終了コードは、0 がfresh、match、version-only、3 がcontent-differenceまたはstale、4 がunreadable、2 が使用法エラーです。使用法エラーは実行失敗です。コマンドを修正して再実行してください。そのステータスに対して以下の再開ルールを適用します。名前が変更された依存関係に黙って置き換えてはいけません。 - 提出物が存在することを確認して作成者を特定し、その後、レベルの基準に照らして評価します。決定的な証拠と理由を記録します。呼び出し、アクターラベル、ホストトレースは文脈を示すだけであり、学習者の能力を証明したり、作成者が曖昧な場合にそれを確定したりすることはできません。
- 手順3で出力された
next pathに、新しい不変の試行記録を1件書き込みます(.re0/tutorial/<exercise>/<version>-<attempt>.local.md)。初回の試行でも、スクリプトはこのパスを出力します。評価結果、必要な確認事項、記録のパスを報告します。completedの評価のみが演習完了バッジの対象になります。
| レベル | 学習者のタスクと必要な提出物 | 評価基準 |
|---|---|---|
| L1 | 自分自身の実際の成果物を選び、1つのスキルを適用して、できあがった成果物を提出します。 | トリガーを明示し、対象スキル自身の「Verification」セクションを引用します。演習の説明文ではなく、その基準に照らして成果物を確認します。 |
| L2 | 2つ以上のスキルの組み合わせに取り組み、できあがった成果物と、順序、省略した手順、権限について自分で記述した説明を提出します。 | 各手順が次の手順より先に実行される理由、省略した内容とその理由、提供された契約に照らして各手順を誰が実行する必要があるかを確認し、成果物も確認します。真の場合、根拠のある「省略不要」または「ここではユーザーのみが実行する手順はない」という説明は合格です。説明の欠落、または省略した手順やユーザーのみが実行する手順の捏造は不合格です。 |
| L3 | 現在のコードベースにある実ファイルから意図的にランダム化された問題を解決し、自分で組み合わせを選んで、作成した成果物を提出します。 | 成果物が提示された問題に対して単独で成立するかを評価し、手順の説明は評価対象にしません。エージェントが提示した組み合わせを使った場合は不合格です。 |
採点
各提出物が必ず1つの評価を受けるよう、次の判断を上から順に適用します。
- 必須の成果物またはアカウントがない場合:
not-completed、バッジなし。 - エージェントが必須の作業を行った場合:
not-completed、バッジなし。「支援を受けて完了」としてはなりません。 - 提出物はあるものの結論が出せない場合、または学習者が作成したものか不明もしくは曖昧な場合:
not-completedとし、判断を確定するために必要な具体的な学習者の証拠を明記したpending-clarificationの注記を付けます。バッジは付けません。トレースから回答を推測してはなりません。 - 学習者が作成したことが確認でき、すべてのレベル基準を満たしている場合:
completed。バッジが示すのは、この演習を完了したことのみです。いずれかの基準を満たさないと結論づけられる場合は、その理由を添えてnot-completedとし、バッジは付けません。
ローカル記録と再開
各記録には exercise、version、attempt、learner-action、evidence、result を含めます。evidence は学習者が提出した成果物またはアカウントであり、保持するか、永続的に参照できるようにします。actor と host-trace を追加し、補足情報にすぎないことを明示します。また、演習の依存関係の変更を無関係なバージョン変更と区別できるよう、インストール済みスキルとその内容を特定する skill-set digest を含めます。試行を解釈するために必要なレベル、依存関係の識別情報、採点の根拠、理由、確認事項または先行記録へのリンクも含めます。
ログブックは所有者のみが閲覧でき、マシン上にローカルで保存します。.re0/ と *.local* で追跡対象外とし、配布してはなりません。不合格および中断した試行は、その理由とともに保持します。既存の記録を編集、上書き、削除してはなりません。記録済みの試行を重複して再開する場合は、修正版ではなく、前の記録にリンクした新しい記録を作成します。以前の not-completed の判断を変更できるのは、後続の記録において新たな学習者の証拠が得られた場合のみです。
- バージョンとダイジェストが一致する場合は、保存された時点から演習を続行します。未記録の試行を続行しても重複記録は作成されません。いったん記録が作成された後に再度記録する場合は、新しい試行識別子を使用します。
- インストール済みのバージョンのみが異なり、演習自体のスキルに変更がない場合は、新しいリンク付き記録に差異を明記して再開します。バージョンの違いだけで提出物の合否が決まることはありません。
- 通常の再開時に、依存関係の名前は同じでも、インストール済みの内容が記録されたスキルセットのダイジェストと異なる場合は、以前の記録を保持し、新しいリンク付き試行記録に内容の差異を記します。演習で引用された Verification の文章が現在のスキル本文にもそのまま残っている場合は、その文章に基づいて再開し、採点します。その文章がない場合は必須のテキストが欠けているため、stale のルールに従って以前の試行を
staleと分類し、バッジなしで新しいバージョンを記した試行を開始します。 - 依存関係の名前が変更された、廃止された、または存在しない場合は、それを参照する新しい現行バージョンの試行記録に、以前の試行を
staleと分類して記録します。元のバージョンと結果を含め、以前のファイルはそのまま残し、バッジなしで新しい演習の試行を開始します。以前の演習を名前変更後のスキルに割り当て直したり、依存関係が引き続き存在するかのように採点したりしてはなりません。 - 中断は
failedと区別してincompleteと記録します。中断した演習を続行できるのは、バージョンが一致する場合のみです。それ以外の場合は、新しいバージョンを記した試行を開始します。この中断時のルールは、通常のバージョンのみが異なる場合の再開ルールより優先されます。 incomplete、failed、staleは試行のライフサイクル状態を示すものであり、提出物の追加の評価ではありません。いずれもバッジの対象にはなりません。
ルール
- ユーザーが意図的に開始します。採点対象の演習を開始するのは、学習者自身の意図的な選択です。
- 提出物を採点して試行を記録してください。学習者に代わって演習を実施したり、成果物やアカウントを作成したり、学習の証拠として学習者の行動をロールプレイしたりしてはいけません。ユーザーのみが実行できる操作は、人間が実行できるようにしてください。
- パイプラインが存在していても L2 を維持してください。固定された実行順序は、順序、省略、権限についての学習者の推論を示すものではありません。
- 演習を進めてください。カタログの案内とルーティングは別の場所に任せてください。ガイドのインストールは不要です。レッスンを実行パイプラインや汎用ワークフロー推薦に変えてはいけません。
- 能力、認定、ランキング、測定された学習効果を主張してはいけません。人間が新しいタスクにスキルを適用して初めて、学習内容を別の場面に活用できたといえます。このチュートリアルでは、それを測定しません。
検証
完了前に、以下の相互に重複しない7つのシナリオをルールと照合してください。再開のケースでは、提出物の採点前にライフサイクルの扱いを決定します。これらは提出物の採点の代わりにはなりません。各行には、結果が1つ、記録アクションが1つだけあります。
| シナリオ | 結果は1つだけ | 記録アクションは1つだけ |
|---|---|---|
| 提出あり:必要な作業がすべて学習者自身によるものと明確に確認でき、レベルの基準を満たし、依存関係も有効です。 | completed、演習バッジのみ。 | 提出物の証拠、契約チェック、バッジを含む新しい試行記録を1件作成します。 |
| 提出なし:必要な成果物またはアカウントがありません。 | not-completed、バッジなし。 | 不足している提出物を明記した新しい試行記録を1件作成します。 |
| 判断不能:必要な作業はありますが結論を出せない、または作成者が不明もしくは曖昧で、エージェントが作成したと確認されていません。 | not-completed とし、pending-clarification の注記を付けます。バッジはありません。 | 判断を確定するために必要な学習者の証拠を具体的に示した新しい試行記録を1件作成します。 |
| エージェント作成:必要な作業があり、エージェントが作成したと確認されています。 | not-completed、バッジなし。 | エージェントが作成した作業を失敗理由として特定した新しい試行記録を1件作成します。 |
| 古い依存関係:再開時に、必要なスキルの名前が変更された、廃止された、または存在しません。 | 以前の試行は stale です。新しいバッジはありません。 | 以前のファイルをそのまま保持し、リンクされた先行試行を古いものとして示す、新しい現行バージョンの試行記録を1件作成します。 |
| バージョンのみの差異:中断された試行ではない通常の再開で、演習の依存関係に変更はありません。 | 再開できます。既存の採点結果は変更されず、バージョン確認による新しいバッジもありません。 | バージョンの差異と、依存関係の比較に変更がないことを記載した、新しいリンク済み試行記録を1件作成します。 |
| 依存関係の内容のみの差異:通常の再開で、依存関係の名前は変わっていませんが、インストール済みの内容が記録されたスキルセットのダイジェストと異なります。バージョンが異なるかどうかは問いません。 | 引用された「検証」の段落が現在のスキル本文にそのまま存在する場合は、その段落に照らして再開し、採点します。それ以外の場合は、必要なテキストがないため、既存の古い依存関係のルールに従って以前の試行を stale にし、バッジなしでバージョンを示した新しい試行を開始します。 | 内容の差異と、引用された段落がそのまま存在するか欠落しているかを記載した、新しいリンク済み試行記録を1件作成します。欠落している場合は、以前のファイルをそのまま保持したまま、先行試行を古いものとして示します。 |
すべての記録で未使用のパスを使用し、必須フィールドを含め、以前の記録をそのまま保持していることを確認してください。検証中に人間が学習を完了した、または別の場面で活用したと主張せず、実際の採点結果または再開結果を報告してください。