{"id":49564446,"url":"https://github.com/23min/liminara","last_synced_at":"2026-05-03T11:04:35.209Z","repository":{"id":353134072,"uuid":"1201922183","full_name":"23min/liminara","owner":"23min","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-03T09:06:05.000Z","size":63882,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T10:28:28.686Z","etag":null,"topics":["dag","elixir","llm-workflows","provenance","workflow-engine"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/23min.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-05T10:52:36.000Z","updated_at":"2026-04-25T14:51:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/23min/liminara","commit_stats":null,"previous_names":["23min/liminara"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/23min/liminara","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23min%2Fliminara","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23min%2Fliminara/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23min%2Fliminara/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23min%2Fliminara/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/23min","download_url":"https://codeload.github.com/23min/liminara/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/23min%2Fliminara/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32566450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dag","elixir","llm-workflows","provenance","workflow-engine"],"created_at":"2026-05-03T11:04:34.392Z","updated_at":"2026-05-03T11:04:35.201Z","avatar_url":"https://github.com/23min.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Liminara\n\nLiminara is a runtime for reproducible nondeterministic computation.\n\nIt extends the build-system model to work that includes real choices: LLM responses, human approvals, stochastic selection, and other steps that are not purely deterministic. Instead of pretending those steps are stable, Liminara records them as first-class runtime data so a run can be replayed, audited, and reasoned about later.\n\nIn short: immutable artifacts, typed operations, recorded decisions, append-only run logs, and domain packs that compose those pieces into real workflows.\n\n\u003e **Status: pre-alpha.** Liminara is under active single-maintainer development. The public repository exists so the work, reasoning, and architecture history are visible. APIs, wire protocols, and schemas will change.\n\n## What It Is\n\nLiminara combines three things that are usually split apart:\n\n- Content-addressed artifacts\n- Recorded nondeterministic decisions\n- Explicit determinism and replay policy at the op level\n\nThat makes it possible to answer questions that ordinary workflow tools usually cannot answer well:\n\n- Why did this run produce this output?\n- Which steps were replayed versus recomputed?\n- Which choices came from a model, a human, or a stochastic algorithm?\n- Which outputs are safe to cache, and which are not?\n\nThe current implementation is built around Elixir/OTP supervision, append-only event logs, filesystem-backed artifacts, and Python ops executed via ports when the ecosystem is useful. Future executors (container, wasm, remote) are on the roadmap; the contract is designed to be language-agnostic.\n\n## Core Concepts\n\n- **Artifact**: immutable, content-addressed data\n- **Op**: a typed transformation with a determinism and execution contract\n- **Decision**: a recorded nondeterministic choice\n- **Run**: an execution represented by an append-only event log\n- **Pack**: a domain module that defines ops and produces plans\n\n## Current Status\n\nLiminara is in Phase 5c. Completed phases cover data model, Python SDK / data model validation, Elixir walking skeleton, OTP runtime, observation layer, Radar pack (the first production-shaped domain pack), and the execution-truth rewrite.\n\nCurrent near-term sequence:\n\n1. Radar correctness — **complete**\n2. Radar hardening — **in progress** (warnings \u0026 degraded outcomes, pack contribution contract, op sandbox)\n3. VSME (first compliance pack) — next\n4. Platform generalization (persistence, scheduling, dynamic DAGs, container executor, etc.) — downstream\n\nActive planning and sequencing lives in [work/roadmap.md](work/roadmap.md). Active epics live in [work/epics/](work/epics/). Active architectural decisions live in [work/decisions.md](work/decisions.md).\n\n## Repository Layout\n\n- [runtime](runtime) — Elixir umbrella runtime (`liminara_core`, `liminara_web`, `liminara_radar`, observation/runtime apps)\n- [runtime/python](runtime/python) — Python op runner and Python-based ops\n- [docs](docs) — architecture, analysis, domain-pack research, and references\n- [work](work) — roadmap, epics, milestone tracking, and decisions\n- [dag-map](dag-map) — DAG visualization submodule\n- [ex_a2ui](ex_a2ui) — A2UI integration submodule\n- [integrations](integrations) — language and external integration experiments\n- [test_fixtures](test_fixtures) — reusable fixtures and golden data\n\n## Getting Started\n\nThe supported development environment is the repo's devcontainer; it ships known-good versions of Elixir, Python, Node, and tooling.\n\n### Prerequisites (without devcontainer)\n\n- Elixir `~\u003e 1.18`\n- Python `\u003e= 3.12`\n- `uv` for the Python runtime project\n- Git submodules initialized if you need local work on bundled subprojects\n\n### Bootstrap\n\n```bash\ngit submodule update --init --recursive\ncd runtime \u0026\u0026 mix deps.get\ncd python \u0026\u0026 uv sync\n```\n\n### Run the App\n\n```bash\ncd runtime\nmix phx.server\n```\n\n### Useful Validation Commands\n\n```bash\n# Elixir\ncd runtime\nmix test apps/liminara_core/test\n\n# Python\ncd runtime/python\nuv run pytest\nuv run ruff check .\nuv run ruff format --check .\n```\n\n## Domain Direction\n\nThe planned pack sequence is:\n\n1. **Radar** — omvärldsbevakning, daily intelligence briefing\n2. **VSME** — SME sustainability reporting (first compliance pack)\n3. **House Compiler** — design → manufacturing\n4. **DPP** — Digital Product Passport\n\nRadar is the current proving ground for replay integrity, warning/degraded-outcome handling, and execution hardening. House Compiler is the deliberate proof that Liminara is not only an LLM workflow system.\n\n## Docs Map\n\nIf you are new to the repository, start here:\n\n- [docs/liminara.md](docs/liminara.md) — comprehensive project reference\n- [docs/guides/pack_design_and_development.md](docs/guides/pack_design_and_development.md) — pack authoring rules, ownership boundaries, persistent-data guidance\n- [docs/guides/devcontainer_operations.md](docs/guides/devcontainer_operations.md) — local devcontainer lifecycle, persistence, cleanup, rebuild guidance\n- [work/roadmap.md](work/roadmap.md) — current sequencing and status\n- [work/decisions.md](work/decisions.md) — active architectural decisions\n- [docs/governance/truth-model.md](docs/governance/truth-model.md) — execution-truth foundation\n- [docs/architecture/indexes/contract-matrix.md](docs/architecture/indexes/contract-matrix.md) — contract overview\n- [docs/governance/shim-policy.md](docs/governance/shim-policy.md) — rules for temporary compatibility shims\n\n## Discussions\n\nDiscussions are welcome via GitHub Issues — especially architectural pushback, design questions, and pointers to prior art.\n\n## License\n\nLiminara is licensed under the [Apache License, Version 2.0](LICENSE). You may use the runtime under the terms of that license. Submodules have their own licenses; check each submodule's repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F23min%2Fliminara","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F23min%2Fliminara","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F23min%2Fliminara/lists"}