Skip to content

Editor Integration

Nullstone publishes a JSON schema for .nullstone/*.yml files to schemastore.org. Most editors pick it up automatically — you get inline validation and completion with zero configuration.

This is the right surface if you are editing the YAML. For AI-driven edits, also install the nullstone-config-files skill — editor validation is structural; the skill adds semantic and stylistic rules Claude can't infer from the schema alone.

Supported editors

Schemastore.org integrations cover:

VS Code

Install the YAML extension by Red Hat. The schema attaches to .nullstone/*.yml automatically.

To bind the schema explicitly (useful when schemastore lookup is blocked), add to your workspace .vscode/settings.json:

json
{
  "yaml.schemas": {
    "https://raw.githubusercontent.com/nullstone-io/iac/master/.schema/config.0.1.json": [
      ".nullstone/*.yml",
      ".nullstone/stacks/*/*.yml"
    ]
  }
}

JetBrains (IntelliJ / GoLand / PhpStorm / …)

Schemastore integration ships by default. To bind the schema explicitly:

  1. Settings → Languages & Frameworks → Schemas and DTDs → JSON Schema Mappings
  2. Add a mapping:
    • Schema URL: https://raw.githubusercontent.com/nullstone-io/iac/master/.schema/config.0.1.json
    • Schema version: JSON Schema Draft 2020-12
    • File path pattern: .nullstone/*.yml and .nullstone/stacks/*/*.yml

Neovim

Install SchemaStore.nvim and configure your LSP (e.g. yamlls) to use it:

lua
require("lspconfig").yamlls.setup({
  settings = {
    yaml = {
      schemaStore = { enable = true, url = "https://www.schemastore.org/api/json/catalog.json" },
      schemas = require("schemastore").yaml.schemas(),
    },
  },
})

Downloading the schema directly

The authoritative source is nullstone-io/iac/.schema. Vendor the file into your repo if you need air-gapped validation.