# Jacquard > Jacquard is a research programming language for code that models write and people review. Every function arrow carries an effect row; the inferred row of a runnable program is its authority manifest, and the runtime refuses any world effect not granted with --allow. Deep handlers that resume once, never or many times let one program run against a fixed snapshot, a recorded trace or an exact finite probability model. Definitions are content-addressed by canonical structure (SHA-256). The current release is Jacquard Core 0.3.0 (7 October 2026), a research prototype; read the limits before relying on a feature. Before you write Jacquard: - Read SKILL.md first. It is self-contained and matches the 0.3.0 release. - Public source files use the .jac extension. There are no modules or imports, records, null, guards, or-patterns, custom operators or typeclasses; arithmetic is ordinary calls such as mul(a, b). - Run `jac check FILE.jac --print-sigs` and review every inferred effect. A missing grant (E0814) is an expected refusal; add `--allow NAME` only when the effect belongs in the program. - Every diagnostic has a stable code, a cause and a next step. `--diagnostic-format json-v1` emits JSON. - Fix seeds for sampled runs. Prefer exact enumeration and `jac test --exhaustive` for small finite models. ## Docs - [SKILL.md](https://jacquardlang.org/SKILL.md): standalone guide to installing, writing, checking, running, testing and compiling Jacquard - [Error codes](https://jacquardlang.org/errors.md): every diagnostic with its cause and next step - [Install](https://jacquardlang.org/install/): installer for Linux x86-64 and macOS, no OCaml needed - [Review tour](https://jacquardlang.org/tour/): one agent-written change, from diff and semantic diff to refusal, dry run and approval by hash - [Worlds tour](https://jacquardlang.org/tour/worlds/): one release policy run under a snapshot, an exact probability model and an exhaustive check - [Warp](https://jacquardlang.org/warp/): the built-in test framework; one property sampled or checked exhaustively, fault.all, and results cached by hash - [Why a language?](https://jacquardlang.org/why/): answers to common objections, including what is not yet measured - [Host](https://jacquardlang.org/host/): call checked Jacquard functions from Python, TypeScript or Go and implement their effects as services - [Limits](https://jacquardlang.org/limits/): what the 0.3.0 release does not do ## Source - [Repository](https://github.com/jbwinters/jacquard-lang): OCaml implementation, Apache-2.0 - [Release 0.3.0](https://github.com/jbwinters/jacquard-lang/releases/tag/jacquard-core-0.3.0): binaries and checksums - [Jacquard Host](https://github.com/jbwinters/jacquard-host): Python, TypeScript and Go SDKs for the experimental jacquard-host-v0 protocol, pinned to Core 0.3.0 - [Claims](https://github.com/jbwinters/jacquard-lang/blob/jacquard-core-0.3.0/docs/release/0.3/CLAIMS.md): each release claim paired with its nearest limit ## Optional - [Tutorial](https://github.com/jbwinters/jacquard-lang/blob/jacquard-core-0.3.0/docs/tutorial.md): runnable examples checked by the test suite - [Surface syntax](https://github.com/jbwinters/jacquard-lang/blob/jacquard-core-0.3.0/docs/surface-syntax.md): the .jac grammar - [Warp testing](https://github.com/jbwinters/jacquard-lang/blob/jacquard-core-0.3.0/docs/warp-testing.md): cases, properties, world tests and exhaustive checking