Methodology

Every record is extracted from a single technical report and validated against a machine-readable schema (data/schema.json, mirror of schema.md). Every field carries a provenance tag: stated (explicit in the report), derived (computed — computation recorded), inferred (judgement — evidence recorded), unknown (report silent — rendered as not disclosed), or n/a (mechanism makes the field inapplicable). Numbers are never imported from other reports, memory, or the web into a record.

Records

SlugFamilyLast analysedSkill versionSource
ai21-jambaJamba2026-08-08v0.3.1report ↗
allenai-olmo-2-7bOLMo 22026-08-10v0.3.5report ↗
allenai-olmo-3OLMo 32026-08-10v0.3.5report ↗
arcee-ai-trinity-large-400bTrinity2026-08-10v0.3.5report ↗
cisco-antares-1bAntares2026-08-10v0.4.0report ↗
coherelabs-tiny-aya-3-35bTiny Aya2026-08-10v0.3.5report ↗
deepseek-r1DeepSeek-R12026-08-10v0.3.5report ↗
deepseek-v3DeepSeek-V32026-08-08v0.3.0report ↗
deepseek-v3-2DeepSeek-V3.22026-08-10v0.3.5report ↗
deepseek-v4DeepSeek-V42026-08-10v0.4.0report ↗
google-gemma-3Gemma 32026-08-10v0.3.5report ↗
google-gemma-4Gemma 42026-08-10v0.4.0report ↗
inclusion-ling-2-6-1tLing 2.62026-08-10v0.4.0report ↗
jetbrains-mellum2-thinking-12b-a2-5bMellum 22026-08-10v0.3.5report ↗
meituan-longcat-flash-lite-68-5b-a3bLongCat-Flash2026-08-10v0.3.5report ↗
meta-llama-3Llama 32026-08-10v0.3.5report ↗
meta-llama-3.1Llama 3.12026-08-08v0.3.0report ↗
microsoft-phi-3Phi-32026-08-08v0.3.1report ↗
microsoft-phi-4Phi-42026-08-10v0.3.5report ↗
minimax-m2MiniMax-M2 series2026-08-10v0.4.0report ↗
minimax-m3-428bMiniMax M32026-08-10v0.3.5report ↗
mistral-mixtral-8x7bMixtral2026-08-08v0.3.0report ↗
moonshot-kimi-k2Kimi K22026-08-10v0.3.5report ↗
moonshot-kimi-k3Kimi K32026-08-08v0.3.5report ↗
moonshot-kimi-linear-48b-a3bKimi Linear2026-08-10v0.3.5report ↗
nanbeige-4-1-3bNanbeige4.12026-08-10v0.3.5report ↗
nanbeige-4-2-3bNanbeige4.22026-08-10v0.4.0report ↗
nvidia-nemotron-3-nano-30b-a3bNemotron 3 Nano2026-08-10v0.3.5report ↗
nvidia-nemotron-3-super-120b-a12bNemotron 3 Super2026-08-10v0.3.5report ↗
nvidia-nemotron-3-ultra-550b-a55bNemotron 3 Ultra (Nemotron 3 family)2026-08-10v0.3.5report ↗
nxai-xlstm-7bxLSTM-7B2026-08-10v0.3.5report ↗
openai-gpt-2-xl-1-5bGPT-22026-08-10v0.3.5report ↗
openai-gpt-ossgpt-oss2026-08-10v0.3.5report ↗
poolside-laguna-xs-2-33bLaguna2026-08-10v0.4.0report ↗
prime-intellect-intellect-3INTELLECT-32026-08-10v0.3.5report ↗
qwen-qwen3-5Qwen3.52026-08-10v0.4.0report ↗
qwen-qwen3-denseQwen32026-08-10v0.3.5report ↗
qwen-qwen3-moeQwen32026-08-10v0.3.5report ↗
qwen-qwen3-nextQwen3-Coder-Next2026-08-10v0.4.0report ↗
upstage-solar-open-2Solar Open 22026-08-10v0.4.0report ↗
weibo-vibethinker-3bVibeThinker2026-08-10v0.3.5report ↗
xiaomi-mimo-v2-flash-309bMiMo-V22026-08-10v0.3.5report ↗
zai-glm-4-5GLM-4.5 (ARC series)2026-08-10v0.3.5report ↗
zai-glm-4-5-airGLM-4.5 (ARC series)2026-08-10v0.3.5report ↗
zai-glm-5GLM-52026-08-10v0.3.5report ↗
zyphra-zaya1-8bZAYA12026-08-10v0.3.5report ↗

