Repository files navigation

GovEngine

CI: pytestPackage: govengine 1.0.0rc2Python: 3.11+Dependency: SCLite ==2.0.1License: MIT

GovEngine is an in-process Python governance kernel designed to be integrated into execution runtimes. It evaluates policy, approval, scope and capability facts for one concrete operation attempt and returns a deterministic allowed, approval_required or denied governance decision.

GovEngine recomputes and validates its own governance records and decision bindings. It does not define artifact truth or verify lifecycle and evidence bundles; those responsibilities belong to SCLite. GovEngine does not perform the operation, schedule jobs, manage credentials, contact targets or store evidence.

The immutable published release-candidate package 1.0.0rc2 exposes the frozen candidate contract through govengine.v1. Current source is 1.0.0rc3; source A is unpublished and external review is pending. The published candidate was built from v1.0.0rc2 after authentic external review, and its seven-day rc2 observation window is elapsed_unclosed after 2026-08-15T11:15:02.258488Z. The frozen RC record has no closure evidence; it is not active or completed and stable promotion remains publishable=false.

Current source package coordinate: govengine==1.0.0rc3. The wider package still contains explicitly classified compatibility, experimental and fixture surfaces.

The PyPI long description is the immutable, distribution-specific PYPI_LONG_DESCRIPTION.md; repository-only release state remains in this README and PUBLIC_STATUS.md. Public wheel and sdist bytes match the reviewed GitHub workflow artifacts.

Why GovEngine exists

Intent is not execution authority. A request from an operator, UI, agent or LLM does not by itself establish that:

  • the active policy allows the operation;
  • approval covers this exact attempt, target and side-effect class;
  • the requested destination is independently authorized;
  • the selected runtime has the required capabilities;
  • the decision is still current for the active lease and fencing token;
  • a result belongs to the decision and runtime permit that preceded I/O.

GovEngine turns those independently supplied facts into one bounded, reviewable and fail-closed governance decision. The host runtime must still authenticate, atomically claim and enforce that decision.

How the components work together

GovEngine is one component in a cooperating set of independent projects. This set has no formal product name. Together they separate domain meaning, governance, execution and proof:

  • A domain profile, such as Tecrax, owns intent vocabulary, workflows, connector semantics, findings and domain validation.
  • RExecOp owns domain-neutral workflow interpretation, operation lifecycle, queues, leases, fencing, retries, connector dispatch and I/O.
  • GovEngine owns deterministic policy evaluation, approval requirements, scope and capability decisions, governance authorization and checks that terminal runtime facts satisfy the decision's obligations.
  • SCLite owns canonical lifecycle and evidence contracts, integrity, receipts, review bundles and verification truth.

Used together, a profile describes what an operation means, RExecOp prepares and executes it, GovEngine decides whether the exact attempt may proceed, and SCLite makes the resulting lifecycle and evidence independently verifiable.

Domain profile meaning, workflows, connector contracts
|
v
RExecOp lifecycle, lease/fencing, permit, I/O
| +---- request / terminal facts -----> GovEngine
| <---- decision / conformance result -+ policy, approval, scope,
| capabilities
|
+---- final lifecycle/evidence --------> SCLite
lifecycle/evidence truth
and verification

The canonical integration order is documented in docs/SECURITY_INTEGRATION.md.

Canonical governance flow

  1. RExecOp constructs a digest-bound GovernanceRequest for one operation, step and attempt.
  2. GovEngine recomputes complete GovEngine-owned governance bindings and evaluates the active typed policy.
  3. GovEngine validates independently supplied approval, target scope and capability inventory facts.
  4. evaluate_governance() returns a GovernanceDecision. Only allowed carries a short-lived authorization bound to the exact attempt, runtime, lease, fencing token, policy, scope and inventory.
  5. RExecOp verifies the signed decision, atomically claims its digest and nonce, issues its own runtime permit and performs the final pre-I/O checks.
  6. After I/O, GovEngine checks whether bounded terminal runtime facts match the exact decision and runtime permit and satisfy its output postconditions.
  7. RExecOp projects final lifecycle and evidence artifacts for SCLite verification.

GovEngine runs inside the host process. A compromised host can bypass the kernel or fabricate inputs, so malicious-host resistance is not claimed.

What GovEngine provides

The frozen govengine.v1 facade provides:

  • a deterministic, typed and fail-closed PolicyEngine;
  • policy obligations, constraints, enforcement plans and redacted explanations;
  • independently bound ApprovalAttestation validation;
  • digest-bound validation of GovEngine-owned GovernanceRequest records;
  • deterministic GovernanceDecision evaluation;
  • short-lived attempt-bound authorization contracts;
  • governance traces, digests of GovEngine-owned records and stable reason codes.

Supporting module-scoped contracts provide:

  • independent scope-policy and capability-inventory comparison;
  • signed-decision verification through host-provided trust ports;
  • checks that terminal runtime facts satisfy a decision and bind to an opaque RExecOp runtime permit;
  • a language-neutral governance-protocol conformance corpus shared with runtime consumers.

Legacy admission, runner, planning, orchestration, state-machine and runtime-shell APIs remain available only as classified compatibility or experimental surfaces. They are not a second authorization protocol and are outside the govengine.v1 compatibility promise.

What GovEngine does not do

GovEngine does not provide:

  • operation lifecycle, queues, scheduling, retries, rollback or connector I/O;
  • raw-intent, subprocess, scanner or exploit execution;
  • domain intent, target, finding or connector semantics;
  • credential, secret, PKI, CA, KMS, HSM or trust-anchor management;
  • production policy, approval, replay, nonce, audit or receipt storage;
  • raw artifact or evidence storage;
  • SCLite schemas, canonicalization, lifecycle truth or proof verification;
  • legal authorization or resistance to a host that ignores its decision.

RExecOp and other host runtimes own enforcement. Profiles own domain meaning. SCLite owns truth and proof.

Installation

Install the published release candidate:

python -m pip install govengine==1.0.0rc2

Use the exact pin shown above. Because 1.0.0rc2 is a pre-release, an unqualified pip install govengine continues to select the latest stable 0.16.11 line.

Requirements:

  • Python 3.11 or newer;
  • exact published and source dependency sclite-core==2.0.1;
  • imports intended for 1.x compatibility should come from govengine.v1.

Quick start: evaluate a typed policy

This small example uses only the frozen candidate facade:

fromgovengine.v1importPolicyCompiler, PolicyEnginecompiled=PolicyCompiler().compile(
{
"schema_version": "v1",
"policy_id": "example-read-policy",
"version": "1.0.0",
"issuer_ref": "organization:example",
"policy_epoch": 1,
"validity": {
"not_before": "2026-01-01T00:00:00Z",
"expires_at": "2099-01-01T00:00:00Z",
},
"supersedes": [],
"rules": [
{
"rule_id": "allow-bounded-read",
"effect": "allow",
"conditions": [
{
"path": "action.mode",
"operator": "eq",
"value": "read",
}
],
"reason_code": "bounded_read_allowed",
}
],
}
)
assertcompiled.okandcompiled.policy_packisnotNoneverdict=PolicyEngine().evaluate(
{
"request_id": "request-1",
"subject_ref": "operation://example/1",
"action": {"mode": "read"},
"resource": {"criticality": "low"},
},
compiled.policy_pack,
)
assertverdict.decision=="allow"assertverdict.reason_code=="bounded_read_allowed"

Policy evaluation alone is not execution permission. Runtime integrations continue with the bound request and decision contracts described in docs/GOVERNANCE_REQUEST.md and docs/GOVERNANCE_DECISION.md.

API stability and release status

ItemCurrent status
Source/package version1.0.0rc3 source A; external review pending
Package maturityPublic release candidate
Candidate 1.x facadegovengine.v1, exactly 40 exports
GovEngine-owned v1 records15 frozen records
Source SCLite dependencysclite-core==2.0.1
Legacy root modulesCompatibility, experimental or fixture classifications

Current source/package version: 1.0.0rc3 source A; external review pending. Latest public package pin: govengine==1.0.0rc2.

The final 1.0.0 promotion state is maintained in PUBLIC_STATUS.md. Exact facade and schema compatibility rules are documented in docs/API_COMPATIBILITY.md.

Security model

GovEngine is deterministic and fail-closed at its documented boundaries:

  • complete GovEngine-owned records have their digests recomputed;
  • approval is separate from admission and binds the exact operation subject;
  • scope policy and operation requirements are independent of requested scope and runtime inventory;
  • decision digests provide integrity, not signer identity;
  • the runtime must verify a trusted signed decision before atomic claim;
  • terminal runtime facts are checked after I/O against decision-bound output obligations.

See the threat model, tested security guarantees and canonical security integration order.

Documentation

Start with the documentation map. The main references are:

Release changes are in CHANGELOG.md. Contribution rules are in CONTRIBUTING.md.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy govengine
python -m ruff check .
python scripts/validate_public_truth.py
python scripts/validate_release_readiness.py

On current source-A main, validate_release_readiness.py validates source invariants but reports publishable=false. It does not authorize republishing rc1, republishing rc2, or promoting the changed source directly to stable.

Use scripts/validate_clean_package_install.py --no-editable --venv <path> for an isolated package-install smoke test. See docs/VALIDATION.md for the complete gate.

License and provenance

GovEngine is MIT-licensed. It was extracted from Ravenclaw in contract-first stages, so LICENSE preserves the copyright notice for the originating Ravenclaw contribution lineage. The author metadata in pyproject.toml identifies the GovEngine package maintainer; it does not replace or reassign the originating copyright notice.

About

Governance kernel for SCLite-backed workflows, validating policy gates, lifecycle boundaries, receipts, and trust decisions without owning execution.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

