Mifal מפעל

Your agents,
run like a factory.

Mifal gives your coding agents a team lead. You set the goal and answer the questions only you can settle. The lead briefs the Claude Code, Codex, Droid, Pi and OpenCode agents you open in Herdr panes, checks every return, and runs the line until the work is reviewed.

The floor plays an illustration of a shift for your goal. Scroll down for a real one: the shift that built Mifal.

Explore the shift that built Mifal
A blue and yellow team lead with a printed brief beside a coral reviewer, a workpiece and a hinged inspection gate on a conveyor.
One lead. A team. A line that can stop.

Illustration. A generated inspection shot, played only when you choose.

Illustration

A shift for your goal.

The sequence below explains a shift. It does not run agents or change your project.

Work orderReady

Add passkey login to my app

Choose a goal above or explore the six illustrated steps.

The steps describe the work; the historical record follows below.

  1. The lead takes the goal and asks what only you can settle.

  2. The lead staffs the floor and gives each agent a brief.

  3. The reviewer finds a problem and stops the line.

  4. A correction goes out as a new attempt.

  5. The reviewer checks the correction before clearing the line.

  6. Reviewed work comes out the other end. Approvals and publishing stay yours.

19–20 October 2026

The shift that
built the factory.

One real shift, replayed from its build record.

19 Oct 2026

A goal goes in.

the human → opus-cto, the lead
Ship Mifal as a product. A stranger on macOS installs it with one command and gets the methodology, the team lead, the validator and Herdr wired into Claude Code, Codex, Droid, Pi and OpenCode. Nothing personal ships.

The lead turns the goal into named claims that pass or fail. This shift had eleven, from "uninstall restores every file byte for byte" to "the reviewer's last review has no open blocking finding".

The lead staffs the floor.

It works with the agents you open in Herdr panes, and gives each one the work it has shown it does well.

opus-ctoClaude Code. The lead, and the builder.
haiku-researcherClaude Code. Research, and grilling the plan.
sol-reviewerCodex. Every review.
mifal-reviewerClaude Code. An outside critic, later in the shift.
open boothsDroid, Pi and OpenCode get the same Guide and skills, ready to staff.

Task 1

Every agent gets a brief.

opus-cto → haiku-researcher
Now I need you to break my plan before I build it, because a wrong design costs minutes here and days in the code.

A brief says why the work matters, what done means, what the agent may decide alone and when to stop. Before it goes out, the validator checks it, and refuses one without its why, outcome, done means or stop rule.

  • Why
  • Outcome
  • Latitude
  • Pointers
  • Least sure of
  • Done means
  • Stop rule
  • Return

Agents ring the doorbell.

haiku-researcher → opus-cto
DONE 1 .team/tasks/1.md
opus-cto, in the team record
Accepted. Three rounds that settled facts from the installed binaries and tarballs, not memory.

A finished agent writes its return to a file and rings the lead's pane. A "done" alone is not enough: the lead reads the receipt, checks the claim that matters, and records what was good, specifically.

19 Oct, 12:38 UTC

Any reviewer can stop the line.

sol-reviewer → opus-cto, review of the plan
HOLD: seven blocking findings. F2 no recovery for an interrupted install F5 Herdr's script writes outside the Manifest, found by reading install.sh without running it
opus-cto
All seven accepted. The plan is amended, and the grilling reopens.

The plan was the cheapest place to be wrong. No code existed yet.

19 Oct, 19:02 UTC

Fix it, then prove it.

sol-reviewer → opus-cto, review of the build
HOLD: eight installer defects, among them an edit lost while an update waited for approval.
opus-cto
Each of your 12 probes is now a test: all red before the fix, all green after.

A correction goes out as a new attempt with its own id, so a late "done" for the old one cannot close it. The recheck found one more problem; it was fixed, and the third look cleared the line.

20 Oct, 03:01 Israel time

Bad news, early.

opus-cto → sol-reviewer, task 4.4
Since your 4.3 acceptance, I built 0.1.1 without a review, and pushed part of it to the private repo. That was my miss.
sol-reviewer → opus-cto
HOLD: a maintainer command can follow a symlink and overwrite a file outside the repo.

The lead owns its misses out loud and sends its own work to review. The fix landed fifteen minutes later, and the recheck cleared it.

The line ships.

Five times in this shift the reviewer said HOLD, with 21 blocking findings across those rounds. Every one was closed before the public release.

sol-reviewer, recheck 4.5
F1 closed. No new blocking problem.

Every rule has a scar.

Retros change the lead itself. A rule that came from a failure carries the failure in a comment, so the next editor knows why it exists. Two from the team lead skill:

scar, ticket 7
A brief that asked for a push was obeyed over the reservation, which was written somewhere the worker did not read.
scar, ticket 5
Retros that named no asset changed nothing, and blaming the model hid the brief.

The lead's shift manual.

The team lead skill is written like an engineering manager's playbook: ten moments in a shift, each with when it applies, what to ask, what to do and what to record.

  1. Taking the team

    Trust the record and the repo over recollection. Reconcile work in flight before dispatching anything.

  2. Assigning

    Could a strong engineer holding only this message do it right? Say the part you are least sure of.

  3. Waiting well

    Don't message a working teammate. Wait with a named limit.

  4. Blocked

    Approvals go to the human with a recommendation. Hold that teammate; keep the rest working.

  5. A report comes in

    A completion signal is not enough. Check the decisive claim at the revision named.

  6. Pushback

    Thank them first. Settle it on evidence, not rank, and say "I was wrong" when you were.

  7. Something broke

    Diagnose your brief, then the context, the tools and the service. The teammate comes last.

  8. Milestone and retro

    At most two changes, each with an owner and a check on the next task.

  9. Managing up

    No surprises: bad news early, with a recommendation.

  10. Yielding and closing

    A pause is not a final report. Record what is on disk and the first resume action.

Five agents. One floor.

Each agent's rules file gets the same Guide, and every agent gets the same 39 skills: Matt Pocock's engineering workflow run as ordered phases, plus DDD, review and the team lead. Herdr gives each agent its own pane, so the lead can see, brief and hear from any mix of them.

Claude Code~/.claude/CLAUDE.md
Codex~/.codex/AGENTS.md
Droid~/.factory/AGENTS.md
Pi~/.pi/agent/AGENTS.md
OpenCode~/.config/opencode/AGENTS.md
  • You keep the keys. Approvals, product choices and publishing stay yours. The lead brings them to you with a recommendation and keeps the rest of the team working.
  • Gates between phases. The lead runs the contract validator before every dispatch, review and acceptance. A brief, receipt or phase record without its evidence is refused, and the fix is printed.
  • One writer per file. Parallel work goes to isolated worktrees, and nothing is reviewed until every writer has returned.

Open the factory.

macOS, git and Python 3.9 or later. The dry run lists every write and changes nothing. If Herdr is missing, the installer runs brew install herdr, which the dry run shows first; without Homebrew, it asks before downloading Herdr.

Then start your agents inside Herdr, and tell one of them to lead the team toward your goal.

  • Alpha. The installer, update, uninstall, doctor and validator are covered by tests on Python 3.9 and 3.13. Live checks with each agent are not yet recorded.
  • Reversible. mifal uninstall removes what Mifal wrote and keeps any file you edited.
$ git clone https://github.com/romiluz13/mifal.git
$ cd mifal && ./install.sh --dry-run
$ ./install.sh && mifal doctor
Three commands, then herdr.