Skill version: v0.4.0. Atlas generated 2026-08-11.

Download combined data (atlas.json)

Extraction schema

Extraction Schema

The single authority on what a record contains. data/schema.json (created in Prompt B) is the machine-readable mirror of this file and must stay in sync with it — regenerate whenever this changes, and log the change in changelog.md.

Record form

One file per architecture: data/architectures/<slug>.json. slug = lowercase kebab-case, <org>-<model> (e.g. meta-llama-3.1).

Every leaf field is an object:

{"value": <value|null>, "provenance": "stated|derived|inferred|unknown|n/a", "ref": "§2.1 / Table 3", "note": "computation (derived) or evidence (inferred)"}

1. Record meta (pipeline bookkeeping, not report content)

FieldTypeProvenanceDefinition
slugstringstated (pipeline)<org>-<model> kebab-case.
analysed_datestring ISOstated (pipeline)Day the analysis was completed.
skill_versionstringstated (pipeline)changelog.md version at analysis time (e.g. v0.2.0).
source.urlstringstated (pipeline)Report URL.
source.fetched_datestring ISOstated (pipeline)Retrieval date.
source.stored_pathstringstated (pipeline)Path under data/sources/<slug>/.

2. Identity

FieldTypeProvenance ruleDefinition
identity.familystringstatedModel family name as the report calls it.
identity.variantsarray[string]statedDisclosed sizes/names, e.g. ["8B","70B","405B"].
identity.orgstringstatedOrganisation.
identity.release_dateISO date or nullstated if the report prints a date (ref = date line/abstract); else inferred from arXiv v1 submission metadata (note = arXiv ID + API); never from announcement/marketing datesReport publication date, not model availability date. Unknown only if neither applies.
identity.report_urlstringstated (pipeline)Canonical report URL.
identity.licensestringstated if the report names it; else unknownLicense name exactly as given.
identity.open_weightsbooleanstated if the report says weights are released; else unknownStrictly report-based. World knowledge does not fill this field; it may appear in prose labelled as secondary.

