@wonsukchoi/crondex 0.10.0 → 0.12.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.
Files changed (75) hide show
  1. package/README.md +39 -27
  2. package/bin/crondex.js +41 -6
  3. package/catalog.json +1865 -65
  4. package/jobs/agriculture/crop-price-market-watch.yaml +32 -0
  5. package/jobs/agriculture/livestock-feed-stock-check.yaml +35 -0
  6. package/jobs/automotive/loaner-vehicle-return-reminder.yaml +35 -0
  7. package/jobs/automotive/parts-backorder-check.yaml +33 -0
  8. package/jobs/automotive/repair-order-aging-check.yaml +35 -0
  9. package/jobs/childcare/immunization-record-compliance-check.yaml +33 -0
  10. package/jobs/childcare/staff-child-ratio-compliance-check.yaml +30 -0
  11. package/jobs/childcare/tuition-payment-late-check.yaml +35 -0
  12. package/jobs/construction/equipment-rental-return-reminder.yaml +35 -0
  13. package/jobs/construction/subcontractor-insurance-expiry-check.yaml +35 -0
  14. package/jobs/creator/sponsorship-deliverable-tracker.yaml +38 -0
  15. package/jobs/crypto/defi-liquidation-risk-watch.yaml +36 -0
  16. package/jobs/crypto/token-unlock-vesting-watch.yaml +34 -0
  17. package/jobs/ecommerce/checkout-conversion-drop-watch.yaml +39 -0
  18. package/jobs/ecommerce/negative-review-alert.yaml +35 -0
  19. package/jobs/education/at-risk-student-grade-watch.yaml +35 -0
  20. package/jobs/education/field-trip-permission-slip-check.yaml +36 -0
  21. package/jobs/events/attendee-checkin-rate-watch.yaml +37 -0
  22. package/jobs/events/event-staffing-shortfall-check.yaml +34 -0
  23. package/jobs/fitness/class-utilization-check.yaml +32 -0
  24. package/jobs/fitness/gym-equipment-maintenance-check.yaml +35 -0
  25. package/jobs/fitness/gym-membership-renewal-reminder.yaml +35 -0
  26. package/jobs/fleet/driver-license-cdl-expiry-check.yaml +35 -0
  27. package/jobs/fleet/vehicle-inspection-due-check.yaml +35 -0
  28. package/jobs/gaming/game-server-uptime-check.yaml +34 -0
  29. package/jobs/gaming/tournament-registration-deadline-check.yaml +34 -0
  30. package/jobs/government/constituent-casework-followup-check.yaml +33 -0
  31. package/jobs/government/foia-request-deadline-check.yaml +36 -0
  32. package/jobs/government/permit-application-backlog-check.yaml +37 -0
  33. package/jobs/healthcare/insurance-eligibility-verification-check.yaml +32 -0
  34. package/jobs/healthcare/lab-result-followup-check.yaml +34 -0
  35. package/jobs/hiring/background-check-status-check.yaml +35 -0
  36. package/jobs/hiring/interview-feedback-overdue-check.yaml +33 -0
  37. package/jobs/hospitality/guest-maintenance-request-backlog-check.yaml +35 -0
  38. package/jobs/hospitality/guest-review-response-check.yaml +35 -0
  39. package/jobs/hr/exit-interview-completion-check.yaml +33 -0
  40. package/jobs/hr/performance-review-cycle-reminder.yaml +34 -0
  41. package/jobs/insurance/certificate-of-insurance-request-check.yaml +38 -0
  42. package/jobs/insurance/premium-payment-due-reminder.yaml +35 -0
  43. package/jobs/inventory/inventory-shrinkage-watch.yaml +36 -0
  44. package/jobs/inventory/low-stock-alert.yaml +7 -4
  45. package/jobs/inventory/overstock-slow-mover-check.yaml +36 -0
  46. package/jobs/investing/earnings-calendar-watch.yaml +32 -0
  47. package/jobs/investing/tax-loss-harvesting-review.yaml +33 -0
  48. package/jobs/legal/compliance-filing-deadline-reminder.yaml +38 -0
  49. package/jobs/legal/court-deadline-reminder.yaml +40 -0
  50. package/jobs/logistics/container-demurrage-fee-watch.yaml +35 -0
  51. package/jobs/logistics/last-mile-delivery-exception-check.yaml +36 -0
  52. package/jobs/manufacturing/raw-material-shortage-risk-check.yaml +31 -0
  53. package/jobs/manufacturing/supplier-otd-performance-watch.yaml +38 -0
  54. package/jobs/marketing/campaign-utm-tracking-check.yaml +41 -0
  55. package/jobs/nonprofit/board-action-item-followup-check.yaml +28 -0
  56. package/jobs/nonprofit/grant-reporting-deadline-check.yaml +38 -0
  57. package/jobs/podcast/podcast-download-drop-watch.yaml +42 -0
  58. package/jobs/podcast/podcast-rating-review-watch.yaml +37 -0
  59. package/jobs/realestate/property-maintenance-inspection-reminder.yaml +35 -0
  60. package/jobs/realestate/property-tax-deadline-reminder.yaml +35 -0
  61. package/jobs/restaurant/food-cost-percentage-watch.yaml +35 -0
  62. package/jobs/restaurant/labor-cost-percentage-watch.yaml +36 -0
  63. package/jobs/retail/employee-shift-gap-check.yaml +35 -0
  64. package/jobs/retail/pos-till-reconciliation-check.yaml +33 -0
  65. package/jobs/retail/store-opening-checklist-reminder.yaml +30 -0
  66. package/jobs/support/agent-workload-balance-check.yaml +30 -0
  67. package/jobs/support/ticket-reopened-rate-watch.yaml +35 -0
  68. package/jobs/team/on-call-fatigue-check.yaml +39 -0
  69. package/jobs/veterinary/boarding-checkout-reminder.yaml +29 -0
  70. package/jobs/veterinary/controlled-substance-log-audit.yaml +33 -0
  71. package/jobs/veterinary/pet-vaccine-due-reminder.yaml +34 -0
  72. package/jobs/warehousing/climate-control-compliance-check.yaml +40 -0
  73. package/jobs/warehousing/dock-schedule-conflict-check.yaml +30 -0
  74. package/jobs/warehousing/pick-pack-error-rate-watch.yaml +35 -0
  75. package/package.json +6 -3
package/catalog.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "generated_by": "scripts/build-catalog.js",
3
3
  "schema": "schema/job.schema.json",
4
- "count": 187,
4
+ "count": 257,
5
5
  "jobs": [
6
6
  {
7
7
  "id": "1on1-prep-reminder",
@@ -104,6 +104,33 @@
104
104
  ],
105
105
  "path": "jobs/marketing/ad-spend-pacing-check.yaml"
106
106
  },
107
+ {
108
+ "id": "agent-workload-balance-check",
109
+ "version": 1,
110
+ "name": "Support Agent Workload Balance Check",
111
+ "description": "Checks how open tickets are distributed across agents and flags a real imbalance. Use this if one agent has ever quietly ended up carrying double the ticket load of a teammate because assignment was manual and nobody was watching the split.",
112
+ "category": "support",
113
+ "tags": [
114
+ "support",
115
+ "workload",
116
+ "agents",
117
+ "balance"
118
+ ],
119
+ "schedule": "0 9 * * *",
120
+ "timezone": "UTC",
121
+ "runner": "agent-prompt",
122
+ "modes": [
123
+ "agent-prompt"
124
+ ],
125
+ "compatible_agents": [
126
+ "claude",
127
+ "codex",
128
+ "hermes",
129
+ "openclaw",
130
+ "generic"
131
+ ],
132
+ "path": "jobs/support/agent-workload-balance-check.yaml"
133
+ },
107
134
  {
108
135
  "id": "api-rate-limit-check",
109
136
  "version": 1,
@@ -179,6 +206,33 @@
179
206
  ],
180
207
  "path": "jobs/education/assignment-grading-backlog-check.yaml"
181
208
  },
209
+ {
210
+ "id": "at-risk-student-grade-watch",
211
+ "version": 1,
212
+ "name": "At-Risk Student Grade Watch",
213
+ "description": "Flags students whose current grade has dropped below a passing threshold partway through the term, instead of everyone finding out at report-card time. Use this if a student has ever gone from passing to failing without anyone reaching out until it was too late to recover.",
214
+ "category": "education",
215
+ "tags": [
216
+ "education",
217
+ "grades",
218
+ "at-risk",
219
+ "students"
220
+ ],
221
+ "schedule": "0 8 * * 1",
222
+ "timezone": "UTC",
223
+ "runner": "agent-prompt",
224
+ "modes": [
225
+ "agent-prompt"
226
+ ],
227
+ "compatible_agents": [
228
+ "claude",
229
+ "codex",
230
+ "hermes",
231
+ "openclaw",
232
+ "generic"
233
+ ],
234
+ "path": "jobs/education/at-risk-student-grade-watch.yaml"
235
+ },
182
236
  {
183
237
  "id": "attendance-anomaly-check",
184
238
  "version": 1,
@@ -205,6 +259,58 @@
205
259
  ],
206
260
  "path": "jobs/education/attendance-anomaly-check.yaml"
207
261
  },
262
+ {
263
+ "id": "attendee-checkin-rate-watch",
264
+ "version": 1,
265
+ "name": "Attendee Check-In Rate Watch",
266
+ "description": "Checks the day-of check-in rate against registered headcount and flags it if turnout is running well below expectations while there's still time to adjust (catering, seating, staffing). Use this if you've ever found out an event was under-attended only after it ended, instead of two hours into it.",
267
+ "category": "events",
268
+ "tags": [
269
+ "events",
270
+ "checkin",
271
+ "attendance",
272
+ "day-of"
273
+ ],
274
+ "schedule": "*/30 * * * *",
275
+ "timezone": "UTC",
276
+ "runner": "shell",
277
+ "modes": [
278
+ "script"
279
+ ],
280
+ "compatible_agents": [
281
+ "generic",
282
+ "claude",
283
+ "codex"
284
+ ],
285
+ "path": "jobs/events/attendee-checkin-rate-watch.yaml"
286
+ },
287
+ {
288
+ "id": "background-check-status-check",
289
+ "version": 1,
290
+ "name": "Background Check Status Check",
291
+ "description": "Checks pending background/reference checks for offered candidates and flags anything stalling close to their planned start date. Use this if a start date has ever slipped because a background check was still pending and nobody noticed until the week before.",
292
+ "category": "hiring",
293
+ "tags": [
294
+ "hiring",
295
+ "background-check",
296
+ "onboarding",
297
+ "compliance"
298
+ ],
299
+ "schedule": "0 9 * * *",
300
+ "timezone": "UTC",
301
+ "runner": "agent-prompt",
302
+ "modes": [
303
+ "agent-prompt"
304
+ ],
305
+ "compatible_agents": [
306
+ "claude",
307
+ "codex",
308
+ "hermes",
309
+ "openclaw",
310
+ "generic"
311
+ ],
312
+ "path": "jobs/hiring/background-check-status-check.yaml"
313
+ },
208
314
  {
209
315
  "id": "backup-reminder",
210
316
  "version": 1,
@@ -280,6 +386,58 @@
280
386
  ],
281
387
  "path": "jobs/personal/bill-due-reminder.yaml"
282
388
  },
389
+ {
390
+ "id": "board-action-item-followup-check",
391
+ "version": 1,
392
+ "name": "Board Action Item Follow-Up Check",
393
+ "description": "Checks action items from recent board meeting minutes and flags any that are overdue with no update. Use this if a board commitment has ever quietly died between meetings because nobody tracked it after the minutes were filed away.",
394
+ "category": "nonprofit",
395
+ "tags": [
396
+ "nonprofit",
397
+ "board",
398
+ "governance",
399
+ "followup"
400
+ ],
401
+ "schedule": "0 9 * * 1",
402
+ "timezone": "UTC",
403
+ "runner": "agent-prompt",
404
+ "modes": [
405
+ "agent-prompt"
406
+ ],
407
+ "compatible_agents": [
408
+ "claude",
409
+ "codex",
410
+ "hermes",
411
+ "openclaw",
412
+ "generic"
413
+ ],
414
+ "path": "jobs/nonprofit/board-action-item-followup-check.yaml"
415
+ },
416
+ {
417
+ "id": "boarding-checkout-reminder",
418
+ "version": 1,
419
+ "name": "Boarding/Kennel Checkout Reminder",
420
+ "description": "Lists pets scheduled to check out of boarding today or tomorrow, plus anyone past their scheduled checkout with no extension logged. Use this if a boarded pet has ever stayed an extra unplanned day because nobody cross-checked the boarding calendar against who was actually still there.",
421
+ "category": "veterinary",
422
+ "tags": [
423
+ "veterinary",
424
+ "boarding",
425
+ "kennel",
426
+ "schedule"
427
+ ],
428
+ "schedule": "0 7 * * *",
429
+ "timezone": "UTC",
430
+ "runner": "shell",
431
+ "modes": [
432
+ "script"
433
+ ],
434
+ "compatible_agents": [
435
+ "generic",
436
+ "claude",
437
+ "codex"
438
+ ],
439
+ "path": "jobs/veterinary/boarding-checkout-reminder.yaml"
440
+ },
283
441
  {
284
442
  "id": "broken-link-check",
285
443
  "version": 1,
@@ -354,6 +512,31 @@
354
512
  ],
