@wonsukchoi/crondex 0.22.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 +16 -15
- package/catalog.json +4839 -118
- 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/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/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/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/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/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/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/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 +10 -0
- package/package.json +2 -2
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
id: surgical-schedule-utilization-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Surgical Schedule/OR Utilization Check
|
|
4
|
+
description: >
|
|
5
|
+
Calculates how much of tomorrow's surgical suite time is booked versus
|
|
6
|
+
open, so scheduling can fill gaps or flag overbooking. Use this if the
|
|
7
|
+
OR has ever sat half-empty on a weekday because nobody was watching
|
|
8
|
+
utilization, or double-booked because two procedures landed in the
|
|
9
|
+
same block — distinct from surgery-prep-check.yaml, which checks
|
|
10
|
+
individual case readiness (bloodwork/consent) rather than schedule
|
|
11
|
+
utilization.
|
|
12
|
+
category: veterinary
|
|
13
|
+
tags: [veterinary, surgery, scheduling, utilization, operations]
|
|
14
|
+
schedule: "0 16 * * *"
|
|
15
|
+
timezone: "UTC"
|
|
16
|
+
runner: shell
|
|
17
|
+
command: >
|
|
18
|
+
tomorrow=$(date -d "+1 day" +%Y-%m-%d 2>/dev/null || date -v+1d +%Y-%m-%d);
|
|
19
|
+
awk -F',' -v tomorrow="$tomorrow" -v capacity="{{available_or_minutes}}" '
|
|
20
|
+
NR==1 {next}
|
|
21
|
+
$2 == tomorrow { booked += $3; slots[$4]++ }
|
|
22
|
+
END {
|
|
23
|
+
pct = (capacity > 0) ? (booked / capacity * 100) : 0;
|
|
24
|
+
printf "OR UTILIZATION for %s: %d/%d minutes booked (%.1f%%)\n", tomorrow, booked, capacity, pct;
|
|
25
|
+
for (room in slots) if (slots[room] > 1) printf "POSSIBLE DOUBLE-BOOK: OR %s has %d procedures scheduled\n", room, slots[room];
|
|
26
|
+
}
|
|
27
|
+
' "{{surgery_schedule_csv_path}}"
|
|
28
|
+
variables:
|
|
29
|
+
surgery_schedule_csv_path:
|
|
30
|
+
default: "./surgery-schedule-detailed.csv"
|
|
31
|
+
description: "Path to a CSV with columns: pet_name,surgery_date (YYYY-MM-DD),duration_minutes,or_room."
|
|
32
|
+
available_or_minutes:
|
|
33
|
+
default: 480
|
|
34
|
+
description: Total surgical suite minutes available in a working day (e.g. 8 hours = 480).
|
|
35
|
+
compatible_agents: [generic, claude, codex]
|
|
36
|
+
notes: Zero-token. Flags overlapping bookings in the same OR room as a possible double-book — verify against the actual schedule before reassigning.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
id: vet-staff-ce-credit-tracking
|
|
2
|
+
version: 1
|
|
3
|
+
name: Veterinary Staff CE Credit Tracking
|
|
4
|
+
description: >
|
|
5
|
+
Reviews each veterinarian and licensed vet tech's continuing education
|
|
6
|
+
(CE) credit hours against what their state board requires by license
|
|
7
|
+
renewal, and flags anyone on track to fall short. Use this if a
|
|
8
|
+
provider has ever discovered close to renewal that they were short on
|
|
9
|
+
RACE-approved CE hours needed to keep their license active — distinct
|
|
10
|
+
from dvm-license-dea-registration-expiry-check.yaml, which tracks the
|
|
11
|
+
license's own expiry date rather than the ongoing education
|
|
12
|
+
requirement to renew it.
|
|
13
|
+
category: veterinary
|
|
14
|
+
tags: [veterinary, continuing-education, compliance, licensing, staff]
|
|
15
|
+
schedule: "0 8 1 * *"
|
|
16
|
+
timezone: "UTC"
|
|
17
|
+
runner: agent-prompt
|
|
18
|
+
prompt: |
|
|
19
|
+
Review the CE tracking export from {{ce_tracking_system}} for all
|
|
20
|
+
veterinarians and licensed vet techs.
|
|
21
|
+
1. For each staff member, compare CE hours completed this cycle
|
|
22
|
+
against the hours required by their state board (note: this varies
|
|
23
|
+
by state and by whether they're a DVM or LVT/CVT — flag if you're
|
|
24
|
+
unsure of the requirement rather than guessing).
|
|
25
|
+
2. List anyone whose completed hours, at the current pace, won't reach
|
|
26
|
+
the requirement before their cycle end date.
|
|
27
|
+
3. Sort by soonest cycle end date first.
|
|
28
|
+
4. Suggest which upcoming CE opportunities (conferences, RACE-approved
|
|
29
|
+
online courses) would close the gap, if that information is
|
|
30
|
+
available.
|
|
31
|
+
variables:
|
|
32
|
+
ce_tracking_system:
|
|
33
|
+
default: "your CE tracking spreadsheet or HR/credentialing system"
|
|
34
|
+
description: Where completed CE hours and cycle end dates are recorded.
|
|
35
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
36
|
+
notes: Requires knowing each state board's specific CE hour requirement, which varies — verify against the actual state veterinary board rule before treating a flagged shortfall as final.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
id: conveyor-sortation-downtime-watch
|
|
2
|
+
version: 1
|
|
3
|
+
name: Conveyor & Sortation System Downtime Watch
|
|
4
|
+
description: >
|
|
5
|
+
Checks the material handling system's downtime log for conveyor and
|
|
6
|
+
sortation equipment and flags outages exceeding a target duration, or
|
|
7
|
+
a segment with repeat outages in the period. Use this if a conveyor
|
|
8
|
+
jam has ever backed up the whole outbound line for an hour while
|
|
9
|
+
everyone treated it as a one-off instead of the third time that
|
|
10
|
+
segment failed this week.
|
|
11
|
+
category: warehousing
|
|
12
|
+
tags: [warehousing, conveyor, sortation, downtime, equipment]
|
|
13
|
+
schedule: "0 21 * * *"
|
|
14
|
+
timezone: "UTC"
|
|
15
|
+
runner: shell
|
|
16
|
+
command: >
|
|
17
|
+
awk -F',' -v max_min="{{max_outage_minutes}}" -v repeat="{{repeat_outage_threshold}}" '
|
|
18
|
+
NR==1 {next}
|
|
19
|
+
{
|
|
20
|
+
segment=$1; minutes=$3; count[segment]++; total[segment]+=minutes;
|
|
21
|
+
if (minutes >= max_min) {
|
|
22
|
+
printf "LONG OUTAGE: segment %s — %d min outage (%s), reason: %s\n", segment, minutes, $2, $4;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
END {
|
|
26
|
+
for (s in count) {
|
|
27
|
+
if (count[s] >= repeat) {
|
|
28
|
+
printf "REPEAT OUTAGES: segment %s — %d outage(s) totaling %d min today\n", s, count[s], total[s];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
' "{{conveyor_downtime_csv_path}}"
|
|
33
|
+
variables:
|
|
34
|
+
conveyor_downtime_csv_path:
|
|
35
|
+
default: "./conveyor-downtime-log.csv"
|
|
36
|
+
description: "Path to a CSV with columns: segment_id,started_at,duration_minutes,reason — one row per conveyor/sortation outage."
|
|
37
|
+
max_outage_minutes:
|
|
38
|
+
default: 20
|
|
39
|
+
description: Minutes a single outage can run before it's flagged individually.
|
|
40
|
+
repeat_outage_threshold:
|
|
41
|
+
default: 3
|
|
42
|
+
description: Number of outages on the same segment in one day that triggers a repeat-outage flag.
|
|
43
|
+
compatible_agents: [generic, claude, codex]
|
|
44
|
+
notes: >
|
|
45
|
+
Covers material handling automation (conveyors, sorters) inside the
|
|
46
|
+
warehouse, distinct from manufacturing's production-line-downtime-watch,
|
|
47
|
+
which tracks stoppages on production/assembly lines rather than
|
|
48
|
+
outbound material handling systems.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
id: labor-productivity-rate-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Warehouse Labor Productivity Rate Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares units processed per labor hour against a target rate, by
|
|
6
|
+
shift or work area. Use this if a shift's productivity has ever
|
|
7
|
+
quietly drifted below what staffing was planned around, without
|
|
8
|
+
anyone noticing until the labor budget was already blown for the
|
|
9
|
+
month.
|
|
10
|
+
category: warehousing
|
|
11
|
+
tags: [warehousing, labor, productivity, staffing]
|
|
12
|
+
schedule: "0 22 * * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v target="{{target_units_per_hour}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
area=$1; units=$2; hours=$3;
|
|
20
|
+
rate = (hours > 0) ? units / hours : 0;
|
|
21
|
+
status = (rate < target) ? "BELOW TARGET" : "OK";
|
|
22
|
+
printf "%s: %s — %.1f units/hour (%d units / %.1f hours), target %.1f\n", status, area, rate, units, hours, target;
|
|
23
|
+
}
|
|
24
|
+
' "{{shift_productivity_csv_path}}"
|
|
25
|
+
variables:
|
|
26
|
+
shift_productivity_csv_path:
|
|
27
|
+
default: "./shift-productivity-log.csv"
|
|
28
|
+
description: "Path to a CSV with columns: work_area,units_processed,labor_hours — one row per work area per shift."
|
|
29
|
+
target_units_per_hour:
|
|
30
|
+
default: 40
|
|
31
|
+
description: Target minimum units processed per labor hour.
|
|
32
|
+
compatible_agents: [generic, claude, codex]
|
|
33
|
+
notes: Aggregate throughput rate only — pair with pick-pack-error-rate-watch so a "fast" shift isn't just a sloppy one.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
id: mhe-preventive-maintenance-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Material Handling Equipment Preventive Maintenance Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks scheduled preventive maintenance due dates for material
|
|
6
|
+
handling equipment other than forklifts — pallet jacks, order pickers,
|
|
7
|
+
conveyor drive units — and flags anything overdue. Use this if a
|
|
8
|
+
piece of MHE has ever broken down mid-shift for a service item that
|
|
9
|
+
was actually due weeks earlier and nobody was tracking anything but
|
|
10
|
+
the forklifts.
|
|
11
|
+
category: warehousing
|
|
12
|
+
tags: [warehousing, mhe, maintenance, equipment]
|
|
13
|
+
schedule: "0 6 * * 1"
|
|
14
|
+
timezone: "UTC"
|
|
15
|
+
runner: shell
|
|
16
|
+
command: >
|
|
17
|
+
today=$(date +%s);
|
|
18
|
+
awk -F',' -v today="$today" '
|
|
19
|
+
NR==1 {next}
|
|
20
|
+
{
|
|
21
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
22
|
+
cmd | getline due_epoch; close(cmd);
|
|
23
|
+
if (due_epoch < today) {
|
|
24
|
+
days_over = int((today - due_epoch) / 86400);
|
|
25
|
+
printf "OVERDUE: %s (%s) — PM was due %s, %d day(s) overdue\n", $1, $2, $3, days_over;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
' "{{mhe_pm_schedule_csv_path}}"
|
|
29
|
+
variables:
|
|
30
|
+
mhe_pm_schedule_csv_path:
|
|
31
|
+
default: "./mhe-pm-schedule.csv"
|
|
32
|
+
description: "Path to a CSV with columns: equipment_id,equipment_type,next_pm_due_date (YYYY-MM-DD) — one row per unit of MHE, excluding forklifts."
|
|
33
|
+
compatible_agents: [generic, claude, codex]
|
|
34
|
+
notes: >
|
|
35
|
+
Covers non-forklift MHE preventive maintenance schedules. Forklifts
|
|
36
|
+
have their own daily pre-use inspection check
|
|
37
|
+
(forklift-inspection-check); this job tracks scheduled service
|
|
38
|
+
intervals for the rest of the equipment fleet, not daily inspections.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
id: order-fulfillment-sla-watch
|
|
2
|
+
version: 1
|
|
3
|
+
name: Order Fulfillment On-Time-Ship SLA Watch
|
|
4
|
+
description: >
|
|
5
|
+
Checks yesterday's order log for orders that missed their promised
|
|
6
|
+
ship-by date/time and flags the on-time-ship rate against target. Use
|
|
7
|
+
this if an on-time-ship rate has ever slipped for a week before anyone
|
|
8
|
+
outside the warehouse noticed, because nobody was tallying misses
|
|
9
|
+
against the SLA daily.
|
|
10
|
+
category: warehousing
|
|
11
|
+
tags: [warehousing, fulfillment, sla, on-time-ship]
|
|
12
|
+
schedule: "0 6 * * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v target="{{on_time_target_pct}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
total++;
|
|
20
|
+
if ($3 == "late") { late++; print "LATE: order " $1 " — shipped " $2 ", missed ship-by date" }
|
|
21
|
+
}
|
|
22
|
+
END {
|
|
23
|
+
pct = (total > 0) ? ((total - late) / total) * 100 : 0;
|
|
24
|
+
if (pct < target) {
|
|
25
|
+
printf "BELOW TARGET: %.2f%% on-time-ship (%d of %d orders), target %.2f%%\n", pct, total-late, total, target;
|
|
26
|
+
} else {
|
|
27
|
+
printf "OK: %.2f%% on-time-ship (%d of %d orders)\n", pct, total-late, total;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
' "{{orders_csv_path}}"
|
|
31
|
+
variables:
|
|
32
|
+
orders_csv_path:
|
|
33
|
+
default: "./fulfillment-sla-log.csv"
|
|
34
|
+
description: "Path to a CSV with columns: order_id,shipped_at,sla_status (on_time/late) — one row per order shipped in the period."
|
|
35
|
+
on_time_target_pct:
|
|
36
|
+
default: 97.0
|
|
37
|
+
description: Target minimum on-time-ship rate as a percentage.
|
|
38
|
+
compatible_agents: [generic, claude, codex]
|
|
39
|
+
notes: >
|
|
40
|
+
Tracks whether orders shipped by their promised date, distinct from
|
|
41
|
+
pick-pack-error-rate-watch (which tracks fulfillment accuracy — right
|
|
42
|
+
item/quantity — not shipping timeliness).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
id: shift-headcount-coverage-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Warehouse Shift Headcount Coverage Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares scheduled headcount against required headcount per shift and
|
|
6
|
+
flags gaps before the shift starts. Use this if a shift has ever
|
|
7
|
+
started three people short with no time left to call in coverage,
|
|
8
|
+
because the staffing gap wasn't checked until people were already
|
|
9
|
+
clocking in.
|
|
10
|
+
category: warehousing
|
|
11
|
+
tags: [warehousing, labor, staffing, scheduling]
|
|
12
|
+
schedule: "0 5,13 * * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
shift=$1; required=$2; scheduled=$3;
|
|
20
|
+
gap = required - scheduled;
|
|
21
|
+
if (gap > 0) {
|
|
22
|
+
printf "SHORT: %s shift — scheduled %d of %d required (%d short)\n", shift, scheduled, required, gap;
|
|
23
|
+
} else {
|
|
24
|
+
printf "OK: %s shift — scheduled %d of %d required\n", shift, scheduled, required;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
' "{{shift_staffing_csv_path}}"
|
|
28
|
+
variables:
|
|
29
|
+
shift_staffing_csv_path:
|
|
30
|
+
default: "./shift-staffing-plan.csv"
|
|
31
|
+
description: "Path to a CSV with columns: shift_name,required_headcount,scheduled_headcount — one row per upcoming shift."
|
|
32
|
+
compatible_agents: [generic, claude, codex]
|
|
33
|
+
notes: Checks planned coverage before a shift starts — pair with labor-productivity-rate-check for whether the headcount that did show up actually kept pace.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
id: slotting-velocity-review-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Slotting Velocity Review Check
|
|
4
|
+
description: >
|
|
5
|
+
Reviews SKU pick-frequency data against current storage locations and
|
|
6
|
+
flags fast-movers stuck in slow-to-reach slots (or slow-movers hogging
|
|
7
|
+
prime golden-zone real estate). Use this if pickers have ever walked
|
|
8
|
+
past empty golden-zone slots to reach a high-velocity SKU stashed in
|
|
9
|
+
the back corner because the slotting plan was never revisited after
|
|
10
|
+
demand shifted.
|
|
11
|
+
category: warehousing
|
|
12
|
+
tags: [warehousing, slotting, velocity, layout-optimization]
|
|
13
|
+
schedule: "0 9 1 * *"
|
|
14
|
+
timezone: "UTC"
|
|
15
|
+
runner: agent-prompt
|
|
16
|
+
prompt: |
|
|
17
|
+
Pull the last {{lookback_days}} days of pick-frequency data per SKU
|
|
18
|
+
along with each SKU's current storage location from {{data_source}}.
|
|
19
|
+
1. Rank SKUs by pick frequency and identify the top
|
|
20
|
+
{{top_mover_pct}}% by volume.
|
|
21
|
+
2. Flag any top mover currently stored outside a golden-zone/easy-reach
|
|
22
|
+
location (e.g. upper reserve racking, far aisle) — these are prime
|
|
23
|
+
re-slotting candidates.
|
|
24
|
+
3. Flag any slow-mover (bottom {{top_mover_pct}}%) currently occupying
|
|
25
|
+
a golden-zone slot that a fast-mover could use instead.
|
|
26
|
+
4. Summarize the highest-impact re-slotting swaps (biggest expected
|
|
27
|
+
travel-time savings), not every mismatch found.
|
|
28
|
+
variables:
|
|
29
|
+
data_source:
|
|
30
|
+
default: "your WMS pick history and slotting/location report"
|
|
31
|
+
description: System of record for pick frequency per SKU and current slot assignment.
|
|
32
|
+
lookback_days:
|
|
33
|
+
default: 90
|
|
34
|
+
description: Days of pick history to analyze for velocity ranking.
|
|
35
|
+
top_mover_pct:
|
|
36
|
+
default: 20
|
|
37
|
+
description: Percentage cutoff (by pick volume) used to define "top movers" and "slow movers."
|
|
38
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
39
|
+
notes: >
|
|
40
|
+
This is a periodic optimization review, not a daily operational check —
|
|
41
|
+
re-slotting recommendations still need a supervisor to schedule the
|
|
42
|
+
physical moves. Distinct from pallet-putaway-delay-check, which tracks
|
|
43
|
+
how fast pallets get put away, not whether the slot they're put away
|
|
44
|
+
into is the right one.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: warehouse-damage-writeoff-review
|
|
2
|
+
version: 1
|
|
3
|
+
name: Warehouse Damage Write-Off Review
|
|
4
|
+
description: >
|
|
5
|
+
Reviews inventory damaged inside the facility during handling
|
|
6
|
+
(dropped in putaway, forklift contact, racking collapse) and flags
|
|
7
|
+
cases pending a write-off decision, along with any recurring cause
|
|
8
|
+
worth fixing. Use this if damaged inventory has ever sat on a "to be
|
|
9
|
+
reviewed" pallet for weeks because nobody owned the write-off
|
|
10
|
+
decision.
|
|
11
|
+
category: warehousing
|
|
12
|
+
tags: [warehousing, damage, write-off, loss-prevention]
|
|
13
|
+
schedule: "0 9 * * 1"
|
|
14
|
+
timezone: "UTC"
|
|
15
|
+
runner: agent-prompt
|
|
16
|
+
prompt: |
|
|
17
|
+
Pull the in-facility damage log for the last {{lookback_days}} days
|
|
18
|
+
from {{data_source}}.
|
|
19
|
+
1. List damage incidents still pending a write-off/disposition
|
|
20
|
+
decision, with the SKU, estimated value, and days pending.
|
|
21
|
+
2. Group incidents by likely cause (handling, equipment contact,
|
|
22
|
+
racking, storage stacking) and flag any cause responsible for more
|
|
23
|
+
than {{recurring_cause_threshold}} incidents in the period as a
|
|
24
|
+
recurring problem worth a process or equipment fix, not just a
|
|
25
|
+
write-off.
|
|
26
|
+
3. Total the estimated dollar value of pending write-offs.
|
|
27
|
+
variables:
|
|
28
|
+
data_source:
|
|
29
|
+
default: "your damage/loss-prevention log"
|
|
30
|
+
description: System of record for in-facility inventory damage incidents.
|
|
31
|
+
lookback_days:
|
|
32
|
+
default: 30
|
|
33
|
+
description: Days of damage log history to review.
|
|
34
|
+
recurring_cause_threshold:
|
|
35
|
+
default: 3
|
|
36
|
+
description: Number of incidents sharing a cause in the period before it's flagged as recurring.
|
|
37
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
38
|
+
notes: >
|
|
39
|
+
Covers damage caused inside the facility during handling/storage, not
|
|
40
|
+
customer returns — distinct from returns-processing-backlog-check,
|
|
41
|
+
which tracks turnaround time on inbound customer RMAs.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
id: warehouse-near-miss-incident-rate-watch
|
|
2
|
+
version: 1
|
|
3
|
+
name: Warehouse Near-Miss & Incident Rate Watch
|
|
4
|
+
description: >
|
|
5
|
+
Reviews the safety incident log for a trend in near-misses and minor
|
|
6
|
+
injuries on the warehouse floor against a rolling benchmark, and
|
|
7
|
+
looks for a common thread (location, shift, equipment) before it
|
|
8
|
+
becomes a serious injury. Use this if near-misses have ever piled up
|
|
9
|
+
in the log unread until a lost-time injury made someone finally go
|
|
10
|
+
looking for a pattern that was there the whole time.
|
|
11
|
+
category: warehousing
|
|
12
|
+
tags: [warehousing, safety, incidents, near-miss]
|
|
13
|
+
schedule: "0 8 * * 1"
|
|
14
|
+
timezone: "UTC"
|
|
15
|
+
runner: agent-prompt
|
|
16
|
+
prompt: |
|
|
17
|
+
Pull the last {{lookback_weeks}} weeks of safety incident and
|
|
18
|
+
near-miss reports from {{data_source}}.
|
|
19
|
+
1. Calculate the incident rate for the period and compare it to the
|
|
20
|
+
trailing {{baseline_weeks}}-week average.
|
|
21
|
+
2. If the rate is trending up by more than {{trend_threshold_pct}}%,
|
|
22
|
+
flag it and look for a common thread across the reports — same
|
|
23
|
+
zone, same shift, same equipment type, same task.
|
|
24
|
+
3. List any near-miss that involved equipment already flagged in a
|
|
25
|
+
recent MHE maintenance or forklift inspection check, since that's
|
|
26
|
+
a compounding risk worth escalating immediately.
|
|
27
|
+
4. Summarize the trend and any pattern found in plain language for a
|
|
28
|
+
safety walk the next morning.
|
|
29
|
+
variables:
|
|
30
|
+
data_source:
|
|
31
|
+
default: "your incident/near-miss reporting log"
|
|
32
|
+
description: System of record for warehouse floor incident and near-miss reports.
|
|
33
|
+
lookback_weeks:
|
|
34
|
+
default: 4
|
|
35
|
+
description: Weeks of incident data to analyze for the current period.
|
|
36
|
+
baseline_weeks:
|
|
37
|
+
default: 12
|
|
38
|
+
description: Weeks of trailing history used to compute the baseline incident rate.
|
|
39
|
+
trend_threshold_pct:
|
|
40
|
+
default: 20
|
|
41
|
+
description: Percentage increase over baseline that triggers a trend flag.
|
|
42
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
43
|
+
notes: >
|
|
44
|
+
Tracks incident rate trend and pattern-finding across the floor,
|
|
45
|
+
distinct from manufacturing's osha-recordable-incident-audit (which
|
|
46
|
+
checks whether a single recordable incident got logged on the OSHA
|
|
47
|
+
300 form within a deadline, not the rate or pattern across incidents).
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
id: warehouse-space-utilization-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Warehouse Space Utilization Check
|
|
4
|
+
description: >
|
|
5
|
+
Reviews storage location occupancy against total capacity by zone and
|
|
6
|
+
flags zones running near overflow or sitting oddly empty. Use this if
|
|
7
|
+
a zone has ever hit effective capacity without warning, forcing
|
|
8
|
+
overflow pallets into aisles because nobody was watching utilization
|
|
9
|
+
trend toward full.
|
|
10
|
+
category: warehousing
|
|
11
|
+
tags: [warehousing, space-utilization, capacity, planning]
|
|
12
|
+
schedule: "0 8 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: agent-prompt
|
|
15
|
+
prompt: |
|
|
16
|
+
Pull current occupied-location counts and total location capacity per
|
|
17
|
+
zone from {{data_source}}.
|
|
18
|
+
1. Calculate utilization percentage per zone.
|
|
19
|
+
2. Flag any zone at or above {{high_utilization_pct}}% as at risk of
|
|
20
|
+
overflow — likely to force out-of-location or aisle storage soon.
|
|
21
|
+
3. Flag any zone at or below {{low_utilization_pct}}% as a candidate
|
|
22
|
+
for consolidation or reallocation to a busier zone.
|
|
23
|
+
4. Summarize the overall facility utilization rate and call out the
|
|
24
|
+
trend versus last week's report if history is available.
|
|
25
|
+
variables:
|
|
26
|
+
data_source:
|
|
27
|
+
default: "your WMS location/capacity report"
|
|
28
|
+
description: System of record for storage location occupancy and capacity per zone.
|
|
29
|
+
high_utilization_pct:
|
|
30
|
+
default: 90
|
|
31
|
+
description: Utilization percentage at or above which a zone is flagged as overflow risk.
|
|
32
|
+
low_utilization_pct:
|
|
33
|
+
default: 30
|
|
34
|
+
description: Utilization percentage at or below which a zone is flagged as underused.
|
|
35
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
36
|
+
notes: >
|
|
37
|
+
Facility-level capacity planning signal, distinct from
|
|
38
|
+
slotting-velocity-review-check (which is about whether the right SKU
|
|
39
|
+
is in the right slot, not how full the zone is overall).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
id: wave-pick-batch-efficiency-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Wave/Batch Picking Efficiency Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks completed picking waves against a target completion time and
|
|
6
|
+
flags waves that ran long. Use this if a wave has ever spilled past
|
|
7
|
+
its window and pushed the whole outbound schedule back before anyone
|
|
8
|
+
noticed the wave itself, not the individual pickers, was the problem.
|
|
9
|
+
category: warehousing
|
|
10
|
+
tags: [warehousing, wave-picking, batch-picking, throughput]
|
|
11
|
+
schedule: "0 20 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v target="{{target_wave_minutes}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
wave=$1; lines=$2; minutes=$3;
|
|
19
|
+
rate = (minutes > 0) ? lines / minutes : 0;
|
|
20
|
+
if (minutes > target) {
|
|
21
|
+
printf "OVER TARGET: wave %s — %d line(s) in %d min (%.2f lines/min), target %d min\n", wave, lines, minutes, rate, target;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
' "{{wave_log_csv_path}}"
|
|
25
|
+
variables:
|
|
26
|
+
wave_log_csv_path:
|
|
27
|
+
default: "./wave-pick-log.csv"
|
|
28
|
+
description: "Path to a CSV with columns: wave_id,order_lines,completion_minutes — one row per completed picking wave."
|
|
29
|
+
target_wave_minutes:
|
|
30
|
+
default: 90
|
|
31
|
+
description: Target maximum minutes to complete a picking wave/batch.
|
|
32
|
+
compatible_agents: [generic, claude, codex]
|
|
33
|
+
notes: Measures wave-level completion time, not individual picker accuracy — pair with pick-pack-error-rate-watch for the quality side.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
id: wms-integration-error-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: WMS Integration Error Queue Check
|
|
4
|
+
description: >
|
|
5
|
+
Scans the warehouse management system's integration error queue
|
|
6
|
+
(failed order imports, ASN mismatches, inventory sync failures) and
|
|
7
|
+
flags anything sitting unresolved past a target age. Use this if a
|
|
8
|
+
failed inbound order sync has ever sat quietly in an error queue for
|
|
9
|
+
days while the warehouse floor had no idea the order even existed.
|
|
10
|
+
category: warehousing
|
|
11
|
+
tags: [warehousing, wms, integration, systems]
|
|
12
|
+
schedule: "*/30 * * * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
now=$(date +%s);
|
|
17
|
+
awk -F',' -v now="$now" -v max_minutes="{{max_unresolved_minutes}}" '
|
|
18
|
+
NR==1 {next}
|
|
19
|
+
$4 == "unresolved" {
|
|
20
|
+
cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f \"%Y-%m-%d %H:%M\" \"" $2 "\" +%s 2>/dev/null";
|
|
21
|
+
cmd | getline occurred_epoch; close(cmd);
|
|
22
|
+
age_minutes = (now - occurred_epoch) / 60;
|
|
23
|
+
if (age_minutes >= max_minutes) {
|
|
24
|
+
printf "UNRESOLVED: error %s (%s) — occurred %s, %d minute(s) old\n", $1, $3, $2, age_minutes;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
' "{{wms_error_queue_csv_path}}"
|
|
28
|
+
variables:
|
|
29
|
+
wms_error_queue_csv_path:
|
|
30
|
+
default: "./wms-error-queue.csv"
|
|
31
|
+
description: "Path to a CSV with columns: error_id,occurred_at (YYYY-MM-DD HH:MM),error_type (order_import/asn_mismatch/inventory_sync/etc),status (unresolved/resolved)."
|
|
32
|
+
max_unresolved_minutes:
|
|
33
|
+
default: 60
|
|
34
|
+
description: Minutes an integration error can sit unresolved before it's flagged.
|
|
35
|
+
compatible_agents: [generic, claude, codex]
|
|
36
|
+
notes: Zero-token systems-health check on the integration layer itself — it doesn't diagnose the underlying data mismatch, just surfaces that one is sitting unresolved.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: yard-trailer-detention-watch
|
|
2
|
+
version: 1
|
|
3
|
+
name: Yard Trailer Detention Watch
|
|
4
|
+
description: >
|
|
5
|
+
Checks trailers currently parked in the facility's own yard against
|
|
6
|
+
their free-time window and flags any at risk of detention charges.
|
|
7
|
+
Use this if a trailer has ever sat in the yard so long that a
|
|
8
|
+
detention invoice showed up before anyone realized it was still
|
|
9
|
+
parked out there.
|
|
10
|
+
category: warehousing
|
|
11
|
+
tags: [warehousing, yard-management, detention, trailers]
|
|
12
|
+
schedule: "0 */3 * * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
now=$(date +%s);
|
|
17
|
+
awk -F',' -v now="$now" -v free_hours="{{free_time_hours}}" '
|
|
18
|
+
NR==1 {next}
|
|
19
|
+
$4 != "departed" {
|
|
20
|
+
cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f \"%Y-%m-%d %H:%M\" \"" $2 "\" +%s 2>/dev/null";
|
|
21
|
+
cmd | getline arrived_epoch; close(cmd);
|
|
22
|
+
yard_hours = (now - arrived_epoch) / 3600;
|
|
23
|
+
if (yard_hours >= free_hours) {
|
|
24
|
+
printf "DETENTION RISK: trailer %s (carrier %s) — %.1fh in yard (arrived %s), free time %dh\n", $1, $3, yard_hours, $2, free_hours;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
' "{{yard_log_csv_path}}"
|
|
28
|
+
variables:
|
|
29
|
+
yard_log_csv_path:
|
|
30
|
+
default: "./yard-trailer-log.csv"
|
|
31
|
+
description: "Path to a CSV with columns: trailer_id,arrived_at (YYYY-MM-DD HH:MM),carrier,status (in_yard/spotted/departed)."
|
|
32
|
+
free_time_hours:
|
|
33
|
+
default: 48
|
|
34
|
+
description: Hours a trailer can sit in the yard before detention charges typically apply.
|
|
35
|
+
compatible_agents: [generic, claude, codex]
|
|
36
|
+
notes: >
|
|
37
|
+
Tracks trailer-in-yard detention risk at this facility's own yard, at
|
|
38
|
+
the destination/origin end of a move. Distinct from logistics'
|
|
39
|
+
cross-dock-dwell-time-watch, which tracks freight dwell mid-transit
|
|
40
|
+
through a third-party cross-dock, and from container-demurrage-fee-watch,
|
|
41
|
+
which covers ocean containers at a port rather than trailers at a yard.
|
|
@@ -4,44 +4,44 @@
|
|
|
4
4
|
// from scripts/build-catalog.js, not a hard failure).
|
|
5
5
|
export const CATEGORY_DESCRIPTIONS = {
|
|
6
6
|
agriculture: "Farm operations — weather risk, irrigation, equipment, market prices.",
|
|
7
|
-
automotive: "
|
|
7
|
+
automotive: "Dealership and repair shop ops — repair orders, parts, loaners, recalls, F&I, used inventory, CSI.",
|
|
8
8
|
childcare: "Daycare compliance and ops — ratios, immunizations, tuition.",
|
|
9
|
-
construction: "Job site
|
|
9
|
+
construction: "Job site ops — permits, RFIs, submittals, safety, payments, budget vs. actual.",
|
|
10
10
|
content: "Site/content health — SEO, broken links, freshness, repurposing.",
|
|
11
11
|
creator: "Influencer/creator ops — content calendar, cross-posting, sponsorships.",
|
|
12
12
|
crypto: "Wallets, gas prices, DeFi risk, and token unlock schedules.",
|
|
13
13
|
devops: "Infra health — backups, deploys, dependencies, monitoring.",
|
|
14
14
|
ecommerce: "Storefront ops — carts, stock, returns, reviews.",
|
|
15
|
-
education: "
|
|
15
|
+
education: "School/district ops — grading, attendance, IEP compliance, staffing, facilities, budget.",
|
|
16
16
|
events: "Event planning — budget, RSVPs, staffing, vendors, day-of check-in.",
|
|
17
17
|
fieldservice: "Dispatch ops — tech ETAs, parts, warranty claims, maintenance contracts.",
|
|
18
18
|
finance: "Personal/business finance — budgets, invoices, taxes, subscriptions.",
|
|
19
19
|
fitness: "Gym/studio ops — memberships, class utilization, equipment.",
|
|
20
|
-
fleet: "
|
|
20
|
+
fleet: "Company vehicle fleet ops — compliance, maintenance, safety, fuel, cost, scheduling.",
|
|
21
21
|
gaming: "Streaming and community server ops — schedules, patches, tournaments.",
|
|
22
22
|
government: "Public-sector ops — records requests, permits, constituent casework.",
|
|
23
|
-
growth: "Lifecycle marketing — churn, trials, onboarding,
|
|
23
|
+
growth: "Lifecycle marketing — churn, trials, onboarding, activation, expansion, retention, NPS.",
|
|
24
24
|
healthcare: "Clinic ops — appointments, recalls, licenses, lab results.",
|
|
25
25
|
hiring: "Recruiting pipeline — candidates, offers, interviews, reqs.",
|
|
26
26
|
home: "Household reminders — maintenance, warranties, plants, safety.",
|
|
27
|
-
hospitality: "Hotel ops —
|
|
27
|
+
hospitality: "Hotel ops — revenue management, reservations, housekeeping, guest experience, loyalty.",
|
|
28
28
|
hr: "People ops — payroll, onboarding, benefits, reviews, offboarding.",
|
|
29
|
-
insurance: "Policy
|
|
29
|
+
insurance: "Policy & carrier ops — renewals, claims, underwriting, compliance.",
|
|
30
30
|
inventory: "Stock accuracy — counts, shrinkage, expiry, overstock.",
|
|
31
31
|
investing: "Portfolio tracking — prices, dividends, rebalancing, taxes.",
|
|
32
32
|
learning: "Personal learning — certs, courses, flashcards, reading.",
|
|
33
33
|
legal: "Contracts and deadlines — NDAs, trademarks, court, compliance filings.",
|
|
34
34
|
logistics: "Shipping ops — customs, freight, delays, fees.",
|
|
35
35
|
manufacturing: "Production ops — downtime, defects, maintenance, suppliers, materials.",
|
|
36
|
-
marketing: "Campaign ops — ad spend, SEO rank, deliverability, competitors.",
|
|
36
|
+
marketing: "Campaign ops — ad spend, ROAS, SEO rank, deliverability, attribution, competitors, MQLs, PR.",
|
|
37
37
|
nonprofit: "Fundraising ops — grants, donors, volunteers, board follow-ups.",
|
|
38
38
|
personal: "Daily life reminders — bills, habits, meals, screen time.",
|
|
39
39
|
podcast: "Show ops — publish cadence, guests, sponsors, ratings.",
|
|
40
40
|
productivity: "Work habits — inbox, standups, focus, meetings, reports.",
|
|
41
41
|
publishing: "Book/print ops — manuscript deadlines, royalties, print runs, rights.",
|
|
42
42
|
realestate: "Property management — leases, rent, vacancy, inspections, tax.",
|
|
43
|
-
restaurant: "Kitchen/FOH ops — food cost, labor cost, waste, inspections.",
|
|
44
|
-
retail: "
|
|
43
|
+
restaurant: "Kitchen/FOH ops — food cost, labor cost, waste, inspections, POS, menu margins.",
|
|
44
|
+
retail: "Physical store ops — till reconciliation, checklists, scheduling, merchandising, loss prevention, pricing.",
|
|
45
45
|
sales: "Pipeline ops — leads, deals, quota, CRM sync.",
|
|
46
46
|
security: "Security posture — keys, certs, access, scans, firewalls.",
|
|
47
47
|
spa: "Salon/spa/wellness ops — no-shows, inventory, license renewals, membership churn.",
|
|
@@ -49,6 +49,6 @@ export const CATEGORY_DESCRIPTIONS = {
|
|
|
49
49
|
team: "Team ops — 1:1s, on-call, PTO, anniversaries.",
|
|
50
50
|
telecom: "ISP/telecom ops — outages, SLA uptime, circuit provisioning, churn.",
|
|
51
51
|
travel: "Trip logistics — flights, passports, visas, insurance, miles.",
|
|
52
|
-
veterinary: "Clinic ops for animals — vaccines, controlled substances, boarding.",
|
|
53
|
-
warehousing: "Warehouse ops — dock scheduling, pick/pack
|
|
52
|
+
veterinary: "Clinic ops for animals — vaccines, controlled substances, boarding, surgery scheduling, records, billing, licensing.",
|
|
53
|
+
warehousing: "Warehouse facility ops — dock scheduling, pick/pack, slotting, labor, maintenance, safety.",
|
|
54
54
|
};
|
|
@@ -21,6 +21,16 @@ export const ALLOWED_DUPLICATE_PAIRS = [
|
|
|
21
21
|
"landlord-insurance-claim-status-check",
|
|
22
22
|
"Same stale-claim-followup goal, different mechanism and scale — generic insurance job is agent-prompt for a single policyholder's claims; realestate job is a zero-token shell scan over a property portfolio's claims CSV.",
|
|
23
23
|
],
|
|
24
|
+
[
|
|
25
|
+
"competitor-price-watch",
|
|
26
|
+
"competitor-price-monitoring-check",
|
|
27
|
+
"Same competitor-pricing goal, different mechanism — ecommerce job scrapes a competitor's live product page URL per SKU via regex; retail job is an agent-prompt reading a brick-and-mortar competitor's weekly flyer/in-store photos, since there's no comparable URL for a physical shelf price.",
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
"prescription-refill-request-backlog-check",
|
|
31
|
+
"pet-medication-refill-backlog-check",
|
|
32
|
+
"Same stale-refill-request pattern, different domains — healthcare job tracks human patient prescription refills; veterinary job tracks pet medication/food refill requests from clinic clients. Intentionally parallel jobs, not a copy-paste duplicate.",
|
|
33
|
+
],
|
|
24
34
|
];
|
|
25
35
|
|
|
26
36
|
export function isAllowedPair(idA, idB) {
|