@wonsukchoi/crondex 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -44
- package/catalog.json +8862 -1873
- package/jobs/automotive/ase-certification-expiry-check.yaml +36 -0
- package/jobs/automotive/csi-score-monitor.yaml +33 -0
- package/jobs/automotive/customer-pay-warranty-pay-mix-tracker.yaml +47 -0
- package/jobs/automotive/fi-product-attachment-rate-tracker.yaml +39 -0
- package/jobs/automotive/loaner-fleet-availability-check.yaml +40 -0
- package/jobs/automotive/manufacturer-recall-notice-check.yaml +39 -0
- package/jobs/automotive/parts-reorder-point-check.yaml +36 -0
- package/jobs/automotive/repair-cycle-time-trend-monitor.yaml +42 -0
- package/jobs/automotive/service-appointment-no-show-tracker.yaml +38 -0
- package/jobs/automotive/service-bay-utilization-check.yaml +38 -0
- package/jobs/automotive/shop-supply-reorder-check.yaml +31 -0
- package/jobs/automotive/trade-in-appraisal-variance-check.yaml +39 -0
- package/jobs/automotive/used-vehicle-inventory-aging-check.yaml +35 -0
- package/jobs/construction/critical-path-material-lead-time-review.yaml +43 -0
- package/jobs/construction/daily-jobsite-log-compliance-check.yaml +34 -0
- package/jobs/construction/equipment-utilization-cost-check.yaml +35 -0
- package/jobs/construction/heavy-equipment-inspection-compliance-check.yaml +34 -0
- package/jobs/construction/jobsite-safety-incident-near-miss-tracker.yaml +35 -0
- package/jobs/construction/lien-waiver-collection-tracker.yaml +27 -0
- package/jobs/construction/permit-application-approval-backlog-check.yaml +33 -0
- package/jobs/construction/project-budget-variance-check.yaml +34 -0
- package/jobs/construction/punch-list-completion-tracker.yaml +36 -0
- package/jobs/construction/retainage-holdback-release-tracker.yaml +33 -0
- package/jobs/construction/rfi-response-time-tracker.yaml +33 -0
- package/jobs/construction/subcontractor-pay-application-approval-tracker.yaml +35 -0
- package/jobs/construction/submittal-shop-drawing-review-check.yaml +45 -0
- package/jobs/construction/weather-delay-impact-log.yaml +44 -0
- package/jobs/ecommerce/affiliate-commission-payout-check.yaml +38 -0
- package/jobs/ecommerce/back-in-stock-notification-backlog-check.yaml +30 -0
- package/jobs/ecommerce/bundle-component-stock-mismatch-check.yaml +37 -0
- package/jobs/ecommerce/chargeback-fraud-risk-order-review.yaml +43 -0
- package/jobs/ecommerce/competitor-price-watch.yaml +60 -0
- package/jobs/ecommerce/economic-nexus-threshold-check.yaml +43 -0
- package/jobs/ecommerce/failed-payment-dunning-check.yaml +35 -0
- package/jobs/ecommerce/marketplace-listing-sync-drift-check.yaml +48 -0
- package/jobs/ecommerce/product-feed-health-check.yaml +35 -0
- package/jobs/ecommerce/purchase-order-overdue-check.yaml +32 -0
- package/jobs/ecommerce/storefront-ssl-domain-expiry-check.yaml +46 -0
- package/jobs/ecommerce/vip-tier-reclassification-check.yaml +55 -0
- package/jobs/ecommerce/wishlist-abandonment-check.yaml +37 -0
- package/jobs/education/chronic-absenteeism-tracker.yaml +34 -0
- package/jobs/education/department-budget-variance-check.yaml +37 -0
- package/jobs/education/enrollment-withdrawal-trend-tracker.yaml +39 -0
- package/jobs/education/facility-work-order-backlog-check.yaml +34 -0
- package/jobs/education/free-reduced-lunch-eligibility-renewal-check.yaml +36 -0
- package/jobs/education/iep-504-review-deadline-tracker.yaml +35 -0
- package/jobs/education/parent-teacher-conference-noshow-tracker.yaml +29 -0
- package/jobs/education/school-bus-route-ontime-check.yaml +40 -0
- package/jobs/education/standardized-test-registration-deadline-check.yaml +35 -0
- package/jobs/education/substitute-teacher-fill-rate-tracker.yaml +35 -0
- package/jobs/education/teacher-certification-expiry-tracker.yaml +35 -0
- package/jobs/education/textbook-inventory-shortage-check.yaml +32 -0
- package/jobs/finance/accounts-payable-aging-check.yaml +40 -0
- package/jobs/finance/bank-statement-reconciliation-check.yaml +40 -0
- package/jobs/finance/budget-vs-actual-variance-report.yaml +38 -0
- package/jobs/finance/contractor-1099-threshold-tracker.yaml +43 -0
- package/jobs/finance/credit-utilization-watch.yaml +40 -0
- package/jobs/finance/duplicate-payment-detection.yaml +43 -0
- package/jobs/finance/expense-report-compliance-check.yaml +46 -0
- package/jobs/finance/late-fee-interest-risk-check.yaml +43 -0
- package/jobs/finance/loan-covenant-compliance-check.yaml +37 -0
- package/jobs/finance/month-end-close-checklist-tracker.yaml +39 -0
- package/jobs/finance/multi-account-cash-position-rollup.yaml +45 -0
- package/jobs/finance/petty-cash-float-reconciliation.yaml +43 -0
- package/jobs/finance/quarterly-estimated-tax-calculator.yaml +66 -0
- package/jobs/finance/vendor-early-pay-discount-tracker.yaml +45 -0
- package/jobs/fleet/accident-incident-report-tracker.yaml +34 -0
- package/jobs/fleet/driver-mvr-review-tracker.yaml +34 -0
- package/jobs/fleet/driver-safety-score-monitor.yaml +39 -0
- package/jobs/fleet/ev-battery-health-check.yaml +36 -0
- package/jobs/fleet/fuel-efficiency-trend-monitor.yaml +33 -0
- package/jobs/fleet/geofence-violation-check.yaml +37 -0
- package/jobs/fleet/lease-return-condition-check.yaml +33 -0
- package/jobs/fleet/tire-wear-replacement-check.yaml +30 -0
- package/jobs/fleet/toll-violation-tracker.yaml +34 -0
- package/jobs/fleet/vehicle-pool-scheduling-conflict-check.yaml +37 -0
- package/jobs/fleet/vehicle-tco-tracker.yaml +41 -0
- package/jobs/fleet/vehicle-utilization-rate-check.yaml +37 -0
- package/jobs/growth/cohort-retention-curve-monitor.yaml +39 -0
- package/jobs/growth/customer-health-score-monitor.yaml +37 -0
- package/jobs/growth/dau-mau-engagement-ratio-check.yaml +39 -0
- package/jobs/growth/dormant-account-reactivation-check.yaml +39 -0
- package/jobs/growth/expansion-revenue-opportunity-tracker.yaml +44 -0
- package/jobs/growth/feature-adoption-rate-tracker.yaml +44 -0
- package/jobs/growth/nps-trend-tracker.yaml +40 -0
- package/jobs/growth/onboarding-funnel-dropoff-check.yaml +39 -0
- package/jobs/growth/paywall-upgrade-prompt-conversion-check.yaml +40 -0
- package/jobs/growth/product-qualified-lead-tracker.yaml +42 -0
- package/jobs/growth/referral-program-performance-tracker.yaml +35 -0
- package/jobs/growth/trial-to-paid-conversion-rate-tracker.yaml +48 -0
- package/jobs/growth/winback-reactivation-campaign-tracker.yaml +46 -0
- package/jobs/healthcare/appointment-slot-utilization-check.yaml +56 -0
- package/jobs/healthcare/claims-denial-resubmission-check.yaml +43 -0
- package/jobs/healthcare/clinical-supply-low-stock-check.yaml +30 -0
- package/jobs/healthcare/controlled-substance-inventory-reconciliation.yaml +42 -0
- package/jobs/healthcare/hipaa-access-log-audit.yaml +74 -0
- package/jobs/healthcare/patient-balance-collections-aging-check.yaml +41 -0
- package/jobs/healthcare/patient-immunization-schedule-check.yaml +41 -0
- package/jobs/healthcare/patient-portal-message-backlog-check.yaml +39 -0
- package/jobs/healthcare/patient-satisfaction-survey-tracking.yaml +59 -0
- package/jobs/healthcare/prescription-refill-request-backlog-check.yaml +38 -0
- package/jobs/healthcare/prior-authorization-expiry-check.yaml +53 -0
- package/jobs/healthcare/staff-cme-credit-tracking.yaml +41 -0
- package/jobs/healthcare/telehealth-session-issue-check.yaml +51 -0
- package/jobs/hospitality/adr-revpar-tracker.yaml +43 -0
- package/jobs/hospitality/cancellation-rate-spike-check.yaml +21 -0
- package/jobs/hospitality/group-booking-space-utilization-check.yaml +40 -0
- package/jobs/hospitality/guest-complaint-sla-tracker.yaml +34 -0
- package/jobs/hospitality/guest-satisfaction-score-monitor.yaml +41 -0
- package/jobs/hospitality/linen-inventory-turnover-check.yaml +35 -0
- package/jobs/hospitality/loyalty-points-reconciliation-check.yaml +33 -0
- package/jobs/hospitality/minibar-charge-reconciliation-check.yaml +38 -0
- package/jobs/hospitality/occupancy-forecast-variance-check.yaml +33 -0
- package/jobs/hospitality/ota-rate-parity-check.yaml +36 -0
- package/jobs/hospitality/overbooking-risk-alert.yaml +38 -0
- package/jobs/hospitality/room-maintenance-work-order-tracker.yaml +31 -0
- package/jobs/hospitality/upsell-upgrade-conversion-tracker.yaml +37 -0
- package/jobs/hr/aca-fte-threshold-monitor.yaml +44 -0
- package/jobs/hr/cobra-notification-deadline-tracker.yaml +47 -0
- package/jobs/hr/compliance-training-completion-check.yaml +41 -0
- package/jobs/hr/eeo1-filing-deadline-reminder.yaml +37 -0
- package/jobs/hr/handbook-acknowledgment-tracking.yaml +34 -0
- package/jobs/hr/headcount-budget-variance-check.yaml +37 -0
- package/jobs/hr/leave-of-absence-return-tracker.yaml +42 -0
- package/jobs/hr/org-chart-manager-drift-check.yaml +40 -0
- package/jobs/hr/pay-equity-band-outlier-check.yaml +58 -0
- package/jobs/hr/pto-year-end-use-it-or-lose-it-check.yaml +49 -0
- package/jobs/hr/retirement-plan-enrollment-deadline-check.yaml +40 -0
- package/jobs/hr/workers-comp-claim-status-check.yaml +42 -0
- package/jobs/insurance/adjuster-caseload-balance-check.yaml +45 -0
- package/jobs/insurance/agent-broker-license-expiry-tracker.yaml +40 -0
- package/jobs/insurance/cat-event-exposure-monitor.yaml +37 -0
- package/jobs/insurance/claims-aging-backlog-tracker.yaml +48 -0
- package/jobs/insurance/doi-filing-deadline-tracker.yaml +42 -0
- package/jobs/insurance/loss-ratio-by-line-monitor.yaml +43 -0
- package/jobs/insurance/policy-lapse-rate-monitor.yaml +41 -0
- package/jobs/insurance/premium-payment-delinquency-tracker.yaml +42 -0
- package/jobs/insurance/quote-to-bind-conversion-tracker.yaml +41 -0
- package/jobs/insurance/reinsurance-treaty-renewal-tracker.yaml +38 -0
- package/jobs/insurance/siu-fraud-referral-tracker.yaml +36 -0
- package/jobs/insurance/subrogation-recovery-tracker.yaml +41 -0
- package/jobs/insurance/underwriting-queue-sla-monitor.yaml +45 -0
- package/jobs/legal/conflict-of-interest-check-tracker.yaml +38 -0
- package/jobs/legal/corporate-minute-book-completeness-check.yaml +31 -0
- package/jobs/legal/data-privacy-request-deadline-tracker.yaml +61 -0
- package/jobs/legal/entity-authority-document-expiry-check.yaml +37 -0
- package/jobs/legal/legal-document-retention-purge-review.yaml +39 -0
- package/jobs/legal/litigation-hold-acknowledgment-tracker.yaml +40 -0
- package/jobs/legal/non-compete-expiry-tracker.yaml +37 -0
- package/jobs/legal/outside-counsel-invoice-budget-check.yaml +37 -0
- package/jobs/legal/settlement-payment-schedule-tracker.yaml +34 -0
- package/jobs/legal/timekeeper-billable-hours-compliance-check.yaml +39 -0
- package/jobs/legal/trademark-infringement-watch.yaml +43 -0
- package/jobs/legal/vendor-coi-expiry-tracker.yaml +37 -0
- package/jobs/logistics/3pl-performance-scorecard.yaml +45 -0
- package/jobs/logistics/bol-freight-class-accuracy-audit.yaml +33 -0
- package/jobs/logistics/cargo-insurance-claim-status-check.yaml +39 -0
- package/jobs/logistics/carrier-load-tender-acceptance-check.yaml +34 -0
- package/jobs/logistics/carrier-otd-performance-scorecard.yaml +41 -0
- package/jobs/logistics/carrier-rate-contract-renewal-check.yaml +35 -0
- package/jobs/logistics/cross-dock-dwell-time-watch.yaml +43 -0
- package/jobs/logistics/freight-invoice-rate-audit.yaml +38 -0
- package/jobs/logistics/fuel-surcharge-rate-monitor.yaml +40 -0
- package/jobs/logistics/international-shipment-documentation-check.yaml +36 -0
- package/jobs/logistics/linehaul-transit-time-variance-check.yaml +43 -0
- package/jobs/logistics/proof-of-delivery-reconciliation-check.yaml +38 -0
- package/jobs/logistics/route-load-optimization-check.yaml +32 -0
- package/jobs/manufacturing/changeover-time-tracker.yaml +29 -0
- package/jobs/manufacturing/critical-spare-parts-stock-check.yaml +29 -0
- package/jobs/manufacturing/first-pass-yield-report.yaml +37 -0
- package/jobs/manufacturing/lot-traceability-audit.yaml +37 -0
- package/jobs/manufacturing/non-conformance-report-backlog-check.yaml +34 -0
- package/jobs/manufacturing/oee-efficiency-check.yaml +37 -0
- package/jobs/manufacturing/osha-recordable-incident-audit.yaml +37 -0
- package/jobs/manufacturing/production-schedule-adherence-check.yaml +35 -0
- package/jobs/manufacturing/safety-certification-expiry-check.yaml +37 -0
- package/jobs/manufacturing/scrap-waste-rate-watch.yaml +33 -0
- package/jobs/manufacturing/shift-handoff-report.yaml +37 -0
- package/jobs/manufacturing/supplier-quality-ppm-watch.yaml +38 -0
- package/jobs/manufacturing/tooling-die-wear-check.yaml +31 -0
- package/jobs/manufacturing/work-order-backlog-check.yaml +37 -0
- package/jobs/marketing/ad-creative-fatigue-check.yaml +44 -0
- package/jobs/marketing/affiliate-partner-performance-check.yaml +38 -0
- package/jobs/marketing/attribution-discrepancy-check.yaml +42 -0
- package/jobs/marketing/brand-share-of-voice-check.yaml +43 -0
- package/jobs/marketing/campaign-roas-cpa-anomaly-check.yaml +41 -0
- package/jobs/marketing/competitor-ad-creative-watch.yaml +40 -0
- package/jobs/marketing/email-list-growth-rate-check.yaml +43 -0
- package/jobs/marketing/landing-page-conversion-drop-check.yaml +44 -0
- package/jobs/marketing/mql-to-sql-handoff-sla-check.yaml +29 -0
- package/jobs/marketing/mql-volume-pace-check.yaml +34 -0
- package/jobs/marketing/paid-search-negative-keyword-waste-check.yaml +37 -0
- package/jobs/marketing/press-release-pickup-tracking.yaml +32 -0
- package/jobs/marketing/webinar-registration-attendance-check.yaml +38 -0
- package/jobs/realestate/capital-reserve-fund-threshold-check.yaml +32 -0
- package/jobs/realestate/eviction-notice-deadline-tracker.yaml +37 -0
- package/jobs/realestate/landlord-insurance-claim-status-check.yaml +35 -0
- package/jobs/realestate/lease-renewal-offer-window-check.yaml +35 -0
- package/jobs/realestate/maintenance-request-sla-check.yaml +39 -0
- package/jobs/realestate/move-in-move-out-inspection-tracker.yaml +35 -0
- package/jobs/realestate/rent-increase-notice-deadline-check.yaml +54 -0
- package/jobs/realestate/rent-roll-vacancy-loss-report.yaml +32 -0
- package/jobs/realestate/rental-license-renewal-check.yaml +35 -0
- package/jobs/realestate/security-deposit-return-deadline-check.yaml +38 -0
- package/jobs/realestate/tenant-application-review-backlog-check.yaml +35 -0
- package/jobs/realestate/tenant-renters-insurance-compliance-check.yaml +35 -0
- package/jobs/realestate/utility-billback-reconciliation-check.yaml +41 -0
- package/jobs/restaurant/comp-void-anomaly-tracker.yaml +39 -0
- package/jobs/restaurant/daily-sales-flash-report.yaml +36 -0
- package/jobs/restaurant/delivery-platform-commission-reconciliation.yaml +33 -0
- package/jobs/restaurant/delivery-receiving-discrepancy-check.yaml +33 -0
- package/jobs/restaurant/food-handler-permit-expiry-tracker.yaml +33 -0
- package/jobs/restaurant/gift-card-liability-check.yaml +45 -0
- package/jobs/restaurant/kitchen-ticket-time-watch.yaml +38 -0
- package/jobs/restaurant/liquor-pour-cost-variance-check.yaml +34 -0
- package/jobs/restaurant/menu-86-frequency-tracker.yaml +39 -0
- package/jobs/restaurant/menu-item-profitability-check.yaml +33 -0
- package/jobs/restaurant/pos-end-of-day-reconciliation-check.yaml +31 -0
- package/jobs/restaurant/table-turnover-rate-tracker.yaml +36 -0
- package/jobs/restaurant/waitlist-conversion-check.yaml +37 -0
- package/jobs/retail/cash-office-deposit-variance-check.yaml +34 -0
- package/jobs/retail/competitor-price-monitoring-check.yaml +42 -0
- package/jobs/retail/damaged-merchandise-writeoff-tracker.yaml +41 -0
- package/jobs/retail/employee-discount-abuse-check.yaml +39 -0
- package/jobs/retail/layaway-special-order-pickup-tracker.yaml +33 -0
- package/jobs/retail/loyalty-enrollment-redemption-rate-tracker.yaml +37 -0
- package/jobs/retail/markdown-execution-audit-check.yaml +29 -0
- package/jobs/retail/planogram-compliance-audit-check.yaml +36 -0
- package/jobs/retail/pos-void-refund-anomaly-tracker.yaml +42 -0
- package/jobs/retail/price-tag-audit-accuracy-check.yaml +37 -0
- package/jobs/retail/sales-per-square-foot-tracker.yaml +36 -0
- package/jobs/retail/seasonal-staffing-coverage-check.yaml +35 -0
- package/jobs/retail/store-closing-checklist-compliance-check.yaml +32 -0
- package/jobs/retail/visual-merchandising-compliance-check.yaml +40 -0
- package/jobs/sales/champion-departure-watch.yaml +44 -0
- package/jobs/sales/closed-lost-reason-audit.yaml +42 -0
- package/jobs/sales/commission-payout-tracker.yaml +32 -0
- package/jobs/sales/contract-renewal-opportunity-tracker.yaml +28 -0
- package/jobs/sales/discount-approval-pending-check.yaml +31 -0
- package/jobs/sales/forecast-submission-compliance-check.yaml +42 -0
- package/jobs/sales/multi-year-renewal-escalation-tracker.yaml +31 -0
- package/jobs/sales/pipeline-hygiene-audit.yaml +26 -0
- package/jobs/sales/poc-trial-conversion-tracker.yaml +29 -0
- package/jobs/sales/referral-followup-tracker.yaml +40 -0
- package/jobs/sales/territory-coverage-gap-check.yaml +43 -0
- package/jobs/veterinary/appointment-no-show-rate-tracker.yaml +49 -0
- package/jobs/veterinary/boarding-kennel-capacity-utilization-check.yaml +39 -0
- package/jobs/veterinary/client-payment-plan-delinquency-check.yaml +36 -0
- package/jobs/veterinary/dvm-license-dea-registration-expiry-check.yaml +41 -0
- package/jobs/veterinary/microchip-registration-verification-check.yaml +40 -0
- package/jobs/veterinary/patient-record-completeness-audit.yaml +41 -0
- package/jobs/veterinary/pet-medication-refill-backlog-check.yaml +36 -0
- package/jobs/veterinary/puppy-kitten-vaccine-series-compliance-check.yaml +39 -0
- package/jobs/veterinary/senior-pet-wellness-recall-tracker.yaml +43 -0
- package/jobs/veterinary/spay-neuter-followup-compliance-check.yaml +35 -0
- package/jobs/veterinary/specialist-referral-followup-check.yaml +38 -0
- package/jobs/veterinary/surgical-schedule-utilization-check.yaml +36 -0
- package/jobs/veterinary/vet-staff-ce-credit-tracking.yaml +36 -0
- package/jobs/warehousing/conveyor-sortation-downtime-watch.yaml +48 -0
- package/jobs/warehousing/labor-productivity-rate-check.yaml +33 -0
- package/jobs/warehousing/mhe-preventive-maintenance-check.yaml +38 -0
- package/jobs/warehousing/order-fulfillment-sla-watch.yaml +42 -0
- package/jobs/warehousing/shift-headcount-coverage-check.yaml +33 -0
- package/jobs/warehousing/slotting-velocity-review-check.yaml +44 -0
- package/jobs/warehousing/warehouse-damage-writeoff-review.yaml +41 -0
- package/jobs/warehousing/warehouse-near-miss-incident-rate-watch.yaml +47 -0
- package/jobs/warehousing/warehouse-space-utilization-check.yaml +39 -0
- package/jobs/warehousing/wave-pick-batch-efficiency-check.yaml +33 -0
- package/jobs/warehousing/wms-integration-error-check.yaml +36 -0
- package/jobs/warehousing/yard-trailer-detention-watch.yaml +41 -0
- package/lib/category-descriptions.js +12 -12
- package/lib/duplicates-allowlist.js +15 -0
- package/package.json +2 -2
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: carrier-otd-performance-scorecard
|
|
2
|
+
version: 1
|
|
3
|
+
name: Carrier On-Time Delivery Performance Scorecard
|
|
4
|
+
description: >
|
|
5
|
+
Tracks each carrier's on-time delivery rate over recent shipments and
|
|
6
|
+
flags any carrier that's dropped below your target. Use this if a
|
|
7
|
+
carrier's reliability has ever quietly slipped for months before a
|
|
8
|
+
customer complaint made it obvious.
|
|
9
|
+
category: logistics
|
|
10
|
+
tags: [logistics, carrier, otd, performance]
|
|
11
|
+
schedule: "0 8 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v target="{{otd_target_pct}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
total[$1]++;
|
|
19
|
+
if ($2 == "on-time") ontime[$1]++;
|
|
20
|
+
}
|
|
21
|
+
END {
|
|
22
|
+
for (c in total) {
|
|
23
|
+
pct = (ontime[c] / total[c]) * 100;
|
|
24
|
+
if (pct < target) {
|
|
25
|
+
printf "BELOW TARGET: %s — %.1f%% on-time (%d of %d shipments), target %d%%\n", c, pct, ontime[c], total[c], target;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
' "{{shipments_csv_path}}"
|
|
30
|
+
variables:
|
|
31
|
+
shipments_csv_path:
|
|
32
|
+
default: "./carrier-shipments.csv"
|
|
33
|
+
description: "Path to a CSV with columns: carrier_name,status (on-time or late) — one row per recent outbound shipment."
|
|
34
|
+
otd_target_pct:
|
|
35
|
+
default: 90
|
|
36
|
+
description: Minimum acceptable on-time delivery percentage per carrier.
|
|
37
|
+
compatible_agents: [generic, claude, codex]
|
|
38
|
+
notes: >
|
|
39
|
+
Tracks outbound carrier delivery performance to customers, not inbound
|
|
40
|
+
supplier delivery of materials — pair with your TMS or carrier
|
|
41
|
+
scorecard export to keep the CSV current.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: carrier-rate-contract-renewal-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Carrier Rate Contract Renewal Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks tracked carrier rate agreements against their expiry date and
|
|
6
|
+
warns before they lapse. Use this if a freight contract has ever
|
|
7
|
+
quietly expired and shipments kept moving on it anyway, until a rate
|
|
8
|
+
dispute surfaced with no valid agreement backing it.
|
|
9
|
+
category: logistics
|
|
10
|
+
tags: [logistics, carrier, contract, renewal]
|
|
11
|
+
schedule: "0 8 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v days="{{warn_days_before}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
|
|
19
|
+
cmd | getline expiry_epoch; close(cmd);
|
|
20
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
21
|
+
diff_days = (expiry_epoch - now_epoch) / 86400;
|
|
22
|
+
if (diff_days <= days) {
|
|
23
|
+
printf "RENEWAL DUE: carrier agreement %s — expires %s (%d days)\n", $1, $2, diff_days;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
' "{{carrier_contracts_csv_path}}"
|
|
27
|
+
variables:
|
|
28
|
+
carrier_contracts_csv_path:
|
|
29
|
+
default: "./carrier-rate-contracts.csv"
|
|
30
|
+
description: "Path to a CSV with columns: carrier_name,contract_expiry_date (YYYY-MM-DD)."
|
|
31
|
+
warn_days_before:
|
|
32
|
+
default: 45
|
|
33
|
+
description: How many days before contract expiry to start warning, to leave time for renewal negotiation.
|
|
34
|
+
compatible_agents: [generic, claude, codex]
|
|
35
|
+
notes: Assumes carrier rate agreements and their term dates are exported or manually tracked from procurement/legal — this is the renewal-deadline backstop, not a contract management system.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
id: cross-dock-dwell-time-watch
|
|
2
|
+
version: 1
|
|
3
|
+
name: Cross-Dock Dwell Time Watch
|
|
4
|
+
description: >
|
|
5
|
+
Checks freight moving through a cross-dock facility against a target
|
|
6
|
+
dwell time and flags anything sitting too long between inbound and
|
|
7
|
+
outbound legs. Use this if freight has ever quietly stalled at a
|
|
8
|
+
cross-dock for days, turning a same-day transfer into a missed
|
|
9
|
+
delivery window.
|
|
10
|
+
category: logistics
|
|
11
|
+
tags: [logistics, cross-dock, dwell-time, freight]
|
|
12
|
+
schedule: "0 */2 * * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v threshold="{{max_dwell_hours}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
shipment=$1; arrived=$2; status=$3;
|
|
20
|
+
if (status != "departed") {
|
|
21
|
+
cmd = "date -d \"" arrived "\" +%s 2>/dev/null || date -j -f %Y-%m-%dT%H:%M:%S \"" arrived "\" +%s 2>/dev/null";
|
|
22
|
+
cmd | getline arrived_epoch; close(cmd);
|
|
23
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
24
|
+
dwell_hours = (now_epoch - arrived_epoch) / 3600;
|
|
25
|
+
if (dwell_hours >= threshold) {
|
|
26
|
+
printf "DWELL EXCEEDED: shipment %s has been on the dock %.1fh (arrived %s), threshold %dh\n", shipment, dwell_hours, arrived, threshold;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
' "{{crossdock_status_csv}}"
|
|
31
|
+
variables:
|
|
32
|
+
crossdock_status_csv:
|
|
33
|
+
default: "./crossdock-shipment-status.csv"
|
|
34
|
+
description: "Path to a CSV with columns: shipment_id,arrived_at (ISO timestamp),status (e.g. staged, departed) — export from your dock/yard management system."
|
|
35
|
+
max_dwell_hours:
|
|
36
|
+
default: 12
|
|
37
|
+
description: Hours a shipment can sit at the cross-dock before it's flagged.
|
|
38
|
+
compatible_agents: [generic, claude, codex]
|
|
39
|
+
notes: >
|
|
40
|
+
Tracks freight-in-transit dwell between inbound and outbound legs at a
|
|
41
|
+
cross-dock, distinct from warehousing's dock-schedule-conflict-check
|
|
42
|
+
(which checks appointment scheduling conflicts, not how long freight
|
|
43
|
+
actually sits once it's on the dock).
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
id: freight-invoice-rate-audit
|
|
2
|
+
version: 1
|
|
3
|
+
name: Freight Invoice Rate Audit
|
|
4
|
+
description: >
|
|
5
|
+
Compares billed freight invoice amounts against the contracted rate for
|
|
6
|
+
each shipment and flags overcharges. Use this if a carrier has ever
|
|
7
|
+
quietly billed above the agreed rate and it only got caught months
|
|
8
|
+
later during an annual freight spend review.
|
|
9
|
+
category: logistics
|
|
10
|
+
tags: [logistics, freight, invoice, audit, billing]
|
|
11
|
+
schedule: "0 6 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v tolerance="{{overcharge_tolerance_pct}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
invoice_id=$1; contracted=$2; billed=$3;
|
|
19
|
+
if (contracted <= 0) next;
|
|
20
|
+
pct_over = ((billed - contracted) / contracted) * 100;
|
|
21
|
+
if (pct_over > tolerance) {
|
|
22
|
+
printf "OVERCHARGE: invoice %s — billed $%.2f vs contracted $%.2f (%.1f%% over, tolerance %d%%)\n", invoice_id, billed, contracted, pct_over, tolerance;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
' "{{invoices_csv_path}}"
|
|
26
|
+
variables:
|
|
27
|
+
invoices_csv_path:
|
|
28
|
+
default: "./freight-invoices.csv"
|
|
29
|
+
description: "Path to a CSV with columns: invoice_id,contracted_rate,billed_amount — export from your freight audit/AP system."
|
|
30
|
+
overcharge_tolerance_pct:
|
|
31
|
+
default: 3
|
|
32
|
+
description: Percent above the contracted rate allowed before flagging as an overcharge worth disputing.
|
|
33
|
+
compatible_agents: [generic, claude, codex]
|
|
34
|
+
notes: >
|
|
35
|
+
Checks billing accuracy against the contracted rate, not market rate
|
|
36
|
+
movement — pair with freight-rate-spike-watch if you also want to
|
|
37
|
+
track whether the contracted rate itself is falling behind the
|
|
38
|
+
market.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
id: fuel-surcharge-rate-monitor
|
|
2
|
+
version: 1
|
|
3
|
+
name: Fuel Surcharge Rate Monitor
|
|
4
|
+
description: >
|
|
5
|
+
Checks the current published fuel surcharge index against your
|
|
6
|
+
baseline and flags a jump. Use this if a carrier's fuel surcharge has
|
|
7
|
+
ever crept up for weeks before it showed up as a bigger-than-expected
|
|
8
|
+
line item on the freight invoice.
|
|
9
|
+
category: logistics
|
|
10
|
+
tags: [logistics, freight, fuel-surcharge, rates]
|
|
11
|
+
schedule: "0 7 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
surcharge_pct=$(curl -s -H "Authorization: Bearer {{fuel_index_api_token}}" "{{fuel_index_api_url}}" | grep -o '"surcharge_pct":[0-9.]*' | head -n1 | cut -d':' -f2);
|
|
16
|
+
if [ -z "$surcharge_pct" ]; then echo "ERROR: could not fetch fuel surcharge data from {{fuel_index_api_url}}"; exit 1; fi;
|
|
17
|
+
if awk "BEGIN{exit !($surcharge_pct - {{baseline_surcharge_pct}} >= {{jump_threshold_pct}})}"; then
|
|
18
|
+
echo "WARNING: fuel surcharge is ${surcharge_pct}% (baseline {{baseline_surcharge_pct}}%, jumped >= {{jump_threshold_pct}}pt)";
|
|
19
|
+
exit 1;
|
|
20
|
+
else echo "OK: fuel surcharge is ${surcharge_pct}%, within tolerance of baseline {{baseline_surcharge_pct}}%"; fi
|
|
21
|
+
variables:
|
|
22
|
+
fuel_index_api_url:
|
|
23
|
+
default: "https://api.example-carrier.com/fuel-surcharge/current"
|
|
24
|
+
description: Carrier or DOE fuel surcharge index API endpoint returning surcharge_pct.
|
|
25
|
+
fuel_index_api_token:
|
|
26
|
+
default: "your-api-token"
|
|
27
|
+
description: Bearer token for the fuel surcharge index API, if required.
|
|
28
|
+
baseline_surcharge_pct:
|
|
29
|
+
default: 25
|
|
30
|
+
description: Baseline fuel surcharge percentage to compare against.
|
|
31
|
+
jump_threshold_pct:
|
|
32
|
+
default: 5
|
|
33
|
+
description: Percentage-point jump above baseline that counts as worth flagging.
|
|
34
|
+
compatible_agents: [generic, claude, codex]
|
|
35
|
+
notes: >
|
|
36
|
+
Generic REST pattern — point fuel_index_api_url at your carrier's
|
|
37
|
+
published surcharge schedule or the DOE/EIA weekly diesel price feed
|
|
38
|
+
used to derive it; adjust field names to match its response shape.
|
|
39
|
+
Distinct from freight-rate-spike-watch, which tracks the all-in
|
|
40
|
+
quoted lane rate rather than the fuel surcharge component alone.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
id: international-shipment-documentation-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: International Shipment Documentation Completeness Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks upcoming international shipments for missing export/import
|
|
6
|
+
paperwork before they're due to ship. Use this if a shipment has ever
|
|
7
|
+
reached the port only to get held up because the commercial invoice or
|
|
8
|
+
certificate of origin was never finalized.
|
|
9
|
+
category: logistics
|
|
10
|
+
tags: [logistics, international, documentation, export, compliance]
|
|
11
|
+
schedule: "0 8 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Check {{shipment_system_hint}} for international shipments scheduled
|
|
16
|
+
to depart within the next {{lookahead_days}} days.
|
|
17
|
+
1. For each shipment, verify the required document set is present:
|
|
18
|
+
commercial invoice, packing list, certificate of origin, and any
|
|
19
|
+
destination-specific requirements (e.g. import license, phytosanitary
|
|
20
|
+
certificate) for {{destination_hint}}.
|
|
21
|
+
2. Flag any shipment missing one or more required documents.
|
|
22
|
+
3. For each flagged shipment, note which document is missing and who
|
|
23
|
+
typically owns producing it (shipper, freight forwarder, customs
|
|
24
|
+
broker).
|
|
25
|
+
variables:
|
|
26
|
+
shipment_system_hint:
|
|
27
|
+
default: "your TMS or export documentation system"
|
|
28
|
+
description: Where upcoming international shipments and their document status are tracked.
|
|
29
|
+
lookahead_days:
|
|
30
|
+
default: 5
|
|
31
|
+
description: How many days ahead to check for shipments needing documentation.
|
|
32
|
+
destination_hint:
|
|
33
|
+
default: "your typical export destination(s)"
|
|
34
|
+
description: Destination country/countries, since required documents vary by destination.
|
|
35
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
36
|
+
notes: No generic script mode — required document sets vary by destination country and commodity, and need judgment about which regulatory requirements apply.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
id: linehaul-transit-time-variance-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Linehaul Transit Time Variance Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares actual transit times against the scheduled transit time per
|
|
6
|
+
lane and flags lanes running consistently slow. Use this if a lane's
|
|
7
|
+
transit times have ever crept up gradually until service levels
|
|
8
|
+
quietly missed the mark for a whole quarter.
|
|
9
|
+
category: logistics
|
|
10
|
+
tags: [logistics, transit, lanes, performance]
|
|
11
|
+
schedule: "0 7 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v tolerance="{{variance_hours_threshold}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
lane=$1; scheduled=$2; actual=$3;
|
|
19
|
+
variance = actual - scheduled;
|
|
20
|
+
sum[lane] += variance; count[lane]++;
|
|
21
|
+
}
|
|
22
|
+
END {
|
|
23
|
+
for (l in sum) {
|
|
24
|
+
avg = sum[l] / count[l];
|
|
25
|
+
if (avg >= tolerance) {
|
|
26
|
+
printf "SLOW LANE: %s — averaging %.1fh over scheduled transit time across %d shipments\n", l, avg, count[l];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
' "{{transit_times_csv_path}}"
|
|
31
|
+
variables:
|
|
32
|
+
transit_times_csv_path:
|
|
33
|
+
default: "./lane-transit-times.csv"
|
|
34
|
+
description: "Path to a CSV with columns: lane,scheduled_transit_hours,actual_transit_hours — one row per completed shipment."
|
|
35
|
+
variance_hours_threshold:
|
|
36
|
+
default: 6
|
|
37
|
+
description: Average hours over scheduled transit time before a lane is flagged as consistently slow.
|
|
38
|
+
compatible_agents: [generic, claude, codex]
|
|
39
|
+
notes: >
|
|
40
|
+
Aggregates variance across a lane's shipment history, unlike
|
|
41
|
+
shipment-delay-watch which checks a single shipment's live tracking
|
|
42
|
+
status — this catches gradual lane-level drift a one-off delay check
|
|
43
|
+
won't.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
id: proof-of-delivery-reconciliation-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Proof-of-Delivery Reconciliation Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks shipments marked delivered against whether a signed proof-of-
|
|
6
|
+
delivery has actually been received and filed. Use this if a delivery
|
|
7
|
+
dispute has ever dragged on for weeks because nobody could produce the
|
|
8
|
+
POD to settle it.
|
|
9
|
+
category: logistics
|
|
10
|
+
tags: [logistics, delivery, pod, reconciliation]
|
|
11
|
+
schedule: "0 8 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v days="{{missing_pod_warn_days}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
shipment=$1; delivered_date=$2; pod_received=$3;
|
|
19
|
+
if (pod_received == "no" || pod_received == "") {
|
|
20
|
+
cmd = "date -d \"" delivered_date "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" delivered_date "\" +%s 2>/dev/null";
|
|
21
|
+
cmd | getline delivered_epoch; close(cmd);
|
|
22
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
23
|
+
age_days = (now_epoch - delivered_epoch) / 86400;
|
|
24
|
+
if (age_days >= days) {
|
|
25
|
+
printf "MISSING POD: shipment %s delivered %s (%d days ago), no proof-of-delivery on file\n", shipment, delivered_date, age_days;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
' "{{delivered_shipments_csv}}"
|
|
30
|
+
variables:
|
|
31
|
+
delivered_shipments_csv:
|
|
32
|
+
default: "./delivered-shipments.csv"
|
|
33
|
+
description: "Path to a CSV with columns: shipment_id,delivered_date,pod_received (yes/no) — export from your TMS or carrier POD feed."
|
|
34
|
+
missing_pod_warn_days:
|
|
35
|
+
default: 3
|
|
36
|
+
description: Days after delivery a POD can be missing before it's flagged.
|
|
37
|
+
compatible_agents: [generic, claude, codex]
|
|
38
|
+
notes: Assumes delivered status and POD receipt are both tracked in your TMS/carrier feed — this is the reconciliation backstop, not a POD capture system itself.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: route-load-optimization-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Route Load Optimization Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks planned truckload trailer fill rates and flags loads shipping
|
|
6
|
+
significantly under capacity. Use this if a half-empty trailer has
|
|
7
|
+
ever gone out the door because nobody checked fill rate before
|
|
8
|
+
dispatch, paying full linehaul cost for a fraction of the freight.
|
|
9
|
+
category: logistics
|
|
10
|
+
tags: [logistics, routing, load-planning, optimization]
|
|
11
|
+
schedule: "0 6 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v threshold="{{min_fill_pct}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
load=$1; fill_pct=$2;
|
|
19
|
+
if (fill_pct < threshold) {
|
|
20
|
+
printf "UNDERFILLED: load %s — %.1f%% trailer fill, below %d%% target\n", load, fill_pct, threshold;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
' "{{planned_loads_csv_path}}"
|
|
24
|
+
variables:
|
|
25
|
+
planned_loads_csv_path:
|
|
26
|
+
default: "./planned-loads.csv"
|
|
27
|
+
description: "Path to a CSV with columns: load_id,fill_pct — one row per load planned for today's dispatch, exported from your routing/load planning system."
|
|
28
|
+
min_fill_pct:
|
|
29
|
+
default: 80
|
|
30
|
+
description: Minimum acceptable trailer fill percentage before a load is flagged as underfilled.
|
|
31
|
+
compatible_agents: [generic, claude, codex]
|
|
32
|
+
notes: Assumes your routing/load-building system can export planned fill rate per load before dispatch — this is the pre-dispatch check, not a route optimization engine itself.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
id: changeover-time-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Changeover Time Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Compares logged changeover/setup durations against a target and flags
|
|
6
|
+
the ones that ran long. Use this if a slow product changeover has ever
|
|
7
|
+
eaten into a shift's output without anyone tracing the lost hours back
|
|
8
|
+
to the setup itself.
|
|
9
|
+
category: manufacturing
|
|
10
|
+
tags: [manufacturing, changeover, setup, efficiency]
|
|
11
|
+
schedule: "0 6 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v target={{changeover_target_minutes}} '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
if ($3 > target) printf "LONG CHANGEOVER: line %s, %s -> %s, took %d min (target %d min)\n", $1, $2, $4, $3, target;
|
|
19
|
+
}
|
|
20
|
+
' "{{changeover_log_csv}}"
|
|
21
|
+
variables:
|
|
22
|
+
changeover_log_csv:
|
|
23
|
+
default: "./changeover-log.csv"
|
|
24
|
+
description: "CSV with header row, columns: line_id,from_product,duration_minutes,to_product — one row per changeover event."
|
|
25
|
+
changeover_target_minutes:
|
|
26
|
+
default: 45
|
|
27
|
+
description: Maximum acceptable changeover duration in minutes before it's flagged.
|
|
28
|
+
compatible_agents: [generic, claude, codex]
|
|
29
|
+
notes: Log each changeover's start/end from the line's MES event stream or a shift supervisor's log — this job only compares durations against target, it doesn't time the changeover itself.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
id: critical-spare-parts-stock-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Critical Spare Parts Stock Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares on-hand stock of critical maintenance spare parts against a
|
|
6
|
+
set minimum and flags anything running low. Use this if a machine has
|
|
7
|
+
ever sat down for days waiting on a spare part that a stock check
|
|
8
|
+
would have caught weeks earlier.
|
|
9
|
+
category: manufacturing
|
|
10
|
+
tags: [manufacturing, maintenance, spare-parts, inventory]
|
|
11
|
+
schedule: "0 6 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{ if ($2 < $3) printf "LOW STOCK: critical spare \"%s\" — %d on hand, minimum %d\n", $1, $2, $3; }
|
|
18
|
+
' "{{spare_parts_csv}}"
|
|
19
|
+
variables:
|
|
20
|
+
spare_parts_csv:
|
|
21
|
+
default: "./critical-spare-parts.csv"
|
|
22
|
+
description: "CSV with header row, columns: part_name,qty_on_hand,min_qty — limited to parts flagged critical for equipment uptime, not general MRO stock."
|
|
23
|
+
compatible_agents: [generic, claude, codex]
|
|
24
|
+
notes: >
|
|
25
|
+
Scoped to critical maintenance spares tied to specific equipment
|
|
26
|
+
(bearings, belts, sensors for machines on the floor), not general
|
|
27
|
+
warehouse/retail inventory — see inventory category's low-stock-alert
|
|
28
|
+
for that. Export critical-spare-parts.csv from your CMMS spare parts
|
|
29
|
+
module.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: first-pass-yield-report
|
|
2
|
+
version: 1
|
|
3
|
+
name: First-Pass Yield Report
|
|
4
|
+
description: >
|
|
5
|
+
Calculates yesterday's first-pass yield (units that passed inspection
|
|
6
|
+
without rework) per production line and flags any line below target.
|
|
7
|
+
Use this if rework has ever been quietly absorbed as "normal" until
|
|
8
|
+
someone finally rolled up the numbers and saw how much it was costing.
|
|
9
|
+
category: manufacturing
|
|
10
|
+
tags: [manufacturing, quality, yield, production]
|
|
11
|
+
schedule: "0 7 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v target={{fpy_target_pct}} '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
total[$1] += $2;
|
|
19
|
+
passed[$1] += $3;
|
|
20
|
+
}
|
|
21
|
+
END {
|
|
22
|
+
for (line in total) {
|
|
23
|
+
fpy = (passed[line] / total[line]) * 100;
|
|
24
|
+
status = (fpy < target) ? "BELOW TARGET" : "OK";
|
|
25
|
+
printf "%s: line %s — %.1f%% first-pass yield (%d of %d units), target %d%%\n", status, line, fpy, passed[line], total[line], target;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
' "{{production_log_csv}}"
|
|
29
|
+
variables:
|
|
30
|
+
production_log_csv:
|
|
31
|
+
default: "./production-yield-log.csv"
|
|
32
|
+
description: "CSV with header row, columns: line_id,units_produced,units_passed_first_time — one row per shift/day for the reporting window."
|
|
33
|
+
fpy_target_pct:
|
|
34
|
+
default: 95
|
|
35
|
+
description: Minimum acceptable first-pass yield percentage per line.
|
|
36
|
+
compatible_agents: [generic, claude, codex]
|
|
37
|
+
notes: Export production-yield-log.csv from your MES's inspection/rework records before each run — a unit only counts as "passed" if it needed no rework or re-inspection.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: lot-traceability-audit
|
|
2
|
+
version: 1
|
|
3
|
+
name: Lot Traceability Audit
|
|
4
|
+
description: >
|
|
5
|
+
Spot-checks that finished-goods lots have complete genealogy back to
|
|
6
|
+
their raw material lots and process records. Use this if a recall has
|
|
7
|
+
ever turned into a scramble because a lot's traceability records had
|
|
8
|
+
gaps nobody caught until they were needed under pressure.
|
|
9
|
+
category: manufacturing
|
|
10
|
+
tags: [manufacturing, traceability, quality, compliance, lots]
|
|
11
|
+
schedule: "0 8 * * 1"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Pull the list of finished-goods lots produced in the last
|
|
16
|
+
{{lookback_days}} days from {{traceability_system}}. For a sample of
|
|
17
|
+
{{sample_size}} lots (or all of them if fewer), verify each has:
|
|
18
|
+
1. A linked raw material lot / component lot record.
|
|
19
|
+
2. A linked process record (line, operator, date, key process
|
|
20
|
+
parameters).
|
|
21
|
+
3. A linked QC/inspection record with a disposition (pass/hold/reject).
|
|
22
|
+
|
|
23
|
+
Report any lot missing one of these links as a traceability gap, with
|
|
24
|
+
the lot ID and which link is missing. Summarize overall: lots checked,
|
|
25
|
+
lots with complete genealogy, lots with gaps.
|
|
26
|
+
variables:
|
|
27
|
+
traceability_system:
|
|
28
|
+
default: "your MES/QMS lot genealogy records"
|
|
29
|
+
description: System of record for lot genealogy and production/QC linkage.
|
|
30
|
+
lookback_days:
|
|
31
|
+
default: 30
|
|
32
|
+
description: How many days back to pull finished-goods lots from.
|
|
33
|
+
sample_size:
|
|
34
|
+
default: 20
|
|
35
|
+
description: Number of lots to spot-check per run (use a full audit periodically instead of every run for large volumes).
|
|
36
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
37
|
+
notes: This is a spot-check, not a full recall-readiness audit — schedule a complete review of all lots on a longer cadence (e.g. quarterly) separately.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
id: non-conformance-report-backlog-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Non-Conformance Report Backlog Check
|
|
4
|
+
description: >
|
|
5
|
+
Counts open non-conformance reports (NCRs) that have gone past their
|
|
6
|
+
disposition deadline without a root cause or corrective action logged.
|
|
7
|
+
Use this if an NCR has ever sat open for months with the nonconforming
|
|
8
|
+
material still floating around because nobody was tracking the
|
|
9
|
+
disposition clock.
|
|
10
|
+
category: manufacturing
|
|
11
|
+
tags: [manufacturing, quality, ncr, corrective-action, compliance]
|
|
12
|
+
schedule: "0 7 * * 1-5"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
today=$(date +%s);
|
|
17
|
+
awk -F',' -v today="$today" '
|
|
18
|
+
NR==1 {next}
|
|
19
|
+
$2 == "open" {
|
|
20
|
+
cmd="date -d \"" $3 "\" +%s 2>/dev/null || date -jf \"%Y-%m-%d\" \"" $3 "\" +%s";
|
|
21
|
+
cmd | getline due_ts; close(cmd);
|
|
22
|
+
if (due_ts < today) { overdue++; printf "OVERDUE: NCR %s (\"%s\") past disposition deadline of %s\n", $1, $4, $3 }
|
|
23
|
+
else open_count++;
|
|
24
|
+
}
|
|
25
|
+
END {
|
|
26
|
+
printf "Summary: %d NCR(s) open and on track, %d overdue past disposition deadline\n", open_count+0, overdue+0;
|
|
27
|
+
}
|
|
28
|
+
' "{{ncr_log_csv}}"
|
|
29
|
+
variables:
|
|
30
|
+
ncr_log_csv:
|
|
31
|
+
default: "./ncr-log.csv"
|
|
32
|
+
description: "CSV with header row, columns: ncr_id,status (open/closed),disposition_due_date(YYYY-MM-DD),description."
|
|
33
|
+
compatible_agents: [generic, claude, codex]
|
|
34
|
+
notes: Export ncr-log.csv from your QMS's non-conformance module before each run — this checks the disposition clock, it doesn't evaluate root cause quality.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: oee-efficiency-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: OEE Efficiency Check
|
|
4
|
+
description: >
|
|
5
|
+
Calculates Overall Equipment Effectiveness (availability x performance x
|
|
6
|
+
quality) for a line from a production log and flags it when it drops
|
|
7
|
+
below target. Use this if a line has ever "felt slow" for weeks before
|
|
8
|
+
anyone put a single number on how much effectiveness it was actually
|
|
9
|
+
losing.
|
|
10
|
+
category: manufacturing
|
|
11
|
+
tags: [manufacturing, oee, efficiency, production]
|
|
12
|
+
schedule: "0 7 * * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v target={{oee_target_pct}} '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
planned=$2; runtime=$3; ideal_rate=$4; total_count=$5; good_count=$6;
|
|
20
|
+
availability = runtime / planned;
|
|
21
|
+
performance = (ideal_rate > 0) ? (total_count / (runtime * ideal_rate)) : 0;
|
|
22
|
+
if (performance > 1) performance = 1;
|
|
23
|
+
quality = (total_count > 0) ? (good_count / total_count) : 0;
|
|
24
|
+
oee = availability * performance * quality * 100;
|
|
25
|
+
status = (oee < target) ? "BELOW TARGET" : "OK";
|
|
26
|
+
printf "%s: line %s — OEE %.1f%% (avail %.0f%%, perf %.0f%%, qual %.0f%%), target %d%%\n", status, $1, oee, availability*100, performance*100, quality*100, target;
|
|
27
|
+
}
|
|
28
|
+
' "{{oee_log_csv}}"
|
|
29
|
+
variables:
|
|
30
|
+
oee_log_csv:
|
|
31
|
+
default: "./oee-log.csv"
|
|
32
|
+
description: "CSV with header row, columns: line_id,planned_minutes,runtime_minutes,ideal_units_per_minute,total_units,good_units — one row per line/day."
|
|
33
|
+
oee_target_pct:
|
|
34
|
+
default: 85
|
|
35
|
+
description: Minimum acceptable OEE percentage per line (world-class benchmark is often ~85%; adjust to your baseline).
|
|
36
|
+
compatible_agents: [generic, claude, codex]
|
|
37
|
+
notes: Export oee-log.csv from your MES's downtime and count records — this is a standard availability x performance x quality OEE calculation, not a substitute for the line-level downtime-cause detail in production-line-downtime-watch.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: osha-recordable-incident-audit
|
|
2
|
+
version: 1
|
|
3
|
+
name: OSHA Recordable Incident Log Audit
|
|
4
|
+
description: >
|
|
5
|
+
Checks the incident log for recordable injuries that haven't been
|
|
6
|
+
logged on the OSHA 300 form within the required window. Use this if a
|
|
7
|
+
recordable incident has ever slipped past the logging deadline because
|
|
8
|
+
the person who handled the report forgot to also update the 300 log.
|
|
9
|
+
category: manufacturing
|
|
10
|
+
tags: [manufacturing, safety, osha, compliance]
|
|
11
|
+
schedule: "0 7 * * 1-5"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
today=$(date +%s);
|
|
16
|
+
awk -F',' -v today="$today" -v deadline={{logging_deadline_days}} '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
$3 == "yes" && $4 == "no" {
|
|
19
|
+
cmd="date -d \"" $2 "\" +%s 2>/dev/null || date -jf \"%Y-%m-%d\" \"" $2 "\" +%s";
|
|
20
|
+
cmd | getline inc_ts; close(cmd);
|
|
21
|
+
days_since = int((today - inc_ts) / 86400);
|
|
22
|
+
if (days_since >= deadline) printf "OVERDUE: incident %s (%s) is recordable and unlogged, %d days since it happened (deadline %d days)\n", $1, $2, days_since, deadline;
|
|
23
|
+
else printf "PENDING: incident %s (%s) recordable and unlogged, %d days left to log\n", $1, $2, (deadline - days_since);
|
|
24
|
+
}
|
|
25
|
+
' "{{incident_log_csv}}"
|
|
26
|
+
variables:
|
|
27
|
+
incident_log_csv:
|
|
28
|
+
default: "./incident-log.csv"
|
|
29
|
+
description: "CSV with header row, columns: incident_id,incident_date(YYYY-MM-DD),recordable(yes/no),logged_on_300(yes/no)."
|
|
30
|
+
logging_deadline_days:
|
|
31
|
+
default: 7
|
|
32
|
+
description: Days allowed to record a qualifying incident on the OSHA 300 log before it's flagged overdue.
|
|
33
|
+
compatible_agents: [generic, claude, codex]
|
|
34
|
+
notes: >
|
|
35
|
+
This checks logging timeliness against a configurable window you set —
|
|
36
|
+
confirm current OSHA recordkeeping deadlines with your safety officer
|
|
37
|
+
or counsel, this job doesn't determine recordability itself.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: production-schedule-adherence-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Production Schedule Adherence Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares actual output against the planned production schedule and
|
|
6
|
+
explains any meaningful variance. Use this if a schedule slip has ever
|
|
7
|
+
gone unexplained until it was too late to recover the shift, because
|
|
8
|
+
nobody compared plan vs. actual until the week was already over.
|
|
9
|
+
category: manufacturing
|
|
10
|
+
tags: [manufacturing, production-planning, schedule, variance]
|
|
11
|
+
schedule: "0 6 * * 1-5"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Pull yesterday's planned vs. actual production output per line from
|
|
16
|
+
{{data_source}}. For any line where actual output missed plan by more
|
|
17
|
+
than {{variance_threshold_pct}}%:
|
|
18
|
+
1. Report the planned quantity, actual quantity, and variance.
|
|
19
|
+
2. Check downtime/quality logs for that line for the same period and
|
|
20
|
+
note any likely cause (downtime event, quality hold, changeover,
|
|
21
|
+
staffing).
|
|
22
|
+
3. If no clear cause is found in the logs, flag it as "unexplained
|
|
23
|
+
variance" for a supervisor to look into.
|
|
24
|
+
|
|
25
|
+
Summarize lines on plan, lines behind with an identified cause, and
|
|
26
|
+
lines with unexplained variance.
|
|
27
|
+
variables:
|
|
28
|
+
data_source:
|
|
29
|
+
default: "your MES/ERP production schedule and output records"
|
|
30
|
+
description: System of record for planned schedule, actual output, and downtime/quality logs.
|
|
31
|
+
variance_threshold_pct:
|
|
32
|
+
default: 10
|
|
33
|
+
description: Percentage variance from plan that triggers a variance investigation.
|
|
34
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
35
|
+
notes: Complements production-line-downtime-watch and quality-defect-rate-check by tying variance back to a likely cause instead of just reporting the stoppage or defect rate in isolation.
|