355
513
  "path": "jobs/productivity/calendar-double-booking-check.yaml"
356
514
  },
515
+ {
516
+ "id": "campaign-utm-tracking-check",
517
+ "version": 1,
518
+ "name": "Campaign UTM Tracking Check",
519
+ "description": "Checks a list of campaign links for missing or malformed UTM parameters before (or after) launch. Use this if a campaign has ever run for a week with broken tracking, making every attribution report for that period useless.",
520
+ "category": "marketing",
521
+ "tags": [
522
+ "marketing",
523
+ "utm",
524
+ "tracking",
525
+ "analytics"
526
+ ],
527
+ "schedule": "0 8 * * 1",
528
+ "timezone": "UTC",
529
+ "runner": "shell",
530
+ "modes": [
531
+ "script"
532
+ ],
533
+ "compatible_agents": [
534
+ "generic",
535
+ "claude",
536
+ "codex"
537
+ ],
538
+ "path": "jobs/marketing/campaign-utm-tracking-check.yaml"
539
+ },
357
540
  {
358
541
  "id": "candidate-followup-nudge",
359
542
  "version": 1,
@@ -501,6 +684,31 @@
501
684
  ],
502
685
  "path": "jobs/learning/cert-renewal-reminder.yaml"
503
686
  },
687
+ {
688
+ "id": "certificate-of-insurance-request-check",
689
+ "version": 1,
690
+ "name": "Certificate of Insurance Request Check",
691
+ "description": "Checks for incoming certificate-of-insurance (COI) requests from vendors, clients, or landlords that haven't been fulfilled yet. Use this if a COI request has ever sat unanswered long enough to hold up a contract or a lease signing.",
692
+ "category": "insurance",
693
+ "tags": [
694
+ "insurance",
695
+ "coi",
696
+ "compliance",
697
+ "requests"
698
+ ],
699
+ "schedule": "0 9 * * *",
700
+ "timezone": "UTC",
701
+ "runner": "shell",
702
+ "modes": [
703
+ "script"
704
+ ],
705
+ "compatible_agents": [
706
+ "generic",
707
+ "claude",
708
+ "codex"
709
+ ],
710
+ "path": "jobs/insurance/certificate-of-insurance-request-check.yaml"
711
+ },
504
712
  {
505
713
  "id": "certificate-transparency-watch",
506
714
  "version": 1,
@@ -576,6 +784,33 @@
576
784
  ],
577
785
  "path": "jobs/content/changelog-digest.yaml"
578
786
  },
787
+ {
788
+ "id": "checkout-conversion-drop-watch",
789
+ "version": 1,
790
+ "name": "Checkout Conversion Drop Watch",
791
+ "description": "Compares today's checkout completion rate against your recent baseline and flags a real drop. Use this if a checkout bug has ever silently cut conversion for a day or two before anyone noticed sales looked soft.",
792
+ "category": "ecommerce",
793
+ "tags": [
794
+ "ecommerce",
795
+ "checkout",
796
+ "conversion",
797
+ "analytics"
798
+ ],
799
+ "schedule": "0 */6 * * *",
800
+ "timezone": "UTC",
801
+ "runner": "agent-prompt",
802
+ "modes": [
803
+ "agent-prompt"
804
+ ],
805
+ "compatible_agents": [
806
+ "claude",
807
+ "codex",
808
+ "hermes",
809
+ "openclaw",
810
+ "generic"
811
+ ],
812
+ "path": "jobs/ecommerce/checkout-conversion-drop-watch.yaml"
813
+ },
579
814
  {
580
815
  "id": "churn-risk-watch",
581
816
  "version": 1,
@@ -654,6 +889,56 @@
654
889
  ],
655
890
  "path": "jobs/insurance/claim-status-check.yaml"
656
891
  },
892
+ {
893
+ "id": "class-utilization-check",
894
+ "version": 1,
895
+ "name": "Class Utilization Check",
896
+ "description": "Checks upcoming class signups against capacity and flags classes running well under-booked. Use this if a class has ever quietly run half-empty for months before anyone pulled the numbers and considered cutting or rescheduling it.",
897
+ "category": "fitness",
898
+ "tags": [
899
+ "fitness",
900
+ "classes",
901
+ "utilization",
902
+ "scheduling"
903
+ ],
904
+ "schedule": "0 8 * * *",
905
+ "timezone": "UTC",
906
+ "runner": "shell",
907
+ "modes": [
908
+ "script"
909
+ ],
910
+ "compatible_agents": [
911
+ "generic",
912
+ "claude",
913
+ "codex"
914
+ ],
915
+ "path": "jobs/fitness/class-utilization-check.yaml"
916
+ },
917
+ {
918
+ "id": "climate-control-compliance-check",
919
+ "version": 1,
920
+ "name": "Warehouse Climate Control Compliance Check",
921
+ "description": "Checks temperature/humidity logs for climate-controlled storage areas and flags any reading outside the safe range. Use this if product has ever been damaged or spoiled because a climate-controlled zone drifted out of range and nobody noticed until the next physical walk-through.",
922
+ "category": "warehousing",
923
+ "tags": [
924
+ "warehousing",
925
+ "climate-control",
926
+ "compliance",
927
+ "storage"
928
+ ],
929
+ "schedule": "0 */4 * * *",
930
+ "timezone": "UTC",
931
+ "runner": "shell",
932
+ "modes": [
933
+ "script"
934
+ ],
935
+ "compatible_agents": [
936
+ "generic",
937
+ "claude",
938
+ "codex"
939
+ ],
940
+ "path": "jobs/warehousing/climate-control-compliance-check.yaml"
941
+ },
657
942
  {
658
943
  "id": "competitor-page-diff-watch",
659
944
  "version": 2,
@@ -682,6 +967,31 @@
682
967
  ],
683
968
  "path": "jobs/marketing/competitor-page-diff-watch.yaml"
684
969
  },
970
+ {
971
+ "id": "compliance-filing-deadline-reminder",
972
+ "version": 1,
973
+ "name": "Corporate Compliance Filing Deadline Reminder",
974
+ "description": "Warns you before a recurring corporate compliance filing is due — annual reports, franchise tax, registered agent renewals. Use this if you've ever had a company administratively dissolved (and had to pay to reinstate it) because a routine state filing quietly lapsed.",
975
+ "category": "legal",
976
+ "tags": [
977
+ "legal",
978
+ "compliance",
979
+ "corporate",
980
+ "filing"
981
+ ],
982
+ "schedule": "0 8 * * *",
983
+ "timezone": "UTC",
984
+ "runner": "shell",
985
+ "modes": [
986
+ "script"
987
+ ],
988
+ "compatible_agents": [
989
+ "generic",
990
+ "claude",
991
+ "codex"
992
+ ],
993
+ "path": "jobs/legal/compliance-filing-deadline-reminder.yaml"
994
+ },
685
995
  {
686
996
  "id": "conference-cfp-deadline-reminder",
687
997
  "version": 1,
@@ -711,35 +1021,87 @@
711
1021
  "path": "jobs/learning/conference-cfp-deadline-reminder.yaml"
712
1022
  },
713
1023
  {
714
- "id": "content-calendar-gap-check",
1024
+ "id": "constituent-casework-followup-check",
715
1025
  "version": 1,
716
- "name": "Content Calendar Gap Check",
717
- "description": "Checks that you have something scheduled to post in the next few days. Use this if your publishing cadence has ever quietly broken because nothing was queued and nobody noticed until the gap already showed.",
718
- "category": "creator",
1026
+ "name": "Constituent Casework Follow-Up Check",
1027
+ "description": "Checks open constituent casework (a resident's request for help with a government agency, benefit, or service issue) and flags anything sitting without an update. Use this if a constituent has ever called back asking for a status update because their case quietly went quiet on staff's end too.",
1028
+ "category": "government",
719
1029
  "tags": [
720
- "content",
721
- "calendar",
722
- "publishing"
1030
+ "government",
1031
+ "constituent-services",
1032
+ "casework",
1033
+ "followup"
723
1034
  ],
724
- "schedule": "0 9 * * 1,4",
1035
+ "schedule": "0 9 * * 1",
725
1036
  "timezone": "UTC",
726
- "runner": "shell",
1037
+ "runner": "agent-prompt",
727
1038
  "modes": [
728
- "script"
1039
+ "agent-prompt"
729
1040
  ],
730
1041
  "compatible_agents": [
731
- "generic",
732
1042
  "claude",
733
- "codex"
1043
+ "codex",
1044
+ "hermes",
1045
+ "openclaw",
1046
+ "generic"
734
1047
  ],
735
- "path": "jobs/creator/content-calendar-gap-check.yaml"
1048
+ "path": "jobs/government/constituent-casework-followup-check.yaml"
736
1049
  },
737
1050
  {
738
- "id": "contract-renewal-reminder",
1051
+ "id": "container-demurrage-fee-watch",
739
1052
  "version": 1,
740
- "name": "Contract Renewal Reminder",
741
- "description": "Warns you before a vendor or customer contract auto-renews or expires. Use this if a contract has ever auto-renewed for another year because nobody flagged the cancellation window in time.",
742
- "category": "legal",
1053
+ "name": "Container Demurrage/Detention Fee Watch",
1054
+ "description": "Checks tracked containers against their free-time deadline and warns before demurrage or detention fees start accruing. Use this if a container has ever sat at port past its free days and the fee bill only showed up weeks later as a surprise.",
1055
+ "category": "logistics",
1056
+ "tags": [
1057
+ "logistics",
1058
+ "shipping",
1059
+ "demurrage",
1060
+ "fees"
1061
+ ],
1062
+ "schedule": "0 7 * * *",
1063
+ "timezone": "UTC",
1064
+ "runner": "shell",
1065
+ "modes": [
1066
+ "script"
1067
+ ],
1068
+ "compatible_agents": [
1069
+ "generic",
1070
+ "claude",
1071
+ "codex"
1072
+ ],
1073
+ "path": "jobs/logistics/container-demurrage-fee-watch.yaml"
1074
+ },
1075
+ {
1076
+ "id": "content-calendar-gap-check",
1077
+ "version": 1,
1078
+ "name": "Content Calendar Gap Check",
1079
+ "description": "Checks that you have something scheduled to post in the next few days. Use this if your publishing cadence has ever quietly broken because nothing was queued and nobody noticed until the gap already showed.",
1080
+ "category": "creator",
1081
+ "tags": [
1082
+ "content",
1083
+ "calendar",
1084
+ "publishing"
1085
+ ],
1086
+ "schedule": "0 9 * * 1,4",
1087
+ "timezone": "UTC",
1088
+ "runner": "shell",
1089
+ "modes": [
1090
+ "script"
1091
+ ],
1092
+ "compatible_agents": [
1093
+ "generic",
1094
+ "claude",
1095
+ "codex"
1096
+ ],
1097
+ "path": "jobs/creator/content-calendar-gap-check.yaml"
1098
+ },
1099
+ {
1100
+ "id": "contract-renewal-reminder",
1101
+ "version": 1,
1102
+ "name": "Contract Renewal Reminder",
1103
+ "description": "Warns you before a vendor or customer contract auto-renews or expires. Use this if a contract has ever auto-renewed for another year because nobody flagged the cancellation window in time.",
1104
+ "category": "legal",
743
1105
  "tags": [
744
1106
  "legal",
745
1107
  "contracts",
@@ -758,6 +1120,33 @@
758
1120
  ],
759
1121
  "path": "jobs/legal/contract-renewal-reminder.yaml"
760
1122
  },
1123
+ {
1124
+ "id": "controlled-substance-log-audit",
1125
+ "version": 1,
1126
+ "name": "Controlled Substance Log Audit",
1127
+ "description": "Checks the controlled-substance usage log for gaps or unreconciled counts. Use this if a discrepancy in the controlled-drug log has ever gone unnoticed for weeks instead of being caught the same day it happened, which is exactly what a DEA/board inspection will ask about.",
1128
+ "category": "veterinary",
1129
+ "tags": [
1130
+ "veterinary",
1131
+ "controlled-substances",
1132
+ "compliance",
1133
+ "audit"
1134
+ ],
1135
+ "schedule": "0 20 * * *",
1136
+ "timezone": "UTC",
1137
+ "runner": "agent-prompt",
1138
+ "modes": [
1139
+ "agent-prompt"
1140
+ ],
1141
+ "compatible_agents": [
1142
+ "claude",
1143
+ "codex",
1144
+ "hermes",
1145
+ "openclaw",
1146
+ "generic"
1147
+ ],
1148
+ "path": "jobs/veterinary/controlled-substance-log-audit.yaml"
1149
+ },
761
1150
  {
762
1151
  "id": "cost-alert",
763
1152
  "version": 2,
@@ -809,6 +1198,31 @@
809
1198
  ],
810
1199
  "path": "jobs/learning/course-progress-checkin.yaml"
811
1200
  },
1201
+ {
1202
+ "id": "court-deadline-reminder",
1203
+ "version": 1,
1204
+ "name": "Court Deadline Reminder",
1205
+ "description": "Checks a tracked list of court/filing deadlines and warns before any come due. Use this if a filing deadline has ever been missed because it lived only in one person's head or a sticky note instead of a shared, checked calendar.",
1206
+ "category": "legal",
1207
+ "tags": [
1208
+ "legal",
1209
+ "court",
1210
+ "deadline",
1211
+ "compliance"
1212
+ ],
1213
+ "schedule": "0 7 * * *",
1214
+ "timezone": "UTC",
1215
+ "runner": "shell",
1216
+ "modes": [
1217
+ "script"
1218
+ ],
1219
+ "compatible_agents": [
1220
+ "generic",
1221
+ "claude",
1222
+ "codex"
1223
+ ],
1224
+ "path": "jobs/legal/court-deadline-reminder.yaml"
1225
+ },
812
1226
  {
813
1227
  "id": "coverage-gap-audit",
814
1228
  "version": 1,
@@ -836,6 +1250,33 @@
836
1250
  ],
837
1251
  "path": "jobs/insurance/coverage-gap-audit.yaml"
838
1252
  },
1253
+ {
1254
+ "id": "crop-price-market-watch",
1255
+ "version": 1,
1256
+ "name": "Crop Price Market Watch",
1257
+ "description": "Checks a commodity crop's current market price against a target and alerts when it crosses your threshold. Use this if you've ever missed a good selling window because nobody was watching the market that week.",
1258
+ "category": "agriculture",
1259
+ "tags": [
1260
+ "agriculture",
1261
+ "commodity",
1262
+ "price",
1263
+ "market"
1264
+ ],
1265
+ "schedule": "0 14 * * 1-5",
1266
+ "timezone": "America/Chicago",
1267
+ "runner": "agent-prompt",
1268
+ "modes": [
1269
+ "agent-prompt"
1270
+ ],
1271
+ "compatible_agents": [
1272
+ "claude",
1273
+ "codex",
1274
+ "hermes",
1275
+ "openclaw",
1276
+ "generic"
1277
+ ],
1278
+ "path": "jobs/agriculture/crop-price-market-watch.yaml"
1279
+ },
839
1280
  {
840
1281
  "id": "crosspost-lag-check",
841
1282
  "version": 1,
@@ -1039,6 +1480,33 @@
1039
1480
  ],
1040
1481
  "path": "jobs/devops/db-backup-verify.yaml"
1041
1482
  },
1483
+ {
1484
+ "id": "defi-liquidation-risk-watch",
1485
+ "version": 1,
1486
+ "name": "DeFi Liquidation Risk Watch",
1487
+ "description": "Checks a lending position's current collateral ratio and warns before it gets close to the liquidation threshold. Use this if a position has ever gotten liquidated during a price dip because nobody was watching the health factor in real time.",
1488
+ "category": "crypto",
1489
+ "tags": [
1490
+ "crypto",
1491
+ "defi",
1492
+ "lending",
1493
+ "liquidation"
1494
+ ],
1495
+ "schedule": "*/15 * * * *",
1496
+ "timezone": "UTC",
1497
+ "runner": "agent-prompt",
1498
+ "modes": [
1499
+ "agent-prompt"
1500
+ ],
1501
+ "compatible_agents": [
1502
+ "claude",
1503
+ "codex",
1504
+ "hermes",
1505
+ "openclaw",
1506
+ "generic"
1507
+ ],
1508
+ "path": "jobs/crypto/defi-liquidation-risk-watch.yaml"
1509
+ },
1042
1510
  {
1043
1511
  "id": "dependabot-alert-digest",
1044
1512
  "version": 1,
@@ -1162,6 +1630,33 @@
1162
1630
  ],
1163
1631
  "path": "jobs/devops/dns-record-check.yaml"
1164
1632
  },
1633
+ {
1634
+ "id": "dock-schedule-conflict-check",
1635
+ "version": 1,
1636
+ "name": "Loading Dock Schedule Conflict Check",
1637
+ "description": "Checks tomorrow's dock appointments for double-bookings or gaps too tight to actually unload a truck in. Use this if two carriers have ever shown up for the same dock door at the same time because scheduling was done in a shared spreadsheet nobody cross-checked.",
1638
+ "category": "warehousing",
1639
+ "tags": [
1640
+ "warehousing",
1641
+ "dock-scheduling",
1642
+ "logistics",
1643
+ "conflicts"
1644
+ ],
1645
+ "schedule": "0 16 * * *",
1646
+ "timezone": "UTC",
1647
+ "runner": "agent-prompt",
1648
+ "modes": [
1649
+ "agent-prompt"
1650
+ ],
1651
+ "compatible_agents": [
1652
+ "claude",
1653
+ "codex",
1654
+ "hermes",
1655
+ "openclaw",
1656
+ "generic"
1657
+ ],
1658
+ "path": "jobs/warehousing/dock-schedule-conflict-check.yaml"
1659
+ },
1165
1660
  {
1166
1661
  "id": "docker-image-prune",
1167
1662
  "version": 1,
@@ -1211,6 +1706,58 @@
1211
1706
  ],
1212
1707
  "path": "jobs/personal/downloads-folder-auto-organize.yaml"
1213
1708
  },
1709
+ {
1710
+ "id": "driver-license-cdl-expiry-check",
1711
+ "version": 1,
1712
+ "name": "Driver License/CDL Expiry Check",
1713
+ "description": "Checks tracked drivers' license or CDL expiry dates and warns before any lapse. Use this if a driver has ever kept driving a fleet vehicle on an expired license because nobody was tracking renewal dates separately from vehicle registration.",
1714
+ "category": "fleet",
1715
+ "tags": [
1716
+ "fleet",
1717
+ "drivers",
1718
+ "license",
1719
+ "compliance"
1720
+ ],
1721
+ "schedule": "0 8 * * 1",
1722
+ "timezone": "UTC",
1723
+ "runner": "shell",
1724
+ "modes": [
1725
+ "script"
1726
+ ],
1727
+ "compatible_agents": [
1728
+ "generic",
1729
+ "claude",
1730
+ "codex"
1731
+ ],
1732
+ "path": "jobs/fleet/driver-license-cdl-expiry-check.yaml"
1733
+ },
1734
+ {
1735
+ "id": "earnings-calendar-watch",
1736
+ "version": 1,
1737
+ "name": "Earnings Calendar Watch",
1738
+ "description": "Checks for upcoming earnings dates on stocks you hold, so a report doesn't catch you off guard. Use this if a holding has ever moved sharply overnight and you only afterward realized earnings had been scheduled for that day.",
1739
+ "category": "investing",
1740
+ "tags": [
1741
+ "investing",
1742
+ "earnings",
1743
+ "stocks",
1744
+ "calendar"
1745
+ ],
1746
+ "schedule": "0 8 * * 1",
1747
+ "timezone": "America/New_York",
1748
+ "runner": "agent-prompt",
1749
+ "modes": [
1750
+ "agent-prompt"
1751
+ ],
1752
+ "compatible_agents": [
1753
+ "claude",
1754
+ "codex",
1755
+ "hermes",
1756
+ "openclaw",
1757
+ "generic"
1758
+ ],
1759
+ "path": "jobs/investing/earnings-calendar-watch.yaml"
1760
+ },
1214
1761
  {
1215
1762
  "id": "email-deliverability-check",
1216
1763
  "version": 1,
@@ -1235,6 +1782,31 @@
1235
1782
  ],
1236
1783
  "path": "jobs/marketing/email-deliverability-check.yaml"
1237
1784
  },
1785
+ {
1786
+ "id": "employee-shift-gap-check",
1787
+ "version": 1,
1788
+ "name": "Employee Shift Gap Check",
1789
+ "description": "Checks the upcoming schedule for unfilled shifts and flags them while there's still time to find coverage. Use this if a shift has ever gone unfilled and nobody noticed until the store was short-staffed that morning.",
1790
+ "category": "retail",
1791
+ "tags": [
1792
+ "retail",
1793
+ "scheduling",
1794
+ "staffing",
1795
+ "shifts"
1796
+ ],
1797
+ "schedule": "0 9 * * *",
1798
+ "timezone": "America/New_York",
1799
+ "runner": "shell",
1800
+ "modes": [
1801
+ "script"
1802
+ ],
1803
+ "compatible_agents": [
1804
+ "generic",
1805
+ "claude",
1806
+ "codex"
1807
+ ],
1808
+ "path": "jobs/retail/employee-shift-gap-check.yaml"
1809
+ },
1238
1810
  {
1239
1811
  "id": "end-of-day-wrap-message",
1240
1812
  "version": 1,
@@ -1361,6 +1933,31 @@
1361
1933
  ],
1362
1934
  "path": "jobs/agriculture/equipment-maintenance-due-reminder.yaml"
1363
1935
  },
1936
+ {
1937
+ "id": "equipment-rental-return-reminder",
1938
+ "version": 1,
1939
+ "name": "Equipment Rental Return Reminder",
1940
+ "description": "Warns you before a rented piece of equipment is due back, so it doesn't rack up late fees or an unplanned extension charge. Use this if a rental has ever run days past due because nobody was tracking the return date against the job schedule.",
1941
+ "category": "construction",
1942
+ "tags": [
1943
+ "construction",
1944
+ "equipment",
1945
+ "rental",
1946
+ "deadline"
1947
+ ],
1948
+ "schedule": "0 7 * * *",
1949
+ "timezone": "UTC",
1950
+ "runner": "shell",
1951
+ "modes": [
1952
+ "script"
1953
+ ],
1954
+ "compatible_agents": [
1955
+ "generic",
1956
+ "claude",
1957
+ "codex"
1958
+ ],
1959
+ "path": "jobs/construction/equipment-rental-return-reminder.yaml"
1960
+ },
1364
1961
  {
1365
1962
  "id": "error-rate-spike-watch",
1366
1963
  "version": 1,
@@ -1413,17 +2010,18 @@
1413
2010
  "path": "jobs/events/event-budget-overrun-check.yaml"
1414
2011
  },
1415
2012
  {
1416
- "id": "expiring-api-key-rotation",
2013
+ "id": "event-staffing-shortfall-check",
1417
2014
  "version": 1,
1418
- "name": "Expiring API Key Rotation Reminder",
1419
- "description": "Warns you before a third-party API key or token you're tracking expires. Use this if an integration has ever gone down in production because a key expired and nobody rotated it in time.",
1420
- "category": "security",
2015
+ "name": "Event Staffing Shortfall Check",
2016
+ "description": "Compares confirmed staff/volunteer signups against how many the event actually needs, and flags a shortfall while there's still time to recruit. Use this if you've ever realized you were short-staffed the day before an event instead of weeks before.",
2017
+ "category": "events",
1421
2018
  "tags": [
1422
- "security",
1423
- "api-keys",
1424
- "rotation"
2019
+ "events",
2020
+ "staffing",
2021
+ "volunteers",
2022
+ "planning"
1425
2023
  ],
1426
- "schedule": "0 8 * * *",
2024
+ "schedule": "0 9 * * 1",
1427
2025
  "timezone": "UTC",
1428
2026
  "runner": "shell",
1429
2027
  "modes": [
@@ -1434,29 +2032,80 @@
1434
2032
  "claude",
1435
2033
  "codex"
1436
2034
  ],
1437
- "path": "jobs/security/expiring-api-key-rotation.yaml"
2035
+ "path": "jobs/events/event-staffing-shortfall-check.yaml"
1438
2036
  },
