Answers to typical questions about the Agentic Software Factory v0.8.1 โ platform, setup, wizard, adapters, quality gate, settings, security, licensing and roadmap. If your question is missing, drop us a line: hello@softwarefabrik.io.
The Agentic Software Factory is a local web application that lets you kick off, supervise and trace AI-assisted development in a structured way. It connects project capture (with or without the wizard), automatic generation of Markdown specifications, run orchestration against coding CLIs (Claude Code, Codex, Gemini, Aider), live logs, Git discipline and an automatic quality gate. The goal is not "magic AI coding with one click" โ it's reproducible, reviewed results you can hand to your team.
Seven minor releases have taken the platform from "MVP with two wizard templates" to a fully orchestrated solo-dev tool. Short list:
/einstellungen with override order PROJECT > USER > GLOBAL > YAML + 5-min TTL cache; four-step wizard with two templates and version cache.preferredModel passed as --model flag); plugins/skills sync (platform writes .claude/settings.local.json and .claude/agents/<role>.md before every run); repo-import wizard and PROJECT_NOTES.md.--cpus 2 --memory 4g --pids-limit 512 --read-only --network=none) switchable via setting; run templates saved from successful runs; live token stream via line-by-line NDJSON parser.The news page has the full release notes.
With direct shell use you have to organise project definition, guardrails, approvals, Git discipline and status oversight manually. The Software Factory makes those aspects visible and reusable โ you don't kick off one coding pass, you orchestrate a sequence of plan, implement, review and validate, with live logs and a quality-gate verdict at the end. It's not a different coding mode, it's a different abstraction layer.
Primarily for software architects, lead developers, technical project managers and small teams who want to do AI-assisted development in a more controlled, reproducible way โ typically in mid-sized companies, regulated industries, or consultancies that have to document code outcomes. It's not meant as a mass consumer product and isn't aimed at hobbyists who want to generate a quick script โ Claude Code on its own is faster for that.
Typical: Architect, Developer, Reviewer, QA, Security Reviewer, Documentation, Merge/Release. Each role can have a preferredModel โ an Architect might use claude-opus-4-7 for deep design decisions, a Reviewer the faster claude-haiku-4-5. Roles are serialised as Markdown into AGENTS.md and read by the coding agent as context.
READY, start.COMPLETED, run the quality gate, review findings.Files like PROJECT.md or INSTRUCTIONS.md are human-readable, versionable and friendly to AI tools. They form the "working contract" between user, platform and agent. The agent reads them as a top-level brief, you can edit them and trace changes in Git history. Unlike binary configurations or DB columns, Markdown is also useful outside our platform โ you never get locked into a proprietary format.
Version 1 prioritises orchestration, run model, Git/build integration and traceability. A server-rendered UI with Spring Boot and Thymeleaf reduces complexity โ no separate frontend build, no API versioning, no double authentication. That makes the product core trustworthy faster. A SPA version is on the backlog (ADR-0015 under discussion), but only after the core is stable.
Not in the sense of "multiple agents running in parallel and talking to each other". v1 prepares roles, teams and workflow structure for that, but starts with one executing adapter per run. The goal is a clean extension path, not maximum complexity in step one. True multi-agent (different models per phase, mutual review) is on the roadmap from phase 5/6 onwards.
.env file with bootstrap admin credentials and master key.You don't need to install Java, Maven or Node locally as long as you stay in container mode. Only when you use real vendor adapters such as claudecode or codex do you need that CLI locally.
From the repo root:
git clone https://github.com/janda-io/SoftwareFabrik.git cd SoftwareFabrik # create .env with ADMIN_USER, ADMIN_PASSWORD, DB_PASSWORD, SECRETS_MASTER_KEY docker compose up -d
Generate the master key with openssl rand -base64 48. Details in the quickstart.
Depends on the tier:
Yes, with an Enterprise Air-Gap license. The platform itself has no hard internet dependency. What you need:
In the default setup only:
In air-gap mode: nothing. Details in the transparency document.
The wizard is a four-step controller at /wizard with its own persistence in wizard_draft (V12). Steps:
ProjectDefinition, fills all editor fields, sets the draft status to completed.Drafts survive browser reload and server restart. The next visit to /wizard shows a "Resume draft" button that takes you to the last saved step. Unfinished drafts are auto-deleted after 30 days (cleanup job at 04:00).
| Template | Content | Quality-gate toggles |
|---|---|---|
spring-boot-backend | Java backend with Spring Boot. Java 21 or 25, DB choice Postgres / H2 / MySQL, architecture style hexagonal / layered / modulith. | ArchUnit, OWASP, Trivy |
static-frontend | Static frontend with HTML/CSS/JS. Build tool Vite or Astro. Node 20 or 22. | Trivy, Playwright |
Snippets sit on the classpath under resources/wizard/templates/<name>/ and exist in DE and EN (you choose the language in wizard step 2).
From the version_cache (V13). A daily @Scheduled job at 03:00 fetches current stable versions from three sources:
Cache keys are functional, not technical: spring-boot.3.x, archunit.latest, trivy.cli.latest, โฆ If the cache is empty or stale, the wizard falls back to hard-coded versions from the source.
"Stale" means: Java-computed, the last refresh is more than 25 hours old. The wizard still shows the values (with a stale badge in the admin UI), and you can hit "Refresh now" at /einstellungen/wizard/versions to trigger a synchronous lookup. If the lookup job has failed multiple times, the last error is shown in the last_error column.
You don't need to disable it โ the "Quick create" button stays on the project list and opens a two-field form (project title, product name). You go straight to the editor and fill the rest yourself.
If you want to hide the wizard completely (e.g. because your team only uses quick create), there's a toggle in settings under UI for "Wizard menu entry". The route stays technically reachable โ we only hide it from navigation.
Yes, but only in code. A new template is a new entry in TemplateRegistry (immutable record with fields and supported toggle IDs), plus accompanying snippet files under resources/wizard/snippets/<lang>/<toggleId>.md and base prompts under resources/wizard/prompts/<lang>/<templateId>/basis.md. Six templates are registered today (Spring Boot Backend, Static Frontend, .NET Backend, Python FastAPI, Node Express, Existing-Repo-Import). A UI-based template manager (custom templates via drag-and-drop) stays a V2 topic.
| Adapter | Purpose | Prerequisite |
|---|---|---|
claudecode | Anthropic Claude Code CLI | Local CLI install + Anthropic API key |
codex | OpenAI Codex CLI | Local install + OpenAI API key |
gemini | Google Gemini CLI | Local install + Google API key |
aider | Aider (open source) | Local install + LLM provider config (Anthropic, OpenAI, local) |
mock | Test adapter, no API call | None. Always available. |
Under /einstellungen โ Adapter. Each adapter has a Default model field:
execution.model.claudecode โ typical claude-sonnet-4-6 or claude-opus-4-7.execution.model.codex โ typical gpt-5.execution.model.gemini โ typical gemini-2.5-pro.execution.model.aider โ typical claude-3-7-sonnet-20250219.These defaults are used for new runs unless the user explicitly picks another model in the run-creation dialog. Per AgentDefinition there's an additional preferredModel field (V11) you can set per role โ it lands in the UI in phase 5.
The mock adapter is a test adapter that works without an API key and writes deterministic pseudo tokens into the workspace. Ideal for:
Output is not "real code" โ more like pseudo content that simulates a typical run flow.
Yes. The run-creation page has an "Adapter" dropdown. If you pick something there, it overrides the global default (override order: RUN > PROJECT > USER > GLOBAL > YAML). Useful for A/B comparisons: same brief, once with Claude, once with Codex, then compare results.
The quality gate is an automatic assessment of the run output. It calls multiple reviewers, collects their findings and produces an aggregated verdict (PASSED / WARNING / FAILED / SKIPPED / ERROR). Reviewers are read-only โ they don't write into the workspace, they only inspect.
PROJECT.md + WORKFLOW.md. Detects layer violations and bad dependencies.PASSED โ no findings, all reviewers green.WARNING โ some findings below the blocking threshold.FAILED โ at least one blocking finding (by policy or special rule).SKIPPED โ quality gate was not run (e.g. because the run was cancelled).ERROR โ a reviewer crashed (e.g. its CLI is missing). Deliberately not swallowed.Two finding types are always blocking, regardless of policy:
SECURITY/HIGH โ e.g. hardcoded secrets in committed code, weak crypto algorithms, obvious SQL injection.ARCHITECTURE/CRITICAL โ e.g. a domain class importing Spring, web layer reaching directly into infrastructure.This rule prevents an overly relaxed policy from quietly waving through critical issues.
Special rules (SECURITY/HIGH, ARCHITECTURE/CRITICAL) are blocking either way.
Under /einstellungen (ADMIN-only) you can configure:
PROJECT > USER > GLOBAL > YAML. A project-level value beats a user-level value beats a global value beats the default in application.yml. SettingService implements this resolution uniformly for all settings.
You set a daily token cap (e.g. 2,000,000) and/or a weekly token cap. Per run, used tokens (input + output) are summed. Two modes:
Reset at midnight (local time) for daily, Sunday 00:00 for weekly.
At most 5 minutes after saving, because SettingService uses a 5-minute TTL cache. That's an intentional trade-off: fewer DB hits per resolve, slight delay in return. To see changes immediately, click "Invalidate cache now" on the settings page.
Only users with the ADMIN role. Primarily the bootstrap admin (SOFTWAREFABRIK_ADMIN_USER); you can create more admins under /admin/users. Every change creates an audit log entry with subject (who), key, old value, new value, timestamp.
The platform aims for data-minimal, traceable use:
In v1: local authentication with username + password against the platform DB. BCrypt-hashed passwords, CSRF protection, session cookies (HttpOnly, Secure, SameSite=Lax). For the Enterprise tier, additional Keycloak OIDC with the device authorization grant โ one-time browser login, then the app keeps an encrypted refresh token locally.
Append-only โ nothing is deleted or edited. Table audit_event.
It's well aligned โ traceability, structure, documentation, Git discipline and explicit approvals are built in. Concrete hardening (e.g. ISO-27001, BAIT, DORA conformance) depends on the deployment environment and needs additional organisational measures. For government we recommend the air-gap tier with on-prem LLM.
Three tiers:
The platform itself is free in DEMO and COMMUNITY tiers. FULL/Professional is paid (price on request), Enterprise Self-Hosted and Enterprise Air-Gap are individual contracts. What costs extra are vendor API costs (Anthropic, OpenAI, Google) for actual coding calls โ the platform only acts as a broker there.
LLM choice is the customer's call and configured in the adapter. Air-gap mode allows on-prem LLMs only.
LangChain and LangGraph are library frameworks for Python developers building AI workflows themselves. AutoGPT is an experimental auto-run agent that decomposes tasks largely autonomously. The Software Factory is not a library โ it's a finished web application with a defined workflow (project โ artifacts โ run โ quality gate). You don't program it, you use it. The audience is therefore much broader: not only Python devs with an AI background, but every lead developer.
Roadmap phase 5/6 (summer/autumn 2026). Concretely: a different agent per phase (Plan = Architect / Implement = Developer / Review = Reviewer), with role-specific models. The DB schema prep is already in place via V11 (agent_preferred_model) โ only the orchestration logic is missing.
In v1: no. Adapters are added as Java classes in the codebase. A plugin API (e.g. via Java Service Provider Interface or Spring Boot Starter mechanism) is on the backlog (ADR-0014). We deliberately defer it because a stable plugin API design is only worth designing once the adapter logic has iterated a few times.
Yes, in the repo at docs/roadmap/reifegrad-roadmap.md. Current state (May 2026): v0.4 done, v0.5 in progress (multi-model per role, web IDE stub). Larger themes like multi-tenant, external plugin API and SPA frontend are v0.7+ on the horizon.
Yes. As an architecture deep-dive there's a separate whitepaper covering the architectural foundations of agentic software development: reference architecture, agent orchestration, AI guardrails, shared knowledge stores and integration into the SDLC. The PDF (76 pages) is free and downloadable without registration.
The quickstart (10 minutes, mock adapter, no API cost). Once that runs: tutorial with the real Claude Code adapter (45 minutes). If you'd rather just click around without installing: live demo.