GovEngine

CI: pytestPackage: govengine 1.0.0rc2Python: 3.11+Dependency: SCLite ==2.0.1License: MIT

GovEngine is an in-process Python governance kernel designed to be integrated into execution runtimes. It evaluates policy, approval, scope and capability facts for one concrete operation attempt and returns a deterministic allowed, approval_required or denied governance decision.

GovEngine recomputes and validates its own governance records and decision bindings. It does not define artifact truth or verify lifecycle and evidence bundles; those responsibilities belong to SCLite. GovEngine does not perform the operation, schedule jobs, manage credentials, contact targets or store evidence.

The immutable published release-candidate package 1.0.0rc2 exposes the frozen candidate contract through govengine.v1. Current source is 1.0.0rc3; source A is unpublished and external review is pending. The published candidate was built from v1.0.0rc2 after authentic external review, and its seven-day rc2 observation window is elapsed_unclosed after 2026-08-15T11:15:02.258488Z. The frozen RC record has no closure evidence; it is not active or completed and stable promotion remains publishable=false.

Current source package coordinate: govengine==1.0.0rc3. The wider package still contains explicitly classified compatibility, experimental and fixture surfaces.

The PyPI long description is the immutable, distribution-specific PYPI_LONG_DESCRIPTION.md; repository-only release state remains in this README and PUBLIC_STATUS.md. Public wheel and sdist bytes match the reviewed GitHub workflow artifacts.

Why GovEngine exists

Intent is not execution authority. A request from an operator, UI, agent or LLM does not by itself establish that:

  • the active policy allows the operation;
  • approval covers this exact attempt, target and side-effect class;
  • the requested destination is independently authorized;
  • the selected runtime has the required capabilities;
  • the decision is still current for the active lease and fencing token;
  • a result belongs to the decision and runtime permit that preceded I/O.

GovEngine turns those independently supplied facts into one bounded, reviewable and fail-closed governance decision. The host runtime must still authenticate, atomically claim and enforce that decision.

How the components work together

GovEngine is one component in a cooperating set of independent projects. This set has no formal product name. Together they separate domain meaning, governance, execution and proof:

  • A domain profile, such as Tecrax, owns intent vocabulary, workflows, connector semantics, findings and domain validation.
  • RExecOp owns domain-neutral workflow interpretation, operation lifecycle, queues, leases, fencing, retries, connector dispatch and I/O.
  • GovEngine owns deterministic policy evaluation, approval requirements, scope and capability decisions, governance authorization and checks that terminal runtime facts satisfy the decision's obligations.
  • SCLite owns canonical lifecycle and evidence contracts, integrity, receipts, review bundles and verification truth.

Used together, a profile describes what an operation means, RExecOp prepares and executes it, GovEngine decides whether the exact attempt may proceed, and SCLite makes the resulting lifecycle and evidence independently verifiable.

Domain profile meaning, workflows, connector contracts
|
v
RExecOp lifecycle, lease/fencing, permit, I/O
| +---- request / terminal facts -----> GovEngine
| <---- decision / conformance result -+ policy, approval, scope,
| capabilities
|
+---- final lifecycle/evidence --------> SCLite
lifecycle/evidence truth
and verification

The canonical integration order is documented in docs/SECURITY_INTEGRATION.md.

Canonical governance flow

  1. RExecOp constructs a digest-bound GovernanceRequest for one operation, step and attempt.
  2. GovEngine recomputes complete GovEngine-owned governance bindings and evaluates the active typed policy.
  3. GovEngine validates independently supplied approval, target scope and capability inventory facts.
  4. evaluate_governance() returns a GovernanceDecision. Only allowed carries a short-lived authorization bound to the exact attempt, runtime, lease, fencing token, policy, scope and inventory.
  5. RExecOp verifies the signed decision, atomically claims its digest and nonce, issues its own runtime permit and performs the final pre-I/O checks.
  6. After I/O, GovEngine checks whether bounded terminal runtime facts match the exact decision and runtime permit and satisfy its output postconditions.
  7. RExecOp projects final lifecycle and evidence artifacts for SCLite verification.

GovEngine runs inside the host process. A compromised host can bypass the kernel or fabricate inputs, so malicious-host resistance is not claimed.

What GovEngine provides

The frozen govengine.v1 facade provides:

  • a deterministic, typed and fail-closed PolicyEngine;
  • policy obligations, constraints, enforcement plans and redacted explanations;
  • independently bound ApprovalAttestation validation;
  • digest-bound validation of GovEngine-owned GovernanceRequest records;
  • deterministic GovernanceDecision evaluation;
  • short-lived attempt-bound authorization contracts;
  • governance traces, digests of GovEngine-owned records and stable reason codes.

Supporting module-scoped contracts provide:

  • independent scope-policy and capability-inventory comparison;
  • signed-decision verification through host-provided trust ports;
  • checks that terminal runtime facts satisfy a decision and bind to an opaque RExecOp runtime permit;
  • a language-neutral governance-protocol conformance corpus shared with runtime consumers.

Legacy admission, runner, planning, orchestration, state-machine and runtime-shell APIs remain available only as classified compatibility or experimental surfaces. They are not a second authorization protocol and are outside the govengine.v1 compatibility promise.

What GovEngine does not do

GovEngine does not provide:

  • operation lifecycle, queues, scheduling, retries, rollback or connector I/O;
  • raw-intent, subprocess, scanner or exploit execution;
  • domain intent, target, finding or connector semantics;
  • credential, secret, PKI, CA, KMS, HSM or trust-anchor management;
  • production policy, approval, replay, nonce, audit or receipt storage;
  • raw artifact or evidence storage;
  • SCLite schemas, canonicalization, lifecycle truth or proof verification;
  • legal authorization or resistance to a host that ignores its decision.

RExecOp and other host runtimes own enforcement. Profiles own domain meaning. SCLite owns truth and proof.

Installation

Install the published release candidate:

python -m pip install govengine==1.0.0rc2

Use the exact pin shown above. Because 1.0.0rc2 is a pre-release, an unqualified pip install govengine continues to select the latest stable 0.16.11 line.

Requirements:

  • Python 3.11 or newer;
  • exact published and source dependency sclite-core==2.0.1;
  • imports intended for 1.x compatibility should come from govengine.v1.

Quick start: evaluate a typed policy

This small example uses only the frozen candidate facade:

fromgovengine.v1importPolicyCompiler, PolicyEnginecompiled=PolicyCompiler().compile(
{
"schema_version": "v1",
"policy_id": "example-read-policy",
"version": "1.0.0",
"issuer_ref": "organization:example",
"policy_epoch": 1,
"validity": {
"not_before": "2026-01-01T00:00:00Z",
"expires_at": "2099-01-01T00:00:00Z",
},
"supersedes": [],
"rules": [
{
"rule_id": "allow-bounded-read",
"effect": "allow",
"conditions": [
{
"path": "action.mode",
"operator": "eq",
"value": "read",
}
],
"reason_code": "bounded_read_allowed",
}
],
}
)
assertcompiled.okandcompiled.policy_packisnotNoneverdict=PolicyEngine().evaluate(
{
"request_id": "request-1",
"subject_ref": "operation://example/1",
"action": {"mode": "read"},
"resource": {"criticality": "low"},
},
compiled.policy_pack,
)
assertverdict.decision=="allow"assertverdict.reason_code=="bounded_read_allowed"

Policy evaluation alone is not execution permission. Runtime integrations continue with the bound request and decision contracts described in docs/GOVERNANCE_REQUEST.md and docs/GOVERNANCE_DECISION.md.

API stability and release status

ItemCurrent status
Source/package version1.0.0rc3 source A; external review pending
Package maturityPublic release candidate
Candidate 1.x facadegovengine.v1, exactly 40 exports
GovEngine-owned v1 records15 frozen records
Source SCLite dependencysclite-core==2.0.1
Legacy root modulesCompatibility, experimental or fixture classifications

Current source/package version: 1.0.0rc3 source A; external review pending. Latest public package pin: govengine==1.0.0rc2.

The final 1.0.0 promotion state is maintained in PUBLIC_STATUS.md. Exact facade and schema compatibility rules are documented in docs/API_COMPATIBILITY.md.

Security model

GovEngine is deterministic and fail-closed at its documented boundaries:

  • complete GovEngine-owned records have their digests recomputed;
  • approval is separate from admission and binds the exact operation subject;
  • scope policy and operation requirements are independent of requested scope and runtime inventory;
  • decision digests provide integrity, not signer identity;
  • the runtime must verify a trusted signed decision before atomic claim;
  • terminal runtime facts are checked after I/O against decision-bound output obligations.

See the threat model, tested security guarantees and canonical security integration order.

Documentation

Start with the documentation map. The main references are:

Release changes are in CHANGELOG.md. Contribution rules are in CONTRIBUTING.md.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy govengine
python -m ruff check .
python scripts/validate_public_truth.py
python scripts/validate_release_readiness.py

On current source-A main, validate_release_readiness.py validates source invariants but reports publishable=false. It does not authorize republishing rc1, republishing rc2, or promoting the changed source directly to stable.

Use scripts/validate_clean_package_install.py --no-editable --venv <path> for an isolated package-install smoke test. See docs/VALIDATION.md for the complete gate.

License and provenance

GovEngine is MIT-licensed. It was extracted from Ravenclaw in contract-first stages, so LICENSE preserves the copyright notice for the originating Ravenclaw contribution lineage. The author metadata in pyproject.toml identifies the GovEngine package maintainer; it does not replace or reassign the originating copyright notice.

About

Governance kernel for SCLite-backed workflows, validating policy gates, lifecycle boundaries, receipts, and trust decisions without owning execution.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GovEngine

