Commit f280b6f
Pivot to a deterministic policy engine; ship engine v0 (v0.2.0) (#43)
* Pivot to a deterministic policy engine; ship engine v0 (v0.2.0)
palimpsest-plasma is now a deterministic, typed policy engine for the
agentic era, not a PMPL governance toolkit. Write machine-readable deontic
policies and evaluate repositories against them with reproducible results.
Engine v0 (new plasma-engine crate):
- Typed policy AST (subjects, resources, composable conditions, deontic
modalities, overlays) transposed from docs/policy-ast-v0.1.adoc to Rust
- Versioned TOML/JSON schema loading with load-time rejection of reserved
constructs, so evaluation is total
- Deterministic fact collection (files, SPDX headers, Cargo version, git
HEAD) as the sole impure boundary
- Pure evaluator implementing the deontic matrix; BTree ordering gives
byte-identical output for identical inputs
- Human, JSON, and SARIF 2.1.0 renderers with a stable plasma/<rule-id>
namespace for sibling tooling
- Bundled repo-hygiene policy; the repo checks itself in CI
CLI:
- New: plasma check / facts / policy validate
- audit rewired onto plasma-parser (real SPDX parsing, .plasma.toml zones)
via a new scan_repo; init/migrate/badge genericized to any SPDX license
- binary renamed palimpsest-plasma -> plasma
Truth + green:
- Build fixed (init/migrate embedded a nonexistent license file); SPDX
catalog PMPL/PPMPL drift fixed (2 tests); 66 tests pass; clippy clean
- Licensing unified: code MPL-2.0, docs CC-BY-SA-4.0; SPDX headers swept
- Docs rewritten to describe what exists (the OCaml engine was never
built); added docs/engine-v0-design.adoc as the normative spec
- Justfile rewritten from OCaml (dune/opam) to cargo; site render helpers
restored; guix.scm fixed; codemeta/CITATION corrected
- Removed union-policy-parser (preserved in history), corrupted PMPL
license text, MVP tarballs, badge pack, stale signature files
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JSVSF9HhKUhDrEV4xkMEXq
* ci: fix site build and pre-existing workflow config failures
- site: NimblePublisher evaluates the pre-`---` front-matter block as
Elixir, so the content files' HTML-comment SPDX header broke the build
("unexpected ( after alias Copyright"). Use `#` Elixir comments instead.
- secret-scanner: remove the redundant, unpinned `trufflehog@main` inline
job (the SHA-pinned secret-scanner-reusable already covers it), fixing
the governance workflow security linter.
- codeql: analyze `rust` instead of `javascript-typescript` — the repo has
no JS/TS, which caused a CodeQL configuration error.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JSVSF9HhKUhDrEV4xkMEXq
* fix(site): use @pages module attribute, not undefined pages/0
NimblePublisher's `as: :pages` option populates the `@pages` module
attribute with the parsed Page structs; there is no generated `pages/0`
function. build/0 referenced the nonexistent function.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JSVSF9HhKUhDrEV4xkMEXq
* fix(ci): gate Pages deploy to main and restore id-token permission
The deploy job's permissions block overrode the workflow-level grant and
dropped id-token: write, which actions/deploy-pages needs for OIDC —
causing "Unable to get ACTIONS_ID_TOKEN_REQUEST_URL". It also ran on pull
requests, which would publish unmerged content to the live Pages site.
- gate deploy to push on the default branch (skipped on PRs)
- restore id-token: write on the deploy job
- target the github-pages environment as deploy-pages v5 expects
On PRs the site is now build-verified only; deploy runs on merge to main.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JSVSF9HhKUhDrEV4xkMEXq
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent aae69b6 commit f280b6f
201 files changed
Lines changed: 4150 additions & 14249 deletions
File tree
- .github
- workflows
- .machine_readable
- 6a2
- bot_directives
- contractiles
- integrations
- self-validating
- examples
- .well-known
- LICENSES
- assets/badges/svg
- docs
- plasma-engine
- policies
- src
- report
- plasma-parser
- src
- audit
- compat
- family
- report
- spdx
- site
- content
- lib
- templates
- src
- tests
- union-policy-parser
- .claude
- .github
- workflows
- .machine_readable/6a2
- Documentation
- contractiles
- dust
- must
- docs
- examples
- ffi/zig
- src
- test
- hooks
- schemas
- self-validating
- src
- abi
- haskell
- julia
- rust
- benches
- src
- tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
0 commit comments