Algorithm-Card Schema¶
Every algorithm is documented in one Markdown file under docs/algorithms/<id>.md.
A card has two parts: YAML frontmatter (machine-readable metadata, consumed by the future
arena) and a fixed-section body (human-readable, faithful mathematics).
Faithfulness rule. A card must reproduce the estimator/algorithm as defined in its source(s), only translating symbols into the unified notation. Any deviation, simplification, or default we add is flagged explicitly as "(Arena note)".
Frontmatter (required fields)¶
---
id: lasso-cd # unique slug, matches filename
name: "Lasso via Coordinate Descent"
aliases: ["glmnet lasso", "pathwise coordinate descent (lasso)"]
family: penalized-batch # Axis A tag (taxonomy)
regime: [high-dim, low-dim] # Axis B tags
penalty: lasso # Axis C tag
link_support: [identity, logit, log, any] # links the method handles
output: point # point | path | point+inference
year: 2007
refs: [friedman2007pathwise, tibshirani1996regression] # bibkeys in reference.bib
status: reviewed # stub | draft | reviewed
---
| Field | Meaning |
|---|---|
id |
unique slug; must equal the filename without .md |
name |
human-readable title |
aliases |
alternative names / package names |
family |
primary family tag (Axis A) |
regime |
list of data-regime tags (Axis B) |
penalty |
penalty/structure tag (Axis C) |
link_support |
links handled (identity, logit, log, probit, any, ...) |
output |
point (just \(\hat\beta\)), path (over \(\lambda\)), or point+inference |
year |
year of the primary reference |
refs |
list of bibkeys present in reference.bib |
status |
maturity: stub < draft < reviewed |
Body sections (fixed order)¶
A card body uses exactly these H2 sections, in order. Empty sections are allowed in a stub.
- Setting & assumptions — data regime, link(s), structural assumptions (sparsity, design conditions, dispersion known/unknown).
- Estimator / objective — the exact definition of \(\hat\beta\) in unified notation: the objective \(\mathcal L + \lambda P\) or estimating equation. This is the mathematical heart.
- Algorithm — faithful pseudocode of how \(\hat\beta\) is computed (updates, stopping rule).
- Hyperparameters & configuration — every knob: \(\lambda\) (and selection rule), step sizes, tolerances, weights, initialization, standardization.
- Mapping to framework — the \((X, y, g, \text{config}) \to \hat\beta\) contract: inputs, outputs, supported links, and any required preprocessing. This is the Phase-2 spec.
- Complexity — per-iteration and total cost; memory (esp. for streaming).
- Statistical guarantees (brief) — consistency / rates / inference validity, with the governing conditions, cited to the source. Keep it short; this is an algorithm zoo, not a proof repository.
- Variants & related — links to sibling cards.
- References — the source papers (bibkeys), with one-line notes.
Header block convention¶
Immediately under the H1 title, cards include a metadata admonition rendered from the frontmatter values, e.g.:
# Lasso via Coordinate Descent
!!! info "At a glance"
**Family:** penalized-batch · **Regime:** high-dim / low-dim · **Penalty:** lasso ·
**Output:** path · **Links:** identity, logit, log · **Status:** reviewed ·
**Refs:** friedman2007pathwise, tibshirani1996regression
(The admonition duplicates frontmatter for now; a future build script can auto-generate it
from the YAML — see scripts/.)
Minimal stub template¶
---
id: my-method
name: "My Method"
aliases: []
family: penalized-batch
regime: [high-dim]
penalty: lasso
link_support: [any]
output: point
year: 2020
refs: [somekey2020]
status: stub
---
# My Method
!!! info "At a glance"
**Family:** penalized-batch · **Regime:** high-dim · **Penalty:** lasso ·
**Output:** point · **Links:** any · **Status:** stub · **Refs:** somekey2020
## Setting & assumptions
## Estimator / objective
## Algorithm
## Hyperparameters & configuration
## Mapping to framework
## Complexity
## Statistical guarantees
## Variants & related
## References