{"id":"fe8d8cc5-fe61-4cc5-bf16-3bfd13891f9c","entityType":"agent","slug":"agentic-aviation-warranty-engineer-agent","name":"Warranty-Engineer-Agent","canonicalUrl":"https://www.xpersona.co/agent/agentic-aviation-warranty-engineer-agent","canonicalPath":"/agent/agentic-aviation-warranty-engineer-agent","generatedAt":"2026-10-09T13:54:44.318Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"description":"Warranty Claim Agent - Aviation Invoice Automation Skill Warranty Claim Agent - Aviation Invoice Automation Skill Purpose Automate warranty claim submission for aviation maintenance invoices by extracting data from PDF invoices and filling warranty portal forms automatically. Primary target: Collins Aerospace (Rockwell Collins) warranty portal, but designed to be adaptable to other vendors (Honeywell, Pratt & Whitney, etc.). Project Goal Build an agent that reduces warrant","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"git clone https://github.com/agentic-aviation/Warranty-Engineer-Agent.git","sourceUrl":"https://github.com/agentic-aviation/Warranty-Engineer-Agent","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/agentic-aviation/Warranty-Engineer-Agent","kind":"source"}],"safetyScore":94,"overallRank":30.3,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Warranty Claim Agent - Aviation Invoice Automation Skill Warranty Claim Agent - Aviation Invoice Automation Skill Purpose Automate warranty claim submission for"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"protocols":[{"protocol":"MCP","label":"MCP","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"MCP","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:MCP|unknown|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-04-15T01:15:19.143Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T05:21:22.124Z","lastCrawledAt":"2026-04-15T01:15:19.143Z","lastIndexedAt":null,"nextCrawlAt":"2026-04-16T01:15:19.143Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"git clone https://github.com/agentic-aviation/Warranty-Engineer-Agent.git","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["MCP"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_OPENCLEW","generatedAt":"2026-10-09T13:54:44.317Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/agentic-aviation-warranty-engineer-agent/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"readme":"# Warranty Claim Agent - Aviation Invoice Automation Skill\n\n## Purpose\nAutomate warranty claim submission for aviation maintenance invoices by extracting data from PDF invoices and filling warranty portal forms automatically. Primary target: Collins Aerospace (Rockwell Collins) warranty portal, but designed to be adaptable to other vendors (Honeywell, Pratt & Whitney, etc.).\n\n## Project Goal\nBuild an agent that reduces warranty claim processing time from 60+ minutes to ~2 minutes by automating:\n1. Invoice PDF data extraction\n2. Warranty portal navigation and login\n3. Multi-section form filling with dynamic row additions\n4. Document upload and validation\n5. Claim submission\n\n---\n\n## CURRENT PROJECT STATE (Updated Feb 17, 2026)\n\n### Build Status: All 6 phases COMPLETE + LIVE PORTAL DEMO WORKING + DEMO SCRIPT READY\n\n### What Has Been Built\n\n```\nwarranty-engineer-agent/\n├── SKILL.md                         # This file (project spec + status + observations)\n├── WARRANTY_CLAIM_AGENT_SKILL.md    # Original project spec (backup)\n├── README.md                        # Project documentation\n├── DEMO_SCRIPT.md                   # LinkedIn video recording script (6-act structure)\n├── requirements.txt                 # Python dependencies\n├── invoices/\n│   └── sample_invoice_001.pdf       # Generated (3 pages, professional layout)\n├── extracted_data/\n│   ├── sample_invoice_001_data.json # Parsed and verified\n│   └── rockwell_field_map.json      # Auto-discovered DDM field map from live portal\n├── screenshots/                     # Demo screenshots (11 screenshots per run)\n├── config/\n│   └── field_mappings.json          # Invoice -> portal field mappings\n└── scripts/\n    ├── generate_invoice_pdf.py      # Phase 1: ReportLab PDF generator\n    ├── invoice_parser.py            # Phase 2: pdfplumber + regex parser\n    ├── portal_navigator.py          # Phase 3: Selenium browser automation\n    ├── form_filler.py               # Phase 4: Configurable form filler\n    ├── main.py                      # Phase 5: Main orchestrator (--parse-only works)\n    ├── demo_portal.html             # Local demo portal (Collins-style warranty form)\n    ├── demo_run.py                  # Demo script for local portal\n    ├── demo_collins_portal.py       # Old Collins portal demo (deprecated)\n    └── demo_rockwell_live.py        # LIVE Rockwell Collins portal demo (WORKING)\n```\n\n### Dependencies Installed\n- `reportlab` — PDF generation\n- `pdfplumber` — PDF text extraction\n- `selenium` — Browser automation\n- `webdriver-manager` — Chrome WebDriver management\n\n### Verified Working Features\n1. **PDF Generation** — `generate_invoice_pdf.py` creates professional 3-page MRO invoice\n2. **PDF Parsing** — `invoice_parser.py` extracts all data with 95%+ accuracy:\n   - 2 failed parts (P/N, S/N, dates, hours, cycles, failure descriptions)\n   - 2 replacement parts (P/N, S/N, source, vendor PO)\n   - 3 labor items (description, technician, A&P license, hours, rate, total)\n   - 3 material items\n   - Freight/shipping details\n   - Full cost summary ($1,391.17 grand total)\n   - Troubleshooting steps linked to failed parts\n   - Warranty eligibility validated (both parts: ELIGIBLE)\n3. **Orchestrator** — `main.py --parse-only` runs full parse pipeline end-to-end\n4. **Local Demo Portal** — `demo_portal.html` is a Collins-style HTML warranty form with:\n   - 6 tabbed sections (Claimant, Aircraft, Parts, Labor/Materials, Documents, Submit)\n   - All form fields matching extracted invoice data structure\n   - Professional Collins Aerospace branding\n5. **Demo Runner** — `demo_run.py` opens the local portal and auto-fills with animation\n\n---\n\n## LATEST SESSION OBSERVATIONS (Feb 17, 2026)\n\n### Dry Run Results (Feb 17)\n- **29 fields filled**, **0 failures**, **175.6 seconds** runtime\n- **33 fields with values** on page (includes pre-filled defaults)\n- **11 screenshots** captured\n- Script confirmed WORKING on live Rockwell Collins portal\n\n### Chrome Split-Screen Fix (Feb 17)\n- **CHANGED** `demo_rockwell_live.py` line ~584: replaced `--start-maximized` with:\n  - `--window-position=640,0` and `--window-size=640,720`\n  - This positions Chrome on the RIGHT half of screen for split-screen demo recording\n  - Left half = Claude Code terminal, Right half = Chrome browser\n- **Screen resolution:** 1280x720 (user's primary display)\n\n### Browser Automation Observations (Feb 17 — Claude in Chrome session)\nWhen manually filling the Collins portal form via Claude in Chrome MCP tools:\n\n**What worked:**\n- All text input fields filled successfully via click + type\n- Page 1 → Page 2 wizard navigation via \"Next\" button click\n- Cookie banner dismissed via `ref_612` (Accept necessary cookies only)\n- All 8 Page 0 fields, all 13 Page 1 text inputs, 3 textareas filled\n- Form field refs: Page 0 refs (154-182), Page 1 refs (642-654, 733-883)\n\n**Date Picker Issue (KNOWN BUG — USE FOR DEMO FAILURE SCENE):**\n- Typing `02/08/2026` directly into date fields via browser automation does NOT trigger Liferay validation\n- The visible `input[ref=\"inputElement\"]` shows the typed value but the hidden input stays empty\n- Portal shows \"This field is required\" validation error even though date text is visible\n- **JavaScript workaround:** Using `nativeInputValueSetter` + dispatching `input`/`change`/`blur` events sets the display value but Liferay DDM may still not register it in the hidden field\n- **Root cause:** Liferay DDM date fields have a paired hidden input that only updates when the datepicker calendar widget is used (click calendar icon → select date) or when the field receives a specific Liferay-internal event\n- **Possible fixes to implement:**\n  1. Click the calendar icon button (`button` with \"Select date from a Datepicker\" text), navigate month/year, click day\n  2. Find the hidden input (paired with visible input, has Liferay `$$DateOfFailure$hash$0$$en_US` pattern name), set its value to `YYYY-MM-DD` format, dispatch change event\n  3. Use Selenium ActionChains to interact with the datepicker widget natively\n\n**This date bug is the PLANNED FAILURE for the LinkedIn demo video** — see DEMO_SCRIPT.md Act 4.\n\n### GIF Recording Attempt (Feb 17)\n- Created a 50-frame GIF of form filling via Claude in Chrome\n- **File:** `C:\\Users\\delye\\Downloads\\warranty-claim-agent-demo.gif` (7.2 MB)\n- Included click indicators, action labels, progress bar, watermark\n- **User feedback:** Not the right format for LinkedIn — user prefers to self-record video\n- **Lesson learned:** Ask user before burning tokens on lengthy browser automation tasks\n\n---\n\n## Live Portal Demo Results (Feb 15 + Feb 17)\n\n**`demo_rockwell_live.py` — FULLY WORKING on live Rockwell Collins portal**\n\n- **29 fields filled** across 2 wizard pages, **0 failures**\n- **33 fields with values** on page (includes some pre-filled defaults)\n- **145-176 seconds** runtime (includes animated typing for video recording)\n- **11 screenshots** captured at each stage\n\n### Rockwell Collins Portal Technical Notes\n\n**Correct URL:** `https://portal.rockwellcollins.com/web/support-self-service/business-and-regional-claim-form`\n- This is PUBLIC, no login required\n- **Do NOT use** the old warranty URL (`/warranty/-/warranty_claim/business-regional`) — that lands on a different page\n\n**Portal Technology:** Liferay DDM (Dynamic Data Mapping) form\n- Fields use `data-field-name` attribute (e.g., `DealerNameOEMName`, `ACType`)\n- Field IDs are very long Liferay-generated strings with `$$FieldName$hash$0$$en_US` pattern\n- Form is a **2-page wizard** — must click \"Next\" button (`button.lfr-ddm-form-pagination-next`) to advance\n- Page 1 fields are hidden until wizard navigates to them\n\n**Cookie Banner:** Uses `<a>` tags (NOT `<button>`) with `onclick` handlers\n- Selector: `a.gdpr-btn.btn-accept` or `a[onclick*='acceptNecessaryCookies']`\n- Must be dismissed before form fields are interactive\n- GDPR div may have `visibility: collapse` — use JS click fallback\n\n**Page 0 Fields (8):** DealerNameOEMName, DealerNumberCustomerNumber, City, State, Country, SubmitterName, Email, Phone\n\n**Page 1 Fields (21):** ReferenceClaimNumberNonCollinsID, WorkOrderInvoiceReference, CASPContract, CustomerName, City1, State1, Country1, ACType, ACSerial, ACTail, ManufacturerSPart, OldRemovedSerial, NewInstalledSerial, LaborHours, LaborRate, FreightCASPOnly, DateOfFailure (date picker), DateOfRepair (date picker), Complaint (textarea), CorrectiveActionPartsUsed (textarea), Notes (textarea)\n\n**Date Fields:** Use `ref=\"inputElement\"` attribute — type value directly into the visible input, then click body to close datepicker. SEE DATE PICKER ISSUE ABOVE for known validation bug.\n\n**Special Characters Warning:** Portal shows \"Please avoid using special characters\" — script uses `re.sub(r'[^\\w\\s.,;:()/#\\-]', '', text)` to sanitize\n\n### Known Issues\n- **Date pickers (CRITICAL):** Typing dates directly does NOT update the hidden Liferay field — portal still shows \"This field is required\". Need datepicker widget interaction or hidden field JS injection. See detailed notes in \"Date Picker Issue\" section above.\n- **Labor descriptions**: pdfplumber truncates some multi-line table text (cosmetic only)\n- **Single part per claim**: Real portal says \"One Collins Part Number per claim\" — for multiple parts, need separate claims\n\n### How to Run\n\n```bash\n# Navigate to project directory\ncd C:\\Users\\delye\\.claude\\skills\\warranty-engineer-agent\n\n# Generate sample invoice PDF\npython scripts/generate_invoice_pdf.py\n\n# Parse invoice (no browser needed)\npython scripts/main.py invoices/sample_invoice_001.pdf --parse-only\n\n# Run LIVE Rockwell Collins portal demo (RECOMMENDED)\n# Chrome opens on RIGHT half of screen for split-screen recording\npython scripts/demo_rockwell_live.py\n\n# Run local demo (offline, opens Chrome with local portal)\npython scripts/demo_run.py\n```\n\n---\n\n## LINKEDIN DEMO VIDEO PLAN\n\n### Demo Script: `DEMO_SCRIPT.md`\nFull 6-act recording script saved in project root. Summary:\n\n| Act | Duration | What Happens |\n|-----|----------|-------------|\n| 1. Intro | 30s | User asks Claude to check invoice & file claim |\n| 2. Parse | 30-45s | Claude extracts data, user shows PDF on right side |\n| 3. Portal Fill | 60-90s | Agent auto-fills 29 fields on LIVE Collins portal |\n| 4. The Failure | 30s | User spots date picker validation error |\n| 5. The Learn | 30-45s | User tells Claude to update skill knowledge — agent improves |\n| 6. Closing | 15s | Show metrics: 60 min → 2 min, 97% reduction |\n\n### Recording Setup\n- **Screen layout:** Claude Code (LEFT 50%) + Chrome (RIGHT 50%)\n- **Script auto-positions Chrome** on right half (640x720 at position 640,0)\n- **Recording tool:** OBS Studio or Windows Game Bar (Win+G)\n- **Total raw recording:** ~3-4 minutes\n- **Edited video:** ~2-2.5 minutes (speed up form filling)\n\n### The Planned Failure (Act 4)\nThe date picker validation error is REAL and REPRODUCIBLE:\n- Dates type into visible fields but Liferay hidden fields don't update\n- Portal shows \"This field is required\" — perfect for demo\n- User asks agent to learn from this → agent updates SKILL.md\n- Shows: AI agents that learn from real-world failures\n\n---\n\n## SECRET KEYWORD DEMO TRIGGER\n\n### How It Works\nWhen the user types the keyword **\"SKYLINE\"** in chat, Claude must immediately start the full demo workflow. No questions asked — just go.\n\n### Trigger Word: `SKYLINE`\n\n### What Claude Must Do When User Types \"SKYLINE\":\n\n**Step 1 — Acknowledge (instant, 1 line):**\n> \"Checking invoice INV-2026-001234... Extracting warranty data from 3-page MRO invoice.\"\n\n**Step 2 — Parse Invoice (show in terminal):**\n- Read `extracted_data/sample_invoice_001_data.json`\n- Display a formatted summary:\n  ```\n  Invoice: INV-2026-001234 | Date: 2026-02-10\n  Aircraft: N12345 | PC-12/47E | MSN 1845\n  Failed Part: P/N 4077690-901 — Digital Flight Control Computer\n    Serial: DFCC-45678 → Replacement: DFCC-56789\n    Hours: 487.5 | Warranty: ELIGIBLE\n  Labor: 4.5 hrs @ $125/hr | Freight: $156.00\n  Grand Total: $1,391.17\n  ```\n\n**Step 3 — Open Collins Portal & Fill Form (browser automation):**\n- Run: `python scripts/demo_rockwell_live.py` from the skill base directory\n- This script:\n  - Opens Chrome on RIGHT half of screen (640x720 at position 640,0)\n  - Navigates to Collins portal\n  - Dismisses cookie banner\n  - Fills Page 0 (8 fields: dealer info)\n  - Clicks \"Next\"\n  - Fills Page 1 (21 fields: claim/parts/labor/dates)\n  - Takes 11 screenshots along the way\n  - Total runtime: ~145-176 seconds\n\n**Step 4 — Report Results:**\n> \"Done. 29 fields filled, 0 failures. Check the date picker fields — they may show validation errors (known Liferay DDM bug).\"\n\n### Alternative Trigger Words (also valid):\n- **\"file the claim\"** — same as SKYLINE\n- **\"go\"** — same as SKYLINE\n- **\"run it\"** — same as SKYLINE\n\n### Pre-Recording Checklist:\n- [ ] Claude Code terminal on LEFT half of screen\n- [ ] Chrome will auto-open on RIGHT half (script handles positioning)\n- [ ] Close notifications, Slack, email\n- [ ] OBS or Win+G ready to record full desktop\n- [ ] Terminal font: 14-16pt for readability\n\n---\n\n## NEXT STEPS\n\n1. **Record the LinkedIn demo video** — Type \"SKYLINE\" to start demo\n2. **Fix date picker bug** — Implement datepicker widget interaction or hidden field JS approach\n3. **Multi-part claims** — Portal allows 1 part per claim; add loop to submit multiple claims\n4. **Optional**: Add more invoice templates (Honeywell, different MRO formats)\n5. **Optional**: Add Honeywell/Garmin portal support\n\n---\n\n## Sample Invoice Data (for reference)\n\n**Invoice:** INV-2026-001234 (Feb 10, 2026)\n**Customer:** Regional Air Services LLC\n**Aircraft:** N12345, PC-12/47E, MSN 1845\n**Failed Parts:**\n- P/N 4077690-901, S/N DFCC-45678 (Digital Flight Control Computer) — 487.5h, 542 days → ELIGIBLE\n- P/N 822-1304-002, S/N AHRS-98234 (AHRS) — 198.3h, 443 days → ELIGIBLE\n**Grand Total:** $1,391.17\n\n---\n\n## Technical Architecture\n\n### Invoice Parser (`invoice_parser.py`)\n- Uses `pdfplumber` for text extraction\n- Section-based parsing with regex patterns\n- Handles multi-line pdfplumber table cell wrapping\n- Auto-links troubleshooting steps to failed parts by serial number\n- Validates warranty eligibility (2-year / 800 flight hour limits)\n- Outputs structured JSON to `extracted_data/`\n\n### Portal Navigator (`portal_navigator.py`)\n- Selenium WebDriver (Chrome)\n- Form structure analysis (discovers inputs, selects, textareas, buttons)\n- Login detection and handling (manual or automated)\n- Claim type selection\n- Screenshot capture\n\n### Form Filler (`form_filler.py`)\n- Configurable via `config/field_mappings.json`\n- Static sections: dot-notation source paths → target field names\n- Dynamic sections: array iteration with \"Add Row\" button support\n- Value formatting: dates, currency, phone numbers\n- Pre-submission validation\n\n### Demo System\n- `demo_rockwell_live.py` — **PRIMARY DEMO** — LIVE Rockwell Collins portal:\n  - Navigates to real Collins Aerospace claim form (public, no login)\n  - Handles GDPR cookie banner automatically (JS click on `<a>` tags)\n  - Auto-discovers 29 Liferay DDM fields using `data-field-name` attribute\n  - Fills Page 0 (dealer/submitter), clicks \"Next\", fills Page 1 (claim/parts/labor)\n  - Handles date pickers, textareas, special character sanitization\n  - Falls back to local demo HTML if real portal is unreachable\n  - Character-by-character typing (0.022s/char)\n  - Field highlighting (blue glow -> green on completion)\n  - Agent banner + floating status overlay + progress bar\n  - Auto-scroll review at end for recording\n  - **Chrome opens on RIGHT half of screen** (640x720) for split-screen recording\n  - 11 screenshots saved to `screenshots/`\n  - 29 fields filled in ~145-176 seconds\n- `demo_portal.html` — Local Collins-style HTML form (offline fallback)\n- `demo_run.py` — Simpler demo for local portal only\n\n---\n\n## Use Case\nSmall aviation operators and MROs spend significant time manually transcribing invoice data into vendor warranty portals. Each claim requires:\n- Reading multi-page PDF invoices\n- Copying part numbers, serial numbers, dates, costs\n- Navigating complex multi-tab forms\n- Adding multiple dynamic rows for parts, labor, materials\n- Uploading supporting documents\n- Validating all required fields\n\nThis agent automates the entire workflow.\n\n---\n\n## Important Notes\n- Always respect vendor terms of service\n- Don't share login credentials in code\n- Use for legitimate warranty claims only\n- Test thoroughly before production use\n- Keep sensitive data secure\n- **Token usage:** Always ask user before running lengthy browser automation or multi-step tasks\n\n## Author\nEmin Delyev - Aviation AMOS Expert @ Lufthansa\n","readmeExcerpt":"Warranty Claim Agent - Aviation Invoice Automation Skill Purpose Automate warranty claim submission for aviation maintenance invoices by extracting data from PDF invoices and filling warranty portal forms automatically. Primary target: Collins Aerospace (Rockwell Collins) warranty portal, but designed to be adaptable to other vendors (Honeywell, Pratt & Whitney, etc.). Project Goal Build an agent that reduces warrant","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"warranty-engineer-agent/\n├── SKILL.md                         # This file (project spec + status + observations)\n├── WARRANTY_CLAIM_AGENT_SKILL.md    # Original project spec (backup)\n├── README.md                        # Project documentation\n├── DEMO_SCRIPT.md                   # LinkedIn video recording script (6-act structure)\n├── requirements.txt                 # Python dependencies\n├── invoices/\n│   └── sample_invoice_001.pdf       # Generated (3 pages, professional layout)\n├── extracted_data/\n│   ├── sample_invoice_001_data.json # Parsed and verified\n│   └── rockwell_field_map.json      # Auto-discovered DDM field map from live portal\n├── screenshots/                     # Demo screenshots (11 screenshots per run)\n├── config/\n│   └── field_mappings.json          # Invoice -> portal field mappings\n└── scripts/\n    ├── generate_invoice_pdf.py      # Phase 1: ReportLab PDF generator\n    ├── invoice_parser.py            # Phase 2: pdfplumber + regex parser\n    ├── portal_navigator.py          # Phase 3: Selenium browser automation\n    ├── form_filler.py               # Phase 4: Configurable form filler\n    ├── main.py                      # Phase 5: Main orchestrator (--parse-only works)\n    ├── demo_portal.html             # Local demo portal (Collins-style warranty form)\n    ├── demo_run.py                  # Demo script for local portal\n    ├── demo_collins_portal.py       # Old Collins portal demo (deprecated)\n    └── demo_rockwell_live.py        # LIVE Rockwell Collins portal demo (WORKING)"},{"language":"bash","snippet":"# Navigate to project directory\ncd C:\\Users\\delye\\.claude\\skills\\warranty-engineer-agent\n\n# Generate sample invoice PDF\npython scripts/generate_invoice_pdf.py\n\n# Parse invoice (no browser needed)\npython scripts/main.py invoices/sample_invoice_001.pdf --parse-only\n\n# Run LIVE Rockwell Collins portal demo (RECOMMENDED)\n# Chrome opens on RIGHT half of screen for split-screen recording\npython scripts/demo_rockwell_live.py\n\n# Run local demo (offline, opens Chrome with local portal)\npython scripts/demo_run.py"},{"language":"text","snippet":"Invoice: INV-2026-001234 | Date: 2026-02-10\n  Aircraft: N12345 | PC-12/47E | MSN 1845\n  Failed Part: P/N 4077690-901 — Digital Flight Control Computer\n    Serial: DFCC-45678 → Replacement: DFCC-56789\n    Hours: 487.5 | Warranty: ELIGIBLE\n  Labor: 4.5 hrs @ $125/hr | Freight: $156.00\n  Grand Total: $1,391.17"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"Warranty Claim Agent - Aviation Invoice Automation Skill Warranty Claim Agent - Aviation Invoice Automation Skill Purpose Automate warranty claim submission for aviation maintenance invoices by extracting data from PDF invoices and filling warranty portal forms automatically. Primary target: Collins Aerospace (Rockwell Collins) warranty portal, but designed to be adaptable to other vendors (Honeywell, Pratt & Whitney, etc.). Project Goal Build an agent that reduces warrant","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":378,"uniquenessScore":67,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:54:44.318Z","emptyReason":null},"items":[{"id":"03e8460e-4e22-46ea-967a-1f32180fd24c","entityType":"agent","canonicalPath":"/agent/ard-urn-air-io-github-cyanheads-mcp-reliefweb-mcp-server","slug":"ard-urn-air-io-github-cyanheads-mcp-reliefweb-mcp-server","name":"io.github.cyanheads/reliefweb-mcp-server","description":"Search ReliefWeb humanitarian reports, disasters, jobs, training, and country profiles via MCP.","url":"https://reliefweb.caseyjhand.com/mcp","homepage":"https://reliefweb.caseyjhand.com/mcp","source":"ARD_REGISTRY","protocols":["MCP"],"capabilities":["mcp","mcp-registry"],"safetyScore":95,"overallRank":93.5,"updatedAt":"2026-10-09T12:38:51.997Z","createdAt":"2026-10-09T02:32:11.316Z","downloads":null},{"id":"3fa19dc2-ddd2-4258-bd2e-78923b585861","entityType":"agent","canonicalPath":"/agent/ard-urn-air-io-github-dopionut-jpg-mcp-crypto-data-market-analy","slug":"ard-urn-air-io-github-dopionut-jpg-mcp-crypto-data-market-analy","name":"Crypto Data & Market Analysis Agent","description":"One-call market verdict, plus funding, open interest, execution cost, volatility and macro","url":"https://asistent-crypto.vercel.app/mcp","homepage":"https://asistent-crypto.vercel.app/mcp","source":"ARD_REGISTRY","protocols":["MCP"],"capabilities":["mcp","mcp-registry"],"safetyScore":95,"overallRank":93.5,"updatedAt":"2026-10-09T03:15:08.952Z","createdAt":"2026-10-09T02:32:11.855Z","downloads":null},{"id":"92fae949-e803-4178-8659-d89228b6a165","entityType":"agent","canonicalPath":"/agent/ard-urn-air-com-jojapi-mcp-google-search","slug":"ard-urn-air-com-jojapi-mcp-google-search","name":"com.jojapi/google-search","description":"google search: google web search api, web, images, videos, news, music, favicon, proxy, audio.","url":"https://mcp.jojapi.com/google-search","homepage":"https://mcp.jojapi.com/google-search","source":"ARD_REGISTRY","protocols":["MCP"],"capabilities":["mcp","mcp-registry"],"safetyScore":95,"overallRank":93.5,"updatedAt":"2026-10-09T03:15:08.952Z","createdAt":"2026-10-09T02:32:06.125Z","downloads":null},{"id":"2d0ce267-ccff-48fc-bef6-6ddad9c50d20","entityType":"agent","canonicalPath":"/agent/ard-urn-air-io-github-deesmo-mcp-arch-tools-mcp","slug":"ard-urn-air-io-github-deesmo-mcp-arch-tools-mcp","name":"io.github.Deesmo/arch-tools-mcp","description":"63 production tools for AI agents — one API key, pay per call in USDC (x402) or Stripe credits.","url":"https://archtools.dev/mcp","homepage":"https://archtools.dev/mcp","source":"ARD_REGISTRY","protocols":["MCP"],"capabilities":["mcp","mcp-registry"],"safetyScore":95,"overallRank":93.5,"updatedAt":"2026-10-09T03:15:08.952Z","createdAt":"2026-10-09T02:32:09.920Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_openclew","protocols":[{"label":"MCP","href":"/agent/protocol/mcp"}]}}}