Skip to content

Commit e1403c4

Browse files
committed
docs: align agent scaffold guidance
Update AGENTS.md to match the live scaffold contract after the shell split. The guidance now treats solverforge as the universal generated dependency while limiting solverforge-ui, solverforge-maps, ui_source, and UI model output to web-shell projects. Record that the public shell selector is web, api, or cli and that Tauri remains deferred. This prevents future agent work from documenting aliases or implementing placeholder shell paths that the current codebase does not expose.
1 parent 6e2ddd9 commit e1403c4

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

AGENTS.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,16 @@
99
Current scaffold policy:
1010
- current CLI package version is `2.1.0`
1111
- minimum supported Rust version is `1.95`, matching the current SolverForge runtime crates
12-
- generated projects currently target `solverforge 0.13.1`, `solverforge-ui 0.6.5`, and `solverforge-maps 2.1.4` as their crate dependency versions
13-
- `solverforge new <name>` is the only public scaffold path and produces a neutral shell
12+
- generated projects currently target `solverforge 0.13.1`; the default web shell additionally targets `solverforge-ui 0.6.5` and `solverforge-maps 2.1.4`
13+
- `solverforge new <name>` is the only public scaffold path and produces a neutral app shell
14+
- `--shell web|api|cli` is the current public shell selector; `web` is the default, `api` omits frontend assets, and `cli` omits Axum/SSE routes and frontend assets
15+
- Tauri scaffolding is deferred; do not document or implement a public Tauri shell unless that work is explicitly reopened
1416
- users shape the app afterward through facts, entities, solution/score metadata, variables, constraints, and generated data
1517
- generated docs and CLI version output must distinguish CLI version from scaffold runtime/UI target
1618
- `scalar` and `list` are the only planning variable kinds accepted by the public CLI and app-spec projection
1719
- `standard` is a demo size label only; do not reintroduce it as a variable kind or scaffold family
1820
- `templates/scalar/generic` is the embedded neutral scaffold used by `solverforge new`; `templates/list/generic` is not a public `new` selector
19-
- generated `Cargo.toml` files must carry `rust-version = "1.95"` plus the current explicit web, serialization, and utility dependency baselines from the template files
21+
- generated `Cargo.toml` files must carry `rust-version = "1.95"` plus the current explicit dependency baselines for the selected shell from the template/materialization code
2022

2123
When changing templates or scaffold behavior, follow the current repo reality over older starter-template assumptions. Do not add legacy aliases, compatibility shims, migration fallbacks, or automatic rewrites for unmanaged pre-refactor file shapes unless that is explicitly requested.
2224

@@ -62,7 +64,7 @@ Current end-to-end scenario policy:
6264
Do not claim mixed seeded solving is supported until the underlying runtime actually supports that combination.
6365

6466
For scaffold changes, prefer assertions that check the generated contract directly:
65-
- dependency wiring for `solverforge`, `solverforge-ui`, and `solverforge-maps`
67+
- dependency wiring for the selected shell: `solverforge` everywhere, `solverforge-ui` and `solverforge-maps` only for web-shell projects
6668
- CLI version vs runtime target messaging
6769
- generated README version/runtime source disclosure
6870
- typed solver SSE payload shape and typed frontend hooks
@@ -71,7 +73,7 @@ For scaffold changes, prefer assertions that check the generated contract direct
7173
- managed block ownership boundaries:
7274
domain exports, solution collections, entity variables, constraint modules, and constraint calls require their `@solverforge:begin ...` / `@solverforge:end ...` markers
7375
- `solverforge.app.toml` projection:
74-
facts, entities, variables, constraints, demo sizes, solution/score metadata, runtime target metadata, and `static/generated/ui-model.json`
76+
facts, entities, variables, constraints, demo sizes, solution/score metadata, runtime target metadata, and web-shell `static/generated/ui-model.json`
7577
- scaffolded `cargo check` against the published crate targets by default; prerelease sibling-checkout validation must be explicit via `SF_USE_LOCAL_PATCHES=1`, which writes a temporary `.cargo/config.toml` patch file without rewriting generated `Cargo.toml`
7678

7779
## Commit & Pull Request Guidelines
@@ -95,8 +97,8 @@ domain shapes that users create afterward:
9597
- Pause resumes from the runtime-retained checkpoint, Stop maps to `/jobs/{id}/cancel`, and Delete is terminal cleanup only
9698
- progress-only events update status, not the rendered board
9799
- generated demo data flows expose `/demo-data` as the catalog and `/demo-data/{id}` for selected data; frontends derive the default ID from the catalog and must not hard-code `/demo-data/STANDARD`
98-
- generated UI composition should use shipped `solverforge-ui` primitives before adding template-owned JavaScript
99-
- `src/data/data_seed.rs` and `static/generated/ui-model.json` are compiler-owned; user-facing seams are the `solverforge generate data` command, stable `src/data/mod.rs` wrapper, and `static/sf-config.json`
100+
- generated web-shell UI composition should use shipped `solverforge-ui` primitives before adding template-owned JavaScript
101+
- `src/data/data_seed.rs` and web-shell `static/generated/ui-model.json` are compiler-owned; user-facing seams are the `solverforge generate data` command, stable `src/data/mod.rs` wrapper, and web-shell `static/sf-config.json`
100102
- generated domain and constraint mutation is canonical-only: current managed block shapes are required, not inferred from old layouts
101103

102104
Do not reintroduce:
@@ -105,6 +107,7 @@ Do not reintroduce:
105107
- docs that blur CLI version with runtime/UI target
106108
- `standard` as a planning variable kind
107109
- hidden scaffold/template aliases
110+
- Tauri or other shell aliases before a real scaffold implementation exists
108111
- fallback migration code for legacy generated files
109112

110113
Test harness notes:

0 commit comments

Comments
 (0)