Turn messy repo intent into scoped AI Work Orders
Project description
Sembl
Turn messy repo intent into scoped AI Work Orders.
Sembl is not an AI coding agent. It is the layer that runs before one:
repo + task -> Work Order -> agent executes with tighter scope
A Work Order is an execution contract. It tells an agent:
- what the goal is, and what it is not
- which files it can touch
- which files it should inspect but not modify
- what must be true when it finishes
- how to prove it succeeded
- when to stop and ask a human
Website: https://sembl.vercel.app
Current Status
Sembl is early but usable for testing. The current CLI supports:
- repo probing for language/framework/branch/dirty state
- optional Graphify context
- optional code-review-graph context
- graph-required mode with
--require-graph-context - OpenAI, Anthropic, Gemini, and NVIDIA NIM providers
- work-order output as Markdown, JSON, executor prompt, and validation plan
The best current test path is graph-first:
uv pip install "sembl[graph-pipeline] @ git+https://github.com/speedvibecode/sembl.git"
sembl generate --repo C:\path\to\repo --task "fix the failing login redirect test" --provider nvidia --require-graph-context
Install From GitHub
For tester installs without cloning the repo:
uv pip install "sembl[graph-pipeline] @ git+https://github.com/speedvibecode/sembl.git"
For a CLI tool install without graph extras:
uv tool install git+https://github.com/speedvibecode/sembl.git
The future public package path is:
uv tool install sembl
pip install sembl
That requires publishing the package to PyPI first.
Install From Source
git clone https://github.com/speedvibecode/sembl
cd sembl
uv pip install -e ".[graph-pipeline]"
Plain pip also works:
pip install -e ".[graph-pipeline]"
Provider Keys
Set one provider key before generation:
$env:OPENAI_API_KEY="..."
$env:ANTHROPIC_API_KEY="..."
$env:GEMINI_API_KEY="..."
$env:NVIDIA_API_KEY="..."
Then choose the provider:
sembl generate --repo C:\path\to\repo --task "replace starter screen text" --provider nvidia
Optional Graph Context
Sembl can run without graph tools, but the strongest results come from Graphify plus code-review-graph.
graphify update C:\path\to\repo --no-cluster
code-review-graph build --repo C:\path\to\repo --data-dir C:\path\to\repo-specific-crg-data --skip-flows
$env:CRG_DATA_DIR="C:\path\to\repo-specific-crg-data"
sembl generate --repo C:\path\to\repo --task "fix the failing login redirect test" --provider nvidia --require-graph-context
Sembl guards against stale generic CRG_DATA_DIR values by deriving a repo-specific graph data directory when the env var does not look like it belongs to the target repo.
Usage
# Generate a Work Order for the current repo
sembl generate --task "add recurring expenses to this tracker" --provider nvidia
# Generate for an explicit repo
sembl generate --repo C:\path\to\repo --task "fix the login redirect bug" --provider nvidia
# Refuse direct-probe fallback
sembl generate --repo C:\path\to\repo --task "fix the login redirect bug" --provider nvidia --require-graph-context
# List Work Orders
sembl list
# Show latest Work Order
sembl show
# Show the executor prompt
sembl show --file executor-prompt
Output
.sembl/work-orders/wo-myproject-{timestamp}-{slug}/
work-order.md - read this
executor-prompt.md - paste into your agent
validation-plan.md - run this after
work-order.json - machine-readable
The 8 Locks
| Lock | Purpose |
|---|---|
| Intent | Goal, outcome, task type |
| Boundary | Non-goals, forbidden areas |
| Scope | Editable paths, read-only context |
| Context | Files to inspect, architecture notes |
| Success | Acceptance criteria, regressions |
| Proof | Validation commands, tests to add |
| Safety | Stop conditions, risk level |
| Executor | Agent-ready prompt, patch expectations |
Local Test
python -m unittest discover -s tests -v
python -m compileall -q sembl tests
Testing Notes
If you test Sembl on a real repo, the best feedback is:
- the exact command you ran
- whether graph context was available
- the generated
work-order.md - whether the executor agent could complete the task without scope confusion
- any hallucinated files, missing validation commands, or false stop conditions
Models write code. Sembl makes the work governable.
Project details
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 sembl-0.1.0.tar.gz.
File metadata
- Download URL: sembl-0.1.0.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fff38d8293396c6d71e785484bb0a882ec9d423bd79a9734784fef102d96a9d
|
|
| MD5 |
547df6195c5807c041c16c5d81ddb62c
|
|
| BLAKE2b-256 |
9b293a324c5c5cd7920784b23742ba94f1819160cb19ea57d5371b813f328a50
|
File details
Details for the file sembl-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sembl-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee9d8ed6b73ae228755088a1c059eebb90edf5477c172fb3965f233b7fabfde0
|
|
| MD5 |
4ce36dbe208d0095f220c7b2f7360d6a
|
|
| BLAKE2b-256 |
36caf83086602524958fe911df6143879f9ce8931bbacd96eaa30dbdd0827bd9
|