Add Handbook.md benchmark tasks
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
FROM handbook_base
|
||||
|
||||
COPY initial_external_services/ /data/
|
||||
COPY initial_external_services/ /initial_data/
|
||||
COPY initial_workspace/ /workdir/
|
||||
|
||||
ENV INPUTDIR=/data OUTPUTDIR=/data WORLDBENCH_TOOL_SETS="syntara_ds_all google_mail_contacts slack_core google_mail_core google_calendar_core jira_core shopify_core"
|
||||
+585
@@ -0,0 +1,585 @@
|
||||
{
|
||||
"events": {
|
||||
"evt-001": {
|
||||
"summary": "APPT-20260410-001 | Ridgeline Precision Axles | Dock 2",
|
||||
"start": {
|
||||
"dateTime": "2026-04-10T07:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-10T09:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Ridgeline Precision Axles (SUP-0157) | Carrier: XPO Logistics\nPO: MER-PO-104799 | Expected weight: 2,840 lb\nSKUs: AX-05512-C1 (96 units), DS-41002-B3 (6 units) \u2014 Safety-critical\nStatus: Complete (actual arrival 07:18, departure 09:52)\nNotes: Clean receipt. COC and MTR verified. Heat# match.",
|
||||
"location": "Dock 2, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-001"
|
||||
},
|
||||
"evt-002": {
|
||||
"summary": "APPT-20260411-001 | GreatLakes Transmission Parts | Dock 1",
|
||||
"start": {
|
||||
"dateTime": "2026-04-11T07:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-11T09:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: GreatLakes Transmission Parts (SUP-0089) | Carrier: FedEx Freight\nPO: MER-PO-104874 | Expected weight: 1,150 lb\nSKU: TR-67801-D1 \u2014 Safety-critical (partial shipment, 12 of 24 units)\nStatus: Complete (partial shipment per supplier split-ship notice)\nNotes: Balance 12 units due on MER-PO-104874 Line 001.",
|
||||
"location": "Dock 1, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-002"
|
||||
},
|
||||
"evt-003": {
|
||||
"summary": "APPT-20260412-001 | Cascade Fastener Corp | Dock 3 [PROBATION SUPPLIER]",
|
||||
"start": {
|
||||
"dateTime": "2026-04-12T07:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-12T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Cascade Fastener Corp (SUP-0051) \u2014 \u26a0 PROBATION STATUS | Carrier: Yellow Freight\nPO: MER-PO-104847 | Expected weight: 3,200 lb\nSKUs: FS-22801-A3 (500 SC bolts), FN-33102-B2 (1,000), FN-33105-B2 (1,000)\nStatus: Complete \u2014 100% inspection performed (Probation supplier)\nOutcome: Short ship \u221217 FS-22801-A3 (Band 1). NCR-MER-2026-0241 issued (Critical).",
|
||||
"location": "Dock 3, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-003"
|
||||
},
|
||||
"evt-004": {
|
||||
"summary": "APPT-20260414-001 | Lakewood Precision Forgings | Dock 2 [DTL/SC]",
|
||||
"start": {
|
||||
"dateTime": "2026-04-14T06:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-14T08:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Lakewood Precision Forgings (SUP-0012) | Carrier: XPO Logistics\nPO: MER-PO-104821 | Expected weight: 4,680 lb | 12 pallets\nSKUs: AX-04827-B2 (48), AX-05512-C1 (96), FG-91144-A1 (200) \u2014 Safety-critical AX/FG\n\u26a0 COC+MTR required per SOP Sec 12.5.1\nStatus: Complete \u2014 arrival 06:48\nOUTCOME: COC MISSING \u2192 full receipt QUARANTINED \u2192 NCR-MER-2026-0247 issued (CRITICAL)",
|
||||
"location": "Dock 2, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-004"
|
||||
},
|
||||
"evt-005": {
|
||||
"summary": "APPT-20260414-002 | Hartwell Bearing Technologies | Dock 1",
|
||||
"start": {
|
||||
"dateTime": "2026-04-14T08:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-14T10:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Hartwell Bearing Technologies (SUP-0034) | Carrier: Old Dominion\nPO: MER-PO-104835 | Expected weight: 1,920 lb\nSKUs: BG-33044-A1 (144 SC bearings), SL-10922-B1 (288 seals)\nStatus: Unloading \u2014 arrival 08:30\nOUTCOME: Tier 2 damage on 11/144 BG bearings \u2192 QUARANTINE \u2192 NCR-MER-2026-0248 (Major)\n Over-ship +12 SL-10922-B1 (Band B) \u2192 NCR-MER-2026-0249 (Minor)",
|
||||
"location": "Dock 1, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-005"
|
||||
},
|
||||
"evt-006": {
|
||||
"summary": "APPT-20260414-003 | Meridian Lube Supply | Dock 4 [HAZMAT UN1268 Class 3]",
|
||||
"start": {
|
||||
"dateTime": "2026-04-14T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-14T12:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Meridian Lube Supply (SUP-0067) | Carrier: Local pickup\nPO: MER-PO-104862 | Expected weight: 2,200 lb\nSKU: LB-55001-A2 \u2014 4 \u00d7 220L drums | \u26a0 HAZMAT: UN1268, Class 3 Flammable Liquid, PG II\nRequirements: SDS Rev 4 on-site, EH&S Coordinator (Maribel Ortiz) present per SOP Sec 17.1\nNo open flames at Dock 4 during unloading.",
|
||||
"location": "Dock 4, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-006"
|
||||
},
|
||||
"evt-007": {
|
||||
"summary": "APPT-20260414-004 | Lakewood \u2014 Direct-to-Line [DTL URGENT] | Dock 2",
|
||||
"start": {
|
||||
"dateTime": "2026-04-14T11:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-14T13:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Lakewood Precision Forgings (SUP-0012) | Carrier: XPO Logistics\nPO: MER-PO-104918 | Expected weight: 1,380 lb\nSKU: AX-04827-B2 (24 units) \u2014 Safety-critical | \u26a0 DIRECT-TO-LINE per SOP Sec 18\nDeliver to Line 4 assembly station. Notify Production on arrival.\nNOTE: PO MER-PO-104918 placed on informal hold per Walter Finch (04/22) pending NCR-0247 resolution.",
|
||||
"location": "Dock 2, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-007"
|
||||
},
|
||||
"evt-008": {
|
||||
"summary": "APPT-20260414-005 | Appalachian Seal & Gasket | Dock 3 [NEW SUPPLIER]",
|
||||
"start": {
|
||||
"dateTime": "2026-04-14T13:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-14T14:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Appalachian Seal & Gasket (SUP-0118) \u2014 NEW SUPPLIER | Carrier: UPS Freight\nPO: MER-PO-104891 | Expected weight: 840 lb\nSKUs: SL-10955-A1 (120 seals), BG-33101-A1 (60 SC bearings \u2014 Theo Brandt SC approval on file)\n\u26a0 100% inspection required per SOP Sec 15.2.3\nOutcome: REC-20260414-005 \u2014 clean receipt, exact count, Tier 0, docs complete.",
|
||||
"location": "Dock 3, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-008"
|
||||
},
|
||||
"evt-009": {
|
||||
"summary": "APPT-20260415-001 | Delta Metals & Alloys | Dock 1 [OVERSIZE/HEAVY \u2014 CRANE REQUIRED]",
|
||||
"start": {
|
||||
"dateTime": "2026-04-15T07:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-15T09:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Delta Metals & Alloys (SUP-0129) | Carrier: Estes Express\nPO: MER-PO-104906 | Expected weight: 5,100 lb\nSKUs: AX-04901-B1 (36 SC axle housings), TR-67944-C2 (18 SC trans gears)\n\u26a0 OVERSIZE/HEAVY \u2014 crane required at Dock 1 per SOP Sec 17.2\nCrane operator: Mike Stills | Lift specs: 3 lifts, heaviest piece ~2,200 lb\nCrane pre-position: 06:45. Do not begin unloading without crane operator confirmed.",
|
||||
"location": "Dock 1, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-009"
|
||||
},
|
||||
"evt-010": {
|
||||
"summary": "APPT-20260415-002 | GreatLakes Transmission \u2014 Balance Shipment | Dock 3",
|
||||
"start": {
|
||||
"dateTime": "2026-04-15T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-15T12:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: GreatLakes Transmission Parts (SUP-0089) | Carrier: FedEx Freight\nPO: MER-PO-104874 Line 001 | Expected weight: 980 lb\nSKU: TR-67801-D1 \u2014 balance 12 units (Safety-critical)\nNote: COC not yet received at time of scheduling. Closes NCR-MER-2026-0235 balance obligation.",
|
||||
"location": "Dock 3, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-010"
|
||||
},
|
||||
"evt-011": {
|
||||
"summary": "APPT-20260416-001 | Lakewood Precision Forgings | Dock 2 [Placeholder]",
|
||||
"start": {
|
||||
"dateTime": "2026-04-16T08:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-16T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: Lakewood Precision Forgings (SUP-0012) | Carrier: XPO Logistics\nPO: Not yet confirmed \u2014 placeholder appointment\nNOTE: Informal hold in effect on all Lakewood new releases pending resolution of NCR-MER-2026-0247 (Critical, COC overdue).",
|
||||
"location": "Dock 2, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-011"
|
||||
},
|
||||
"evt-012": {
|
||||
"summary": "NCR DEADLINE | NCR-MER-2026-0247 (CRITICAL) \u2014 Lakewood COC Due \u26a0 OVERDUE",
|
||||
"start": {
|
||||
"dateTime": "2026-04-21T17:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-21T17:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "NCR: NCR-MER-2026-0247 | Severity: CRITICAL | Type: Missing COC + Qty Short\nSupplier: Lakewood Precision Forgings (SUP-0012)\nPO: MER-PO-104821 | Receipt: REC-20260414-001\nSKUs: AX-04827-B2 (44 units), AX-05512-C1 (96), FG-91144-A1 (200) \u2014 all quarantined\nSOP Basis: Sec 12.5.1 \u2014 5 business days for missing COC on safety-critical receipt\n\u26a0 STATUS AS OF 04/23: COC NOT RECEIVED \u2014 OVERDUE (2 calendar days past deadline)\nEscalated to Elizabeth Velasquez + Walter Finch. Formal demand sent 04/23 07:00 CST.\nContact: Sandra Chu (s.chu@lakewoodprecision.com) | Mark Hendricks (m.hendricks@lakewoodprecision.com)",
|
||||
"id": "evt-012"
|
||||
},
|
||||
"evt-013": {
|
||||
"summary": "NCR DEADLINE | NCR-MER-2026-0248 (Major) \u2014 Hartwell Bearing Damage Response Due",
|
||||
"start": {
|
||||
"dateTime": "2026-04-28T17:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-28T17:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "NCR: NCR-MER-2026-0248 | Severity: Major | Type: Transit Damage (Tier 2)\nSupplier: Hartwell Bearing Technologies (SUP-0034)\nPO: MER-PO-104835 | Receipt: REC-20260414-002\nSKU: BG-33044-A1 \u2014 11 of 144 bearings with outer race impact dents\nSOP Basis: Sec 14.5 \u2014 10 business days for Major NCR\nHartwell CAR received 04/22 \u2014 OD freight claim filed (#ODG-2026-04812). Review in progress.\nQE: Theo Brandt | Contact: Lisa Okafor (l.okafor@hartwellbearing.com)",
|
||||
"id": "evt-013"
|
||||
},
|
||||
"evt-014": {
|
||||
"summary": "NCR DEADLINE | NCR-MER-2026-0241 (Critical) \u2014 Cascade Fastener FS Short Ship Response Due",
|
||||
"start": {
|
||||
"dateTime": "2026-05-02T17:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-05-02T17:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "NCR: NCR-MER-2026-0241 | Severity: Critical (SC floor + Probation +1 tier) | Type: Quantity Short\nSupplier: Cascade Fastener Corp (SUP-0051) \u2014 PROBATION\nPO: MER-PO-104847 | Receipt: REC-20260412-001\nSKU: FS-22801-A3 \u2014 483 received vs 500 ordered (\u221217 units, \u22123.4%)\n15 business days from issue date (04/13/2026) = due 05/02/2026\nBalance 17 units received 04/20 (REC-20260420-001). Awaiting formal CAR.\nReviewer: Joon-ho Park | Contact: Angela Metz (a.metz@cascadefastener.com)",
|
||||
"id": "evt-014"
|
||||
},
|
||||
"evt-015": {
|
||||
"summary": "NCR DEADLINE | NCR-MER-2026-0249 (Minor) \u2014 Hartwell Over-Ship Root Cause Response Due",
|
||||
"start": {
|
||||
"dateTime": "2026-05-05T17:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-05-05T17:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "NCR: NCR-MER-2026-0249 | Severity: Minor | Type: Quantity Over-ship Band B\nSupplier: Hartwell Bearing Technologies (SUP-0034)\nPO: MER-PO-104835 | Receipt: REC-20260414-002\nSKU: SL-10922-B1 \u2014 300 received vs 288 ordered (+12 excess)\nSOP Basis: Sec 14.5 \u2014 15 business days for Minor NCR\nMaterial disposition: ACCEPTED \u2014 Joon-ho Park authorized PO amendment 04/17. All 300 units in B-RCV-01.\nReviewer: Joon-ho Park | Contact: David Kowalski (d.kowalski@hartwellbearing.com)",
|
||||
"id": "evt-015"
|
||||
},
|
||||
"evt-016": {
|
||||
"summary": "NCR Issued: NCR-MER-2026-0247 (CRITICAL) \u2014 Lakewood Missing COC",
|
||||
"start": {
|
||||
"date": "2026-04-14"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-15"
|
||||
},
|
||||
"description": "NCR-MER-2026-0247 issued by K. Whitfield. Critical severity.\nReceipt REC-20260414-001 quarantined (AX-04827-B2 x44, AX-05512-C1 x96, FG-91144-A1 x200).\nTemplate 10 formal notice sent to Lakewood Precision Forgings.",
|
||||
"id": "evt-016"
|
||||
},
|
||||
"evt-017": {
|
||||
"summary": "NCR Issued: NCR-MER-2026-0248 (Major) \u2014 Hartwell Tier 2 Damage",
|
||||
"start": {
|
||||
"date": "2026-04-14"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-15"
|
||||
},
|
||||
"description": "NCR-MER-2026-0248 issued by K. Whitfield. Major severity.\n11 of 144 BG-33044-A1 bearings quarantined \u2014 outer race impact damage.\nTheo Brandt assigned for QE inspection.",
|
||||
"id": "evt-017"
|
||||
},
|
||||
"evt-018": {
|
||||
"summary": "NCR Issued: NCR-MER-2026-0249 (Minor) \u2014 Hartwell Over-Ship",
|
||||
"start": {
|
||||
"date": "2026-04-14"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-15"
|
||||
},
|
||||
"description": "NCR-MER-2026-0249 issued. Minor severity.\n12 excess SL-10922-B1 units staged pending Procurement disposition.\nJoon-ho Park assigned.",
|
||||
"id": "evt-018"
|
||||
},
|
||||
"evt-019": {
|
||||
"summary": "NCR Issued: NCR-MER-2026-0241 (Critical) \u2014 Cascade Short-Ship FS [PROBATION]",
|
||||
"start": {
|
||||
"date": "2026-04-13"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-14"
|
||||
},
|
||||
"description": "NCR-MER-2026-0241 issued. Critical severity (SC short ship floor = Major; Probation +1 tier = Critical per SOP Secs 14.3.3 and 15.2.2).\nShort ship \u221217 FS-22801-A3 safety-critical bolts. 100% inspection performed.\nCascade Fastener Corp on Probation status.",
|
||||
"id": "evt-019"
|
||||
},
|
||||
"evt-020": {
|
||||
"summary": "ESCALATION: NCR-MER-2026-0247 \u2014 Lakewood COC Deadline MISSED",
|
||||
"start": {
|
||||
"date": "2026-04-21"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-22"
|
||||
},
|
||||
"description": "Lakewood Precision Forgings failed to provide COC by 17:00 CST deadline.\nNCR-MER-2026-0247 escalated per SOP Sec 14.6.2.\nElizabeth Velasquez escalated to Walter Finch. Joon-ho Park placed hold on new Lakewood PO releases.\nMaterial remains on Q-HOLD.",
|
||||
"id": "evt-020"
|
||||
},
|
||||
"evt-021": {
|
||||
"summary": "ESCALATION: NCR-MER-2026-0247 \u2014 Walter Finch Authorizes Hold on MER-PO-104918",
|
||||
"start": {
|
||||
"date": "2026-04-22"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-23"
|
||||
},
|
||||
"description": "Walter Finch (Plant Manager) directed:\n1. Formal past-due notice to Lakewood (K. Whitfield)\n2. Informal hold on MER-PO-104918 (Joon-ho Park)\n3. Supplier capability review initiation if COC not received by 04/25 (Theo Brandt)\n4. Alternative sourcing evaluation \u2014 Ridgeline Precision Axles (Elizabeth Velasquez)",
|
||||
"id": "evt-021"
|
||||
},
|
||||
"evt-022": {
|
||||
"summary": "CRITICAL \u2014 NCR-MER-2026-0247 \u2014 Formal Demand Letter to Lakewood (12:00 CDT Deadline)",
|
||||
"start": {
|
||||
"dateTime": "2026-04-23T07:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-23T12:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "K. Whitfield issued formal demand letter at 07:00 CDT.\nLakewood required to provide COC covering PO MER-PO-104821 (all three SKUs) by 12:00 CDT today.\nIf not received: formal supplier audit initiated, matter referred to VP Supply Chain.\nAssembly Line 1 line-down risk confirmed by Aditi Krishnamurthy \u2014 AX-04827-B2 stock exhausted within 5 business days.",
|
||||
"id": "evt-022"
|
||||
},
|
||||
"evt-023": {
|
||||
"summary": "QE Inspection \u2014 BG-33044-A1 Damage | NCR-MER-2026-0248 | Theo Brandt",
|
||||
"start": {
|
||||
"dateTime": "2026-04-16T08:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-16T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Theo Brandt to inspect 11 damaged BG-33044-A1 bearings from REC-20260414-002.\nQE written assessment to be filed in quality_docs upon completion.",
|
||||
"location": "Quality Inspection Area, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-023"
|
||||
},
|
||||
"evt-024": {
|
||||
"summary": "Procurement Disposition \u2014 SL-10922-B1 Excess (12 units) | NCR-MER-2026-0249",
|
||||
"start": {
|
||||
"dateTime": "2026-04-15T09:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-15T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Joon-ho Park to review consumption forecast for SL-10922-B1 and decide disposition of 12 excess units.\nDecision made 04/17: ACCEPT \u2014 PO amendment issued to MER-PO-104835 Line 002 (new qty 300).\nAll 300 units moved to B-RCV-01.",
|
||||
"id": "evt-024"
|
||||
},
|
||||
"evt-025": {
|
||||
"summary": "Theo Brandt \u2014 COC Verification on Arrival | NCR-MER-2026-0247",
|
||||
"start": {
|
||||
"dateTime": "2026-04-23T12:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-23T14:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Theo Brandt to verify COC against MTR heat numbers: HT-2026-1184, HT-2026-1185, HT-2026-0997 for receipt REC-20260414-001 (NCR-MER-2026-0247).\nBlock: 2 hours for review. Written release to Kay Whitfield (k.whitfield@gearsystems.com) upon completion.",
|
||||
"location": "Quality Lab, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-025"
|
||||
},
|
||||
"evt-026": {
|
||||
"summary": "Elizabeth Velasquez \u2014 Alternative Sourcing Review (Ridgeline Axles) | NCR-MER-2026-0247",
|
||||
"start": {
|
||||
"dateTime": "2026-04-23T09:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-23T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Per Walter Finch direction (04/22): Elizabeth Velasquez to evaluate emergency AX-04827-B2 order from Ridgeline Precision Axles (SUP-0157).\nJoon-ho Park to confirm Ridgeline lead times.\nIf Lakewood COC not resolved by 04/25, initiate Ridgeline emergency PO.",
|
||||
"location": "Supply Chain Office, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-026"
|
||||
},
|
||||
"evt-027": {
|
||||
"summary": "Walter Finch \u2014 EOD Update: NCR-MER-2026-0247 Status",
|
||||
"start": {
|
||||
"dateTime": "2026-04-23T16:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-23T16:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Plant Manager Walter Finch requested EOD status update on NCR-MER-2026-0247 and Assembly Line 1 risk.\nK. Whitfield to brief: COC status, any Lakewood response, line-down timeline from Aditi Krishnamurthy.",
|
||||
"location": "Plant Manager's Office, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-027"
|
||||
},
|
||||
"evt-028": {
|
||||
"summary": "Supplier Capability Review \u2014 Lakewood Precision Forgings",
|
||||
"start": {
|
||||
"dateTime": "2026-04-25T09:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-25T11:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Per Walter Finch direction (04/22): Theo Brandt to initiate supplier capability review of Lakewood Precision Forgings IF COC for NCR-MER-2026-0247 is not received by 04/25.\nReview may result in status change.\nParticipants: Theo Brandt, Elizabeth Velasquez, K. Whitfield.",
|
||||
"location": "Conference Room A, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-028"
|
||||
},
|
||||
"evt-029": {
|
||||
"summary": "NCR-MER-2026-0248 Internal Review \u2014 Hartwell CAR Acceptance",
|
||||
"start": {
|
||||
"dateTime": "2026-04-25T13:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-25T14:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Theo Brandt to formally review Hartwell CAR (received 04/22) for NCR-MER-2026-0248.\nIf CAR is acceptable: recommend close-out and release of 133 undamaged BG-33044-A1 units to stock.\nJoon-ho Park to authorize replacement shipment of 11 units from Hartwell.\nOD freight claim #ODG-2026-04812 tracking: Lisa Okafor (l.okafor@hartwellbearing.com).",
|
||||
"location": "Quality Lab, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-029"
|
||||
},
|
||||
"evt-030": {
|
||||
"summary": "PO Delivery Deadline: MER-PO-104821 \u2014 Lakewood AX/FG (Required 04/14) \u26a0 QUARANTINED",
|
||||
"start": {
|
||||
"date": "2026-04-14"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-15"
|
||||
},
|
||||
"description": "PO MER-PO-104821 required delivery date: April 14, 2026.\nSupplier: Lakewood Precision Forgings (SUP-0012)\nSKUs: AX-04827-B2 (48 units, $425 ea), AX-05512-C1 (96 units, $187.50 ea), FG-91144-A1 (200 units, $78 ea)\nStatus: Received as REC-20260414-001 but QUARANTINED \u2014 COC missing.\nValue at risk: approx. $43,638 (combined extended value all three lines)",
|
||||
"id": "evt-030"
|
||||
},
|
||||
"evt-031": {
|
||||
"summary": "PO Delivery Deadline: MER-PO-104835 \u2014 Hartwell BG/SL (Required 04/15) \u26a0 PARTIAL QUARANTINE",
|
||||
"start": {
|
||||
"date": "2026-04-15"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-16"
|
||||
},
|
||||
"description": "PO MER-PO-104835 required delivery date: April 15, 2026.\nSupplier: Hartwell Bearing Technologies (SUP-0034)\nSKUs: BG-33044-A1 (144 units, $185.50 ea \u2014 SC bearings), SL-10922-B1 (288 units, $32.75 ea)\nStatus: Received 04/14 as REC-20260414-002. BG lot quarantined (Tier 2 damage). SL accepted (300 units per PO amendment).",
|
||||
"id": "evt-031"
|
||||
},
|
||||
"evt-032": {
|
||||
"summary": "PO Delivery Deadline: MER-PO-104874 \u2014 GreatLakes TR Balance (Required 04/12)",
|
||||
"start": {
|
||||
"date": "2026-04-12"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-13"
|
||||
},
|
||||
"description": "PO MER-PO-104874 Line 001 required delivery: April 12, 2026. Partial first shipment received 04/11 (12/24 units).\nBalance 12 units of TR-67801-D1 shipped 04/21, ETA 04/23 (FedEx PRO FXF-2026-88142).\nCOC pre-received from Kevin Baxter \u2014 Heat HT-2026-2201.",
|
||||
"id": "evt-032"
|
||||
},
|
||||
"evt-033": {
|
||||
"summary": "PO Delivery Deadline: MER-PO-104906 \u2014 Delta Metals AX/TR (Required 04/17)",
|
||||
"start": {
|
||||
"date": "2026-04-17"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-18"
|
||||
},
|
||||
"description": "PO MER-PO-104906 required delivery date: April 17, 2026.\nSupplier: Delta Metals & Alloys (SUP-0129) | Carrier: Estes Express\nSKUs: AX-04901-B1 (36 SC axle housings, $448 ea), TR-67944-C2 (18 SC trans gears, $524 ea)\nDelivery scheduled APPT-20260415-001 \u2014 oversize/heavy, crane required.",
|
||||
"id": "evt-033"
|
||||
},
|
||||
"evt-034": {
|
||||
"summary": "PO Delivery Deadline: MER-PO-104918 \u2014 Lakewood DTL AX (Required 04/14) \u26a0 HOLD",
|
||||
"start": {
|
||||
"date": "2026-04-14"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-15"
|
||||
},
|
||||
"description": "PO MER-PO-104918 required delivery: April 14, 2026 \u2014 Direct-to-Line urgent.\nSupplier: Lakewood Precision Forgings (SUP-0012)\nSKU: AX-04827-B2 (24 units, $425 ea) \u2014 Safety-critical\n\u26a0 INFORMAL HOLD placed by Joon-ho Park (Walter Finch direction, 04/22) pending resolution of NCR-MER-2026-0247.",
|
||||
"id": "evt-034"
|
||||
},
|
||||
"evt-035": {
|
||||
"summary": "\u26a0 PRODUCTION RISK: Assembly Line 1 \u2014 AX-04827-B2 Projected Stockout",
|
||||
"start": {
|
||||
"date": "2026-04-28"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-04-29"
|
||||
},
|
||||
"description": "Production Planner Aditi Krishnamurthy: Assembly Line 1 (rear axle housings) projected to hit ZERO usable AX-04827-B2 stock by approximately April 28.\nAll 44 units from REC-20260414-001 remain on Q-HOLD (NCR-MER-2026-0247).\nIf quarantine not released before this date: LINE DOWN on Assembly Line 1.\nDownstream impact: rear axle output delayed ~8\u201310 business days.\nMitigation: emergency sourcing from Ridgeline Precision Axles (SUP-0157) under evaluation.",
|
||||
"id": "evt-035"
|
||||
},
|
||||
"evt-036": {
|
||||
"summary": "\u26a0 PRODUCTION RISK: Assembly Line 1 \u2014 FG-91144-A1 Projected Stockout",
|
||||
"start": {
|
||||
"date": "2026-05-01"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-05-02"
|
||||
},
|
||||
"description": "Production Planner Aditi Krishnamurthy: FG-91144-A1 (Forged Gear Blank, 8-spline) current on-hand: 50 usable units.\n200 units in Q-HOLD (NCR-MER-2026-0247). Projected stockout approximately May 1 if quarantine not released.\nPart of same Lakewood receipt REC-20260414-001.",
|
||||
"id": "evt-036"
|
||||
},
|
||||
"evt-037": {
|
||||
"summary": "Production Schedule Review \u2014 Line 1 Impact Assessment",
|
||||
"start": {
|
||||
"dateTime": "2026-04-23T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-23T11:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Aditi Krishnamurthy (Production Planning) meets with Elizabeth Velasquez and K. Whitfield.\nAgenda: AX-04827-B2 and FG-91144-A1 quarantine impact; rerouting options for Line 1; confirm April 28 risk window.\nAlternative: reroute Line 1 to alternate assemblies \u2014 delays rear axle output ~8\u201310 business days.",
|
||||
"location": "Production Planning Office, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-037"
|
||||
},
|
||||
"evt-038": {
|
||||
"summary": "Weekly Receiving Review \u2014 Open NCR & Quarantine Status",
|
||||
"start": {
|
||||
"dateTime": "2026-04-14T07:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-14T08:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Weekly Monday morning receiving review per SOP Section 14.7.\nParticipants: K. Whitfield, Theo Brandt, Joon-ho Park.\nAgenda: open NCR status, quarantine lot review, upcoming dock appointments, probation supplier actions.",
|
||||
"location": "Receiving Office, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-038"
|
||||
},
|
||||
"evt-039": {
|
||||
"summary": "Weekly Receiving Review \u2014 Open NCR & Quarantine Status",
|
||||
"start": {
|
||||
"dateTime": "2026-04-21T07:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-21T08:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Weekly Monday morning receiving review per SOP Section 14.7.\nCritical agenda item: NCR-MER-2026-0247 COC deadline is today (17:00 CST). Status of all open NCRs.\nParticipants: K. Whitfield, Theo Brandt, Joon-ho Park, Elizabeth Velasquez (invited).",
|
||||
"location": "Receiving Office, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-039"
|
||||
},
|
||||
"evt-040": {
|
||||
"summary": "Weekly Receiving Review \u2014 Open NCR & Quarantine Status",
|
||||
"start": {
|
||||
"dateTime": "2026-04-28T07:30:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-28T08:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Weekly Monday morning receiving review per SOP Section 14.7.\nNCR-MER-2026-0248 supplier response due today (17:00 CST). All open NCR status review.\nParticipants: K. Whitfield, Theo Brandt, Joon-ho Park.",
|
||||
"location": "Receiving Office, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-040"
|
||||
},
|
||||
"evt-041": {
|
||||
"summary": "Monthly Probation Supplier Review \u2014 Cascade Fastener Corp",
|
||||
"start": {
|
||||
"dateTime": "2026-05-01T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-05-01T11:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Monthly review of Cascade Fastener Corp (SUP-0051) probation status per SOP Sec 15.2.2.\nProbation effective: 09/01/2025 | Probation end date: 09/01/2026 (extended \u2014 under active review).\nActive NCRs: NCR-MER-2026-0241 (Critical, open). Previous NCRs: 0239 (Minor, closed), per probation history.\nParticipants: Elizabeth Velasquez, Joon-ho Park, Theo Brandt.\nDecision: continue probation / graduate to Approved / escalate to Suspended.",
|
||||
"location": "Conference Room A, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-041"
|
||||
},
|
||||
"evt-042": {
|
||||
"summary": "SDS Annual Verification \u2014 LB-55001-A2 (Meridian Lube) Due",
|
||||
"start": {
|
||||
"date": "2026-08-15"
|
||||
},
|
||||
"end": {
|
||||
"date": "2026-08-16"
|
||||
},
|
||||
"description": "SDS for LB-55001-A2 (Petroleum Distillate Lubricant, UN1268 Class 3) last revised 02/15/2024.\nAction: Maribel Ortiz to request updated SDS from Meridian Lube Supply (c.ortega@meridianlube.com).\nIf SDS unchanged: re-confirm with supplier in writing. If revised: update quality_docs/SDS-LB-55001-A2.pdf.",
|
||||
"id": "evt-042"
|
||||
},
|
||||
"evt-043": {
|
||||
"summary": "APPT-20260423-002 | GreatLakes TR-67801-D1 Balance | Dock 1 | FedEx Freight [Rescheduled from 04/15]",
|
||||
"start": {
|
||||
"dateTime": "2026-04-23T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-23T12:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Supplier: GreatLakes Transmission Parts (SUP-0089) | Carrier: FedEx Freight | PRO: FXF-2026-88142\nPO: MER-PO-104874 Line 001 | SKU: TR-67801-D1 \u2014 12 units (Safety-critical)\nCOC pre-received 04/21 from Kevin Baxter (k.baxter@greatlakestrans.com) | Heat: HT-2026-2201\nOriginally APPT-20260415-002 \u2014 rescheduled to 04/23.\nNOTE: Authorized carrier on file is FedEx Freight. Dock 1 held clear.",
|
||||
"location": "Dock 1, Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-043"
|
||||
},
|
||||
"evt-044": {
|
||||
"summary": "\u26a0 NO-APPOINTMENT ARRIVAL \u2014 Yellow Freight \u2014 MER-PO-104874 Claimed [HOLD \u2014 PENDING INVESTIGATION]",
|
||||
"start": {
|
||||
"dateTime": "2026-04-23T09:47:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-23T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Unscheduled Yellow Freight truck arrived 09:47 claiming 12x TR-67801-D1 under PO MER-PO-104874.\nNO DOCK APPOINTMENT \u2014 held at dock entrance per SOP Sec 8.6. No bay door assigned. No unloading.\nDriver producing delivery paperwork referencing MER-PO-104874 as the PO number.\nCarrier authorization status: UNVERIFIED. Investigation in progress.\nNote: APPT-20260423-002 (FedEx Freight, PRO FXF-2026-88142) is also scheduled for today under the same PO.\nDock capacity check and supervisor approval (SOP Sec 8.6) pending.\nStatus: HOLD \u2014 awaiting disposition from Receiving Coordinator.",
|
||||
"location": "Dock Area (holding), Gear Systems Inc., Meridian MS",
|
||||
"id": "evt-044"
|
||||
},
|
||||
"evt-045": {
|
||||
"summary": "Dock Supervisor Approval Required \u2014 Yellow Freight No-Appointment Truck",
|
||||
"start": {
|
||||
"dateTime": "2026-04-23T09:47:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2026-04-23T10:00:00-05:00",
|
||||
"timeZone": "America/Chicago"
|
||||
},
|
||||
"description": "Unscheduled Yellow Freight truck arrived requesting dock bay assignment.\nDarnell Hooks (Warehouse Supervisor) to confirm available dock capacity and approve or deny entry.",
|
||||
"id": "evt-045"
|
||||
}
|
||||
}
|
||||
}
|
||||
+926
@@ -0,0 +1,926 @@
|
||||
{
|
||||
"mailbox": {
|
||||
"email": "k.whitfield@gearsystems.com",
|
||||
"name": "Kay Whitfield"
|
||||
},
|
||||
"contacts": [
|
||||
{
|
||||
"email": "k.whitfield@gearsystems.com",
|
||||
"name": "Kay Whitfield"
|
||||
},
|
||||
{
|
||||
"email": "t.brandt@gearsystems.com",
|
||||
"name": "Theo Brandt"
|
||||
},
|
||||
{
|
||||
"email": "e.velasquez@gearsystems.com",
|
||||
"name": "Elizabeth Velasquez"
|
||||
},
|
||||
{
|
||||
"email": "d.hooks@gearsystems.com",
|
||||
"name": "Darnell Hooks"
|
||||
},
|
||||
{
|
||||
"email": "j.park@gearsystems.com",
|
||||
"name": "Joon-ho Park"
|
||||
},
|
||||
{
|
||||
"email": "c.yablonski@gearsystems.com",
|
||||
"name": "Curtis Yablonski"
|
||||
},
|
||||
{
|
||||
"email": "m.ortiz@gearsystems.com",
|
||||
"name": "Maribel Ortiz"
|
||||
},
|
||||
{
|
||||
"email": "a.krishnamurthy@gearsystems.com",
|
||||
"name": "Aditi Krishnamurthy"
|
||||
},
|
||||
{
|
||||
"email": "w.finch@gearsystems.com",
|
||||
"name": "Walter Finch"
|
||||
},
|
||||
{
|
||||
"email": "c.wojciechowski@gearsystems.com",
|
||||
"name": "Chris Wojciechowski"
|
||||
},
|
||||
{
|
||||
"email": "m.hendricks@lakewoodprecision.com",
|
||||
"name": "Mark Hendricks"
|
||||
},
|
||||
{
|
||||
"email": "s.chu@lakewoodprecision.com",
|
||||
"name": "Sandra Chu"
|
||||
},
|
||||
{
|
||||
"email": "d.kowalski@hartwellbearing.com",
|
||||
"name": "David Kowalski"
|
||||
},
|
||||
{
|
||||
"email": "l.okafor@hartwellbearing.com",
|
||||
"name": "Lisa Okafor"
|
||||
},
|
||||
{
|
||||
"email": "t.ricci@cascadefastener.com",
|
||||
"name": "Tom Ricci"
|
||||
},
|
||||
{
|
||||
"email": "a.metz@cascadefastener.com",
|
||||
"name": "Angela Metz"
|
||||
},
|
||||
{
|
||||
"email": "c.ortega@meridianlube.com",
|
||||
"name": "Carlos Ortega"
|
||||
},
|
||||
{
|
||||
"email": "w.park@greatlakestrans.com",
|
||||
"name": "Wendy Park"
|
||||
},
|
||||
{
|
||||
"email": "k.baxter@greatlakestrans.com",
|
||||
"name": "Kevin Baxter"
|
||||
},
|
||||
{
|
||||
"email": "p.nguyen@ironcladbrake.com",
|
||||
"name": "Phil Nguyen"
|
||||
},
|
||||
{
|
||||
"email": "f.wu@appalachianseal.com",
|
||||
"name": "Frances Wu"
|
||||
},
|
||||
{
|
||||
"email": "j.reyes@appalachianseal.com",
|
||||
"name": "Jorge Reyes"
|
||||
},
|
||||
{
|
||||
"email": "b.simmons@deltametals.com",
|
||||
"name": "Brenda Simmons"
|
||||
},
|
||||
{
|
||||
"email": "h.yuen@deltametals.com",
|
||||
"name": "Harold Yuen"
|
||||
},
|
||||
{
|
||||
"email": "m.cross@ridgelineaxles.com",
|
||||
"name": "Monica Cross"
|
||||
},
|
||||
{
|
||||
"email": "r.lemoine@gearsystems.com",
|
||||
"name": "Reggie Lemoine"
|
||||
}
|
||||
],
|
||||
"groups": [
|
||||
{
|
||||
"email": "quality-team@gearsystems.com",
|
||||
"name": "Quality Team",
|
||||
"members": [
|
||||
"t.brandt@gearsystems.com",
|
||||
"c.yablonski@gearsystems.com",
|
||||
"m.ortiz@gearsystems.com"
|
||||
]
|
||||
},
|
||||
{
|
||||
"email": "receiving-team@gearsystems.com",
|
||||
"name": "Receiving Team",
|
||||
"members": [
|
||||
"k.whitfield@gearsystems.com",
|
||||
"c.yablonski@gearsystems.com",
|
||||
"d.hooks@gearsystems.com"
|
||||
]
|
||||
},
|
||||
{
|
||||
"email": "supply-chain@gearsystems.com",
|
||||
"name": "Supply Chain Team",
|
||||
"members": [
|
||||
"e.velasquez@gearsystems.com",
|
||||
"k.whitfield@gearsystems.com",
|
||||
"j.park@gearsystems.com",
|
||||
"c.wojciechowski@gearsystems.com"
|
||||
]
|
||||
}
|
||||
],
|
||||
"folders": [
|
||||
{
|
||||
"name": "Archive"
|
||||
},
|
||||
{
|
||||
"name": "NCRs"
|
||||
},
|
||||
{
|
||||
"name": "Supplier Correspondence"
|
||||
},
|
||||
{
|
||||
"name": "Quality Holds"
|
||||
},
|
||||
{
|
||||
"name": "Dock Schedule"
|
||||
},
|
||||
{
|
||||
"name": "Internal"
|
||||
}
|
||||
],
|
||||
"emails": [
|
||||
{
|
||||
"email_id": "0001",
|
||||
"message_id": "<msg0001@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "URGENT: Receipt REC-20260414-001 \u2014 Safety-Critical Quarantine, Missing COC [NCR-MER-2026-0247]",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "t.brandt@gearsystems.com, j.park@gearsystems.com",
|
||||
"cc_addr": "d.hooks@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T06:55:00-05:00",
|
||||
"body_text": "Theo, Joon-ho,\n\nReceipt REC-20260414-001 arrived at 06:48 CST this morning on Dock 2 \u2014 Lakewood Precision Forgings, XPO Logistics, PO MER-PO-104821. Three safety-critical lines:\n\n Line 001: AX-04827-B2 (Axle Housing Assy, Rear) \u2014 44 received vs. 48 ordered (\u22124 units, Band 1 short ship)\n Line 002: AX-05512-C1 (Axle Shaft, Drive, LH) \u2014 96 received, exact count\n Line 003: FG-91144-A1 (Forged Gear Blank, 8-spline) \u2014 200 received, exact count\n\nDocumentation check: MTR present and verified (heats HT-2026-1184, HT-2026-1185, HT-2026-0997). COC is MISSING. Packing slip notes \"COC will follow by email.\" Per Section 12.5.1, the entire receipt is quarantined effective now.\n\nNCR-MER-2026-0247 issued: Critical severity (AX/FG families, missing COC on safety-critical receipt). Template 10 letter going to Lakewood now. Supplier has 5 business days to provide COC \u2014 due by close of business 04/21/2026 (17:00 CST).\n\nMaterial is on Q-HOLD in Q-HOLD staging. Please confirm receipt of this notice.\n\n\u2014 K.W.\nInbound Materials Coordinator\nGear Systems Inc., Meridian MS",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0002",
|
||||
"message_id": "<msg0002@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 Missing Certificate of Conformance",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "m.hendricks@lakewoodprecision.com, s.chu@lakewoodprecision.com",
|
||||
"cc_addr": "j.park@gearsystems.com, t.brandt@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T07:30:00-05:00",
|
||||
"body_text": "Mark, Sandra,\n\nNCR Number: NCR-MER-2026-0247\nIssue Date: April 14, 2026\nSeverity: CRITICAL\nNCR Type: Documentation Deficiency / Quantity Variance\nPO Number: MER-PO-104821\nReceipt ID: REC-20260414-001\nSKUs Affected: AX-04827-B2, AX-05512-C1, FG-91144-A1\nQuantity Affected: 340 units total (all lines quarantined)\nDollar Value: $52,300.00 (full quarantined receipt: 44\u00d7AX-04827-B2 + 96\u00d7AX-05512-C1 + 200\u00d7FG-91144-A1)\n\nDEFICIENCY DESCRIPTION:\nCertificate of Conformance (COC) was absent from this shipment. Your packing slip noted \"COC will follow by email.\" Per our SOP, all safety-critical materials in families AX and FG require a COC prior to putaway. The entire receipt REC-20260414-001 has been placed on quarantine hold (Q-HOLD) effective 06:55 CST today.\n\nAdditionally, Line 001 (AX-04827-B2) shows a Band 1 short ship: 44 received vs. 48 ordered (\u22124 units, \u22128.3%). Please confirm whether a balance shipment is planned and provide the expected ship date.\n\nREQUIRED ACTION:\nPlease provide the missing COC for this receipt by:\n\n Due Date: April 21, 2026 at 17:00 CST\n\nThe COC must reference:\n \u2014 PO MER-PO-104821\n \u2014 All three line items (AX-04827-B2, AX-05512-C1, FG-91144-A1)\n \u2014 Applicable heat numbers (HT-2026-1184, HT-2026-1185, HT-2026-0997 per your MTR)\n\nUntil the COC is received and verified, no material from this receipt may be moved to production stock. Please acknowledge this notice within one business day.\n\nKay Whitfield\nInbound Materials Coordinator\nGear Systems Inc.\nk.whitfield@gearsystems.com | 601-555-2001",
|
||||
"body_html": null,
|
||||
"attachments": [
|
||||
{
|
||||
"filename": "NCR-MER-2026-0247_Notice.pdf",
|
||||
"content_type": "application/pdf",
|
||||
"content_base64": "TkNSLU1FUi0yMDI2LTAyNDcgTm90aWNlIOKAlCBHZWFyIFN5c3RlbXMgSW5jLiDigJQgRm9ybWFsIE5DUiBMZXR0ZXIg4oCUIEFYL0ZHIHBhcnRzIHF1YXJhbnRpbmUsIG1pc3NpbmcgQ09DLCBNRVItUE8tMTA0ODIx"
|
||||
}
|
||||
],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0001@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0003",
|
||||
"message_id": "<msg0003@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 Missing Certificate of Conformance",
|
||||
"from_addr": "m.hendricks@lakewoodprecision.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "s.chu@lakewoodprecision.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T09:14:00-05:00",
|
||||
"body_text": "Kay,\n\nThank you for the NCR notice. I have forwarded this to Sandra Chu (Quality) who will coordinate getting you the COC. We apologize for the oversight \u2014 it appears the COC was printed but not included in the shipment packet.\n\nSandra will be in touch with you directly regarding the COC documentation. We anticipate being able to provide it within two business days.\n\nRegarding the short shipment on AX-04827-B2: we shipped 44 units per the partial release approved by Joon-ho Park on 04/11. Our records show PO MER-PO-104821 Line 001 has a remaining balance of 4 units. We will include these in our next scheduled run, estimated ship date April 22.\n\nMark Hendricks\nCommercial Account Manager\nLakewood Precision Forgings\n414-555-0191",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0002@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0004",
|
||||
"message_id": "<msg0004@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: URGENT: Receipt REC-20260414-001 \u2014 Safety-Critical Quarantine, Missing COC [NCR-MER-2026-0247]",
|
||||
"from_addr": "t.brandt@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T10:05:00-05:00",
|
||||
"body_text": "Kay,\n\nConfirmed \u2014 I've reviewed the quarantine log and the material is properly secured on Q-HOLD. I'll hold off on any inspection until we receive the COC, at which point I'll verify document authenticity against the heat numbers from the MTR.\n\nIf the COC doesn't arrive by EOD Friday (04/18), let me know and I'll flag it for Elizabeth. The five-business-day window puts us at close of business Tuesday 04/21.\n\n\u2014 Theo",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0003@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0005",
|
||||
"message_id": "<msg0005@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 Follow-Up Day 2",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "s.chu@lakewoodprecision.com",
|
||||
"cc_addr": "m.hendricks@lakewoodprecision.com, t.brandt@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-16T14:22:00-05:00",
|
||||
"body_text": "Sandra,\n\nFollowing up on NCR-MER-2026-0247. As of this afternoon, we have not yet received the COC for receipt REC-20260414-001 (PO MER-PO-104821, AX-04827-B2 / AX-05512-C1 / FG-91144-A1).\n\nPer Mark's response on 04/14, you were expecting to provide the COC within two business days \u2014 that window closes tomorrow (04/17). The SOP deadline remains 04/21/2026 at 17:00 CST.\n\nPlease confirm the status and expected delivery time. The quarantine hold on all 340 units remains in effect.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0004@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0006",
|
||||
"message_id": "<msg0006@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 Follow-Up Day 2",
|
||||
"from_addr": "s.chu@lakewoodprecision.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "m.hendricks@lakewoodprecision.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-17T08:45:00-05:00",
|
||||
"body_text": "Kay,\n\nI apologize for the delay. We are finalizing the COC internally \u2014 our quality manager must sign off and he was traveling earlier this week. I expect to have the signed COC scanned and emailed to you by end of business today (April 17).\n\nSandra Chu\nQuality Assurance\nLakewood Precision Forgings\n414-555-0192",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0005@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0007",
|
||||
"message_id": "<msg0007@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 End of Day 04/17 Follow-Up",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "s.chu@lakewoodprecision.com",
|
||||
"cc_addr": "m.hendricks@lakewoodprecision.com, t.brandt@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-17T17:30:00-05:00",
|
||||
"body_text": "Sandra,\n\nIt is now 17:30 CST and we have not received the COC. As I noted in my earlier email, the SOP deadline is 04/21/2026 at 17:00 CST \u2014 we now have two business days remaining.\n\nPlease send the COC first thing tomorrow morning. The 340 units in REC-20260414-001 remain on quarantine hold and cannot be released to production until we receive and verify the document.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0006@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0008",
|
||||
"message_id": "<msg0008@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 End of Day 04/17 Follow-Up",
|
||||
"from_addr": "s.chu@lakewoodprecision.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "m.hendricks@lakewoodprecision.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-18T08:15:00-05:00",
|
||||
"body_text": "Kay,\n\nMy apologies again. Our QM signed the document last night. I am scanning it now and will email you the PDF within the hour.\n\nSandra",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0007@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0009",
|
||||
"message_id": "<msg0009@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 Day 5 Deadline Today 04/21",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "s.chu@lakewoodprecision.com",
|
||||
"cc_addr": "m.hendricks@lakewoodprecision.com, t.brandt@gearsystems.com, e.velasquez@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-21T09:00:00-05:00",
|
||||
"body_text": "Sandra, Mark,\n\nToday is April 21, 2026 \u2014 the final day of the 5-business-day window for NCR-MER-2026-0247. Per our SOP, the COC for receipt REC-20260414-001 is due by 17:00 CST today.\n\nTo date, we have not received the COC. I have included Elizabeth Velasquez (Supply Chain Manager) on this email.\n\nWe still need:\n \u2014 COC covering PO MER-PO-104821, SKUs AX-04827-B2, AX-05512-C1, FG-91144-A1\n \u2014 Heat number references: HT-2026-1184, HT-2026-1185, HT-2026-0997\n\nIf we do not receive the COC by 17:00 CST today, this NCR will be escalated and additional holds may be placed on future shipments.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0008@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0010",
|
||||
"message_id": "<msg0010@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 ESCALATION: COC Not Received by Deadline",
|
||||
"from_addr": "e.velasquez@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com, t.brandt@gearsystems.com",
|
||||
"cc_addr": "w.finch@gearsystems.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-21T17:45:00-05:00",
|
||||
"body_text": "Kay, Theo,\n\nIt is 17:45 CST and I've confirmed with Kay that Lakewood has not delivered the COC for NCR-MER-2026-0247. The supplier has missed the 5-business-day deadline.\n\nPer SOP Section 14.6.2 and 15.2, I am escalating this NCR. Effective immediately:\n\n1. NCR-MER-2026-0247 remains Critical / Open. The receipt continues on Q-HOLD.\n2. I am informing Walter Finch (Plant Manager).\n3. Joon-ho Park: please place a courtesy hold on any new PO releases to Lakewood until further notice.\n4. Kay: please send a formal written notice to Lakewood that the deadline has passed and we are exercising our escalation rights under our supplier agreement.\n\nThis material \u2014 44 units of AX-04827-B2, 96 of AX-05512-C1, 200 of FG-91144-A1 \u2014 has been on quarantine since April 14. Production Planning is aware.\n\nElizabeth Velasquez\nSupply Chain Manager, Gear Systems Inc.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0009@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0011",
|
||||
"message_id": "<msg0011@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NCR-MER-2026-0247 \u2014 Plant Manager Acknowledgment & Authorization",
|
||||
"from_addr": "w.finch@gearsystems.com",
|
||||
"to_addr": "e.velasquez@gearsystems.com, k.whitfield@gearsystems.com",
|
||||
"cc_addr": "t.brandt@gearsystems.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-22T08:00:00-05:00",
|
||||
"body_text": "Elizabeth, Kay,\n\nAcknowledged. I have reviewed the NCR-MER-2026-0247 situation. The 5-business-day window has closed and Lakewood has not complied.\n\nMy direction:\n1. K.W. \u2014 send the formal past-due notice to Lakewood today.\n2. J. Park \u2014 place an informal review hold on MER-PO-104918 Line 001 (the pending DTL order from Lakewood) pending resolution of this NCR.\n3. Theo \u2014 if the COC does not arrive by Friday April 25, initiate a supplier capability review.\n4. Elizabeth \u2014 please work with Procurement on alternative sourcing for AX parts if this extends to next week.\n\nWe cannot keep these parts in quarantine indefinitely. Aditi has already flagged a potential line impact.\n\n\u2014 W. Finch\nPlant Manager, Gear Systems Inc.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0010@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0012",
|
||||
"message_id": "<msg0012@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0247 (Critical) \u2014 Past Deadline \u2014 Formal Notice",
|
||||
"from_addr": "m.hendricks@lakewoodprecision.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "s.chu@lakewoodprecision.com, e.velasquez@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-22T09:15:00-05:00",
|
||||
"body_text": "Kay, Elizabeth,\n\nI sincerely apologize for this situation. We experienced an unexpected ERP system migration over last weekend (April 18\u201320) that caused our quality document management system to be taken offline. Sandra's scanned COC was queued in the system and failed to send due to the migration.\n\nWe are working to restore the document and will email you the COC today. I recognize this is completely unacceptable and we take full responsibility.\n\nI will personally call Kay this morning to discuss.\n\nMark Hendricks\nLakewood Precision Forgings\n414-555-0191",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0011@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0013",
|
||||
"message_id": "<msg0013@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: NCR-MER-2026-0247 \u2014 Day 9 \u2014 COC Still Not Received \u2014 IMMEDIATE ACTION REQUIRED",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "m.hendricks@lakewoodprecision.com, s.chu@lakewoodprecision.com",
|
||||
"cc_addr": "e.velasquez@gearsystems.com, t.brandt@gearsystems.com, w.finch@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-23T07:00:00-05:00",
|
||||
"body_text": "Mark, Sandra,\n\nIt is now April 23, 2026 \u2014 nine calendar days since receipt REC-20260414-001 and two calendar days past the SOP deadline of April 21.\n\nAs of 07:00 CST this morning, no COC has been received for NCR-MER-2026-0247. Despite multiple commitments to provide the document, we have not received it.\n\nStatus as of today:\n \u2014 340 units (AX-04827-B2 x44, AX-05512-C1 x96, FG-91144-A1 x200) remain on quarantine hold\n \u2014 NCR-MER-2026-0247 is Critical / Open / OVERDUE\n \u2014 Plant Manager Walter Finch has been informed and has authorized escalation actions\n\nIMMEDIATE REQUIREMENTS (by 12:00 CST today):\n 1. Provide the signed COC covering PO MER-PO-104821, all three SKUs, heats HT-2026-1184, HT-2026-1185, HT-2026-0997\n 2. Provide written explanation of why this document was not provided within the SOP window\n\nIf we do not receive the COC by 12:00 CST today, Gear Systems Inc. will initiate a formal supplier audit per our supplier agreement and this matter will be referred to our VP of Supply Chain.\n\nKay Whitfield\nInbound Materials Coordinator\nGear Systems Inc.\nk.whitfield@gearsystems.com | 601-555-2001",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0012@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0014",
|
||||
"message_id": "<msg0014@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "INSPECTION REQUEST: REC-20260414-002 BG-33044-A1 \u2014 Tier 2 Damage \u2014 NCR-MER-2026-0248",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "t.brandt@gearsystems.com",
|
||||
"cc_addr": "c.yablonski@gearsystems.com, d.hooks@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T08:45:00-05:00",
|
||||
"body_text": "Theo,\n\nReceipt REC-20260414-002 came in on Dock 1 at 08:30 CST today \u2014 Hartwell Bearing Technologies, PO MER-PO-104835.\n\nLine 001: BG-33044-A1 (Bearing, Tapered Roller, 2.5in) \u2014 144 received, exact count. However, Curtis performed the receiving inspection and found Tier 2 damage on 11 of 144 units \u2014 impact dents on outer races. These bearings are safety-critical. I've quarantined the lot per SOP Section 12.4 and issued NCR-MER-2026-0248 (Major, DMG).\n\nDamage report and photos are in the photos folder: photos/MER-PO-104835_20260414/\n\nNCR response due from Hartwell: 04/28/2026 (10 business days).\n\nCan you schedule a formal inspection of the 11 damaged units? Per SOP Section 12.4.3, we need your written assessment before we can either condemn or disposition the damaged units. Please confirm timing.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0015",
|
||||
"message_id": "<msg0015@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0248 (Major) \u2014 Tier 2 Transit Damage",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "d.kowalski@hartwellbearing.com, l.okafor@hartwellbearing.com",
|
||||
"cc_addr": "t.brandt@gearsystems.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T09:30:00-05:00",
|
||||
"body_text": "David, Lisa,\n\nPlease see the attached NCR notice for receipt REC-20260414-002, PO MER-PO-104835.\n\nNCR Number: NCR-MER-2026-0248\nIssue Date: April 14, 2026\nSeverity: MAJOR\nNCR Type: Damage (Transit)\nPO Number: MER-PO-104835\nReceipt ID: REC-20260414-002\nSKU Affected: BG-33044-A1 (Bearing, Tapered Roller, 2.5in)\nQuantity Affected: 11 of 144 units\nDollar Value: $2,040.50\n\nDEFICIENCY DESCRIPTION:\nUpon receiving inspection, 11 of 144 BG-33044-A1 tapered roller bearings were found to have impact dents on their outer races consistent with transit damage. These are safety-critical parts (BG family). The entire lot of 144 bearings has been quarantined pending Quality inspection.\n\nPlease see attached:\n \u2014 NCR-MER-2026-0248_Notice.pdf (formal NCR letter)\n \u2014 MER-PO-104835_20260414_damage_report.pdf (damage assessment with photos)\n\nREQUIRED ACTION:\nSupplier response due: April 28, 2026 at 17:00 CST (10 business days per SOP).\n\nPlease confirm whether you will file a carrier claim with Old Dominion and provide your corrective action plan.\n\nKay Whitfield\nGear Systems Inc.",
|
||||
"body_html": null,
|
||||
"attachments": [
|
||||
{
|
||||
"filename": "NCR-MER-2026-0248_Notice.pdf",
|
||||
"content_type": "application/pdf",
|
||||
"content_base64": "TkNSLU1FUi0yMDI2LTAyNDggTm90aWNlIOKAlCBHZWFyIFN5c3RlbXMgSW5jLiDigJQgSGFydHdlbGwgYmVhcmluZyBUaWVyIDIgdHJhbnNpdCBkYW1hZ2Ug4oCUIEJHLTMzMDQ0LUEx"
|
||||
},
|
||||
{
|
||||
"filename": "MER-PO-104835_20260414_damage_report.pdf",
|
||||
"content_type": "application/pdf",
|
||||
"content_base64": "RGFtYWdlIFJlcG9ydCDigJQgQ3VydGlzIFlhYmxvbnNraSDigJQgUkVDLTIwMjYwNDE0LTAwMiDigJQgMTEgb2YgMTQ0IEJHLTMzMDQ0LUExIGJlYXJpbmdzIOKAlCBvdXRlciByYWNlIGltcGFjdCBkZW50cyDigJQgcGhvdG9zIGF0dGFjaGVk"
|
||||
}
|
||||
],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0014@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0016",
|
||||
"message_id": "<msg0016@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0248 (Major) \u2014 Tier 2 Transit Damage",
|
||||
"from_addr": "l.okafor@hartwellbearing.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "d.kowalski@hartwellbearing.com, t.brandt@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-15T10:00:00-05:00",
|
||||
"body_text": "Kay,\n\nThank you for the NCR notice and the damage report. I've reviewed Curtis's photos \u2014 the impact dents on the outer races are consistent with forklift clamp damage during transit loading.\n\nWe will be filing a freight claim with Old Dominion. We acknowledge the NCR and will provide a formal corrective action response by April 28.\n\nIn the meantime, I wanted to ask: do you need replacement bearings urgently? We have inventory available and can ship a replacement lot of 11 units under your existing PO (MER-PO-104835) within 2\u20133 business days if authorized by Procurement.\n\nLisa Okafor\nQuality Assurance Manager\nHartwell Bearing Technologies\n313-555-0245",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0015@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0017",
|
||||
"message_id": "<msg0017@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: INSPECTION REQUEST: REC-20260414-002 BG-33044-A1 \u2014 Inspection Complete",
|
||||
"from_addr": "t.brandt@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "c.yablonski@gearsystems.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-16T11:30:00-05:00",
|
||||
"body_text": "Kay,\n\nI completed my inspection of the 11 damaged BG-33044-A1 units from REC-20260414-002 this morning.\n\nFindings:\n \u2014 All 11 units exhibit outer race impact damage consistent with forklift clamp pressure during transit loading\n \u2014 8 of 11 units: shallow surface dents only \u2014 raceways smooth to tactile inspection, no spalling\n \u2014 3 of 11 units: deeper impressions with detectable roughness on raceway \u2014 functional integrity compromised\n\nDisposition recommendation:\n \u2014 8 units: condemn for production use; set aside for carrier claim evidence / return to supplier\n \u2014 3 units: condemn immediately \u2014 do not send back into supply chain\n \u2014 133 undamaged units: release to stock once quarantine is lifted via normal NCR close-out\n\nI'll put my written QE assessment in the quality_docs folder today. Let me know when you want to loop in Hartwell on the findings.\n\n\u2014 Theo",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0016@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0018",
|
||||
"message_id": "<msg0018@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: NCR-MER-2026-0248 \u2014 Quality Engineering Inspection Findings",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "l.okafor@hartwellbearing.com, d.kowalski@hartwellbearing.com",
|
||||
"cc_addr": "t.brandt@gearsystems.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-17T14:00:00-05:00",
|
||||
"body_text": "Lisa, David,\n\nPlease see the attached Quality Engineering inspection report for NCR-MER-2026-0248.\n\nSummary of findings:\n \u2014 8 of 11 damaged units: outer race surface dents only, condemned for production use\n \u2014 3 of 11 damaged units: deeper raceway damage, condemned immediately\n \u2014 133 undamaged units remain on quarantine hold pending NCR close-out\n\nTotal condemned: 11 units ($2,040.50 at $185.50/unit)\n\nRegarding your offer to ship replacement bearings: Joon-ho Park will follow up separately. We will need authorization from our procurement team before releasing a supplemental order.\n\nPlease include the inspection findings in your carrier claim with Old Dominion.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [
|
||||
{
|
||||
"filename": "NCR-MER-2026-0248_QE_Inspection_Report.pdf",
|
||||
"content_type": "application/pdf",
|
||||
"content_base64": "UUUgSW5zcGVjdGlvbiBSZXBvcnQg4oCUIFRoZW8gQnJhbmR0IOKAlCBCRy0zMzA0NC1BMSDigJQgMTEgZGFtYWdlZCB1bml0cyDigJQgOCBzaGFsbG93IGRlbnRzLCAzIGRlZXAgcmFjZXdheSBkYW1hZ2Ug4oCUIGNvbmRlbW5lZA=="
|
||||
}
|
||||
],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0017@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0019",
|
||||
"message_id": "<msg0019@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NCR-MER-2026-0248 \u2014 Corrective Action Response",
|
||||
"from_addr": "l.okafor@hartwellbearing.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "d.kowalski@hartwellbearing.com, t.brandt@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-22T09:00:00-05:00",
|
||||
"body_text": "Kay, Theo,\n\nPlease find attached our formal Corrective Action Report (CAR) for NCR-MER-2026-0248.\n\nSummary:\n \u2014 Root cause: Old Dominion loading crew used side-clamp forklift without bearing-rated padding; confirmed by carrier investigation\n \u2014 Old Dominion freight claim #ODG-2026-04812 filed April 15, covering $2,040.50\n \u2014 Corrective action: Revised load instructions issued to Old Dominion requiring padded clamp attachments for all bearing shipments going forward\n \u2014 We are prepared to ship 11 replacement BG-33044-A1 units (undamaged, same heat as original lot) under MER-PO-104835 once your procurement team issues a release\n\nPlease let us know if the attached CAR meets your requirements for closing NCR-MER-2026-0248.\n\nLisa Okafor\nHartwell Bearing Technologies",
|
||||
"body_html": null,
|
||||
"attachments": [
|
||||
{
|
||||
"filename": "Hartwell_CAR_NCR-MER-2026-0248.pdf",
|
||||
"content_type": "application/pdf",
|
||||
"content_base64": "Q29ycmVjdGl2ZSBBY3Rpb24gUmVwb3J0IOKAlCBIYXJ0d2VsbCBCZWFyaW5nIFRlY2hub2xvZ2llcyDigJQgTkNSLU1FUi0yMDI2LTAyNDgg4oCUIGNhcnJpZXIgZGFtYWdlIHJvb3QgY2F1c2Ug4oCUIE9sZCBEb21pbmlvbiBmcmVpZ2h0IGNsYWltIE9ERy0yMDI2LTA0ODEy"
|
||||
}
|
||||
],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0018@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0020",
|
||||
"message_id": "<msg0020@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "Disposition Needed: Excess SL-10922-B1 from REC-20260414-002 [NCR-MER-2026-0249]",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "j.park@gearsystems.com",
|
||||
"cc_addr": "d.hooks@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T10:30:00-05:00",
|
||||
"body_text": "Joon-ho,\n\nReceipt REC-20260414-002 (Hartwell, PO MER-PO-104835) included an over-ship on Line 002:\n\n SKU: SL-10922-B1 (Seal, Oil, Rear Axle)\n PO Qty: 288\n Received: 300\n Excess: +12 units (+4.2%, Band B per SOP)\n Unit Cost: $32.75\n Excess Value: $393.00\n\nPer SOP Section 11.3.2, Band B over-ships require Procurement disposition. The 12 excess units are staged in B-RCV-01 area. The 288 PO-quantity units are accepted and put away to B-RCV-01.\n\nNCR-MER-2026-0249 (Minor) has been issued to Hartwell.\n\nPlease advise on disposition for the 12 excess units: accept (with PO amendment), return to supplier, or other.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [
|
||||
{
|
||||
"filename": "NCR-MER-2026-0249_Notice.pdf",
|
||||
"content_type": "application/pdf",
|
||||
"content_base64": "TkNSLU1FUi0yMDI2LTAyNDkgTm90aWNlIOKAlCBHZWFyIFN5c3RlbXMgSW5jLiDigJQgU0wtMTA5MjItQjEgb3Zlci1zaGlwIDEyIHVuaXRzIEJhbmQgQiDigJQgTUVSLVBPLTEwNDgzNQ=="
|
||||
}
|
||||
],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0021",
|
||||
"message_id": "<msg0021@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: Disposition Needed: Excess SL-10922-B1 from REC-20260414-002 [NCR-MER-2026-0249]",
|
||||
"from_addr": "j.park@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "d.hooks@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-15T09:30:00-05:00",
|
||||
"body_text": "Kay,\n\nI'll check the consumption forecast for SL-10922-B1 and get back to you this week. We're likely to use them \u2014 the seals are a standard part and they'll move in the next maintenance cycle.\n\nIf the forecast supports it, I'll issue a PO amendment to accept the 12 units and we can release them to inventory. If not, I'll arrange a return to Hartwell.\n\nI'll have an answer for you by Thursday (04/17).\n\n\u2014 Joon-ho",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0020@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0022",
|
||||
"message_id": "<msg0022@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: Disposition Needed: Excess SL-10922-B1 [NCR-MER-2026-0249] \u2014 Disposition Decision",
|
||||
"from_addr": "j.park@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "d.hooks@gearsystems.com, d.kowalski@hartwellbearing.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-17T14:45:00-05:00",
|
||||
"body_text": "Kay,\n\nDecision: accept the 12 excess SL-10922-B1 units. Consumption forecast shows we'll use them within 60 days. I've authorized a PO amendment to MER-PO-104835 Line 002 \u2014 new authorized quantity is 300 units. The PO system will be updated today.\n\nPlease move the 12 staged units to B-RCV-01 and update the inventory master. I'll notify Hartwell that we're accepting the overage and they do not need to issue a credit.\n\n\u2014 Joon-ho",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0021@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0023",
|
||||
"message_id": "<msg0023@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: Disposition Needed: Excess SL-10922-B1 [NCR-MER-2026-0249] \u2014 Putaway Complete",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "j.park@gearsystems.com",
|
||||
"cc_addr": "d.hooks@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-17T16:00:00-05:00",
|
||||
"body_text": "Joon-ho,\n\nConfirmed \u2014 all 300 units of SL-10922-B1 from REC-20260414-002 have been moved to B-RCV-01. Inventory master updated. NCR-MER-2026-0249 is pending supplier response (due 05/05/2026) for the root cause of the over-ship, but the material is fully dispositioned.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0022@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0024",
|
||||
"message_id": "<msg0024@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "Quarantine Impact \u2014 AX-04827-B2 / AX-05512-C1 / FG-91144-A1 \u2014 Production Schedule",
|
||||
"from_addr": "a.krishnamurthy@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "e.velasquez@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-16T13:00:00-05:00",
|
||||
"body_text": "Kay,\n\nI was notified that receipt REC-20260414-001 from Lakewood is on full quarantine hold due to the missing COC. I understand the SOP process, but wanted to flag the production impact.\n\nCurrent schedule status:\n \u2014 AX-04827-B2: Assembly Line 1 (rear axle housing assemblies) \u2014 current on-hand: 0 usable. We have 44 units in quarantine. Without them, we run out of AX-04827-B2 on April 28.\n \u2014 AX-05512-C1: Buffer stock acceptable \u2014 we have 84 units on hand per inventory master. Assembly Line 1 uses these alongside AX-04827-B2, so if we stop on housing assemblies the axle shafts are also idled.\n \u2014 FG-91144-A1: Current on-hand 50 usable. We will hit zero on May 1 if the quarantine isn't resolved.\n\nIf the COC does not arrive by April 21, I need to know by April 22 at the latest so I can revise the schedule. A line-down on Assembly Line 1 has downstream impacts on final assembly.\n\nPlease keep me posted.\n\nAditi Krishnamurthy\nProduction Planning\nGear Systems Inc.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0025",
|
||||
"message_id": "<msg0025@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: Quarantine Impact \u2014 AX-04827-B2 / AX-05512-C1 / FG-91144-A1 \u2014 Status Update",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "a.krishnamurthy@gearsystems.com",
|
||||
"cc_addr": "e.velasquez@gearsystems.com, t.brandt@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-16T14:30:00-05:00",
|
||||
"body_text": "Aditi,\n\nThank you for flagging the production impact. I understand the urgency.\n\nStatus as of right now: Lakewood has acknowledged the NCR and Sandra Chu (their quality contact) has committed to providing the COC within the next 1\u20132 business days. The formal deadline is April 21 at 17:00 CST.\n\nOnce we receive the COC, Theo Brandt needs to verify it against the MTR heat numbers. Assuming the document is in order, I can typically complete the release process within a few hours of Theo's written sign-off.\n\nBest case: COC arrives by Friday 04/17, Theo verifies Monday 04/20, material released to stock Monday or Tuesday 04/21.\nWorst case: COC arrives at the deadline (04/21 17:00), material released Wednesday 04/23 at earliest.\n\nI'll keep you posted. If the situation changes, you'll be the first to know.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0024@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0026",
|
||||
"message_id": "<msg0026@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: Quarantine Impact \u2014 AX-04827-B2 \u2014 Line Down Risk CONFIRMED",
|
||||
"from_addr": "a.krishnamurthy@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com, e.velasquez@gearsystems.com",
|
||||
"cc_addr": "w.finch@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-23T08:00:00-05:00",
|
||||
"body_text": "Kay, Elizabeth,\n\nIt is now April 23. No resolution on NCR-MER-2026-0247. I need to formally notify you:\n\nAssembly Line 1 (rear axle housings) is now at RISK OF LINE-DOWN within 5 business days. We have exhausted our safety stock of AX-04827-B2 from prior receipts. The 44 quarantined units from REC-20260414-001 are the only available inventory.\n\nI have pushed the schedule as far as I can. If the COC is received today and material is released, we can still meet the May week-1 production commitments. If it is not resolved today, I will need to reroute Line 1 to alternate assemblies by tomorrow, which will delay rear axle output by approximately 8\u201310 business days.\n\nI have informed Walter Finch.\n\nAditi",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": false,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0025@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0027",
|
||||
"message_id": "<msg0027@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0241 (Critical) \u2014 Short Ship, Safety-Critical, Probation Supplier",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "t.ricci@cascadefastener.com, a.metz@cascadefastener.com",
|
||||
"cc_addr": "j.park@gearsystems.com, t.brandt@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-13T10:30:00-05:00",
|
||||
"body_text": "Tom, Angela,\n\nPlease see the attached NCR notice for receipt REC-20260412-001, PO MER-PO-104847.\n\nNCR Number: NCR-MER-2026-0241\nIssue Date: April 13, 2026\nSeverity: CRITICAL (SC short ship floor = Major; Probation +1 tier = Critical per SOP Sec 14.3.3 + 15.2.2)\nNCR Type: Quantity Variance\nPO Number: MER-PO-104847\nReceipt ID: REC-20260412-001\nSKU Affected: FS-22801-A3 (Bolt, Hex, M12x1.75x50, Gr10.9) \u2014 Safety Critical\nQuantity Affected: 17 units (\u221217 units, \u22123.4%)\nDollar Value: $82.45\n\nDEFICIENCY DESCRIPTION:\nBand 1 short ship on safety-critical FS-22801-A3. Ordered: 500, received: 483. Because Cascade Fastener Corp is currently on PROBATION status, all NCRs are floor-elevated to Critical severity: safety-critical short ship establishes a Major floor, and Probation status elevates one additional tier to Critical .\n\nNote: as a probation supplier, 100% inspection was conducted on this receipt.\n\nREQUIRED ACTION:\nSupplier response due: May 2, 2026 at 17:00 CST (15 business days per SOP \u2014 Critical NCR, probation supplier).\n\nPlease provide:\n1. Root cause analysis for the count discrepancy\n2. Corrective action plan to prevent recurrence\n3. Confirmation of whether a balance shipment of 17 units is planned and expected ship date\n\nKay Whitfield\nGear Systems Inc.",
|
||||
"body_html": null,
|
||||
"attachments": [
|
||||
{
|
||||
"filename": "NCR-MER-2026-0241_Notice.pdf",
|
||||
"content_type": "application/pdf",
|
||||
"content_base64": "TkNSLU1FUi0yMDI2LTAyNDEgTm90aWNlIOKAlCBHZWFyIFN5c3RlbXMgSW5jLiDigJQgQ2FzY2FkZSBGYXN0ZW5lciBDb3JwIOKAlCBGUy0yMjgwMS1BMyBzaG9ydCBzaGlwIDE3IHVuaXRzIOKAlCBQcm9iYXRpb24gc2V2ZXJpdHkgZWxldmF0aW9u"
|
||||
}
|
||||
],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0028",
|
||||
"message_id": "<msg0028@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: NONCONFORMANCE NOTICE \u2014 NCR-MER-2026-0241 (Major) \u2014 Cascade Response",
|
||||
"from_addr": "a.metz@cascadefastener.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "t.ricci@cascadefastener.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T11:00:00-05:00",
|
||||
"body_text": "Kay,\n\nThank you for the NCR notice. I acknowledge receipt of NCR-MER-2026-0241.\n\nUpon reviewing our shipping records, I can confirm the count discrepancy: 17 units were not included in the shipment due to a kitting error at our Cascade facility \u2014 a partial lot was inadvertently packed without the final tray.\n\nRoot cause: Kitting checklist not fully completed prior to packing; last tray of 17 units left in kitting area.\nCorrective action: Implementing mandatory dual-check verification at kitting stage before packing. New procedure effective April 21, 2026.\n\nBalance shipment of 17 FS-22801-A3 units is scheduled to ship April 17 via Yellow Freight. Estimated delivery April 19.\n\nAngela Metz\nQuality Assurance\nCascade Fastener Corp\n503-555-0312",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0027@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0029",
|
||||
"message_id": "<msg0029@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: NCR-MER-2026-0241 \u2014 Balance Shipment Received",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "a.metz@cascadefastener.com",
|
||||
"cc_addr": "t.ricci@cascadefastener.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-20T09:15:00-05:00",
|
||||
"body_text": "Angela,\n\nThe balance shipment of 17 FS-22801-A3 units was received today (REC-20260420-001). Count verified \u2014 exact. Documentation (COC, MTR) present and verified. 100% inspection performed per probation requirements.\n\nMaterial has been accepted and moved to A-RCV-01. The NCR remains open pending your formal CAR submittal by May 2, 2026.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0028@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0030",
|
||||
"message_id": "<msg0030@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "Balance Shipment Inquiry \u2014 MER-PO-104874 Line 001 \u2014 TR-67801-D1",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "w.park@greatlakestrans.com",
|
||||
"cc_addr": "j.park@gearsystems.com, k.baxter@greatlakestrans.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T11:15:00-05:00",
|
||||
"body_text": "Wendy,\n\nWe received the first partial shipment under MER-PO-104874 Line 001 on April 11 (REC-20260411-001) \u2014 12 of 24 TR-67801-D1 units per your split-ship notice. Material was clean and documentation verified.\n\nI wanted to follow up on the expected ship date for the balance 12 units. Our NCR-MER-2026-0235 was closed last cycle, confirming GreatLakes would ship the balance under PO 104874.\n\nCan you confirm:\n1. Expected ship date for the balance 12 units\n2. Whether the same COC lot will cover the balance shipment or if a new COC will be issued\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0031",
|
||||
"message_id": "<msg0031@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: Balance Shipment Inquiry \u2014 MER-PO-104874 Line 001 \u2014 TR-67801-D1",
|
||||
"from_addr": "w.park@greatlakestrans.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "k.baxter@greatlakestrans.com, j.park@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-15T13:30:00-05:00",
|
||||
"body_text": "Kay,\n\nThe balance 12 units of TR-67801-D1 will ship on April 21, 2026 via FedEx Freight. Estimated delivery April 23. A new COC will be issued for the balance lot with a separate heat number (same material specification).\n\nKevin Baxter (copied) will email the COC the morning of shipment.\n\nWendy Park\nGreatLakes Transmission Parts",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0030@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0032",
|
||||
"message_id": "<msg0032@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: Balance Shipment \u2014 MER-PO-104874 Line 001 \u2014 COC Attached",
|
||||
"from_addr": "k.baxter@greatlakestrans.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "w.park@greatlakestrans.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-21T08:00:00-05:00",
|
||||
"body_text": "Kay,\n\nThe balance shipment of 12 TR-67801-D1 units is on the truck today with FedEx Freight, PRO #FXF-2026-88142. COC attached \u2014 Heat HT-2026-2201, same spec as your original order.\n\nEstimated delivery: April 23.\n\nKevin Baxter\nQuality Assurance\nGreatLakes Transmission Parts",
|
||||
"body_html": null,
|
||||
"attachments": [
|
||||
{
|
||||
"filename": "MER-PO-104874_L001_balance_COC.pdf",
|
||||
"content_type": "application/pdf",
|
||||
"content_base64": "Q09DIOKAlCBHcmVhdExha2VzIFRyYW5zbWlzc2lvbiBQYXJ0cyDigJQgVFItNjc4MDEtRDEg4oCUIDEyIHVuaXRzIOKAlCBIZWF0IEhULTIwMjYtMjIwMSDigJQgTUVSLVBPLTEwNDg3NCBMaW5lIDAwMSBiYWxhbmNl"
|
||||
}
|
||||
],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0031@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0033",
|
||||
"message_id": "<msg0033@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: Balance Shipment \u2014 MER-PO-104874 Line 001 \u2014 Expected Today 04/23",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "k.baxter@greatlakestrans.com",
|
||||
"cc_addr": "w.park@greatlakestrans.com, d.hooks@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-23T07:30:00-05:00",
|
||||
"body_text": "Kevin,\n\nThank you \u2014 COC received and saved to our quality_docs folder. Looks good; heat HT-2026-2201 is a clean match to the material spec.\n\nPer the dock schedule, Dock 1 is open for FedEx Freight arrivals today. Darnell Hooks is expecting the delivery. COC is already pre-verified, so as long as the count is right and condition is clean, we should be able to complete putaway same day.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0032@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0034",
|
||||
"message_id": "<msg0034@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "New Supplier First Delivery \u2014 Appalachian Seal & Gasket \u2014 APPT-20260414-005 (Dock 3)",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "t.brandt@gearsystems.com, c.yablonski@gearsystems.com",
|
||||
"cc_addr": "j.park@gearsystems.com, d.hooks@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-13T15:30:00-05:00",
|
||||
"body_text": "Theo, Curtis,\n\nHeads up \u2014 Appalachian Seal & Gasket (SUP-0118, new supplier status) has their first delivery scheduled for tomorrow April 14, Dock 3, APPT-20260414-005.\n\nPO: MER-PO-104918 is for SL parts (standard seals). However, please note:\n\nI do not believe this delivery includes SC parts \u2014 it looks like standard SL seals \u2014 but please verify against the packing slip.\n\nCurtis: please ensure you perform 100% inspection on this receipt.\nTheo: please be available in case the delivery includes any SC-designated SL SKUs.\n\nI've confirmed the appointment with Appalachian Seal's commercial contact Frances Wu.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0035",
|
||||
"message_id": "<msg0035@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: New Supplier First Delivery \u2014 Appalachian Seal & Gasket \u2014 APPT-20260414-005 \u2014 Receipt Complete",
|
||||
"from_addr": "c.yablonski@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "t.brandt@gearsystems.com, d.hooks@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T13:45:00-05:00",
|
||||
"body_text": "Kay,\n\nAppalachian Seal arrived at 11:20 CST on Dock 3. No SC parts in the delivery \u2014 all standard SL seals as expected.\n\n100% inspection completed per new supplier protocol. Count exact. Condition: Tier 0, no issues. COC and SDS (for the oil-compatible seals) present and verified.\n\nMaterial put away to B-RCV-01. Receipt logged as REC-20260414-005.\n\n\u2014 Curtis",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0034@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0036",
|
||||
"message_id": "<msg0036@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "Hazmat Pre-Arrival: LB-55001-A2 \u2014 APPT-20260414-003 \u2014 UN1268 Class 3",
|
||||
"from_addr": "c.ortega@meridianlube.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com, m.ortiz@gearsystems.com",
|
||||
"cc_addr": "c.wojciechowski@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-13T16:00:00-05:00",
|
||||
"body_text": "Kay, Maribel,\n\nJust a heads-up per our standard procedure \u2014 our driver will be at Dock 4 tomorrow (April 14) between 10:00\u201310:30 CST with your order under PO MER-PO-104862.\n\nShipment details:\n SKU: LB-55001-A2 (Petroleum Distillate Lubricant)\n Quantity: 4 drums (220 L each)\n Hazmat: UN1268, Class 3 Flammable Liquid, PG II\n SDS: Rev 4, dated 02/15/2024 (on file with you; copy included in shipment packet)\n Carrier: Local pickup / Meridian Lube truck\n\nPlease ensure your EH&S coordinator (Maribel) is available for the hazmat check-in per our standard protocol. All required hazmat documentation will be present in the shipment packet.\n\nCarlos Ortega\nMeridian Lube Supply\n601-555-0422",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0037",
|
||||
"message_id": "<msg0037@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "RE: Hazmat Pre-Arrival: LB-55001-A2 \u2014 APPT-20260414-003 \u2014 Received Clean",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "c.ortega@meridianlube.com",
|
||||
"cc_addr": "m.ortiz@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T12:05:00-05:00",
|
||||
"body_text": "Carlos,\n\nConfirmed \u2014 your driver arrived at Dock 4 at 10:12 CST. Receipt REC-20260414-003.\n\n4 drums of LB-55001-A2 received. Count exact. Condition: Tier 0, all drums intact, no leakage. SDS verified (Rev 4). Hazmat manifest verified by Maribel Ortiz per SOP Section 17.1.\n\nMaterial transferred to hazmat cage in Warehouse Zone C per Section 17.1.5. No issues.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0036@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0038",
|
||||
"message_id": "<msg0038@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "Crane Required: Delta Metals Oversize Shipment \u2014 APPT-20260415-001 \u2014 Dock 2",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "d.hooks@gearsystems.com",
|
||||
"cc_addr": "c.wojciechowski@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T14:00:00-05:00",
|
||||
"body_text": "Darnell,\n\nTomorrow's dock schedule includes an oversize/heavy delivery from Delta Metals & Alloys \u2014 APPT-20260415-001, Dock 2, estimated 09:00 CST.\n\nPer the dock schedule, this shipment requires crane support. Please ensure the crane is prepped and operator is scheduled for 08:45 CST arrival at Dock 2.\n\nDelta Metals is bringing AX and FG billets (heavy forged stock) under MER-PO-104911. Estes Express carrier.\n\nLet me know if there are any issues with crane availability.\n\n\u2014 K.W.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0039",
|
||||
"message_id": "<msg0039@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "RE: Crane Required: Delta Metals Oversize Shipment \u2014 APPT-20260415-001",
|
||||
"from_addr": "d.hooks@gearsystems.com",
|
||||
"to_addr": "k.whitfield@gearsystems.com",
|
||||
"cc_addr": "c.wojciechowski@gearsystems.com",
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-14T15:30:00-05:00",
|
||||
"body_text": "Kay,\n\nConfirmed \u2014 crane is booked for 08:45 CST at Dock 2. Operator is Mike Stills.\n\nNote: I'll need the lift specs from the Delta Metals freight paperwork (estimated piece weight) before 07:00 tomorrow so Mike can configure the rigging. Can you ask Chris to request this from Estes Express or Delta Metals tonight?\n\n\u2014 Darnell",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": "<msg0038@gearsystems-meridian.com>"
|
||||
},
|
||||
{
|
||||
"email_id": "0040",
|
||||
"message_id": "<msg0040@gearsystems-meridian.com>",
|
||||
"folder": "Sent",
|
||||
"subject": "No-Appointment Truck at Dock \u2014 MER-PO-104874 \u2014 Hold Pending Investigation",
|
||||
"from_addr": "k.whitfield@gearsystems.com",
|
||||
"to_addr": "d.hooks@gearsystems.com",
|
||||
"cc_addr": null,
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-23T09:52:00-05:00",
|
||||
"body_text": "Darnell,\n\nYellow Freight truck arrived at 09:47 without a dock appointment. Driver is claiming delivery of 12 units of TR-67801-D1 under PO MER-PO-104874.\n\nProblem: Per Kevin Baxter's email on 04/21, our authorized carrier for this balance shipment is FedEx Freight, PRO #FXF-2026-88142. FedEx is also on our dock schedule for today.\n\nPlease do NOT unload this truck. Keep them holding at the dock area and do not assign a bay door until we resolve this. I am checking on carrier authorization now.\n\nPlease confirm you received this.\n\n\u2014 Kay Whitfield\nReceiving Coordinator, Gear Systems Inc.",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": true,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0041",
|
||||
"message_id": "<msg0041@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "Quality update \u2014 April 23 morning",
|
||||
"from_addr": "t.brandt@gearsystems.com",
|
||||
"to_addr": "receiving.meridian@gearsystems.com",
|
||||
"cc_addr": null,
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-23T08:02:00-06:00",
|
||||
"body_text": "Kay,\n\nCouple of items for this morning.\n\nFirst \u2014 Reggie is confirmed for the Delta Metals oversize receipt inspection at 10:00 today. He reviewed the DS-71034-A1 drawing package last night and his gauge set is ready. Please make sure the Dock 2 crane area is clear by 09:45 so he can set up.\n\nSecond \u2014 I've reviewed the COC submitted by Lakewood Precision Forgings this morning for the FG-91144-A1 line under REC-20260414-001. The COC is acceptable \u2014 heat number HT-2026-1803 is confirmed and the documentation is complete. You are authorized to release FG-91144-A1 from Q-HOLD. Quantity: 200 units. Please proceed with the standard quarantine release procedure.\n\nThird \u2014 I'm tracking the Hartwell NCR-MER-2026-0248 response deadline (April 28). Will do a hands-on inspection of the BG-33044-A1 bearings once their corrective action response comes in.\n\n\u2014 Theo Brandt\nQuality Manager, Gear Systems Inc. \u2014 Meridian Plant\nt.brandt@gearsystems.com",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": false,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
},
|
||||
{
|
||||
"email_id": "0042",
|
||||
"message_id": "<msg0042@gearsystems-meridian.com>",
|
||||
"folder": "INBOX",
|
||||
"subject": "Quarantine Release Authorization \u2014 BG-33044-A1 \u2014 REC-20260414-002",
|
||||
"from_addr": "d.hooks@gearsystems.com",
|
||||
"to_addr": "receiving.meridian@gearsystems.com",
|
||||
"cc_addr": null,
|
||||
"bcc_addr": null,
|
||||
"date": "2026-04-23T08:17:00-06:00",
|
||||
"body_text": "Kay,\n\nI inspected the BG-33044-A1 bearings from REC-20260414-002 this morning. The 11 units flagged for Tier 2 damage show minor surface scuffing on the outer race \u2014 cosmetic only, nothing that would affect function or dimensional integrity. The remaining 133 units are clean.\n\nI'm comfortable with the condition of this material. You are authorized to release all 144 units of BG-33044-A1 from Q-HOLD to B-02-08 for putaway. Please proceed with the standard quarantine release procedure.\n\n\u2014 Darnell Hooks\nReceiving Supervisor, Gear Systems Inc. \u2014 Meridian Plant\nd.hooks@gearsystems.com",
|
||||
"body_html": null,
|
||||
"attachments": [],
|
||||
"is_read": false,
|
||||
"is_important": false,
|
||||
"in_reply_to": null
|
||||
}
|
||||
],
|
||||
"next_email_id": 43
|
||||
}
|
||||
+1158
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1 @@
|
||||
Check the inbox for quarantine release requests received today and process any that are actionable.
|
||||
@@ -0,0 +1 @@
|
||||
Today's date is, April, 23, 2026, 9:00 AM CST. You are an office assistant with access to the user's filesystem (/workdir), email (google_mail_*), slack (slack_*), calendar (google_calendar_*), jira (jira_*), and shopify (shopify_*) tools. The workspace directory /workdir contains files for the task. Do NOT ask the user for more information — use your tools to discover what you need. Begin by listing /workdir and reading relevant files.
|
||||
@@ -0,0 +1,23 @@
|
||||
schema_version = "1.1"
|
||||
|
||||
[task]
|
||||
name = "sop-tasks/logistics_gear_sytems_inc_0807b5a6"
|
||||
description = "SOP task from CSV row 0807b5a6"
|
||||
|
||||
[agent]
|
||||
timeout_sec = 3600.0
|
||||
|
||||
[verifier]
|
||||
timeout_sec = 3600.0
|
||||
|
||||
[environment]
|
||||
os = "linux"
|
||||
cpus = 2
|
||||
memory_mb = 4096
|
||||
env = { INPUTDIR = "/data", OUTPUTDIR = "/data", WORLDBENCH_TOOL_SETS = "syntara_ds_all google_mail_contacts slack_core google_mail_core google_calendar_core jira_core shopify_core" }
|
||||
|
||||
[[environment.mcp_servers]]
|
||||
name = "mcp-proxy"
|
||||
transport = "streamable-http"
|
||||
url = "http://localhost:8000/mcp"
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
[
|
||||
{
|
||||
"id": "0582f69f-6456-4e9f-a350-fc8a218496b6",
|
||||
"sort_order": 0,
|
||||
"rubric_text": "In file `quarantine_releases/REC-20260414-001_release.pdf`, the release PDF for REC-20260414-001 must exist in the quarantine_releases subfolder of the workspace.",
|
||||
"verifier_code": "from pathlib import Path\n\ndef verify(workspace_path, external_services_path=None):\n pdf_path = Path(workspace_path) / 'quarantine_releases' / 'REC-20260414-001_release.pdf'\n if pdf_path.exists():\n return {'pass': True, 'score': 1.0, 'feedback': f'Found REC-20260414-001_release.pdf at {pdf_path}'}\n # Also check workspace root in case folder structure differs\n alt_path = Path(workspace_path) / 'REC-20260414-001_release.pdf'\n if alt_path.exists():\n return {'pass': True, 'score': 1.0, 'feedback': f'Found REC-20260414-001_release.pdf at {alt_path}'}\n return {'pass': False, 'score': 0.0, 'feedback': f'REC-20260414-001_release.pdf not found at {pdf_path} or {alt_path}'}",
|
||||
"criterion_type": "expected_output"
|
||||
},
|
||||
{
|
||||
"id": "6907a45e-d40b-4af4-af23-242e15476550",
|
||||
"sort_order": 1,
|
||||
"rubric_text": "In file `quarantine_releases/REC-20260414-002_release.pdf`, this file must NOT exist (request was not actionable).",
|
||||
"verifier_code": "from pathlib import Path\n\ndef verify(workspace_path, external_services_path=None):\n pdf_path = Path(workspace_path) / 'quarantine_releases' / 'REC-20260414-002_release.pdf'\n alt_path = Path(workspace_path) / 'REC-20260414-002_release.pdf'\n if pdf_path.exists() or alt_path.exists():\n return {'pass': False, 'score': 0.0, 'feedback': f'REC-20260414-002_release.pdf should NOT exist (request was not actionable) but was found.'}\n return {'pass': True, 'score': 1.0, 'feedback': 'REC-20260414-002_release.pdf correctly does not exist.'}",
|
||||
"criterion_type": "incorrect_behavior"
|
||||
},
|
||||
{
|
||||
"id": "a773a42e-e1fe-4032-a1c8-31074ef3a0aa",
|
||||
"sort_order": 2,
|
||||
"rubric_text": "In file `inventory_master.xlsx`, row 8 must have: cell G8 = 285, cell M8 = 04/14/2026, cell N8 = 'REC-20260414-001', cell O8 = 0, cell P8 = blank, and cell S8 = 'HT-2026-0218, HT-2026-1803'.",
|
||||
"verifier_code": "from pathlib import Path\nimport openpyxl\nfrom datetime import datetime, date\n\ndef verify(workspace_path, external_services_path=None):\n candidates = list(Path(workspace_path).glob('inventory_master.xlsx'))\n if not candidates:\n candidates = list(Path(workspace_path).glob('*inventory_master*'))\n if not candidates:\n return {'pass': False, 'score': 0.0, 'feedback': 'inventory_master.xlsx not found in workspace'}\n wb = openpyxl.load_workbook(candidates[0], data_only=True)\n ws = wb.active\n issues = []\n\n # G8 = 285\n g8 = ws['G8'].value\n try:\n g8_num = float(g8) if g8 is not None else None\n if g8_num is None or abs(g8_num - 285) > 2.85:\n issues.append(f'G8 expected 285, got {g8}')\n except (TypeError, ValueError):\n issues.append(f'G8 expected 285, got {g8}')\n\n # M8 = 04/14/2026\n m8 = ws['M8'].value\n m8_ok = False\n if m8 is not None:\n if isinstance(m8, (datetime, date)):\n dt = m8 if isinstance(m8, datetime) else datetime(m8.year, m8.month, m8.day)\n if dt.month == 4 and dt.day == 14 and dt.year == 2026:\n m8_ok = True\n elif isinstance(m8, str):\n m8_str = m8.strip()\n if '04/14/2026' in m8_str or '4/14/2026' in m8_str or '2026-04-14' in m8_str:\n m8_ok = True\n if not m8_ok:\n issues.append(f'M8 expected 04/14/2026, got {m8}')\n\n # N8 = 'REC-20260414-001'\n n8 = ws['N8'].value\n if n8 is None or str(n8).strip() != 'REC-20260414-001':\n issues.append(f'N8 expected REC-20260414-001, got {n8}')\n\n # O8 = 0\n o8 = ws['O8'].value\n try:\n o8_num = float(o8) if o8 is not None else None\n if o8_num is None or abs(o8_num - 0) > 0.01:\n issues.append(f'O8 expected 0, got {o8}')\n except (TypeError, ValueError):\n issues.append(f'O8 expected 0, got {o8}')\n\n # P8 = blank\n p8 = ws['P8'].value\n if p8 is not None and str(p8).strip() != '':\n issues.append(f'P8 expected blank, got {p8}')\n\n # S8 = 'HT-2026-0218, HT-2026-1803'\n s8 = ws['S8'].value\n if s8 is None:\n issues.append(f'S8 expected HT-2026-0218, HT-2026-1803, got None')\n else:\n s8_str = str(s8).strip()\n if 'HT-2026-0218' not in s8_str or 'HT-2026-1803' not in s8_str:\n issues.append(f'S8 expected to contain HT-2026-0218 and HT-2026-1803, got {s8_str}')\n\n if issues:\n return {'pass': False, 'score': 0.0, 'feedback': 'inventory_master.xlsx row 8 issues: ' + '; '.join(issues)}\n return {'pass': True, 'score': 1.0, 'feedback': f'inventory_master.xlsx row 8 verified: G8={g8}, M8={m8}, N8={n8}, O8={o8}, P8={p8}, S8={s8}'}",
|
||||
"criterion_type": "expected_output"
|
||||
},
|
||||
{
|
||||
"id": "633b2dbd-6618-480b-bee1-843a9ad68813",
|
||||
"sort_order": 3,
|
||||
"rubric_text": "In file `inventory_master.xlsx`, the spreadsheet must have exactly 20 data rows (last data row on row 21).",
|
||||
"verifier_code": "from pathlib import Path\nimport openpyxl\n\ndef verify(workspace_path, external_services_path=None):\n candidates = list(Path(workspace_path).glob('inventory_master.xlsx'))\n if not candidates:\n candidates = list(Path(workspace_path).glob('*inventory_master*'))\n if not candidates:\n return {'pass': False, 'score': 0.0, 'feedback': 'inventory_master.xlsx not found in workspace'}\n wb = openpyxl.load_workbook(candidates[0], data_only=True)\n ws = wb.active\n # Count non-empty rows starting from row 2 (assuming row 1 is header)\n data_rows = 0\n last_data_row = 1 # default to header row if no data\n for row_idx, row in enumerate(ws.iter_rows(min_row=2), start=2):\n if any(cell.value is not None and str(cell.value).strip() != '' for cell in row):\n data_rows += 1\n last_data_row = row_idx\n \n issues = []\n passed = True\n \n if data_rows != 20:\n passed = False\n issues.append(f'Expected exactly 20 data rows, found {data_rows} non-empty data rows.')\n \n if last_data_row != 21:\n passed = False\n issues.append(f'Expected last data row on row 21, but last non-empty data row is on row {last_data_row}.')\n \n if passed:\n return {'pass': True, 'score': 1.0, 'feedback': f'inventory_master.xlsx has exactly 20 data rows with last data row on row 21 as expected.'}\n else:\n return {'pass': False, 'score': 0.0, 'feedback': 'inventory_master.xlsx: ' + ' '.join(issues)}\n",
|
||||
"criterion_type": "expected_output"
|
||||
},
|
||||
{
|
||||
"id": "7056c0e4-718d-4ecf-b54b-abe1d1497bd2",
|
||||
"sort_order": 4,
|
||||
"rubric_text": "In file `receiving_log.xlsx`, row 10 must have: cell V10 = 'COC Received and Verified', cell W10 = 'Accepted', cell X10 = 'ACCEPTED', cell Z10 = date 04/23/2026 at or after 09:00 CST, cell AA10 = 'A-09-01', and cell AB10 = 'Putaway Complete'.",
|
||||
"verifier_code": "from pathlib import Path\nimport openpyxl\nfrom datetime import datetime, date, time\n\ndef verify(workspace_path, external_services_path=None):\n candidates = list(Path(workspace_path).glob('receiving_log.xlsx'))\n if not candidates:\n candidates = list(Path(workspace_path).glob('*receiving_log*'))\n if not candidates:\n return {'pass': False, 'score': 0.0, 'feedback': 'receiving_log.xlsx not found in workspace'}\n wb = openpyxl.load_workbook(candidates[0], data_only=True)\n ws = wb.active\n issues = []\n\n # V10\n v10 = ws['V10'].value\n if v10 is None or 'COC Received and Verified'.lower() not in str(v10).lower():\n issues.append(f'V10 expected COC Received and Verified, got {v10}')\n\n # W10\n w10 = ws['W10'].value\n if w10 is None or 'accepted' not in str(w10).lower():\n issues.append(f'W10 expected Accepted, got {w10}')\n\n # X10\n x10 = ws['X10'].value\n if x10 is None or 'ACCEPTED' not in str(x10).upper():\n issues.append(f'X10 expected ACCEPTED, got {x10}')\n\n # Z10 = 04/23/2026 at or after 09:00\n z10 = ws['Z10'].value\n z10_ok = False\n if z10 is not None:\n if isinstance(z10, datetime):\n if z10.year == 2026 and z10.month == 4 and z10.day == 23:\n if z10.hour > 9 or (z10.hour == 9 and z10.minute >= 0):\n z10_ok = True\n elif isinstance(z10, date):\n if z10.year == 2026 and z10.month == 4 and z10.day == 23:\n z10_ok = True\n elif isinstance(z10, str):\n if '04/23/2026' in z10 or '4/23/2026' in z10 or '2026-04-23' in z10:\n z10_ok = True\n if not z10_ok:\n issues.append(f'Z10 expected 04/23/2026 at or after 09:00, got {z10}')\n\n # AA10\n aa10 = ws['AA10'].value\n if aa10 is None or str(aa10).strip().upper() != 'A-09-01':\n issues.append(f'AA10 expected A-09-01, got {aa10}')\n\n # AB10\n ab10 = ws['AB10'].value\n if ab10 is None or 'Putaway Complete'.lower() not in str(ab10).lower():\n issues.append(f'AB10 expected Putaway Complete, got {ab10}')\n\n if issues:\n return {'pass': False, 'score': 0.0, 'feedback': 'receiving_log.xlsx row 10 issues: ' + '; '.join(issues)}\n return {'pass': True, 'score': 1.0, 'feedback': f'receiving_log.xlsx row 10 verified: V10={v10}, W10={w10}, X10={x10}, Z10={z10}, AA10={aa10}, AB10={ab10}'}",
|
||||
"criterion_type": "expected_output"
|
||||
},
|
||||
{
|
||||
"id": "0fde1f50-a8ba-49af-aa77-2d7ed55ccded",
|
||||
"sort_order": 5,
|
||||
"rubric_text": "In file `receiving_log.xlsx`, the spreadsheet must have exactly 12 data rows (last data row on row 13).",
|
||||
"verifier_code": "from pathlib import Path\nimport openpyxl\n\ndef verify(workspace_path, external_services_path=None):\n candidates = list(Path(workspace_path).glob('receiving_log.xlsx'))\n if not candidates:\n candidates = list(Path(workspace_path).glob('*receiving_log*'))\n if not candidates:\n return {'pass': False, 'score': 0.0, 'feedback': 'receiving_log.xlsx not found in workspace'}\n wb = openpyxl.load_workbook(candidates[0], data_only=True)\n ws = wb.active\n data_rows = 0\n for row in ws.iter_rows(min_row=2):\n if any(cell.value is not None and str(cell.value).strip() != '' for cell in row):\n data_rows += 1\n if data_rows == 12:\n return {'pass': True, 'score': 1.0, 'feedback': f'receiving_log.xlsx has exactly 12 data rows as expected.'}\n else:\n return {'pass': False, 'score': 0.0, 'feedback': f'receiving_log.xlsx expected 12 data rows, found {data_rows} non-empty data rows.'}",
|
||||
"criterion_type": "incorrect_behavior"
|
||||
},
|
||||
{
|
||||
"id": "9ed41faa-6e26-4966-b450-fb6f0739baa4",
|
||||
"sort_order": 6,
|
||||
"rubric_text": "In `ncr_log.xlsx`, cell L6 must remain 'Open' and cell L7 must remain 'Open' (no changes to the NCR log).",
|
||||
"verifier_code": "from pathlib import Path\nimport openpyxl\n\ndef verify(workspace_path, external_services_path=None):\n candidates = list(Path(workspace_path).glob('ncr_log.xlsx'))\n if not candidates:\n candidates = list(Path(workspace_path).glob('*ncr_log*'))\n if not candidates:\n return {'pass': False, 'score': 0.0, 'feedback': 'ncr_log.xlsx not found in workspace'}\n wb = openpyxl.load_workbook(candidates[0], data_only=True)\n ws = wb.active\n issues = []\n l6 = ws['L6'].value\n if l6 is None or str(l6).strip().lower() != 'open':\n issues.append(f'L6 expected Open, got {l6}')\n l7 = ws['L7'].value\n if l7 is None or str(l7).strip().lower() != 'open':\n issues.append(f'L7 expected Open, got {l7}')\n if issues:\n return {'pass': False, 'score': 0.0, 'feedback': 'ncr_log.xlsx issues: ' + '; '.join(issues)}\n return {'pass': True, 'score': 1.0, 'feedback': f'ncr_log.xlsx L6={l6}, L7={l7} both remain Open as expected.'}",
|
||||
"criterion_type": "incorrect_behavior"
|
||||
},
|
||||
{
|
||||
"id": "20df59e2-389b-4eec-b36d-eb9e8bbb32b5",
|
||||
"sort_order": 7,
|
||||
"rubric_text": "In `mailbox.json` (external services), there should not be any replies to message_id = <msg0026@gearsystems-meridian.com> in the Sent folder.",
|
||||
"verifier_code": "from pathlib import Path\nimport json\n\ndef verify(workspace_path, external_services_path=None):\n if external_services_path is None:\n return {'pass': False, 'score': 0.0, 'feedback': 'No external_services_path provided; cannot check mailbox.json for sent emails.'}\n mailbox_path = Path(external_services_path) / 'mailbox.json'\n if not mailbox_path.exists():\n return {'pass': False, 'score': 0.0, 'feedback': 'mailbox.json not found in external services path.'}\n with open(mailbox_path, 'r') as f:\n data = json.load(f)\n emails = data.get('emails', [])\n sent_emails = [e for e in emails if str(e.get('folder', '')).lower() == 'sent']\n\n target_message_id = '<msg0026@gearsystems-meridian.com>'\n\n # Look for any sent email that is a reply to the target message_id.\n # A reply could be indicated by:\n # - in_reply_to field matching the target message_id\n # - references field containing the target message_id\n # - reply_to_message_id field matching\n # We check multiple common field names to be generous.\n replies = []\n for e in sent_emails:\n in_reply_to = str(e.get('in_reply_to', '') or '')\n references = str(e.get('references', '') or '')\n reply_to_message_id = str(e.get('reply_to_message_id', '') or '')\n # Also check if subject starts with Re: and references the message somehow\n # Check body or headers for the message id as well\n headers = e.get('headers', {})\n header_in_reply_to = str(headers.get('In-Reply-To', '') or '') if isinstance(headers, dict) else ''\n header_references = str(headers.get('References', '') or '') if isinstance(headers, dict) else ''\n\n if (target_message_id in in_reply_to or\n target_message_id in references or\n target_message_id in reply_to_message_id or\n target_message_id in header_in_reply_to or\n target_message_id in header_references or\n # Also check without angle brackets\n 'msg0026@gearsystems-meridian.com' in in_reply_to or\n 'msg0026@gearsystems-meridian.com' in references or\n 'msg0026@gearsystems-meridian.com' in reply_to_message_id or\n 'msg0026@gearsystems-meridian.com' in header_in_reply_to or\n 'msg0026@gearsystems-meridian.com' in header_references):\n replies.append(e)\n\n if len(replies) == 0:\n return {\n 'pass': True,\n 'score': 1.0,\n 'feedback': f'No replies to {target_message_id} found in the Sent folder. Total sent emails: {len(sent_emails)}. Check passed.'\n }\n else:\n reply_ids = [str(e.get('email_id', 'unknown')) for e in replies]\n return {\n 'pass': False,\n 'score': 0.0,\n 'feedback': f'Found {len(replies)} reply/replies to {target_message_id} in the Sent folder (email_ids: {reply_ids}). There should not be any replies to this message.'\n }\n",
|
||||
"criterion_type": "incorrect_behavior"
|
||||
},
|
||||
{
|
||||
"id": "3366695a-2408-4dc6-b59c-5e73ca53d99f",
|
||||
"sort_order": 8,
|
||||
"rubric_text": "Calendar event evt-025 must exist with title unchanged (no '[COMPLETED]'). Description must contain the original phrase 'Theo Brandt to verify COC against MTR heat numbers: HT-2026-1184, HT-2026-1185, HT-2026-0997 for receipt REC-20260414-001 (NCR-MER-2026-0247)' AND must contain a partial-release annotation including 'FG-91144-A1 released' with quantity and destination, and 'Remaining on Q-HOLD' listing both AX-04827-B2 and AX-05512-C1 with their quarantined quantities (44 and 96 respectively).",
|
||||
"verifier_code": "from pathlib import Path\nimport json\nimport re\n\ndef verify(workspace_path, external_services_path=None):\n if external_services_path is None:\n return {'pass': False, 'score': 0.0, 'feedback': 'No external_services_path provided; cannot check calendar_data.json.'}\n cal_path = Path(external_services_path) / 'calendar_data.json'\n if not cal_path.exists():\n return {'pass': False, 'score': 0.0, 'feedback': 'calendar_data.json not found in external services path.'}\n with open(cal_path, 'r') as f:\n data = json.load(f)\n events = data.get('events', {})\n if 'evt-025' not in events:\n return {'pass': False, 'score': 0.0, 'feedback': 'Event evt-025 is missing from calendar_data.json (may have been deleted).'}\n evt = events['evt-025']\n summary = evt.get('summary', '') or ''\n description = evt.get('description', '') or ''\n desc_lower = description.lower()\n issues = []\n\n # (1) Title must not contain [COMPLETED]\n if '[COMPLETED]' in summary.upper():\n issues.append(f'Title contains [COMPLETED]: {summary}')\n\n # (2) Description must contain original heat-number phrase\n heat_numbers = ['HT-2026-1184', 'HT-2026-1185', 'HT-2026-0997']\n for hn in heat_numbers:\n if hn not in description:\n issues.append(f'Description missing original heat number {hn}')\n break\n\n # (3) Description must contain partial-release annotation with FG-91144-A1 released\n has_partial_release = ('partial release' in desc_lower or 'partial-release' in desc_lower)\n has_fg_released = ('fg-91144-a1' in desc_lower and 'released' in desc_lower)\n if not has_partial_release:\n issues.append('Description missing Partial release annotation')\n if not has_fg_released:\n issues.append('Description missing FG-91144-A1 released')\n\n # (4) Description must contain Remaining on Q-HOLD with both AX-04827-B2 and AX-05512-C1\n has_remaining = ('remaining on q-hold' in desc_lower)\n if not has_remaining:\n issues.append('Description missing Remaining on Q-HOLD')\n if 'ax-04827-b2' not in desc_lower:\n issues.append('Description missing AX-04827-B2 in remaining quarantine list')\n if 'ax-05512-c1' not in desc_lower:\n issues.append('Description missing AX-05512-C1 in remaining quarantine list')\n\n # (5) Check that 44 and 96 appear in the annotation context\n # Find the partial release annotation portion\n partial_idx = desc_lower.find('partial release')\n if partial_idx == -1:\n partial_idx = desc_lower.find('partial-release')\n if partial_idx >= 0:\n annotation_text = desc_lower[partial_idx:]\n if '44' not in annotation_text:\n issues.append('Annotation missing quarantined quantity 44 for AX-04827-B2')\n if '96' not in annotation_text:\n issues.append('Annotation missing quarantined quantity 96 for AX-05512-C1')\n else:\n if '44' not in desc_lower or '96' not in desc_lower:\n issues.append('Description missing quarantined quantities 44 and/or 96')\n\n if issues:\n return {'pass': False, 'score': 0.0, 'feedback': 'evt-025 issues: ' + '; '.join(issues) + f'. Description: {description[:500]}'}\n return {'pass': True, 'score': 1.0, 'feedback': f'Event evt-025 verified: title has no [COMPLETED], description contains original heat-number phrase, partial-release annotation with FG-91144-A1 released, Remaining on Q-HOLD listing AX-04827-B2 (44) and AX-05512-C1 (96).'}\n",
|
||||
"criterion_type": "incorrect_behavior"
|
||||
},
|
||||
{
|
||||
"id": "5de62afe-3687-426c-af6f-53d58dea3b01",
|
||||
"sort_order": 9,
|
||||
"rubric_text": "In slack_data.json (external services), the #receiving-dock channel must have the message containing 'QUARANTINE RELEASED: REC-20260414-001, SKU FG-91144-A1, qty 200 released from Q-HOLD to A-09-01. Authorization: Theo Brandt, 04/23/2026.'",
|
||||
"verifier_code": "from pathlib import Path\nimport json\nimport re\n\ndef verify(workspace_path, external_services_path=None):\n if external_services_path is None:\n return {'pass': False, 'score': 0.0, 'feedback': 'No external_services_path provided; cannot check Slack data.'}\n slack_path = Path(external_services_path) / 'slack_data.json'\n if not slack_path.exists():\n return {'pass': False, 'score': 0.0, 'feedback': 'slack_data.json not found in external services path.'}\n with open(slack_path, 'r') as f:\n data = json.load(f)\n channels = data.get('channels', {})\n # Find the #receiving-dock channel ID\n dock_channel_id = None\n for cid, cinfo in channels.items():\n channel_name = cinfo.get('name', '').lower().replace('-', '').replace('_', '')\n if channel_name in ['receivingdock']:\n dock_channel_id = cid\n break\n if dock_channel_id is None:\n return {'pass': False, 'score': 0.0, 'feedback': '#receiving-dock channel not found in slack_data.json. Available channels: ' + str([c.get('name') for c in channels.values()])}\n messages_dict = data.get('messages', {})\n msgs = messages_dict.get(dock_channel_id, [])\n if not msgs:\n return {'pass': False, 'score': 0.0, 'feedback': '#receiving-dock channel has no messages.'}\n\n # Required wording (whitespace-insensitive match) and identifiers (must appear exactly)\n required_text = 'QUARANTINE RELEASED: REC-20260414-001, SKU FG-91144-A1, qty 200 released from Q-HOLD to A-09-01. Authorization: Theo Brandt, 04/23/2026.'\n required_exact_tokens = ['REC-20260414-001', 'FG-91144-A1', 'A-09-01']\n\n def normalize_ws(s):\n # Collapse any run of whitespace (spaces, tabs, newlines) into a single space, strip ends\n return re.sub(r'\\s+', ' ', s).strip()\n\n required_norm = normalize_ws(required_text)\n\n # Check all messages in the channel for the required text (whitespace-insensitive)\n found = False\n found_text = ''\n for msg in msgs:\n msg_text = msg.get('text', '') or ''\n msg_norm = normalize_ws(msg_text)\n if required_norm in msg_norm:\n # Also require the three identifiers to appear exactly in the original message text\n missing = [tok for tok in required_exact_tokens if tok not in msg_text]\n if missing:\n return {'pass': False, 'score': 0.0,\n 'feedback': f'#receiving-dock message matches the wording but is missing exact identifier(s): {missing}. Message: \"{msg_text[:300]}\"'}\n found = True\n found_text = msg_text\n break\n\n # Case-insensitive fallback for leniency (still whitespace-insensitive, still requires exact identifiers)\n if not found:\n for msg in msgs:\n msg_text = msg.get('text', '') or ''\n msg_norm = normalize_ws(msg_text)\n if required_norm.lower() in msg_norm.lower():\n missing = [tok for tok in required_exact_tokens if tok not in msg_text]\n if missing:\n return {'pass': False, 'score': 0.0,\n 'feedback': f'#receiving-dock message matches the wording (case-insensitive) but is missing exact identifier(s): {missing}. Message: \"{msg_text[:300]}\"'}\n found = True\n found_text = msg_text\n break\n\n if not found:\n sorted_msgs = sorted(msgs, key=lambda m: float(m.get('ts', 0)))\n recent_texts = [m.get('text', '')[:200] for m in sorted_msgs[-3:]]\n return {'pass': False, 'score': 0.0,\n 'feedback': f'#receiving-dock channel does not contain required quarantine release message. Required text (whitespace-insensitive): \"{required_text}\". Last {len(recent_texts)} messages: {recent_texts}'}\n\n return {'pass': True, 'score': 1.0, 'feedback': f'#receiving-dock channel contains the required quarantine release message: {found_text[:300]}'}\n",
|
||||
"criterion_type": "expected_output"
|
||||
},
|
||||
{
|
||||
"id": "rubric_1776321019779",
|
||||
"sort_order": 10,
|
||||
"rubric_text": "In file `inventory_master.xlsx`, cell O11 must be \"144\", P11 must be \"Quarantine - Tier 2 damage pending inspection (REC-20260414-002)\", O19 must be \"44\", P19 must be \"QUARANTINE — missing COC (REC-20260414-001)\", O21 must be \"144\", and P21 must be \"QUARANTINE — Tier 2 damage pending inspection (REC-20260414-002)\".",
|
||||
"verifier_code": "from pathlib import Path\nimport openpyxl\n\ndef verify(workspace_path, external_services_path=None):\n # Find inventory_master.xlsx\n file_path = Path(workspace_path) / \"inventory_master.xlsx\"\n \n if not file_path.exists():\n xlsx_files = list(Path(workspace_path).glob(\"**/inventory_master.xlsx\"))\n if xlsx_files:\n file_path = xlsx_files[0]\n else:\n return {\"pass\": False, \"score\": 0.0, \"feedback\": \"File `inventory_master.xlsx` not found in workspace.\"}\n \n try:\n wb = openpyxl.load_workbook(file_path, data_only=True)\n except Exception as e:\n return {\"pass\": False, \"score\": 0.0, \"feedback\": f\"Could not open `inventory_master.xlsx`: {e}\"}\n \n ws = wb.active\n if ws is None:\n ws = wb.worksheets[0] if wb.worksheets else None\n \n if ws is None:\n wb.close()\n return {\"pass\": False, \"score\": 0.0, \"feedback\": \"No worksheets found in `inventory_master.xlsx`.\"}\n \n feedback_parts = []\n checks_passed = 0\n total_checks = 6\n \n def cell_str(row, col):\n val = ws.cell(row=row, column=col).value\n if val is None:\n return None\n return str(val).strip()\n \n def normalize_dash(s):\n if s is None:\n return None\n return s.replace('\\u2014', '-').replace('\\u2013', '-').replace('--', '-').lower().strip()\n \n def check_numeric(row, col, expected, label):\n nonlocal checks_passed\n val = cell_str(row, col)\n # Accept numeric equivalence: \"144\" or \"144.0\" etc.\n match = False\n if val is not None:\n try:\n if float(val) == float(expected):\n match = True\n except ValueError:\n pass\n if val == expected:\n match = True\n if match:\n checks_passed += 1\n feedback_parts.append(f\"PASS: {label} = '{val}' (expected '{expected}')\")\n else:\n feedback_parts.append(f\"FAIL: {label} = '{val}' (expected '{expected}')\")\n \n def check_text(row, col, expected, label):\n nonlocal checks_passed\n val = cell_str(row, col)\n if val is not None and normalize_dash(val) == normalize_dash(expected):\n checks_passed += 1\n feedback_parts.append(f\"PASS: {label} = '{val}'\")\n else:\n feedback_parts.append(f\"FAIL: {label} = '{val}' (expected '{expected}')\")\n \n # O = column 15, P = column 16\n \n # Check O11 must be \"144\"\n check_numeric(11, 15, \"144\", \"O11\")\n \n # Check P11 must be \"Quarantine - Tier 2 damage pending inspection (REC-20260414-002)\"\n check_text(11, 16, \"Quarantine - Tier 2 damage pending inspection (REC-20260414-002)\", \"P11\")\n \n # Check O19 must be \"44\"\n check_numeric(19, 15, \"44\", \"O19\")\n \n # Check P19 must be \"QUARANTINE \\u2014 missing COC (REC-20260414-001)\"\n check_text(19, 16, \"QUARANTINE \\u2014 missing COC (REC-20260414-001)\", \"P19\")\n \n # Check O21 must be \"144\"\n check_numeric(21, 15, \"144\", \"O21\")\n \n # Check P21 must be \"QUARANTINE \\u2014 Tier 2 damage pending inspection (REC-20260414-002)\"\n check_text(21, 16, \"QUARANTINE \\u2014 Tier 2 damage pending inspection (REC-20260414-002)\", \"P21\")\n \n wb.close()\n \n score = checks_passed / total_checks\n passed = checks_passed == total_checks\n \n summary = f\"{checks_passed}/{total_checks} checks passed. \" + \" | \".join(feedback_parts)\n \n return {\"pass\": passed, \"score\": score, \"feedback\": summary}\n",
|
||||
"criterion_type": "incorrect_behavior"
|
||||
},
|
||||
{
|
||||
"id": "rubric_1776327435121",
|
||||
"sort_order": 11,
|
||||
"rubric_text": "In file `quarantine_releases/REC-20260414-001_release.pdf`, the content must include the following text: \"I've reviewed the COC submitted by Lakewood Precision Forgings this morning for the FG-91144-A1 line under REC-20260414-001.\", \"The COC is acceptable\", \"heat number HT-2026-1803 is confirmed and the documentation is complete.\", \"You are authorized to release FG-91144-A1 from Q-HOLD. Quantity: 200 units. Please proceed with the standard quarantine release procedure.\", and \"Theo Brandt\".",
|
||||
"verifier_code": "from pathlib import Path\nimport re\n\n\ndef verify(workspace_path, external_services_path=None):\n \"\"\"\n Verify that quarantine_releases/REC-20260414-001_release.pdf exists and\n contains the required text phrases from the rubric.\n \"\"\"\n workspace_path = Path(workspace_path)\n pdf_path = workspace_path / \"quarantine_releases\" / \"REC-20260414-001_release.pdf\"\n\n if not pdf_path.exists():\n return {\n \"pass\": False,\n \"score\": 0.0,\n \"feedback\": f\"PDF file not found at {pdf_path}\",\n }\n\n # ---- Extract PDF text ----\n pdf_text = \"\"\n pdf_errors = []\n try:\n import pdfplumber\n with pdfplumber.open(pdf_path) as pdf:\n for page in pdf.pages:\n t = page.extract_text()\n if t:\n pdf_text += t + \"\\n\"\n except Exception as e:\n pdf_errors.append(f\"pdfplumber: {e}\")\n\n if not pdf_text.strip():\n try:\n import PyPDF2\n with open(pdf_path, \"rb\") as f:\n reader = PyPDF2.PdfReader(f)\n for page in reader.pages:\n t = page.extract_text()\n if t:\n pdf_text += t + \"\\n\"\n except Exception as e:\n pdf_errors.append(f\"PyPDF2: {e}\")\n\n if not pdf_text.strip():\n return {\n \"pass\": False,\n \"score\": 0.0,\n \"feedback\": f\"Could not extract text from PDF at {pdf_path}. Errors: {pdf_errors}\",\n }\n\n # Normalize whitespace for matching (collapse all whitespace to single space)\n pdf_text_normalized = re.sub(r\"\\s+\", \" \", pdf_text)\n\n # ---- Required phrases from the rubric ----\n required_phrases = [\n \"I've reviewed the COC submitted by Lakewood Precision Forgings this morning for the FG-91144-A1 line under REC-20260414-001.\",\n \"The COC is acceptable\",\n \"heat number HT-2026-1803 is confirmed and the documentation is complete.\",\n \"You are authorized to release FG-91144-A1 from Q-HOLD. Quantity: 200 units. Please proceed with the standard quarantine release procedure.\",\n \"Theo Brandt\",\n ]\n\n found_phrases = []\n missing_phrases = []\n\n for phrase in required_phrases:\n # Normalize the phrase the same way\n phrase_normalized = re.sub(r\"\\s+\", \" \", phrase)\n # Case-insensitive check\n if phrase_normalized.lower() in pdf_text_normalized.lower():\n found_phrases.append(phrase)\n else:\n # Try a more lenient check: compare significant words\n # Extract words >= 3 chars from the phrase\n phrase_words = [w.lower().strip(\".,;:!?()'\\\"\\u2014-\") for w in re.split(r\"\\s+\", phrase_normalized)]\n phrase_words = [w for w in phrase_words if len(w) >= 3]\n if phrase_words:\n pdf_lower = pdf_text_normalized.lower()\n words_found = sum(1 for w in phrase_words if w in pdf_lower)\n ratio = words_found / len(phrase_words)\n if ratio >= 0.9:\n found_phrases.append(phrase)\n else:\n missing_phrases.append(f\"{phrase!r} (word match: {words_found}/{len(phrase_words)} = {ratio:.0%})\")\n else:\n missing_phrases.append(phrase)\n\n total = len(required_phrases)\n passed_count = len(found_phrases)\n score = passed_count / total if total > 0 else 0.0\n passed = passed_count == total\n\n if passed:\n feedback = (\n f\"PDF at {pdf_path} contains all {total} required phrases. \"\n f\"All checks passed.\"\n )\n else:\n feedback = (\n f\"PDF at {pdf_path} is missing {len(missing_phrases)}/{total} required phrases. \"\n f\"Missing: {'; '.join(missing_phrases)}\"\n )\n\n return {\"pass\": passed, \"score\": score, \"feedback\": feedback}\n",
|
||||
"criterion_type": "expected_output"
|
||||
},
|
||||
{
|
||||
"id": "rubric_1776897621818",
|
||||
"sort_order": 12,
|
||||
"rubric_text": "In file `receiving_log.xlsx`, the Status column for rows 8 and 9 (cells AB8 and AB9) should contain the exact text \"Quarantined\".",
|
||||
"verifier_code": "from pathlib import Path\nimport openpyxl\n\ndef verify(workspace_path, external_services_path=None):\n file_path = Path(workspace_path) / \"receiving_log.xlsx\"\n \n if not file_path.exists():\n return {\"pass\": False, \"score\": 0.0, \"feedback\": f\"File 'receiving_log.xlsx' not found in workspace at {workspace_path}\"}\n \n try:\n wb = openpyxl.load_workbook(str(file_path), data_only=True)\n ws = wb.active\n except Exception as e:\n return {\"pass\": False, \"score\": 0.0, \"feedback\": f\"Error opening 'receiving_log.xlsx': {e}\"}\n \n results = {}\n cells_to_check = {\"AB8\": 8, \"AB9\": 9}\n \n for cell_ref, row_num in cells_to_check.items():\n cell_value = ws[cell_ref].value\n if cell_value is not None:\n cell_str = str(cell_value).strip()\n else:\n cell_str = None\n results[cell_ref] = cell_str\n \n wb.close()\n \n passed = True\n feedback_parts = []\n \n for cell_ref, actual_value in results.items():\n if actual_value is not None and actual_value.lower() == \"quarantined\":\n feedback_parts.append(f\"{cell_ref} = '{actual_value}' ✓\")\n else:\n passed = False\n feedback_parts.append(f\"{cell_ref} = '{actual_value}' (expected 'Quarantined') ✗\")\n \n score = sum(1 for cell_ref, val in results.items() if val is not None and val.lower() == \"quarantined\") / len(cells_to_check)\n \n feedback = \"Checking receiving_log.xlsx cells AB8 and AB9 for 'Quarantined': \" + \"; \".join(feedback_parts)\n \n return {\"pass\": passed, \"score\": score, \"feedback\": feedback}\n",
|
||||
"criterion_type": "incorrect_behavior"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,135 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Run bundled SOP Python verifiers inside a Harbor task container."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
import traceback
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
WORKDIR = Path("/workdir")
|
||||
DATA_DIR = Path("/data")
|
||||
INITIAL_DATA_DIR = Path("/initial_data")
|
||||
TESTS_DIR = Path("/tests")
|
||||
VERIFIER_DIR = Path("/logs/verifier")
|
||||
|
||||
SERVICE_COMPAT_FILES: dict[str, tuple[str, tuple[str, ...]]] = {
|
||||
"slack": ("slack.json", ("slack.json", "slack_data.json")),
|
||||
"google_mail": ("inbox.json", ("inbox.json", "mailbox.json")),
|
||||
"google_calendar": ("calendar_data.json", ("calendar_data.json", "calendar.json")),
|
||||
"jira": ("jira_state.json", ("jira_state.json", "jira_data.json")),
|
||||
"shopify": ("shopify_data.json", ("shopify_data.json",)),
|
||||
}
|
||||
|
||||
|
||||
def _state_path(service: str, seed_name: str) -> Path | None:
|
||||
candidates = [
|
||||
DATA_DIR / service / "final.json",
|
||||
DATA_DIR / service / seed_name,
|
||||
INITIAL_DATA_DIR / service / seed_name,
|
||||
]
|
||||
return next((p for p in candidates if p.is_file()), None)
|
||||
|
||||
|
||||
def _build_compat_external_services(dest: Path) -> None:
|
||||
dest.mkdir(parents=True, exist_ok=True)
|
||||
for service, (seed_name, compat_names) in SERVICE_COMPAT_FILES.items():
|
||||
src = _state_path(service, seed_name)
|
||||
if src is not None:
|
||||
for compat_name in compat_names:
|
||||
shutil.copy2(src, dest / compat_name)
|
||||
|
||||
|
||||
def _coerce_result(raw: Any) -> dict[str, Any]:
|
||||
if isinstance(raw, dict):
|
||||
passed = bool(raw.get("pass", raw.get("passed", False)))
|
||||
score = raw.get("score", 1.0 if passed else 0.0)
|
||||
try:
|
||||
score = float(score)
|
||||
except (TypeError, ValueError):
|
||||
score = 1.0 if passed else 0.0
|
||||
return {
|
||||
"pass": passed,
|
||||
"score": max(0.0, min(1.0, score)),
|
||||
"feedback": str(raw.get("feedback", "")),
|
||||
}
|
||||
passed = bool(raw)
|
||||
return {"pass": passed, "score": 1.0 if passed else 0.0, "feedback": str(raw)}
|
||||
|
||||
|
||||
def _run_one(rubric: dict[str, Any], external_services_path: Path) -> dict[str, Any]:
|
||||
rubric_id = str(rubric.get("id") or "rubric")
|
||||
code = rubric.get("verifier_code")
|
||||
if not isinstance(code, str) or not code.strip():
|
||||
return {
|
||||
"id": rubric_id,
|
||||
"pass": False,
|
||||
"score": 0.0,
|
||||
"feedback": "rubric has no verifier_code",
|
||||
}
|
||||
|
||||
namespace: dict[str, Any] = {"__builtins__": __builtins__}
|
||||
try:
|
||||
exec(compile(code, f"<{rubric_id}>", "exec"), namespace)
|
||||
verify = namespace.get("verify")
|
||||
if not callable(verify):
|
||||
raise RuntimeError("verifier_code did not define verify()")
|
||||
result = _coerce_result(verify(str(WORKDIR), str(external_services_path)))
|
||||
return {"id": rubric_id, **result}
|
||||
except Exception:
|
||||
return {
|
||||
"id": rubric_id,
|
||||
"pass": False,
|
||||
"score": 0.0,
|
||||
"feedback": traceback.format_exc(),
|
||||
}
|
||||
|
||||
|
||||
def main() -> None:
|
||||
rubrics_path = TESTS_DIR / "rubrics.json"
|
||||
if not rubrics_path.is_file():
|
||||
print("[sop-verifier] ERROR: rubrics.json not found", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
rubrics = json.loads(rubrics_path.read_text())
|
||||
if not isinstance(rubrics, list):
|
||||
print("[sop-verifier] ERROR: rubrics.json must be a list", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
with tempfile.TemporaryDirectory(prefix="sop-external-services-") as tmp:
|
||||
compat_dir = Path(tmp)
|
||||
_build_compat_external_services(compat_dir)
|
||||
results = [_run_one(r, compat_dir) for r in rubrics]
|
||||
|
||||
total = len(results)
|
||||
passed = sum(1 for r in results if r.get("pass"))
|
||||
average_score = round(
|
||||
sum(float(r.get("score", 0.0)) for r in results) / total,
|
||||
4,
|
||||
) if total else 0.0
|
||||
|
||||
print(f"[sop-verifier] {passed}/{total} rubrics passed; score={average_score:.2f}")
|
||||
for result in results:
|
||||
status = "PASS" if result.get("pass") else "FAIL"
|
||||
feedback = str(result.get("feedback", "")).replace("\n", " ")[:500]
|
||||
print(f" [{status}] {result.get('id')}: {feedback}")
|
||||
|
||||
output = {
|
||||
"passed": passed == total,
|
||||
"rubrics_passed": passed,
|
||||
"rubrics_total": total,
|
||||
"score": average_score,
|
||||
"rubric_results": results,
|
||||
}
|
||||
(TESTS_DIR / "results.json").write_text(json.dumps(output, indent=2) + "\n")
|
||||
|
||||
VERIFIER_DIR.mkdir(parents=True, exist_ok=True)
|
||||
(VERIFIER_DIR / "reward.txt").write_text(str(average_score))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1 @@
|
||||
Check the inbox for quarantine release requests received today (4/23/2026 9:00 AM CST) and process any that are actionable.
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
pip install openpyxl pdfplumber python-docx 2>/dev/null
|
||||
python /tests/sop_verifier.py
|
||||
Reference in New Issue
Block a user