Adopt-and-thin SDLC governance framework
Project description
Emkeel
Adopt-and-thin SDLC governance for AI-assisted teams. 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, never a
self-attested flag — enforcement lives server-side (CI + branch protection), out of the
agent's reach.
Install
Emkeel is a zero-dependency Python CLI (needs Python 3.11+). Recommended installer:
pipx. Pick your platform:
| Platform | Install |
|---|---|
| Windows | py -m pip install --user pipx → py -m pipx ensurepath → pipx install emkeel |
| macOS | brew install pipx → pipx install emkeel |
| Linux (Debian/Ubuntu) | sudo apt install pipx → pipx install emkeel |
Locked-down server (no sudo, no python3-venv) |
pip install --user --break-system-packages emkeel |
The locked-down pip --user path is safe: emkeel has no runtime dependencies, so nothing
can conflict in your user site. (Plain pip install emkeel is blocked on PEP 668 Linux/macOS
— that's why the table uses pipx, or --user --break-system-packages.)
Upgrade: pipx upgrade emkeel · Check version: emkeel version
Set up your repo
-
Open your project in your editor — an existing repo, or a new empty folder.
-
Run the guided setup:
emkeel onboardPaste its output to your AI coding agent (Claude Code, Cursor, …) — it scaffolds and connects the repo in your language, handing you the exact links for the steps only you can do (create secrets, turn on branch protection). Or follow the printed steps yourself.
Manual (no AI):
emkeel init . --github-repo OWNER/REPO --jira-url https://you.atlassian.net --jira-project KEY
Non-clobbering (add --dry-run to preview); prints the exact connect links. Full guide: docs/install.md.
Managing Emkeel
| Action | Command |
|---|---|
| Upgrade | pipx upgrade emkeel |
| Check version / updates | emkeel version |
| Remove from a repo | emkeel uninstall (preview; add --yes to apply — keeps emkeel-governance/) |
| Remove the tool | pipx uninstall emkeel |
Use one install method — don't mix pipx with
pip --user/venv; that creates shadowing, conflicting installs. Updates are safe: your repo's CI pinsemkeel~=0.MINOR.0, so it auto-takes patches and minors; a breaking major (e.g.0.2.0) is opt-in (you bump the pin).
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.
- AI review-assist — a per-criterion verdict against the spec before you merge.
- Auto-close — merging transitions the linked Jira ticket to Done.
- Clean separation — governance artifacts live in one
emkeel-governance/folder, never shipped.
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.11.tar.gz.
File metadata
- Download URL: emkeel-0.1.11.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
346dda38d315d0d530de3782357d1a3c826ba0436c1a1a2a83f45c1bf3fb7351
|
|
| MD5 |
98bc0f725fe63a68c988ec97f60ccb4e
|
|
| BLAKE2b-256 |
096a8a0f10c5c394935ac3b3475479413cf80939bac0b5e614e8dabc3feafb20
|
Provenance
The following attestation bundles were made for emkeel-0.1.11.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.11.tar.gz -
Subject digest:
346dda38d315d0d530de3782357d1a3c826ba0436c1a1a2a83f45c1bf3fb7351 - Sigstore transparency entry: 1751395570
- Sigstore integration time:
-
Permalink:
emillionnetworking-ltd-labs/emkeel@6a77056747835876fd68bd2618036d8cac5468b9 -
Branch / Tag:
refs/tags/v0.1.11 - Owner: https://github.com/emillionnetworking-ltd-labs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6a77056747835876fd68bd2618036d8cac5468b9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file emkeel-0.1.11-py3-none-any.whl.
File metadata
- Download URL: emkeel-0.1.11-py3-none-any.whl
- Upload date:
- Size: 22.3 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 |
ac12f0bd0e99d1dc3e3716b138c2cf32ae7393bf8d7e831186f46e9efc5ed9ae
|
|
| MD5 |
60a91e6f3e6cbc2071a644bf1d90cbe3
|
|
| BLAKE2b-256 |
c7812726480ba7fd910b482f98ea4941df4d2133b58bc27c7f94f2e3e4d69982
|
Provenance
The following attestation bundles were made for emkeel-0.1.11-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.11-py3-none-any.whl -
Subject digest:
ac12f0bd0e99d1dc3e3716b138c2cf32ae7393bf8d7e831186f46e9efc5ed9ae - Sigstore transparency entry: 1751395700
- Sigstore integration time:
-
Permalink:
emillionnetworking-ltd-labs/emkeel@6a77056747835876fd68bd2618036d8cac5468b9 -
Branch / Tag:
refs/tags/v0.1.11 - Owner: https://github.com/emillionnetworking-ltd-labs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6a77056747835876fd68bd2618036d8cac5468b9 -
Trigger Event:
release
-
Statement type: