SDM
SDM · живой пример

Java Developer → Senior

Реальные артефакты из эталонного репозитория: граф компетенций, уровень сертификации, машинно-проверяемое покрытие и сгенерированный экспорт. Один источник правды — всё остальное производное.

1 Онтология
→
2 Профиль
→
3 Покрытие
→
4 Экспорт

01 Онтология — 13 навыков в графе, 8 в фокусе

Узлы любых видов в едином графе. Каждый навык — YAML-файл: id, name, description и опциональные связи с другими узлами.

ontology/skills/core-java.yaml

Core Java

JVM, типы, ООП, коллекции, многопоточность, лямбды, Stream API, исключения, аннотации.

ontology/skills/spring-framework.yaml

Spring Framework

IoC/DI, Spring Boot, MVC, REST, безопасность, транзакции, JDBC/JPA, тестирование.

ontology/skills/spring-ai.yaml

Spring AI

ChatClient, модели, advisors, tool calling, embeddings, vector stores, structured output.

# ontology/skills/core-java.yaml
id: core-java
name: Core Java
description: JVM, типы данных, ООП, коллекции, многопоточность…
depends_on: []
related_to: []
databases testing devops architecture langchain4j +5 ещё в графе

02 Профиль — java-developer · senior · порог 0.7

Профиль отбирает из онтологии и задаёт порог. Уровень фиксирует требование по каждому навыку: skill · depth · weight. Веса сходятся к 1 — уровень это цель, вычисляемая, а не описанная словами.

НавыкDepthWeight
core-java0.90.25
spring-framework0.90.25
spring-ai0.70.1
langchain4j0.60.1
databases0.90.1
testing0.90.1
architecture0.90.05
devops0.90.05
# certifications/levels/senior.yaml
level: senior  threshold: 0.7
requirements:
  - skill: core-java  depth: 0.9  weight: 0.25
  - skill: spring-framework  depth: 0.9  weight: 0.25
  - skill: spring-ai  depth: 0.7  weight: 0.1
  - … ещё 5 …

03 Покрытие — проверяется машиной, gap фиксирован

Множество gap-узлов вычисляется по фиксированному определению — одинаково у любых реализаций. Здесь: 32 вопроса в библиотеке, сверено с требуемой глубиной по каждому навыку.

НавыкВопросыDepthСтатус
core-java30.9
ok
spring-framework50.9
ok
spring-ai40.7
ok
langchain4j40.60 → нужно 0.6
ok
databases40.9
ok
testing50.9
ok
architecture50.63 → нужно 0.9
thin
devops40.63 → нужно 0.9
thin
Work items генерируются, а не угадываются. Одинаковые онтология + профиль → одинаковое множество gap у любой реализации.
→ Добавить вопросы с difficulty ≥ 0.63 для architecture и devops.

04 Экспорт — test-java-developer-senior.json

Всё производное генерируется: тестовый пакет для агентов и внешних систем — один артефакт, без рукописных отчётов.

{
  schemaVersion: "sdm.export.test/v1",
  profile: "java-developer", level: "senior", threshold: 0.7,
  requirements: [ /* 8 навыков · depth · weight */ ],
  questions: [ /* 32 вопроса · 3 типа */ ]
}
32 вопроса 8 навыков порог 70% 12 терминов глоссария
Это один формат экспорта. Те же спецификации генерируют другие выходы: export matrix, export kit, export learning --format course, export mermaid — слой представления полностью открыт.