CI: pytestPackage: govengine 1.0.0rc2Python: 3.11+Dependency: SCLite ==2.0.1License: MIT

GovEngine is an in-process Python governance kernel designed to be integrated into execution runtimes. It evaluates policy, approval, scope and capability facts for one concrete operation attempt and returns a deterministic allowed, approval_required or denied governance decision.

GovEngine recomputes and validates its own governance records and decision bindings. It does not define artifact truth or verify lifecycle and evidence bundles; those responsibilities belong to SCLite. GovEngine does not perform the operation, schedule jobs, manage credentials, contact targets or store evidence.

The immutable published release-candidate package 1.0.0rc2 exposes the frozen candidate contract through govengine.v1. Current source is 1.0.0rc3; source A is unpublished and external review is pending. The published candidate was built from v1.0.0rc2 after authentic external review, and its seven-day rc2 observation window is elapsed_unclosed after 2026-08-15T11:15:02.258488Z. The frozen RC record has no closure evidence; it is not active or completed and stable promotion remains publishable=false.

Current source package coordinate: govengine==1.0.0rc3. The wider package still contains explicitly classified compatibility, experimental and fixture surfaces.

The PyPI long description is the immutable, distribution-specific PYPI_LONG_DESCRIPTION.md; repository-only release state remains in this README and PUBLIC_STATUS.md. Public wheel and sdist bytes match the reviewed GitHub workflow artifacts.

Why GovEngine exists

Intent is not execution authority. A request from an operator, UI, agent or LLM does not by itself establish that:

  • the active policy allows the operation;
  • approval covers this exact attempt, target and side-effect class;
  • the requested destination is independently authorized;
  • the selected runtime has the required capabilities;
  • the decision is still current for the active lease and fencing token;
  • a result belongs to the decision and runtime permit that preceded I/O.

GovEngine turns those independently supplied facts into one bounded, reviewable and fail-closed governance decision. The host runtime must still authenticate, atomically claim and enforce that decision.

How the components work together

GovEngine is one component in a cooperating set of independent projects. This set has no formal product name. Together they separate domain meaning, governance, execution and proof:

  • A domain profile, such as Tecrax, owns intent vocabulary, workflows, connector semantics, findings and domain validation.
  • RExecOp owns domain-neutral workflow interpretation, operation lifecycle, queues, leases, fencing, retries, connector dispatch and I/O.
  • GovEngine owns deterministic policy evaluation, approval requirements, scope and capability decisions, governance authorization and checks that terminal runtime facts satisfy the decision's obligations.
  • SCLite owns canonical lifecycle and evidence contracts, integrity, receipts, review bundles and verification truth.

Used together, a profile describes what an operation means, RExecOp prepares and executes it, GovEngine decides whether the exact attempt may proceed, and SCLite makes the resulting lifecycle and evidence independently verifiable.

Domain profile meaning, workflows, connector contracts
|
v
RExecOp lifecycle, lease/fencing, permit, I/O
| +---- request / terminal facts -----> GovEngine
| <---- decision / conformance result -+ policy, approval, scope,
| capabilities
|
+---- final lifecycle/evidence --------> SCLite
lifecycle/evidence truth
and verification

The canonical integration order is documented in docs/SECURITY_INTEGRATION.md.

Canonical governance flow

  1. RExecOp constructs a digest-bound GovernanceRequest for one operation, step and attempt.
  2. GovEngine recomputes complete GovEngine-owned governance bindings and evaluates the active typed policy.
  3. GovEngine validates independently supplied approval, target scope and capability inventory facts.
  4. evaluate_governance() returns a GovernanceDecision. Only allowed carries a short-lived authorization bound to the exact attempt, runtime, lease, fencing token, policy, scope and inventory.
  5. RExecOp verifies the signed decision, atomically claims its digest and nonce, issues its own runtime permit and performs the final pre-I/O checks.
  6. After I/O, GovEngine checks whether bounded terminal runtime facts match the exact decision and runtime permit and satisfy its output postconditions.
  7. RExecOp projects final lifecycle and evidence artifacts for SCLite verification.

GovEngine runs inside the host process. A compromised host can bypass the kernel or fabricate inputs, so malicious-host resistance is not claimed.

What GovEngine provides

The frozen govengine.v1 facade provides:

  • a deterministic, typed and fail-closed PolicyEngine;
  • policy obligations, constraints, enforcement plans and redacted explanations;
  • independently bound ApprovalAttestation validation;
  • digest-bound validation of GovEngine-owned GovernanceRequest records;
  • deterministic GovernanceDecision evaluation;
  • short-lived attempt-bound authorization contracts;
  • governance traces, digests of GovEngine-owned records and stable reason codes.

Supporting module-scoped contracts provide:

  • independent scope-policy and capability-inventory comparison;
  • signed-decision verification through host-provided trust ports;
  • checks that terminal runtime facts satisfy a decision and bind to an opaque RExecOp runtime permit;
  • a language-neutral governance-protocol conformance corpus shared with runtime consumers.

Legacy admission, runner, planning, orchestration, state-machine and runtime-shell APIs remain available only as classified compatibility or experimental surfaces. They are not a second authorization protocol and are outside the govengine.v1 compatibility promise.

What GovEngine does not do

GovEngine does not provide:

  • operation lifecycle, queues, scheduling, retries, rollback or connector I/O;
  • raw-intent, subprocess, scanner or exploit execution;
  • domain intent, target, finding or connector semantics;
  • credential, secret, PKI, CA, KMS, HSM or trust-anchor management;
  • production policy, approval, replay, nonce, audit or receipt storage;
  • raw artifact or evidence storage;
  • SCLite schemas, canonicalization, lifecycle truth or proof verification;
  • legal authorization or resistance to a host that ignores its decision.

RExecOp and other host runtimes own enforcement. Profiles own domain meaning. SCLite owns truth and proof.

Installation

Install the published release candidate:

python -m pip install govengine==1.0.0rc2

Use the exact pin shown above. Because 1.0.0rc2 is a pre-release, an unqualified pip install govengine continues to select the latest stable 0.16.11 line.

Requirements:

  • Python 3.11 or newer;
  • exact published and source dependency sclite-core==2.0.1;
  • imports intended for 1.x compatibility should come from govengine.v1.

Quick start: evaluate a typed policy

This small example uses only the frozen candidate facade:

fromgovengine.v1importPolicyCompiler, PolicyEnginecompiled=PolicyCompiler().compile(
{
"schema_version": "v1",
"policy_id": "example-read-policy",
"version": "1.0.0",
"issuer_ref": "organization:example",
"policy_epoch": 1,
"validity": {
"not_before": "2026-01-01T00:00:00Z",
"expires_at": "2099-01-01T00:00:00Z",
},
"supersedes": [],
"rules": [
{
"rule_id": "allow-bounded-read",
"effect": "allow",
"conditions": [
{
"path": "action.mode",
"operator": "eq",
"value": "read",
}
],
"reason_code": "bounded_read_allowed",
}
],
}
)
assertcompiled.okandcompiled.policy_packisnotNoneverdict=PolicyEngine().evaluate(
{
"request_id": "request-1",
"subject_ref": "operation://example/1",
"action": {"mode": "read"},
"resource": {"criticality": "low"},
},
compiled.policy_pack,
)
assertverdict.decision=="allow"assertverdict.reason_code=="bounded_read_allowed"

Policy evaluation alone is not execution permission. Runtime integrations continue with the bound request and decision contracts described in docs/GOVERNANCE_REQUEST.md and docs/GOVERNANCE_DECISION.md.

API stability and release status

ItemCurrent status
Source/package version1.0.0rc3 source A; external review pending
Package maturityPublic release candidate
Candidate 1.x facadegovengine.v1, exactly 40 exports
GovEngine-owned v1 records15 frozen records
Source SCLite dependencysclite-core==2.0.1
Legacy root modulesCompatibility, experimental or fixture classifications

Current source/package version: 1.0.0rc3 source A; external review pending. Latest public package pin: govengine==1.0.0rc2.

The final 1.0.0 promotion state is maintained in PUBLIC_STATUS.md. Exact facade and schema compatibility rules are documented in docs/API_COMPATIBILITY.md.

Security model

GovEngine is deterministic and fail-closed at its documented boundaries:

  • complete GovEngine-owned records have their digests recomputed;
  • approval is separate from admission and binds the exact operation subject;
  • scope policy and operation requirements are independent of requested scope and runtime inventory;
  • decision digests provide integrity, not signer identity;
  • the runtime must verify a trusted signed decision before atomic claim;
  • terminal runtime facts are checked after I/O against decision-bound output obligations.

See the threat model, tested security guarantees and canonical security integration order.

Documentation

Start with the documentation map. The main references are:

Release changes are in CHANGELOG.md. Contribution rules are in CONTRIBUTING.md.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy govengine
python -m ruff check .
python scripts/validate_public_truth.py
python scripts/validate_release_readiness.py

On current source-A main, validate_release_readiness.py validates source invariants but reports publishable=false. It does not authorize republishing rc1, republishing rc2, or promoting the changed source directly to stable.

Use scripts/validate_clean_package_install.py --no-editable --venv <path> for an isolated package-install smoke test. See docs/VALIDATION.md for the complete gate.

License and provenance

GovEngine is MIT-licensed. It was extracted from Ravenclaw in contract-first stages, so LICENSE preserves the copyright notice for the originating Ravenclaw contribution lineage. The author metadata in pyproject.toml identifies the GovEngine package maintainer; it does not replace or reassign the originating copyright notice.

About

Governance kernel for SCLite-backed workflows, validating policy gates, lifecycle boundaries, receipts, and trust decisions without owning execution.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GovEngine

