Zero(zerolang)
vercel-labs/zero · ProgramGraph · .0 ソース · Apache-2.0 · v0.2.x
zerolang(リポジトリ名 zero)は、エージェントが生テキストではなく意味的プログラム構造で作業するための実験的グラフファースト言語。人間がレビューする .0 ソースが正であり、コンパイラが導出する ProgramGraph がエージェント向けインターフェースになる(README より)。
設計目標はトークン効率・低メモリ・高速起動・高速ビルド・低レイテンシ・ゼロ依存。公式サイト zerolang.ai から CLI を入れ、zero graph / zero check で開発ループを回す。
ソーステキストだけでは、参照関係・所有権・エフェクト・import 境界を推測しがち。ProgramGraph はコンパイラが所有する checked 構造で、node ID・graph hash・型・エフェクト・モジュール辺などをスライス単位で返す。エージェントは行範囲ではなく #expr_653eeb6e のようなノードを編集対象にできる。
ダンプ例
zero graph dump examples/hello.0出力には zero-graph v1、モジュール名、hash "graph:…"、ノード(Function / Param / MethodCall / Literal 等)、辺(arg / body)が含まれる。hash は stale コンテキスト拒否、node ID は inspect したグラフ上の編集ハンドル。
checked graph patch
zero graph patch examples/hello.0 \
--expect-graph-hash graph:a7f7e6899a73f3b4 \
--op 'set node="#expr_653eeb6e" field="value" expect="hello from zero\n" value="hello graph\n"'--expect-graph-hash と expect で、inspect 時点と異なる状態への誤パッチを拒否する。対応する canonical .0 では、検証後に lower → format → reparse → check までコンパイラが一括処理する。
flowchart LR SRC[".0 ソース(正)"] DUMP["graph dump / --json"] PATCH["graph patch"] CHK["graph check / zero check"] SRC --> DUMP DUMP --> PATCH PATCH --> CHK CHK --> SRC
エントリは pub fn main(world: World) -> Void raises。World はランタイム能力、check は失敗可能呼び出し、raises は関数の失敗可能性を宣言する(language スキル)。
fn answer() -> i32 {
return 40 + 2
}
pub fn main(world: World) -> Void raises {
if answer() == 42 {
check world.out.write("math works\n")
}
}宣言と制御
- トップレベル:
use、const、type、enum、choice、fn、test - 束縛は原則
let、変更時のみvar - 条件は
Boolのみ(整数・文字列の真偽値は使わない) matchは網羅的。フォールバックは_臂
パッケージ
zero.json で exe / lib パッケージを定義。use helpers のようなパッケージローカル import は src/ から解決する(packages スキル)。
{
"package": { "name": "hello", "version": "0.1.0" },
"targets": { "cli": { "kind": "exe", "main": "src/main.0" } }
}flowchart TB
subgraph core["コンパイラと検証"]
NC[native/zero-c]
CONF[conformance]
EVAL[evals]
end
subgraph surface["開発者向け"]
EX[examples]
DOC[docs 公式サイト]
VS[extensions/vscode]
SK[skills + skill-data]
end
CLI[bin/zero] --> NC
EX --> CLI
DOC --> CLI
| パス | 役割 |
|---|---|
native/zero-c/ | ネイティブコンパイラ(make -C native/zero-c) |
examples/ | 実行可能サンプル(hello.0、パッケージ、agent-repair-demo 等) |
conformance/ | 言語・CLI・ProgramGraph のフィクスチャ |
docs/ | 公式ドキュメント(Next.js / pnpm workspace) |
skill-data/ | CLI が配布する版一致スキル本文 |
skills/zero/ | エージェント向け発見スタブ(SKILL.md) |
std/ | 標準ライブラリ .0 ソース |
evals/ | エージェント向け評価ハーネス |
エージェント向け inspect / repair はコンパイラ CLI に集約される。安定フィールドは --json で取得する(README の Compiler-Native Contracts)。
| コマンド | 契約 |
|---|---|
zero skills get language | バイナリ同梱の言語ルール |
zero check --json | 診断コード・span・repair メタ・ターゲット readiness |
zero parse --json | 宣言・シグネチャ・body ノード種別の安定サマリ |
zero graph --json | モジュール・import・capabilities・effects・ownership |
zero graph dump | 決定的 ProgramGraph テキスト(hash / node ID / edge) |
zero graph patch | graph-hash と field expect 付き checked 編集 |
zero fix --plan --json | ファイルを書き換えない修復プラン |
zero size --json | retained helpers・サイズ理由・artifact budget |
zero run / zero build | 実行・--emit exe|obj|wasm 直接生成 |
zero doctor --json | ツールチェーン健全性 |
診断 → 修復デモ
zero check --json conformance/check/fail/unknown-name.0
zero explain --json TYP009
zero fix --plan --json examples/agent-repair-demo/broken.0
pnpm run agent:demoインストールと最初の実行
curl -fsSL https://zerolang.ai/install.sh | bash
export PATH="$HOME/.zero/bin:$PATH"
zero --version
zero check examples/hello.0
zero run examples/add.0examples/add.0 の期待出力は math works。リポジトリ checkout ではグローバルではなく bin/zero を優先する。
skills/zero/SKILL.md は発見用スタブ。実ワークフローは、プロジェクトを走らせるのと同じ zero バイナリが返す版一致コンテンツを使う。
zero skills list
zero skills get zero
zero skills get zero --full
zero skills get language
zero skills get graph| 内蔵スキル(例) | 用途 |
|---|---|
graph | ProgramGraph inspect / patch / reconcile |
language | .0 構文・意味のコンパクトガイド |
diagnostics | 診断コードと修復の読み方 |
packages | zero.json と import |
builds | run / build / ターゲット |
testing | テスト実行の慣習 |
stdlib | 標準ライブラリモジュール |
agent | エージェント修復デモ向け |
ルート package.json(pnpm workspace)から conformance・ネイティブテスト・ドキュメントテストなどを実行する。
pnpm run docs:test
pnpm run conformance
pnpm run native:test
pnpm run command-contracts
pnpm run bench
pnpm run agent:demoローカルコンパイラは make -C native/zero-c。公式ドキュメントサイトは pnpm run docs:dev で起動(docs/ パッケージ)。
docs/articles/getting-started.md → learn-zero.md → language-reference.md → examples/README.md。
- GitHub: vercel-labs/zero — 本体リポジトリ(Apache-2.0)
- zerolang.ai — インストーラと公式ドキュメント入口
- リポジトリ内
README.md— Why Graph、Quick Start、Common Commands - リポジトリ内
skills/zero/SKILL.md— スキル発見スタブ - リポジトリ内
skill-data/— CLI 配布用スキル(graph.md、language.md等) - リポジトリ内
docs/articles/— 言語リファレンスとチュートリアル - リポジトリ内
CHANGELOG.md— v0.2.x の ProgramGraph / 直接 emit 変更履歴