Skip to main content

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. If your team isn't on both, Emkeel isn't for you (yet).

Prerequisites (set these up first)

Need Where Notes
GitHub account + a repo new repo → https://github.com/new or use one you already have
GitHub CLI gh, authenticated https://cli.github.com → then run gh auth login also sets up your git push/pull auth (SSH or HTTPS) — no separate SSH setup needed
Jira Cloud account https://www.atlassian.com/software/jira your tickets live here
Jira API token https://id.atlassian.net/manage-profile/security/api-tokens you paste it into a hidden prompt; Emkeel verifies it before saving
Python 3.11+ https://www.python.org/downloads Emkeel has zero other deps

1. Install Emkeel (per platform)

Only this step differs by OS.

Platform Command
Windows py -m pip install --user pipxpy -m pipx ensurepathpipx install emkeel
macOS brew install pipxpipx install emkeel
Linux (admin/sudo) sudo apt install pipxpipx install emkeel
Linux/server, no sudo pip install --user --break-system-packages emkeel (safe — zero deps)

Confirm: emkeel version.

2. Set up your repo

First, open a terminal:

  • VS Code / Cursor: menu Terminal → New Terminal (or Ctrl+`).
  • Or your OS terminal: Linux Ctrl+Alt+T · macOS Terminal.app · Windows PowerShell.

The wizard then guides you in your language (Spanish/English) and confirms before each step (c cancels). Pick your path:

A · You already have a repo

cd my-project
emkeel setup
  1. Choose language (Español / English).
  2. Choose "Existing repo".
  3. Confirm your GitHub repo + Jira (auto-detected — Enter to accept).
  4. Enter a Jira key for the branch → it creates chore/<KEY>-adopt-emkeel + Emkeel's files + commit.
  5. "Connect now?" → yes: branch protection (require the gates check + PRs) + Jira secrets (email + token verified before saving, hidden).
  6. "Finish the adopt?" → yes: push → open the PR → auto-merge when the gates pass → sync your local.

✅ Your repo is governed (via a merged PR).

B · New project (from scratch)

mkdir my-app && cd my-app
emkeel setup
  1. Choose language.
  2. Choose "New project".
  3. Type your GitHub repo (owner/repo) + Jira → it runs git init + Emkeel's files + commit.
  4. "Connect now?" → yes: it creates the GitHub repo and pushes it (gh repo create) + branch protection + Jira secrets (verified).

✅ Your new repo is live on GitHub, governed.

Check what's set up / still pending anytime: emkeel doctor. Scripted instead? emkeel init (non-interactive) · emkeel connect / emkeel sync standalone.

3. Remove Emkeel

Order matters: un-govern the repo first, then uninstall the tool. Open a terminal (see §2).

Step 1 — Un-govern a repo (emkeel eject)

cd my-project
emkeel eject
  1. Choose language.
  2. Answer 3 yes/no questions: remove the wiring? (the basics) · also emkeel-governance/? · also the GitHub side? (branch protection + secrets + push the removal).
  3. Review the summaryconfirm.

(Scripting/CI? emkeel eject --help shows the non-interactive flags.)

Step 2 — Uninstall the tool

pipx uninstall emkeel

Uninstalling the tool ≠ un-governing your repos. If you only pipx uninstall emkeel, your repos' governance keeps working (their CI installs Emkeel from PyPI) — you just can't run the local emkeel commands to change it. To remove everything: emkeel eject in each repo first, then pipx uninstall emkeel.

4. All commands (by use)

Set up / adopt

Command What it does
emkeel setup interactive wizard (recommended — does everything)
emkeel connect just the GitHub side (branch protection + secrets), standalone
emkeel init . scaffold non-interactively (for scripts/CI)
emkeel onboard print the AI-assisted onboarding playbook

Check / maintain

Command What it does
emkeel doctor what's set up / what's pending (with fix links)
emkeel sync after a merge: checkout default + pull + drop the merged branch
emkeel review <KEY> per-criterion review template for a ticket
emkeel version installed version (+ flags a newer one on PyPI)

Remove

Command What it does
emkeel eject (alias emkeel uninstall) un-govern the repo — interactive, asks what to remove (--help for CI flags)
pipx uninstall emkeel remove the tool from your machine

Tool

Command What it does
pipx upgrade emkeel update Emkeel

Updates are safe: your repo's CI pins emkeel~=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 moves 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.

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

emkeel-0.1.39.tar.gz (36.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

emkeel-0.1.39-py3-none-any.whl (43.8 kB view details)

Uploaded Python 3

File details

Details for the file emkeel-0.1.39.tar.gz.

File metadata

  • Download URL: emkeel-0.1.39.tar.gz
  • Upload date:
  • Size: 36.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for emkeel-0.1.39.tar.gz
Algorithm Hash digest
SHA256 02a538cf76b85a15551658913893f7ad85e9004397a4e97156b9d8566d116e3e
MD5 15446b3bec816c060409222dad3a21e0
BLAKE2b-256 fe863f734de9d24b0159878eb2c20a2f417c0cc24624def5c8e6c8cdb40bfa69

See more details on using hashes here.

Provenance

The following attestation bundles were made for emkeel-0.1.39.tar.gz:

Publisher: release.yml on emillionnetworking-ltd-labs/emkeel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file emkeel-0.1.39-py3-none-any.whl.

File metadata

  • Download URL: emkeel-0.1.39-py3-none-any.whl
  • Upload date:
  • Size: 43.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for emkeel-0.1.39-py3-none-any.whl
Algorithm Hash digest
SHA256 f8a7b936051843f221adeec508e46a69efe72b5c47ffea2c0f7873007d3e7f66
MD5 95459b4acf0f18dcf627cb0b312dd363
BLAKE2b-256 c6fff3552ccb206e6dd9b5631ab3228fa6ffc0c947a2b070295675025782e51d

See more details on using hashes here.

Provenance

The following attestation bundles were made for emkeel-0.1.39-py3-none-any.whl:

Publisher: release.yml on emillionnetworking-ltd-labs/emkeel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page