CI: pytestPackage: govengine 1.0.0rc2Python: 3.11+Dependency: SCLite ==2.0.1License: MIT

GovEngine is an in-process Python governance kernel designed to be integrated into execution runtimes. It evaluates policy, approval, scope and capability facts for one concrete operation attempt and returns a deterministic allowed, approval_required or denied governance decision.

GovEngine recomputes and validates its own governance records and decision bindings. It does not define artifact truth or verify lifecycle and evidence bundles; those responsibilities belong to SCLite. GovEngine does not perform the operation, schedule jobs, manage credentials, contact targets or store evidence.

The immutable published release-candidate package 1.0.0rc2 exposes the frozen candidate contract through govengine.v1. Current source is 1.0.0rc3; source A is unpublished and external review is pending. The published candidate was built from v1.0.0rc2 after authentic external review, and its seven-day rc2 observation window is elapsed_unclosed after 2026-08-15T11:15:02.258488Z. The frozen RC record has no closure evidence; it is not active or completed and stable promotion remains publishable=false.

Current source package coordinate: govengine==1.0.0rc3. The wider package still contains explicitly classified compatibility, experimental and fixture surfaces.

The PyPI long description is the immutable, distribution-specific PYPI_LONG_DESCRIPTION.md; repository-only release state remains in this README and PUBLIC_STATUS.md. Public wheel and sdist bytes match the reviewed GitHub workflow artifacts.

Why GovEngine exists

Intent is not execution authority. A request from an operator, UI, agent or LLM does not by itself establish that:

  • the active policy allows the operation;
  • approval covers this exact attempt, target and side-effect class;
  • the requested destination is independently authorized;
  • the selected runtime has the required capabilities;
  • the decision is still current for the active lease and fencing token;
  • a result belongs to the decision and runtime permit that preceded I/O.

GovEngine turns those independently supplied facts into one bounded, reviewable and fail-closed governance decision. The host runtime must still authenticate, atomically claim and enforce that decision.

How the components work together

GovEngine is one component in a cooperating set of independent projects. This set has no formal product name. Together they separate domain meaning, governance, execution and proof:

  • A domain profile, such as Tecrax, owns intent vocabulary, workflows, connector semantics, findings and domain validation.
  • RExecOp owns domain-neutral workflow interpretation, operation lifecycle, queues, leases, fencing, retries, connector dispatch and I/O.
  • GovEngine owns deterministic policy evaluation, approval requirements, scope and capability decisions, governance authorization and checks that terminal runtime facts satisfy the decision's obligations.
  • SCLite owns canonical lifecycle and evidence contracts, integrity, receipts, review bundles and verification truth.

Used together, a profile describes what an operation means, RExecOp prepares and executes it, GovEngine decides whether the exact attempt may proceed, and SCLite makes the resulting lifecycle and evidence independently verifiable.

Domain profile meaning, workflows, connector contracts
|
v
RExecOp lifecycle, lease/fencing, permit, I/O
| +---- request / terminal facts -----> GovEngine
| <---- decision / conformance result -+ policy, approval, scope,
| capabilities
|
+---- final lifecycle/evidence --------> SCLite
lifecycle/evidence truth
and verification

The canonical integration order is documented in docs/SECURITY_INTEGRATION.md.

Canonical governance flow

  1. RExecOp constructs a digest-bound GovernanceRequest for one operation, step and attempt.
  2. GovEngine recomputes complete GovEngine-owned governance bindings and evaluates the active typed policy.
  3. GovEngine validates independently supplied approval, target scope and capability inventory facts.
  4. evaluate_governance() returns a GovernanceDecision. Only allowed carries a short-lived authorization bound to the exact attempt, runtime, lease, fencing token, policy, scope and inventory.
  5. RExecOp verifies the signed decision, atomically claims its digest and nonce, issues its own runtime permit and performs the final pre-I/O checks.
  6. After I/O, GovEngine checks whether bounded terminal runtime facts match the exact decision and runtime permit and satisfy its output postconditions.
  7. RExecOp projects final lifecycle and evidence artifacts for SCLite verification.

GovEngine runs inside the host process. A compromised host can bypass the kernel or fabricate inputs, so malicious-host resistance is not claimed.

What GovEngine provides

The frozen govengine.v1 facade provides:

  • a deterministic, typed and fail-closed PolicyEngine;
  • policy obligations, constraints, enforcement plans and redacted explanations;
  • independently bound ApprovalAttestation validation;
  • digest-bound validation of GovEngine-owned GovernanceRequest records;
  • deterministic GovernanceDecision evaluation;
  • short-lived attempt-bound authorization contracts;
  • governance traces, digests of GovEngine-owned records and stable reason codes.

Supporting module-scoped contracts provide:

  • independent scope-policy and capability-inventory comparison;
  • signed-decision verification through host-provided trust ports;
  • checks that terminal runtime facts satisfy a decision and bind to an opaque RExecOp runtime permit;
  • a language-neutral governance-protocol conformance corpus shared with runtime consumers.

Legacy admission, runner, planning, orchestration, state-machine and runtime-shell APIs remain available only as classified compatibility or experimental surfaces. They are not a second authorization protocol and are outside the govengine.v1 compatibility promise.

What GovEngine does not do

GovEngine does not provide:

  • operation lifecycle, queues, scheduling, retries, rollback or connector I/O;
  • raw-intent, subprocess, scanner or exploit execution;
  • domain intent, target, finding or connector semantics;
  • credential, secret, PKI, CA, KMS, HSM or trust-anchor management;
  • production policy, approval, replay, nonce, audit or receipt storage;
  • raw artifact or evidence storage;
  • SCLite schemas, canonicalization, lifecycle truth or proof verification;
  • legal authorization or resistance to a host that ignores its decision.

RExecOp and other host runtimes own enforcement. Profiles own domain meaning. SCLite owns truth and proof.

Installation

Install the published release candidate:

python -m pip install govengine==1.0.0rc2

Use the exact pin shown above. Because 1.0.0rc2 is a pre-release, an unqualified pip install govengine continues to select the latest stable 0.16.11 line.

Requirements:

  • Python 3.11 or newer;
  • exact published and source dependency sclite-core==2.0.1;
  • imports intended for 1.x compatibility should come from govengine.v1.

Quick start: evaluate a typed policy

This small example uses only the frozen candidate facade:

fromgovengine.v1importPolicyCompiler, PolicyEnginecompiled=PolicyCompiler().compile(
{
"schema_version": "v1",
"policy_id": "example-read-policy",
"version": "1.0.0",
"issuer_ref": "organization:example",
"policy_epoch": 1,
"validity": {
"not_before": "2026-01-01T00:00:00Z",
"expires_at": "2099-01-01T00:00:00Z",
},
"supersedes": [],
"rules": [
{
"rule_id": "allow-bounded-read",
"effect": "allow",
"conditions": [
{
"path": "action.mode",
"operator": "eq",
"value": "read",
}
],
"reason_code": "bounded_read_allowed",
}
],
}
)
assertcompiled.okandcompiled.policy_packisnotNoneverdict=PolicyEngine().evaluate(
{
"request_id": "request-1",
"subject_ref": "operation://example/1",
"action": {"mode": "read"},
"resource": {"criticality": "low"},
},
compiled.policy_pack,
)
assertverdict.decision=="allow"assertverdict.reason_code=="bounded_read_allowed"

Policy evaluation alone is not execution permission. Runtime integrations continue with the bound request and decision contracts described in docs/GOVERNANCE_REQUEST.md and docs/GOVERNANCE_DECISION.md.

API stability and release status

ItemCurrent status
Source/package version1.0.0rc3 source A; external review pending
Package maturityPublic release candidate
Candidate 1.x facadegovengine.v1, exactly 40 exports
GovEngine-owned v1 records15 frozen records
Source SCLite dependencysclite-core==2.0.1
Legacy root modulesCompatibility, experimental or fixture classifications

Current source/package version: 1.0.0rc3 source A; external review pending. Latest public package pin: govengine==1.0.0rc2.

The final 1.0.0 promotion state is maintained in PUBLIC_STATUS.md. Exact facade and schema compatibility rules are documented in docs/API_COMPATIBILITY.md.

Security model

GovEngine is deterministic and fail-closed at its documented boundaries:

  • complete GovEngine-owned records have their digests recomputed;
  • approval is separate from admission and binds the exact operation subject;
  • scope policy and operation requirements are independent of requested scope and runtime inventory;
  • decision digests provide integrity, not signer identity;
  • the runtime must verify a trusted signed decision before atomic claim;
  • terminal runtime facts are checked after I/O against decision-bound output obligations.

See the threat model, tested security guarantees and canonical security integration order.

Documentation

Start with the documentation map. The main references are:

Release changes are in CHANGELOG.md. Contribution rules are in CONTRIBUTING.md.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy govengine
python -m ruff check .
python scripts/validate_public_truth.py
python scripts/validate_release_readiness.py

On current source-A main, validate_release_readiness.py validates source invariants but reports publishable=false. It does not authorize republishing rc1, republishing rc2, or promoting the changed source directly to stable.

Use scripts/validate_clean_package_install.py --no-editable --venv <path> for an isolated package-install smoke test. See docs/VALIDATION.md for the complete gate.

License and provenance

GovEngine is MIT-licensed. It was extracted from Ravenclaw in contract-first stages, so LICENSE preserves the copyright notice for the originating Ravenclaw contribution lineage. The author metadata in pyproject.toml identifies the GovEngine package maintainer; it does not replace or reassign the originating copyright notice.

About

Governance kernel for SCLite-backed workflows, validating policy gates, lifecycle boundaries, receipts, and trust decisions without owning execution.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

GovEngine

