mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-23 17:02:39 +00:00
Document filament color as a runtime property, not a preset
Add the one-all-printer-preset-per-product rule to the orca-profiles skill: color is chosen at runtime, a material family is a new product and a color is not, and CI does not catch per-color presets so it stays a review call. Note that @System is the all-printer convention rather than an enforced check.
This commit is contained in:
@@ -58,6 +58,9 @@ Paths below are relative to this skill. Commands run from the repository root.
|
||||
9. **Run the full profile checks before reporting completion.** A vendor-scoped pass is only a
|
||||
development loop. Review also covers version bumps, assets, non-default processes and hardware
|
||||
tuning that CI cannot establish.
|
||||
10. **One all-printer preset per product; color is a runtime property, never a preset.** Never ship
|
||||
presets that differ only by color — CI accepts them, so this is a review call. See
|
||||
[color is a runtime property](references/filament-profiles.md#color-is-a-runtime-property).
|
||||
|
||||
## Creating or modifying a profile
|
||||
|
||||
@@ -107,6 +110,7 @@ Paths below are relative to this skill. Commands run from the repository root.
|
||||
| A setting has no effect | Key spelling/type, `handle_legacy`, or a config key placed on a `machine_model` |
|
||||
| A preset exists but is not selectable | Index registration, `instantiation`, installation and compatibility |
|
||||
| A filament is missing, duplicated, or matches the wrong spool | [Compatibility and alias shadowing](references/filament-profiles.md#compatible_printers); [ids](references/ids.md) |
|
||||
| Presets differ only by color, or an all-printer library preset lacks `@System` | [Color is a runtime property](references/filament-profiles.md#color-is-a-runtime-property) |
|
||||
| A bed temperature is ignored | [Plate-specific temperature keys](references/filament-profiles.md#bed-temperature-is-twelve-keys-not-one) |
|
||||
| A change is absent from the running app | Version bump and [installed profile location](references/validation.md#testing-in-the-app) |
|
||||
| A check fails | [Error → remedy](references/validation.md#error--remedy) |
|
||||
|
||||
@@ -52,6 +52,15 @@ a brand means adding a folder here; the folder name is a directory label only
|
||||
collection, so there is no duplicate-name error.
|
||||
- You may inherit from an instantiated preset as well as from a base; it is common.
|
||||
|
||||
## Color is a runtime property
|
||||
|
||||
`filament_id` identifies a product, not a color; filament sync/AMS reads the color from the spool at
|
||||
runtime. A product ships one all-printer preset and the color is chosen at runtime — never a sibling
|
||||
preset that differs only by color. A material family (PLA vs PLA Matte vs PLA Silk) is a new product; a
|
||||
color is not. A printer tune keeps the product alias and does not multiply per color either.
|
||||
|
||||
CI does not catch this — per-color presets pass `check` — so it is a review call.
|
||||
|
||||
## The two most common contributions
|
||||
|
||||
**A printer vendor tuning a generic.** Keep the `Generic X` base name so the alias shadows the library
|
||||
|
||||
@@ -46,12 +46,17 @@ to the first `@`; the target half is a label except for reserved forms:
|
||||
|
||||
- `@base` — a non-instantiated product root. `@base` is convention; a base is really identified by
|
||||
`instantiation: "false"` and no `setting_id` ([the three-part shape](filament-profiles.md#the-three-part-shape)).
|
||||
- `@System` — the OrcaFilamentLibrary selectable shim. The literal `Generic <mat> @System` is
|
||||
load-bearing for 3MF/project recovery, beyond the alias rule ([alias shadowing](filament-profiles.md#alias-shadowing)).
|
||||
- `@System` — the OrcaFilamentLibrary selectable shim, and the convention for an all-printer product
|
||||
(`<Product> @System`, empty `compatible_printers`); not enforced, so a deviation is worth a review
|
||||
comment. The literal `Generic <mat> @System` is load-bearing for 3MF/project recovery, beyond the
|
||||
alias rule ([alias shadowing](filament-profiles.md#alias-shadowing)).
|
||||
- `@<Vendor>`, `@<Vendor> <Model>`, `@<Vendor> <Model> <nozzle> nozzle` — printer tunes, BBL's shape.
|
||||
Other vendors differ (a bare model, a printer serial, Creality's `@<Model>-all`). Specificity is judged
|
||||
from `compatible_printers`, not the name
|
||||
([one variant, one profile](filament-profiles.md#overlapping-coverage-one-variant-one-profile-per-product)).
|
||||
- Color is not part of the product name: `<Product> <Color>` presets are not authored; the color is
|
||||
chosen at runtime
|
||||
([color is a runtime property](filament-profiles.md#color-is-a-runtime-property)).
|
||||
|
||||
## Not the same as the filename
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ The table highlights gaps that need human review. What CI *does* run:
|
||||
| Whether the intended default survived compatibility selection | The sweep can select a different compatible preset |
|
||||
| A dangling `compatible_printers` inside an `instantiation: "false"` base | A base never becomes a `Preset`, so the reference check never sees it (a bad `inherits` in a base *is* caught) |
|
||||
| A `renamed_from` whose old name is still a live preset | The redirect is inert while a live preset carries that name |
|
||||
| A preset differentiated only by color, or an all-printer library preset without `@System` | Per-color presets split one product across ids and the selector fills with near-duplicates; CI stays green |
|
||||
| Per-extruder vector length on a multi-nozzle printer | Silently padded (with the **first** value) or truncated |
|
||||
|
||||
## 1. Was the vendor `version` bumped?
|
||||
|
||||
Reference in New Issue
Block a user