1439
2037
  {
1440
- "id": "expiring-perishable-stock-check",
2038
+ "id": "exit-interview-completion-check",
1441
2039
  "version": 1,
1442
- "name": "Expiring Perishable Stock Check",
1443
- "description": "Flags perishable inventory nearing its expiry date so it can be sold, discounted, or used before it's wasted. Use this if stock has ever expired on the shelf because nobody was tracking dates until it was too late.",
1444
- "category": "inventory",
2040
+ "name": "Exit Interview Completion Check",
2041
+ "description": "Flags departing employees whose exit interview hasn't happened yet as their last day approaches. Use this if someone has ever left without an exit interview simply because scheduling it got lost in the handoff paperwork.",
2042
+ "category": "hr",
1445
2043
  "tags": [
1446
- "inventory",
1447
- "perishables",
1448
- "waste"
2044
+ "hr",
2045
+ "offboarding",
2046
+ "exit-interview",
2047
+ "compliance"
1449
2048
  ],
1450
- "schedule": "0 6 * * *",
2049
+ "schedule": "0 9 * * *",
1451
2050
  "timezone": "UTC",
1452
- "runner": "shell",
2051
+ "runner": "agent-prompt",
1453
2052
  "modes": [
1454
- "script"
2053
+ "agent-prompt"
1455
2054
  ],
1456
2055
  "compatible_agents": [
1457
- "generic",
1458
2056
  "claude",
1459
- "codex"
2057
+ "codex",
2058
+ "hermes",
2059
+ "openclaw",
2060
+ "generic"
2061
+ ],
2062
+ "path": "jobs/hr/exit-interview-completion-check.yaml"
2063
+ },
2064
+ {
2065
+ "id": "expiring-api-key-rotation",
2066
+ "version": 1,
2067
+ "name": "Expiring API Key Rotation Reminder",
2068
+ "description": "Warns you before a third-party API key or token you're tracking expires. Use this if an integration has ever gone down in production because a key expired and nobody rotated it in time.",
2069
+ "category": "security",
2070
+ "tags": [
2071
+ "security",
2072
+ "api-keys",
2073
+ "rotation"
2074
+ ],
2075
+ "schedule": "0 8 * * *",
2076
+ "timezone": "UTC",
2077
+ "runner": "shell",
2078
+ "modes": [
2079
+ "script"
2080
+ ],
2081
+ "compatible_agents": [
2082
+ "generic",
2083
+ "claude",
2084
+ "codex"
2085
+ ],
2086
+ "path": "jobs/security/expiring-api-key-rotation.yaml"
2087
+ },
2088
+ {
2089
+ "id": "expiring-perishable-stock-check",
2090
+ "version": 1,
2091
+ "name": "Expiring Perishable Stock Check",
2092
+ "description": "Flags perishable inventory nearing its expiry date so it can be sold, discounted, or used before it's wasted. Use this if stock has ever expired on the shelf because nobody was tracking dates until it was too late.",
2093
+ "category": "inventory",
2094
+ "tags": [
2095
+ "inventory",
2096
+ "perishables",
2097
+ "waste"
2098
+ ],
2099
+ "schedule": "0 6 * * *",
2100
+ "timezone": "UTC",
2101
+ "runner": "shell",
2102
+ "modes": [
2103
+ "script"
2104
+ ],
2105
+ "compatible_agents": [
2106
+ "generic",
2107
+ "claude",
2108
+ "codex"
1460
2109
  ],
1461
2110
  "path": "jobs/inventory/expiring-perishable-stock-check.yaml"
1462
2111
  },
@@ -1510,6 +2159,31 @@
1510
2159
  ],
1511
2160
  "path": "jobs/devops/feature-flag-staleness-audit.yaml"
1512
2161
  },
2162
+ {
2163
+ "id": "field-trip-permission-slip-check",
2164
+ "version": 1,
2165
+ "name": "Field Trip Permission Slip Check",
2166
+ "description": "Checks which students still haven't returned a signed permission slip as a field trip approaches. Use this if a student has ever been left behind on a school trip because their slip got lost in a backpack and nobody followed up in time.",
2167
+ "category": "education",
2168
+ "tags": [
2169
+ "education",
2170
+ "field-trip",
2171
+ "permission-slip",
2172
+ "students"
2173
+ ],
2174
+ "schedule": "0 8 * * *",
2175
+ "timezone": "UTC",
2176
+ "runner": "shell",
2177
+ "modes": [
2178
+ "script"
2179
+ ],
2180
+ "compatible_agents": [
2181
+ "generic",
2182
+ "claude",
2183
+ "codex"
2184
+ ],
2185
+ "path": "jobs/education/field-trip-permission-slip-check.yaml"
2186
+ },
1513
2187
  {
1514
2188
  "id": "firewall-rule-diff",
1515
2189
  "version": 1,
@@ -1582,6 +2256,56 @@
1582
2256
  ],
1583
2257
  "path": "jobs/productivity/focus-block-reminder.yaml"
1584
2258
  },
2259
+ {
2260
+ "id": "foia-request-deadline-check",
2261
+ "version": 1,
2262
+ "name": "Public Records Request Deadline Check",
2263
+ "description": "Checks open public records (FOIA/state equivalent) requests against their statutory response deadline and flags anything close to due. Use this if a records request has ever blown past its legal response window because it sat in an inbox instead of on a tracked deadline list.",
2264
+ "category": "government",
2265
+ "tags": [
2266
+ "government",
2267
+ "foia",
2268
+ "public-records",
2269
+ "deadline"
2270
+ ],
2271
+ "schedule": "0 8 * * *",
2272
+ "timezone": "UTC",
2273
+ "runner": "shell",
2274
+ "modes": [
2275
+ "script"
2276
+ ],
2277
+ "compatible_agents": [
2278
+ "generic",
2279
+ "claude",
2280
+ "codex"
2281
+ ],
2282
+ "path": "jobs/government/foia-request-deadline-check.yaml"
2283
+ },
2284
+ {
2285
+ "id": "food-cost-percentage-watch",
2286
+ "version": 1,
2287
+ "name": "Food Cost Percentage Watch",
2288
+ "description": "Checks food cost as a percentage of sales against your target and flags it when it runs high. Use this if food cost has ever crept up for weeks before anyone pulled the numbers and noticed margins were shrinking.",
2289
+ "category": "restaurant",
2290
+ "tags": [
2291
+ "restaurant",
2292
+ "food-cost",
2293
+ "margin",
2294
+ "finance"
2295
+ ],
2296
+ "schedule": "0 8 * * 1",
2297
+ "timezone": "America/New_York",
2298
+ "runner": "shell",
2299
+ "modes": [
2300
+ "script"
2301
+ ],
2302
+ "compatible_agents": [
2303
+ "generic",
2304
+ "claude",
2305
+ "codex"
2306
+ ],
2307
+ "path": "jobs/restaurant/food-cost-percentage-watch.yaml"
2308
+ },
1585
2309
  {
1586
2310
  "id": "food-safety-temp-log-check",
1587
2311
  "version": 1,
@@ -1762,6 +2486,31 @@
1762
2486
  ],
1763
2487
  "path": "jobs/gaming/game-patch-notes-watch.yaml"
1764
2488
  },
2489
+ {
2490
+ "id": "game-server-uptime-check",
2491
+ "version": 1,
2492
+ "name": "Self-Hosted Game Server Uptime Check",
2493
+ "description": "Checks that your self-hosted game server (Minecraft, ARK, Valheim, etc.) is actually up and accepting connections. Use this if your community server has ever gone down overnight and players just assumed you took it offline on purpose.",
2494
+ "category": "gaming",
2495
+ "tags": [
2496
+ "gaming",
2497
+ "server",
2498
+ "uptime",
2499
+ "hosting"
2500
+ ],
2501
+ "schedule": "*/10 * * * *",
2502
+ "timezone": "UTC",
2503
+ "runner": "shell",
2504
+ "modes": [
2505
+ "script"
2506
+ ],
2507
+ "compatible_agents": [
2508
+ "generic",
2509
+ "claude",
2510
+ "codex"
2511
+ ],
2512
+ "path": "jobs/gaming/game-server-uptime-check.yaml"
2513
+ },
1765
2514
  {
1766
2515
  "id": "gas-price-alert",
1767
2516
  "version": 1,
@@ -1841,6 +2590,31 @@
1841
2590
  ],
1842
2591
  "path": "jobs/nonprofit/grant-deadline-reminder.yaml"
1843
2592
  },
2593
+ {
2594
+ "id": "grant-reporting-deadline-check",
2595
+ "version": 1,
2596
+ "name": "Grant Reporting Deadline Check",
2597
+ "description": "Warns you before a post-award grant report is due, separate from the application deadline. Use this if a funder relationship has ever soured because a required progress or financial report was late, even though the grant itself was won and the work was going fine.",
2598
+ "category": "nonprofit",
2599
+ "tags": [
2600
+ "nonprofit",
2601
+ "grants",
2602
+ "reporting",
2603
+ "compliance"
2604
+ ],
2605
+ "schedule": "0 8 * * *",
2606
+ "timezone": "UTC",
2607
+ "runner": "shell",
2608
+ "modes": [
2609
+ "script"
2610
+ ],
2611
+ "compatible_agents": [
2612
+ "generic",
2613
+ "claude",
2614
+ "codex"
2615
+ ],
2616
+ "path": "jobs/nonprofit/grant-reporting-deadline-check.yaml"
2617
+ },
1844
2618
  {
1845
2619
  "id": "guest-followup-reminder",
1846
2620
  "version": 1,
@@ -1865,6 +2639,108 @@
1865
2639
  ],
1866
2640
  "path": "jobs/podcast/guest-followup-reminder.yaml"
1867
2641
  },
2642
+ {
2643
+ "id": "guest-maintenance-request-backlog-check",
2644
+ "version": 1,
2645
+ "name": "Guest Maintenance Request Backlog Check",
2646
+ "description": "Checks how many guest-reported maintenance issues are still open and flags any sitting past your target resolution time. Use this if a reported issue (broken AC, leaking faucet) has ever gone unresolved for days because the request lived in a notebook nobody checked.",
2647
+ "category": "hospitality",
2648
+ "tags": [
2649
+ "hospitality",
2650
+ "maintenance",
2651
+ "guest-experience",
2652
+ "backlog"
2653
+ ],
2654
+ "schedule": "0 */6 * * *",
2655
+ "timezone": "UTC",
2656
+ "runner": "shell",
2657
+ "modes": [
2658
+ "script"
2659
+ ],
2660
+ "compatible_agents": [
2661
+ "generic",
2662
+ "claude",
2663
+ "codex"
2664
+ ],
2665
+ "path": "jobs/hospitality/guest-maintenance-request-backlog-check.yaml"
2666
+ },
2667
+ {
2668
+ "id": "guest-review-response-check",
2669
+ "version": 1,
2670
+ "name": "Guest Review Response Check",
2671
+ "description": "Checks for recent guest reviews across your listing platforms that haven't gotten a response yet. Use this if a review has ever sat unanswered for weeks, which future guests read as nobody's paying attention.",
2672
+ "category": "hospitality",
2673
+ "tags": [
2674
+ "hospitality",
2675
+ "reviews",
2676
+ "guest-experience",
2677
+ "reputation"
2678
+ ],
2679
+ "schedule": "0 9 * * *",
2680
+ "timezone": "UTC",
2681
+ "runner": "agent-prompt",
2682
+ "modes": [
2683
+ "agent-prompt"
2684
+ ],
2685
+ "compatible_agents": [
2686
+ "claude",
2687
+ "codex",
2688
+ "hermes",
2689
+ "openclaw",
2690
+ "generic"
2691
+ ],
2692
+ "path": "jobs/hospitality/guest-review-response-check.yaml"
2693
+ },
2694
+ {
2695
+ "id": "gym-equipment-maintenance-check",
2696
+ "version": 1,
2697
+ "name": "Gym Equipment Maintenance Check",
2698
+ "description": "Tracks usage hours or calendar time against manufacturer service intervals for cardio and strength equipment, and flags what's coming due. Use this if a treadmill has ever broken down mid-workout because its service interval quietly passed unnoticed.",
2699
+ "category": "fitness",
2700
+ "tags": [
2701
+ "fitness",
2702
+ "equipment",
2703
+ "maintenance",
2704
+ "gym"
2705
+ ],
2706
+ "schedule": "0 6 * * 1",
2707
+ "timezone": "UTC",
2708
+ "runner": "shell",
2709
+ "modes": [
2710
+ "script"
2711
+ ],
2712
+ "compatible_agents": [
2713
+ "generic",
2714
+ "claude",
2715
+ "codex"
2716
+ ],
2717
+ "path": "jobs/fitness/gym-equipment-maintenance-check.yaml"
2718
+ },
2719
+ {
2720
+ "id": "gym-membership-renewal-reminder",
2721
+ "version": 1,
2722
+ "name": "Gym Membership Renewal Reminder",
2723
+ "description": "Warns you before a member's contract term ends so there's time to reach out before they quietly let it lapse. Use this if a membership has ever ended and the member just never came back, without anyone reaching out during the window when a renewal conversation could've happened.",
2724
+ "category": "fitness",
2725
+ "tags": [
2726
+ "fitness",
2727
+ "membership",
2728
+ "renewal",
2729
+ "retention"
2730
+ ],
2731
+ "schedule": "0 9 * * *",
2732
+ "timezone": "UTC",
2733
+ "runner": "shell",
2734
+ "modes": [
2735
+ "script"
2736
+ ],
2737
+ "compatible_agents": [
2738
+ "generic",
2739
+ "claude",
2740
+ "codex"
2741
+ ],
2742
+ "path": "jobs/fitness/gym-membership-renewal-reminder.yaml"
2743
+ },
1868
2744
  {
1869
2745
  "id": "habit-checkin",
1870
2746
  "version": 1,
@@ -2035,6 +2911,33 @@
2035
2911
  ],
