終端機優先的 kan.bn 教育工具:學生用 CLI 更新進度並反思,教授監控全班思考參與度。
Project description
EduKan
終端機優先的 kan.bn 教育工具。學生用 CLI 更新進度並留下思考痕跡;教授監控全班的思考參與度並做出有證據的形成性回饋與評分。
核心理念:學生在卡片上寫的 comment 與描述修改,組成一份「思考語料」——它既是學生成長的學習產物,也是教授打分的證據。「把卡片拖到 Done」不等於「有思考」。
設計:兩層分開
- Tier 1 參與度(雷達,不算分):最近活躍、思考活躍天數、進度燈號 🟢🟡🟠🔴⚪,只用來路由教授的注意力。
- Tier 2 思考深度(打分依據):教授(或 Claude 輔助)親讀思考語料,依公開方向的 rubric 評估。
安裝
uv tool install edukan # 推薦(或 pipx install edukan / pip install edukan)
學生快速上手
edukan login # 貼上 kan.bn API key(kan_xxx)
edukan use-board <你的 board id> # 設定一次
edukan card update <cid> --list Complete # 移到完成欄 → 邀請你寫一句反思
edukan comment add <cid> "我發現原本的假設在 X 不成立,所以改成…"
edukan me # 私人鏡子:只看自己的思考軌跡(無排名/分數/他人)
教授快速上手
edukan login
edukan admin summary --cohort 2026-spring --roster roster.yaml # 全班 triage 雷達
edukan admin student 王小明 --cohort 2026-spring --roster roster.yaml # 讀某生思考語料
roster.yaml(班級名冊,支援 cohort/學期、封存):
workspace: <workspacePublicId>
cohorts:
2026-spring:
done_lists: ["Complete", "Done"]
students:
- name: 王小明
email: xiaoming@example.com
board: <boardPublicId> # 在 kan.bn 網頁手動建好後填入
AI 計費與訂閱界線(重要)
EduKan 的 AI 輔助有兩條路:
--assist claude-code:外呼你本機已登入的claudeCLI(claude -p),跑在你的 Claude Code 訂閱底下、零 API 費。界線:EduKan 只是subprocess呼叫你真實的claude二進位, 不代理/不擷取你的 OAuth token,也不在 prompt 冒充任何第三方 app。這是合規的本機自用方式。--assist claude:用ANTHROPIC_API_KEY打 Anthropic API(按 token 計費)。託管/自動化/多老師 服務請走這條(伺服器端不能、也不應借任何人的個人訂閱)。
一句話:claude-code 給「教授本機自用」;API key 給「託管或自動化」。
過程證據(D2/D7,反監控設計)
edukan admin timeline <學生> 把每張卡的活動時間軸(建立/留言/描述修改/移動)與反思並列,
並給一個非評斷的類別(與時間軸相符/單次工作階段/集中一次寫成)。這是對話引子,不是指控、
不自動扣分、不做 AI 文字偵測——AI 代寫的反思難以對上多天多卡的真實工作節奏,但不一致也可能有
無辜原因(線下工作、先想後做),所以一律由教授判讀、用來開啟對話。
開發
uv sync
uv run pytest # 單元 + 契約測試
EDUKAN_LIVE=1 uv run pytest tests/test_smoke_live.py # 對真實 kan.bn 的唯讀煙霧測試
設計文件見 docs/plans/。授權:MIT。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file edukan-0.6.0.tar.gz.
File metadata
- Download URL: edukan-0.6.0.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6820335f3d89c9edaa691b22d36c9b55a8e7e13ae3eb31421071d16260367a2d
|
|
| MD5 |
1c69b16798ffd1091529de45853d73af
|
|
| BLAKE2b-256 |
5254be5d674ed13ef23a8423f942435ca75eac2c6dff2577352eeabf6008d91b
|
File details
Details for the file edukan-0.6.0-py3-none-any.whl.
File metadata
- Download URL: edukan-0.6.0-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b76072aa27f6943ff9249de261f1653efda37f8c2aaef47c88cee9b924c929e
|
|
| MD5 |
8acbf46e021ed9087abe210c51936756
|
|
| BLAKE2b-256 |
cc6919e0fce4577ea86c6b3cc337ebd48e14518158875146518858fc5120b1b4
|