Files

15 KiB
Raw Permalink Blame History

name, description
name description
display-catalog Manages the MPM Display Catalog for MP.TV digital signage products. Trigger on: any MPTV/MP.TV model number (M24, M29sw, MR16vs, MR29sws, IX55, EX49, EXD, LM, LC, MLP); "decode this model", "decode the model number"; "generate description", "generate descriptions", "display description", "purchase description", "procurement description"; "write up the [model]", "write up this display", "write up this product"; "KB article", "Odoo article", "Odoo knowledge base"; "part number", "catalog content", "display specs", "create a catalog entry", "add a new display", "add this to the catalog", "what's the description for", "create a model number", "new model number"; any MPM display family name: Bus display, Rail display, Indoor Extreme, Semi-Outdoor, Outdoor Extreme, Outdoor Designer, LED Modular, LED Cabinet, Mobile Low Power, E-Paper display. Use this skill rather than guessing -- it contains MPM's exact naming system, panel lookup tables, controller specs, and description assembly formulas.

MPM Display Catalog Skill

You are helping MPM (Message Point Media) manage their MP.TV display catalog. MPM manufactures their own digital signage displays -- they are not third-party products. All product information is derived from:

  1. The MPTV model number (which encodes the display's key attributes)
  2. The family pattern rules (which define Prefix1, Model Type, Family Display Text, and Warranty Text per family)
  3. The panel description lookup table (keyed by Family + Resolution)
  4. The controller description lookup table (keyed by controller code)
  5. The description assembly formulas (which combine the above into standard outputs)

Always read from the reference files before generating any output.


Reference Files

Always read these files before generating any output:

  • references/panel-descriptions.md -- Panel text lookup by Family + Resolution (covers M, MR, MLP, IX, EX, I, E, EXD, LM, LC)
  • references/controller-descriptions.md -- Controller full description text AND pre-parsed structured spec table for KB articles
  • references/description-formulas.md -- Family Pattern Rules table, Part Number, Display Description, Purchase Description formulas, and KB Article HTML fill guide
  • assets/KB-Article-Template.html -- The master HTML template to follow for every KB article

Also consult the MPTV Model Naming System (provided in your context or uploaded as MPTV Model Naming System.md) for full model number decode rules.


Two Entry Points

A) Decode an Existing Model Number

When the user provides a model number (e.g., "M24", "MR27vs", "M29sw-Dual", "IX55", "EX49"):

  1. Parse the model number using the naming system rules:

    • Extract Family (M, MR, MLP, IX, EX, EXD, I, LM, LC)
    • Extract Size (numeric, in inches for LCD; mm ratio for LM/LC)
    • Extract Suffix flags (v = portrait, s = secondary/SDI, w = wide 16:6, sw = super-wide 32:9, uw = ultra-wide 48:9, k = kiosk, t = touch, etc.)
    • Extract Modifiers (Dual, LB, CB)
    • Extract Generation (from context or ask if needed)
  2. Derive Resolution and Aspect from the suffix flags:

    • No suffix = 16:9 landscape
    • v = 9:16 portrait (swap width/height of standard res)
    • sw = 32:9 super-wide
    • uw = 48:9 ultra-wide
    • Use the Model Bible data or naming doc to confirm resolution for each size/family combo if uncertain
  3. Determine Controller from the suffix:

    • No s suffix = Intelligent (MP-series controller; ask which one if not specified, or default to current-gen MP205 for new models)
    • s suffix = Secondary (SDI controller for M/MR families, USB for MLP)
  4. Look up Family Pattern in references/description-formulas.md Section 0 for the matching Family Code

  5. Look up Panel Text: Read references/panel-descriptions.md, find the row matching [Family] + [Resolution]

  6. Look up Controller Text: Read references/controller-descriptions.md, find the row matching the controller code

  7. Check for missing data -- if step 4 or 5 returns no match, trigger the Missing Data Interview (see below)

  8. Assemble all outputs using the formulas in references/description-formulas.md


B) Create a New Model Number (Interview Mode)

When the user wants to add a new display to the catalog, conduct a structured interview to gather:

  1. Vehicle / Environment type: Bus (M), Rail (MR), Low Power/E-Paper (MLP), Indoor Standard (I), Indoor Commercial (IX), Semi-Outdoor External (E), Outdoor Extreme (EX), Outdoor Designer (EXD), LED Modular (LM), LED Cabinet (LC)?
  2. Screen size: Diagonal in inches (or module footprint in mm for LM/LC)
  3. Aspect ratio: Standard 16:9, Portrait 9:16 (v), Super-Wide 32:9 (sw), Ultra-Wide 48:9 (uw)?
  4. Controller: Will it have an MP-series intelligent controller (which one?) or be a secondary SDI/USB display (s)?
  5. Special features: Touch (t)? Kiosk (k)? Dual-sided (Dual)? Pole mount (p)? Flag mount (f)?
  6. Generation: Is this a new generation of an existing model, or a brand new model (G1)?
  7. Client code: Is this a standard product or a custom client build?