2036
2912
  "path": "jobs/content/image-alt-text-audit.yaml"
2037
2913
  },
2914
+ {
2915
+ "id": "immunization-record-compliance-check",
2916
+ "version": 1,
2917
+ "name": "Immunization Record Compliance Check",
2918
+ "description": "Checks enrolled children's immunization records against your state's required schedule and flags anyone missing required documentation. Use this if a compliance gap has ever gone unnoticed until a state licensing inspection found it first.",
2919
+ "category": "childcare",
2920
+ "tags": [
2921
+ "childcare",
2922
+ "immunization",
2923
+ "compliance",
2924
+ "licensing"
2925
+ ],
2926
+ "schedule": "0 8 1 * *",
2927
+ "timezone": "UTC",
2928
+ "runner": "agent-prompt",
2929
+ "modes": [
2930
+ "agent-prompt"
2931
+ ],
2932
+ "compatible_agents": [
2933
+ "claude",
2934
+ "codex",
2935
+ "hermes",
2936
+ "openclaw",
2937
+ "generic"
2938
+ ],
2939
+ "path": "jobs/childcare/immunization-record-compliance-check.yaml"
2940
+ },
2038
2941
  {
2039
2942
  "id": "inbox-triage",
2040
2943
  "version": 1,
@@ -2086,18 +2989,19 @@
2086
2989
  "path": "jobs/construction/inspection-deadline-reminder.yaml"
2087
2990
  },
2088
2991
  {
2089
- "id": "inventory-count-discrepancy-check",
2992
+ "id": "insurance-eligibility-verification-check",
2090
2993
  "version": 1,
2091
- "name": "Inventory Count Discrepancy Check",
2092
- "description": "Compares a physical inventory count against system records and flags mismatches worth investigating. Use this if shrinkage or data entry errors have ever gone unnoticed until a full audit months later.",
2093
- "category": "inventory",
2994
+ "name": "Insurance Eligibility Verification Check",
2995
+ "description": "Checks upcoming appointments for patients whose insurance eligibility hasn't been verified yet, so it gets confirmed before the visit instead of at checkout. Use this if a patient has ever been surprised with a denied claim because eligibility was never checked ahead of time.",
2996
+ "category": "healthcare",
2094
2997
  "tags": [
2095
- "inventory",
2096
- "audit",
2097
- "discrepancy"
2998
+ "healthcare",
2999
+ "insurance",
3000
+ "eligibility",
3001
+ "appointments"
2098
3002
  ],
2099
- "schedule": "0 9 1 * *",
2100
- "timezone": "UTC",
3003
+ "schedule": "0 15 * * *",
3004
+ "timezone": "America/New_York",
2101
3005
  "runner": "agent-prompt",
2102
3006
  "modes": [
2103
3007
  "agent-prompt"
@@ -2109,14 +3013,92 @@
2109
3013
  "openclaw",
2110
3014
  "generic"
2111
3015
  ],
2112
- "path": "jobs/inventory/inventory-count-discrepancy-check.yaml"
3016
+ "path": "jobs/healthcare/insurance-eligibility-verification-check.yaml"
2113
3017
  },
2114
3018
  {
2115
- "id": "inventory-waste-log-review",
3019
+ "id": "interview-feedback-overdue-check",
2116
3020
  "version": 1,
2117
- "name": "Inventory Waste Log Review",
2118
- "description": "Reviews the kitchen's waste log for the week and flags which items are being tossed most, in case it's an over-ordering or portioning problem. Use this if food cost keeps creeping up and nobody's sure why.",
2119
- "category": "restaurant",
3021
+ "name": "Interview Feedback Overdue Check",
3022
+ "description": "Flags interviews that happened but still have no feedback submitted, so the decision doesn't stall waiting on one interviewer. Use this if a candidate has ever been left hanging because feedback from one interviewer never showed up and nobody chased it down.",
3023
+ "category": "hiring",
3024
+ "tags": [
3025
+ "hiring",
3026
+ "interviews",
3027
+ "feedback",
3028
+ "recruiting"
3029
+ ],
3030
+ "schedule": "0 9 * * *",
3031
+ "timezone": "UTC",
3032
+ "runner": "agent-prompt",
3033
+ "modes": [
3034
+ "agent-prompt"
3035
+ ],
3036
+ "compatible_agents": [
3037
+ "claude",
3038
+ "codex",
3039
+ "hermes",
3040
+ "openclaw",
3041
+ "generic"
3042
+ ],
3043
+ "path": "jobs/hiring/interview-feedback-overdue-check.yaml"
3044
+ },
3045
+ {
3046
+ "id": "inventory-count-discrepancy-check",
3047
+ "version": 1,
3048
+ "name": "Inventory Count Discrepancy Check",
3049
+ "description": "Compares a physical inventory count against system records and flags mismatches worth investigating. Use this if shrinkage or data entry errors have ever gone unnoticed until a full audit months later.",
3050
+ "category": "inventory",
3051
+ "tags": [
3052
+ "inventory",
3053
+ "audit",
3054
+ "discrepancy"
3055
+ ],
3056
+ "schedule": "0 9 1 * *",
3057
+ "timezone": "UTC",
3058
+ "runner": "agent-prompt",
3059
+ "modes": [
3060
+ "agent-prompt"
3061
+ ],
3062
+ "compatible_agents": [
3063
+ "claude",
3064
+ "codex",
3065
+ "hermes",
3066
+ "openclaw",
3067
+ "generic"
3068
+ ],
3069
+ "path": "jobs/inventory/inventory-count-discrepancy-check.yaml"
3070
+ },
3071
+ {
3072
+ "id": "inventory-shrinkage-watch",
3073
+ "version": 1,
3074
+ "name": "Inventory Shrinkage Watch",
3075
+ "description": "Tracks the gap between expected and actual inventory over time and flags when shrinkage (theft, damage, data-entry error) crosses a threshold. Use this if shrinkage has ever only gotten noticed at the annual physical count instead of trending visibly for months first.",
3076
+ "category": "inventory",
3077
+ "tags": [
3078
+ "inventory",
3079
+ "shrinkage",
3080
+ "loss-prevention",
3081
+ "audit"
3082
+ ],
3083
+ "schedule": "0 6 * * 1",
3084
+ "timezone": "UTC",
3085
+ "runner": "shell",
3086
+ "modes": [
3087
+ "script"
3088
+ ],
3089
+ "compatible_agents": [
3090
+ "generic",
3091
+ "claude",
3092
+ "codex"
3093
+ ],
3094
+ "path": "jobs/inventory/inventory-shrinkage-watch.yaml"
3095
+ },
3096
+ {
3097
+ "id": "inventory-waste-log-review",
3098
+ "version": 1,
3099
+ "name": "Inventory Waste Log Review",
3100
+ "description": "Reviews the kitchen's waste log for the week and flags which items are being tossed most, in case it's an over-ordering or portioning problem. Use this if food cost keeps creeping up and nobody's sure why.",
3101
+ "category": "restaurant",
2120
3102
  "tags": [
2121
3103
  "inventory",
2122
3104
  "waste",
@@ -2213,6 +3195,58 @@
2213
3195
  ],
2214
3196
  "path": "jobs/devops/k8s-pod-restart-watch.yaml"
2215
3197
  },
3198
+ {
3199
+ "id": "lab-result-followup-check",
3200
+ "version": 1,
3201
+ "name": "Lab Result Follow-Up Check",
3202
+ "description": "Checks for lab results that came back a while ago but haven't been reviewed by a provider or communicated to the patient yet. Use this if a result has ever sat in a queue for days because nobody was tracking turnaround from result-received to patient-notified.",
3203
+ "category": "healthcare",
3204
+ "tags": [
3205
+ "healthcare",
3206
+ "lab-results",
3207
+ "patients",
3208
+ "followup"
3209
+ ],
3210
+ "schedule": "0 */4 * * *",
3211
+ "timezone": "America/New_York",
3212
+ "runner": "agent-prompt",
3213
+ "modes": [
3214
+ "agent-prompt"
3215
+ ],
3216
+ "compatible_agents": [
3217
+ "claude",
3218
+ "codex",
3219
+ "hermes",
3220
+ "openclaw",
3221
+ "generic"
3222
+ ],
3223
+ "path": "jobs/healthcare/lab-result-followup-check.yaml"
3224
+ },
3225
+ {
3226
+ "id": "labor-cost-percentage-watch",
3227
+ "version": 1,
3228
+ "name": "Labor Cost Percentage Watch",
3229
+ "description": "Checks labor cost as a percentage of sales against your target and flags it when it runs high. Use this if overstaffing on a slow shift has ever quietly eaten a week's margin before anyone pulled the labor numbers and noticed.",
3230
+ "category": "restaurant",
3231
+ "tags": [
3232
+ "restaurant",
3233
+ "labor-cost",
3234
+ "margin",
3235
+ "finance"
3236
+ ],
3237
+ "schedule": "0 8 * * 1",
3238
+ "timezone": "America/New_York",
3239
+ "runner": "shell",
3240
+ "modes": [
3241
+ "script"
3242
+ ],
3243
+ "compatible_agents": [
3244
+ "generic",
3245
+ "claude",
3246
+ "codex"
3247
+ ],
3248
+ "path": "jobs/restaurant/labor-cost-percentage-watch.yaml"
3249
+ },
2216
3250
  {
2217
3251
  "id": "lapsed-donor-check",
2218
3252
  "version": 1,
@@ -2237,6 +3271,33 @@
2237
3271
  ],
2238
3272
  "path": "jobs/nonprofit/lapsed-donor-check.yaml"
2239
3273
  },
3274
+ {
3275
+ "id": "last-mile-delivery-exception-check",
3276
+ "version": 1,
3277
+ "name": "Last-Mile Delivery Exception Check",
3278
+ "description": "Checks recent deliveries for exceptions — failed attempts, refused packages, address issues — and flags them for follow-up. Use this if a failed delivery has ever sat unresolved until an annoyed customer emailed asking where their order was.",
3279
+ "category": "logistics",
3280
+ "tags": [
3281
+ "logistics",
3282
+ "delivery",
3283
+ "last-mile",
3284
+ "exceptions"
3285
+ ],
3286
+ "schedule": "0 */4 * * *",
3287
+ "timezone": "UTC",
3288
+ "runner": "agent-prompt",
3289
+ "modes": [
3290
+ "agent-prompt"
3291
+ ],
3292
+ "compatible_agents": [
3293
+ "claude",
3294
+ "codex",
3295
+ "hermes",
3296
+ "openclaw",
3297
+ "generic"
3298
+ ],
3299
+ "path": "jobs/logistics/last-mile-delivery-exception-check.yaml"
3300
+ },
2240
3301
  {
2241
3302
  "id": "lead-response-time-check",
2242
3303
  "version": 1,
@@ -2334,6 +3395,56 @@
2334
3395
  ],
2335
3396
  "path": "jobs/healthcare/license-credential-expiry-check.yaml"
2336
3397
  },
