Adopt-and-thin SDLC governance framework
Project description
Emkeel
SDLC governance for AI-assisted teams, built on GitHub + Jira. Emkeel turns a repo into a
governed project: every change flows ticket → branch → PR → deterministic CI gates →
human-approved merge → the ticket closes itself. "done" is a computed fact (a check
passes), never a self-attested flag — enforcement lives server-side (GitHub Actions + branch
protection), out of the agent's reach.
Built for GitHub + Jira. Emkeel uses GitHub (Actions CI, branch protection, the
ghCLI) and Jira (tickets + transitions). If your team isn't on both, Emkeel isn't for you (yet).
1. Install Emkeel (per platform)
Zero-dependency Python CLI (needs Python 3.11+). Only this step differs by OS — everything after is identical.
| Platform | Command |
|---|---|
| Windows | py -m pip install --user pipx → py -m pipx ensurepath → pipx install emkeel |
| macOS | brew install pipx → pipx install emkeel |
| Linux (with admin/sudo) | sudo apt install pipx → pipx install emkeel |
| Linux/server, no sudo | pip install --user --break-system-packages emkeel (safe — zero deps) |
Confirm with emkeel version. (No pipx and can't install it? the last row works anywhere.)
2. Set up your repo — step by step
The wizard is the same on every OS and deterministic (no AI).
- Open a terminal in your project folder (an existing repo), or in a new empty folder (a new project).
- Run the wizard:
emkeel setup # one-shot, without installing first: pipx run emkeel setup
- Answer its questions (in your language): existing repo or new project, then confirm your
GitHub repo and Jira (project + URL). Press
cto cancel any menu. - It creates the branch + files + commit and prints your remaining steps.
- Do the connect steps it printed — one-time, only you can:
- Create a Jira API token → https://id.atlassian.net/manage-profile/security/api-tokens
- Add it as a GitHub secret (
JIRA_TOKEN,JIRA_BASE_URL,JIRA_EMAIL) in the repo's Settings → Secrets (🔒 never paste a token into a chat or commit it) - Turn on branch protection (require the
gatescheck + a PR) in Settings → Branches
- Check anytime:
emkeel doctortells you what's still pending. Undo:emkeel eject.
That's it — your repo is governed by Emkeel.
Skipped a connect step? Emkeel tells you:
emkeel doctorlists the gaps, and the CI itself warns (e.g. a merge without the secrets logs "auto-close is OFF — set secrets").
3. Managing Emkeel
| You want to… | Command |
|---|---|
| See what's set up / pending | emkeel doctor |
| Check version / updates | emkeel version |
| Upgrade the tool | pipx upgrade emkeel |
| Un-govern a repo | emkeel eject (dry-run; add --yes to apply; keeps emkeel-governance/ unless --purge) |
| Re-govern a repo | emkeel setup again |
| Uninstall the tool | pipx uninstall emkeel |
Use one install method (don't mix pipx with
pip --user). Updates are safe: your repo's CI pinsemkeel~=0.MINOR.0— auto patches/minors; a breaking major is opt-in.
What you get
- Deterministic CI gates (server-side, can't be skipped): every change links a ticket; features carry a spec with acceptance criteria; the full test suite runs on every PR.
- Auto-close — merging a PR transitions the linked Jira ticket to Done.
- AI review-assist — a per-criterion verdict against the spec before you merge.
- Clean separation — governance artifacts live in one
emkeel-governance/folder, never shipped.
AI-assisted onboarding (emkeel onboard) exists; a richer AI experience is in progress.
See docs/lifecycle.md for the model.
Licensed under Apache-2.0 — © 2026 EMillion Networking LTD (see LICENSE / NOTICE).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file emkeel-0.1.31.tar.gz.
File metadata
- Download URL: emkeel-0.1.31.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a441469e652f291f67c7383b972ab1d467b67100c33226c7901991d3d716f6b
|
|
| MD5 |
731f080e3ec4b89c3a6865d540c11e62
|
|
| BLAKE2b-256 |
a4bc3da50b1466f92fd8a47a2618c4cde1d11f7de492a3c47859536c939af3c3
|
Provenance
The following attestation bundles were made for emkeel-0.1.31.tar.gz:
Publisher:
release.yml on emillionnetworking-ltd-labs/emkeel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
emkeel-0.1.31.tar.gz -
Subject digest:
9a441469e652f291f67c7383b972ab1d467b67100c33226c7901991d3d716f6b - Sigstore transparency entry: 1756363050
- Sigstore integration time:
-
Permalink:
emillionnetworking-ltd-labs/emkeel@1d9ad447e522509295f41a3e3d3cf3d9f20015b4 -
Branch / Tag:
refs/tags/v0.1.31 - Owner: https://github.com/emillionnetworking-ltd-labs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d9ad447e522509295f41a3e3d3cf3d9f20015b4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file emkeel-0.1.31-py3-none-any.whl.
File metadata
- Download URL: emkeel-0.1.31-py3-none-any.whl
- Upload date:
- Size: 35.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86702c2e18ee4f48843cab398ae34a9ca11b74110d2016ea80f69ab6e2af84d5
|
|
| MD5 |
21d1203b2b571b80af39ed76c201fbbb
|
|
| BLAKE2b-256 |
8ec909696e2b40a558dab53687c1046e3e5ceb0c02423d6b7bf8316ec1c627d0
|
Provenance
The following attestation bundles were made for emkeel-0.1.31-py3-none-any.whl:
Publisher:
release.yml on emillionnetworking-ltd-labs/emkeel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
emkeel-0.1.31-py3-none-any.whl -
Subject digest:
86702c2e18ee4f48843cab398ae34a9ca11b74110d2016ea80f69ab6e2af84d5 - Sigstore transparency entry: 1756363058
- Sigstore integration time:
-
Permalink:
emillionnetworking-ltd-labs/emkeel@1d9ad447e522509295f41a3e3d3cf3d9f20015b4 -
Branch / Tag:
refs/tags/v0.1.31 - Owner: https://github.com/emillionnetworking-ltd-labs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1d9ad447e522509295f41a3e3d3cf3d9f20015b4 -
Trigger Event:
release
-
Statement type: