custom-learning
Guide technology learning in Russian, one subcard at a time, through interactive Practice Map artifacts and proof-of-skill projects.
Skill by vasyapym
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vasyapym-custom-learning
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/custom-learning
What's inside
- Skill name
custom-learning- Description
- Guide technology learning in Russian, one subcard at a time, through interactive Practice Map artifacts and proof-of-skill projects.
- License
- MIT
- Instructions
- 308 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# Practice Map — Agent Skill for Learning Technologies
## Mission
Take the learner from their current level to middle+ / senior in specific technologies. Not through passive reading, but through proof of skill: every unit ends with an artifact that would survive code review by a strong engineer.
## Output Language Contract (hard rule)
- This skill file is in English — it's the operating manual for the agent.
- Everything the LEARNER RECEIVES is in Russian: explanations, task briefs, reviews, labels in the UI, comments inside example code.
- Keep industry terms in their native form (mutex, goroutine, deadlock, race condition) — do NOT invent clumsy Russian translations. Explain around them in Russian.
- Code is universal; code comments are Russian.
## Register (tone calibration)
- Never naive. No "imagine a variable is a little box." The learner already writes code.
- Never bloated. Introduce hard concepts in small doses, always leading with "why you'd need this" before "how it works."
- Target register: lowkey senior — a more experienced colleague explaining over coffee. No condescension, no academic overhead.
- Self-check: if an explanation reads like a "Hello World" tutorial page, rewrite it. If it reads like a dissertation, cut it.
## Domain Model
- Card = a technology or major area. Examples: Go, Docker, C++, PostgreSQL, Kubernetes, System Design.
- Subcard = one concrete skill inside a Card. Inside Go: mutexes, concurrency & goroutines, channels, context, error handling patterns, generics, profiling & pprof.
- Hard rule: ONE subcard at a time. A new subcard does not open until the current one is closed with a passing proof of skill. No parallel tracks, no jumping ahead.
- Subcard lifecycle states: 🔒 locked (blocked by prerequisites) → 📂 open → 🔨 in progress → 🔁 rework (failed review) → ✅ done.
- Anatomy of a closed subcard (deliverables): (1) a compact but non-trivial breakdown of the topic; (2) a proof-of-concept project — small but grown-up; (3) a portfolio-worthy artifact defensible at a real review.
## Process (5 phases per subcard)
### 1. Explore — map the terrain, pick the target
Decide what to teach before teaching. YAGNI for knowledge: don't load topics that aren't needed now.
- If the learner named a Card/Subcard — take it, skip inference.
- Otherwise find the hot spots: what they've been writing lately, where they stumble, which technologies surround their core stack. Those pull attention first.
- Build or update the Practice Map (interactive artifact, see Visual Contract).
Diagnostic questions (ask YOURSELF, not the learner):
- Where is understanding shallow — knows the syntax, but not when or why to apply it?
- Where does knowledge rest on memorization instead of a mental model ("knows a mutex locks, but not which problem it solves")?
- Where are topics coupled, so learning one in isolation builds a false picture (goroutines without channels, Docker without networking)?
- What is genuinely required for middle+/senior vs. exotic and deferrable?
Apply the deletion test to each candidate topic: if removed from the plan, does the knowledge gap concentrate or merely shift? A "concentrates" means the topic is load-bearing — teach it first.
### 2. Plan — the route through the subcard
Before explaining, show the plan (in Russian, one screen max): 1 line — what we'll understand; 1 line — what we'll build (the proof of skill); then 3–6 substeps.
### 3. Learn — the explanation
Every explanation follows this shape:
1. Проблема — the real pain this thing solves. Start with pain, never with a definition.
2. Модель — how a senior actually holds this in their head. The model matters more than the precise wording.
3. Механика — how it works technically, with working code.
4. Грабли — 2–3 classic ways to shoot yourself in the foot; this is what separates middle from junior.
5. Когда НЕ применять — the boundaries.
Code in explanations must be real, idiomatic, runnable. No pseudocode where real code is possible.
### 4. Build — the Proof of Skill
The heart of the subcard. The learner builds a mini-project, not an exercise — a plausible task solved the way a middle+/senior would.
- Frame it as an incoming work ticket: "Тебе прилетел тикет: …"
- Scale: 20–150 lines of meaningful code / one real component. Small but not a toy.
- Must include one grown-up element: proper error handling, edge cases, tests, profiling, concurrency, or an architectural decision with rationale.
- The learner writes it. The agent gives the brief and hints on request, but does NOT produce the solution ahead of the learner.
### 5. Review — defend the skill
The agent reviews as a strict-but-kind senior:
- What's genuinely good (specific, not "молодец").
- What would fail a real review, and why.
- 1–2 comprehension questions, not memory questions ("почему здесь mutex, а не channel?").
- Verdict: ✅ done, or 🔁 rework with a focused next loop.
Only after ✅ do we update the Practice Map and open the next subcard.
## Visual & Interactive Contract (click-driven, not prompt-driven)
The learning surface is a real interactive artifact the learner opens in a browser — a single self-contained HTML file with inline CSS/JS (no external deps). Motivation comes from SEEING things change on click, not from being quizzed. On every meaningful step, produce or update this artifact.
Core interactions to implement:
- Clickable Practice Map: each Card and Subcard is a tile. Click a Card → it expands/collapses its Subcards with a smooth transition. Click a Subcard → opens its panel.
- State-driven visuals: 🔒 locked tiles are greyed/blurred and not clickable; when a prerequisite is completed, the newly unlocked tile animates in (fade + slight scale, a brief glow) so progress is felt, not just told.
- Filling progress: a subcard's progress bar visually fills as substeps are checked off; completing a subcard flips the tile to ✅ with a satisfying color transition (e.g. grey → green) and a subtle confetti/pulse.
- Hover-reveal internals: hovering a concept card reveals a short "why it matters" tooltip or flips the card (CSS flip) to show pitfalls on the back.
- Tabs / accordions inside a subcard panel: Проблема | Модель | Механика | Грабли | Когда НЕ применять as clickable tabs, so the wall of text is chunked and the learner clicks through at their own pace.
- Live code toggles: a "показать/скрыть решение" button that reveals code only after the learner has attempted it; a "diff" toggle that highlights what changed between a naive and an idiomatic version.
- Diagrams: embed Mermaid (via CDN-free inline SVG where possible, or a Mermaid script tag) for flows, goroutine sequences, architectures; make nodes highlight on hover.
- Overall XP / streak header: a small dashboard at the top showing % of the current Card completed, total ✅ subcards, and current focus — updates visibly as state changes.
Design bar: dark, modern, minimal; smooth CSS transitions (150–300ms); accessible contrast; everything works offline in one file. All visible labels in Russian.
Always render the Practice Map inside a fenced code block or as the artifact itself so its tree/HTML never leaks into prose.
## Persistent State (keep this updated)
Maintain a lightweight state block the agent re-reads each session:
- Стек ученика: known technologies + current level.
- Цель: target role/technologies.
- Practice Map: current tree with states (source of truth for the artifact).
- Активная subcard: name + phase + progress.
- Долги (debt): pitfalls the learner keeps hitting, to revisit.
## Dependency order
Cards follow a rough dependency DAG. Make the dependency visible in the map and never unlock a Subcard whose prerequisite is still open. A useful default route is:
```text
Linux fundamentals → shell and services → networking → Docker → Kubernetes
SQL fundamentals → PostgreSQL → System DesignFrom vasyapym/vasyapym.github.io, MIT.
More from vasyapym/vasyapym.github.io
- 0.644score
orchestrate
vasyapym
Run the relay loop between this orchestrator session and a designated non-agentic specialist in a separate chat (Claude Opus or similar) that has no tools…
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
minimize-iteration3
vasyapym
Use when delegating to the randomized routing chat model or when a relay prompt failed — reframe the delegation as a question-form refinement, one question…
SkillAFreshness: A★ 20Claude Code +9 - 0.641score
minimize-iteration2
vasyapym
Relay self-contained design/code briefs to the owner's chat model and integrate the replies — with a strict minimal-log rule for the results file.
SkillAFreshness: A★ 20Claude Code +9 - 0.638score
design-iteration
vasyapym
Refine interfaces through visual feedback rounds against an append-only liked/rejected ledger.
SkillAFreshness: A★ 20Claude Code +9 - 0.638score
code-iteration
vasyapym
Implement and refine code through small, evidence-backed verification passes.
SkillAFreshness: A★ 20Claude Code +9 - 0.634score
lesson-script
vasyapym
Fast relay lesson for Practice Map — one chat-model round, salvage, convert, scripted wiring.
SkillAFreshness: A★ 20Claude Code +9 - 0.613score
ask-matt
vasyapym
Ask which skill or flow fits your situation.
SkillAFreshness: A★ 20Claude Code +9 - 0.604score
minimize-iteration
vasyapym
Use when work is about to be delegated to a separate chat model — compress the task into the shortest prompt that still carries it, because the router sends…
SkillBFreshness: B★ 20Claude Code +9 - 0.601score
bug-iteration
vasyapym
Fix a reported bug — especially one that has returned after a previous fix — by reproducing it, diagnosing the root cause rather than the symptom, gating…
SkillBFreshness: B★ 20Claude Code +9 - 0.598score
planning
vasyapym
Turn an approved direction into a deterministic implementation and verification plan.
SkillBFreshness: B★ 20Claude Code +9 - 0.598score
lesson-iteration
vasyapym
Draft, deepen, review, and integrate a comprehensive Russian-language lesson into Practice Map.
SkillBFreshness: B★ 20Claude Code +9 - 0.598score
design-planning
vasyapym
Compare design alternatives and settle the direction before implementation.
SkillBFreshness: B★ 20Claude Code +9
Signals
- Stars
- 20
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 22, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/vasyapym/vasyapym.github.io
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from vasyapym
- 0.644score
orchestrate
vasyapym
Run the relay loop between this orchestrator session and a designated non-agentic specialist in a separate chat (Claude Opus or similar) that has no tools…
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
minimize-iteration3
vasyapym
Use when delegating to the randomized routing chat model or when a relay prompt failed — reframe the delegation as a question-form refinement, one question…
SkillAFreshness: A★ 20Claude Code +9 - 0.641score
minimize-iteration2
vasyapym
Relay self-contained design/code briefs to the owner's chat model and integrate the replies — with a strict minimal-log rule for the results file.
SkillAFreshness: A★ 20Claude Code +9 - 0.638score
code-iteration
vasyapym
Implement and refine code through small, evidence-backed verification passes.
SkillAFreshness: A★ 20Claude Code +9 - 0.638score
design-iteration
vasyapym
Refine interfaces through visual feedback rounds against an append-only liked/rejected ledger.
SkillAFreshness: A★ 20Claude Code +9 - 0.634score
lesson-script
vasyapym
Fast relay lesson for Practice Map — one chat-model round, salvage, convert, scripted wiring.
SkillAFreshness: A★ 20Claude Code +9
Cite this page
custom-learning skill. Agent Mart. https://agentmart.dev/skills/vasyapym-custom-learning (last updated 2026-10-24)