Convert the machine-readable Baseline data from webstatus.dev into a greppable markdown snapshot.
Vision: Every Baseline verdict is a lookup in a fresh snapshot, never a guess.
- features — Fetch the complete feature set from the web-platform feature source. ·
spec - snapshot — Render fetched features into the single-table markdown Baseline snapshot. ·
spec - report — Render fetched features into a human-readable HTML report with additional details and links. ·
spec - archive — Store a run's artifacts — origin feature data, the snapshot document, and the report — as files in the working folder. ·
spec
flowchart LR
features -->|Feature data| snapshot
features -->|Feature data| report
features -->|origin data| archive
snapshot -->|document| archive
report -->|document| archive
A zero-dependency Java 25 CLI application, built and packaged with zb. Cloned from the bce.design / airails.dev java-cli-app template.
Why it exists: LLM-based Baseline checks in web skills (the web-static / web-conventions verification loop) guess a CSS/HTML feature's Google Baseline status from stale model memory — subgrid crossed into Widely Available on 2026-03-15, after most training cutoffs. zbaseline converts the machine-readable Baseline data from webstatus.dev into a greppable markdown snapshot that skills bundle as ground truth. The /web-conventions skill's bundled references/baseline-snapshot.md is generated by this project.
Aspiration (seeds the distilled ## Vision): Every Baseline verdict is a lookup in a fresh snapshot, never a guess.
Intended capabilities (seed the BC carving — each becomes a business component):
- fetch features — page through
GET https://api.webstatus.dev/v1/features(page_size,metadata.next_page_tokenpagination, no query filter — group-filtered queries proved structurally incomplete) and collect the raw feature JSON - render snapshot — transform the collected features into the single-table markdown document defined under
## Output format
- writes the markdown snapshot to stdout (
java -jar zbo/app.jar > baseline-snapshot.md), errors to stderr, non-zero exit when the API is unreachable - no arguments — every run fetches the complete feature set, so the snapshot covers CSS, HTML, and JS platform features alike
- JSON parsing per /zjson: copy the
org.jsonsources (JSONObject,JSONArray,JSONTokener) into the project — no external dependency - escape
|and</>in feature names inside table cells
Header with snapshot date, source, and the missing-feature rule; then one flat table sorted by feature id:
# Baseline Snapshot — 2026-07-08
Source: https://api.webstatus.dev/v1/features
Missing feature = no Baseline status or newer than snapshot → treat as uncertain.
| Feature id | Name | Status | Newly since | Widely since |
|---|---|---|---|---|
| anchor-positioning | Anchor positioning | limited | | |
| dialog | <dialog> | widely | 2022-03-14 | 2024-09-14 |
| nesting | CSS nesting | widely | 2023-08-29 | 2026-02-28 |
| subgrid | Subgrid | widely | 2023-09-15 | 2026-03-15 |Mapping from the API's baseline object: Status = baseline.status (widely / newly / limited); a feature without a baseline object is limited. Newly since = baseline.low_date, Widely since = baseline.high_date; absent dates stay empty. Snapshot date = run date.
GET https://api.webstatus.dev/v1/featuresreturns{data: [...], metadata: {total, next_page_token}}— no auth, no API key- pagination via
page_sizeandmetadata.next_page_token(absent on the last page) - volume: ~1171 features unfiltered (measured 2026-07-08);
group:queries were dropped — the group taxonomy misses cross-cutting groups (scrolling,view-transitions, …) and ~55 groupless CSS/HTML features (::before,object-fit, …)
Java 25+, zb
zb
java -jar zbo/app.jar
/sbce Quickstart
Spec-driven BCE 👉 sbce.space: one capability spec ≡ one business component. The spec lives in the BC's package-info.java and is the boundary contract; a green test run is the only definition of done. The /sbce skill and its companions are installed from 👉 airails.dev.
/sbce new # bootstraps from the `## About` prose above — proposes the BC carving, confirm first
/sbce apply <bc> # converge: close the spec-vs-code gap until the test loop is green
powered by airhacks.industries