# README.md · versecafe/strata

[View on GitCafe](https://git.cafe/versecafe/strata/blob/1615ef042fe353a2bda33a4f7443061e2395a620/README.md)

Repository: [versecafe/strata](https://git.cafe/versecafe/strata)

Visibility: public

Requested revision: 1615ef042fe353a2bda33a4f7443061e2395a620

Requested commit: 1615ef042fe353a2bda33a4f7443061e2395a620

Commit: 1615ef042fe353a2bda33a4f7443061e2395a620

Blob: 885d50183edb875e324deed88329af519e53561d

Size: 1709 bytes

[Immutable source](https://git.cafe/versecafe/strata/blob/1615ef042fe353a2bda33a4f7443061e2395a620/README.md?format=markdown)

```
# strata

The Strata toolchain — typed comptime HDL + integrated verification platform.
Design authority: `../proposal/` (decisions register D-001–D-080). Language surface: `../proposal/16-syntax.md`.
Probe seeds being promoted (rewrite-with-tests-carried, never copied): `../probes/`.

## Workspace layout

- `crates/strata-syntax` — lexer, lossless trivia-anchored tree, and resilient-LL parser (D-052/D-053/D-062; full 16-syntax grammar)
- `crates/strata-fmt` — deterministic source formatter over `strata-syntax`, exposed for source files through `strata fmt`
- `crates/strata-hir` — deterministic, syntax-anchored HIR for declarations, callable bodies, and name-resolution inputs
- `crates/strata-width` — canonical closed width algebra and normalization (D-037)
- `crates/strata-check` — package-aware Tier-A header checks plus the supported body-checking slice; unsupported bodies are reported as explicit tri-state deferrals
- `crates/strata-circt` — deterministic Architectural IR lowering to pinned textual CIRCT `hw`/`comb`/`seq`
- `crates/strata-cli` — `strata parse`, source-file `strata fmt`, and `strata check` drivers with structured diagnostics
- `tests/circt` — pinned, tool-verified `hw`/`comb`/`seq` → SystemVerilog boundary contract

Package-wide formatter discovery and `forge.toml` formatting remain deferred with later architecture IR/ledger phases.

## Invariants enforced from day one

- P-6: determinism everywhere; no wall clock, no env-dependence in any tool path
- D-053: parser losslessness and recovery invariants are CI-fuzzed (`text(tree) == input`, including malformed input)
- R-LS-1 lineage: one frontend — every tool is a driver over these crates

```
