REF.01 own project · skillsintelligence.tools · 2026

A GenAI competency atlas with a full decision record

Growing a competency atlas from 269 to 426 entries without breaking a single identifier or deep link, with every contested classification decision on the record.

Tooling
  • Python
  • pandas
  • React
  • TypeScript
  • Graphviz
  • Cloudflare Pages

Explore live system ↗

Plate REF.01 — Classification architectureLayer separation + 3-model tribunal
2,487 input candidates
  1. L1
    Ontological layer426 competencies · 591 relations
  2. L2
    Dispute tribunal99 cases · confidence 0–3
  3. L3
    Separated market noise−474 false edges removed
Competencies in atlas
269 → 426
Ontology relations
435 → 591
Spurious edges removed
474
Entries in decision record
2,514
  1. Problem

    The GenAI and data science competency atlas lived in a single spreadsheet — 269 nodes, 435 relations, a dozen junk rows — and was falling behind the vocabulary the industry actually uses for these competencies. Extending it risked breaking identifiers and glossary links.

  2. Approach

    The 269 atlas nodes were matched against 2,218 candidates for inclusion. The main classification was done by a single model; 99 contested cases were settled by three-model voting with votes, reasoning and dissents recorded; each decision carried a 0–3 confidence score, and uncertain cases were flagged rather than guessed. The key design decision was separating market mappings out of the ontology into their own layer.

  3. Outcome

    The atlas grew to 426 competencies and 591 relations with zero duplicates and no gaps in required fields. Splitting the layers removed 474 spurious edges and cut dangling nodes from 45 to 29. The source file was untouched throughout the rebuild.

The thing that mattered most was not technical. Market mappings — how often a competency gets mentioned — sat in the same layer as ontological relations. It looked like a rich graph. It was two different things glued together: what a competency is, and how often people talk about it.

Separating the layers removed 474 edges that described no real conceptual relation. The graph got smaller, and only then did it become usable for inference.

What this engagement does not cover

157 newly added nodes have no prerequisite edges yet. A verification round over part of the decision set by independent models is planned, not done.