Individual skill

build-to-learn

Learn by building — learning is the goal, building is the test. When the user wants to make something, first turn the product into scenario scripts, translate those into capability blocks, then cut a ladder of stages: stage 1 is a runnable MVP, every later stage adds one block and still runs. Each stage carries a component diagram as the learning object. Plain-language logic first, code as the footnote; experiments favor deliberate wall-hitting and contrastive failure; side-quests open in both directions; learnings land in permanent notes and a cross-project capability library. Built for the delegator who ships while AI writes the code. Speaks whatever language the user speaks. Triggers: /build-to-learn, "walk me through building X and make me actually learn it", "I want to build X but I don't know the tech", "don't just write it for me, I want to understand it", "I still don't get this part", "next one"; 中文触发:/边做边学、「带我做个东西并学会」「我想做 X 但不懂技术」「别直接帮我写,我要学会」「这块我还没懂」「继续下一个」。Use when the user wants to deeply LEARN how something works by building it, where building is the test of understanding — not get code dumped on them.

SKILL.md

Read pinned source

Source commit 43dbd4670c3a507dc62bdea11a81d280502cb200

What was checked

Matches the observed repository HEAD
Yes
Scanner rules are current
Yes
Repository scan complete
Yes
Skill scan complete
Yes
Observed behavior
Instructions only
Last checked
Nov 11, 2026

These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.

Install this skill

Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.

Claude Code

Destination .claude/skills/build-to-learn

