Skip to content

Commit f280b6f

Browse files
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

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
# RSR-compliant .gitattributes
33

44
* text=auto eol=lf

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
# Funding platforms for hyperpolymath projects
33
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
44

.github/dependabot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
# Dependabot configuration for RSR-compliant repositories
33
# Covers common ecosystems - remove unused ones for your project
44

.github/workflows/boj-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
#
33
# OPTIONAL: BoJ Server Build Trigger
44
# This workflow notifies a BoJ Server instance when code is pushed.

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
fail-fast: false
2828
matrix:
2929
include:
30-
- language: javascript-typescript
30+
- language: rust
3131
build-mode: none
3232
steps:
3333
- name: Checkout

.github/workflows/dependabot-automerge.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
#
33
# dependabot-automerge.yml — enable GitHub's native auto-merge on
44
# Dependabot pull requests that match a declared severity / ecosystem

.github/workflows/dogfood-gate.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
44
# dogfood-gate.yml — Hyperpolymath Dogfooding Quality Gate

.github/workflows/governance.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
name: Governance
33

44
on:

.github/workflows/hypatia-scan.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
name: Hypatia Security Scan
33

44
on:

.github/workflows/instant-sync.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
# Instant Forge Sync - Triggers propagation to all forges on push/release
33
name: Instant Sync
44
on:

0 commit comments

Comments
 (0)