“Bach said that all his achievements were simply the fruit of industry. But that presupposes humility and an enormous capacity for suffering.”
— Ludwig Wittgenstein, Culture and Value
@borgesius/johann is a local workbench for generating software from seed briefs, evaluating the results, and iterating on the system itself.
In plain language:
- Johann runs the loop.
- OpenCode handles tool use and execution.
- OpenRouter/Qwen supplies the model.
A seed is the starting brief. A generation is a concrete artifact produced from a run of that seed. The Version column below means Johann version, not app version.
| Version | Focus |
|---|---|
v0.4.0 |
Generic meta-review became the main judge instead of seed-specific judge prose. |
v0.4.1 |
Better self-evaluation plans and improved smoke/idle stall handling. |
v0.4.2 |
Added generic live/watch scripts and stronger repair-loop detection for brittle exact-match edits. |
v0.4.3 |
Hardened runtime smoke recovery for failed smoke/debug branches. |
v0.4.4 |
Adds phase-stall aborts so long quiet hangs recover instead of parking indefinitely. |
| Version | Name | Description | Model | Policy | Timing | Seed | Generation |
|---|---|---|---|---|---|---|---|
v0.1.0 |
Becoming Site | Elaborate philosophy site about being as stabilized becoming, negatively known limit-points, and nonlinear exploratory surfaces. This is marked v0.1.0 because the generation was produced before later repo changes. |
qwen-coder-hybrid-opencode |
repair_focus_loop |
roughly 45 min (manually terminated) |
philosophy-becoming-site.md | repo |
Johann keeps thin structural checks with each seed, but the main judgment is generic: it looks at the repo, validations, trajectory, and recent work to decide how strong the artifact really is and what should happen next.