{"owner":"vercel-labs","repo":"zerolang","hasSkills":true,"totalSkillsCount":10,"totalTokensCount":4970,"categories":["anthropic-skill","root-instruction","plugin-manifest"],"hasMcp":false,"mcpConfig":null,"found":["evals/package.json","AGENTS.md","evals/README.md","evals/tsconfig.json","extensions/vscode/README.md","skills/zero/SKILL.md","extensions/vscode/package.json","extensions/vscode/language-configuration/zero.json","extensions/vscode/syntaxes/zero.tmLanguage.json","extensions/vscode/snippets/zero.json"],"skills":{"evals/package.json":"{\n  \"name\": \"zero-evals\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"engines\": {\n    \"node\": \">=24\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc -p tsconfig.json\",\n    \"eval\": \"pnpm run build && node dist/run.js\",\n    \"test\": \"pnpm run build && node --test dist/*.test.js\"\n  },\n  \"dependencies\": {\n    \"@vercel/sandbox\": \"^1.10.2\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^25.9.0\",\n    \"typescript\": \"^6.0.3\"\n  }\n}\n","AGENTS.md":"# Contributor Notes\n\nZero is a pre-1 experiment in building an agent-first programming language.\nKeep public-facing changes honest about what works today without weakening that\npositioning.\n\n## Project Direction\n\nZero is still being shaped around the needs of agents. Breaking changes are\nacceptable when they move the language, standard library, compiler, or tooling\ncloser to that goal.\n\nDo not preserve legacy behavior by default. Prefer the clearer agent-facing\ndesign over compatibility shims, migration layers, or carrying old paths\nforward. Keep examples, docs, tests, and command contracts aligned with the new\nbehavior so the repository describes one coherent current system.\n\nThis does not mean broad churn for its own sake. Make direct changes that\nadvance Zero's agent-first goals: on-the-fly learnability, deterministic\ninspection and repair, strong standard-library coverage, exceptional developer\nexperience, and regular patterns over syntactic convenience.\n\n## Safety Expectations\n\nSecurity vulnerabilities should be expected. Zero is not ready for production\nsystems, sensitive data, or trusted infrastructure.\n\nRun and develop Zero in safe environments: isolated workspaces, disposable\ninputs, and systems where compiler crashes, malformed output, or unsafe runtime\nbehavior cannot damage production state. Treat generated artifacts and examples\nas experimental unless they have been reviewed for the specific environment\nwhere they will run.\n\n## Development\n\n- Build the local compiler with `make -C native/zero-c`.\n- Use `bin/zero` for focused checks; it execs the local native compiler at\n  `.zero/bin/zero`.\n- Keep examples runnable and docs copyable.\n- Prefer small, direct changes over broad refactors.\n- Use direct emitters for compiler output.\n- For broad local validation, run `pnpm run agent:checks`. It mirrors the CI\n  buckets in parallel, including conformance, command contracts, native test\n  shards, sanitizer smoke, and workspace checks. It uses isolated `/tmp`\n  workspaces so agents can validate uncommitted changes without local artifact\n  races.\n- Before ending any agent turn that changes the repository, run\n  `pnpm run conformance` unless `pnpm run agent:checks` already passed for the\n  same changes. If validation cannot complete, report the blocker and the\n  failing command.\n\n## Useful Checks\n\n```sh\npnpm run agent:checks\npnpm run docs:build\npnpm run conformance\npnpm run native:test\npnpm run command-contracts\n```\n\n`pnpm run agent:checks` already includes conformance. Do not run conformance\nagain after it passes unless you need to recheck later changes.\n\nShard native tests locally with `ZERO_NATIVE_TEST_SHARD=1/4 pnpm run\nnative:test:local`. PR CI runs representative native runtime cases in two\nfast shards. Scheduled and manual deep CI runs the full native runtime matrix\nin six shards, plus full conformance and full graph performance fixtures.\n\n`pnpm run conformance:local` and `pnpm run command-contracts:local` use the\naggregate validation runner. Add `-- --shard 1/4` to run one conformance phase\nshard, `-- --phases name,name` to match a focused CI phase set, `-- --list` to\nsee phases, and `-- --fail-fast` only when a narrow loop should stop at the\nfirst failing phase.\nUse `ZERO_NATIVE_TEST_SCOPE=fast` only when reproducing PR CI coverage. Leave it\nunset for the exhaustive native runtime matrix.\n`pnpm run conformance` runs the sandbox suite with four isolated conformance\ncheck workers. Local validation stays serial by default; set\n`ZERO_CONFORMANCE_CHECK_JOBS=<n>` only when measuring that path on the current\nmachine.\nValidation scripts prefer the built native compiler at `.zero/bin/zero` after\n`native-build`; set `ZERO_BIN=<path>` only when comparing another compiler\nbinary deliberately.\n\nFor focused compiler work:\n\n```sh\nbin/zero check --json <graph-input>\nbin/zero inspect --json <graph-input>\nbin/zero size --json <graph-input>\nbin/zero explain <diagnostic-code>\nbin/zero fix --plan --json <graph-backed-file-or-package>\n```\n\n## Project Layout\n\n- `native/zero-c/`: native compiler implementation.\n- `examples/`: small runnable programs and packages.\n- `conformance/`: language and CLI fixtures.\n- `docs/`: public documentation site.\n- `scripts/`: validation and release support tooling.\n\n## Public Docs Policy\n\nDocs should describe current user-facing behavior, not internal development\nhistory. Avoid release-planning language, validation-report narratives, and\nimplementation diary details in pages intended for external readers.\n\n## Releasing\n\nReleases are manual, single-branch affairs. The maintainer controls the\nchangelog voice and format.\n\nTo prepare a release:\n\n1. Create a release branch, such as `ctate/v0.1.1`.\n2. Bump the release version in `package.json`, `docs/package.json`,\n   `extensions/vscode/package.json`, and `native/zero-c/src/main.c`.\n3. Update command-contract expectations that assert the compiler version.\n4. Write the `CHANGELOG.md` entry for the new version, wrapped in\n   `<!-- release:start -->` and `<!-- release:end -->` markers.\n5. Remove the release markers from the previous release entry. Only the latest\n   release entry should have markers.\n6. Include a `### Contributors` section in the marked changelog entry. Derive\n   contributors from commit authors and `Co-authored-by` trailers since the\n   previous tag.\n7. Run focused checks before opening or updating the PR:\n\n```sh\nmake -C native/zero-c\nbin/zero --version --json\npnpm run test:zero\npnpm run command-contracts:local\npnpm run docs:build\n```\n\nThe release workflow reads the version from `package.json`, builds release\nassets, and uses the content between the changelog markers as the GitHub\nrelease body.\n","evals/README.md":"# Zero Evals\n\nTypeScript evals for agent-facing Zero workflows.\n\nRun the checked-in fixture without calling Claude:\n\n```sh\npnpm evals -- --case hello-world --fixture\npnpm evals -- --case rosetta-100-doors --fixture\npnpm evals -- --suite agent-scale --fixture\n```\n\nRun live in Vercel Sandbox through Claude Code and Vercel AI Gateway:\n\n```sh\nAI_GATEWAY_API_KEY=... pnpm evals -- --case hello-world\n```\n\nBy default, evals run each selected case against:\n\n- `anthropic/claude-opus-4.7`\n- `anthropic/claude-sonnet-4.6`\n\nOverride the model set with repeated `--model` flags or a comma-separated\n`--models` value:\n\n```sh\npnpm evals -- --case hello-world --model anthropic/claude-sonnet-4.6\npnpm evals -- --case hello-world --models anthropic/claude-opus-4.7,anthropic/claude-sonnet-4.6\n```\n\nLive evals create a Vercel Sandbox, upload the current checkout, build the\nnative compiler, install Claude Code, and run the agent inside the sandbox. Each\nmodel/case run gets a fresh copy of the prepared checkout so mutations from one\nrun do not affect the next run. The sandbox network policy injects the AI\nGateway bearer credential for `https://ai-gateway.vercel.sh`.\n\nCredential options:\n\n```sh\n# Sandbox auth\nVERCEL_OIDC_TOKEN=...\n# or VERCEL_TOKEN=... VERCEL_TEAM_ID=... VERCEL_PROJECT_ID=...\n\n# AI Gateway auth\nAI_GATEWAY_API_KEY=...\n\n# Model selection\nZERO_EVAL_MODELS=anthropic/claude-opus-4.7,anthropic/claude-sonnet-4.6\n# or ZERO_EVAL_MODEL=anthropic/claude-sonnet-4.6\n```\n\nEach live model run must load Zero's version-matched skill through\n`bin/zero skills get zero --full`, then use `bin/zero check` and `bin/zero run`\ninside the sandbox to verify its candidate.\n\nThe Rosetta cases are deterministic code-challenge evals. Prompts describe the\ntask behavior and expected output; the evaluator does not compare an exact\nprojection. It imports the returned source into a graph artifact, checks that\ngraph, runs it, and compares stdout/stderr plus a small set of source-shape\nrequirements.\n\nThe `agent-scale` suite covers larger agent tasks. It includes multi-command CLI\nprograms with several runtime checks and graph package fixtures such as a CRM\nHTTP request-envelope API. Package cases are validated in place: the evaluator\nruns `zero check`, executes each smoke route or command with isolated `--out`\npaths, and inspects `zero view` output for required graph/source shape signals.\n\nThe eval system prompt intentionally avoids Zero syntax examples. The model is\nexpected to learn task-relevant syntax from the version-matched skills and\ncompiler feedback.\n","evals/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"NodeNext\",\n    \"moduleResolution\": \"NodeNext\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"sourceMap\": true,\n    \"types\": [\"node\"]\n  },\n  \"include\": [\"src/**/*.ts\"]\n}\n","extensions/vscode/README.md":"# Zero Language Extension\n\nSyntax highlighting and basic editor configuration for Zero `.0` projection files in VS Code and Cursor. The repository also ships `pnpm run zls -- --self-test`, which exercises diagnostics, hovers, completions, symbols, fix plans, and editor metadata from `zero inspect`, `zero size`, `zero mem`, and `zero doc`.\n\nInstall into Cursor from the repository root:\n\n```sh\npnpm run extension:install:cursor\n```\n","skills/zero/SKILL.md":"---\nname: zero\ndescription: Install Zero and load version-matched workflows with zero skills.\n---\n\n# Zero\n\nZero is an agent-first programming language. zero.graph is the program; `.0` files are projections of it. Edit through `zero patch`.\n\nInstall this skill once in an agent's skill manager. Keep it thin; Zero's own CLI serves the version-matched workflow for each installed compiler.\n\nUse the zero already on PATH or at `~/.zero/bin/zero` when one exists; environments often pin a specific compiler, and replacing it silently breaks version-matched stores and workflows. Install only when zero is missing:\n\n```sh\ncommand -v zero >/dev/null 2>&1 || { curl -fsSL https://zerolang.ai/install.sh | bash; }\nexport PATH=\"$PATH:$HOME/.zero/bin\"\nzero --version\n```\n\n## Version-Matched Skills\n\nThis file is only a discovery stub. Do not treat it as the full Zero workflow\nor as command reference.\n\nBefore editing, checking, testing, or repairing Zero code, ask the installed compiler for the skill content that matches that exact binary:\n\n```sh\nzero skills\nzero skills get zero\nzero skills get zero --full\nzero skills get stdlib --topic std.time   # one section instead of the whole topic\n```\n\nIf the user has multiple Zero binaries, use the same binary that will run the project:\n\n```sh\n/path/to/zero skills\n/path/to/zero skills get zero --full\n```\n\nUse `zero skills get <name>` to load only what the task needs, and fetch each\ntopic at most once per session: the content is fixed for a given compiler\nbinary, so refetching a loaded topic returns the same text. Topics and\napproximate served sizes:\n\n- `zero` (~2 KB): this discovery stub\n- `agent` (~4 KB): read-edit-verify loop, zero query usage, edit surfaces, verification\n- `language` (~6 KB): syntax, types, effects, control flow, generics\n- `graph` (~9 KB): zero.graph store, query/view, patch operations, import/export/merge\n- `diagnostics` (~4 KB): reading diagnostics, zero explain, typed fix plans\n- `packages` (~5 KB): manifests, package layout, creation and repair\n- `builds` (~5 KB): build/run, targets, profiles, emitted artifacts\n- `testing` (~3 KB): test blocks, filters, runtime checks\n- `stdlib` (~39 KB): full signature reference, including ready-made validators: `std.time` (RFC 3339 incl. the exact leap-second rule), `std.inet` (IPv4/IPv6/hostname), `std.regex` (ECMA subset), `std.unicode` (strict UTF-8). Check here before hand-writing any parsing or validation logic. Fetch one module's section (~1 KB) with `zero skills get stdlib --topic <prefix>`, e.g. `--topic std.time`.\n\nBefore hand-writing any parsing or validation, check the stdlib catalog: `zero skills get stdlib --topic <module>` serves one section (`std.time` covers RFC 3339 incl. leap seconds).\n\nEdit through the graph: `zero patch` covers everything from surgical in-function text edits (`--replace-in-fn <fn> --old <text> --new <text>`, Edit semantics) to complete helper creation (`upsertFunction ... end`) and whole function bodies (`--replace-fn <fn> --body-file -` with a heredoc). Direct `.0` text edits are a last resort for changes no patch op expresses; package commands refresh `zero.graph` from edited source, but patch keeps the loop faster and preserves node identity. Read one function with `zero view --fn <name>` instead of whole files. Prefer concise text output during interactive agent work; use `--json` only for automation, exact spans, contracts, or machine-readable diagnostics.\n\n## Common Entry Points\n\n```sh\nzero query [graph-or-package]\nzero patch [graph-or-package] --op '<operation>'\nzero check [graph-or-package]\nzero test [graph-or-package]\nzero run [graph-or-package] -- <args>\nzero diff [graph-or-package]\nzero explain <diagnostic-code>\nzero fix --plan [graph-or-package]\n```\n\nIn a Zero repository checkout, prefer `bin/zero` when the task is about that checkout rather than the globally installed compiler.\n","extensions/vscode/package.json":"{\n  \"name\": \"zero-lang\",\n  \"displayName\": \"Zero Language\",\n  \"description\": \"Syntax highlighting for the Zero programming language.\",\n  \"publisher\": \"zero-lang\",\n  \"version\": \"0.3.4\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"categories\": [\n    \"Programming Languages\"\n  ],\n  \"scripts\": {\n    \"install:cursor\": \"node scripts/install-cursor-extension.mjs\",\n    \"test\": \"node --test tests/*.test.mjs\"\n  },\n  \"engines\": {\n    \"node\": \">=24\",\n    \"vscode\": \"^1.100.0\"\n  },\n  \"contributes\": {\n    \"languages\": [\n      {\n        \"id\": \"zero\",\n        \"aliases\": [\n          \"Zero\",\n          \"zero\"\n        ],\n        \"extensions\": [\n          \".0\"\n        ],\n        \"configuration\": \"./language-configuration/zero.json\"\n      }\n    ],\n    \"grammars\": [\n      {\n        \"language\": \"zero\",\n        \"scopeName\": \"source.zero\",\n        \"path\": \"./syntaxes/zero.tmLanguage.json\"\n      }\n    ],\n    \"snippets\": [\n      {\n        \"language\": \"zero\",\n        \"path\": \"./snippets/zero.json\"\n      }\n    ]\n  }\n}\n","extensions/vscode/language-configuration/zero.json":"{\n  \"comments\": {\n    \"lineComment\": \"//\",\n    \"blockComment\": [\"/*\", \"*/\"]\n  },\n  \"brackets\": [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  \"autoClosingPairs\": [\n    {\n      \"open\": \"{\",\n      \"close\": \"}\"\n    },\n    {\n      \"open\": \"[\",\n      \"close\": \"]\"\n    },\n    {\n      \"open\": \"(\",\n      \"close\": \")\"\n    },\n    {\n      \"open\": \"<\",\n      \"close\": \">\"\n    },\n    {\n      \"open\": \"\\\"\",\n      \"close\": \"\\\"\",\n      \"notIn\": [\"string\", \"comment\"]\n    }\n  ],\n  \"surroundingPairs\": [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"],\n    [\"\\\"\", \"\\\"\"]\n  ],\n  \"folding\": {\n    \"markers\": {\n      \"start\": \"^\\\\s*//\\\\s*#region\\\\b\",\n      \"end\": \"^\\\\s*//\\\\s*#endregion\\\\b\"\n    }\n  }\n}\n","extensions/vscode/syntaxes/zero.tmLanguage.json":"{\n  \"$schema\": \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n  \"name\": \"Zero\",\n  \"scopeName\": \"source.zero\",\n  \"patterns\": [\n    {\n      \"include\": \"#comments\"\n    },\n    {\n      \"include\": \"#strings\"\n    },\n    {\n      \"include\": \"#chars\"\n    },\n    {\n      \"include\": \"#numbers\"\n    },\n    {\n      \"include\": \"#keywords\"\n    },\n    {\n      \"include\": \"#types\"\n    },\n    {\n      \"include\": \"#functions\"\n    },\n    {\n      \"include\": \"#operators\"\n    }\n  ],\n  \"repository\": {\n    \"comments\": {\n      \"patterns\": [\n        {\n          \"name\": \"comment.line.double-slash.zero\",\n          \"match\": \"//.*$\"\n        },\n        {\n          \"name\": \"comment.block.zero\",\n          \"begin\": \"/\\\\*\",\n          \"end\": \"\\\\*/\"\n        }\n      ]\n    },\n    \"strings\": {\n      \"patterns\": [\n        {\n          \"name\": \"string.quoted.double.zero\",\n          \"begin\": \"\\\"\",\n          \"end\": \"\\\"\",\n          \"patterns\": [\n            {\n              \"name\": \"constant.character.escape.zero\",\n              \"match\": \"\\\\\\\\(?:[nrt0\\\"\\\\\\\\]|x[0-9A-Fa-f]{2}|u\\\\{[0-9A-Fa-f]+\\\\})\"\n            }\n          ]\n        }\n      ]\n    },\n    \"chars\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.character.zero\",\n          \"match\": \"'(?:[^'\\\\\\\\\\\\n]|\\\\\\\\(?:[nrt0'\\\"\\\\\\\\]|x[0-9A-Fa-f]{2}))'\"\n        }\n      ]\n    },\n    \"numbers\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.numeric.zero\",\n          \"match\": \"\\\\b(?:[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?|0x[0-9A-Fa-f_]+|0b[01_]+|0o[0-7_]+|[0-9][0-9_]*(?:_[A-Za-z][A-Za-z0-9_]*)?)\\\\b\"\n        }\n      ]\n    },\n    \"keywords\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.control.zero\",\n          \"match\": \"\\\\b(?:break|check|continue|defer|else|for|if|match|raise|raises|rescue|return|while)\\\\b\"\n        },\n        {\n          \"name\": \"keyword.declaration.zero\",\n          \"match\": \"\\\\b(?:alias|choice|const|enum|export|extern|fn|interface|let|meta|mut|packed|pub|static|test|type|use|var)\\\\b\"\n        },\n        {\n          \"name\": \"constant.language.zero\",\n          \"match\": \"\\\\b(?:false|null|true)\\\\b\"\n        }\n      ]\n    },\n    \"types\": {\n      \"patterns\": [\n        {\n          \"name\": \"support.type.primitive.zero\",\n          \"match\": \"\\\\b(?:Bool|Void|Type|char|usize|isize|u[0-9]+|i[0-9]+|f(?:16|32|64)|c_(?:int|long|size|char)|World|Alloc|Fs|Net|Env|Args|Clock|Rand|Proc|Sync)\\\\b\"\n        },\n        {\n          \"name\": \"support.type.container.zero\",\n          \"match\": \"\\\\b(?:Maybe|Span|owned|ref|mutref|Vec|String)\\\\b\"\n        }\n      ]\n    },\n    \"functions\": {\n      \"patterns\": [\n        {\n          \"name\": \"entity.name.function.zero\",\n          \"match\": \"(?<=\\\\bfn\\\\s+)[A-Za-z_][A-Za-z0-9_]*\"\n        },\n        {\n          \"name\": \"entity.name.function.method.zero\",\n          \"match\": \"\\\\b[A-Za-z_][A-Za-z0-9_]*(?=\\\\s*\\\\()\"\n        }\n      ]\n    },\n    \"operators\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.operator.zero\",\n          \"match\": \"\\\\b(?:as)\\\\b|->|=>|\\\\+%|\\\\+\\\\||==|!=|<=|>=|&&|\\\\|\\\\||[=+\\\\-*/%<>.:]\"\n        }\n      ]\n    }\n  }\n}\n","extensions/vscode/snippets/zero.json":"{\n  \"main\": {\n    \"prefix\": \"main\",\n    \"body\": [\n      \"pub fn main(world: World) -> Void raises {\",\n      \"    check world.out.write(\\\"$1\\\\\\\\n\\\")\",\n      \"}\"\n    ],\n    \"description\": \"Zero main entrypoint\"\n  },\n  \"type\": {\n    \"prefix\": \"type\",\n    \"body\": [\n      \"type ${1:Name} {\",\n      \"    ${2:field}: ${3:i32},\",\n      \"}\"\n    ],\n    \"description\": \"Zero type declaration\"\n  },\n  \"function\": {\n    \"prefix\": \"fn\",\n    \"body\": [\n      \"fn ${1:name}(${2:param}: ${3:i32}) -> ${4:i32} {\",\n      \"    return ${2:param}\",\n      \"}\"\n    ],\n    \"description\": \"Zero function declaration\"\n  },\n  \"test\": {\n    \"prefix\": \"test\",\n    \"body\": [\n      \"test \\\"${1:behavior}\\\" {\",\n      \"    expect(${2:true})\",\n      \"}\"\n    ],\n    \"description\": \"Zero test block\"\n  },\n  \"if\": {\n    \"prefix\": \"if\",\n    \"body\": [\n      \"if $1 {\",\n      \"    $2\",\n      \"}\"\n    ],\n    \"description\": \"Zero if statement\"\n  },\n  \"while\": {\n    \"prefix\": \"while\",\n    \"body\": [\n      \"while $1 {\",\n      \"    $2\",\n      \"}\"\n    ],\n    \"description\": \"Zero while loop\"\n  }\n}\n"},"files":{"evals/package.json":"{\n  \"name\": \"zero-evals\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"engines\": {\n    \"node\": \">=24\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc -p tsconfig.json\",\n    \"eval\": \"pnpm run build && node dist/run.js\",\n    \"test\": \"pnpm run build && node --test dist/*.test.js\"\n  },\n  \"dependencies\": {\n    \"@vercel/sandbox\": \"^1.10.2\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^25.9.0\",\n    \"typescript\": \"^6.0.3\"\n  }\n}\n","AGENTS.md":"# Contributor Notes\n\nZero is a pre-1 experiment in building an agent-first programming language.\nKeep public-facing changes honest about what works today without weakening that\npositioning.\n\n## Project Direction\n\nZero is still being shaped around the needs of agents. Breaking changes are\nacceptable when they move the language, standard library, compiler, or tooling\ncloser to that goal.\n\nDo not preserve legacy behavior by default. Prefer the clearer agent-facing\ndesign over compatibility shims, migration layers, or carrying old paths\nforward. Keep examples, docs, tests, and command contracts aligned with the new\nbehavior so the repository describes one coherent current system.\n\nThis does not mean broad churn for its own sake. Make direct changes that\nadvance Zero's agent-first goals: on-the-fly learnability, deterministic\ninspection and repair, strong standard-library coverage, exceptional developer\nexperience, and regular patterns over syntactic convenience.\n\n## Safety Expectations\n\nSecurity vulnerabilities should be expected. Zero is not ready for production\nsystems, sensitive data, or trusted infrastructure.\n\nRun and develop Zero in safe environments: isolated workspaces, disposable\ninputs, and systems where compiler crashes, malformed output, or unsafe runtime\nbehavior cannot damage production state. Treat generated artifacts and examples\nas experimental unless they have been reviewed for the specific environment\nwhere they will run.\n\n## Development\n\n- Build the local compiler with `make -C native/zero-c`.\n- Use `bin/zero` for focused checks; it execs the local native compiler at\n  `.zero/bin/zero`.\n- Keep examples runnable and docs copyable.\n- Prefer small, direct changes over broad refactors.\n- Use direct emitters for compiler output.\n- For broad local validation, run `pnpm run agent:checks`. It mirrors the CI\n  buckets in parallel, including conformance, command contracts, native test\n  shards, sanitizer smoke, and workspace checks. It uses isolated `/tmp`\n  workspaces so agents can validate uncommitted changes without local artifact\n  races.\n- Before ending any agent turn that changes the repository, run\n  `pnpm run conformance` unless `pnpm run agent:checks` already passed for the\n  same changes. If validation cannot complete, report the blocker and the\n  failing command.\n\n## Useful Checks\n\n```sh\npnpm run agent:checks\npnpm run docs:build\npnpm run conformance\npnpm run native:test\npnpm run command-contracts\n```\n\n`pnpm run agent:checks` already includes conformance. Do not run conformance\nagain after it passes unless you need to recheck later changes.\n\nShard native tests locally with `ZERO_NATIVE_TEST_SHARD=1/4 pnpm run\nnative:test:local`. PR CI runs representative native runtime cases in two\nfast shards. Scheduled and manual deep CI runs the full native runtime matrix\nin six shards, plus full conformance and full graph performance fixtures.\n\n`pnpm run conformance:local` and `pnpm run command-contracts:local` use the\naggregate validation runner. Add `-- --shard 1/4` to run one conformance phase\nshard, `-- --phases name,name` to match a focused CI phase set, `-- --list` to\nsee phases, and `-- --fail-fast` only when a narrow loop should stop at the\nfirst failing phase.\nUse `ZERO_NATIVE_TEST_SCOPE=fast` only when reproducing PR CI coverage. Leave it\nunset for the exhaustive native runtime matrix.\n`pnpm run conformance` runs the sandbox suite with four isolated conformance\ncheck workers. Local validation stays serial by default; set\n`ZERO_CONFORMANCE_CHECK_JOBS=<n>` only when measuring that path on the current\nmachine.\nValidation scripts prefer the built native compiler at `.zero/bin/zero` after\n`native-build`; set `ZERO_BIN=<path>` only when comparing another compiler\nbinary deliberately.\n\nFor focused compiler work:\n\n```sh\nbin/zero check --json <graph-input>\nbin/zero inspect --json <graph-input>\nbin/zero size --json <graph-input>\nbin/zero explain <diagnostic-code>\nbin/zero fix --plan --json <graph-backed-file-or-package>\n```\n\n## Project Layout\n\n- `native/zero-c/`: native compiler implementation.\n- `examples/`: small runnable programs and packages.\n- `conformance/`: language and CLI fixtures.\n- `docs/`: public documentation site.\n- `scripts/`: validation and release support tooling.\n\n## Public Docs Policy\n\nDocs should describe current user-facing behavior, not internal development\nhistory. Avoid release-planning language, validation-report narratives, and\nimplementation diary details in pages intended for external readers.\n\n## Releasing\n\nReleases are manual, single-branch affairs. The maintainer controls the\nchangelog voice and format.\n\nTo prepare a release:\n\n1. Create a release branch, such as `ctate/v0.1.1`.\n2. Bump the release version in `package.json`, `docs/package.json`,\n   `extensions/vscode/package.json`, and `native/zero-c/src/main.c`.\n3. Update command-contract expectations that assert the compiler version.\n4. Write the `CHANGELOG.md` entry for the new version, wrapped in\n   `<!-- release:start -->` and `<!-- release:end -->` markers.\n5. Remove the release markers from the previous release entry. Only the latest\n   release entry should have markers.\n6. Include a `### Contributors` section in the marked changelog entry. Derive\n   contributors from commit authors and `Co-authored-by` trailers since the\n   previous tag.\n7. Run focused checks before opening or updating the PR:\n\n```sh\nmake -C native/zero-c\nbin/zero --version --json\npnpm run test:zero\npnpm run command-contracts:local\npnpm run docs:build\n```\n\nThe release workflow reads the version from `package.json`, builds release\nassets, and uses the content between the changelog markers as the GitHub\nrelease body.\n","evals/README.md":"# Zero Evals\n\nTypeScript evals for agent-facing Zero workflows.\n\nRun the checked-in fixture without calling Claude:\n\n```sh\npnpm evals -- --case hello-world --fixture\npnpm evals -- --case rosetta-100-doors --fixture\npnpm evals -- --suite agent-scale --fixture\n```\n\nRun live in Vercel Sandbox through Claude Code and Vercel AI Gateway:\n\n```sh\nAI_GATEWAY_API_KEY=... pnpm evals -- --case hello-world\n```\n\nBy default, evals run each selected case against:\n\n- `anthropic/claude-opus-4.7`\n- `anthropic/claude-sonnet-4.6`\n\nOverride the model set with repeated `--model` flags or a comma-separated\n`--models` value:\n\n```sh\npnpm evals -- --case hello-world --model anthropic/claude-sonnet-4.6\npnpm evals -- --case hello-world --models anthropic/claude-opus-4.7,anthropic/claude-sonnet-4.6\n```\n\nLive evals create a Vercel Sandbox, upload the current checkout, build the\nnative compiler, install Claude Code, and run the agent inside the sandbox. Each\nmodel/case run gets a fresh copy of the prepared checkout so mutations from one\nrun do not affect the next run. The sandbox network policy injects the AI\nGateway bearer credential for `https://ai-gateway.vercel.sh`.\n\nCredential options:\n\n```sh\n# Sandbox auth\nVERCEL_OIDC_TOKEN=...\n# or VERCEL_TOKEN=... VERCEL_TEAM_ID=... VERCEL_PROJECT_ID=...\n\n# AI Gateway auth\nAI_GATEWAY_API_KEY=...\n\n# Model selection\nZERO_EVAL_MODELS=anthropic/claude-opus-4.7,anthropic/claude-sonnet-4.6\n# or ZERO_EVAL_MODEL=anthropic/claude-sonnet-4.6\n```\n\nEach live model run must load Zero's version-matched skill through\n`bin/zero skills get zero --full`, then use `bin/zero check` and `bin/zero run`\ninside the sandbox to verify its candidate.\n\nThe Rosetta cases are deterministic code-challenge evals. Prompts describe the\ntask behavior and expected output; the evaluator does not compare an exact\nprojection. It imports the returned source into a graph artifact, checks that\ngraph, runs it, and compares stdout/stderr plus a small set of source-shape\nrequirements.\n\nThe `agent-scale` suite covers larger agent tasks. It includes multi-command CLI\nprograms with several runtime checks and graph package fixtures such as a CRM\nHTTP request-envelope API. Package cases are validated in place: the evaluator\nruns `zero check`, executes each smoke route or command with isolated `--out`\npaths, and inspects `zero view` output for required graph/source shape signals.\n\nThe eval system prompt intentionally avoids Zero syntax examples. The model is\nexpected to learn task-relevant syntax from the version-matched skills and\ncompiler feedback.\n","evals/tsconfig.json":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"NodeNext\",\n    \"moduleResolution\": \"NodeNext\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"sourceMap\": true,\n    \"types\": [\"node\"]\n  },\n  \"include\": [\"src/**/*.ts\"]\n}\n","extensions/vscode/README.md":"# Zero Language Extension\n\nSyntax highlighting and basic editor configuration for Zero `.0` projection files in VS Code and Cursor. The repository also ships `pnpm run zls -- --self-test`, which exercises diagnostics, hovers, completions, symbols, fix plans, and editor metadata from `zero inspect`, `zero size`, `zero mem`, and `zero doc`.\n\nInstall into Cursor from the repository root:\n\n```sh\npnpm run extension:install:cursor\n```\n","skills/zero/SKILL.md":"---\nname: zero\ndescription: Install Zero and load version-matched workflows with zero skills.\n---\n\n# Zero\n\nZero is an agent-first programming language. zero.graph is the program; `.0` files are projections of it. Edit through `zero patch`.\n\nInstall this skill once in an agent's skill manager. Keep it thin; Zero's own CLI serves the version-matched workflow for each installed compiler.\n\nUse the zero already on PATH or at `~/.zero/bin/zero` when one exists; environments often pin a specific compiler, and replacing it silently breaks version-matched stores and workflows. Install only when zero is missing:\n\n```sh\ncommand -v zero >/dev/null 2>&1 || { curl -fsSL https://zerolang.ai/install.sh | bash; }\nexport PATH=\"$PATH:$HOME/.zero/bin\"\nzero --version\n```\n\n## Version-Matched Skills\n\nThis file is only a discovery stub. Do not treat it as the full Zero workflow\nor as command reference.\n\nBefore editing, checking, testing, or repairing Zero code, ask the installed compiler for the skill content that matches that exact binary:\n\n```sh\nzero skills\nzero skills get zero\nzero skills get zero --full\nzero skills get stdlib --topic std.time   # one section instead of the whole topic\n```\n\nIf the user has multiple Zero binaries, use the same binary that will run the project:\n\n```sh\n/path/to/zero skills\n/path/to/zero skills get zero --full\n```\n\nUse `zero skills get <name>` to load only what the task needs, and fetch each\ntopic at most once per session: the content is fixed for a given compiler\nbinary, so refetching a loaded topic returns the same text. Topics and\napproximate served sizes:\n\n- `zero` (~2 KB): this discovery stub\n- `agent` (~4 KB): read-edit-verify loop, zero query usage, edit surfaces, verification\n- `language` (~6 KB): syntax, types, effects, control flow, generics\n- `graph` (~9 KB): zero.graph store, query/view, patch operations, import/export/merge\n- `diagnostics` (~4 KB): reading diagnostics, zero explain, typed fix plans\n- `packages` (~5 KB): manifests, package layout, creation and repair\n- `builds` (~5 KB): build/run, targets, profiles, emitted artifacts\n- `testing` (~3 KB): test blocks, filters, runtime checks\n- `stdlib` (~39 KB): full signature reference, including ready-made validators: `std.time` (RFC 3339 incl. the exact leap-second rule), `std.inet` (IPv4/IPv6/hostname), `std.regex` (ECMA subset), `std.unicode` (strict UTF-8). Check here before hand-writing any parsing or validation logic. Fetch one module's section (~1 KB) with `zero skills get stdlib --topic <prefix>`, e.g. `--topic std.time`.\n\nBefore hand-writing any parsing or validation, check the stdlib catalog: `zero skills get stdlib --topic <module>` serves one section (`std.time` covers RFC 3339 incl. leap seconds).\n\nEdit through the graph: `zero patch` covers everything from surgical in-function text edits (`--replace-in-fn <fn> --old <text> --new <text>`, Edit semantics) to complete helper creation (`upsertFunction ... end`) and whole function bodies (`--replace-fn <fn> --body-file -` with a heredoc). Direct `.0` text edits are a last resort for changes no patch op expresses; package commands refresh `zero.graph` from edited source, but patch keeps the loop faster and preserves node identity. Read one function with `zero view --fn <name>` instead of whole files. Prefer concise text output during interactive agent work; use `--json` only for automation, exact spans, contracts, or machine-readable diagnostics.\n\n## Common Entry Points\n\n```sh\nzero query [graph-or-package]\nzero patch [graph-or-package] --op '<operation>'\nzero check [graph-or-package]\nzero test [graph-or-package]\nzero run [graph-or-package] -- <args>\nzero diff [graph-or-package]\nzero explain <diagnostic-code>\nzero fix --plan [graph-or-package]\n```\n\nIn a Zero repository checkout, prefer `bin/zero` when the task is about that checkout rather than the globally installed compiler.\n","extensions/vscode/package.json":"{\n  \"name\": \"zero-lang\",\n  \"displayName\": \"Zero Language\",\n  \"description\": \"Syntax highlighting for the Zero programming language.\",\n  \"publisher\": \"zero-lang\",\n  \"version\": \"0.3.4\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"categories\": [\n    \"Programming Languages\"\n  ],\n  \"scripts\": {\n    \"install:cursor\": \"node scripts/install-cursor-extension.mjs\",\n    \"test\": \"node --test tests/*.test.mjs\"\n  },\n  \"engines\": {\n    \"node\": \">=24\",\n    \"vscode\": \"^1.100.0\"\n  },\n  \"contributes\": {\n    \"languages\": [\n      {\n        \"id\": \"zero\",\n        \"aliases\": [\n          \"Zero\",\n          \"zero\"\n        ],\n        \"extensions\": [\n          \".0\"\n        ],\n        \"configuration\": \"./language-configuration/zero.json\"\n      }\n    ],\n    \"grammars\": [\n      {\n        \"language\": \"zero\",\n        \"scopeName\": \"source.zero\",\n        \"path\": \"./syntaxes/zero.tmLanguage.json\"\n      }\n    ],\n    \"snippets\": [\n      {\n        \"language\": \"zero\",\n        \"path\": \"./snippets/zero.json\"\n      }\n    ]\n  }\n}\n","extensions/vscode/language-configuration/zero.json":"{\n  \"comments\": {\n    \"lineComment\": \"//\",\n    \"blockComment\": [\"/*\", \"*/\"]\n  },\n  \"brackets\": [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  \"autoClosingPairs\": [\n    {\n      \"open\": \"{\",\n      \"close\": \"}\"\n    },\n    {\n      \"open\": \"[\",\n      \"close\": \"]\"\n    },\n    {\n      \"open\": \"(\",\n      \"close\": \")\"\n    },\n    {\n      \"open\": \"<\",\n      \"close\": \">\"\n    },\n    {\n      \"open\": \"\\\"\",\n      \"close\": \"\\\"\",\n      \"notIn\": [\"string\", \"comment\"]\n    }\n  ],\n  \"surroundingPairs\": [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"],\n    [\"\\\"\", \"\\\"\"]\n  ],\n  \"folding\": {\n    \"markers\": {\n      \"start\": \"^\\\\s*//\\\\s*#region\\\\b\",\n      \"end\": \"^\\\\s*//\\\\s*#endregion\\\\b\"\n    }\n  }\n}\n","extensions/vscode/syntaxes/zero.tmLanguage.json":"{\n  \"$schema\": \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n  \"name\": \"Zero\",\n  \"scopeName\": \"source.zero\",\n  \"patterns\": [\n    {\n      \"include\": \"#comments\"\n    },\n    {\n      \"include\": \"#strings\"\n    },\n    {\n      \"include\": \"#chars\"\n    },\n    {\n      \"include\": \"#numbers\"\n    },\n    {\n      \"include\": \"#keywords\"\n    },\n    {\n      \"include\": \"#types\"\n    },\n    {\n      \"include\": \"#functions\"\n    },\n    {\n      \"include\": \"#operators\"\n    }\n  ],\n  \"repository\": {\n    \"comments\": {\n      \"patterns\": [\n        {\n          \"name\": \"comment.line.double-slash.zero\",\n          \"match\": \"//.*$\"\n        },\n        {\n          \"name\": \"comment.block.zero\",\n          \"begin\": \"/\\\\*\",\n          \"end\": \"\\\\*/\"\n        }\n      ]\n    },\n    \"strings\": {\n      \"patterns\": [\n        {\n          \"name\": \"string.quoted.double.zero\",\n          \"begin\": \"\\\"\",\n          \"end\": \"\\\"\",\n          \"patterns\": [\n            {\n              \"name\": \"constant.character.escape.zero\",\n              \"match\": \"\\\\\\\\(?:[nrt0\\\"\\\\\\\\]|x[0-9A-Fa-f]{2}|u\\\\{[0-9A-Fa-f]+\\\\})\"\n            }\n          ]\n        }\n      ]\n    },\n    \"chars\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.character.zero\",\n          \"match\": \"'(?:[^'\\\\\\\\\\\\n]|\\\\\\\\(?:[nrt0'\\\"\\\\\\\\]|x[0-9A-Fa-f]{2}))'\"\n        }\n      ]\n    },\n    \"numbers\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.numeric.zero\",\n          \"match\": \"\\\\b(?:[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?|0x[0-9A-Fa-f_]+|0b[01_]+|0o[0-7_]+|[0-9][0-9_]*(?:_[A-Za-z][A-Za-z0-9_]*)?)\\\\b\"\n        }\n      ]\n    },\n    \"keywords\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.control.zero\",\n          \"match\": \"\\\\b(?:break|check|continue|defer|else|for|if|match|raise|raises|rescue|return|while)\\\\b\"\n        },\n        {\n          \"name\": \"keyword.declaration.zero\",\n          \"match\": \"\\\\b(?:alias|choice|const|enum|export|extern|fn|interface|let|meta|mut|packed|pub|static|test|type|use|var)\\\\b\"\n        },\n        {\n          \"name\": \"constant.language.zero\",\n          \"match\": \"\\\\b(?:false|null|true)\\\\b\"\n        }\n      ]\n    },\n    \"types\": {\n      \"patterns\": [\n        {\n          \"name\": \"support.type.primitive.zero\",\n          \"match\": \"\\\\b(?:Bool|Void|Type|char|usize|isize|u[0-9]+|i[0-9]+|f(?:16|32|64)|c_(?:int|long|size|char)|World|Alloc|Fs|Net|Env|Args|Clock|Rand|Proc|Sync)\\\\b\"\n        },\n        {\n          \"name\": \"support.type.container.zero\",\n          \"match\": \"\\\\b(?:Maybe|Span|owned|ref|mutref|Vec|String)\\\\b\"\n        }\n      ]\n    },\n    \"functions\": {\n      \"patterns\": [\n        {\n          \"name\": \"entity.name.function.zero\",\n          \"match\": \"(?<=\\\\bfn\\\\s+)[A-Za-z_][A-Za-z0-9_]*\"\n        },\n        {\n          \"name\": \"entity.name.function.method.zero\",\n          \"match\": \"\\\\b[A-Za-z_][A-Za-z0-9_]*(?=\\\\s*\\\\()\"\n        }\n      ]\n    },\n    \"operators\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.operator.zero\",\n          \"match\": \"\\\\b(?:as)\\\\b|->|=>|\\\\+%|\\\\+\\\\||==|!=|<=|>=|&&|\\\\|\\\\||[=+\\\\-*/%<>.:]\"\n        }\n      ]\n    }\n  }\n}\n","extensions/vscode/snippets/zero.json":"{\n  \"main\": {\n    \"prefix\": \"main\",\n    \"body\": [\n      \"pub fn main(world: World) -> Void raises {\",\n      \"    check world.out.write(\\\"$1\\\\\\\\n\\\")\",\n      \"}\"\n    ],\n    \"description\": \"Zero main entrypoint\"\n  },\n  \"type\": {\n    \"prefix\": \"type\",\n    \"body\": [\n      \"type ${1:Name} {\",\n      \"    ${2:field}: ${3:i32},\",\n      \"}\"\n    ],\n    \"description\": \"Zero type declaration\"\n  },\n  \"function\": {\n    \"prefix\": \"fn\",\n    \"body\": [\n      \"fn ${1:name}(${2:param}: ${3:i32}) -> ${4:i32} {\",\n      \"    return ${2:param}\",\n      \"}\"\n    ],\n    \"description\": \"Zero function declaration\"\n  },\n  \"test\": {\n    \"prefix\": \"test\",\n    \"body\": [\n      \"test \\\"${1:behavior}\\\" {\",\n      \"    expect(${2:true})\",\n      \"}\"\n    ],\n    \"description\": \"Zero test block\"\n  },\n  \"if\": {\n    \"prefix\": \"if\",\n    \"body\": [\n      \"if $1 {\",\n      \"    $2\",\n      \"}\"\n    ],\n    \"description\": \"Zero if statement\"\n  },\n  \"while\": {\n    \"prefix\": \"while\",\n    \"body\": [\n      \"while $1 {\",\n      \"    $2\",\n      \"}\"\n    ],\n    \"description\": \"Zero while loop\"\n  }\n}\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Contributor Notes\n\nZero is a pre-1 experiment in building an agent-first programming language.\nKeep public-facing changes honest about what works today without weakening that\npositioning.\n\n## Project Direction\n\nZero is still being shaped around the needs of agents. Breaking changes are\nacceptable when they move the language, standard library, compiler, or tooling\ncloser to that goal.\n\nDo not preserve legacy behavior by default. Prefer the clearer agent-facing\ndesign over compatibility shims, migration layers, or carrying old paths\nforward. Keep examples, docs, tests, and command contracts aligned with the new\nbehavior so the repository describes one coherent current system.\n\nThis does not mean broad churn for its own sake. Make direct changes that\nadvance Zero's agent-first goals: on-the-fly learnability, deterministic\ninspection and repair, strong standard-library coverage, exceptional developer\nexperience, and regular patterns over syntactic convenience.\n\n## Safety Expectations\n\nSecurity vulnerabilities should be expected. Zero is not ready for production\nsystems, sensitive data, or trusted infrastructure.\n\nRun and develop Zero in safe environments: isolated workspaces, disposable\ninputs, and systems where compiler crashes, malformed output, or unsafe runtime\nbehavior cannot damage production state. Treat generated artifacts and examples\nas experimental unless they have been reviewed for the specific environment\nwhere they will run.\n\n## Development\n\n- Build the local compiler with `make -C native/zero-c`.\n- Use `bin/zero` for focused checks; it execs the local native compiler at\n  `.zero/bin/zero`.\n- Keep examples runnable and docs copyable.\n- Prefer small, direct changes over broad refactors.\n- Use direct emitters for compiler output.\n- For broad local validation, run `pnpm run agent:checks`. It mirrors the CI\n  buckets in parallel, including conformance, command contracts, native test\n  shards, sanitizer smoke, and workspace checks. It uses isolated `/tmp`\n  workspaces so agents can validate uncommitted changes without local artifact\n  races.\n- Before ending any agent turn that changes the repository, run\n  `pnpm run conformance` unless `pnpm run agent:checks` already passed for the\n  same changes. If validation cannot complete, report the blocker and the\n  failing command.\n\n## Useful Checks\n\n```sh\npnpm run agent:checks\npnpm run docs:build\npnpm run conformance\npnpm run native:test\npnpm run command-contracts\n```\n\n`pnpm run agent:checks` already includes conformance. Do not run conformance\nagain after it passes unless you need to recheck later changes.\n\nShard native tests locally with `ZERO_NATIVE_TEST_SHARD=1/4 pnpm run\nnative:test:local`. PR CI runs representative native runtime cases in two\nfast shards. Scheduled and manual deep CI runs the full native runtime matrix\nin six shards, plus full conformance and full graph performance fixtures.\n\n`pnpm run conformance:local` and `pnpm run command-contracts:local` use the\naggregate validation runner. Add `-- --shard 1/4` to run one conformance phase\nshard, `-- --phases name,name` to match a focused CI phase set, `-- --list` to\nsee phases, and `-- --fail-fast` only when a narrow loop should stop at the\nfirst failing phase.\nUse `ZERO_NATIVE_TEST_SCOPE=fast` only when reproducing PR CI coverage. Leave it\nunset for the exhaustive native runtime matrix.\n`pnpm run conformance` runs the sandbox suite with four isolated conformance\ncheck workers. Local validation stays serial by default; set\n`ZERO_CONFORMANCE_CHECK_JOBS=<n>` only when measuring that path on the current\nmachine.\nValidation scripts prefer the built native compiler at `.zero/bin/zero` after\n`native-build`; set `ZERO_BIN=<path>` only when comparing another compiler\nbinary deliberately.\n\nFor focused compiler work:\n\n```sh\nbin/zero check --json <graph-input>\nbin/zero inspect --json <graph-input>\nbin/zero size --json <graph-input>\nbin/zero explain <diagnostic-code>\nbin/zero fix --plan --json <graph-backed-file-or-package>\n```\n\n## Project Layout\n\n- `native/zero-c/`: native compiler implementation.\n- `examples/`: small runnable programs and packages.\n- `conformance/`: language and CLI fixtures.\n- `docs/`: public documentation site.\n- `scripts/`: validation and release support tooling.\n\n## Public Docs Policy\n\nDocs should describe current user-facing behavior, not internal development\nhistory. Avoid release-planning language, validation-report narratives, and\nimplementation diary details in pages intended for external readers.\n\n## Releasing\n\nReleases are manual, single-branch affairs. The maintainer controls the\nchangelog voice and format.\n\nTo prepare a release:\n\n1. Create a release branch, such as `ctate/v0.1.1`.\n2. Bump the release version in `package.json`, `docs/package.json`,\n   `extensions/vscode/package.json`, and `native/zero-c/src/main.c`.\n3. Update command-contract expectations that assert the compiler version.\n4. Write the `CHANGELOG.md` entry for the new version, wrapped in\n   `<!-- release:start -->` and `<!-- release:end -->` markers.\n5. Remove the release markers from the previous release entry. Only the latest\n   release entry should have markers.\n6. Include a `### Contributors` section in the marked changelog entry. Derive\n   contributors from commit authors and `Co-authored-by` trailers since the\n   previous tag.\n7. Run focused checks before opening or updating the PR:\n\n```sh\nmake -C native/zero-c\nbin/zero --version --json\npnpm run test:zero\npnpm run command-contracts:local\npnpm run docs:build\n```\n\nThe release workflow reads the version from `package.json`, builds release\nassets, and uses the content between the changelog markers as the GitHub\nrelease body.\n","isInternal":false,"tokens":1258,"sizeBytes":5679},{"name":"package.json","path":"evals/package.json","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/evals/package.json","title":"zero-evals","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"zero-evals\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"engines\": {\n    \"node\": \">=24\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc -p tsconfig.json\",\n    \"eval\": \"pnpm run build && node dist/run.js\",\n    \"test\": \"pnpm run build && node --test dist/*.test.js\"\n  },\n  \"dependencies\": {\n    \"@vercel/sandbox\": \"^1.10.2\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^25.9.0\",\n    \"typescript\": \"^6.0.3\"\n  }\n}\n","frontmatter":{"name":"zero-evals","private":true,"type":"module","engines":{"node":">=24"},"scripts":{"build":"tsc -p tsconfig.json","eval":"pnpm run build && node dist/run.js","test":"pnpm run build && node --test dist/*.test.js"},"dependencies":{"@vercel/sandbox":"^1.10.2"},"devDependencies":{"@types/node":"^25.9.0","typescript":"^6.0.3"}},"isInternal":false,"tokens":145,"sizeBytes":414},{"name":"README.md","path":"evals/README.md","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/evals/README.md","title":"Evals Skill","category":"anthropic-skill","format":"markdown","content":"# Zero Evals\n\nTypeScript evals for agent-facing Zero workflows.\n\nRun the checked-in fixture without calling Claude:\n\n```sh\npnpm evals -- --case hello-world --fixture\npnpm evals -- --case rosetta-100-doors --fixture\npnpm evals -- --suite agent-scale --fixture\n```\n\nRun live in Vercel Sandbox through Claude Code and Vercel AI Gateway:\n\n```sh\nAI_GATEWAY_API_KEY=... pnpm evals -- --case hello-world\n```\n\nBy default, evals run each selected case against:\n\n- `anthropic/claude-opus-4.7`\n- `anthropic/claude-sonnet-4.6`\n\nOverride the model set with repeated `--model` flags or a comma-separated\n`--models` value:\n\n```sh\npnpm evals -- --case hello-world --model anthropic/claude-sonnet-4.6\npnpm evals -- --case hello-world --models anthropic/claude-opus-4.7,anthropic/claude-sonnet-4.6\n```\n\nLive evals create a Vercel Sandbox, upload the current checkout, build the\nnative compiler, install Claude Code, and run the agent inside the sandbox. Each\nmodel/case run gets a fresh copy of the prepared checkout so mutations from one\nrun do not affect the next run. The sandbox network policy injects the AI\nGateway bearer credential for `https://ai-gateway.vercel.sh`.\n\nCredential options:\n\n```sh\n# Sandbox auth\nVERCEL_OIDC_TOKEN=...\n# or VERCEL_TOKEN=... VERCEL_TEAM_ID=... VERCEL_PROJECT_ID=...\n\n# AI Gateway auth\nAI_GATEWAY_API_KEY=...\n\n# Model selection\nZERO_EVAL_MODELS=anthropic/claude-opus-4.7,anthropic/claude-sonnet-4.6\n# or ZERO_EVAL_MODEL=anthropic/claude-sonnet-4.6\n```\n\nEach live model run must load Zero's version-matched skill through\n`bin/zero skills get zero --full`, then use `bin/zero check` and `bin/zero run`\ninside the sandbox to verify its candidate.\n\nThe Rosetta cases are deterministic code-challenge evals. Prompts describe the\ntask behavior and expected output; the evaluator does not compare an exact\nprojection. It imports the returned source into a graph artifact, checks that\ngraph, runs it, and compares stdout/stderr plus a small set of source-shape\nrequirements.\n\nThe `agent-scale` suite covers larger agent tasks. It includes multi-command CLI\nprograms with several runtime checks and graph package fixtures such as a CRM\nHTTP request-envelope API. Package cases are validated in place: the evaluator\nruns `zero check`, executes each smoke route or command with isolated `--out`\npaths, and inspects `zero view` output for required graph/source shape signals.\n\nThe eval system prompt intentionally avoids Zero syntax examples. The model is\nexpected to learn task-relevant syntax from the version-matched skills and\ncompiler feedback.\n","isInternal":false,"tokens":648,"sizeBytes":2556},{"name":"tsconfig.json","path":"evals/tsconfig.json","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/evals/tsconfig.json","title":"Evals Skill","category":"anthropic-skill","format":"json","content":"{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"NodeNext\",\n    \"moduleResolution\": \"NodeNext\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"sourceMap\": true,\n    \"types\": [\"node\"]\n  },\n  \"include\": [\"src/**/*.ts\"]\n}\n","frontmatter":{"compilerOptions":{"target":"ES2022","module":"NodeNext","moduleResolution":"NodeNext","rootDir":"src","outDir":"dist","strict":true,"skipLibCheck":true,"sourceMap":true,"types":["node"]},"include":["src/**/*.ts"]},"isInternal":false,"tokens":89,"sizeBytes":282},{"name":"zero.json","path":"extensions/vscode/language-configuration/zero.json","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/extensions/vscode/language-configuration/zero.json","title":"Language-configuration Skill","category":"anthropic-skill","format":"json","content":"{\n  \"comments\": {\n    \"lineComment\": \"//\",\n    \"blockComment\": [\"/*\", \"*/\"]\n  },\n  \"brackets\": [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  \"autoClosingPairs\": [\n    {\n      \"open\": \"{\",\n      \"close\": \"}\"\n    },\n    {\n      \"open\": \"[\",\n      \"close\": \"]\"\n    },\n    {\n      \"open\": \"(\",\n      \"close\": \")\"\n    },\n    {\n      \"open\": \"<\",\n      \"close\": \">\"\n    },\n    {\n      \"open\": \"\\\"\",\n      \"close\": \"\\\"\",\n      \"notIn\": [\"string\", \"comment\"]\n    }\n  ],\n  \"surroundingPairs\": [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"],\n    [\"\\\"\", \"\\\"\"]\n  ],\n  \"folding\": {\n    \"markers\": {\n      \"start\": \"^\\\\s*//\\\\s*#region\\\\b\",\n      \"end\": \"^\\\\s*//\\\\s*#endregion\\\\b\"\n    }\n  }\n}\n","frontmatter":{"comments":{"lineComment":"//","blockComment":["/*","*/"]},"brackets":[["{","}"],["[","]"],["(",")"],["<",">"]],"autoClosingPairs":[{"open":"{","close":"}"},{"open":"[","close":"]"},{"open":"(","close":")"},{"open":"<","close":">"},{"open":"\"","close":"\"","notIn":["string","comment"]}],"surroundingPairs":[["{","}"],["[","]"],["(",")"],["<",">"],["\"","\""]],"folding":{"markers":{"start":"^\\s*//\\s*#region\\b","end":"^\\s*//\\s*#endregion\\b"}}},"isInternal":false,"tokens":244,"sizeBytes":722},{"name":"package.json","path":"extensions/vscode/package.json","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/extensions/vscode/package.json","title":"zero-lang","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"zero-lang\",\n  \"displayName\": \"Zero Language\",\n  \"description\": \"Syntax highlighting for the Zero programming language.\",\n  \"publisher\": \"zero-lang\",\n  \"version\": \"0.3.4\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"categories\": [\n    \"Programming Languages\"\n  ],\n  \"scripts\": {\n    \"install:cursor\": \"node scripts/install-cursor-extension.mjs\",\n    \"test\": \"node --test tests/*.test.mjs\"\n  },\n  \"engines\": {\n    \"node\": \">=24\",\n    \"vscode\": \"^1.100.0\"\n  },\n  \"contributes\": {\n    \"languages\": [\n      {\n        \"id\": \"zero\",\n        \"aliases\": [\n          \"Zero\",\n          \"zero\"\n        ],\n        \"extensions\": [\n          \".0\"\n        ],\n        \"configuration\": \"./language-configuration/zero.json\"\n      }\n    ],\n    \"grammars\": [\n      {\n        \"language\": \"zero\",\n        \"scopeName\": \"source.zero\",\n        \"path\": \"./syntaxes/zero.tmLanguage.json\"\n      }\n    ],\n    \"snippets\": [\n      {\n        \"language\": \"zero\",\n        \"path\": \"./snippets/zero.json\"\n      }\n    ]\n  }\n}\n","frontmatter":{"name":"zero-lang","displayName":"Zero Language","description":"Syntax highlighting for the Zero programming language.","publisher":"zero-lang","version":"0.3.4","private":true,"type":"module","categories":["Programming Languages"],"scripts":{"install:cursor":"node scripts/install-cursor-extension.mjs","test":"node --test tests/*.test.mjs"},"engines":{"node":">=24","vscode":"^1.100.0"},"contributes":{"languages":[{"id":"zero","aliases":["Zero","zero"],"extensions":[".0"],"configuration":"./language-configuration/zero.json"}],"grammars":[{"language":"zero","scopeName":"source.zero","path":"./syntaxes/zero.tmLanguage.json"}],"snippets":[{"language":"zero","path":"./snippets/zero.json"}]}},"isInternal":false,"tokens":275,"sizeBytes":999},{"name":"zero.json","path":"extensions/vscode/snippets/zero.json","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/extensions/vscode/snippets/zero.json","title":"Snippets Skill","category":"anthropic-skill","format":"json","content":"{\n  \"main\": {\n    \"prefix\": \"main\",\n    \"body\": [\n      \"pub fn main(world: World) -> Void raises {\",\n      \"    check world.out.write(\\\"$1\\\\\\\\n\\\")\",\n      \"}\"\n    ],\n    \"description\": \"Zero main entrypoint\"\n  },\n  \"type\": {\n    \"prefix\": \"type\",\n    \"body\": [\n      \"type ${1:Name} {\",\n      \"    ${2:field}: ${3:i32},\",\n      \"}\"\n    ],\n    \"description\": \"Zero type declaration\"\n  },\n  \"function\": {\n    \"prefix\": \"fn\",\n    \"body\": [\n      \"fn ${1:name}(${2:param}: ${3:i32}) -> ${4:i32} {\",\n      \"    return ${2:param}\",\n      \"}\"\n    ],\n    \"description\": \"Zero function declaration\"\n  },\n  \"test\": {\n    \"prefix\": \"test\",\n    \"body\": [\n      \"test \\\"${1:behavior}\\\" {\",\n      \"    expect(${2:true})\",\n      \"}\"\n    ],\n    \"description\": \"Zero test block\"\n  },\n  \"if\": {\n    \"prefix\": \"if\",\n    \"body\": [\n      \"if $1 {\",\n      \"    $2\",\n      \"}\"\n    ],\n    \"description\": \"Zero if statement\"\n  },\n  \"while\": {\n    \"prefix\": \"while\",\n    \"body\": [\n      \"while $1 {\",\n      \"    $2\",\n      \"}\"\n    ],\n    \"description\": \"Zero while loop\"\n  }\n}\n","frontmatter":{"main":{"prefix":"main","body":["pub fn main(world: World) -> Void raises {","    check world.out.write(\"$1\\\\n\")","}"],"description":"Zero main entrypoint"},"type":{"prefix":"type","body":["type ${1:Name} {","    ${2:field}: ${3:i32},","}"],"description":"Zero type declaration"},"function":{"prefix":"fn","body":["fn ${1:name}(${2:param}: ${3:i32}) -> ${4:i32} {","    return ${2:param}","}"],"description":"Zero function declaration"},"test":{"prefix":"test","body":["test \"${1:behavior}\" {","    expect(${2:true})","}"],"description":"Zero test block"},"if":{"prefix":"if","body":["if $1 {","    $2","}"],"description":"Zero if statement"},"while":{"prefix":"while","body":["while $1 {","    $2","}"],"description":"Zero while loop"}},"isInternal":false,"tokens":331,"sizeBytes":1052},{"name":"zero.tmLanguage.json","path":"extensions/vscode/syntaxes/zero.tmLanguage.json","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/extensions/vscode/syntaxes/zero.tmLanguage.json","title":"Zero","category":"anthropic-skill","format":"json","content":"{\n  \"$schema\": \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n  \"name\": \"Zero\",\n  \"scopeName\": \"source.zero\",\n  \"patterns\": [\n    {\n      \"include\": \"#comments\"\n    },\n    {\n      \"include\": \"#strings\"\n    },\n    {\n      \"include\": \"#chars\"\n    },\n    {\n      \"include\": \"#numbers\"\n    },\n    {\n      \"include\": \"#keywords\"\n    },\n    {\n      \"include\": \"#types\"\n    },\n    {\n      \"include\": \"#functions\"\n    },\n    {\n      \"include\": \"#operators\"\n    }\n  ],\n  \"repository\": {\n    \"comments\": {\n      \"patterns\": [\n        {\n          \"name\": \"comment.line.double-slash.zero\",\n          \"match\": \"//.*$\"\n        },\n        {\n          \"name\": \"comment.block.zero\",\n          \"begin\": \"/\\\\*\",\n          \"end\": \"\\\\*/\"\n        }\n      ]\n    },\n    \"strings\": {\n      \"patterns\": [\n        {\n          \"name\": \"string.quoted.double.zero\",\n          \"begin\": \"\\\"\",\n          \"end\": \"\\\"\",\n          \"patterns\": [\n            {\n              \"name\": \"constant.character.escape.zero\",\n              \"match\": \"\\\\\\\\(?:[nrt0\\\"\\\\\\\\]|x[0-9A-Fa-f]{2}|u\\\\{[0-9A-Fa-f]+\\\\})\"\n            }\n          ]\n        }\n      ]\n    },\n    \"chars\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.character.zero\",\n          \"match\": \"'(?:[^'\\\\\\\\\\\\n]|\\\\\\\\(?:[nrt0'\\\"\\\\\\\\]|x[0-9A-Fa-f]{2}))'\"\n        }\n      ]\n    },\n    \"numbers\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.numeric.zero\",\n          \"match\": \"\\\\b(?:[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?|0x[0-9A-Fa-f_]+|0b[01_]+|0o[0-7_]+|[0-9][0-9_]*(?:_[A-Za-z][A-Za-z0-9_]*)?)\\\\b\"\n        }\n      ]\n    },\n    \"keywords\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.control.zero\",\n          \"match\": \"\\\\b(?:break|check|continue|defer|else|for|if|match|raise|raises|rescue|return|while)\\\\b\"\n        },\n        {\n          \"name\": \"keyword.declaration.zero\",\n          \"match\": \"\\\\b(?:alias|choice|const|enum|export|extern|fn|interface|let|meta|mut|packed|pub|static|test|type|use|var)\\\\b\"\n        },\n        {\n          \"name\": \"constant.language.zero\",\n          \"match\": \"\\\\b(?:false|null|true)\\\\b\"\n        }\n      ]\n    },\n    \"types\": {\n      \"patterns\": [\n        {\n          \"name\": \"support.type.primitive.zero\",\n          \"match\": \"\\\\b(?:Bool|Void|Type|char|usize|isize|u[0-9]+|i[0-9]+|f(?:16|32|64)|c_(?:int|long|size|char)|World|Alloc|Fs|Net|Env|Args|Clock|Rand|Proc|Sync)\\\\b\"\n        },\n        {\n          \"name\": \"support.type.container.zero\",\n          \"match\": \"\\\\b(?:Maybe|Span|owned|ref|mutref|Vec|String)\\\\b\"\n        }\n      ]\n    },\n    \"functions\": {\n      \"patterns\": [\n        {\n          \"name\": \"entity.name.function.zero\",\n          \"match\": \"(?<=\\\\bfn\\\\s+)[A-Za-z_][A-Za-z0-9_]*\"\n        },\n        {\n          \"name\": \"entity.name.function.method.zero\",\n          \"match\": \"\\\\b[A-Za-z_][A-Za-z0-9_]*(?=\\\\s*\\\\()\"\n        }\n      ]\n    },\n    \"operators\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.operator.zero\",\n          \"match\": \"\\\\b(?:as)\\\\b|->|=>|\\\\+%|\\\\+\\\\||==|!=|<=|>=|&&|\\\\|\\\\||[=+\\\\-*/%<>.:]\"\n        }\n      ]\n    }\n  }\n}\n","frontmatter":{"$schema":"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json","name":"Zero","scopeName":"source.zero","patterns":[{"include":"#comments"},{"include":"#strings"},{"include":"#chars"},{"include":"#numbers"},{"include":"#keywords"},{"include":"#types"},{"include":"#functions"},{"include":"#operators"}],"repository":{"comments":{"patterns":[{"name":"comment.line.double-slash.zero","match":"//.*$"},{"name":"comment.block.zero","begin":"/\\*","end":"\\*/"}]},"strings":{"patterns":[{"name":"string.quoted.double.zero","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.zero","match":"\\\\(?:[nrt0\"\\\\]|x[0-9A-Fa-f]{2}|u\\{[0-9A-Fa-f]+\\})"}]}]},"chars":{"patterns":[{"name":"constant.character.zero","match":"'(?:[^'\\\\\\n]|\\\\(?:[nrt0'\"\\\\]|x[0-9A-Fa-f]{2}))'"}]},"numbers":{"patterns":[{"name":"constant.numeric.zero","match":"\\b(?:[0-9]+\\.[0-9]+(?:[eE][+-]?[0-9]+)?|0x[0-9A-Fa-f_]+|0b[01_]+|0o[0-7_]+|[0-9][0-9_]*(?:_[A-Za-z][A-Za-z0-9_]*)?)\\b"}]},"keywords":{"patterns":[{"name":"keyword.control.zero","match":"\\b(?:break|check|continue|defer|else|for|if|match|raise|raises|rescue|return|while)\\b"},{"name":"keyword.declaration.zero","match":"\\b(?:alias|choice|const|enum|export|extern|fn|interface|let|meta|mut|packed|pub|static|test|type|use|var)\\b"},{"name":"constant.language.zero","match":"\\b(?:false|null|true)\\b"}]},"types":{"patterns":[{"name":"support.type.primitive.zero","match":"\\b(?:Bool|Void|Type|char|usize|isize|u[0-9]+|i[0-9]+|f(?:16|32|64)|c_(?:int|long|size|char)|World|Alloc|Fs|Net|Env|Args|Clock|Rand|Proc|Sync)\\b"},{"name":"support.type.container.zero","match":"\\b(?:Maybe|Span|owned|ref|mutref|Vec|String)\\b"}]},"functions":{"patterns":[{"name":"entity.name.function.zero","match":"(?<=\\bfn\\s+)[A-Za-z_][A-Za-z0-9_]*"},{"name":"entity.name.function.method.zero","match":"\\b[A-Za-z_][A-Za-z0-9_]*(?=\\s*\\()"}]},"operators":{"patterns":[{"name":"keyword.operator.zero","match":"\\b(?:as)\\b|->|=>|\\+%|\\+\\||==|!=|<=|>=|&&|\\|\\||[=+\\-*/%<>.:]"}]}}},"isInternal":false,"tokens":956,"sizeBytes":3078},{"name":"SKILL.md","path":"skills/zero/SKILL.md","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/skills/zero/SKILL.md","title":"zero","category":"anthropic-skill","format":"markdown","content":"---\nname: zero\ndescription: Install Zero and load version-matched workflows with zero skills.\n---\n\n# Zero\n\nZero is an agent-first programming language. zero.graph is the program; `.0` files are projections of it. Edit through `zero patch`.\n\nInstall this skill once in an agent's skill manager. Keep it thin; Zero's own CLI serves the version-matched workflow for each installed compiler.\n\nUse the zero already on PATH or at `~/.zero/bin/zero` when one exists; environments often pin a specific compiler, and replacing it silently breaks version-matched stores and workflows. Install only when zero is missing:\n\n```sh\ncommand -v zero >/dev/null 2>&1 || { curl -fsSL https://zerolang.ai/install.sh | bash; }\nexport PATH=\"$PATH:$HOME/.zero/bin\"\nzero --version\n```\n\n## Version-Matched Skills\n\nThis file is only a discovery stub. Do not treat it as the full Zero workflow\nor as command reference.\n\nBefore editing, checking, testing, or repairing Zero code, ask the installed compiler for the skill content that matches that exact binary:\n\n```sh\nzero skills\nzero skills get zero\nzero skills get zero --full\nzero skills get stdlib --topic std.time   # one section instead of the whole topic\n```\n\nIf the user has multiple Zero binaries, use the same binary that will run the project:\n\n```sh\n/path/to/zero skills\n/path/to/zero skills get zero --full\n```\n\nUse `zero skills get <name>` to load only what the task needs, and fetch each\ntopic at most once per session: the content is fixed for a given compiler\nbinary, so refetching a loaded topic returns the same text. Topics and\napproximate served sizes:\n\n- `zero` (~2 KB): this discovery stub\n- `agent` (~4 KB): read-edit-verify loop, zero query usage, edit surfaces, verification\n- `language` (~6 KB): syntax, types, effects, control flow, generics\n- `graph` (~9 KB): zero.graph store, query/view, patch operations, import/export/merge\n- `diagnostics` (~4 KB): reading diagnostics, zero explain, typed fix plans\n- `packages` (~5 KB): manifests, package layout, creation and repair\n- `builds` (~5 KB): build/run, targets, profiles, emitted artifacts\n- `testing` (~3 KB): test blocks, filters, runtime checks\n- `stdlib` (~39 KB): full signature reference, including ready-made validators: `std.time` (RFC 3339 incl. the exact leap-second rule), `std.inet` (IPv4/IPv6/hostname), `std.regex` (ECMA subset), `std.unicode` (strict UTF-8). Check here before hand-writing any parsing or validation logic. Fetch one module's section (~1 KB) with `zero skills get stdlib --topic <prefix>`, e.g. `--topic std.time`.\n\nBefore hand-writing any parsing or validation, check the stdlib catalog: `zero skills get stdlib --topic <module>` serves one section (`std.time` covers RFC 3339 incl. leap seconds).\n\nEdit through the graph: `zero patch` covers everything from surgical in-function text edits (`--replace-in-fn <fn> --old <text> --new <text>`, Edit semantics) to complete helper creation (`upsertFunction ... end`) and whole function bodies (`--replace-fn <fn> --body-file -` with a heredoc). Direct `.0` text edits are a last resort for changes no patch op expresses; package commands refresh `zero.graph` from edited source, but patch keeps the loop faster and preserves node identity. Read one function with `zero view --fn <name>` instead of whole files. Prefer concise text output during interactive agent work; use `--json` only for automation, exact spans, contracts, or machine-readable diagnostics.\n\n## Common Entry Points\n\n```sh\nzero query [graph-or-package]\nzero patch [graph-or-package] --op '<operation>'\nzero check [graph-or-package]\nzero test [graph-or-package]\nzero run [graph-or-package] -- <args>\nzero diff [graph-or-package]\nzero explain <diagnostic-code>\nzero fix --plan [graph-or-package]\n```\n\nIn a Zero repository checkout, prefer `bin/zero` when the task is about that checkout rather than the globally installed compiler.\n","frontmatter":{"name":"zero","description":"Install Zero and load version-matched workflows with zero skills."},"isInternal":false,"tokens":927,"sizeBytes":3877},{"name":"README.md","path":"extensions/vscode/README.md","rawUrl":"https://raw.githubusercontent.com/vercel-labs/zerolang/HEAD/extensions/vscode/README.md","title":"vscode Documentation","category":"plugin-manifest","format":"markdown","content":"# Zero Language Extension\n\nSyntax highlighting and basic editor configuration for Zero `.0` projection files in VS Code and Cursor. The repository also ships `pnpm run zls -- --self-test`, which exercises diagnostics, hovers, completions, symbols, fix plans, and editor metadata from `zero inspect`, `zero size`, `zero mem`, and `zero doc`.\n\nInstall into Cursor from the repository root:\n\n```sh\npnpm run extension:install:cursor\n```\n","isInternal":false,"tokens":97,"sizeBytes":433}],"systemPromptSnippet":"<yakaai_skills repo=\"vercel-labs/zerolang\">\n<!-- File: AGENTS.md (Tokens: ~1258 | Category: root-instruction) -->\n# Contributor Notes\n\nZero is a pre-1 experiment in building an agent-first programming language.\nKeep public-facing changes honest about what works today without weakening that\npositioning.\n\n## Project Direction\n\nZero is still being shaped around the needs of agents. Breaking changes are\nacceptable when they move the language, standard library, compiler, or tooling\ncloser to that goal.\n\nDo not preserve legacy behavior by default. Prefer the clearer agent-facing\ndesign over compatibility shims, migration layers, or carrying old paths\nforward. Keep examples, docs, tests, and command contracts aligned with the new\nbehavior so the repository describes one coherent current system.\n\nThis does not mean broad churn for its own sake. Make direct changes that\nadvance Zero's agent-first goals: on-the-fly learnability, deterministic\ninspection and repair, strong standard-library coverage, exceptional developer\nexperience, and regular patterns over syntactic convenience.\n\n## Safety Expectations\n\nSecurity vulnerabilities should be expected. Zero is not ready for production\nsystems, sensitive data, or trusted infrastructure.\n\nRun and develop Zero in safe environments: isolated workspaces, disposable\ninputs, and systems where compiler crashes, malformed output, or unsafe runtime\nbehavior cannot damage production state. Treat generated artifacts and examples\nas experimental unless they have been reviewed for the specific environment\nwhere they will run.\n\n## Development\n\n- Build the local compiler with `make -C native/zero-c`.\n- Use `bin/zero` for focused checks; it execs the local native compiler at\n  `.zero/bin/zero`.\n- Keep examples runnable and docs copyable.\n- Prefer small, direct changes over broad refactors.\n- Use direct emitters for compiler output.\n- For broad local validation, run `pnpm run agent:checks`. It mirrors the CI\n  buckets in parallel, including conformance, command contracts, native test\n  shards, sanitizer smoke, and workspace checks. It uses isolated `/tmp`\n  workspaces so agents can validate uncommitted changes without local artifact\n  races.\n- Before ending any agent turn that changes the repository, run\n  `pnpm run conformance` unless `pnpm run agent:checks` already passed for the\n  same changes. If validation cannot complete, report the blocker and the\n  failing command.\n\n## Useful Checks\n\n```sh\npnpm run agent:checks\npnpm run docs:build\npnpm run conformance\npnpm run native:test\npnpm run command-contracts\n```\n\n`pnpm run agent:checks` already includes conformance. Do not run conformance\nagain after it passes unless you need to recheck later changes.\n\nShard native tests locally with `ZERO_NATIVE_TEST_SHARD=1/4 pnpm run\nnative:test:local`. PR CI runs representative native runtime cases in two\nfast shards. Scheduled and manual deep CI runs the full native runtime matrix\nin six shards, plus full conformance and full graph performance fixtures.\n\n`pnpm run conformance:local` and `pnpm run command-contracts:local` use the\naggregate validation runner. Add `-- --shard 1/4` to run one conformance phase\nshard, `-- --phases name,name` to match a focused CI phase set, `-- --list` to\nsee phases, and `-- --fail-fast` only when a narrow loop should stop at the\nfirst failing phase.\nUse `ZERO_NATIVE_TEST_SCOPE=fast` only when reproducing PR CI coverage. Leave it\nunset for the exhaustive native runtime matrix.\n`pnpm run conformance` runs the sandbox suite with four isolated conformance\ncheck workers. Local validation stays serial by default; set\n`ZERO_CONFORMANCE_CHECK_JOBS=<n>` only when measuring that path on the current\nmachine.\nValidation scripts prefer the built native compiler at `.zero/bin/zero` after\n`native-build`; set `ZERO_BIN=<path>` only when comparing another compiler\nbinary deliberately.\n\nFor focused compiler work:\n\n```sh\nbin/zero check --json <graph-input>\nbin/zero inspect --json <graph-input>\nbin/zero size --json <graph-input>\nbin/zero explain <diagnostic-code>\nbin/zero fix --plan --json <graph-backed-file-or-package>\n```\n\n## Project Layout\n\n- `native/zero-c/`: native compiler implementation.\n- `examples/`: small runnable programs and packages.\n- `conformance/`: language and CLI fixtures.\n- `docs/`: public documentation site.\n- `scripts/`: validation and release support tooling.\n\n## Public Docs Policy\n\nDocs should describe current user-facing behavior, not internal development\nhistory. Avoid release-planning language, validation-report narratives, and\nimplementation diary details in pages intended for external readers.\n\n## Releasing\n\nReleases are manual, single-branch affairs. The maintainer controls the\nchangelog voice and format.\n\nTo prepare a release:\n\n1. Create a release branch, such as `ctate/v0.1.1`.\n2. Bump the release version in `package.json`, `docs/package.json`,\n   `extensions/vscode/package.json`, and `native/zero-c/src/main.c`.\n3. Update command-contract expectations that assert the compiler version.\n4. Write the `CHANGELOG.md` entry for the new version, wrapped in\n   `<!-- release:start -->` and `<!-- release:end -->` markers.\n5. Remove the release markers from the previous release entry. Only the latest\n   release entry should have markers.\n6. Include a `### Contributors` section in the marked changelog entry. Derive\n   contributors from commit authors and `Co-authored-by` trailers since the\n   previous tag.\n7. Run focused checks before opening or updating the PR:\n\n```sh\nmake -C native/zero-c\nbin/zero --version --json\npnpm run test:zero\npnpm run command-contracts:local\npnpm run docs:build\n```\n\nThe release workflow reads the version from `package.json`, builds release\nassets, and uses the content between the changelog markers as the GitHub\nrelease body.\n\n<!-- File: evals/package.json (Tokens: ~145 | Category: anthropic-skill) -->\n{\n  \"name\": \"zero-evals\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"engines\": {\n    \"node\": \">=24\"\n  },\n  \"scripts\": {\n    \"build\": \"tsc -p tsconfig.json\",\n    \"eval\": \"pnpm run build && node dist/run.js\",\n    \"test\": \"pnpm run build && node --test dist/*.test.js\"\n  },\n  \"dependencies\": {\n    \"@vercel/sandbox\": \"^1.10.2\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^25.9.0\",\n    \"typescript\": \"^6.0.3\"\n  }\n}\n\n<!-- File: evals/README.md (Tokens: ~648 | Category: anthropic-skill) -->\n# Zero Evals\n\nTypeScript evals for agent-facing Zero workflows.\n\nRun the checked-in fixture without calling Claude:\n\n```sh\npnpm evals -- --case hello-world --fixture\npnpm evals -- --case rosetta-100-doors --fixture\npnpm evals -- --suite agent-scale --fixture\n```\n\nRun live in Vercel Sandbox through Claude Code and Vercel AI Gateway:\n\n```sh\nAI_GATEWAY_API_KEY=... pnpm evals -- --case hello-world\n```\n\nBy default, evals run each selected case against:\n\n- `anthropic/claude-opus-4.7`\n- `anthropic/claude-sonnet-4.6`\n\nOverride the model set with repeated `--model` flags or a comma-separated\n`--models` value:\n\n```sh\npnpm evals -- --case hello-world --model anthropic/claude-sonnet-4.6\npnpm evals -- --case hello-world --models anthropic/claude-opus-4.7,anthropic/claude-sonnet-4.6\n```\n\nLive evals create a Vercel Sandbox, upload the current checkout, build the\nnative compiler, install Claude Code, and run the agent inside the sandbox. Each\nmodel/case run gets a fresh copy of the prepared checkout so mutations from one\nrun do not affect the next run. The sandbox network policy injects the AI\nGateway bearer credential for `https://ai-gateway.vercel.sh`.\n\nCredential options:\n\n```sh\n# Sandbox auth\nVERCEL_OIDC_TOKEN=...\n# or VERCEL_TOKEN=... VERCEL_TEAM_ID=... VERCEL_PROJECT_ID=...\n\n# AI Gateway auth\nAI_GATEWAY_API_KEY=...\n\n# Model selection\nZERO_EVAL_MODELS=anthropic/claude-opus-4.7,anthropic/claude-sonnet-4.6\n# or ZERO_EVAL_MODEL=anthropic/claude-sonnet-4.6\n```\n\nEach live model run must load Zero's version-matched skill through\n`bin/zero skills get zero --full`, then use `bin/zero check` and `bin/zero run`\ninside the sandbox to verify its candidate.\n\nThe Rosetta cases are deterministic code-challenge evals. Prompts describe the\ntask behavior and expected output; the evaluator does not compare an exact\nprojection. It imports the returned source into a graph artifact, checks that\ngraph, runs it, and compares stdout/stderr plus a small set of source-shape\nrequirements.\n\nThe `agent-scale` suite covers larger agent tasks. It includes multi-command CLI\nprograms with several runtime checks and graph package fixtures such as a CRM\nHTTP request-envelope API. Package cases are validated in place: the evaluator\nruns `zero check`, executes each smoke route or command with isolated `--out`\npaths, and inspects `zero view` output for required graph/source shape signals.\n\nThe eval system prompt intentionally avoids Zero syntax examples. The model is\nexpected to learn task-relevant syntax from the version-matched skills and\ncompiler feedback.\n\n<!-- File: evals/tsconfig.json (Tokens: ~89 | Category: anthropic-skill) -->\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"NodeNext\",\n    \"moduleResolution\": \"NodeNext\",\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"strict\": true,\n    \"skipLibCheck\": true,\n    \"sourceMap\": true,\n    \"types\": [\"node\"]\n  },\n  \"include\": [\"src/**/*.ts\"]\n}\n\n<!-- File: extensions/vscode/language-configuration/zero.json (Tokens: ~244 | Category: anthropic-skill) -->\n{\n  \"comments\": {\n    \"lineComment\": \"//\",\n    \"blockComment\": [\"/*\", \"*/\"]\n  },\n  \"brackets\": [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"]\n  ],\n  \"autoClosingPairs\": [\n    {\n      \"open\": \"{\",\n      \"close\": \"}\"\n    },\n    {\n      \"open\": \"[\",\n      \"close\": \"]\"\n    },\n    {\n      \"open\": \"(\",\n      \"close\": \")\"\n    },\n    {\n      \"open\": \"<\",\n      \"close\": \">\"\n    },\n    {\n      \"open\": \"\\\"\",\n      \"close\": \"\\\"\",\n      \"notIn\": [\"string\", \"comment\"]\n    }\n  ],\n  \"surroundingPairs\": [\n    [\"{\", \"}\"],\n    [\"[\", \"]\"],\n    [\"(\", \")\"],\n    [\"<\", \">\"],\n    [\"\\\"\", \"\\\"\"]\n  ],\n  \"folding\": {\n    \"markers\": {\n      \"start\": \"^\\\\s*//\\\\s*#region\\\\b\",\n      \"end\": \"^\\\\s*//\\\\s*#endregion\\\\b\"\n    }\n  }\n}\n\n<!-- File: extensions/vscode/package.json (Tokens: ~275 | Category: anthropic-skill) -->\n{\n  \"name\": \"zero-lang\",\n  \"displayName\": \"Zero Language\",\n  \"description\": \"Syntax highlighting for the Zero programming language.\",\n  \"publisher\": \"zero-lang\",\n  \"version\": \"0.3.4\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"categories\": [\n    \"Programming Languages\"\n  ],\n  \"scripts\": {\n    \"install:cursor\": \"node scripts/install-cursor-extension.mjs\",\n    \"test\": \"node --test tests/*.test.mjs\"\n  },\n  \"engines\": {\n    \"node\": \">=24\",\n    \"vscode\": \"^1.100.0\"\n  },\n  \"contributes\": {\n    \"languages\": [\n      {\n        \"id\": \"zero\",\n        \"aliases\": [\n          \"Zero\",\n          \"zero\"\n        ],\n        \"extensions\": [\n          \".0\"\n        ],\n        \"configuration\": \"./language-configuration/zero.json\"\n      }\n    ],\n    \"grammars\": [\n      {\n        \"language\": \"zero\",\n        \"scopeName\": \"source.zero\",\n        \"path\": \"./syntaxes/zero.tmLanguage.json\"\n      }\n    ],\n    \"snippets\": [\n      {\n        \"language\": \"zero\",\n        \"path\": \"./snippets/zero.json\"\n      }\n    ]\n  }\n}\n\n<!-- File: extensions/vscode/snippets/zero.json (Tokens: ~331 | Category: anthropic-skill) -->\n{\n  \"main\": {\n    \"prefix\": \"main\",\n    \"body\": [\n      \"pub fn main(world: World) -> Void raises {\",\n      \"    check world.out.write(\\\"$1\\\\\\\\n\\\")\",\n      \"}\"\n    ],\n    \"description\": \"Zero main entrypoint\"\n  },\n  \"type\": {\n    \"prefix\": \"type\",\n    \"body\": [\n      \"type ${1:Name} {\",\n      \"    ${2:field}: ${3:i32},\",\n      \"}\"\n    ],\n    \"description\": \"Zero type declaration\"\n  },\n  \"function\": {\n    \"prefix\": \"fn\",\n    \"body\": [\n      \"fn ${1:name}(${2:param}: ${3:i32}) -> ${4:i32} {\",\n      \"    return ${2:param}\",\n      \"}\"\n    ],\n    \"description\": \"Zero function declaration\"\n  },\n  \"test\": {\n    \"prefix\": \"test\",\n    \"body\": [\n      \"test \\\"${1:behavior}\\\" {\",\n      \"    expect(${2:true})\",\n      \"}\"\n    ],\n    \"description\": \"Zero test block\"\n  },\n  \"if\": {\n    \"prefix\": \"if\",\n    \"body\": [\n      \"if $1 {\",\n      \"    $2\",\n      \"}\"\n    ],\n    \"description\": \"Zero if statement\"\n  },\n  \"while\": {\n    \"prefix\": \"while\",\n    \"body\": [\n      \"while $1 {\",\n      \"    $2\",\n      \"}\"\n    ],\n    \"description\": \"Zero while loop\"\n  }\n}\n\n<!-- File: extensions/vscode/syntaxes/zero.tmLanguage.json (Tokens: ~956 | Category: anthropic-skill) -->\n{\n  \"$schema\": \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n  \"name\": \"Zero\",\n  \"scopeName\": \"source.zero\",\n  \"patterns\": [\n    {\n      \"include\": \"#comments\"\n    },\n    {\n      \"include\": \"#strings\"\n    },\n    {\n      \"include\": \"#chars\"\n    },\n    {\n      \"include\": \"#numbers\"\n    },\n    {\n      \"include\": \"#keywords\"\n    },\n    {\n      \"include\": \"#types\"\n    },\n    {\n      \"include\": \"#functions\"\n    },\n    {\n      \"include\": \"#operators\"\n    }\n  ],\n  \"repository\": {\n    \"comments\": {\n      \"patterns\": [\n        {\n          \"name\": \"comment.line.double-slash.zero\",\n          \"match\": \"//.*$\"\n        },\n        {\n          \"name\": \"comment.block.zero\",\n          \"begin\": \"/\\\\*\",\n          \"end\": \"\\\\*/\"\n        }\n      ]\n    },\n    \"strings\": {\n      \"patterns\": [\n        {\n          \"name\": \"string.quoted.double.zero\",\n          \"begin\": \"\\\"\",\n          \"end\": \"\\\"\",\n          \"patterns\": [\n            {\n              \"name\": \"constant.character.escape.zero\",\n              \"match\": \"\\\\\\\\(?:[nrt0\\\"\\\\\\\\]|x[0-9A-Fa-f]{2}|u\\\\{[0-9A-Fa-f]+\\\\})\"\n            }\n          ]\n        }\n      ]\n    },\n    \"chars\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.character.zero\",\n          \"match\": \"'(?:[^'\\\\\\\\\\\\n]|\\\\\\\\(?:[nrt0'\\\"\\\\\\\\]|x[0-9A-Fa-f]{2}))'\"\n        }\n      ]\n    },\n    \"numbers\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.numeric.zero\",\n          \"match\": \"\\\\b(?:[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?|0x[0-9A-Fa-f_]+|0b[01_]+|0o[0-7_]+|[0-9][0-9_]*(?:_[A-Za-z][A-Za-z0-9_]*)?)\\\\b\"\n        }\n      ]\n    },\n    \"keywords\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.control.zero\",\n          \"match\": \"\\\\b(?:break|check|continue|defer|else|for|if|match|raise|raises|rescue|return|while)\\\\b\"\n        },\n        {\n          \"name\": \"keyword.declaration.zero\",\n          \"match\": \"\\\\b(?:alias|choice|const|enum|export|extern|fn|interface|let|meta|mut|packed|pub|static|test|type|use|var)\\\\b\"\n        },\n        {\n          \"name\": \"constant.language.zero\",\n          \"match\": \"\\\\b(?:false|null|true)\\\\b\"\n        }\n      ]\n    },\n    \"types\": {\n      \"patterns\": [\n        {\n          \"name\": \"support.type.primitive.zero\",\n          \"match\": \"\\\\b(?:Bool|Void|Type|char|usize|isize|u[0-9]+|i[0-9]+|f(?:16|32|64)|c_(?:int|long|size|char)|World|Alloc|Fs|Net|Env|Args|Clock|Rand|Proc|Sync)\\\\b\"\n        },\n        {\n          \"name\": \"support.type.container.zero\",\n          \"match\": \"\\\\b(?:Maybe|Span|owned|ref|mutref|Vec|String)\\\\b\"\n        }\n      ]\n    },\n    \"functions\": {\n      \"patterns\": [\n        {\n          \"name\": \"entity.name.function.zero\",\n          \"match\": \"(?<=\\\\bfn\\\\s+)[A-Za-z_][A-Za-z0-9_]*\"\n        },\n        {\n          \"name\": \"entity.name.function.method.zero\",\n          \"match\": \"\\\\b[A-Za-z_][A-Za-z0-9_]*(?=\\\\s*\\\\()\"\n        }\n      ]\n    },\n    \"operators\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.operator.zero\",\n          \"match\": \"\\\\b(?:as)\\\\b|->|=>|\\\\+%|\\\\+\\\\||==|!=|<=|>=|&&|\\\\|\\\\||[=+\\\\-*/%<>.:]\"\n        }\n      ]\n    }\n  }\n}\n\n<!-- File: skills/zero/SKILL.md (Tokens: ~927 | Category: anthropic-skill) -->\n---\nname: zero\ndescription: Install Zero and load version-matched workflows with zero skills.\n---\n\n# Zero\n\nZero is an agent-first programming language. zero.graph is the program; `.0` files are projections of it. Edit through `zero patch`.\n\nInstall this skill once in an agent's skill manager. Keep it thin; Zero's own CLI serves the version-matched workflow for each installed compiler.\n\nUse the zero already on PATH or at `~/.zero/bin/zero` when one exists; environments often pin a specific compiler, and replacing it silently breaks version-matched stores and workflows. Install only when zero is missing:\n\n```sh\ncommand -v zero >/dev/null 2>&1 || { curl -fsSL https://zerolang.ai/install.sh | bash; }\nexport PATH=\"$PATH:$HOME/.zero/bin\"\nzero --version\n```\n\n## Version-Matched Skills\n\nThis file is only a discovery stub. Do not treat it as the full Zero workflow\nor as command reference.\n\nBefore editing, checking, testing, or repairing Zero code, ask the installed compiler for the skill content that matches that exact binary:\n\n```sh\nzero skills\nzero skills get zero\nzero skills get zero --full\nzero skills get stdlib --topic std.time   # one section instead of the whole topic\n```\n\nIf the user has multiple Zero binaries, use the same binary that will run the project:\n\n```sh\n/path/to/zero skills\n/path/to/zero skills get zero --full\n```\n\nUse `zero skills get <name>` to load only what the task needs, and fetch each\ntopic at most once per session: the content is fixed for a given compiler\nbinary, so refetching a loaded topic returns the same text. Topics and\napproximate served sizes:\n\n- `zero` (~2 KB): this discovery stub\n- `agent` (~4 KB): read-edit-verify loop, zero query usage, edit surfaces, verification\n- `language` (~6 KB): syntax, types, effects, control flow, generics\n- `graph` (~9 KB): zero.graph store, query/view, patch operations, import/export/merge\n- `diagnostics` (~4 KB): reading diagnostics, zero explain, typed fix plans\n- `packages` (~5 KB): manifests, package layout, creation and repair\n- `builds` (~5 KB): build/run, targets, profiles, emitted artifacts\n- `testing` (~3 KB): test blocks, filters, runtime checks\n- `stdlib` (~39 KB): full signature reference, including ready-made validators: `std.time` (RFC 3339 incl. the exact leap-second rule), `std.inet` (IPv4/IPv6/hostname), `std.regex` (ECMA subset), `std.unicode` (strict UTF-8). Check here before hand-writing any parsing or validation logic. Fetch one module's section (~1 KB) with `zero skills get stdlib --topic <prefix>`, e.g. `--topic std.time`.\n\nBefore hand-writing any parsing or validation, check the stdlib catalog: `zero skills get stdlib --topic <module>` serves one section (`std.time` covers RFC 3339 incl. leap seconds).\n\nEdit through the graph: `zero patch` covers everything from surgical in-function text edits (`--replace-in-fn <fn> --old <text> --new <text>`, Edit semantics) to complete helper creation (`upsertFunction ... end`) and whole function bodies (`--replace-fn <fn> --body-file -` with a heredoc). Direct `.0` text edits are a last resort for changes no patch op expresses; package commands refresh `zero.graph` from edited source, but patch keeps the loop faster and preserves node identity. Read one function with `zero view --fn <name>` instead of whole files. Prefer concise text output during interactive agent work; use `--json` only for automation, exact spans, contracts, or machine-readable diagnostics.\n\n## Common Entry Points\n\n```sh\nzero query [graph-or-package]\nzero patch [graph-or-package] --op '<operation>'\nzero check [graph-or-package]\nzero test [graph-or-package]\nzero run [graph-or-package] -- <args>\nzero diff [graph-or-package]\nzero explain <diagnostic-code>\nzero fix --plan [graph-or-package]\n```\n\nIn a Zero repository checkout, prefer `bin/zero` when the task is about that checkout rather than the globally installed compiler.\n\n<!-- File: extensions/vscode/README.md (Tokens: ~97 | Category: plugin-manifest) -->\n# Zero Language Extension\n\nSyntax highlighting and basic editor configuration for Zero `.0` projection files in VS Code and Cursor. The repository also ships `pnpm run zls -- --self-test`, which exercises diagnostics, hovers, completions, symbols, fix plans, and editor metadata from `zero inspect`, `zero size`, `zero mem`, and `zero doc`.\n\nInstall into Cursor from the repository root:\n\n```sh\npnpm run extension:install:cursor\n```\n</yakaai_skills>"}