Thanks for your interest in contributing! Phronesis is a neuro-symbolic policy language for provably-safe agentic ethical reasoning, with an Elixir/BEAM reference implementation and a Rust → WASM production compiler.
# Clone the repository
git clone https://github.com/hyperpolymath/phronesis.git
cd phronesis
# Install dependencies (BEAM toolchain + just)
mix deps.get
# Verify setup
just build # mix compile
just test # run the test suitephronesis/
├── lib/phronesis/ # Reference implementation (Elixir/BEAM):
│ # lexer, parser, type checker, interpreter,
│ # consensus, LSP, debugger, profiler, reflexion
├── compiler/ # Rust → WASM compiler (phronesis-ast, phronesis-wasm)
├── spec/ # Grammar (EBNF) + formal semantics
├── formal/ # TLA+ consensus specification
├── academic/ # Formal proofs (Lean4 / Agda / Coq)
├── conformance/ # Conformance test suites
├── bench/ # Benchmarks
├── docs/ # AsciiDoc design docs (incl. REFLEXION.adoc)
├── examples/ # Example .phr policies
├── test/ # ExUnit test suite
├── editors/ # VSCode extension + grammars
├── .machine_readable/ # A2ML metadata + contractiles
├── .github/workflows/ # CI/CD
├── CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md SECURITY.md
├── GOVERNANCE.adoc MAINTAINERS.adoc README.adoc EXPLAINME.adoc
├── LICENSE LICENSES/ # MPL-2.0 (code) + CC-BY-SA-4.0 (docs)
├── mix.exs Justfile Mustfile
└── guix.scm
’’’’’
Before reporting: 1. Search existing issues 2. Check if it’s already
fixed in main 3. Determine which perimeter the bug affects
When reporting:
Use the bug report template and include:
-
Clear, descriptive title
-
Environment details (OS, versions, toolchain)
-
Steps to reproduce
-
Expected vs actual behaviour
-
Logs, screenshots, or minimal reproduction
Before suggesting: 1. Check the roadmap if available 2. Search existing issues and discussions 3. Consider which perimeter the feature belongs to
When suggesting:
Use the feature request template and include:
-
Problem statement (what pain point does this solve?)
-
Proposed solution
-
Alternatives considered
-
Which perimeter this affects
Look for issues labelled:
-
goodfirstissue— Simple Perimeter 3 tasks -
helpwanted— Community help needed -
documentation— Docs improvements -
perimeter-3— Community sandbox scope
’’’’’
docs/short-description # Documentation (P3)
test/what-added # Test additions (P3)
feat/short-description # New features (P2)
fix/issue-number-description # Bug fixes (P2)
refactor/what-changed # Code improvements (P2)
security/what-fixed # Security fixes (P1-2)
We follow Conventional Commits: ``` ():
[optional body]
[optional footer]