Deterministic policy engine for Jira and ServiceNow approvals with replayable audit evidence.
Status: alpha product prototype.
SENA is a policy-as-code decisioning engine for approval workflows where reproducibility, governance, and auditability matter more than opaque automation.
Given the same normalised input and policy bundle, SENA produces the same decision, reasoning, and audit evidence every time. Decisions can be replayed, verified, and traced back to the exact policy bundle and input that produced them.
Most workflow and approval systems answer:
What decision was made?
SENA is designed to answer:
Why was this decision made, can we prove it, and can we reproduce it later?
Key capabilities:
- deterministic policy evaluation;
- policy bundle lifecycle management;
- replayable decision evidence;
- hash-linked audit chains;
- Jira and ServiceNow integration;
- promotion workflows with governance controls;
- decision simulation and validation;
- policy-as-code authoring;
- API-first architecture.
The supported path today is:
- Jira approval workflows;
- ServiceNow approval workflows;
- deterministic policy evaluation;
- audit evidence generation;
- policy bundle lifecycle management;
- replay and verification APIs.
Experimental functionality exists in the repository, but is not considered part of the supported path unless explicitly documented otherwise.
See:
Policies are grouped into versioned bundles.
A bundle contains:
- rules;
- invariants;
- metadata;
- compatibility information;
- lifecycle state.
Example lifecycle:
draft
↓
candidate
↓
approved
↓
active
↓
deprecated
Bundles can be promoted, validated, simulated, rolled back, and audited.
Inputs are normalised into canonical action proposals.
SENA then evaluates:
- hard invariants;
- explicit policy rules;
- escalation conditions;
- supporting metadata;
- evidence requirements.
The output is a structured decision such as:
APPROVED
BLOCKED
ESCALATE_FOR_HUMAN_REVIEW
pip install -e .
pip install -e .[api,dev]pytestCoverage report target is configured at 80% for the sena package.
python -m sena.cli.main src/sena/examples/scenarios/demo_vendor_payment_block_unverified.json --jsonPYTHONPATH=src python -m sena.cli.main policy init ./my-policy-bundle
PYTHONPATH=src python -m sena.cli.main policy validate --policy-dir ./my-policy-bundle
PYTHONPATH=src python -m sena.cli.main policy test --policy-dir ./my-policy-bundle --test-file ./my-policy-bundle/tests/policy_tests.jsonpython -m uvicorn sena.api.app:app --reloadCurrent supported API surface is /v1/*.
Useful endpoints include:
GET /v1/healthGET /v1/readyPOST /v1/evaluatePOST /v1/integrations/jira/webhookPOST /v1/integrations/servicenow/webhookPOST /v1/simulationPOST /v1/replay/driftPOST /v1/bundle/diffGET /v1/audit/verifyGET /metrics
SENA is not:
- a formal verification system;
- a general-purpose “safe AI” platform;
- a finished enterprise suite;
- a replacement for Jira or ServiceNow;
- a production-ready multi-tenant control plane.
It is an alpha governance engine focused on deterministic, inspectable approval decisions.
MIT — see LICENSE.