Zero is the programming language for agents. Keep public-facing changes honest about what works today without weakening that positioning.
- Build the local compiler with
make -C native/zero-c. - Use
bin/zerofor focused checks. - Keep examples runnable and docs copyable.
- Prefer small, direct changes over broad refactors.
- Use direct emitters for compiler output.
npm run docs:test
npm run conformance
npm run native:test
npm run command-contractsFor focused compiler work:
bin/zero check --json <file-or-package>
bin/zero graph --json <file-or-package>
bin/zero size --json <file-or-package>
bin/zero explain <diagnostic-code>
bin/zero fix --plan --json <file-or-package>native/zero-c/: native compiler implementation.compiler-zero/: Zero-authored compiler sources.examples/: small runnable programs and packages.conformance/: language and CLI fixtures.docs-site/: public documentation site.scripts/: validation and release support tooling.
Docs should describe current user-facing behavior, not internal development history. Avoid release-planning language, validation-report narratives, and implementation diary details in pages intended for external readers.
Releases are manual, single-branch affairs. The maintainer controls the changelog voice and format.
To prepare a release:
- Create a release branch, such as
ctate/v0.1.1. - Bump the release version in
package.json,package-lock.json,docs-site/package.json,extensions/vscode/package.json, andnative/zero-c/src/main.c. - Update command-contract expectations that assert the compiler version.
- Write the
CHANGELOG.mdentry for the new version, wrapped in<!-- release:start -->and<!-- release:end -->markers. - Remove the release markers from the previous release entry. Only the latest release entry should have markers.
- Include a
### Contributorssection in the marked changelog entry. Derive contributors from commit authors andCo-authored-bytrailers since the previous tag. - Run focused checks before opening or updating the PR:
make -C native/zero-c
bin/zero --version --json
npm run test:zero
npm run command-contracts:local
npm run docs:testThe release workflow reads the version from package.json, builds release
assets, and uses the content between the changelog markers as the GitHub
release body.