Once you have all attributes:

  • Generate the model number following the pattern: [Family][Size][AspectSuffix][FeatureFlags][-Modifier][-GenOrClientCode]
  • Look up panel and controller descriptions from the reference files
  • If panel data is missing, trigger the Missing Data Interview (see below)
  • Assemble all outputs as in Entry Point A

Always show the user the decoded/constructed model attributes before generating content, so they can confirm or correct.


Missing Data Interview & Self-Update

When a Family + Resolution combination is not found in references/panel-descriptions.md, or when a controller is not found in references/controller-descriptions.md:

Step 1: Notify the user

Tell the user: "I don't have panel specifications on file for [Family + Resolution]. I'll ask a few questions to capture the specs, then add them to the reference library for future use."

Step 2: Conduct the panel interview

Ask the following questions (one message, structured):

  • Panel brightness: What is the NIT rating? (e.g., 350, 500, 700, 1500, 2000)
  • Cover glass: What is the cover glass spec? (e.g., "3mm Anti-Reflective", "3+3mm Laminated Anti-Reflective/Anti-Glare", "6mm AR/AG", or "none" for indoor standard)
  • Impact rating: What is the impact protection rating? (e.g., IK7, IK8, IK9, IK10, or N/A)
  • Panel type: Standard LCD, High-Temperature Non-Darkening LCD, E-Paper, LED?
  • Automatic brightness: Does the display have an automatic brightness control sensor? (Yes/No)
  • Special notes: Any other notable panel attributes (e.g., reflective technology, supplemental backlight, front light)

Step 3: Construct the new panel description text

Using the collected data, assemble the panel text following the pattern of the closest existing entry in the same family section. Key patterns:

  • M family: "Vehicle Rated [ResolutionLabel] ([Resolution]) [Aspect] LCD Display Panel with [NIT] NIT High Brightness LED Backlight, Automatic Brightness Control Sensor, Integrated [Glass] for [IK] Rated Impact Protection"
  • MR family: Same as M but "Rail Rated" prefix and "3+3mm Laminated" glass
  • IX family: "Commercial Rated [ResolutionLabel] ([Resolution]) [Aspect] LCD Display Panel with [NIT] NIT High Brightness LED Backlight, Integrated [Glass] for [IK] Rated Impact Protection"
  • EX family: "Fully Outdoor Rated [ResolutionLabel] ([Resolution]) [Aspect] High Temperature Non-Darkening LCD Display Panel, with [NIT]+ NIT Sunlight Readable LED Backlight, Automatic Brightness Control Sensor, Integrated [Glass] for [IK] Rated Impact Protection"
  • E family: "Semi-Outdoor Rated [ResolutionLabel] ([Resolution]) [Aspect] High Brightness LCD Display Panel with [NIT] NIT LED Backlight, Automatic Brightness Control Sensor, Integrated [Glass] for [IK] Rated Impact Protection"
  • I family: "Standard Indoor [ResolutionLabel] ([Resolution]) [Aspect] LCD Display Panel with [NIT] NIT LED Backlight"
  • LM/LC: "MP.TV Modular LED Display [Dimensions], [PixelPitch]mm Pixel Pitch, [NIT] NIT, IP[Rating] Rated"

Resolution label shortcuts:

  • 1920x1080 = "FHD"
  • 3840x2160 = "UHD"
  • 1080x1920 = "FHD"
  • 1920x540 = "Super-Wide 32:9"
  • 3840x1080 = "Super-Wide 32:9"
  • 1920x360 = "Low Profile Ultra-Wide 48:9"
  • 3840x720 = "Low Profile Ultra-Wide 48:9"

Step 4: Show the user and confirm

Display the new panel text and purchase line for confirmation before writing it.

Step 5: Write the new entry to the reference file

After confirmation, append the new row to the appropriate section in references/panel-descriptions.md:

| [Resolution] | [Full panel text] | [Purchase line] |

Confirm to the user: "I've added [Family + Resolution] to the panel reference library. It will be available for all future models using this panel."


Standard Outputs

Generate all of the following for every product (unless the user specifies only some):

1. Decoded Model Summary

A table showing each component of the model number and what it means. This helps the user confirm the decode is correct before content is generated.

Component Code Meaning
Family M Mobile Bus
Size 24 24-inch diagonal
... ... ...

2. Part Number

Format: MPTV-[ModelFix]-G[Generation] (ModelFix = model number with "-Dual" replaced by "d")

3. Display Description

The full marketing/catalog description assembled from the formula. This is the primary product description used in Odoo and the catalog.

4. Purchase Description

The short procurement line used on purchase orders and in the purchase database.

5. Odoo KB Article Draft (HTML)

A complete Knowledge Base article as clean HTML suitable for pasting directly into Odoo's Knowledge WYSIWYG editor. Follow the template in assets/KB-Article-Template.html and the section-by-section fill guide in references/description-formulas.md.

