by mitkox
Engineering Software Factory - open source, self-hosted, local AI first
# Add to your Claude Code skills
git clone https://github.com/mitkox/esfSee how esf compares with popular alternatives.
esf is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by mitkox. Engineering Software Factory - open source, self-hosted, local AI first. It has 160 GitHub stars.
esf's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/mitkox/esf" and add it to your Claude Code skills directory (see the Installation section above).
esf is primarily written in Go. It is open-source under mitkox on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh esf against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
A self-hosted software factory that runs coding agents in isolated CubeSandbox microVMs, verifies their changes, and preserves the patch and execution evidence. Temporal coordinates the workflow and sandbox cleanup.
Task → Temporal → CubeSandbox → coding agent → verification → patch + evidence
ESF is an independent fork of Machinist by Owain Lewis. It retains the Machinist CLI, local control plane, and web UI, and adds factory orchestration. See upstream attribution.
This is actively developed software. Review the validated behavior and operational requirements before deployment. ESF produces changes for review; it does not decide what ships. The v0.5.0 archives are a binary preview. VM, Kubernetes, container-image, security, restore, and soak qualifications are recorded separately in the release inventory and are not complete.
The default configuration runs ESF without QMS. Keep [quality] and scope
quality_policies bindings absent to use the normal agent, verification,
patch, and cleanup workflow. No quality database, approval socket, repository
registry, or enterprise QMS service is required in this mode. Ordinary runs do
not receive quality approval or readiness attestations.
| Mode | Configuration | Dependencies |
|---|---|---|
| Standard factory (default) | factory.example.toml |
CubeSandbox, Temporal, selected agent harness |
| Local QMS | Add quality policies, registered repositories and UID role bindings | Standard dependencies plus a Linux worker and durable local storage; SQLite is embedded |
| Enterprise integration | Add explicit provider controls to local QMS | Operator-supplied adapter/import process; vendor adapters are future work |
The local QMS implementation is included under the same MIT license and works without an external QMS product. It attests readiness of an exact patch; it does not authorize releases or certify regulatory compliance. See quality operations and the R2/R3 examples to opt in.
Requirements for v0.5.0 development: Go 1.27.1, Node.js 24.21.0, Git,
an existing CubeSandbox deployment with a READY template, and Temporal.
Python tools use the frozen uv.lock; they are optional. Docker Compose can
run the included local Temporal stack.
git clone https://github.com/mitkox/esf.git
cd esf
mkdir -p bin
make build
./bin/factory init
Edit factory.toml with your Cube API endpoint, template, proxy address, agent
harness and verification profile. Configure narrowly scoped credentials locally.
Neither factory.toml nor .env belongs in Git.
The example uses placeholder production endpoints and paths. Set these to
your actual TLS-protected Cube and Temporal services, or loopback development
services, before running factory config validate.
The v0.5.0 release installs the factory archive by default. The console and
managed worker use the separate Machinist archive or the optional combined
archive. Install pinned agent binaries separately with
scripts/install-agents.sh; factory agents verify checks configured digests.
For local Temporal:
cp deployments/dev/temporal/.env.example deployments/dev/temporal/.env
# Set a random database password in that .env file before starting.
make temporal-up
./bin/factory config validate
./bin/factory doctor
./bin/factory worker
In another terminal, submit a task for an allowed repository:
./bin/factory run \
--repo https://github.com/your-org/your-repo \
--rev FULL_COMMIT_SHA \
--task "Describe the change and acceptance criteria" \
--agent opencode2 \
--verification default
The default profile expects repository-owned build.sh and test.sh scripts.
Configure gates appropriate to your project. Inspect results with
factory status RUN_ID and factory logs RUN_ID:
./bin/factory describe run RUN_ID # manifest + conditions + inventory + audit
./bin/factory status RUN_ID --watch # stream condition transitions
./bin/factory get changes # durable work items and their spend
With [review] enabled = true, a run pauses after the gates report:
./bin/factory review RUN_ID --approve
./bin/factory review RUN_ID --reject --note "use the formal greeting"
./bin/factory run --change CHANGE_ID --parent-run RUN_ID ... # rework activation
A run can also be submitted from a reviewed manifest:
./bin/factory apply -f run.toml
Build the inherited CLI separately with
go build -trimpath -o bin/machinist ./cmd/machinist, then run
./bin/machinist init.
Machinist now supports staged workflows, review gates, shared artifacts, and
final-message summaries. Its approvals do not replace ESF's optional QMS
approvals. See workflow guidance.
| Guide | Purpose |
|---|---|
| Factory overview | Workflow and components |
| Operator guide | Harnesses, verification and troubleshooting |
| Quality operations | Optional local QMS, migration, approvals and CAPA |
| Quality gates and providers | Policy controls, qualifications, evidence and provider contracts |
| R2/R3 quality examples | Complete controlled-run fixtures |
| DSPy/Jev intake | Optional typed task advice and secure TypeSafe credential setup |
| DSPy brief lab | Offline, evidence-scored implementation brief experiments |
| Production deployment | Service setup, TLS, encryption and recovery |
| Readiness review | Validation and operational requirements |
| Machinist documentation | Inherited CLI and control plane |
| Architecture decisions | Design rationale |
make lint
make test
make frontend
go test -race ./...
Integration tests require configured services; see the operator guide. Read CONTRIBUTING.md and the Code of Conduct. Report vulnerabilities privately through SECURITY.md.
MIT. Original Machinist copyright and attribution are preserved.