title: prov author: adammharris created: 2026-07-06 contents:
- 'Design'
- 'Spec'
- 'Getting Started'
- 'Config Vocab'
- 'Init Adoption'
- 'Next Steps'
- 'Reference Styles'
- 'History Format'
- 'Manifests'
- 'Releasing'
- 'Changelog'
- '
provproposals' - 'Author''s notes' config: prov.yaml about: about.md
prov (Plaintext Records, Organized and Verifiable)
A self-describing plaintext workspace: a set of documents whose structure lives in the documents' own embedded metadata (frontmatter), not in the filesystem layout or an app-private sidecar folder.
Layout
prov/— the library. Documents, relations, identity, and the workspace seam.prov-cli/— a thin command-line companion (the installed binary isprov).xtask/— CI, as a program. Each job iscargo xtask <job>.
Development
cargo xtask ci runs everything CI runs, in the order CI runs it; cargo xtask on its own lists the individual jobs. The workflow does nothing but ask cargo xtask ci-matrix what the jobs are and run each one, so changing CI means editing xtask/src/main.rs and nothing else.
Releases are one command: cargo xtask release <patch|minor|major|x.y.z> bumps the workspace version, cuts the changelog's unreleased region into a released section, commits and tags — and pushes only when given --push, because the push is what publishes eleven crates to crates.io. See Releasing.
Building needs Zig 0.16 on PATH — prov's fig and twig-doc dependencies are Zig-backed, and their build scripts run zig build. nix develop provides it, as does the flake.nix dev shell.
Status
Works for simple workspaces. Active work is currently taking place incorporating prov into Diaryx.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.