ν Nomos
Changelog

Built in public.

Every slice, shipped with a commit. No roadmap committees, no NDAs, no release theater. Read the git log for the unfiltered version.

Full commit history →

v0.1.0

2026-04-18

First public release. The whole thesis — parse, LLM bridge, defeasibility, proof tree, benchmarks — runs end-to-end.

  • ▸ Full defeasibility: priority → specificity (lex specialis) → recency (lex posterior) → declaration order, with tiebreaker explanation
  • ▸ Typed AuthorityRef AST — authorities classified as article / case / section / decree / generic with canonical strings
  • ▸ @nomos/citations: Eyecite (Free Law Project) integration via Python subprocess; nomos resolve resolves US citations
  • ▸ VS Code extension: TextMate grammar + LSP with diagnostics, hover, completion
  • ▸ CUAD benchmark: 20 extractions, 4 categories, Claude Sonnet 4.5 — 0.45 EM / 0.75 contains / 0.66 F1 / 0.97 conf. Published at /research/benchmarks
  • ▸ Claude Skill (skills/nomos-reason) ready for Lawvable submission
  • ▸ 26 Vitest specs pin grammar + evaluator behavior
  • ▸ apps/api daemonized via launchd (auto-respawn)
  • ▸ New page /research/benchmarks with reproducible numbers

v0.1.0 — git tag v0.1.0

v0.0.2

2026-04-18

LLM bridge lands. extract<T> runs end-to-end.

  • ▸ packages/llm: OpenRouter client with JSON-schema derived from Nomos TypeRef
  • ▸ CLI: --with-llm flag resolves extract<T> facts via OpenRouter; shows extracted values with confidence + model + latency
  • ▸ apps/api: tiny Node proxy holds the API key, rate-limits 20/hr per IP, deployed at nomos-api.dashable.dev
  • ▸ Playground: LLM toggle in the nav — the playground can now do extraction in-browser through the proxy
  • ▸ First full fixture: non_compete_llm.nomos extracts a Party + NonCompete from real French contract prose

feat(llm): OpenRouter bridge — extract<T> runs end-to-end

v0.0.1

2026-04-18

Initial commit. Nomos exists.

  • ▸ packages/core: Chevrotain lexer + parser + typed AST
  • ▸ Name resolver with warnings for unresolved references
  • ▸ Value type + expression evaluator (binary ops, member access, is-predicates)
  • ▸ Rule engine with temporal validity (from / as of) and priority-based defeasibility
  • ▸ packages/cli: nomos run/parse/check with colored sectioned output
  • ▸ apps/web: landing page + playground at nomos.dashable.dev
  • ▸ Three French non-compete scenarios demonstrate enforceable / defeated / base-rule-failed outcomes
  • ▸ Public GitHub repo: github.com/sboghossian/nomos. Apache-2.0.

chore: initial commit — v0.0.1

Next

What's coming.

Rough order, subject to reality. Each slice gets committed as it ships. Nothing here is promised — it's a stack of intentions.

  • ○ Specificity + recency tiebreakers (full defeasibility: lex specialis, lex posterior)
  • ○ Typed CitationRef AST — replaces raw-string authorities
  • ○ Eyecite integration — US citations resolve to real case law
  • ○ Akoma Ntoso loader — import legislation, emit rule skeletons
  • ○ Docassemble output adapter — Nomos program → guided legal interview
  • ○ VS Code LSP — syntax, hover, diagnostics
  • ○ Claude Skill: nomos-reason — for Lawvable's awesome-legal-skills
  • ○ CUAD/MAUD benchmarks — extract<Clause> accuracy numbers in the README
  • ○ Rule-pack marketplace — nomos install @nomos/fr-labour

See open issues for the live version. Suggestions welcome.