Master skill for working with BrickLink Studio — LEGO digital modeling software. Use this skill whenever the user mentions: BrickLink, Studio, LEGO modeling, building instructions, LDraw files (.ldr, .mpd), LEGO parts lists, BOM for purchasing, rendering LEGO models, or any task involving designing or analyzing LEGO constructions. This skill routes to the appropriate sub-skill based on the task and available tools.
Resources
16Install
npx skillscat add uncurrent/bricklink-studio-skill Install via the SkillsCat registry.
BrickLink Studio — Master Skill
BrickLink Studio is a free LEGO digital design application. This skill covers four domains.
Read this file first, then load the relevant sub-skill(s).
Session Startup Checklist
At the start of every session, before any task:
- Read
learning/patterns.md— apply confirmed general patterns - Read
learning/failed.md— know what to avoid generally - Check
projects/_INDEX.md— if the task matches a known project type, load that project's files:projects/<name>/guide.md— project constraints and workflowprojects/<name>/patterns.md— project-specific confirmed patterns (override general ones)projects/<name>/failed.md— project-specific anti-patterns
- Route to the correct sub-skill (see Routing Logic below)
- At session end — run the Session Auto-Summary Protocol
Two-level knowledge:
learning/— general, applies to all Studio workprojects/<name>/— specific to one project type; takes precedence when loaded
Compatibility Matrix
| Sub-skill | claude.ai chat | Claude Code | API / other models | Cowork (Computer Use) |
|---|---|---|---|---|
ldraw-format |
✅ | ✅ | ✅ | ✅ |
model-generation |
✅ | ✅ | ✅ | ✅ |
bom-export |
✅ | ✅ | ✅ | ✅ |
knowledge |
✅ | ✅ | ✅ | ✅ |
gui-navigation |
❌ | ❌ | ❌ | ✅ only |
render |
❌ | ❌ | ❌ | ✅ only |
Rule: If computer_use / bash_tool with display access is NOT available — skip gui-navigation and render entirely.
Work via LDraw text format instead.
Routing Logic
Read the user's request, then load the appropriate sub-skill(s):
Trigger phrases below are examples in multiple languages — the skill works regardless of user language.
All skill file content is always written in English.
| User intent | Sub-skill to load |
|---|---|
| Open Studio, click, build in GUI / "Открой Studio", "поставь кубик" | gui-navigation/guide.md |
| Render, photo-realistic image, visualize / "сделай рендер", "сфотографируй" | render/guide.md |
| Parse .ldr/.mpd file, what is in this file / "Разбери файл" | ldraw-format/guide.md |
| Create model, write LDraw code, generate construction / "Создай модель" | model-generation/guide.md |
| Parts list, BOM, buy on Bricklink / "Список деталей", "закупить" | bom-export/guide.md |
| Convert STL/3D to LEGO, voxelization, algorithms, ML tools, research papers | knowledge/INDEX.md |
Multiple sub-skills can be loaded simultaneously if the task spans domains (e.g. generate + export BOM).
Key Concepts (shared across all sub-skills)
LDraw format — open text-based standard for LEGO models. Files: .ldr (single model), .mpd (multi-model / instructions).
Part ID — numeric identifier for each LEGO part, shared between LDraw and BrickLink catalog (e.g. 3001 = standard 2x4 brick).
Color ID — LDraw uses its own numeric color system (e.g. 4 = red). BrickLink uses different IDs. Mapping is in bom-export/references/color-ids.md.
Studio file format — .io files are ZIP archives containing LDraw data + Studio metadata. Can be unzipped and read as LDraw.
Learning System
During every working session, Claude actively maintains the learning/ directory.
Three-mode operation
| Mode | Trigger | Action |
|---|---|---|
| 🔵 Explore | Unknown situation, no pattern exists | Try it, write to observations.md as [UNVERIFIED] |
| 🟢 Confirm | User says "remember this", "it works", "save it" (any language) | Promote observation to patterns.md |
| 🔴 Reject | User says "doesn't work", "don't do this" (any language) | Move to failed.md as anti-pattern |
Rules
- Always check
learning/patterns.mdandlearning/failed.mdat the start of a session before doing anything — they override default sub-skill instructions - Known confirmed patterns → use directly, no experimentation
- Contradiction with
failed.md→ warn user before attempting - New approach tried → always write to
observations.mdimmediately, don't wait
Writing to observations.md
Append an entry whenever something noteworthy happens:
## [UNVERIFIED] YYYY-MM-DD — Short title
**Context:** what was being attempted
**Observation:** what was noticed
**Reproducible:** yes / no / unknown
**Promote to:** patterns.md / failed.md / discardSession Auto-Summary Protocol
Run this at the end of every working session, or when user signals end of session in any language ("done", "wrap up", "save", "закончили", "подведи итоги", etc.).
Steps
- Read
learning/observations.md— find all[UNVERIFIED]entries from today
Also readprojects/<active-project>/observations.mdif a project was active this session - For each entry, propose one of:
- ✅ Promote to
patterns.md— if it worked reliably- General insight →
learning/patterns.md - Project-specific →
projects/<name>/patterns.md
- General insight →
- ❌ Move to
failed.md— if it failed or caused problems- General →
learning/failed.md| Project-specific →projects/<name>/failed.md
- General →
- 🗑️ Discard — if it was a one-off, not generalizable
- ✅ Promote to
- Present the proposal to user — short list, one line per entry
- Wait for confirmation — then write the promoted entries to their files
- Append an entry to
CHANGELOGusing semver format[vX.Y.Z] YYYY-MM-DD- Patch (Z): fixes, renames, content tweaks
- Minor (Y): new sub-skill or major feature added
- Major (X): breaking restructure
- Current version is in the latest CHANGELOG entry — increment accordingly
- Repackage the skill if significant patterns were added:
cd ~/Dev/BrickLink\ Studio\ Skill && ./build.sh
Summary format for user
Present summary in the user's language — but all writes to skill files must be in English.
📋 Session summary YYYY-MM-DD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Observations this session: N
Sub-skills used: gui-navigation, model-generation
Proposed:
✅ → patterns.md: "Short pattern title in English"
❌ → failed.md: "What did not work, in English"
🗑️ Discard: "One-off, not generalizable"
Confirm?After confirmation, also:
6. Request user rating (see User Feedback section below)
7. Update learning/stats.md with session data
Language Policy
All skill file content must be written in English, regardless of the language the user speaks.
This ensures compatibility across all models and contributors worldwide.
This applies to:
- All entries in
learning/observations.md,learning/patterns.md,learning/failed.md - All entries in
learning/stats.md - All CHANGELOG entries
- Any new reference content added during a session
The user interface (summaries, questions, explanations) should be in the user's language.
Skill file content is always English.
User Feedback System
After the session summary is confirmed, request a rating:
How was this session?
⭐⭐⭐⭐⭐ Everything worked great
🔄 Claude asked too many clarifying questions
⚠️ A pattern from the skill did not work as expected
❌ Something went wrong — [describe briefly]Log the rating to learning/stats.md (see format below).
If rating is ⚠️ or ❌ — ask one follow-up question to understand what failed, then log it.
Session Statistics
Maintain learning/stats.md to track skill usage over time.
Update at the end of every session after user confirms summary.
stats.md entry format
## YYYY-MM-DD — Session N
**Sub-skills used:** gui-navigation, model-generation
**Observations logged:** 3
**Promoted to patterns:** 1
**Moved to failed:** 1
**Discarded:** 1
**User rating:** ⭐⭐⭐⭐⭐ / 🔄 / ⚠️ / ❌
**User note:** (optional, verbatim if provided)This file is tracked in git — it provides signal to maintainers about which sub-skills are
used most, which patterns fail, and overall skill health across users.
Sub-skill Index
gui-navigation/guide.md— Navigate Studio UI, place and move parts (Computer Use only)render/guide.md— Photo-realistic rendering via Studio or Blender (Computer Use only)ldraw-format/guide.md— Read, parse, validate LDraw and .io filesmodel-generation/guide.md— Generate LDraw code from natural language descriptionsbom-export/guide.md— Extract parts list, map to BrickLink catalog, estimate costknowledge/INDEX.md— Curated external knowledge: algorithms, tools, repos, research (read INDEX first, then category files as needed)
Project Index
Projects are specific recurring build types with their own isolated knowledge.
Always check projects/_INDEX.md at session start.
projects/part-piles/— 🟢 Active: random part pile renders for app graphicsprojects/brickheadz/— 🟡 Placeholder: Brickheadz-style figuresprojects/_template/— Template for new projects (copy to start a new one)