You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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>
> **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
+
19
21
## Why FixedCode?
20
22
21
23
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 "
30
32
31
33
## Quickstart
32
34
35
+
The minimum viable workflow needs **no LLM** at all:
36
+
33
37
```bash
34
-
# install the CLI
35
38
npm install -g fixedcode
36
39
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:
41
41
fixedcode generate my-domain.yaml -o build
42
+
fixedcode verify my-domain.yaml build
43
+
fixedcode deploy build /path/to/your/project
44
+
```
42
45
43
-
# verify every expected file landed
44
-
fixedcode verify my-domain.yaml build
46
+
### Optional: LLM-assisted commands
45
47
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:
48
49
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)
50
55
fixedcode enrich build/
51
56
```
52
57
53
-
For LLM commands (`draft`, `enrich`), configure`.fixedcode.yaml`:
58
+
To use these, drop an `llm` block in`.fixedcode.yaml`:
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.
0 commit comments