Imported from takunagai/agent-assets (
skills/cloudflare-lesson-note/SKILL.md). Install upstream withnpx skills add takunagai/agent-assets --skill cloudflare-lesson-note. Copyright stays with the author.
Cloudflare Lesson Note スキル
概要
Cloudflare 学習カリキュラムのセッション内容を、技術ブログとして公開できるレベルの Obsidian ノートに整形・保存し、あわせて進捗(Dashboard.md)を更新する。このスキルは学習 Vault への唯一の書き込み担当(tutor は読み取り専用)。
責務の分担:
- 本スキル(保存): ノート整形・保存 + Dashboard.md の進捗更新(唯一のライター)
- cloudflare-lesson-tutor(授業運営): カリキュラム進行・鮮度検証・授業実施。Vault へは読み取りのみ
- 接続: tutor がセクション終了時に「ノートを保存して」を促し、本スキルに引き継ぐ
参照する 2 つの正本ファイル
保存先 Vault のパスは環境変数 $LESSON_VAULT_PATH で指定する(未設定ならユーザーに確認する)。Vault 直下に次の 2 ファイルがある。どちらも本スキルの入力として読む。
| ファイル | 役割 | 本スキルの扱い |
|---|---|---|
<VAULT>/CURRICULUM.md |
カリキュラムの設計正本(各セクションの到達目標・参照先・Phase 構成)。進捗は書かれていない | 読み取り(保存対象セクションの到達目標・タイトルの確認) |
<VAULT>/Dashboard.md |
進捗の正本(現在地・完了状況・進捗バー) | 読み取り+更新(保存後に本スキルが書き込む) |
<VAULT>は$LESSON_VAULT_PATHの実体- ノートは Phase ごとのサブディレクトリ
<VAULT>/Phase N/に保存する - 特定の Vault に密結合せず、保存先は設定で差し替え可能
ワークフロー
Step 1: セッション内容の特定
会話履歴から以下を抽出する:
- セクション番号:
<Phase>-<連番>方式(例 "1-5"、"3-2")。CURRICULUM.md の番号方式に一致させる - 授業の本文: 概念説明、図解、コード例
- Q&A: ユーザーの質問と回答(数を数えておく。Dashboard の表に記録する)
CURRICULUM.md の該当セクションを読み、到達目標と正式タイトルを確認する。
Step 2: ノートの構成
以下のテンプレートに従って Markdown ファイルを生成する。frontmatter は既存ノートの構造に一致させる(curriculum と verified を含む)。
---
tags:
- cloudflare
- phase-N
- <関連技術タグ>
phase: N
section: "N-N"
curriculum: 2026-07
title: "<セクションタイトル>"
date: YYYY-MM-DD
verified: YYYY-MM-DD
status: completed
---
# <セクション番号>. <タイトル>
<リード文: この記事で何がわかるかを2-3文で>
---
## <見出し1>
<本文>
## <見出し2>
<本文>
...
## まとめ
<学んだことの要約を箇条書きで>
---
## Q&A
### Q: <質問の要旨>
<回答の核心を3-5行で>
### Q: <質問の要旨>
<回答の核心を3-5行で>
verifiedは「授業中に公式情報(retrieval)で検証した日」。通常は当日。詳細は Step 3 の鮮度チェックを参照- 本文を書く際は
references/explain-hard-concepts.md(共有リソース_lesson-methods/への symlink)のメソッドを適用する: 既知から入る/多義語を即定義する/抽象と具体を往復する/未知を既知に着地させる/マウント検査を通す
Step 3: 品質チェック
以下を確認してからファイルを保存する:
- 読者視点: Cloudflare 初学者が読んで理解できるか
- 図解の保持: ASCII 図やテーブルは必ず含める(授業の図解は全て残す)
- コード例: 実行可能なコードブロックを含める
- Q&A の凝縮: 質問の要旨と回答の核心のみ。3-5行に凝縮
- AI っぽさの排除: 以下の表現を避ける
- 「〜と言えるでしょう」「〜ではないでしょうか」
- 「様々な」「非常に」の連発
- 「〜について解説します」で始まる導入
- 「〜することができます」(→「〜できます」に) (私見を差し出す推量「〜のではないか」「〜と考える」は可。結論をぼかす修辞疑問と混同しない)
- マウント検査: 難語・専門用語で知性を見せている箇所がないか(→ 新しい視点に置き換える)
- 鮮度チェック(
verifiedの裏づけ): 本文に授業中 retrieval で検証していない具体値(価格・上限値・API 署名・バージョン・GA/ベータ状態)が残っていないか確認する。未検証の具体値があれば、その箇所をユーザーに指摘してから保存する(例: 「Workflows v2 の同時実行 50,000 は授業中に一次情報で確認しましたか。未確認ならverifiedに含めず、本文に[要確認]を付けます」)。検証済みの日付をverifiedに記入する
Step 4: ファイル保存(上書き保護つき)
- ファイル名:
<セクション番号> <タイトル>.md(例:1-5 2026 年の開発フロー.md) - 保存先:
<VAULT>/Phase N/ディレクトリ(<VAULT>=$LESSON_VAULT_PATH) - ディレクトリの事前確認:
Phase N/が存在しない場合は作成するか、ユーザーに確認する - 上書き保護: 保存先に同名ノートが既に存在する場合は、黙って上書きしない。既存ノートとの差分(追記・変更される見出しや内容)を要約して提示し、ユーザーの承認を待ってから書き込む
- 画像・アセット: 図を画像化して添える場合、画像は
<VAULT>/assets/に置き、本文からは![[ファイル名]]で埋め込む。ファイル名は<セクション番号>-<内容>.png(実例: 既存ノートの![[2-1-wrangler-lifecycle.png]])。ASCII 図はそのまま本文に残してよい(画像化は必須ではない) - 通知: 保存完了後、ファイルパスを表示
Step 5: Dashboard.md の進捗更新(単一ライター)
ノート保存後、<VAULT>/Dashboard.md を更新する。Dashboard.md に書き込むのは本スキルだけ(単一ライター原則。進捗の完了記録は「保存」という行為の一部であり、書き込み箇所を 1 スキルに集約することで tutor の読み取りと整合が壊れない)。
更新する 4 箇所(実物の Dashboard.md の構造に合わせる):
- Phase 別チェックリスト: 該当セクションの
- [ ]を- [x]に変える - 完了したセクションの表: 行を追加する。列は
新番号 | セクション | 完了日 | Q&A | 備考。セクション列は Wikilink(例:[[Phase 1/1-5 2026 年の開発フロー\|2026 年の開発フロー]])、Q&A 列は Step 1 で数えた件数(例:2問。0 なら0問) - 全体進捗バー: 該当 Phase と総合の 2 本を再計算する。バーは 20 文字幅、
█(塗り)+░(空き)。塗り数 = round(完了 / 総数 × 20)。行末に<完了>/<総数> セクション (NN%)を添える(Phase 行は完了 0 のとき(NN%)を省いてよい。総合行は常に付ける) - 現在地: 「次のセクション」を CURRICULUM.md の順で次の未完了セクションに更新する。ヘッダの「最終更新: YYYY-MM-DD」も当日に更新する
更新後、変更した箇所(チェック・表の新規行・進捗バーの新旧・次セクション)を簡潔に報告する。
表記ルール(ノート生成時に適用)
- ダッシュ(主題と副題などの区切り)は
─(U+2500 罫線素片)1 個に統一する。―(全角ダッシュ)・──(連続)は使わない。Markdown 水平線---、複合語のハイフン-、長音符「ー」は対象外 - 丸数字(丸囲みの連番文字)を使わない。「1.」「2.」等のアラビア数字か「手順1」「ステップ1」で表す
文体ガイドライン
基本トーン
- 技術的に正確だが、親しみやすい語り口
- 断定調を基本とする(「〜です」「〜します」)
- 読者に語りかける文体(「あなた」を自然に使う)
構造
- 見出しだけで内容が分かるようにする
- 1セクション = 1つの概念
- 抽象 → 具体 → コード例 の流れ
- 比喩やたとえ話は積極的に残す(理解の助けになる)
- 詳細技法は
references/explain-hard-concepts.mdを参照(技法A〜D: 入り口設計・言葉の固定・抽象具体往復・リズム)
コード
- コードブロックには言語指定を必ずつける
- コメントは日本語
- 実行可能な完全版を提供(省略しない)