Skill v1.0.0
currentLLM-judged scan90/100version: "1.0.0" name: example-layered-skill description: >- Example skill — reference implementation of the internal layered architecture pattern (Tools / Services / Utils) for complex skills with shared business logic. Use as a template when a skill outgrows a single scripts/execute.py file. Not intended for production use — see docs/guide/skills.md for the architectural guide. license: MIT compatibility: Python 3.8+ allowed-tools: Bash Read metadata: meshy-dcc: dcc: python version: "1.0.0" layer: example search-hint: "layered architecture, complex skill, services, utils, tools, asset pipeline reference, authoring reference" tags: "example, architecture, layered, advanced, authoring reference" tools: tools.yaml prompts: prompts/system.md
Layered Skill Architecture — Reference
This skill demonstrates the internal layered organisation recommended for complex skills (see `docs/guide/skills.md` section "Complex Skill Architecture").
It is intentionally simple — three asset-management tools that share a small service object — so the structure, not the business logic, is the focus.
Layout
example-layered-skill/├── SKILL.md ← this file (frontmatter + prose)├── tools.yaml ← MCP tool declarations (sibling, per #356)├── scripts/│ ├── __init__.py│ ├── create_asset.py ← thin tool adapters (parse params, return envelope)│ ├── publish_asset.py│ ├── validate_asset.py│ ├── services/ ← business logic (orchestration, error handling)│ │ ├── __init__.py│ │ └── asset_service.py│ └── utils/ ← pure helpers (no I/O, no DCC calls, fully unit-testable)│ ├── __init__.py│ └── path_utils.py└── prompts/└── system.md ← optional system prompt sidecar
Layer responsibilities
| Layer | Responsibility | Size guidance | |
|---|---|---|---|
| tool scripts | Parse JSON params from stdin, validate, delegate, return envelope. | < 30 lines | |
| services/ | Orchestrate DCC commands. Easily unit-testable in isolation. | Grows with feature | |
| utils/ | Pure functions — path normalisation, primitive helpers. No side effects. | Grows with feature |
Tools exposed
| Tool | Description | |
|---|---|---|
example_layered_skill__create_asset | Create a new asset record | |
example_layered_skill__publish_asset | Publish an existing asset | |
example_layered_skill__validate_asset | Validate an asset against project rules (read-only) |
Why a sibling tools.yaml
Per #356, tool declarations live in a sibling YAML referenced from metadata.meshy-dcc.tools so that SKILL.md frontmatter stays agentskills.io 1.0 compliant.