Skip to content

Category profiles

A profile is a YAML file that makes the engine understand one kind of part: which fields to read, how to normalise them, what the segmentation prompts are, what counts as a match, how the listing should read, which Marketplace and catalog category it maps to, and which questions to ask before posting.

Four profiles ship:

  • blender_agitator: the rod of a blender, milk frother or frappé maker, used in the demo; the rod's diameter and length, the coupling tabs and the material decide fit.
  • power_adapter: volts, amps, polarity and the plug's two diameters.
  • vacuum_attachment: the opening and the insertion depth decide fit.
  • generic_item: the fallback for anything not yet specialised; free-form attributes, no strict verdicts.

The owner picks the profile on an item, on a search request or on the Does it fit? panel. See Creating a new category and the profile schema.

Built so far

Four profiles ship as YAML under backend/app/profiles/data/, loaded and validated at startup: blender_agitator, power_adapter, vacuum_attachment and generic_item. Each names its features: the dimensions that decide fit, with a tolerance in millimetres and how to capture each one; the measurement step reads them. Each also names its rules: what a candidate is checked against, hard or soft, with the kind of comparison, the tolerance and the question to ask when a value is unknown; Does it fit? applies them and the verdict ladder reads the result. Fields, prompts and listing templates join the same files next. The model never edits a profile.