3. Scale (reference variant = the report's flagship)

Per-variant configs go in scale.variants[]; the top-level scale fields always describe the reference variant — the variant the report leads with as its flagship (title/abstract framing decides; e.g. phi-3-mini leads "Phi-3: ... Locally on Your Phone", so mini is the reference even though medium is larger). If the report leads with no single variant, the reference is the largest disclosed. If the report covers one size only, variants is [].

FieldTypeProvenance ruleDefinition
scale.total_paramsnumber (B)stated (config table) or derived (sum of disclosed components, note the computation)Reference variant.
scale.active_params_per_tokennumber (B)derived for dense (= total, note it); MoE: stated or derived from routing (note: attention + shared experts + per-token routed experts + embeddings)Parameters touched per token.
scale.layersintstatedTransformer layer count.
scale.hidden_dimintstatedModel (embedding) dimension.
scale.ffn_inner_dimintstated, or derived (note computation)FFN hidden dimension.
scale.ffn_rationumberderived: ffn_inner_dim / hidden_dim (note the computation). MoE: per-expert ratio with note.FFN expansion ratio.
scale.attention_heads_qintstatedQuery heads.
scale.attention_heads_kvintstated; n/a for MLA (ref = MLA section)KV heads (GQA/MQA). For MQA = 1.
scale.head_dimintderived: hidden_dim / attention_heads_q (note computation); stated if the report gives it directly; MLA: the latent dimension, statedHead dimension.
scale.vocab_sizeintstated (tokenizer/config section)Vocabulary size. Single source of truth — tokenizer group references this, no duplicate.
scale.embedding_tiedbooleanstated only; else unknownInput/output embedding tying. Config-file knowledge is secondary and does not fill this field.
scale.variants[]arrayper-element stated{name, total_params, layers, hidden_dim, ffn_inner_dim, attention_heads_q, attention_heads_kv, context_length} for each disclosed size.

4. Core block design

FieldTypeProvenance ruleDefinition
block.block_typedense \sparse-MoE \hybrid
block.moe.expert_countintstated; n/a if denseTotal experts (excluding shared).
block.moe.experts_per_tokenintstatedRouted experts activated per token (top-k).
block.moe.shared_expertsintstated; 0 if noneAlways-active experts.
block.moe.routingstringstatedRouter function (e.g. sigmoid gating, softmax top-k).
block.moe.load_balancingstringstated; unknown if silentAux loss / bias / none / other.
block.moe.expert_granularitystringstated or inferred (note evidence)e.g. fine-grained, grouped.
block.attention_variantMHA \MQA \GQA \
block.attention_layer_patternstringstatedPer-layer pattern for hybrids (e.g. "layers 1–3 full, 4–61 sliding window"); "uniform" otherwise.
block.depth_mixingsequential-residual \attention-residuals \hyper-connections
block.position_encoding.methodRoPE \ALiBi \NoPE \
block.position_encoding.rope_basenumberstated if the report gives it; else unknownRoPE base frequency.
block.position_encoding.partial_ropebooleanstated; else per absence ruleRoPE applied to a subset of dims.
block.position_encoding.extension`{method: YaRN\NTK\PI\
block.normalization.typestringstatede.g. RMSNorm, LayerNorm, QK-norm variants.
block.normalization.placementpre \post \mixed
block.normalization.qk_normbooleanstated; else per absence ruleQK-normalisation.
block.activationstringstatede.g. SwiGLU, GELU.
block.stability.attention_sinksbooleanstated; else per absence ruleDesigned sink tokens only — emergent sinks go in prose.
block.stability.softcappingnumber or booleanstated; else per absence ruleLogit softcapping value.
block.stability.otherarray[string]stated or inferred (note evidence)Other stability tricks.

5. Context

FieldTypeProvenance ruleDefinition
context.trained_lengthint (tokens)statedTrained context length.
context.deployed_lengthint (tokens)statedLength served/extended to.
context.extension_methodstringstated if disclosed; "none" if the report says training was at the deployed length; else unknownExtension method (may mirror position_encoding.extension).

6. Tokenizer

FieldTypeProvenance ruleDefinition
tokenizer.algorithmstringstatedBPE / SentencePiece / tiktoken-style / other.
tokenizer.notesstringstatedNotable design choices. Vocab size lives in scale.vocab_size (no duplicate).

7. Training

FieldTypeProvenance ruleDefinition
training.tokensnumber (T)stated; else unknownPretraining tokens.
training.data_compositionstringstated (paraphrase); unknown if silentDisclosed mixture — absence is a finding.
training.curriculumstringstated; "none disclosed" if silentStaging/annealing.
training.optimizerstringstated
training.lr_schedulestringstated
training.batch_schedulestringstated
training.precisionstringstatedBF16/FP8/other.
training.parallelismstringstatedTP/PP/EP/CP strategy.
training.hardwarestringstated
training.computestringstated; else unknownDisclosed FLOPs or GPU-hours.

8. Post-training

FieldTypeProvenance ruleDefinition
post_training.sftboolean + notestated or inferred (note evidence)Supervised fine-tuning.
post_training.preference_optimizationRLHF \DPO \GRPO \
post_training.reasoning_trainingstringstated or inferred (note evidence)CoT SFT, RLVR, test-time compute, etc.
post_training.distillationstringstated or inferred (note evidence)Distilled from which model; "none" if report says trained from scratch. Teacher-generated training data (e.g. a large model generating SFT data for smaller siblings) is not distillation — note it in prose, not here.

9. Modality

FieldTypeProvenance ruleDefinition
modality.typetext-only \multimodalstated if the report describes modalities; else inferred (note evidence, e.g. evaluation tasks imply vision)
modality.attachmentnative \adapterstated; n/a if text-only

10. Inference efficiency

FieldTypeProvenance ruleDefinition
efficiency.kv_cachestringderived from attention_variant (note the consequence, e.g. "GQA: KV cache ∝ 8 heads"; "MLA: low-rank latent KV"); stated if the report discusses itKV-cache design consequences.
efficiency.quantizationstringstated; "none disclosed" if silentShipped quantisation formats.
efficiency.speculative_dedupstringstated; "none disclosed" if silentSpeculative decoding, MTP, self-speculation.
efficiency.servingstringstated; "none disclosed" if silentDisclosed serving optimisations.

11. Evaluation

FieldTypeProvenance ruleDefinition
evaluation.benchmarks[]array of {name, value, ref}stated onlyname = benchmark as the report names it; value = the report's own number, digits as printed. Never import numbers from other sources, never compare across reports here.

12. Author-claimed contributions

FieldTypeProvenance ruleDefinition
contributions.claimed[]array of {text, ref}stated (paraphrased, attributed)What the report says is novel.
contributions.assessmentstringinferred (note evidence: comparison against atlas entries)Your judgement of actual novelty relative to the atlas — kept separate from claimed.

13. Taxonomy (one value per axis; each with provenance)

FieldValuesProvenance rule
taxonomy.compute_structuredense / sparse-MoE / hybridderived from block per-layer pattern (majority rule, taxonomy.md)
taxonomy.sequence_mixingfull-attention / efficient-attention / SSM / hybridderived from block.attention_layer_pattern
taxonomy.modalitytext-only / multimodalderived from modality.type
taxonomy.opennessopen-weights-open-data / open-weights / open-data / closed / undisclosedderived from identity.open_weights + training.data_composition disclosure
taxonomy.scale_classfrontier / large / medium / smallderived from scale.total_params (reference variant)
taxonomy.design_intentfrontier-generalist / reasoning-specialised / on-device / long-context / domain-specificinferred (note evidence: report framing in abstract/intro)

14. Prose (authored narrative, per record)

Authored analysis for the model page — not report facts. Every leaf is tagged inferred with note "authored by atlas analyst", and the prose text itself honours non-negotiable 2 (keeps stated / inferred distinctions explicit inside the narrative). Authored at ingestion time; influence_out is the one field written retroactively (when a descendant arrives).

FieldTypeDefinition
prose.design_overviewleaf (string)150–300 word design overview: what the block looks like and why it matters.
prose.lineage_in[]array of {mechanism, origin}Mechanisms borrowed from prior architectures — only when report-stated or unambiguous (methodology §6). mechanism = named mechanism ("MLA from DeepSeek-V2"); origin = the prior model.
prose.influence_out[]array of {model_slug, mechanism}Descendants that borrow from this record; maintained when a descendant is ingested (never authored in advance).
prose.notable_omissionsleaf (value = array of strings)What this report omits that peers disclose — the absence findings.

Taxonomy

Taxonomy

Classification is multi-axis: a model gets exactly one value per axis, never one bucket. For every axis: possible values, decision rule, anchor example. If a report genuinely fits no value, that is a signal to evolve the taxonomy (changelog procedure + backfill), not to force a fit.

Format contract (machine-parsed): build.py parses this file — the axis key comes from the ## Axis N — name heading, the values/rules/anchors from the first table in each section. Keep this structure; extend tables, don't restyle them.

Axis 1 — compute_structure

What the parameter footprint looks like per token.

ValueDecision ruleAnchor
denseEvery transformer layer's FFN is fully active per token; no routing anywhere.Llama 3 (report describes no MoE; absence rule → inferred)
sparse-MoEMoE layers dominate (≥80% of transformer layers are routed FFNs).Mixtral 8x7B
hybridNeither pattern reaches 80% of layers (e.g. a substantial mix of dense and MoE layers).None in atlas yet — first qualifying report sets the anchor

Rule: count routed-FFN vs dense-FFN layers across the whole model; majority with ≥80% share wins, otherwise hybrid. The per-layer record lives in block.block_type / block.attention_layer_pattern.

Axis 2 — sequence_mixing

How the model mixes information across sequence positions.

ValueDecision ruleAnchor
full-attentionAll layers use unrestricted attention over the whole context.Llama 3
efficient-attentionAttention with restricted/computed patterns (sliding window, linear attention, sparse patterns) — but still attention.Mistral (sliding window layers)
SSMState-space layers (Mamba-style) do the mixing; no attention in the block.Mamba
hybridMixed attention + SSM/linear layers (or attention variants in a deliberate per-layer pattern).Jamba (1 attention : 7 Mamba layers)

Rule: same ≥80% majority rule over layers; deliberate alternation that falls below the threshold is hybrid (record the pattern in block.attention_layer_pattern).

Axis 3 — modality

ValueDecision ruleAnchor
text-onlyReport describes no non-text input or output.Llama 3.1
multimodalReport describes vision/audio/other modalities in or out.GPT-4V (if its report is ever in the atlas — else first multimodal report ingested)

Axis 4 — openness

What the organisation actually releases, per the report.

ValueDecision ruleAnchor
open-weights-open-dataWeights and training data released.OLMo
open-weightsWeights released; data not released.Llama 3 (report states weights release; data composition disclosed but not released)
open-dataData released; weights not.(rare — first qualifying report sets the anchor)
closedReport says the model is not released.GPT-4 (if its report is ever in the atlas)
undisclosedReport is silent on release. Absence is itself the classification.First qualifying report sets the anchor

Note: undisclosed exists so report silence never forces a guess. World knowledge does not override a silent report (non-negotiable 3).

Axis 5 — scale_class

By total parameters of the reference variant (largest disclosed).

ValueRule (total params)Anchor
frontier≥ 100BLlama 3.1 405B
large10B ≤ p < 100BLlama 3.1 70B
medium1B ≤ p < 10BLlama 3.1 8B
small< 1BQwen2-0.5B (if ingested)

Axis 6 — design_intent

What the report frames the model for. Inferred from the report's own framing (abstract, intro, evaluation emphasis) — never from marketing outside the report.

ValueDecision ruleAnchor
frontier-generalistFramed as a general-purpose foundation model; broad benchmark coverage.Llama 3.1
reasoning-specialisedFramed around reasoning/thinking (CoT, RLVR, test-time compute).o1 (if its report is ever in the atlas)
on-deviceFramed for edge/deployment efficiency constraints.Phi-3-mini
long-contextFramed primarily around context length.Gemini 1.5 (if in atlas)
domain-specificFramed for a specific domain (code, biology, law…).DeepSeek-Coder (if in atlas)

Rule: if several intents appear, take the one the report leads with; note the others in contributions.assessment or prose. If the report leads with none of these, evolve the axis.

Comparison methodology

Methodology — comparison and normalisation conventions

Rules that keep cross-model comparisons honest.

1. MoE vs dense — always both totals

Never compare total parameters of an MoE model against a dense model without also showing active parameters. Always present both (scale.total_params and scale.active_params_per_token); comparison views show the pair side by side.

2. Unit normalisation

Normalise before comparing:

Report values are stored as printed (verbatim digits); derived values are rounded to one decimal place. The stored value is never rounded; rounding happens only in rendered views.

3. Compare designs, not marketing

A comparison row must be a schema field, so every cell has provenance. Prose comparison is allowed only after the full schema is extracted (non-negotiable 1). Cells show provenance on hover; unknown renders as "not disclosed" — never as blank, never as zero.

4. Absence of disclosure is information

When a report omits a field that peers disclose, the comparison shows "not disclosed" and the omission is noted in prose ("the report does not disclose its data mixture"). Silence is a finding, not a gap to fill.

5. Benchmarks are never compared head-to-head across reports

Different harnesses, prompts, and contamination levels make cross-report numbers incomparable. The atlas records which benchmarks each report chose to emphasise and that report's own numbers only. At most, note the choice pattern (e.g. "this report leads with reasoning benchmarks, unlike X"). Same-report, same-harness comparisons (e.g. variant sizes within one report) are fine.

6. Lineage

Record which prior architectures a design borrows from — with the specific borrowed mechanism named (e.g. "MLA from DeepSeek-V2") — only when the report states it or the mechanism is unambiguous (mechanism + origin both identifiable). Lineage in → the new record's prose. Influence out → update older records' "influence" sections when a descendant arrives.

7. Reference variant

One record per family. Scale fields describe the largest disclosed variant; per-variant configs live in scale.variants[]. Comparisons use the reference variant unless a variant-level comparison is explicitly requested. If a report covers a single size, variants is empty.

8. Backfill discipline

When the schema or taxonomy evolves, every existing record is re-read from its stored source and the new field filled (unknown where silent) in the same change — no field may exist for some models only because of ingestion order. The changelog entry for the change lists every backfilled record.

9. Secondary sources

Secondary sources (other reports, model cards, config files, web) are labelled as such in prose and never fill schema fields (non-negotiable 3). They may be cited in contributions.assessment or prose as context, explicitly marked.

10. Closest relatives

"Closest relatives in the atlas" is computed mechanically from shared schema values: count matching non-unknown, non-n/a values across the fixed comparable field set — block.block_type, block.attention_variant, block.position_encoding.method, block.normalization.type, block.activation, modality.type, taxonomy.openness, taxonomy.scale_class, taxonomy.sequence_mixing. Tie-break by absolute difference in context.trained_length, then by scale.total_params. The field set and rule are recorded here so the computation is reproducible and versioned with the skill.

11. Numbers

All numbers on a model page come from that model's record. The report's own digits are stored as printed; derived values show their computation in the provenance note.

Glossary

Glossary — terminology map

Reports name the same mechanism differently. Add a new alias here BEFORE filling the schema. Format: alias → canonical schema term (path), note if needed. Canonical terms are defined in schema.md.

Attention

Mixture of experts

Positional encoding

Normalisation and activation

Training and precision

Post-training

Inference

Attention (2026-08-10 batch — gallery ingestion)

Mixture of experts (2026-08-10 batch)

Post-training (2026-08-10 batch)

Training (2026-08-10 batch)

Misc (2026-08-10 batch)

2026-08-10 batch 2 — found-report ingestion

Changelog

Changelog

Every schema/taxonomy change, dated, with the trigger. Current version: v0.4.0.

2026-08-08 — v0.3.5 — depth-mixing field (trigger: Kimi K3 ingestion — Attention Residuals)

  1. block.depth_mixing added (schema.md §4, schema.json leafEnumDepthMixing): sequential-residual | attention-residuals. Triggered by Kimi K3's Attention Residuals (AttnRes) — per-layer learned attention over prior layer outputs — which no existing field could represent; without a field it would have lived only in prose.
  2. Backfilled all 5 existing records: depth_mixingsequential-residual (inferred, absence rule — their stored reports describe the block in detail and never mention attention over prior layers).
  3. Kimi K3 record: depth_mixingattention-residuals (stated, §2.2; Block variant: 8 blocks × 12 layers + partial final block).

2026-08-08 — v0.3.4 — ingest pipeline: arXiv PDF fallback (trigger: report 2607.24653 has no HTML version)

2026-08-08 — v0.3.3 — release-date convention (trigger: first seed batch — all five reports are undated in extracted text; Llama record initially carried an untraceable stated date)

  1. identity.release_date rule extended (schema.md §2, SKILL.md conventions): stated when the report prints a date; otherwise inferred from arXiv v1 submission metadata (note records the arXiv ID + API as evidence); announcement/marketing dates are never used. Strict "report text only" dating left the timeline strip empty (zero dated models) and forced world-knowledge dates to masquerade as stated.
  2. Backfilled all 5 records: release_date → inferred with arXiv-ID evidence (Llama 3.1 corrected from an untraceable stated 2024-07-23 — the announcement date — to the arXiv v1 date 2024-07-31).

2026-08-08 — v0.3.2 — reference-variant rule refined (trigger: Phi-3 ingestion)

2026-08-08 — v0.3.1 — schema.md/data.schema.json alignment (trigger: first ingestion batch — Llama 3.1, DeepSeek-V3, Mixtral)

Clarifications so the human schema and the machine schema can never disagree:

  1. block.block_type values corrected to dense | sparse-MoE | hybrid in schema.md (was dense | moe | hybrid; the machine enum and taxonomy.md already used sparse-MoE). Two independent extractors hit the mismatch.
  2. n/a leaf shape clarified in the record form: value: null + provenance: "n/a" + ref (numeric-typed leaves accept null, so n/a is always expressible).
  3. prose.notable_omissions clarified as a leaf whose value is an array of strings.

2026-08-08 — v0.3.0 — prose group (trigger: Prompt B, site bootstrap)

2026-08-08 — v0.2.0 — dry-run validation fixes (trigger: Llama 3.1 validation fill, dry-runs/llama-3.1.md)

Fixes applied after dry-running the schema on a well-known architecture. No backfill needed — no records exist yet.

  1. Absence rule added (schema.md §4 + SKILL.md): for a mechanism the report doesn't mention — if the report's architecture description is detailed enough that the mechanism would appear were it used, absence → inferred "not used" with that evidence; otherwise → unknown. Triggered by qk_norm, softcapping, partial_rope, embedding_tied on Llama 3.1.
  2. Designed vs emergent distinction (schema.md block.stability.attention_sinks, SKILL.md): only explicitly designed mechanisms fill schema fields; emergent behaviour (e.g. emergent attention sinks) goes in prose. Llama 3.1 certainly has emergent sinks; the report designs none.
  3. Reference-variant convention (schema.md §3, SKILL.md conventions, methodology.md §7): families with multiple disclosed sizes get one record; scale fields describe the largest variant; per-variant configs in scale.variants[]. Triggered by Llama 3.1's 8B/70B/405B.
  4. n/a provenance tag (schema.md record form, SKILL.md): for fields inapplicable to a mechanism (e.g. attention_heads_kv under MLA), distinct from unknown (not disclosed).
  5. undisclosed openness value (taxonomy.md Axis 4): report silence on release is itself a classification; never force a guess from world knowledge.
  6. Release date convention (schema.md §2, SKILL.md): report publication date, not model availability date; ref required.
  7. Active params for dense models (schema.md §3, SKILL.md conventions): active_params_per_token = total_params, tagged derived.
  8. Distillation nuance (schema.md §8): teacher-generated training data is not distillation; noted in prose, not the field. Triggered by Llama 3.1 using 405B to generate SFT data for 8B/70B.
  9. Benchmark value rule (schema.md §11): values stored digits-as-printed; no rounding of report numbers.
  10. Closest-relatives rule (methodology.md §10): fixed comparable field set + tie-breaks, so the computation is reproducible.

2026-08-08 — v0.1.0 — initial schema and taxonomy (trigger: Prompt A, README.md)

2026-08-10 — v0.4.0 — depth_mixing gains hyper-connections (trigger: DeepSeek V4 ingestion)