CI: pytestPackage: govengine 1.0.0rc2Python: 3.11+Dependency: SCLite ==2.0.1License: MIT

GovEngine is an in-process Python governance kernel designed to be integrated into execution runtimes. It evaluates policy, approval, scope and capability facts for one concrete operation attempt and returns a deterministic allowed, approval_required or denied governance decision.

GovEngine recomputes and validates its own governance records and decision bindings. It does not define artifact truth or verify lifecycle and evidence bundles; those responsibilities belong to SCLite. GovEngine does not perform the operation, schedule jobs, manage credentials, contact targets or store evidence.

The immutable published release-candidate package 1.0.0rc2 exposes the frozen candidate contract through govengine.v1. Current source is 1.0.0rc3; source A is unpublished and external review is pending. The published candidate was built from v1.0.0rc2 after authentic external review, and its seven-day rc2 observation window is elapsed_unclosed after 2026-08-15T11:15:02.258488Z. The frozen RC record has no closure evidence; it is not active or completed and stable promotion remains publishable=false.

Current source package coordinate: govengine==1.0.0rc3. The wider package still contains explicitly classified compatibility, experimental and fixture surfaces.

The PyPI long description is the immutable, distribution-specific PYPI_LONG_DESCRIPTION.md; repository-only release state remains in this README and PUBLIC_STATUS.md. Public wheel and sdist bytes match the reviewed GitHub workflow artifacts.

Why GovEngine exists

Intent is not execution authority. A request from an operator, UI, agent or LLM does not by itself establish that:

  • the active policy allows the operation;
  • approval covers this exact attempt, target and side-effect class;
  • the requested destination is independently authorized;
  • the selected runtime has the required capabilities;
  • the decision is still current for the active lease and fencing token;
  • a result belongs to the decision and runtime permit that preceded I/O.

GovEngine turns those independently supplied facts into one bounded, reviewable and fail-closed governance decision. The host runtime must still authenticate, atomically claim and enforce that decision.

How the components work together

GovEngine is one component in a cooperating set of independent projects. This set has no formal product name. Together they separate domain meaning, governance, execution and proof:

  • A domain profile, such as Tecrax, owns intent vocabulary, workflows, connector semantics, findings and domain validation.
  • RExecOp owns domain-neutral workflow interpretation, operation lifecycle, queues, leases, fencing, retries, connector dispatch and I/O.
  • GovEngine owns deterministic policy evaluation, approval requirements, scope and capability decisions, governance authorization and checks that terminal runtime facts satisfy the decision's obligations.
  • SCLite owns canonical lifecycle and evidence contracts, integrity, receipts, review bundles and verification truth.

Used together, a profile describes what an operation means, RExecOp prepares and executes it, GovEngine decides whether the exact attempt may proceed, and SCLite makes the resulting lifecycle and evidence independently verifiable.

Domain profile meaning, workflows, connector contracts
|
v
RExecOp lifecycle, lease/fencing, permit, I/O
| +---- request / terminal facts -----> GovEngine
| <---- decision / conformance result -+ policy, approval, scope,
| capabilities
|
+---- final lifecycle/evidence --------> SCLite
lifecycle/evidence truth
and verification

The canonical integration order is documented in docs/SECURITY_INTEGRATION.md.

Canonical governance flow

  1. RExecOp constructs a digest-bound GovernanceRequest for one operation, step and attempt.
  2. GovEngine recomputes complete GovEngine-owned governance bindings and evaluates the active typed policy.
  3. GovEngine validates independently supplied approval, target scope and capability inventory facts.
  4. evaluate_governance() returns a GovernanceDecision. Only allowed carries a short-lived authorization bound to the exact attempt, runtime, lease, fencing token, policy, scope and inventory.
  5. RExecOp verifies the signed decision, atomically claims its digest and nonce, issues its own runtime permit and performs the final pre-I/O checks.
  6. After I/O, GovEngine checks whether bounded terminal runtime facts match the exact decision and runtime permit and satisfy its output postconditions.
  7. RExecOp projects final lifecycle and evidence artifacts for SCLite verification.

GovEngine runs inside the host process. A compromised host can bypass the kernel or fabricate inputs, so malicious-host resistance is not claimed.

What GovEngine provides

The frozen govengine.v1 facade provides:

  • a deterministic, typed and fail-closed PolicyEngine;
  • policy obligations, constraints, enforcement plans and redacted explanations;
  • independently bound ApprovalAttestation validation;
  • digest-bound validation of GovEngine-owned GovernanceRequest records;
  • deterministic GovernanceDecision evaluation;
  • short-lived attempt-bound authorization contracts;
  • governance traces, digests of GovEngine-owned records and stable reason codes.

Supporting module-scoped contracts provide:

  • independent scope-policy and capability-inventory comparison;
  • signed-decision verification through host-provided trust ports;
  • checks that terminal runtime facts satisfy a decision and bind to an opaque RExecOp runtime permit;
  • a language-neutral governance-protocol conformance corpus shared with runtime consumers.

Legacy admission, runner, planning, orchestration, state-machine and runtime-shell APIs remain available only as classified compatibility or experimental surfaces. They are not a second authorization protocol and are outside the govengine.v1 compatibility promise.

What GovEngine does not do

GovEngine does not provide:

  • operation lifecycle, queues, scheduling, retries, rollback or connector I/O;
  • raw-intent, subprocess, scanner or exploit execution;
  • domain intent, target, finding or connector semantics;
  • credential, secret, PKI, CA, KMS, HSM or trust-anchor management;
  • production policy, approval, replay, nonce, audit or receipt storage;
  • raw artifact or evidence storage;
  • SCLite schemas, canonicalization, lifecycle truth or proof verification;
  • legal authorization or resistance to a host that ignores its decision.

RExecOp and other host runtimes own enforcement. Profiles own domain meaning. SCLite owns truth and proof.

Installation

Install the published release candidate:

python -m pip install govengine==1.0.0rc2

Use the exact pin shown above. Because 1.0.0rc2 is a pre-release, an unqualified pip install govengine continues to select the latest stable 0.16.11 line.

Requirements:

  • Python 3.11 or newer;
  • exact published and source dependency sclite-core==2.0.1;
  • imports intended for 1.x compatibility should come from govengine.v1.

Quick start: evaluate a typed policy

This small example uses only the frozen candidate facade:

fromgovengine.v1importPolicyCompiler, PolicyEnginecompiled=PolicyCompiler().compile(
{
"schema_version": "v1",
"policy_id": "example-read-policy",
"version": "1.0.0",
"issuer_ref": "organization:example",
"policy_epoch": 1,
"validity": {
"not_before": "2026-01-01T00:00:00Z",
"expires_at": "2099-01-01T00:00:00Z",
},
"supersedes": [],
"rules": [
{
"rule_id": "allow-bounded-read",
"effect": "allow",
"conditions": [
{
"path": "action.mode",
"operator": "eq",
"value": "read",
}
],
"reason_code": "bounded_read_allowed",
}
],
}
)
assertcompiled.okandcompiled.policy_packisnotNoneverdict=PolicyEngine().evaluate(
{
"request_id": "request-1",
"subject_ref": "operation://example/1",
"action": {"mode": "read"},
"resource": {"criticality": "low"},
},
compiled.policy_pack,
)
assertverdict.decision=="allow"assertverdict.reason_code=="bounded_read_allowed"

Policy evaluation alone is not execution permission. Runtime integrations continue with the bound request and decision contracts described in docs/GOVERNANCE_REQUEST.md and docs/GOVERNANCE_DECISION.md.

API stability and release status

ItemCurrent status
Source/package version1.0.0rc3 source A; external review pending
Package maturityPublic release candidate
Candidate 1.x facadegovengine.v1, exactly 40 exports
GovEngine-owned v1 records15 frozen records
Source SCLite dependencysclite-core==2.0.1
Legacy root modulesCompatibility, experimental or fixture classifications

Current source/package version: 1.0.0rc3 source A; external review pending. Latest public package pin: govengine==1.0.0rc2.

The final 1.0.0 promotion state is maintained in PUBLIC_STATUS.md. Exact facade and schema compatibility rules are documented in docs/API_COMPATIBILITY.md.

Security model

GovEngine is deterministic and fail-closed at its documented boundaries:

  • complete GovEngine-owned records have their digests recomputed;
  • approval is separate from admission and binds the exact operation subject;
  • scope policy and operation requirements are independent of requested scope and runtime inventory;
  • decision digests provide integrity, not signer identity;
  • the runtime must verify a trusted signed decision before atomic claim;
  • terminal runtime facts are checked after I/O against decision-bound output obligations.

See the threat model, tested security guarantees and canonical security integration order.

Documentation

Start with the documentation map. The main references are:

Release changes are in CHANGELOG.md. Contribution rules are in CONTRIBUTING.md.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy govengine
python -m ruff check .
python scripts/validate_public_truth.py
python scripts/validate_release_readiness.py

On current source-A main, validate_release_readiness.py validates source invariants but reports publishable=false. It does not authorize republishing rc1, republishing rc2, or promoting the changed source directly to stable.

Use scripts/validate_clean_package_install.py --no-editable --venv <path> for an isolated package-install smoke test. See docs/VALIDATION.md for the complete gate.

License and provenance

GovEngine is MIT-licensed. It was extracted from Ravenclaw in contract-first stages, so LICENSE preserves the copyright notice for the originating Ravenclaw contribution lineage. The author metadata in pyproject.toml identifies the GovEngine package maintainer; it does not replace or reassign the originating copyright notice.

About

Governance kernel for SCLite-backed workflows, validating policy gates, lifecycle boundaries, receipts, and trust decisions without owning execution.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GovEngine

