Skip to content

Repository files navigation

DecisionGATE

Check a plan through five gates before you act.

Author: Aziel Eliab Date: July 2026 License: Apache-2.0 DOI: 10.5281/zenodo.21435730

Three steps

  1. Install: python -m venv .venv && source .venv/bin/activate && pip install -e .
  2. Start the local screen: decisiongate ui
  3. Open http://127.0.0.1:8791/ and run a check.

Self-check: decisiongate doctor (same as decisiongate verify).

Freedom without clarity is chaos. Clarity without force is wisdom.

Forks are welcome and always allowed.

One-click install

curl -fsSL https://decisiongate-download-tracker.vibelock.workers.dev/install.sh | bash

The script curls the counted tarball from this project's Worker (/download, User-Agent Mozilla/5.0), extracts, makes a venv, and pip install -e .. Then run decisiongate ui.

Or tap Download / One-click install on the Worker homepage: https://decisiongate-download-tracker.vibelock.workers.dev/

Counted download (Cloudflare Worker)

This is the counted download. GitHub releases exist as a mirror. The Worker serves the gzip itself (HTTP 200, no 302 to GitHub).

Isolated counter: Worker decisiongate-download-tracker, KV DECISIONGATE_DOWNLOADS. /v1 does not increment downloads. GET /count returns {project, views, downloads, total}.

Quick start (from a clone)

python -m venv .venv && source .venv/bin/activate && pip install -e ".[dev]"
decisiongate ui

Open http://127.0.0.1:8791 (loopback only). No CDN, no telemetry.

CLI

decisiongate version
decisiongate check --statement "..." --evidence "..." --impact-pos "..." --impact-neg "..." --values "..." --accountable "Name"
decisiongate wrap --statement "..." --evidence "..." --impact-pos "..." --impact-neg "..." --values "..." --accountable "Name" -- -- CMD
decisiongate ui
decisiongate doctor
decisiongate verify
decisiongate import FILE.json
decisiongate export FILE.json

decisiongate with no arguments prints a short welcome and the next commands. check --json prints lineage, final_state, and optional blocked_at. wrap runs CMD only if all five gates PASS (no shell). Import and export both write and read JSON files. Add --json when a program should read the record. Doctor and verify speak in plain words.

Library

from decisiongate import DecisionGATE, Proposal

report = DecisionGATE().run(Proposal(
    statement="Release DecisionGATE 0.1.0 as a standalone Python package with Apache-2.0 licensing on GitHub this month.",
    evidence=["Whitepaper dated July 2026 names five sequential gates."],
    impacts_positive=["Authors get a named scrutiny path before acting."],
    impacts_negative=["Vague drafts take longer because they must be rewritten."],
    values=["Clarity without force"],
    accountable_person="Aziel Eliab",
))
print(report.final_state)
for gate in report.lineage:
    print(gate.name, gate.state, gate.feedback)

UI

decisiongate ui prints Open http://127.0.0.1:8791/ and serves this computer only.

The first screen has one primary action: Run check. Import file, Export file, Verify, extra fields, gate overrides, and the JSON view sit under Advanced. Light and dark follow the system. Keyboard focus uses a gold ring. Self-contained CSS, no CDN.

Tests

pip install -e ".[dev]"
python -m pytest -q

Offline. No network. Stdlib runtime. pytest is the dev extra.

Heuristics (v0.1)

Documented in decisiongate/gates.py. Kept small and tested. Not ML.

  • Definition fails if the statement is empty (BLOCK), shorter than 12 words (REVISE), or contains only the hedges maybe, somehow, stuff, things without a verb+object (REVISE).
  • Evidence fails if the evidence list is empty (REVISE).
  • Impact fails if either the positive or the negative list is empty (REVISE).
  • Integrity fails if values are empty (REVISE) or the statement clearly contradicts a provided constraint via a simple substring/negation check (BLOCK).
  • Responsibility fails if accountable_person is blank (BLOCK).

Notes

THIS IS: a local five-step filter (Definition, Evidence, Impact, Integrity, Responsibility). Each step is PASS, REVISE, or BLOCK. The first one that does not pass stops the chain. PASS means the plan was clear enough to inspect.

THIS IS NOT: a predictor, a court, a truth score, advice, or a remote command runner. Hosted wrap is not offered.

This tree is the standalone DecisionGATE package.

Worker

Isolated download counter. Account ac575a9b822bea2bed97d0ab73aed238. See workers/download-tracker/README.md. /download is HTTP 200 gzip. No 302 to GitHub.

Use with AI assistants

Works with ChatGPT (GPT Actions / OpenAI), Grok (xAI), Venice, Claude (Anthropic), Cursor (MCP), Glama (MCP), Perplexity, Microsoft Copilot / Bing, Google Gemini / Vertex, Mistral, Meta AI, Apple Intelligence surfaces, Amazon Q tooling, DuckAssist, You.com, Cohere, and other MCP/OpenAPI-capable assistants.

Live HTTPS runtime on the existing download-tracker Worker. GET /download, live count, and KV isolation are unchanged. /v1 calls do not increment DOWNLOADS. Hosted API does not include wrap (no remote command execution).

OpenAPI (import as a GPT Action, custom HTTP tool, xAI custom tool, or any other OpenAPI-capable assistant):

https://decisiongate-download-tracker.vibelock.workers.dev/openapi.json

Setup notes: https://decisiongate-download-tracker.vibelock.workers.dev/ai

MCP catalog (ships separately): https://aziel-runtime.vibelock.workers.dev/mcp. Suite mesh /v1/mesh/* PROXY via AZIEL_RUNTIME (default OFF; QNM-BUILD-1.0 live|locked|isolated; QNS-CD-1.0 hub cite / Worker mesh cross-map only — photon QNS1 packet transfer; local qnsd in qnm-node; runtime cites + catalog field in aziel-runtime; AZInterface pair custody; no Node Gate; no public qnsd proxy; not a Softwares-tab product). Catalog MCP mesh_* + FragGate slug=mesh.

curl -sS -A 'Mozilla/5.0' -X POST https://decisiongate-download-tracker.vibelock.workers.dev/v1/check \
  -H "content-type: application/json" \
  -d '{
    "statement": "Release DecisionGATE 0.1.0 as a standalone Python package with Apache-2.0 licensing on GitHub this month.",
    "evidence": ["Whitepaper dated July 2026 names five sequential gates."],
    "impact_pos": ["Authors get a named scrutiny path before acting."],
    "impact_neg": ["Vague drafts take longer because they must be rewritten."],
    "values": ["Clarity without force"],
    "accountable": "Aziel Eliab"
  }'

iPhone & Android

A local-first Flutter client lives in mobile/. Five-gate form, sequential PASS / REVISE / BLOCK, motto on screen.

Cite this

Aziel Eliab. DecisionGATE. https://github.com/AzielEliab/decisiongate. https://decisiongate-download-tracker.vibelock.workers.dev. https://doi.org/10.5281/zenodo.21435730.

License

Apache-2.0. See LICENSE. Spec: docs/whitepaper.md. How to contribute: CONTRIBUTING.md.

Forks are welcome and always allowed.

About

DecisionGATE: five sequential ethical filters before action. PASS, REVISE, or BLOCK. Forks welcome. Apache-2.0.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages