Skip to content

Commit f80fffd

Browse files
gibbonclaude
andcommitted
docs: make it explicit that the LLM is optional
Add a callout block in both README and engine/README clarifying that the core engine (generate/build/verify/deploy/validate/registry) is fully deterministic and works offline. The LLM is only used by the optional draft and enrich commands. Restructure the quickstart so the no-LLM path is the default and the LLM-assisted commands are opt-in below. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 7d3701c commit f80fffd

2 files changed

Lines changed: 21 additions & 12 deletions

File tree

README.md

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ fixedcode generate my-domain.yaml -o build
1616
fixedcode deploy build /path/to/your/project
1717
```
1818

19+
> **No LLM required.** The core engine — `generate`, `build`, `verify`, `deploy`, `validate`, `registry` — is fully deterministic and works **offline with zero AI dependencies**. The optional `draft` (spec-from-prose) and `enrich` (extension-point fill-in) commands use an LLM if you configure one, but you never have to. Hand-write your spec, hand-write your business logic, and the engine still works exactly the same.
20+
1921
## Why FixedCode?
2022

2123
LLMs are great at writing code from descriptions, but their output isn't reproducible — ask twice and you get two different answers. FixedCode flips this: the LLM writes the **spec**, the engine writes the **code**, and the LLM fills in extension points where the human-readable logic lives. The middle step is deterministic — the same YAML always produces the same output, byte for byte.
@@ -30,35 +32,40 @@ You get the speed of "write me a service that does X" with the auditability of "
3032

3133
## Quickstart
3234

35+
The minimum viable workflow needs **no LLM** at all:
36+
3337
```bash
34-
# install the CLI
3538
npm install -g fixedcode
3639

37-
# (optional) draft a spec from a description using your configured LLM
38-
fixedcode draft spring-domain "order service with orders and line items" -o my-domain.yaml
39-
40-
# generate code
40+
# write your spec by hand (or copy an example), then:
4141
fixedcode generate my-domain.yaml -o build
42+
fixedcode verify my-domain.yaml build
43+
fixedcode deploy build /path/to/your/project
44+
```
4245

43-
# verify every expected file landed
44-
fixedcode verify my-domain.yaml build
46+
### Optional: LLM-assisted commands
4547

46-
# (optional) deploy into an existing project
47-
fixedcode deploy build /path/to/your/project
48+
If you'd rather not write specs and extension-point logic by hand, FixedCode can use an LLM. **This is opt-in** — you only need it for the two AI-flavoured commands:
4849

49-
# (optional) ask the LLM to fill in the extension points
50+
```bash
51+
# draft a spec from a description (LLM required)
52+
fixedcode draft spring-domain "order service with orders and line items" -o my-domain.yaml
53+
54+
# fill in extension-point business logic (LLM required)
5055
fixedcode enrich build/
5156
```
5257

53-
For LLM commands (`draft`, `enrich`), configure `.fixedcode.yaml`:
58+
To use these, drop an `llm` block in `.fixedcode.yaml`:
5459

5560
```yaml
5661
llm:
57-
provider: openrouter # openrouter | openai | ollama
62+
provider: openrouter # openrouter | openai | ollama
5863
model: google/gemini-2.5-flash
5964
apiKeyEnv: OPENROUTER_API_KEY
6065
```
6166
67+
Allowed endpoints: openrouter.ai, api.openai.com, api.anthropic.com, plus loopback for local model servers (Ollama). See [`docs/llm.md`](docs/llm.md) for the full trust model.
68+
6269
## Concepts
6370

6471
A FixedCode project ties together three things:

engine/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ The FixedCode CLI and programmatic API.
88

99
> Spec-driven, deterministic code generation for the AI era. YAML in, production code out, same spec → same code every time.
1010
11+
> **No LLM required.** The core engine works fully offline. Only the optional `draft` and `enrich` commands use an LLM, and only if you configure one.
12+
1113
Full project docs: <https://github.com/gibbon/fixedcode>
1214

1315
## Install

0 commit comments

Comments
 (0)