( set -euo pipefail destination='./.claude/skills/build-to-learn' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Tasihi89/build-to-learn.git' "$work/repo" git -C "$work/repo" checkout --detach 43dbd4670c3a507dc62bdea11a81d280502cb200 git -C "$work/repo" archive --format=tar '43dbd4670c3a507dc62bdea11a81d280502cb200' > "$work/skill.tar" mkdir -p -- './.claude/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Codex

Destination .agents/skills/build-to-learn

( set -euo pipefail destination='./.agents/skills/build-to-learn' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Tasihi89/build-to-learn.git' "$work/repo" git -C "$work/repo" checkout --detach 43dbd4670c3a507dc62bdea11a81d280502cb200 git -C "$work/repo" archive --format=tar '43dbd4670c3a507dc62bdea11a81d280502cb200' > "$work/skill.tar" mkdir -p -- './.agents/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Cursor

Destination .cursor/skills/build-to-learn

( set -euo pipefail destination='./.cursor/skills/build-to-learn' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Tasihi89/build-to-learn.git' "$work/repo" git -C "$work/repo" checkout --detach 43dbd4670c3a507dc62bdea11a81d280502cb200 git -C "$work/repo" archive --format=tar '43dbd4670c3a507dc62bdea11a81d280502cb200' > "$work/skill.tar" mkdir -p -- './.cursor/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Gemini CLI

Destination .gemini/skills/build-to-learn

( set -euo pipefail destination='./.gemini/skills/build-to-learn' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Tasihi89/build-to-learn.git' "$work/repo" git -C "$work/repo" checkout --detach 43dbd4670c3a507dc62bdea11a81d280502cb200 git -C "$work/repo" archive --format=tar '43dbd4670c3a507dc62bdea11a81d280502cb200' > "$work/skill.tar" mkdir -p -- './.gemini/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
GitHub Copilot

Destination .github/skills/build-to-learn

( set -euo pipefail destination='./.github/skills/build-to-learn' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Tasihi89/build-to-learn.git' "$work/repo" git -C "$work/repo" checkout --detach 43dbd4670c3a507dc62bdea11a81d280502cb200 git -C "$work/repo" archive --format=tar '43dbd4670c3a507dc62bdea11a81d280502cb200' > "$work/skill.tar" mkdir -p -- './.github/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
OpenCode

Destination .opencode/skills/build-to-learn

( set -euo pipefail destination='./.opencode/skills/build-to-learn' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Tasihi89/build-to-learn.git' "$work/repo" git -C "$work/repo" checkout --detach 43dbd4670c3a507dc62bdea11a81d280502cb200 git -C "$work/repo" archive --format=tar '43dbd4670c3a507dc62bdea11a81d280502cb200' > "$work/skill.tar" mkdir -p -- './.opencode/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )

Repository context

Repository stars (not skill ratings)
85
Repository last updated
Aug 2, 2026
License
MIT

Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.

Files and excerpt

File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.

Browse files
Read excerpt

# Build to Learn(边做边学 · 学为目的,做为检验)

> v2.8(2026-07-31 教程入口):根目录新增 `README.md`——给人看的教程,用户侧介绍以它为真源。首次开张的开场清单带「先看教程」入口;任何时候用户说「教程 / 怎么用」→ 原样给 README(细则见开场节教程分支)。
> v2.7(2026-07-31 考验收口):**需要用户开口应答的检验,全流程只剩通关正题 1 道/阶段。** 续做图问改**自答式**——题和答案同一条消息给(题在上、答案紧跟在下),用户自己对照;对不上他自己开口才进复习,AI 不等应答、正常往下接。大考第 0 题改**不拦路**——首次联跑前一句「心里押一下会跑成啥样」,不等回答直接交棒去跑,跑完拿现象回照;他真说了预测就认真对照。用户原话:「问完直接给答案就行」「考验在少且关键的地方,要不然太耽误开发效率」。
> v2.6(2026-07-30 通关单题制):大考砍到每阶段正题 1 道——AI 挑最值题型(迁移四问优先,四小问以内),第 0 题保留;没考到的记待加固、下阶段消化。用户当天四轮反馈的总方向一致:**互动预算全让给「做」**,一个阶段的问答总预算 ≈ 图问 1 道+通关 1 道。
> v2.5(2026-07-30 施工期零设问):施工期 AI 不抛任何问题——v2.3 保留的现象预测、撞墙后「你先说说为什么」全废(用户第三次点名:「讲解 → 做完 → 测验时再问」)。撞墙后现象在先、AI 讲解紧跟。轻验收的随口提问同废,要点落盘触发改「部件真机跑通、用户亲眼看过现象」。检验只剩:通关大考(含第 0 题、回头题)、续做开场图问。问答的发起权归用户——他自己冒出的问题永远是最高价值岔路。
> v2.4(2026-07-30 说人话):后台调度词不出口、不模仿本文档压缩腔、抛问先摆场景;尺子加第 8 条。身份是场景里带做的教练,不是报流程的司仪。
> v2.3(2026-07-30 检验后置):施工期废除「写完代码先预判再跑」的闸、全禁「找坑式预判」(「哪里会不对劲/会踩什么坑」这类对没跑过的东西空想的题——实测产出茫然不产出认知,用户点名)。坑的学法一律改「跑 → 撞上 → 用户验尸」:现象在先、因果在后。预测题只剩**现象预测**(有候选抓手、答案可从刚讲的原理一步推出),每部件仍限 1 道、可不出。大考/回头题/续学图问照旧不动。
> v2.2(2026-07-30 降检验密度):施工期问答停砍半——预测题每部件限 1 道、换部件陈述式交棒、复述过免验;大考/回头题/续学图问不动,留存全压在这几个真闸门上。(其中「代码预判只考首次模式」当天即被 v2.3 覆盖——首次模式也不再事前预判。)
> v2.1(2026-07-29 解耦拆分):本文件 = 常驻件(理念 + 铁律 + 路由),流程细则在 `references/` 四份阶段文档里,见下「路由表」。

你是带人「边做边学」的 AI。把这件事钉死:

> **学习是目的,做是检验。** 用户来这里是为了把**可迁移的技术认知**真正学进脑子;「做出一个能跑的东西」不是目的,是用来验收「他是不是真学会了」的证据。认知是因,能跑是果。
Back to top