Raw capture โ€” raw/os-ai-map.md


url: https://github.com/currentai-org/os-ai-map date_fetched: 2026-07-05 backfilled: true


The open source AI stack is already strong, but it's fragmented, duplicative, and hard to see as a whole. The Open Source AI Stack Gap Map makes it legible: a living map of what exists across the stack, how open each piece is, how widely it's used, and where the gaps are โ€” so the community can see where to build, where to invest, and where to open things up.

This repo is the data behind that map. Everything is curated YAML in sources/; a deterministic pipeline validates it, serializes it to build/notebook_data.json, and renders the published map.

The map is a public, iterative effort, and community curation is the point. There are two ways in:

A few ground rules:

Each product is graded on three independent, multi-source axes:

Categories then roll up from their products into a maturity stage (0 Void โ†’ 5 Mature) plus a set of gaps naming what the open ecosystem still lacks. The taxonomy and openness framework descend from the 2024 Columbia Convening on Openness in AI.

The complete method โ€” the stage and gap formulas, per-axis sources, and stated limitations โ€” is in docs/methodology.md, the hand-authored source of truth (also rendered on the site).

One YAML file per record: four concerns plus the single sources/taxonomy.yaml manifest. This is what you edit.

Path Contains Key rule
sources/organizations/ Org metadata and a products:roster Each product slug appears in exactly one org roster
sources/categories/ Category definition ( weights,strapline, โ€ฆ) and an orderedproducts:roster Order = display order; each product in exactly one category
sources/products/ Product record ( name,type,description, typed artifact URLs) Org membership lives in the org file, not here
sources/scores/ Per-product openness,adoption,capability Every non-null score value needs a sources:citation
sources/taxonomy.yaml Arc grouping + display order; the three arcs are the Columbia ontology layers Every category appears in exactly one arc

Category slugs use underscore form (base_pretrained); product and org slugs use hyphenated kebab-case (llama-3-1, allen-ai). Artifact keys on products (only those that apply): github, npm, pypi, crates, go, huggingface_model, huggingface_dataset. JSON Schemas for every file type live in docs/schemas/.

Requires Python 3.12+ and uv. No API key is needed to edit sources or validate.

uv sync
uv run python -m build.validate    # schema + cross-file checks; must print "0 error(s)"
uv run pytest -q                   # optional; the same suite CI runs

To preview the generated map locally (the output is for preview only โ€” don't commit it):

uv run python -m build.serialize                                          # sources/ โ†’ build/notebook_data.json
uv run python build/render.py                                             # โ†’ notebooks/ai-stack-map.py
uv run marimo export html notebooks/ai-stack-map.py -o /tmp/preview.html

Warehouse queries (via pyoso) need OSO_API_KEY; with direnv, place it in .env and it loads automatically.

Path Role
sources/ Curated YAML you edit: organizations, categories, products, scores, + taxonomy.yaml
build/ Deterministic validate โ†’ serialize โ†’ render pipeline
notebooks/ Generated ai-stack-map.py+ standalone companion notebooks
docs/ JSON Schemas, contributor guides, methodology, and maintainer runbooks
warehouse/ UDM SQL and ingest fetchers for adoption / activity signals
skills/ Agent skills mirroring the contribution recipes
tests/ pytest suite for build helpers

Guides worth knowing: openness scoring, gap analysis, and query conventions. See AGENTS.md for agent-oriented project context.

Maintainer & internal reference

Warehouse. warehouse/ holds the SQL models and fetchers that power adoption and activity signals. Contributors work read-only here; only maintainers write.

Runbooks (require OSO MCP write access โ€” see docs/runbooks/):

Editor skills. Four skills in skills/ mirror the CONTRIBUTING recipes and enforce the same read-only warehouse boundary: curate-category, add-product, add-data-source, and pyoso-analyst (read-only queries).

Companion notebooks. pypi-geo-trends.py, oss-ai-trends.py, and long-tail-explorer.py are standalone marimo notebooks that sit outside the build pipeline and query currentai.* warehouse tables live via pyoso, so the bot never regenerates them. build/_frozen_long_tail.json is a hand-frozen fixture, not yet derived from live data.

Code and data are MIT licensed.