3398
+ {
3399
+ "id": "livestock-feed-stock-check",
3400
+ "version": 1,
3401
+ "name": "Livestock Feed Stock Check",
3402
+ "description": "Checks how many days of feed are left based on current stock and daily consumption, and warns before you run out. Use this if feed has ever run low over a weekend or holiday when the supplier wasn't reachable.",
3403
+ "category": "agriculture",
3404
+ "tags": [
3405
+ "agriculture",
3406
+ "livestock",
3407
+ "feed",
3408
+ "inventory"
3409
+ ],
3410
+ "schedule": "0 6 * * *",
3411
+ "timezone": "UTC",
3412
+ "runner": "shell",
3413
+ "modes": [
3414
+ "script"
3415
+ ],
3416
+ "compatible_agents": [
3417
+ "generic",
3418
+ "claude",
3419
+ "codex"
3420
+ ],
3421
+ "path": "jobs/agriculture/livestock-feed-stock-check.yaml"
3422
+ },
3423
+ {
3424
+ "id": "loaner-vehicle-return-reminder",
3425
+ "version": 1,
3426
+ "name": "Loaner Vehicle Return Reminder",
3427
+ "description": "Warns you before a loaner vehicle is due back, and flags anything already overdue. Use this if a loaner has ever gone weeks without coming back because nobody was tracking who had which car out.",
3428
+ "category": "automotive",
3429
+ "tags": [
3430
+ "automotive",
3431
+ "loaner",
3432
+ "fleet",
3433
+ "reminder"
3434
+ ],
3435
+ "schedule": "0 8 * * *",
3436
+ "timezone": "UTC",
3437
+ "runner": "shell",
3438
+ "modes": [
3439
+ "script"
3440
+ ],
3441
+ "compatible_agents": [
3442
+ "generic",
3443
+ "claude",
3444
+ "codex"
3445
+ ],
3446
+ "path": "jobs/automotive/loaner-vehicle-return-reminder.yaml"
3447
+ },
2337
3448
  {
2338
3449
  "id": "log-cleanup",
2339
3450
  "version": 1,
@@ -2385,12 +3496,12 @@
2385
3496
  "id": "low-stock-alert",
2386
3497
  "version": 1,
2387
3498
  "name": "Low Stock Alert",
2388
- "description": "Checks inventory levels against a reorder point and flags SKUs running low. Use this if you've ever gone out of stock on a bestseller because nobody was watching the count.",
3499
+ "description": "Checks a general-purpose inventory database (warehouse, retail backroom, restaurant supplies — anything with a quantity and a set reorder point) against that fixed threshold and flags what's running low. Use this for physical stock tracked in a database, not tied to online sales; if you specifically need SKU reorder timing driven by e-commerce sales velocity and supplier lead time, see `low-stock-reorder-alert` instead.",
2389
3500
  "category": "inventory",
2390
3501
  "tags": [
2391
3502
  "inventory",
2392
3503
  "stock",
2393
- "ecommerce"
3504
+ "warehouse"
2394
3505
  ],
2395
3506
  "schedule": "0 7 * * *",
2396
3507
  "timezone": "UTC",
@@ -2533,6 +3644,33 @@
2533
3644
  ],
2534
3645
  "path": "jobs/legal/nda-expiry-check.yaml"
2535
3646
  },
3647
+ {
3648
+ "id": "negative-review-alert",
3649
+ "version": 1,
3650
+ "name": "Negative Review Alert",
3651
+ "description": "Checks for new low-star product reviews and flags them same-day instead of letting them sit in a dashboard nobody checks. Use this if a bad review has ever sat live for a week before anyone on the team noticed and responded.",
3652
+ "category": "ecommerce",
3653
+ "tags": [
3654
+ "ecommerce",
3655
+ "reviews",
3656
+ "reputation",
3657
+ "customer-service"
3658
+ ],
3659
+ "schedule": "0 9 * * *",
3660
+ "timezone": "UTC",
3661
+ "runner": "agent-prompt",
3662
+ "modes": [
3663
+ "agent-prompt"
3664
+ ],
3665
+ "compatible_agents": [
3666
+ "claude",
3667
+ "codex",
3668
+ "hermes",
3669
+ "openclaw",
3670
+ "generic"
3671
+ ],
3672
+ "path": "jobs/ecommerce/negative-review-alert.yaml"
3673
+ },
2536
3674
  {
2537
3675
  "id": "net-worth-snapshot",
2538
3676
  "version": 1,
@@ -2663,6 +3801,31 @@
2663
3801
  ],
2664
3802
  "path": "jobs/hiring/offer-expiry-reminder.yaml"
2665
3803
  },
3804
+ {
3805
+ "id": "on-call-fatigue-check",
3806
+ "version": 1,
3807
+ "name": "On-Call Fatigue Check",
3808
+ "description": "Checks the on-call rotation history and flags if the same person has been covering on-call more often than the rotation intends. Use this if someone has ever quietly ended up on-call three weeks running because swaps kept landing on the same person and nobody was tracking the pattern.",
3809
+ "category": "team",
3810
+ "tags": [
3811
+ "team",
3812
+ "oncall",
3813
+ "rotation",
3814
+ "burnout"
3815
+ ],
3816
+ "schedule": "0 9 * * 1",
3817
+ "timezone": "UTC",
3818
+ "runner": "shell",
3819
+ "modes": [
3820
+ "script"
3821
+ ],
3822
+ "compatible_agents": [
3823
+ "generic",
3824
+ "claude",
3825
+ "codex"
3826
+ ],
3827
+ "path": "jobs/team/on-call-fatigue-check.yaml"
3828
+ },
2666
3829
  {
2667
3830
  "id": "oncall-handoff-reminder",
2668
3831
  "version": 1,
@@ -2761,6 +3924,31 @@
2761
3924
  ],
2762
3925
  "path": "jobs/devops/orphaned-branch-cleanup.yaml"
2763
3926
  },
3927
+ {
3928
+ "id": "overstock-slow-mover-check",
3929
+ "version": 1,
3930
+ "name": "Overstock / Slow-Mover Check",
3931
+ "description": "Flags SKUs sitting well above normal stock levels with low recent sales velocity, tying up capital and warehouse space. Use this if slow-moving stock has ever piled up quietly until a year-end count revealed how much cash was sitting on shelves doing nothing.",
3932
+ "category": "inventory",
3933
+ "tags": [
3934
+ "inventory",
3935
+ "overstock",
3936
+ "slow-mover",
3937
+ "capital"
3938
+ ],
3939
+ "schedule": "0 6 * * 1",
3940
+ "timezone": "UTC",
3941
+ "runner": "shell",
3942
+ "modes": [
3943
+ "script"
3944
+ ],
3945
+ "compatible_agents": [
3946
+ "generic",
3947
+ "claude",
3948
+ "codex"
3949
+ ],
3950
+ "path": "jobs/inventory/overstock-slow-mover-check.yaml"
3951
+ },
2764
3952
  {
2765
3953
  "id": "page-speed-regression-watch",
2766
3954
  "version": 1,
@@ -2785,6 +3973,31 @@
2785
3973
  ],
2786
3974
  "path": "jobs/content/page-speed-regression-watch.yaml"
2787
3975
  },
3976
+ {
3977
+ "id": "parts-backorder-check",
3978
+ "version": 1,
3979
+ "name": "Parts Backorder Check",
3980
+ "description": "Checks ordered parts against their expected arrival date and flags anything overdue from the supplier. Use this if a repair has ever stalled for a week because a part was quietly backordered and nobody followed up with the supplier until a customer asked why their car wasn't ready.",
3981
+ "category": "automotive",
3982
+ "tags": [
3983
+ "automotive",
3984
+ "parts",
3985
+ "backorder",
3986
+ "supplier"
3987
+ ],
3988
+ "schedule": "0 9 * * *",
3989
+ "timezone": "UTC",
3990
+ "runner": "shell",
3991
+ "modes": [
3992
+ "script"
3993
+ ],
3994
+ "compatible_agents": [
3995
+ "generic",
3996
+ "claude",
3997
+ "codex"
3998
+ ],
3999
+ "path": "jobs/automotive/parts-backorder-check.yaml"
4000
+ },
2788
4001
  {
2789
4002
  "id": "passport-expiry-check",
2790
4003
  "version": 1,
@@ -2885,6 +4098,58 @@
2885
4098
  ],
2886
4099
  "path": "jobs/hr/payroll-run-reminder.yaml"
2887
4100
  },
4101
+ {
4102
+ "id": "performance-review-cycle-reminder",
4103
+ "version": 1,
4104
+ "name": "Performance Review Cycle Reminder",
4105
+ "description": "Tracks the performance review cycle deadline and flags managers who haven't submitted reviews yet as the deadline approaches. Use this if a review cycle has ever closed with a chunk of reviews still missing because nobody chased the stragglers until HR asked.",
4106
+ "category": "hr",
4107
+ "tags": [
4108
+ "hr",
4109
+ "performance-review",
4110
+ "reminder",
4111
+ "deadline"
4112
+ ],
4113
+ "schedule": "0 9 * * *",
4114
+ "timezone": "UTC",
4115
+ "runner": "agent-prompt",
4116
+ "modes": [
4117
+ "agent-prompt"
4118
+ ],
4119
+ "compatible_agents": [
4120
+ "claude",
4121
+ "codex",
4122
+ "hermes",
4123
+ "openclaw",
4124
+ "generic"
4125
+ ],
4126
+ "path": "jobs/hr/performance-review-cycle-reminder.yaml"
4127
+ },
4128
+ {
4129
+ "id": "permit-application-backlog-check",
4130
+ "version": 1,
4131
+ "name": "Permit Application Backlog Check",
4132
+ "description": "Checks how many permit applications are sitting in review past your target processing time, from the issuing agency's side. Use this if applications have ever piled up in a queue for weeks with no one tracking total backlog size or average age.",
4133
+ "category": "government",
4134
+ "tags": [
4135
+ "government",
4136
+ "permits",
4137
+ "backlog",
4138
+ "processing"
4139
+ ],
4140
+ "schedule": "0 8 * * 1",
4141
+ "timezone": "UTC",
4142
+ "runner": "shell",
4143
+ "modes": [
4144
+ "script"
4145
+ ],
4146
+ "compatible_agents": [
4147
+ "generic",
4148
+ "claude",
4149
+ "codex"
4150
+ ],
4151
+ "path": "jobs/government/permit-application-backlog-check.yaml"
4152
+ },
2888
4153
  {
2889
4154
  "id": "permit-expiry-check",
2890
4155
  "version": 1,
@@ -2909,6 +4174,56 @@
2909
4174
  ],
2910
4175
  "path": "jobs/construction/permit-expiry-check.yaml"
2911
4176
  },
4177
+ {
4178
+ "id": "pet-vaccine-due-reminder",
4179
+ "version": 1,
4180
+ "name": "Pet Vaccine Due Reminder",
4181
+ "description": "Checks which patients are due or overdue for a vaccine and lists them for outreach. Use this if a pet has ever gone a year past due for a core vaccine because the reminder postcard got lost in the mail.",
4182
+ "category": "veterinary",
4183
+ "tags": [
4184
+ "veterinary",
4185
+ "vaccine",
4186
+ "patients",
4187
+ "reminder"
4188
+ ],
4189
+ "schedule": "0 8 * * *",
4190
+ "timezone": "UTC",
4191
+ "runner": "shell",
4192
+ "modes": [
4193
+ "script"
4194
+ ],
4195
+ "compatible_agents": [
4196
+ "generic",
4197
+ "claude",
4198
+ "codex"
4199
+ ],
4200
+ "path": "jobs/veterinary/pet-vaccine-due-reminder.yaml"
4201
+ },
4202
+ {
4203
+ "id": "pick-pack-error-rate-watch",
4204
+ "version": 1,
4205
+ "name": "Pick/Pack Error Rate Watch",
4206
+ "description": "Checks recent order fulfillment error rate (wrong item, wrong quantity, missing item) against a target and flags it when it climbs. Use this if a fulfillment error rate has ever crept up for weeks before a spike in return/complaint volume made the problem impossible to ignore.",
4207
+ "category": "warehousing",
4208
+ "tags": [
4209
+ "warehousing",
4210
+ "fulfillment",
4211
+ "quality",
4212
+ "errors"
4213
+ ],
4214
+ "schedule": "0 6 * * *",
4215
+ "timezone": "UTC",
4216
+ "runner": "shell",
4217
+ "modes": [
4218
+ "script"
4219
+ ],
4220
+ "compatible_agents": [
4221
+ "generic",
4222
+ "claude",
4223
+ "codex"
4224
+ ],
4225
+ "path": "jobs/warehousing/pick-pack-error-rate-watch.yaml"
4226
+ },
2912
4227
  {
2913
4228
  "id": "plant-watering-reminder",
2914
4229
  "version": 1,
@@ -2933,6 +4248,60 @@
2933
4248
  ],