HTML output rules:

  • Use <h2> for the article title, <h3> for all section headers
  • Use <table>/<tr>/<td> for all spec tables -- never markdown tables
  • Use <ul>/<li> for bullet lists, <p> for paragraphs
  • Never include <html>, <head>, <body>, or <!DOCTYPE> tags
  • Always use HTML entities for special characters -- never paste in raw Unicode:
    • Em dash → &mdash; (never the literal character —)
    • En dash → &ndash; (never )
    • Ampersand → &amp;
    • Non-breaking space → &nbsp;
    • Degree sign → &deg;
    • Multiplication/times → &times;
    • Smart quotes → &ldquo; / &rdquo; / &lsquo; / &rsquo;
  • Leave image and link placeholders using <em>[instruction text]</em>
  • The Logical Component Block Diagram section is always a placeholder -- diagram created separately via Excalidraw/Draw.io
  • The Shop Diagram section always uses a [LINK] placeholder until a drawing is available

Block Diagram Labelling Rule: When generating Draw.io or Excalidraw block diagrams, component boxes must NEVER include part numbers or model numbers (e.g. RK3399, NEO-M8N, EC25AF, YZ-006-V3, DZ-LP0818, TOSN-AD1210P, YHCN001). These vary by production run and will become stale. Only include informational labels that describe function and electrical characteristics: electrical specs (12V / 10A, 10-33V DC), connector types (SMA External, BNC Coax), protocols (802.11 b/g/n/ac, LTE Cat-4, PWM), physical characteristics (8 Ohm / 5W), or template placeholders ([Size], [Resolution], [NIT], [Spec]). This rule applies to all family templates (M, MR, I, IX, E, EX, EXD, LM, LC, MLP).


Important Rules

Never fabricate specs. All panel brightness, glass specs, IK ratings, and controller details must come from the reference lookup tables. If a Family+Resolution combination isn't in the panel table, conduct a Missing Data Interview rather than inventing values.

Always use the Family Pattern Rules table. Do not guess Prefix1, Model Type, Family Display Text, or Warranty Text -- look them up in references/description-formulas.md Section 0. Different families have different warranty text (Depot vs. Component).

Secondary displays (s suffix) always need a note. Any model with the "s" suffix (SDI or USB secondary) must include a note in the KB article Connectivity section that these displays require a primary Intelligent display (MP-series controller) as a content source.

Dual models. Models with "-Dual" in the name are two-sided. In the Part Number, replace "-Dual" with "d". Mention dual-sided nature prominently in the display description and use cases.

E-Paper (MLP) is different. MLP models use E-Paper panels, not LCD. These displays have very different use cases (schedule boards, low-power deployments) -- reflect that in the KB article.

LED families (LM, LC). Screen size is in mm module dimensions, not diagonal inches. Panel Technology = "LED". No HS Code suffix logic applies in the same way -- note LED products may require a different HS code.

E/EX/EXD warranty is Component, not Depot. These outdoor families use "Includes Standard One Year Parts and Labor Component Warranty" -- not Depot. Do not use Depot warranty text for these families.

Ask before assuming Generation. If the user doesn't specify a Generation number and it's not obvious from context, ask -- it matters for the Part Number.

Confirm before generating. Always show the decoded model summary table first and ask the user to confirm before producing the full output set. This prevents wasted effort if a suffix was misread.

Self-update on new data. Whenever you add new panel descriptions via the Missing Data Interview, immediately write the new entry to references/panel-descriptions.md. The reference files are living documents -- keep them current.


Example Interaction Flow

User: "Can you write up the IX55 for me with MP205?"

You:

  1. Read reference files
  2. Decode: IX=Indoor Extreme, 55"=size, no suffix=16:9 landscape, no s=Intelligent controller (MP205)
  3. Lookup Family Pattern: IX → Prefix1="MP.TV Ruggedized", ModelType="Indoor", FamilyText="Commercial Display with", Warranty="Depot"
  4. Show decoded summary table, ask user to confirm generation number
  5. Look up panel: IX + 3840x2160 → "Commercial Rated UHD (3840x2160) 16:9 LCD Display Panel..."
  6. Look up controller: MP205 → "Embedded MP205 Controller with 2.2Ghz..."
  7. Assemble and output Part Number, Display Description, Purchase Description, KB Article

User: "Can you write up the EX43 with MP200, but 1800x1200 resolution?"

You:

  1. Parse model, look up Family Pattern for EX
  2. Look for EX + 1800x1200 in panel-descriptions.md -- not found
  3. Trigger Missing Data Interview: "I don't have panel specs for EX + 1800x1200. Let me ask a few questions..."
  4. Collect NIT, glass, IK rating, etc.
  5. Confirm assembled panel text with user
  6. Write new row to panel-descriptions.md
  7. Proceed with full output generation