CI: pytestPackage: govengine 1.0.0rc2Python: 3.11+Dependency: SCLite ==2.0.1License: MIT

GovEngine is an in-process Python governance kernel designed to be integrated into execution runtimes. It evaluates policy, approval, scope and capability facts for one concrete operation attempt and returns a deterministic allowed, approval_required or denied governance decision.

GovEngine recomputes and validates its own governance records and decision bindings. It does not define artifact truth or verify lifecycle and evidence bundles; those responsibilities belong to SCLite. GovEngine does not perform the operation, schedule jobs, manage credentials, contact targets or store evidence.

The immutable published release-candidate package 1.0.0rc2 exposes the frozen candidate contract through govengine.v1. Current source is 1.0.0rc3; source A is unpublished and external review is pending. The published candidate was built from v1.0.0rc2 after authentic external review, and its seven-day rc2 observation window is elapsed_unclosed after 2026-08-15T11:15:02.258488Z. The frozen RC record has no closure evidence; it is not active or completed and stable promotion remains publishable=false.

Current source package coordinate: govengine==1.0.0rc3. The wider package still contains explicitly classified compatibility, experimental and fixture surfaces.

The PyPI long description is the immutable, distribution-specific PYPI_LONG_DESCRIPTION.md; repository-only release state remains in this README and PUBLIC_STATUS.md. Public wheel and sdist bytes match the reviewed GitHub workflow artifacts.

Why GovEngine exists

Intent is not execution authority. A request from an operator, UI, agent or LLM does not by itself establish that:

  • the active policy allows the operation;
  • approval covers this exact attempt, target and side-effect class;
  • the requested destination is independently authorized;
  • the selected runtime has the required capabilities;
  • the decision is still current for the active lease and fencing token;
  • a result belongs to the decision and runtime permit that preceded I/O.

GovEngine turns those independently supplied facts into one bounded, reviewable and fail-closed governance decision. The host runtime must still authenticate, atomically claim and enforce that decision.

How the components work together

GovEngine is one component in a cooperating set of independent projects. This set has no formal product name. Together they separate domain meaning, governance, execution and proof:

  • A domain profile, such as Tecrax, owns intent vocabulary, workflows, connector semantics, findings and domain validation.
  • RExecOp owns domain-neutral workflow interpretation, operation lifecycle, queues, leases, fencing, retries, connector dispatch and I/O.
  • GovEngine owns deterministic policy evaluation, approval requirements, scope and capability decisions, governance authorization and checks that terminal runtime facts satisfy the decision's obligations.
  • SCLite owns canonical lifecycle and evidence contracts, integrity, receipts, review bundles and verification truth.

Used together, a profile describes what an operation means, RExecOp prepares and executes it, GovEngine decides whether the exact attempt may proceed, and SCLite makes the resulting lifecycle and evidence independently verifiable.

Domain profile meaning, workflows, connector contracts
|
v
RExecOp lifecycle, lease/fencing, permit, I/O
| +---- request / terminal facts -----> GovEngine
| <---- decision / conformance result -+ policy, approval, scope,
| capabilities
|
+---- final lifecycle/evidence --------> SCLite
lifecycle/evidence truth
and verification

The canonical integration order is documented in docs/SECURITY_INTEGRATION.md.

Canonical governance flow

  1. RExecOp constructs a digest-bound GovernanceRequest for one operation, step and attempt.
  2. GovEngine recomputes complete GovEngine-owned governance bindings and evaluates the active typed policy.
  3. GovEngine validates independently supplied approval, target scope and capability inventory facts.
  4. evaluate_governance() returns a GovernanceDecision. Only allowed carries a short-lived authorization bound to the exact attempt, runtime, lease, fencing token, policy, scope and inventory.
  5. RExecOp verifies the signed decision, atomically claims its digest and nonce, issues its own runtime permit and performs the final pre-I/O checks.
  6. After I/O, GovEngine checks whether bounded terminal runtime facts match the exact decision and runtime permit and satisfy its output postconditions.
  7. RExecOp projects final lifecycle and evidence artifacts for SCLite verification.

GovEngine runs inside the host process. A compromised host can bypass the kernel or fabricate inputs, so malicious-host resistance is not claimed.

What GovEngine provides

The frozen govengine.v1 facade provides:

  • a deterministic, typed and fail-closed PolicyEngine;
  • policy obligations, constraints, enforcement plans and redacted explanations;
  • independently bound ApprovalAttestation validation;
  • digest-bound validation of GovEngine-owned GovernanceRequest records;
  • deterministic GovernanceDecision evaluation;
  • short-lived attempt-bound authorization contracts;
  • governance traces, digests of GovEngine-owned records and stable reason codes.

Supporting module-scoped contracts provide:

  • independent scope-policy and capability-inventory comparison;
  • signed-decision verification through host-provided trust ports;
  • checks that terminal runtime facts satisfy a decision and bind to an opaque RExecOp runtime permit;
  • a language-neutral governance-protocol conformance corpus shared with runtime consumers.

Legacy admission, runner, planning, orchestration, state-machine and runtime-shell APIs remain available only as classified compatibility or experimental surfaces. They are not a second authorization protocol and are outside the govengine.v1 compatibility promise.

What GovEngine does not do

GovEngine does not provide:

  • operation lifecycle, queues, scheduling, retries, rollback or connector I/O;
  • raw-intent, subprocess, scanner or exploit execution;
  • domain intent, target, finding or connector semantics;
  • credential, secret, PKI, CA, KMS, HSM or trust-anchor management;
  • production policy, approval, replay, nonce, audit or receipt storage;
  • raw artifact or evidence storage;
  • SCLite schemas, canonicalization, lifecycle truth or proof verification;
  • legal authorization or resistance to a host that ignores its decision.

RExecOp and other host runtimes own enforcement. Profiles own domain meaning. SCLite owns truth and proof.

Installation

Install the published release candidate:

python -m pip install govengine==1.0.0rc2

Use the exact pin shown above. Because 1.0.0rc2 is a pre-release, an unqualified pip install govengine continues to select the latest stable 0.16.11 line.

Requirements:

  • Python 3.11 or newer;
  • exact published and source dependency sclite-core==2.0.1;
  • imports intended for 1.x compatibility should come from govengine.v1.

Quick start: evaluate a typed policy

This small example uses only the frozen candidate facade:

fromgovengine.v1importPolicyCompiler, PolicyEnginecompiled=PolicyCompiler().compile(
{
"schema_version": "v1",
"policy_id": "example-read-policy",
"version": "1.0.0",
"issuer_ref": "organization:example",
"policy_epoch": 1,
"validity": {
"not_before": "2026-01-01T00:00:00Z",
"expires_at": "2099-01-01T00:00:00Z",
},
"supersedes": [],
"rules": [
{
"rule_id": "allow-bounded-read",
"effect": "allow",
"conditions": [
{
"path": "action.mode",
"operator": "eq",
"value": "read",
}
],
"reason_code": "bounded_read_allowed",
}
],
}
)
assertcompiled.okandcompiled.policy_packisnotNoneverdict=PolicyEngine().evaluate(
{
"request_id": "request-1",
"subject_ref": "operation://example/1",
"action": {"mode": "read"},
"resource": {"criticality": "low"},
},
compiled.policy_pack,
)
assertverdict.decision=="allow"assertverdict.reason_code=="bounded_read_allowed"

Policy evaluation alone is not execution permission. Runtime integrations continue with the bound request and decision contracts described in docs/GOVERNANCE_REQUEST.md and docs/GOVERNANCE_DECISION.md.

API stability and release status

ItemCurrent status
Source/package version1.0.0rc3 source A; external review pending
Package maturityPublic release candidate
Candidate 1.x facadegovengine.v1, exactly 40 exports
GovEngine-owned v1 records15 frozen records
Source SCLite dependencysclite-core==2.0.1
Legacy root modulesCompatibility, experimental or fixture classifications

Current source/package version: 1.0.0rc3 source A; external review pending. Latest public package pin: govengine==1.0.0rc2.

The final 1.0.0 promotion state is maintained in PUBLIC_STATUS.md. Exact facade and schema compatibility rules are documented in docs/API_COMPATIBILITY.md.

Security model

GovEngine is deterministic and fail-closed at its documented boundaries:

  • complete GovEngine-owned records have their digests recomputed;
  • approval is separate from admission and binds the exact operation subject;
  • scope policy and operation requirements are independent of requested scope and runtime inventory;
  • decision digests provide integrity, not signer identity;
  • the runtime must verify a trusted signed decision before atomic claim;
  • terminal runtime facts are checked after I/O against decision-bound output obligations.

See the threat model, tested security guarantees and canonical security integration order.

Documentation

Start with the documentation map. The main references are:

Release changes are in CHANGELOG.md. Contribution rules are in CONTRIBUTING.md.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy govengine
python -m ruff check .
python scripts/validate_public_truth.py
python scripts/validate_release_readiness.py

On current source-A main, validate_release_readiness.py validates source invariants but reports publishable=false. It does not authorize republishing rc1, republishing rc2, or promoting the changed source directly to stable.

Use scripts/validate_clean_package_install.py --no-editable --venv <path> for an isolated package-install smoke test. See docs/VALIDATION.md for the complete gate.

License and provenance

GovEngine is MIT-licensed. It was extracted from Ravenclaw in contract-first stages, so LICENSE preserves the copyright notice for the originating Ravenclaw contribution lineage. The author metadata in pyproject.toml identifies the GovEngine package maintainer; it does not replace or reassign the originating copyright notice.

About

Governance kernel for SCLite-backed workflows, validating policy gates, lifecycle boundaries, receipts, and trust decisions without owning execution.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

GovEngine

