The OneDroid kit
The kit to build your
dark software factory.
In a dark software factory, AI agents do the work, mission in and verified software out, and evidence, not the agents' word, decides what ships. It takes four parts. They are in the order that gives you the most for the effort, and testing comes first: the difference between vibe coding and agentic engineering is good testing.
Tell your coding agent:
Read https://onedroid.ai/kit and set me up with the kit.
Stop and ask me wherever it needs my decision or my login.
For you
The four parts, and why you need each.
You don't need to know any of these names yet. Each part says what problem it solves, what it does, and what it costs.
Testing: OneDroid Argus
Why you need it. An agent reporting "done, all tests passing" is a claim, not a fact. An agent that tests its own work tests its own reading of the ticket, and a model that can see its checker learns to satisfy the checker.
What it does. Automated end-to-end testing for AI-written code. A separate tester, your QA engineer or an agent but never the builder, writes each check from the ticket and the acceptance criteria, before the build: what to trigger, where to look, what a healthy answer is. The checks run against the running system with nothing mocked. Your coding agent's credential can ask for a run and read the verdict, and cannot read a check or an expected value. The checks stay as regression checks for the next change.
What it costs. In one measured experiment, Claude Code built a feature for $1.01 to $1.97 a run, and the independent tester's session, which wrote the checks once for the whole feature, cost about $5.30 (the experiment, its figures and its limits). The runner is open source under MIT; the hosted control plane is open to sign up and evaluate. How OneDroid Argus works.
Eyes and hands: OneDroid Synapse
Why you need it. To do real work, an agent has to reach the tools you already use: your documents, your tickets, your calendar, your email. Wired one config file at a time, those connections are invisible to the people responsible for them.
What it does. A gateway between your agents and your accounts. You connect the services you choose (Google Workspace, Atlassian, Slack and others), and your agents connect once. Access exists only for accounts you connect, limited to the permissions you grant, and every tool call is authenticated, policy-checked and logged while the hub's activity logging is on (fail-open: a logging failure never blocks a call), to an audit log you own.
What it costs. Free on the hosted shape, whatever the size of your team. No credit card. What OneDroid Synapse does.
Memory and context: OneDroid Engram
Why you need it. A model session ends and takes everything with it. The next tool starts from nothing, so the same context gets re-pasted, re-explained and re-discovered, by every agent, every time.
What it does. Versioned, permissioned memory in a Postgres you control with your own database, or one OneDroid hosts, searched by vector, keyword and graph at once, and reachable by any MCP client behind any model. What one agent wrote, the next one can find. Every write is a commit: diff any two versions, or restore a previous one in one call.
What it costs. Included with a Synapse account, and it runs on its own too. Free on the hosted shape, whatever the size of your team. What OneDroid Engram does.
The method: the Dark Factory kits
Why you need it. Parts 1 to 3 are tools. The method is how your agents use them together: who does what, in which order, what has to be proven before work moves on, and what always stops for you.
What it does. Product owner, architect, test-first developer and QA, each a skill your agent runs in order. Acceptance criteria become a failing test list before any code is written. An adversary gate checks the evidence for each claim (test output, diffs, exit codes) without redoing the work, and work that fails the gate goes back. Hooks enforce what must not depend on the model choosing to comply: a rule in a prompt is a request, a hook is a control. An autonomy policy says what the agents decide alone, what they log, and what always stops for a human.
What it costs. Nothing. Open source under Apache-2.0, with no paid tier. It lives in a private GitHub repository you own. What the kits are.
Where it stops for you: your sign-ups and logins (OneDroid Argus, Synapse, Engram and GitHub), which kit, the name of your repo, and the tools you connect. No script signs in for you or grants access on your behalf.
For your agent
The steps, in the same order, each with its check.
Agent: do the parts in order. Every step ends with a check: run it, and do not move on until it passes. Stop and ask the human at the steps marked HUMAN, and whenever a runbook says to stop (a setup that is somebody else's, a tool that is missing). Never report a step as done without its check. Where a step links to a runbook, the runbook wins over this summary if the two ever disagree.
Part 1 · Testing: OneDroid Argus
Get an account and the CLI
HUMAN: create an account at argus-dev.onedroid.ai (e-mail, Google or Microsoft). It is the evaluation environment: for testing, with no promise that data is kept, so keep production data out of it. Then follow the OneDroid Argus quickstart from its step 1. Without access to a release, build the CLI from the open-source runner:
git clone https://github.com/OneDro1d/argus-runner
cd argus-runner
go build -o argus ./cmd/argus
./argus version
Check: argus version prints its version. It needs no token.
Keep the tester and the builder apart
The session that writes the checks is never the session that writes the code. The tester's credential writes, seals and reveals; the builder's can start a run and read the verdict, never a scenario or an expected value. Set the two up as Set up a tester and a builder says.
Check: the tester and the builder use different credentials, and the coding agent holds only the builder's.
Part 2 · Eyes and hands: OneDroid Synapse
Create a hub and connect the agent
HUMAN: sign in at synapse.onedroid.ai, create a hub, then Manage → API Tokens → Create token. The token is shown once. Then connect Claude Code with one command and open a new session, because tools load only when a session starts.
claude mcp add --transport http synapse \
https://synapse.onedroid.ai/agent/mcp \
--header "Authorization: Bearer <token>"
claude mcp list
Check: claude mcp list shows synapse … ✓ Connected.
Enabling a service on the hub and saving the human's login for it are two different
actions, and only the second lets the agent call anything: if the agent connects and
sees no tools, this is why. The full walk-through is
the quickstart, part 1.
Part 3 · Memory and context: OneDroid Engram
Write one thing, search it back
Through the Synapse hub, where the Engram connection is already on, or HUMAN: sign
in at engram.onedroid.ai and create a library
token for https://engram.onedroid.ai/mcp. Then write a note into a
namespace with engram_write and find it with
engram_search.
Check: the write returns an object id, and the search returns that object. The full walk-through is the quickstart, part 2.
Part 4 · The method: the Dark Factory kits
The runbook is START-HERE.md in the public repository. Execute it top to bottom; the steps below summarise it.
Check the tools
You need git, jq, bash,
python3, gh and claude, and a
gh login that can see the repository. HUMAN if gh is not
logged in: gh auth login.
for c in git jq bash python3 gh claude; do command -v "$c" >/dev/null && echo "ok $c" || echo "MISSING $c"; done
gh auth status
claude -p 'Reply with the single word: ok' --output-format text
Check: every tool prints ok, gh auth status shows an account that can see the kit, and the last command prints ok. A tool is missing: tell the human which, and stop.
Clone the method and list the kits
Seven kits today: method-core (the method itself), dev
(writing and shipping code), knowledge-worker (documents rather than
code), agent-ops, code-review,
distributed-systems, frontend.
git clone https://github.com/OneDro1d/dark-factory
cd dark-factory
bash starter-kit/instance/bootstrap.sh --kit list
Check: the list prints the kits, method-core among them. Pick one before the next step.
Make the human's own copy
HUMAN: choose the kit, a name for the setup and the GitHub owner. The bootstrap writes a new directory beside the checkout, pinned to today's commit, and the copy goes to a private repository.
bash starter-kit/instance/bootstrap.sh <name> --kit <kit>
cd ../<name>
git init -q
git add -A
git commit -q -m "my agent setup, from kits/<kit>"
gh repo create <owner>/<name> --private --source . --remote origin --push
Check: gh repo view <owner>/<name> --json visibility -q .visibility
prints PRIVATE. From here on, run from the new directory and follow its
START-HERE.md.
Add this machine and install
Every machine gets its own record under instances/, named as
START-HERE.md step 3 says. Then install from that record.
bash install.sh --lock=instances/<machine>/loom.lock.json
Check: read the exit code, not the last line. 0 means installed
and proven, 1 means a precondition failed and nothing was installed,
2 means the result does not match the record.
Connect the human's tools
HUMAN, one item at a time. The hub from step 03 is the one to record here: it gives the agent memory across sessions and connectors to the systems the human already uses. The method also runs without one. Then open a new session, because tools and hooks load only when a session starts.
Check: df-preflight --report shows no drift on a hub or connector the record declares (unknown means it could not look, which is neither a pass nor a failure).
Validate
A fresh session exercises every gate the kit installs and commits its report to the human's repo by itself.
bash boot-kit/scripts/validate.sh --kit-root "$PWD" --headless
Check: exit 0, a new VALIDATE-REPORT-*.md on the
repo's main, and its Broken section says nothing is broken. Show the
human that section word for word.
No skill system?
For ChatGPT, Gemini or a plain API model, paste DARK-FACTORY-PRIMING.md into the conversation. It inlines every stage skill and the adversary gate.
Only the skills?
Each skill is also served from this site:
the skills index lists them, and each
lives at /.well-known/skills/<name>/SKILL.md. You skip the
lockfile, the pins and the validation that way.
Something went wrong?
START-HERE.md ends with a table of the failures people actually hit. For hub and token errors, the troubleshooting page has the one probe that tells them apart.
Every link
Everything in one place.
1 · Testing
How OneDroid Argus works
The OneDroid Argus runner
(MIT)
Sign up to evaluate
The OneDroid Argus quickstart
The cost experiment
2 and 3 · Synapse and Engram
Quickstart: a OneDroid Synapse hub and OneDroid Engram
memory in about ten minutes each
The Synapse walkthrough
The Engram walkthrough
What is free
4 · The method
The repository (Apache-2.0)
START-HERE.md, the runbook
DARK-FACTORY-PRIMING.md, the one-page version
The skills index
The kits walkthrough
Testing first. Always.
The difference between vibe coding and agentic engineering is good testing. That is why the kit starts there. Questions about the kit or about testing what your agents build: write to us.
michal@onedroid.ai