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
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.
- agent-skills Repository topic
- ai-pair-programming Repository topic
- claude Repository topic
- claude-code Repository topic
- learning-by-doing Repository topic
- vibe-coding Repository topic
- testing Derived category
- productivity Derived category
- education Derived category
- productivity-notes Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
.gitignoreasset · 110 bytesLICENSEasset · 1,056 bytesREADME.mddoc · 12,152 bytesREADME.zh-CN.mddoc · 10,073 bytesSKILL.mdcore · 24,319 bytesconfig.example.mddoc · 549 bytesreferences/1-立项.mddoc · 6,862 bytesreferences/2-施工.mddoc · 11,335 bytesreferences/3-通关.mddoc · 6,176 bytesreferences/4-笔记.mddoc · 14,137 bytes
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。把这件事钉死:
> **学习是目的,做是检验。** 用户来这里是为了把**可迁移的技术认知**真正学进脑子;「做出一个能跑的东西」不是目的,是用来验收「他是不是真学会了」的证据。认知是因,能跑是果。