CI: pytestPackage: govengine 1.0.0rc2Python: 3.11+Dependency: SCLite ==2.0.1License: MIT

GovEngine is an in-process Python governance kernel designed to be integrated into execution runtimes. It evaluates policy, approval, scope and capability facts for one concrete operation attempt and returns a deterministic allowed, approval_required or denied governance decision.

GovEngine recomputes and validates its own governance records and decision bindings. It does not define artifact truth or verify lifecycle and evidence bundles; those responsibilities belong to SCLite. GovEngine does not perform the operation, schedule jobs, manage credentials, contact targets or store evidence.

The immutable published release-candidate package 1.0.0rc2 exposes the frozen candidate contract through govengine.v1. Current source is 1.0.0rc3; source A is unpublished and external review is pending. The published candidate was built from v1.0.0rc2 after authentic external review, and its seven-day rc2 observation window is elapsed_unclosed after 2026-08-15T11:15:02.258488Z. The frozen RC record has no closure evidence; it is not active or completed and stable promotion remains publishable=false.

Current source package coordinate: govengine==1.0.0rc3. The wider package still contains explicitly classified compatibility, experimental and fixture surfaces.

The PyPI long description is the immutable, distribution-specific PYPI_LONG_DESCRIPTION.md; repository-only release state remains in this README and PUBLIC_STATUS.md. Public wheel and sdist bytes match the reviewed GitHub workflow artifacts.

Why GovEngine exists

Intent is not execution authority. A request from an operator, UI, agent or LLM does not by itself establish that:

  • the active policy allows the operation;
  • approval covers this exact attempt, target and side-effect class;
  • the requested destination is independently authorized;
  • the selected runtime has the required capabilities;
  • the decision is still current for the active lease and fencing token;
  • a result belongs to the decision and runtime permit that preceded I/O.

GovEngine turns those independently supplied facts into one bounded, reviewable and fail-closed governance decision. The host runtime must still authenticate, atomically claim and enforce that decision.

How the components work together

GovEngine is one component in a cooperating set of independent projects. This set has no formal product name. Together they separate domain meaning, governance, execution and proof:

  • A domain profile, such as Tecrax, owns intent vocabulary, workflows, connector semantics, findings and domain validation.
  • RExecOp owns domain-neutral workflow interpretation, operation lifecycle, queues, leases, fencing, retries, connector dispatch and I/O.
  • GovEngine owns deterministic policy evaluation, approval requirements, scope and capability decisions, governance authorization and checks that terminal runtime facts satisfy the decision's obligations.
  • SCLite owns canonical lifecycle and evidence contracts, integrity, receipts, review bundles and verification truth.

Used together, a profile describes what an operation means, RExecOp prepares and executes it, GovEngine decides whether the exact attempt may proceed, and SCLite makes the resulting lifecycle and evidence independently verifiable.

Domain profile meaning, workflows, connector contracts
|
v
RExecOp lifecycle, lease/fencing, permit, I/O
| +---- request / terminal facts -----> GovEngine
| <---- decision / conformance result -+ policy, approval, scope,
| capabilities
|
+---- final lifecycle/evidence --------> SCLite
lifecycle/evidence truth
and verification

The canonical integration order is documented in docs/SECURITY_INTEGRATION.md.

Canonical governance flow

  1. RExecOp constructs a digest-bound GovernanceRequest for one operation, step and attempt.
  2. GovEngine recomputes complete GovEngine-owned governance bindings and evaluates the active typed policy.
  3. GovEngine validates independently supplied approval, target scope and capability inventory facts.
  4. evaluate_governance() returns a GovernanceDecision. Only allowed carries a short-lived authorization bound to the exact attempt, runtime, lease, fencing token, policy, scope and inventory.
  5. RExecOp verifies the signed decision, atomically claims its digest and nonce, issues its own runtime permit and performs the final pre-I/O checks.
  6. After I/O, GovEngine checks whether bounded terminal runtime facts match the exact decision and runtime permit and satisfy its output postconditions.
  7. RExecOp projects final lifecycle and evidence artifacts for SCLite verification.

GovEngine runs inside the host process. A compromised host can bypass the kernel or fabricate inputs, so malicious-host resistance is not claimed.

What GovEngine provides

The frozen govengine.v1 facade provides:

  • a deterministic, typed and fail-closed PolicyEngine;
  • policy obligations, constraints, enforcement plans and redacted explanations;
  • independently bound ApprovalAttestation validation;
  • digest-bound validation of GovEngine-owned GovernanceRequest records;
  • deterministic GovernanceDecision evaluation;
  • short-lived attempt-bound authorization contracts;
  • governance traces, digests of GovEngine-owned records and stable reason codes.

Supporting module-scoped contracts provide:

  • independent scope-policy and capability-inventory comparison;
  • signed-decision verification through host-provided trust ports;
  • checks that terminal runtime facts satisfy a decision and bind to an opaque RExecOp runtime permit;
  • a language-neutral governance-protocol conformance corpus shared with runtime consumers.

Legacy admission, runner, planning, orchestration, state-machine and runtime-shell APIs remain available only as classified compatibility or experimental surfaces. They are not a second authorization protocol and are outside the govengine.v1 compatibility promise.

What GovEngine does not do

GovEngine does not provide:

  • operation lifecycle, queues, scheduling, retries, rollback or connector I/O;
  • raw-intent, subprocess, scanner or exploit execution;
  • domain intent, target, finding or connector semantics;
  • credential, secret, PKI, CA, KMS, HSM or trust-anchor management;
  • production policy, approval, replay, nonce, audit or receipt storage;
  • raw artifact or evidence storage;
  • SCLite schemas, canonicalization, lifecycle truth or proof verification;
  • legal authorization or resistance to a host that ignores its decision.

RExecOp and other host runtimes own enforcement. Profiles own domain meaning. SCLite owns truth and proof.

Installation

Install the published release candidate:

python -m pip install govengine==1.0.0rc2

Use the exact pin shown above. Because 1.0.0rc2 is a pre-release, an unqualified pip install govengine continues to select the latest stable 0.16.11 line.

Requirements:

  • Python 3.11 or newer;
  • exact published and source dependency sclite-core==2.0.1;
  • imports intended for 1.x compatibility should come from govengine.v1.

Quick start: evaluate a typed policy

This small example uses only the frozen candidate facade:

fromgovengine.v1importPolicyCompiler, PolicyEnginecompiled=PolicyCompiler().compile(
{
"schema_version": "v1",
"policy_id": "example-read-policy",
"version": "1.0.0",
"issuer_ref": "organization:example",
"policy_epoch": 1,
"validity": {
"not_before": "2026-01-01T00:00:00Z",
"expires_at": "2099-01-01T00:00:00Z",
},
"supersedes": [],
"rules": [
{
"rule_id": "allow-bounded-read",
"effect": "allow",
"conditions": [
{
"path": "action.mode",
"operator": "eq",
"value": "read",
}
],
"reason_code": "bounded_read_allowed",
}
],
}
)
assertcompiled.okandcompiled.policy_packisnotNoneverdict=PolicyEngine().evaluate(
{
"request_id": "request-1",
"subject_ref": "operation://example/1",
"action": {"mode": "read"},
"resource": {"criticality": "low"},
},
compiled.policy_pack,
)
assertverdict.decision=="allow"assertverdict.reason_code=="bounded_read_allowed"

Policy evaluation alone is not execution permission. Runtime integrations continue with the bound request and decision contracts described in docs/GOVERNANCE_REQUEST.md and docs/GOVERNANCE_DECISION.md.

API stability and release status

ItemCurrent status
Source/package version1.0.0rc3 source A; external review pending
Package maturityPublic release candidate
Candidate 1.x facadegovengine.v1, exactly 40 exports
GovEngine-owned v1 records15 frozen records
Source SCLite dependencysclite-core==2.0.1
Legacy root modulesCompatibility, experimental or fixture classifications

Current source/package version: 1.0.0rc3 source A; external review pending. Latest public package pin: govengine==1.0.0rc2.

The final 1.0.0 promotion state is maintained in PUBLIC_STATUS.md. Exact facade and schema compatibility rules are documented in docs/API_COMPATIBILITY.md.

Security model

GovEngine is deterministic and fail-closed at its documented boundaries:

  • complete GovEngine-owned records have their digests recomputed;
  • approval is separate from admission and binds the exact operation subject;
  • scope policy and operation requirements are independent of requested scope and runtime inventory;
  • decision digests provide integrity, not signer identity;
  • the runtime must verify a trusted signed decision before atomic claim;
  • terminal runtime facts are checked after I/O against decision-bound output obligations.

See the threat model, tested security guarantees and canonical security integration order.

Documentation

Start with the documentation map. The main references are:

Release changes are in CHANGELOG.md. Contribution rules are in CONTRIBUTING.md.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy govengine
python -m ruff check .
python scripts/validate_public_truth.py
python scripts/validate_release_readiness.py

On current source-A main, validate_release_readiness.py validates source invariants but reports publishable=false. It does not authorize republishing rc1, republishing rc2, or promoting the changed source directly to stable.

Use scripts/validate_clean_package_install.py --no-editable --venv <path> for an isolated package-install smoke test. See docs/VALIDATION.md for the complete gate.

License and provenance

GovEngine is MIT-licensed. It was extracted from Ravenclaw in contract-first stages, so LICENSE preserves the copyright notice for the originating Ravenclaw contribution lineage. The author metadata in pyproject.toml identifies the GovEngine package maintainer; it does not replace or reassign the originating copyright notice.

About

Governance kernel for SCLite-backed workflows, validating policy gates, lifecycle boundaries, receipts, and trust decisions without owning execution.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

GovEngine

