Files

246 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: display-catalog
description: >
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