Skip to content

Commit 906293c

Browse files
Kabuki94claude
andcommitted
fix(AI.md): correct env var name and script count
- MIOS_AI_BASE_URL -> MIOS_AI_ENDPOINT (actual env var name per env.defaults) - Remove reference to automation/00-bootstrap-merge.sh (does not exist) - Update script count 48 -> 45 (actual count) - Fix Containerfile FROM reference (ucore-hci:stable not fedora-bootc:42) - Fix package manifest script ref (removed bogus 80-install-packages.sh) - Env cascade corrected to match INDEX.md / env.defaults Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent cbdea24 commit 906293c

1 file changed

Lines changed: 23 additions & 24 deletions

File tree

AI.md

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,48 +8,47 @@ MiOS is an immutable bootc-native Fedora workstation OS delivered as an OCI imag
88

99
| Path | Purpose |
1010
|---|---|
11-
| `/Containerfile` | OCI image definition (bootc, `FROM quay.io/fedora/fedora-bootc:42`) |
12-
| `/Justfile` | Build entry (`just build`, `just push`, `just clean`) |
13-
| `/automation/` | 48 shell scripts for system configuration |
14-
| `/usr/lib/systemd/` | 38 systemd units + 4 Quadlet container definitions |
15-
| `/usr/lib/dracut.conf.d/` + `/usr/lib/karg.d/` | 14 kernel argument files |
16-
| `/usr/share/mios/PACKAGES.md` | Package manifest (parsed by `automation/80-install-packages.sh`) |
11+
| `/Containerfile` | OCI image definition (bootc, FROM ucore-hci:stable) |
12+
| `/Justfile` | Build entry (`just build`, `just rechunk`, `just iso`, etc.) |
13+
| `/automation/` | 45 numbered phase scripts + lib/{common,packages,masking}.sh |
14+
| `/usr/lib/systemd/system/` | systemd units + drop-ins |
15+
| `/usr/lib/kargs.d/` | 14 kernel argument TOML files |
16+
| `/usr/share/mios/PACKAGES.md` | SSOT for all RPM packages (fenced packages-<category> blocks) |
1717
| `/usr/share/mios/profile.toml` | Vendor-default profile (lowest precedence) |
1818
| `/usr/share/mios/env.defaults` | Global `MIOS_*` env variable defaults |
1919

2020
## Global env surface
2121

22-
All `MIOS_*` variables resolve via five-layer cascade (highest wins):
22+
All `MIOS_*` variables resolve via cascade (highest wins):
2323

2424
```
25-
$MIOS_VAR env → ~/.config/mios/env /etc/mios/install.env /etc/mios/env.overrides → /usr/share/mios/env.defaults
25+
~/.config/mios/env > /etc/mios/install.env > /etc/mios/env.d/*.env > /usr/share/mios/env.defaults
2626
```
2727

28-
Key vars: `MIOS_AI_MODEL`, `MIOS_AI_EMBED_MODEL`, `MIOS_AI_BASE_URL`, `MIOS_BASE_IMAGE`, `MIOS_VERSION`
28+
Key vars: `MIOS_AI_ENDPOINT`, `MIOS_AI_MODEL`, `MIOS_AI_EMBED_MODEL`, `MIOS_AI_KEY`, `MIOS_BASE_IMAGE`, `MIOS_VERSION`
2929

3030
## Build pipeline
3131

3232
```
33-
just build # Containerfile → OCI image
34-
just push # push to ghcr.io/mios-dev/mios:latest
35-
just clean # prune local image cache
33+
just build # Containerfile → OCI image → localhost/mios:latest
34+
just build-logged # build with tee'd log
35+
just rechunk # bootc-base-imagectl rechunk (smaller Day-2 deltas)
36+
just iso # Anaconda installer ISO via bootc-image-builder
37+
just wsl2 # WSL2 tar.gz for wsl --import
38+
just sbom # CycloneDX SBOM via syft
3639
```
3740

38-
Local dev: `./mios-build-local.ps1` (Windows) · `./automation/build.sh` (Linux)
39-
40-
## Merge-at-build semantics
41-
42-
At `just build`, `mios-bootstrap.git` is fetched and merged onto this repo via `automation/00-bootstrap-merge.sh`. Bootstrap values (user profile, AI files, flatpak lists) override the vendor defaults in this repo. The merged result is baked into the OCI image.
41+
Single-phase iteration: `bash automation/<NN>-<name>.sh`
4342

4443
## Six Architectural Laws
4544

46-
1. **USR-OVER-ETC**defaults in `/usr/share/`; overrides in `/etc/`; never reverse
47-
2. **NO-MKDIR-IN-VAR**runtime dirs declared in `tmpfiles.d`, not `mkdir` in scripts
48-
3. **BOUND-IMAGES**all container images pinned; never `:latest` in Quadlets
49-
4. **BOOTC-CONTAINER-LINT**`RUN bootc container lint` is always the final Containerfile instruction
50-
5. **UNIFIED-AI-REDIRECTS**all `MIOS_AI_*` vars point to `http://localhost:8080/v1`; no vendor endpoints in committed files
51-
6. **UNPRIVILEGED-QUADLETS**all Quadlet containers run rootless unless security policy demands root
45+
1. **USR-OVER-ETC**static config in `/usr/lib/<component>.d/`; `/etc/` for admin overrides only
46+
2. **NO-MKDIR-IN-VAR**every `/var/` path declared via `usr/lib/tmpfiles.d/*.conf`
47+
3. **BOUND-IMAGES**every Quadlet sidecar image symlinked in `/usr/lib/bootc/bound-images.d/`
48+
4. **BOOTC-CONTAINER-LINT**`RUN bootc container lint` is the final Containerfile instruction
49+
5. **UNIFIED-AI-REDIRECTS**`MIOS_AI_ENDPOINT/MODEL/KEY` target `http://localhost:8080/v1`; zero vendor URLs in committed files
50+
6. **UNPRIVILEGED-QUADLETS**every Quadlet defines `User=`, `Group=`, `Delegate=yes`; exceptions: `mios-k3s.container`, `mios-ceph.container`
5251

5352
## Full agent context
5453

55-
Load `/usr/share/mios/ai/system.md` for the complete prompt covering all 48 automation scripts, 38 systemd units, 4 Quadlets, 14 karg files, user creation, profile resolution, and day-2 operations.
54+
Load `/usr/share/mios/ai/system.md` for the complete prompt covering all automation scripts, systemd units, Quadlet sidecars, kernel args, user creation, profile resolution, and day-2 operations.

0 commit comments

Comments
 (0)