2934
4249
  "path": "jobs/home/plant-watering-reminder.yaml"
2935
4250
  },
4251
+ {
4252
+ "id": "podcast-download-drop-watch",
4253
+ "version": 1,
4254
+ "name": "Podcast Download Drop Watch",
4255
+ "description": "Compares a new episode's early download numbers against your recent average and flags a real drop. Use this if a listenership decline has ever gone unnoticed for months because nobody compared episode numbers side by side.",
4256
+ "category": "podcast",
4257
+ "tags": [
4258
+ "podcast",
4259
+ "downloads",
4260
+ "analytics",
4261
+ "listenership"
4262
+ ],
4263
+ "schedule": "0 10 * * *",
4264
+ "timezone": "UTC",
4265
+ "runner": "agent-prompt",
4266
+ "modes": [
4267
+ "agent-prompt"
4268
+ ],
4269
+ "compatible_agents": [
4270
+ "claude",
4271
+ "codex",
4272
+ "hermes",
4273
+ "openclaw",
4274
+ "generic"
4275
+ ],
4276
+ "path": "jobs/podcast/podcast-download-drop-watch.yaml"
4277
+ },
4278
+ {
4279
+ "id": "podcast-rating-review-watch",
4280
+ "version": 1,
4281
+ "name": "Podcast Rating/Review Watch",
4282
+ "description": "Checks for new ratings and reviews on your podcast platforms and flags a negative one or a rating drop worth looking into. Use this if a critical review has ever sat unanswered for months because nobody checks the ratings page between episodes.",
4283
+ "category": "podcast",
4284
+ "tags": [
4285
+ "podcast",
4286
+ "reviews",
4287
+ "ratings",
4288
+ "reputation"
4289
+ ],
4290
+ "schedule": "0 10 * * 1",
4291
+ "timezone": "UTC",
4292
+ "runner": "agent-prompt",
4293
+ "modes": [
4294
+ "agent-prompt"
4295
+ ],
4296
+ "compatible_agents": [
4297
+ "claude",
4298
+ "codex",
4299
+ "hermes",
4300
+ "openclaw",
4301
+ "generic"
4302
+ ],
4303
+ "path": "jobs/podcast/podcast-rating-review-watch.yaml"
4304
+ },
2936
4305
  {
2937
4306
  "id": "policy-renewal-reminder",
2938
4307
  "version": 1,
@@ -2984,6 +4353,56 @@
2984
4353
  ],
2985
4354
  "path": "jobs/investing/portfolio-rebalance-check.yaml"
2986
4355
  },
4356
+ {
4357
+ "id": "pos-till-reconciliation-check",
4358
+ "version": 1,
4359
+ "name": "POS Till Reconciliation Check",
4360
+ "description": "Checks each register's end-of-day cash count against expected POS totals and flags any discrepancy. Use this if a till has ever come up short for days running before anyone connected the pattern to a specific shift or register.",
4361
+ "category": "retail",
4362
+ "tags": [
4363
+ "retail",
4364
+ "pos",
4365
+ "cash",
4366
+ "reconciliation"
4367
+ ],
4368
+ "schedule": "0 23 * * *",
4369
+ "timezone": "America/New_York",
4370
+ "runner": "shell",
4371
+ "modes": [
4372
+ "script"
4373
+ ],
4374
+ "compatible_agents": [
4375
+ "generic",
4376
+ "claude",
4377
+ "codex"
4378
+ ],
4379
+ "path": "jobs/retail/pos-till-reconciliation-check.yaml"
4380
+ },
4381
+ {
4382
+ "id": "premium-payment-due-reminder",
4383
+ "version": 1,
4384
+ "name": "Insurance Premium Payment Due Reminder",
4385
+ "description": "Warns you before an insurance premium payment is due, separate from the policy's renewal date. Use this if a policy has ever lapsed for non-payment even though the renewal itself was months away, because a monthly or quarterly premium payment was missed.",
4386
+ "category": "insurance",
4387
+ "tags": [
4388
+ "insurance",
4389
+ "premium",
4390
+ "payment",
4391
+ "reminder"
4392
+ ],
4393
+ "schedule": "0 8 * * *",
4394
+ "timezone": "UTC",
4395
+ "runner": "shell",
4396
+ "modes": [
4397
+ "script"
4398
+ ],
4399
+ "compatible_agents": [
4400
+ "generic",
4401
+ "claude",
4402
+ "codex"
4403
+ ],
4404
+ "path": "jobs/insurance/premium-payment-due-reminder.yaml"
4405
+ },
2987
4406
  {
2988
4407
  "id": "preventive-maintenance-due-check",
2989
4408
  "version": 1,
@@ -3006,20 +4425,70 @@
3006
4425
  "claude",
3007
4426
  "codex"
3008
4427
  ],
3009
- "path": "jobs/manufacturing/preventive-maintenance-due-check.yaml"
4428
+ "path": "jobs/manufacturing/preventive-maintenance-due-check.yaml"
4429
+ },
4430
+ {
4431
+ "id": "production-line-downtime-watch",
4432
+ "version": 1,
4433
+ "name": "Production Line Downtime Watch",
4434
+ "description": "Checks how long a production line has been stopped and flags it once it crosses a threshold. Use this if a line has ever sat down far longer than anyone realized because the stoppage alert never made it to the right person.",
4435
+ "category": "manufacturing",
4436
+ "tags": [
4437
+ "manufacturing",
4438
+ "downtime",
4439
+ "production"
4440
+ ],
4441
+ "schedule": "*/15 * * * *",
4442
+ "timezone": "UTC",
4443
+ "runner": "shell",
4444
+ "modes": [
4445
+ "script"
4446
+ ],
4447
+ "compatible_agents": [
4448
+ "generic",
4449
+ "claude",
4450
+ "codex"
4451
+ ],
4452
+ "path": "jobs/manufacturing/production-line-downtime-watch.yaml"
4453
+ },
4454
+ {
4455
+ "id": "property-maintenance-inspection-reminder",
4456
+ "version": 1,
4457
+ "name": "Property Maintenance Inspection Reminder",
4458
+ "description": "Tracks when each property was last inspected and flags any that are due for their next routine walkthrough. Use this if a property has ever gone a year or more without a proper inspection because nothing forced anyone to schedule one.",
4459
+ "category": "realestate",
4460
+ "tags": [
4461
+ "realestate",
4462
+ "maintenance",
4463
+ "inspection",
4464
+ "property"
4465
+ ],
4466
+ "schedule": "0 8 * * 1",
4467
+ "timezone": "UTC",
4468
+ "runner": "shell",
4469
+ "modes": [
4470
+ "script"
4471
+ ],
4472
+ "compatible_agents": [
4473
+ "generic",
4474
+ "claude",
4475
+ "codex"
4476
+ ],
4477
+ "path": "jobs/realestate/property-maintenance-inspection-reminder.yaml"
3010
4478
  },
3011
4479
  {
3012
- "id": "production-line-downtime-watch",
4480
+ "id": "property-tax-deadline-reminder",
3013
4481
  "version": 1,
3014
- "name": "Production Line Downtime Watch",
3015
- "description": "Checks how long a production line has been stopped and flags it once it crosses a threshold. Use this if a line has ever sat down far longer than anyone realized because the stoppage alert never made it to the right person.",
3016
- "category": "manufacturing",
4482
+ "name": "Property Tax Deadline Reminder",
4483
+ "description": "Warns you before a property tax payment is due for a tracked property. Use this if a property tax bill has ever gone unpaid past the deadline because it arrived by mail and got buried, resulting in penalties or a lien risk.",
4484
+ "category": "realestate",
3017
4485
  "tags": [
3018
- "manufacturing",
3019
- "downtime",
3020
- "production"
4486
+ "realestate",
4487
+ "property-tax",
4488
+ "payment",
4489
+ "deadline"
3021
4490
  ],
3022
- "schedule": "*/15 * * * *",
4491
+ "schedule": "0 8 * * *",
3023
4492
  "timezone": "UTC",
3024
4493
  "runner": "shell",
3025
4494
  "modes": [
@@ -3030,7 +4499,7 @@
3030
4499
  "claude",
3031
4500
  "codex"
3032
4501
  ],
3033
- "path": "jobs/manufacturing/production-line-downtime-watch.yaml"
4502
+ "path": "jobs/realestate/property-tax-deadline-reminder.yaml"
3034
4503
  },
3035
4504
  {
3036
4505
  "id": "pto-balance-check",
@@ -3128,6 +4597,31 @@
3128
4597
  ],
3129
4598
  "path": "jobs/sales/quota-attainment-check.yaml"
3130
4599
  },
4600
+ {
4601
+ "id": "raw-material-shortage-risk-check",
4602
+ "version": 1,
4603
+ "name": "Raw Material Shortage Risk Check",
4604
+ "description": "Compares raw material stock against what the production schedule needs over the next planning window, and flags anything that'll run short. Use this if a production run has ever stalled mid-shift because a component ran out and nobody had cross-checked stock against the schedule beforehand.",
4605
+ "category": "manufacturing",
4606
+ "tags": [
4607
+ "manufacturing",
4608
+ "materials",
4609
+ "production-planning",
4610
+ "shortage"
4611
+ ],
4612
+ "schedule": "0 6 * * *",
4613
+ "timezone": "UTC",
4614
+ "runner": "shell",
4615
+ "modes": [
4616
+ "script"
4617
+ ],
4618
+ "compatible_agents": [
4619
+ "generic",
4620
+ "claude",
4621
+ "codex"
4622
+ ],
4623
+ "path": "jobs/manufacturing/raw-material-shortage-risk-check.yaml"
4624
+ },
3131
4625
  {
3132
4626
  "id": "reading-list-nudge",
3133
4627
  "version": 1,
@@ -3249,6 +4743,31 @@
3249
4743
  ],
3250
4744
  "path": "jobs/realestate/rental-vacancy-check.yaml"
3251
4745
  },
4746
+ {
4747
+ "id": "repair-order-aging-check",
4748
+ "version": 1,
4749
+ "name": "Repair Order Aging Check",
4750
+ "description": "Checks open repair orders and flags any vehicle that's been sitting in the shop past your target turnaround with no status update. Use this if a car has ever sat on a lift for days with no visible progress because it fell out of the technician's mental queue.",
4751
+ "category": "automotive",
4752
+ "tags": [
4753
+ "automotive",
4754
+ "repair-shop",
4755
+ "workflow",
4756
+ "aging"
4757
+ ],
4758
+ "schedule": "0 9 * * *",
4759
+ "timezone": "UTC",
4760
+ "runner": "shell",
4761
+ "modes": [
4762
+ "script"
4763
+ ],
4764
+ "compatible_agents": [
4765
+ "generic",
4766
+ "claude",
4767
+ "codex"
4768
+ ],
4769
+ "path": "jobs/automotive/repair-order-aging-check.yaml"
4770
+ },
3252
4771
  {
3253
4772
  "id": "repo-health-check",
3254
4773
  "version": 2,
@@ -3824,6 +5343,31 @@
3824
5343
  ],
3825
5344
  "path": "jobs/podcast/sponsor-deliverable-tracker.yaml"
3826
5345
  },
5346
+ {
5347
+ "id": "sponsorship-deliverable-tracker",
5348
+ "version": 1,
5349
+ "name": "Sponsorship Deliverable Tracker",
5350
+ "description": "Flags brand-deal deliverables (a video, post, story, or link placement) coming due across whatever platforms you post on. Use this if a sponsor has ever had to ask where their promised content was because the deadline only lived in an email thread from weeks ago.",
5351
+ "category": "creator",
5352
+ "tags": [
5353
+ "creator",
5354
+ "sponsorship",
5355
+ "brand-deal",
5356
+ "deliverable"
5357
+ ],
5358
+ "schedule": "0 9 * * *",
5359
+ "timezone": "UTC",
5360
+ "runner": "shell",
5361
+ "modes": [
5362
+ "script"
5363
+ ],
5364
+ "compatible_agents": [
5365
+ "generic",
5366
+ "claude",
5367
+ "codex"
5368
+ ],
5369
+ "path": "jobs/creator/sponsorship-deliverable-tracker.yaml"
5370
+ },
3827
5371
  {
3828
5372
  "id": "ssl-cert-expiry-check",
3829
5373
  "version": 1,
@@ -3849,6 +5393,31 @@
3849
5393
  ],
3850
5394
  "path": "jobs/devops/ssl-cert-expiry-check.yaml"
3851
5395
  },