CI: pytestPackage: govengine 1.0.0rc2Python: 3.11+Dependency: SCLite ==2.0.1License: MIT

GovEngine is an in-process Python governance kernel designed to be integrated into execution runtimes. It evaluates policy, approval, scope and capability facts for one concrete operation attempt and returns a deterministic allowed, approval_required or denied governance decision.

GovEngine recomputes and validates its own governance records and decision bindings. It does not define artifact truth or verify lifecycle and evidence bundles; those responsibilities belong to SCLite. GovEngine does not perform the operation, schedule jobs, manage credentials, contact targets or store evidence.

The immutable published release-candidate package 1.0.0rc2 exposes the frozen candidate contract through govengine.v1. Current source is 1.0.0rc3; source A is unpublished and external review is pending. The published candidate was built from v1.0.0rc2 after authentic external review, and its seven-day rc2 observation window is elapsed_unclosed after 2026-08-15T11:15:02.258488Z. The frozen RC record has no closure evidence; it is not active or completed and stable promotion remains publishable=false.

Current source package coordinate: govengine==1.0.0rc3. The wider package still contains explicitly classified compatibility, experimental and fixture surfaces.

The PyPI long description is the immutable, distribution-specific PYPI_LONG_DESCRIPTION.md; repository-only release state remains in this README and PUBLIC_STATUS.md. Public wheel and sdist bytes match the reviewed GitHub workflow artifacts.

Why GovEngine exists

Intent is not execution authority. A request from an operator, UI, agent or LLM does not by itself establish that:

  • the active policy allows the operation;
  • approval covers this exact attempt, target and side-effect class;
  • the requested destination is independently authorized;
  • the selected runtime has the required capabilities;
  • the decision is still current for the active lease and fencing token;
  • a result belongs to the decision and runtime permit that preceded I/O.

GovEngine turns those independently supplied facts into one bounded, reviewable and fail-closed governance decision. The host runtime must still authenticate, atomically claim and enforce that decision.

How the components work together

GovEngine is one component in a cooperating set of independent projects. This set has no formal product name. Together they separate domain meaning, governance, execution and proof:

  • A domain profile, such as Tecrax, owns intent vocabulary, workflows, connector semantics, findings and domain validation.
  • RExecOp owns domain-neutral workflow interpretation, operation lifecycle, queues, leases, fencing, retries, connector dispatch and I/O.
  • GovEngine owns deterministic policy evaluation, approval requirements, scope and capability decisions, governance authorization and checks that terminal runtime facts satisfy the decision's obligations.
  • SCLite owns canonical lifecycle and evidence contracts, integrity, receipts, review bundles and verification truth.

Used together, a profile describes what an operation means, RExecOp prepares and executes it, GovEngine decides whether the exact attempt may proceed, and SCLite makes the resulting lifecycle and evidence independently verifiable.

Domain profile meaning, workflows, connector contracts
|
v
RExecOp lifecycle, lease/fencing, permit, I/O
| +---- request / terminal facts -----> GovEngine
| <---- decision / conformance result -+ policy, approval, scope,
| capabilities
|
+---- final lifecycle/evidence --------> SCLite
lifecycle/evidence truth
and verification

The canonical integration order is documented in docs/SECURITY_INTEGRATION.md.

Canonical governance flow

  1. RExecOp constructs a digest-bound GovernanceRequest for one operation, step and attempt.
  2. GovEngine recomputes complete GovEngine-owned governance bindings and evaluates the active typed policy.
  3. GovEngine validates independently supplied approval, target scope and capability inventory facts.
  4. evaluate_governance() returns a GovernanceDecision. Only allowed carries a short-lived authorization bound to the exact attempt, runtime, lease, fencing token, policy, scope and inventory.
  5. RExecOp verifies the signed decision, atomically claims its digest and nonce, issues its own runtime permit and performs the final pre-I/O checks.
  6. After I/O, GovEngine checks whether bounded terminal runtime facts match the exact decision and runtime permit and satisfy its output postconditions.
  7. RExecOp projects final lifecycle and evidence artifacts for SCLite verification.

GovEngine runs inside the host process. A compromised host can bypass the kernel or fabricate inputs, so malicious-host resistance is not claimed.

What GovEngine provides

The frozen govengine.v1 facade provides:

  • a deterministic, typed and fail-closed PolicyEngine;
  • policy obligations, constraints, enforcement plans and redacted explanations;
  • independently bound ApprovalAttestation validation;
  • digest-bound validation of GovEngine-owned GovernanceRequest records;
  • deterministic GovernanceDecision evaluation;
  • short-lived attempt-bound authorization contracts;
  • governance traces, digests of GovEngine-owned records and stable reason codes.

Supporting module-scoped contracts provide:

  • independent scope-policy and capability-inventory comparison;
  • signed-decision verification through host-provided trust ports;
  • checks that terminal runtime facts satisfy a decision and bind to an opaque RExecOp runtime permit;
  • a language-neutral governance-protocol conformance corpus shared with runtime consumers.

Legacy admission, runner, planning, orchestration, state-machine and runtime-shell APIs remain available only as classified compatibility or experimental surfaces. They are not a second authorization protocol and are outside the govengine.v1 compatibility promise.

What GovEngine does not do

GovEngine does not provide:

  • operation lifecycle, queues, scheduling, retries, rollback or connector I/O;
  • raw-intent, subprocess, scanner or exploit execution;
  • domain intent, target, finding or connector semantics;
  • credential, secret, PKI, CA, KMS, HSM or trust-anchor management;
  • production policy, approval, replay, nonce, audit or receipt storage;
  • raw artifact or evidence storage;
  • SCLite schemas, canonicalization, lifecycle truth or proof verification;
  • legal authorization or resistance to a host that ignores its decision.

RExecOp and other host runtimes own enforcement. Profiles own domain meaning. SCLite owns truth and proof.

Installation

Install the published release candidate:

python -m pip install govengine==1.0.0rc2

Use the exact pin shown above. Because 1.0.0rc2 is a pre-release, an unqualified pip install govengine continues to select the latest stable 0.16.11 line.

Requirements:

  • Python 3.11 or newer;
  • exact published and source dependency sclite-core==2.0.1;
  • imports intended for 1.x compatibility should come from govengine.v1.

Quick start: evaluate a typed policy

This small example uses only the frozen candidate facade:

fromgovengine.v1importPolicyCompiler, PolicyEnginecompiled=PolicyCompiler().compile(
{
"schema_version": "v1",
"policy_id": "example-read-policy",
"version": "1.0.0",
"issuer_ref": "organization:example",
"policy_epoch": 1,
"validity": {
"not_before": "2026-01-01T00:00:00Z",
"expires_at": "2099-01-01T00:00:00Z",
},
"supersedes": [],
"rules": [
{
"rule_id": "allow-bounded-read",
"effect": "allow",
"conditions": [
{
"path": "action.mode",
"operator": "eq",
"value": "read",
}
],
"reason_code": "bounded_read_allowed",
}
],
}
)
assertcompiled.okandcompiled.policy_packisnotNoneverdict=PolicyEngine().evaluate(
{
"request_id": "request-1",
"subject_ref": "operation://example/1",
"action": {"mode": "read"},
"resource": {"criticality": "low"},
},
compiled.policy_pack,
)
assertverdict.decision=="allow"assertverdict.reason_code=="bounded_read_allowed"

Policy evaluation alone is not execution permission. Runtime integrations continue with the bound request and decision contracts described in docs/GOVERNANCE_REQUEST.md and docs/GOVERNANCE_DECISION.md.

API stability and release status

ItemCurrent status
Source/package version1.0.0rc3 source A; external review pending
Package maturityPublic release candidate
Candidate 1.x facadegovengine.v1, exactly 40 exports
GovEngine-owned v1 records15 frozen records
Source SCLite dependencysclite-core==2.0.1
Legacy root modulesCompatibility, experimental or fixture classifications

Current source/package version: 1.0.0rc3 source A; external review pending. Latest public package pin: govengine==1.0.0rc2.

The final 1.0.0 promotion state is maintained in PUBLIC_STATUS.md. Exact facade and schema compatibility rules are documented in docs/API_COMPATIBILITY.md.

Security model

GovEngine is deterministic and fail-closed at its documented boundaries:

  • complete GovEngine-owned records have their digests recomputed;
  • approval is separate from admission and binds the exact operation subject;
  • scope policy and operation requirements are independent of requested scope and runtime inventory;
  • decision digests provide integrity, not signer identity;
  • the runtime must verify a trusted signed decision before atomic claim;
  • terminal runtime facts are checked after I/O against decision-bound output obligations.

See the threat model, tested security guarantees and canonical security integration order.

Documentation

Start with the documentation map. The main references are:

Release changes are in CHANGELOG.md. Contribution rules are in CONTRIBUTING.md.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
python -m pytest -q
python -m mypy govengine
python -m ruff check .
python scripts/validate_public_truth.py
python scripts/validate_release_readiness.py

On current source-A main, validate_release_readiness.py validates source invariants but reports publishable=false. It does not authorize republishing rc1, republishing rc2, or promoting the changed source directly to stable.

Use scripts/validate_clean_package_install.py --no-editable --venv <path> for an isolated package-install smoke test. See docs/VALIDATION.md for the complete gate.

License and provenance

GovEngine is MIT-licensed. It was extracted from Ravenclaw in contract-first stages, so LICENSE preserves the copyright notice for the originating Ravenclaw contribution lineage. The author metadata in pyproject.toml identifies the GovEngine package maintainer; it does not replace or reassign the originating copyright notice.

About

Governance kernel for SCLite-backed workflows, validating policy gates, lifecycle boundaries, receipts, and trust decisions without owning execution.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages