This tutorial walks you through the full Software Factory workflow in one go: capture a project, generate artifacts, run against Claude Code, inspect the result. No mock, no shortcuts — this is the real path.
| Tool | Version | Check |
|---|---|---|
| Docker Compose | v2.x | docker compose version |
| JDK | 25 | java -version |
| Maven | ≥ 3.9 | mvn -v |
| Claude Code CLI | current | claude --version |
| git | ≥ 2.4 | git --version |
Claude Code must already be logged in interactively once. The factory invokes the claude CLI as a subprocess and reuses your stored credentials.
Bring up Postgres via Docker Compose and run the app via Maven. The app intentionally does not run inside a container so it can call Claude Code as a local subprocess.
# in the repo root: docker compose up -d postgres # in a second terminal: cd app export SOFTWAREFABRIK_ADMIN_PASSWORD='test-admin-123' export SOFTWAREFABRIK_EXECUTION_ADAPTER=claude export SOFTWAREFABRIK_CLAUDECODE_COMMAND="$(which claude)" export SOFTWAREFABRIK_WORKSPACES_ROOT=/tmp/softwarefabrik-workspaces mvn spring-boot:run
Open http://localhost:8080, sign in as admin (password from the env variable). The first login provisions the bootstrap admin in the DB.
In the wizard: title, short description, goal, technology context. Well-written fields produce substantially better results — the factory turns them into the work orders for the agent.
The Generate artifacts button creates six markdown documents (PROJECT.md, INSTRUCTIONS.md, AGENTS.md, WORKFLOW.md, DEFINITION_OF_DONE.md, README.md). They are editable — read them carefully, especially INSTRUCTIONS.md and DEFINITION_OF_DONE.md.
Then set the status to READY.
Menu Teams → new team with at least one agent (e.g. Developer). Then Runs → new run: project, team, title, goal. Status to READY, then Start run.
The run goes through four phases asynchronously:
| Phase | What happens |
|---|---|
WORKSPACE_PREPARATION | Create git repo under SOFTWAREFABRIK_WORKSPACES_ROOT/<slug>/<run-id>, copy artifacts |
EXECUTION | claude --print <task> runs inside the workspace, agent produces code |
VALIDATION | mvn verify (or the configured build) validates the result |
COMPLETION | On success: commit + status COMPLETED. On failure: NEEDS_CORRECTION |
In parallel you can use the Show logs and Git status buttons, and if needed perform a manual approval step.
cd /tmp/softwarefabrik-workspaces/<slug>/<run-id> git log --oneline -10 mvn verify # optionally re-run locally
Code and artifacts stay in the workspace until you delete it manually. The workspace is a normal git repo — you can push, branch, review from here.
| Symptom | Fix |
|---|---|
claude: command not found | Set an absolute path in SOFTWAREFABRIK_CLAUDECODE_COMMAND. |
Run stuck in PREPARING | Check write permissions on SOFTWAREFABRIK_WORKSPACES_ROOT, open the logs. |
mvn verify fails immediately | The agent did not produce a Maven project. Switch build via SOFTWAREFABRIK_MAVEN_COMMAND to gradle/npm, or try the mock adapter first. |
| License check blocks start | V1 license module is off by default (SOFTWAREFABRIK_LICENSE_V1_ENABLED=false). Leave unset or set to false. |
| Port 8080 busy | Set SOFTWAREFABRIK_PORT=9090 or stop the competing process. |