5396
+ {
5397
+ "id": "staff-child-ratio-compliance-check",
5398
+ "version": 1,
5399
+ "name": "Staff-to-Child Ratio Compliance Check",
5400
+ "description": "Checks each classroom/group's staff-to-child ratio for the day against your licensing requirement and flags anything out of compliance. Use this if a ratio has ever slipped out of compliance mid-shift because someone called in sick and nobody recalculated the numbers.",
5401
+ "category": "childcare",
5402
+ "tags": [
5403
+ "childcare",
5404
+ "ratio",
5405
+ "compliance",
5406
+ "staffing"
5407
+ ],
5408
+ "schedule": "0 7,12 * * 1-5",
5409
+ "timezone": "UTC",
5410
+ "runner": "shell",
5411
+ "modes": [
5412
+ "script"
5413
+ ],
5414
+ "compatible_agents": [
5415
+ "generic",
5416
+ "claude",
5417
+ "codex"
5418
+ ],
5419
+ "path": "jobs/childcare/staff-child-ratio-compliance-check.yaml"
5420
+ },
3852
5421
  {
3853
5422
  "id": "staging-prod-config-diff",
3854
5423
  "version": 1,
@@ -3974,6 +5543,31 @@
3974
5543
  ],
3975
5544
  "path": "jobs/productivity/stale-todo-sweep.yaml"
3976
5545
  },
5546
+ {
5547
+ "id": "store-opening-checklist-reminder",
5548
+ "version": 1,
5549
+ "name": "Store Opening Checklist Reminder",
5550
+ "description": "Reminds the opening shift of the standard opening checklist every day, not just when a manager happens to be on site to run it from memory. Use this if the store has ever opened late, or opened with something missed (lights, POS not booted, signage not out), because the checklist lived only in one person's head.",
5551
+ "category": "retail",
5552
+ "tags": [
5553
+ "retail",
5554
+ "checklist",
5555
+ "opening",
5556
+ "operations"
5557
+ ],
5558
+ "schedule": "0 8 * * *",
5559
+ "timezone": "America/New_York",
5560
+ "runner": "shell",
5561
+ "modes": [
5562
+ "script"
5563
+ ],
5564
+ "compatible_agents": [
5565
+ "generic",
5566
+ "claude",
5567
+ "codex"
5568
+ ],
5569
+ "path": "jobs/retail/store-opening-checklist-reminder.yaml"
5570
+ },
3977
5571
  {
3978
5572
  "id": "stream-schedule-reminder",
3979
5573
  "version": 1,
@@ -3999,6 +5593,31 @@
3999
5593
  ],
4000
5594
  "path": "jobs/gaming/stream-schedule-reminder.yaml"
4001
5595
  },
5596
+ {
5597
+ "id": "subcontractor-insurance-expiry-check",
5598
+ "version": 1,
5599
+ "name": "Subcontractor Insurance (COI) Expiry Check",
5600
+ "description": "Checks tracked subcontractor certificates of insurance and warns before any expire. Use this if a sub has ever kept working on site after their COI lapsed, leaving the general contractor exposed if something went wrong.",
5601
+ "category": "construction",
5602
+ "tags": [
5603
+ "construction",
5604
+ "insurance",
5605
+ "compliance",
5606
+ "subcontractor"
5607
+ ],
5608
+ "schedule": "0 8 * * 1",
5609
+ "timezone": "UTC",
5610
+ "runner": "shell",
5611
+ "modes": [
5612
+ "script"
5613
+ ],
5614
+ "compatible_agents": [
5615
+ "generic",
5616
+ "claude",
5617
+ "codex"
5618
+ ],
5619
+ "path": "jobs/construction/subcontractor-insurance-expiry-check.yaml"
5620
+ },
4002
5621
  {
4003
5622
  "id": "subscriber-churn-watch",
4004
5623
  "version": 1,
@@ -4099,6 +5718,31 @@
4099
5718
  ],
4100
5719
  "path": "jobs/security/sudo-usage-audit.yaml"
4101
5720
  },
5721
+ {
5722
+ "id": "supplier-otd-performance-watch",
5723
+ "version": 1,
5724
+ "name": "Supplier On-Time Delivery Performance Watch",
5725
+ "description": "Tracks a supplier's on-time delivery rate over recent orders and flags it when performance drops below target. Use this if a supplier's reliability has ever quietly slipped for months before it showed up as a production delay bad enough to notice.",
5726
+ "category": "manufacturing",
5727
+ "tags": [
5728
+ "manufacturing",
5729
+ "supplier",
5730
+ "otd",
5731
+ "procurement"
5732
+ ],
5733
+ "schedule": "0 8 * * 1",
5734
+ "timezone": "UTC",
5735
+ "runner": "shell",
5736
+ "modes": [
5737
+ "script"
5738
+ ],
5739
+ "compatible_agents": [
5740
+ "generic",
5741
+ "claude",
5742
+ "codex"
5743
+ ],
5744
+ "path": "jobs/manufacturing/supplier-otd-performance-watch.yaml"
5745
+ },
4102
5746
  {
4103
5747
  "id": "tax-deadline-reminder",
4104
5748
  "version": 1,
@@ -4123,6 +5767,33 @@
4123
5767
  ],
4124
5768
  "path": "jobs/finance/tax-deadline-reminder.yaml"
4125
5769
  },
5770
+ {
5771
+ "id": "tax-loss-harvesting-review",
5772
+ "version": 1,
5773
+ "name": "Tax-Loss Harvesting Review",
5774
+ "description": "Checks your holdings for unrealized losses worth considering for tax-loss harvesting before year-end. Use this if you've ever realized in December that a position had been sitting at a loss all year and you never did anything about it for tax purposes.",
5775
+ "category": "investing",
5776
+ "tags": [
5777
+ "investing",
5778
+ "tax",
5779
+ "portfolio",
5780
+ "capital-gains"
5781
+ ],
5782
+ "schedule": "0 9 * * 1",
5783
+ "timezone": "America/New_York",
5784
+ "runner": "agent-prompt",
5785
+ "modes": [
5786
+ "agent-prompt"
5787
+ ],
5788
+ "compatible_agents": [
5789
+ "claude",
5790
+ "codex",
5791
+ "hermes",
5792
+ "openclaw",
5793
+ "generic"
5794
+ ],
5795
+ "path": "jobs/investing/tax-loss-harvesting-review.yaml"
5796
+ },
4126
5797
  {
4127
5798
  "id": "team-anniversary-reminder",
4128
5799
  "version": 1,
@@ -4195,6 +5866,33 @@
4195
5866
  ],
4196
5867
  "path": "jobs/support/ticket-backlog-aging-check.yaml"
4197
5868
  },
5869
+ {
5870
+ "id": "ticket-reopened-rate-watch",
5871
+ "version": 1,
5872
+ "name": "Ticket Reopened Rate Watch",
5873
+ "description": "Checks what percentage of closed tickets get reopened and flags it when the rate climbs — a quality signal that's different from SLA or backlog size. Use this if tickets have ever been closed to hit a metric and quietly bounced right back, without anyone tracking the reopen rate itself.",
5874
+ "category": "support",
5875
+ "tags": [
5876
+ "support",
5877
+ "tickets",
5878
+ "quality",
5879
+ "reopened"
5880
+ ],
5881
+ "schedule": "0 9 * * 1",
5882
+ "timezone": "UTC",
5883
+ "runner": "agent-prompt",
5884
+ "modes": [
5885
+ "agent-prompt"
5886
+ ],
5887
+ "compatible_agents": [
5888
+ "claude",
5889
+ "codex",
5890
+ "hermes",
5891
+ "openclaw",
5892
+ "generic"
5893
+ ],
5894
+ "path": "jobs/support/ticket-reopened-rate-watch.yaml"
5895
+ },
4198
5896
  {
4199
5897
  "id": "timezone-meeting-conflict-check",
4200
5898
  "version": 1,
@@ -4245,6 +5943,58 @@
4245
5943
  ],
4246
5944
  "path": "jobs/security/tls-cipher-weak-check.yaml"
4247
5945
  },
5946
+ {
5947
+ "id": "token-unlock-vesting-watch",
5948
+ "version": 1,
5949
+ "name": "Token Unlock/Vesting Watch",
5950
+ "description": "Checks for upcoming token unlock or vesting cliff dates for a project you're tracking and warns before a large unlock hits. Use this if a token has ever dropped sharply right after an unlock you didn't see coming.",
5951
+ "category": "crypto",
5952
+ "tags": [
5953
+ "crypto",
5954
+ "tokenomics",
5955
+ "vesting",
5956
+ "unlock"
5957
+ ],
5958
+ "schedule": "0 9 * * *",
5959
+ "timezone": "UTC",
5960
+ "runner": "agent-prompt",
5961
+ "modes": [
5962
+ "agent-prompt"
5963
+ ],
5964
+ "compatible_agents": [
5965
+ "claude",
5966
+ "codex",
5967
+ "hermes",
5968
+ "openclaw",
5969
+ "generic"
5970
+ ],
5971
+ "path": "jobs/crypto/token-unlock-vesting-watch.yaml"
5972
+ },
5973
+ {
5974
+ "id": "tournament-registration-deadline-check",
5975
+ "version": 1,
5976
+ "name": "Tournament Registration Deadline Check",
5977
+ "description": "Warns you before a tournament's registration window closes. Use this if you've ever missed signing up for a tournament because the deadline passed while you were heads-down practicing instead of checking dates.",
5978
+ "category": "gaming",
5979
+ "tags": [
5980
+ "gaming",
5981
+ "tournament",
5982
+ "esports",
5983
+ "deadline"
5984
+ ],
5985
+ "schedule": "0 9 * * *",
5986
+ "timezone": "UTC",
5987
+ "runner": "shell",
5988
+ "modes": [
5989
+ "script"
5990
+ ],
5991
+ "compatible_agents": [
5992
+ "generic",
5993
+ "claude",
5994
+ "codex"
5995
+ ],
5996
+ "path": "jobs/gaming/tournament-registration-deadline-check.yaml"
5997
+ },
4248
5998
  {
4249
5999
  "id": "trademark-renewal-reminder",
4250
6000
  "version": 1,
@@ -4320,6 +6070,31 @@
4320
6070
  ],
4321
6071
  "path": "jobs/growth/trial-expiring-nudge.yaml"
4322
6072
  },
6073
+ {
6074
+ "id": "tuition-payment-late-check",
6075
+ "version": 1,
6076
+ "name": "Tuition Payment Late Check",
6077
+ "description": "Flags families whose tuition payment is overdue past the grace period. Use this if a late payment has ever gone unnoticed for weeks because nobody was cross-checking the payment ledger against who'd actually paid.",
6078
+ "category": "childcare",
6079
+ "tags": [
6080
+ "childcare",
6081
+ "tuition",
6082
+ "payment",
6083
+ "billing"
6084
+ ],
6085
+ "schedule": "0 8 * * *",
6086
+ "timezone": "UTC",
6087
+ "runner": "shell",
6088
+ "modes": [
6089
+ "script"
6090
+ ],
6091
+ "compatible_agents": [
6092
+ "generic",
6093
+ "claude",
6094
+ "codex"
6095
+ ],
6096
+ "path": "jobs/childcare/tuition-payment-late-check.yaml"
6097
+ },
4323
6098
  {
4324
6099
  "id": "uptime-ping-check",
4325
6100
  "version": 1,
@@ -4344,6 +6119,31 @@
4344
6119
  ],
4345
6120
  "path": "jobs/devops/uptime-ping-check.yaml"
4346
6121
  },
6122
+ {
6123
+ "id": "vehicle-inspection-due-check",
6124
+ "version": 1,
6125
+ "name": "Vehicle State/DOT Inspection Due Check",
6126
+ "description": "Checks fleet vehicles against their state or DOT inspection due dates and warns before any lapse. Use this if a vehicle has ever gotten pulled off a job by an inspector because its inspection sticker quietly expired — separate from routine maintenance or registration renewal.",
6127
+ "category": "fleet",
6128
+ "tags": [
6129
+ "fleet",
6130
+ "inspection",
6131
+ "dot",
6132
+ "compliance"
6133
+ ],
6134
+ "schedule": "0 8 * * 1",
6135
+ "timezone": "UTC",
6136
+ "runner": "shell",
6137
+ "modes": [
6138
+ "script"
6139
+ ],
6140
+ "compatible_agents": [
6141
+ "generic",
6142
+ "claude",
6143
+ "codex"
6144
+ ],
6145
+ "path": "jobs/fleet/vehicle-inspection-due-check.yaml"
6146
+ },
4347
6147
  {
4348
6148
  "id": "vehicle-maintenance-due-check",
4349
6149
  "version": 1,