Skip to content

Publish schemas to schema.celestialintelligence.co

Stand up the static-site host for the published JSON Schemas referenced in # yaml-language-server: $schema=https://schema.celestialintelligence.co/... comments throughout the codebase.

schemas/_site/ is the publish root. It contains:

  • index.html — landing page with links
  • ssws-v1.json — symlink to ../ssws-v1.json (workspace composition)
  • ssmod-v1.json — symlink to ../ssmod-v1.json (module manifest)

The symlinks dereference at deploy time (Cloudflare Pages, Vercel, and GitHub Pages all follow them). To add a new schema (e.g. ssvault-v1), drop the file in schemas/ and ln -sf ../<name>.json schemas/_site/.

  1. Create the Pages project.

    • Console → Workers & Pages → Create application → Pages → Connect to Git.
    • Repo: celestial-intelligence-agency/celestial-intelligence
    • Branch: main
    • Build command: (none)
    • Build output directory: schemas/_site
    • Root directory: / (default)
  2. Bind the custom domain.

    • Pages project → Custom domains → Set up a custom domain → schema.celestialintelligence.co
    • Cloudflare auto-creates the DNS CNAME on the celestial.dev zone and provisions TLS.
  3. Smoke-test.

    Terminal window
    curl -sI https://schema.celestialintelligence.co/ssws-v1.json | head -1
    # → HTTP/2 200
    curl -s https://schema.celestialintelligence.co/ssws-v1.json | jq .title
    # → "Starsystem Workspace Composition (ssws) v1"

Every push to main that touches schemas/ redeploys automatically. Old versions stay accessible at their original URL (we version with -v1 / -v2 suffixes, not URL paths).

Until the domain is live, the composer falls back to the in-repo copy at schemas/. Editors that don’t follow $schema URLs (or are offline) won’t get autocomplete, but validation still happens at compose time.