{"id":51244655,"url":"https://github.com/its-not-rocket-science/sena","last_synced_at":"2026-06-29T03:03:17.164Z","repository":{"id":348332904,"uuid":"1189481504","full_name":"its-not-rocket-science/sena","owner":"its-not-rocket-science","description":"Deterministic policy engine for Jira and ServiceNow approvals with replayable audit evidence.","archived":false,"fork":false,"pushed_at":"2026-06-12T00:25:42.000Z","size":1731,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-12T02:11:17.196Z","etag":null,"topics":["audit","jira","policy-engine","servicenow","workflow-automation"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/its-not-rocket-science.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY_CHECKLIST.md","support":"docs/SUPPORTED_PATH_RC_READINESS_2026-04-12.md","governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-23T11:14:23.000Z","updated_at":"2026-06-12T00:25:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/its-not-rocket-science/sena","commit_stats":null,"previous_names":["its-not-rocket-science/sena"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/its-not-rocket-science/sena","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/its-not-rocket-science%2Fsena","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/its-not-rocket-science%2Fsena/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/its-not-rocket-science%2Fsena/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/its-not-rocket-science%2Fsena/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/its-not-rocket-science","download_url":"https://codeload.github.com/its-not-rocket-science/sena/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/its-not-rocket-science%2Fsena/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34911135,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audit","jira","policy-engine","servicenow","workflow-automation"],"created_at":"2026-06-29T03:03:16.253Z","updated_at":"2026-06-29T03:03:17.160Z","avatar_url":"https://github.com/its-not-rocket-science.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SENA\n\n\u003e Deterministic policy engine for Jira and ServiceNow approvals with replayable audit evidence.  \n\u003e Status: alpha product prototype.\n\nSENA is a policy-as-code decisioning engine for approval workflows where reproducibility, governance, and auditability matter more than opaque automation.\n\nGiven 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.\n\n## Why SENA?\n\nMost workflow and approval systems answer:\n\n\u003e What decision was made?\n\nSENA is designed to answer:\n\n\u003e Why was this decision made, can we prove it, and can we reproduce it later?\n\nKey capabilities:\n\n- deterministic policy evaluation;\n- policy bundle lifecycle management;\n- replayable decision evidence;\n- hash-linked audit chains;\n- Jira and ServiceNow integration;\n- promotion workflows with governance controls;\n- decision simulation and validation;\n- policy-as-code authoring;\n- API-first architecture.\n\n## Current scope\n\nThe supported path today is:\n\n- Jira approval workflows;\n- ServiceNow approval workflows;\n- deterministic policy evaluation;\n- audit evidence generation;\n- policy bundle lifecycle management;\n- replay and verification APIs.\n\nExperimental functionality exists in the repository, but is not considered part of the supported path unless explicitly documented otherwise.\n\nSee:\n\n- [`docs/PROJECT_STATUS.md`](docs/PROJECT_STATUS.md)\n- [`docs/INDEX.md`](docs/INDEX.md)\n- [`docs/READINESS.md`](docs/READINESS.md)\n- [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)\n\n## Core concepts\n\n### Policy bundles\n\nPolicies are grouped into versioned bundles.\n\nA bundle contains:\n\n- rules;\n- invariants;\n- metadata;\n- compatibility information;\n- lifecycle state.\n\nExample lifecycle:\n\n```text\ndraft\n  ↓\ncandidate\n  ↓\napproved\n  ↓\nactive\n  ↓\ndeprecated\n```\n\nBundles can be promoted, validated, simulated, rolled back, and audited.\n\n### Deterministic evaluation\n\nInputs are normalised into canonical action proposals.\n\nSENA then evaluates:\n\n- hard invariants;\n- explicit policy rules;\n- escalation conditions;\n- supporting metadata;\n- evidence requirements.\n\nThe output is a structured decision such as:\n\n```text\nAPPROVED\nBLOCKED\nESCALATE_FOR_HUMAN_REVIEW\n```\n\n## Install\n\n```bash\npip install -e .\npip install -e .[api,dev]\n```\n\n## Run tests\n\n```bash\npytest\n```\n\nCoverage report target is configured at 80% for the `sena` package.\n\n## CLI quick start\n\n```bash\npython -m sena.cli.main   src/sena/examples/scenarios/demo_vendor_payment_block_unverified.json   --json\n```\n\n## Policy authoring workflow\n\n```bash\nPYTHONPATH=src python -m sena.cli.main policy init ./my-policy-bundle\nPYTHONPATH=src python -m sena.cli.main policy validate --policy-dir ./my-policy-bundle\nPYTHONPATH=src python -m sena.cli.main policy test   --policy-dir ./my-policy-bundle   --test-file ./my-policy-bundle/tests/policy_tests.json\n```\n\n## API quick start\n\n```bash\npython -m uvicorn sena.api.app:app --reload\n```\n\nCurrent supported API surface is `/v1/*`.\n\nUseful endpoints include:\n\n- `GET /v1/health`\n- `GET /v1/ready`\n- `POST /v1/evaluate`\n- `POST /v1/integrations/jira/webhook`\n- `POST /v1/integrations/servicenow/webhook`\n- `POST /v1/simulation`\n- `POST /v1/replay/drift`\n- `POST /v1/bundle/diff`\n- `GET /v1/audit/verify`\n- `GET /metrics`\n\n## What SENA is not\n\nSENA is not:\n\n- a formal verification system;\n- a general-purpose “safe AI” platform;\n- a finished enterprise suite;\n- a replacement for Jira or ServiceNow;\n- a production-ready multi-tenant control plane.\n\nIt is an alpha governance engine focused on deterministic, inspectable approval decisions.\n\n## Licence\n\nMIT — see `LICENSE`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fits-not-rocket-science%2Fsena","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fits-not-rocket-science%2Fsena","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fits-not-rocket-science%2Fsena/lists"}