@wonsukchoi/crondex 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/README.md +31 -44
  2. package/catalog.json +8862 -1873
  3. package/jobs/automotive/ase-certification-expiry-check.yaml +36 -0
  4. package/jobs/automotive/csi-score-monitor.yaml +33 -0
  5. package/jobs/automotive/customer-pay-warranty-pay-mix-tracker.yaml +47 -0
  6. package/jobs/automotive/fi-product-attachment-rate-tracker.yaml +39 -0
  7. package/jobs/automotive/loaner-fleet-availability-check.yaml +40 -0
  8. package/jobs/automotive/manufacturer-recall-notice-check.yaml +39 -0
  9. package/jobs/automotive/parts-reorder-point-check.yaml +36 -0
  10. package/jobs/automotive/repair-cycle-time-trend-monitor.yaml +42 -0
  11. package/jobs/automotive/service-appointment-no-show-tracker.yaml +38 -0
  12. package/jobs/automotive/service-bay-utilization-check.yaml +38 -0
  13. package/jobs/automotive/shop-supply-reorder-check.yaml +31 -0
  14. package/jobs/automotive/trade-in-appraisal-variance-check.yaml +39 -0
  15. package/jobs/automotive/used-vehicle-inventory-aging-check.yaml +35 -0
  16. package/jobs/construction/critical-path-material-lead-time-review.yaml +43 -0
  17. package/jobs/construction/daily-jobsite-log-compliance-check.yaml +34 -0
  18. package/jobs/construction/equipment-utilization-cost-check.yaml +35 -0
  19. package/jobs/construction/heavy-equipment-inspection-compliance-check.yaml +34 -0
  20. package/jobs/construction/jobsite-safety-incident-near-miss-tracker.yaml +35 -0
  21. package/jobs/construction/lien-waiver-collection-tracker.yaml +27 -0
  22. package/jobs/construction/permit-application-approval-backlog-check.yaml +33 -0
  23. package/jobs/construction/project-budget-variance-check.yaml +34 -0
  24. package/jobs/construction/punch-list-completion-tracker.yaml +36 -0
  25. package/jobs/construction/retainage-holdback-release-tracker.yaml +33 -0
  26. package/jobs/construction/rfi-response-time-tracker.yaml +33 -0
  27. package/jobs/construction/subcontractor-pay-application-approval-tracker.yaml +35 -0
  28. package/jobs/construction/submittal-shop-drawing-review-check.yaml +45 -0
  29. package/jobs/construction/weather-delay-impact-log.yaml +44 -0
  30. package/jobs/ecommerce/affiliate-commission-payout-check.yaml +38 -0
  31. package/jobs/ecommerce/back-in-stock-notification-backlog-check.yaml +30 -0
  32. package/jobs/ecommerce/bundle-component-stock-mismatch-check.yaml +37 -0
  33. package/jobs/ecommerce/chargeback-fraud-risk-order-review.yaml +43 -0
  34. package/jobs/ecommerce/competitor-price-watch.yaml +60 -0
  35. package/jobs/ecommerce/economic-nexus-threshold-check.yaml +43 -0
  36. package/jobs/ecommerce/failed-payment-dunning-check.yaml +35 -0
  37. package/jobs/ecommerce/marketplace-listing-sync-drift-check.yaml +48 -0
  38. package/jobs/ecommerce/product-feed-health-check.yaml +35 -0
  39. package/jobs/ecommerce/purchase-order-overdue-check.yaml +32 -0
  40. package/jobs/ecommerce/storefront-ssl-domain-expiry-check.yaml +46 -0
  41. package/jobs/ecommerce/vip-tier-reclassification-check.yaml +55 -0
  42. package/jobs/ecommerce/wishlist-abandonment-check.yaml +37 -0
  43. package/jobs/education/chronic-absenteeism-tracker.yaml +34 -0
  44. package/jobs/education/department-budget-variance-check.yaml +37 -0
  45. package/jobs/education/enrollment-withdrawal-trend-tracker.yaml +39 -0
  46. package/jobs/education/facility-work-order-backlog-check.yaml +34 -0
  47. package/jobs/education/free-reduced-lunch-eligibility-renewal-check.yaml +36 -0
  48. package/jobs/education/iep-504-review-deadline-tracker.yaml +35 -0
  49. package/jobs/education/parent-teacher-conference-noshow-tracker.yaml +29 -0
  50. package/jobs/education/school-bus-route-ontime-check.yaml +40 -0
  51. package/jobs/education/standardized-test-registration-deadline-check.yaml +35 -0
  52. package/jobs/education/substitute-teacher-fill-rate-tracker.yaml +35 -0
  53. package/jobs/education/teacher-certification-expiry-tracker.yaml +35 -0
  54. package/jobs/education/textbook-inventory-shortage-check.yaml +32 -0
  55. package/jobs/finance/accounts-payable-aging-check.yaml +40 -0
  56. package/jobs/finance/bank-statement-reconciliation-check.yaml +40 -0
  57. package/jobs/finance/budget-vs-actual-variance-report.yaml +38 -0
  58. package/jobs/finance/contractor-1099-threshold-tracker.yaml +43 -0
  59. package/jobs/finance/credit-utilization-watch.yaml +40 -0
  60. package/jobs/finance/duplicate-payment-detection.yaml +43 -0
  61. package/jobs/finance/expense-report-compliance-check.yaml +46 -0
  62. package/jobs/finance/late-fee-interest-risk-check.yaml +43 -0
  63. package/jobs/finance/loan-covenant-compliance-check.yaml +37 -0
  64. package/jobs/finance/month-end-close-checklist-tracker.yaml +39 -0
  65. package/jobs/finance/multi-account-cash-position-rollup.yaml +45 -0
  66. package/jobs/finance/petty-cash-float-reconciliation.yaml +43 -0
  67. package/jobs/finance/quarterly-estimated-tax-calculator.yaml +66 -0
  68. package/jobs/finance/vendor-early-pay-discount-tracker.yaml +45 -0
  69. package/jobs/fleet/accident-incident-report-tracker.yaml +34 -0
  70. package/jobs/fleet/driver-mvr-review-tracker.yaml +34 -0
  71. package/jobs/fleet/driver-safety-score-monitor.yaml +39 -0
  72. package/jobs/fleet/ev-battery-health-check.yaml +36 -0
  73. package/jobs/fleet/fuel-efficiency-trend-monitor.yaml +33 -0
  74. package/jobs/fleet/geofence-violation-check.yaml +37 -0
  75. package/jobs/fleet/lease-return-condition-check.yaml +33 -0
  76. package/jobs/fleet/tire-wear-replacement-check.yaml +30 -0
  77. package/jobs/fleet/toll-violation-tracker.yaml +34 -0
  78. package/jobs/fleet/vehicle-pool-scheduling-conflict-check.yaml +37 -0
  79. package/jobs/fleet/vehicle-tco-tracker.yaml +41 -0
  80. package/jobs/fleet/vehicle-utilization-rate-check.yaml +37 -0
  81. package/jobs/growth/cohort-retention-curve-monitor.yaml +39 -0
  82. package/jobs/growth/customer-health-score-monitor.yaml +37 -0
  83. package/jobs/growth/dau-mau-engagement-ratio-check.yaml +39 -0
  84. package/jobs/growth/dormant-account-reactivation-check.yaml +39 -0
  85. package/jobs/growth/expansion-revenue-opportunity-tracker.yaml +44 -0
  86. package/jobs/growth/feature-adoption-rate-tracker.yaml +44 -0
  87. package/jobs/growth/nps-trend-tracker.yaml +40 -0
  88. package/jobs/growth/onboarding-funnel-dropoff-check.yaml +39 -0
  89. package/jobs/growth/paywall-upgrade-prompt-conversion-check.yaml +40 -0
  90. package/jobs/growth/product-qualified-lead-tracker.yaml +42 -0
  91. package/jobs/growth/referral-program-performance-tracker.yaml +35 -0
  92. package/jobs/growth/trial-to-paid-conversion-rate-tracker.yaml +48 -0
  93. package/jobs/growth/winback-reactivation-campaign-tracker.yaml +46 -0
  94. package/jobs/healthcare/appointment-slot-utilization-check.yaml +56 -0
  95. package/jobs/healthcare/claims-denial-resubmission-check.yaml +43 -0
  96. package/jobs/healthcare/clinical-supply-low-stock-check.yaml +30 -0
  97. package/jobs/healthcare/controlled-substance-inventory-reconciliation.yaml +42 -0
  98. package/jobs/healthcare/hipaa-access-log-audit.yaml +74 -0
  99. package/jobs/healthcare/patient-balance-collections-aging-check.yaml +41 -0
  100. package/jobs/healthcare/patient-immunization-schedule-check.yaml +41 -0
  101. package/jobs/healthcare/patient-portal-message-backlog-check.yaml +39 -0
  102. package/jobs/healthcare/patient-satisfaction-survey-tracking.yaml +59 -0
  103. package/jobs/healthcare/prescription-refill-request-backlog-check.yaml +38 -0
  104. package/jobs/healthcare/prior-authorization-expiry-check.yaml +53 -0
  105. package/jobs/healthcare/staff-cme-credit-tracking.yaml +41 -0
  106. package/jobs/healthcare/telehealth-session-issue-check.yaml +51 -0
  107. package/jobs/hospitality/adr-revpar-tracker.yaml +43 -0
  108. package/jobs/hospitality/cancellation-rate-spike-check.yaml +21 -0
  109. package/jobs/hospitality/group-booking-space-utilization-check.yaml +40 -0
  110. package/jobs/hospitality/guest-complaint-sla-tracker.yaml +34 -0
  111. package/jobs/hospitality/guest-satisfaction-score-monitor.yaml +41 -0
  112. package/jobs/hospitality/linen-inventory-turnover-check.yaml +35 -0
  113. package/jobs/hospitality/loyalty-points-reconciliation-check.yaml +33 -0
  114. package/jobs/hospitality/minibar-charge-reconciliation-check.yaml +38 -0
  115. package/jobs/hospitality/occupancy-forecast-variance-check.yaml +33 -0
  116. package/jobs/hospitality/ota-rate-parity-check.yaml +36 -0
  117. package/jobs/hospitality/overbooking-risk-alert.yaml +38 -0
  118. package/jobs/hospitality/room-maintenance-work-order-tracker.yaml +31 -0
  119. package/jobs/hospitality/upsell-upgrade-conversion-tracker.yaml +37 -0
  120. package/jobs/hr/aca-fte-threshold-monitor.yaml +44 -0
  121. package/jobs/hr/cobra-notification-deadline-tracker.yaml +47 -0
  122. package/jobs/hr/compliance-training-completion-check.yaml +41 -0
  123. package/jobs/hr/eeo1-filing-deadline-reminder.yaml +37 -0
  124. package/jobs/hr/handbook-acknowledgment-tracking.yaml +34 -0
  125. package/jobs/hr/headcount-budget-variance-check.yaml +37 -0
  126. package/jobs/hr/leave-of-absence-return-tracker.yaml +42 -0
  127. package/jobs/hr/org-chart-manager-drift-check.yaml +40 -0
  128. package/jobs/hr/pay-equity-band-outlier-check.yaml +58 -0
  129. package/jobs/hr/pto-year-end-use-it-or-lose-it-check.yaml +49 -0
  130. package/jobs/hr/retirement-plan-enrollment-deadline-check.yaml +40 -0
  131. package/jobs/hr/workers-comp-claim-status-check.yaml +42 -0
  132. package/jobs/insurance/adjuster-caseload-balance-check.yaml +45 -0
  133. package/jobs/insurance/agent-broker-license-expiry-tracker.yaml +40 -0
  134. package/jobs/insurance/cat-event-exposure-monitor.yaml +37 -0
  135. package/jobs/insurance/claims-aging-backlog-tracker.yaml +48 -0
  136. package/jobs/insurance/doi-filing-deadline-tracker.yaml +42 -0
  137. package/jobs/insurance/loss-ratio-by-line-monitor.yaml +43 -0
  138. package/jobs/insurance/policy-lapse-rate-monitor.yaml +41 -0
  139. package/jobs/insurance/premium-payment-delinquency-tracker.yaml +42 -0
  140. package/jobs/insurance/quote-to-bind-conversion-tracker.yaml +41 -0
  141. package/jobs/insurance/reinsurance-treaty-renewal-tracker.yaml +38 -0
  142. package/jobs/insurance/siu-fraud-referral-tracker.yaml +36 -0
  143. package/jobs/insurance/subrogation-recovery-tracker.yaml +41 -0
  144. package/jobs/insurance/underwriting-queue-sla-monitor.yaml +45 -0
  145. package/jobs/legal/conflict-of-interest-check-tracker.yaml +38 -0
  146. package/jobs/legal/corporate-minute-book-completeness-check.yaml +31 -0
  147. package/jobs/legal/data-privacy-request-deadline-tracker.yaml +61 -0
  148. package/jobs/legal/entity-authority-document-expiry-check.yaml +37 -0
  149. package/jobs/legal/legal-document-retention-purge-review.yaml +39 -0
  150. package/jobs/legal/litigation-hold-acknowledgment-tracker.yaml +40 -0
  151. package/jobs/legal/non-compete-expiry-tracker.yaml +37 -0
  152. package/jobs/legal/outside-counsel-invoice-budget-check.yaml +37 -0
  153. package/jobs/legal/settlement-payment-schedule-tracker.yaml +34 -0
  154. package/jobs/legal/timekeeper-billable-hours-compliance-check.yaml +39 -0
  155. package/jobs/legal/trademark-infringement-watch.yaml +43 -0
  156. package/jobs/legal/vendor-coi-expiry-tracker.yaml +37 -0
  157. package/jobs/logistics/3pl-performance-scorecard.yaml +45 -0
  158. package/jobs/logistics/bol-freight-class-accuracy-audit.yaml +33 -0
  159. package/jobs/logistics/cargo-insurance-claim-status-check.yaml +39 -0
  160. package/jobs/logistics/carrier-load-tender-acceptance-check.yaml +34 -0
  161. package/jobs/logistics/carrier-otd-performance-scorecard.yaml +41 -0
  162. package/jobs/logistics/carrier-rate-contract-renewal-check.yaml +35 -0
  163. package/jobs/logistics/cross-dock-dwell-time-watch.yaml +43 -0
  164. package/jobs/logistics/freight-invoice-rate-audit.yaml +38 -0
  165. package/jobs/logistics/fuel-surcharge-rate-monitor.yaml +40 -0
  166. package/jobs/logistics/international-shipment-documentation-check.yaml +36 -0
  167. package/jobs/logistics/linehaul-transit-time-variance-check.yaml +43 -0
  168. package/jobs/logistics/proof-of-delivery-reconciliation-check.yaml +38 -0
  169. package/jobs/logistics/route-load-optimization-check.yaml +32 -0
  170. package/jobs/manufacturing/changeover-time-tracker.yaml +29 -0
  171. package/jobs/manufacturing/critical-spare-parts-stock-check.yaml +29 -0
  172. package/jobs/manufacturing/first-pass-yield-report.yaml +37 -0
  173. package/jobs/manufacturing/lot-traceability-audit.yaml +37 -0
  174. package/jobs/manufacturing/non-conformance-report-backlog-check.yaml +34 -0
  175. package/jobs/manufacturing/oee-efficiency-check.yaml +37 -0
  176. package/jobs/manufacturing/osha-recordable-incident-audit.yaml +37 -0
  177. package/jobs/manufacturing/production-schedule-adherence-check.yaml +35 -0
  178. package/jobs/manufacturing/safety-certification-expiry-check.yaml +37 -0
  179. package/jobs/manufacturing/scrap-waste-rate-watch.yaml +33 -0
  180. package/jobs/manufacturing/shift-handoff-report.yaml +37 -0
  181. package/jobs/manufacturing/supplier-quality-ppm-watch.yaml +38 -0
  182. package/jobs/manufacturing/tooling-die-wear-check.yaml +31 -0
  183. package/jobs/manufacturing/work-order-backlog-check.yaml +37 -0
  184. package/jobs/marketing/ad-creative-fatigue-check.yaml +44 -0
  185. package/jobs/marketing/affiliate-partner-performance-check.yaml +38 -0
  186. package/jobs/marketing/attribution-discrepancy-check.yaml +42 -0
  187. package/jobs/marketing/brand-share-of-voice-check.yaml +43 -0
  188. package/jobs/marketing/campaign-roas-cpa-anomaly-check.yaml +41 -0
  189. package/jobs/marketing/competitor-ad-creative-watch.yaml +40 -0
  190. package/jobs/marketing/email-list-growth-rate-check.yaml +43 -0
  191. package/jobs/marketing/landing-page-conversion-drop-check.yaml +44 -0
  192. package/jobs/marketing/mql-to-sql-handoff-sla-check.yaml +29 -0
  193. package/jobs/marketing/mql-volume-pace-check.yaml +34 -0
  194. package/jobs/marketing/paid-search-negative-keyword-waste-check.yaml +37 -0
  195. package/jobs/marketing/press-release-pickup-tracking.yaml +32 -0
  196. package/jobs/marketing/webinar-registration-attendance-check.yaml +38 -0
  197. package/jobs/realestate/capital-reserve-fund-threshold-check.yaml +32 -0
  198. package/jobs/realestate/eviction-notice-deadline-tracker.yaml +37 -0
  199. package/jobs/realestate/landlord-insurance-claim-status-check.yaml +35 -0
  200. package/jobs/realestate/lease-renewal-offer-window-check.yaml +35 -0
  201. package/jobs/realestate/maintenance-request-sla-check.yaml +39 -0
  202. package/jobs/realestate/move-in-move-out-inspection-tracker.yaml +35 -0
  203. package/jobs/realestate/rent-increase-notice-deadline-check.yaml +54 -0
  204. package/jobs/realestate/rent-roll-vacancy-loss-report.yaml +32 -0
  205. package/jobs/realestate/rental-license-renewal-check.yaml +35 -0
  206. package/jobs/realestate/security-deposit-return-deadline-check.yaml +38 -0
  207. package/jobs/realestate/tenant-application-review-backlog-check.yaml +35 -0
  208. package/jobs/realestate/tenant-renters-insurance-compliance-check.yaml +35 -0
  209. package/jobs/realestate/utility-billback-reconciliation-check.yaml +41 -0
  210. package/jobs/restaurant/comp-void-anomaly-tracker.yaml +39 -0
  211. package/jobs/restaurant/daily-sales-flash-report.yaml +36 -0
  212. package/jobs/restaurant/delivery-platform-commission-reconciliation.yaml +33 -0
  213. package/jobs/restaurant/delivery-receiving-discrepancy-check.yaml +33 -0
  214. package/jobs/restaurant/food-handler-permit-expiry-tracker.yaml +33 -0
  215. package/jobs/restaurant/gift-card-liability-check.yaml +45 -0
  216. package/jobs/restaurant/kitchen-ticket-time-watch.yaml +38 -0
  217. package/jobs/restaurant/liquor-pour-cost-variance-check.yaml +34 -0
  218. package/jobs/restaurant/menu-86-frequency-tracker.yaml +39 -0
  219. package/jobs/restaurant/menu-item-profitability-check.yaml +33 -0
  220. package/jobs/restaurant/pos-end-of-day-reconciliation-check.yaml +31 -0
  221. package/jobs/restaurant/table-turnover-rate-tracker.yaml +36 -0
  222. package/jobs/restaurant/waitlist-conversion-check.yaml +37 -0
  223. package/jobs/retail/cash-office-deposit-variance-check.yaml +34 -0
  224. package/jobs/retail/competitor-price-monitoring-check.yaml +42 -0
  225. package/jobs/retail/damaged-merchandise-writeoff-tracker.yaml +41 -0
  226. package/jobs/retail/employee-discount-abuse-check.yaml +39 -0
  227. package/jobs/retail/layaway-special-order-pickup-tracker.yaml +33 -0
  228. package/jobs/retail/loyalty-enrollment-redemption-rate-tracker.yaml +37 -0
  229. package/jobs/retail/markdown-execution-audit-check.yaml +29 -0
  230. package/jobs/retail/planogram-compliance-audit-check.yaml +36 -0
  231. package/jobs/retail/pos-void-refund-anomaly-tracker.yaml +42 -0
  232. package/jobs/retail/price-tag-audit-accuracy-check.yaml +37 -0
  233. package/jobs/retail/sales-per-square-foot-tracker.yaml +36 -0
  234. package/jobs/retail/seasonal-staffing-coverage-check.yaml +35 -0
  235. package/jobs/retail/store-closing-checklist-compliance-check.yaml +32 -0
  236. package/jobs/retail/visual-merchandising-compliance-check.yaml +40 -0
  237. package/jobs/sales/champion-departure-watch.yaml +44 -0
  238. package/jobs/sales/closed-lost-reason-audit.yaml +42 -0
  239. package/jobs/sales/commission-payout-tracker.yaml +32 -0
  240. package/jobs/sales/contract-renewal-opportunity-tracker.yaml +28 -0
  241. package/jobs/sales/discount-approval-pending-check.yaml +31 -0
  242. package/jobs/sales/forecast-submission-compliance-check.yaml +42 -0
  243. package/jobs/sales/multi-year-renewal-escalation-tracker.yaml +31 -0
  244. package/jobs/sales/pipeline-hygiene-audit.yaml +26 -0
  245. package/jobs/sales/poc-trial-conversion-tracker.yaml +29 -0
  246. package/jobs/sales/referral-followup-tracker.yaml +40 -0
  247. package/jobs/sales/territory-coverage-gap-check.yaml +43 -0
  248. package/jobs/veterinary/appointment-no-show-rate-tracker.yaml +49 -0
  249. package/jobs/veterinary/boarding-kennel-capacity-utilization-check.yaml +39 -0
  250. package/jobs/veterinary/client-payment-plan-delinquency-check.yaml +36 -0
  251. package/jobs/veterinary/dvm-license-dea-registration-expiry-check.yaml +41 -0
  252. package/jobs/veterinary/microchip-registration-verification-check.yaml +40 -0
  253. package/jobs/veterinary/patient-record-completeness-audit.yaml +41 -0
  254. package/jobs/veterinary/pet-medication-refill-backlog-check.yaml +36 -0
  255. package/jobs/veterinary/puppy-kitten-vaccine-series-compliance-check.yaml +39 -0
  256. package/jobs/veterinary/senior-pet-wellness-recall-tracker.yaml +43 -0
  257. package/jobs/veterinary/spay-neuter-followup-compliance-check.yaml +35 -0
  258. package/jobs/veterinary/specialist-referral-followup-check.yaml +38 -0
  259. package/jobs/veterinary/surgical-schedule-utilization-check.yaml +36 -0
  260. package/jobs/veterinary/vet-staff-ce-credit-tracking.yaml +36 -0
  261. package/jobs/warehousing/conveyor-sortation-downtime-watch.yaml +48 -0
  262. package/jobs/warehousing/labor-productivity-rate-check.yaml +33 -0
  263. package/jobs/warehousing/mhe-preventive-maintenance-check.yaml +38 -0
  264. package/jobs/warehousing/order-fulfillment-sla-watch.yaml +42 -0
  265. package/jobs/warehousing/shift-headcount-coverage-check.yaml +33 -0
  266. package/jobs/warehousing/slotting-velocity-review-check.yaml +44 -0
  267. package/jobs/warehousing/warehouse-damage-writeoff-review.yaml +41 -0
  268. package/jobs/warehousing/warehouse-near-miss-incident-rate-watch.yaml +47 -0
  269. package/jobs/warehousing/warehouse-space-utilization-check.yaml +39 -0
  270. package/jobs/warehousing/wave-pick-batch-efficiency-check.yaml +33 -0
  271. package/jobs/warehousing/wms-integration-error-check.yaml +36 -0
  272. package/jobs/warehousing/yard-trailer-detention-watch.yaml +41 -0
  273. package/lib/category-descriptions.js +12 -12
  274. package/lib/duplicates-allowlist.js +15 -0
  275. package/package.json +2 -2
@@ -0,0 +1,35 @@
1
+ id: failed-payment-dunning-check
2
+ version: 1
3
+ name: Failed Payment Dunning Check
4
+ description: >
5
+ Checks recurring/subscription orders with a failed payment and flags
6
+ ones that have been retrying too long without success, so you can step
7
+ in before the customer silently churns. Use this if a subscriber has
8
+ ever stayed on "payment failed" for weeks with nobody following up,
9
+ quietly costing you recurring revenue.
10
+ category: ecommerce
11
+ tags: [ecommerce, subscriptions, payments, dunning, churn]
12
+ schedule: "0 9 * * *"
13
+ timezone: "UTC"
14
+ runner: shell
15
+ command: >
16
+ awk -F',' -v max_days="{{max_retry_days}}" -v max_attempts="{{max_retry_attempts}}" '
17
+ NR==1 {next}
18
+ $2 == "failed" {
19
+ if ($3+0 >= max_days || $4+0 >= max_attempts) {
20
+ printf "NEEDS ACTION: subscription %s — %d days failing, %d retry attempts\n", $1, $3, $4;
21
+ }
22
+ }
23
+ ' "{{subscriptions_csv_path}}"
24
+ variables:
25
+ subscriptions_csv_path:
26
+ default: "./subscriptions.csv"
27
+ description: "Path to a CSV with columns: subscription_id,status (failed/active),days_since_first_failure,retry_attempt_count."
28
+ max_retry_days:
29
+ default: 7
30
+ description: Days a subscription can sit in failed-payment status before it needs a manual touch (update card, human outreach, or cancel).
31
+ max_retry_attempts:
32
+ default: 4
33
+ description: Number of automatic retry attempts before it needs a manual touch instead of another silent retry.
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: This flags when automatic dunning has run its course — pair with an actual outreach step (email, SMS, or account pause) since the job itself only identifies who needs it.
@@ -0,0 +1,48 @@
1
+ id: marketplace-listing-sync-drift-check
2
+ version: 1
3
+ name: Marketplace Listing Sync Drift Check
4
+ description: >
5
+ Compares price and stock on your source-of-truth catalog against what's
6
+ actually live on a marketplace (Amazon, eBay, Etsy) and flags any SKU
7
+ that's drifted out of sync. Use this if a marketplace listing has ever
8
+ shown a stale price or "in stock" on an item you'd already sold out of
9
+ on your own store, because the sync job silently failed.
10
+ category: ecommerce
11
+ tags: [ecommerce, marketplace, sync, inventory, pricing]
12
+ schedule: "0 */4 * * *"
13
+ timezone: "UTC"
14
+ runner: shell
15
+ command: >
16
+ awk -F',' '
17
+ FNR==NR {
18
+ if (FNR==1) {next}
19
+ truth_price[$1]=$2; truth_stock[$1]=$3; next
20
+ }
21
+ {
22
+ if (FNR==1) {next}
23
+ sku=$1; mkt_price=$2; mkt_stock=$3; marketplace=$4;
24
+ if (sku in truth_price) {
25
+ price_diff = truth_price[sku] - mkt_price; if (price_diff < 0) price_diff = -price_diff;
26
+ if (price_diff > {{price_tolerance_usd}}) {
27
+ printf "PRICE DRIFT: %s on %s — source: $%.2f, listed: $%.2f\n", sku, marketplace, truth_price[sku], mkt_price;
28
+ }
29
+ if ((truth_stock[sku]+0 <= 0) != (mkt_stock+0 <= 0)) {
30
+ printf "STOCK DRIFT: %s on %s — source stock: %s, listed stock: %s\n", sku, marketplace, truth_stock[sku], mkt_stock;
31
+ }
32
+ } else {
33
+ printf "UNMATCHED SKU: %s on %s not found in source-of-truth catalog\n", sku, marketplace;
34
+ }
35
+ }
36
+ ' "{{source_of_truth_csv_path}}" "{{marketplace_export_csv_path}}"
37
+ variables:
38
+ source_of_truth_csv_path:
39
+ default: "./catalog-source-of-truth.csv"
40
+ description: "Path to a CSV with columns: sku,price,stock — your own store's authoritative price/stock."
41
+ marketplace_export_csv_path:
42
+ default: "./marketplace-listings.csv"
43
+ description: "Path to a CSV export with columns: sku,listed_price,listed_stock,marketplace — one row per live listing per marketplace."
44
+ price_tolerance_usd:
45
+ default: 1.00
46
+ description: Acceptable price difference in dollars between source and marketplace before flagging drift.
47
+ compatible_agents: [generic, claude, codex]
48
+ notes: Requires both exports to use the same SKU values — normalize SKU formatting on export if a marketplace mangles it (e.g. adds a prefix).
@@ -0,0 +1,35 @@
1
+ id: product-feed-health-check
2
+ version: 1
3
+ name: Product Feed Health Check
4
+ description: >
5
+ Scans your product catalog export for listings that are live but broken
6
+ in some way — missing title, missing description, missing image, a
7
+ zero/blank price, or marked out-of-stock while still visible to
8
+ shoppers. Use this if a product has ever sat on your storefront for
9
+ weeks with a broken image or a $0 price because nobody was checking
10
+ feed quality after the initial upload.
11
+ category: ecommerce
12
+ tags: [ecommerce, product-feed, seo, catalog, data-quality]
13
+ schedule: "0 5 * * *"
14
+ timezone: "UTC"
15
+ runner: shell
16
+ command: >
17
+ awk -F',' '
18
+ NR==1 {next}
19
+ {
20
+ sku=$1; title=$2; description=$3; image_url=$4; price=$5; in_stock=$6; visible=$7;
21
+ issues="";
22
+ if (title == "") issues = issues "missing title; ";
23
+ if (description == "") issues = issues "missing description; ";
24
+ if (image_url == "") issues = issues "missing image; ";
25
+ if (price+0 <= 0) issues = issues "zero/blank price; ";
26
+ if (in_stock == "false" && visible == "true") issues = issues "out-of-stock but still visible; ";
27
+ if (issues != "") printf "ISSUE: %s — %s\n", sku, issues;
28
+ }
29
+ ' "{{product_feed_csv_path}}"
30
+ variables:
31
+ product_feed_csv_path:
32
+ default: "./product-feed.csv"
33
+ description: "Path to a CSV export with columns: sku,title,description,image_url,price,in_stock(true/false),visible(true/false)."
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: Export this from whatever generates your storefront/Google Shopping feed on a schedule — the checks are only as fresh as the export. Distinct from `low-stock-reorder-alert`, which tracks stock levels, not listing data quality.
@@ -0,0 +1,32 @@
1
+ id: purchase-order-overdue-check
2
+ version: 1
3
+ name: Purchase Order Overdue Check
4
+ description: >
5
+ Checks open purchase orders to suppliers against their expected
6
+ delivery date and flags anything that hasn't arrived on time. Use this
7
+ if a supplier has ever gone quiet on a PO and you only found out stock
8
+ wasn't coming when you were already out of the item.
9
+ category: ecommerce
10
+ tags: [ecommerce, purchase-orders, suppliers, inventory]
11
+ schedule: "0 7 * * *"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ today=$(date +%s);
16
+ awk -F',' -v today="$today" '
17
+ NR==1 {next}
18
+ $4 == "pending" {
19
+ cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
20
+ cmd | getline expected_epoch; close(cmd);
21
+ if (today > expected_epoch) {
22
+ overdue_days = (today - expected_epoch) / 86400;
23
+ printf "OVERDUE PO: %s from %s — expected %s (%d days late)\n", $1, $2, $3, overdue_days;
24
+ }
25
+ }
26
+ ' "{{purchase_orders_csv_path}}"
27
+ variables:
28
+ purchase_orders_csv_path:
29
+ default: "./purchase-orders.csv"
30
+ description: "Path to a CSV with columns: po_id,supplier_name,expected_delivery_date (YYYY-MM-DD),status (pending/received)."
31
+ compatible_agents: [generic, claude, codex]
32
+ notes: Mark a PO "received" as soon as stock lands so this only ever flags genuinely overdue orders. Distinct from `low-stock-reorder-alert` (decides when to place an order) and `shipping-delay-check` (tracks outbound orders to customers) — this tracks inbound supplier orders after they've been placed.
@@ -0,0 +1,46 @@
1
+ id: storefront-ssl-domain-expiry-check
2
+ version: 1
3
+ name: Storefront SSL & Domain Expiry Check
4
+ description: >
5
+ Checks your storefront's SSL certificate and domain registration expiry
6
+ dates and flags anything expiring soon. Use this if your store has ever
7
+ gone down — or thrown a scary browser security warning at checkout —
8
+ because an SSL cert or domain renewal quietly lapsed.
9
+ category: ecommerce
10
+ tags: [ecommerce, ssl, domain, uptime, infrastructure]
11
+ schedule: "0 6 * * 1"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ domain="{{storefront_domain}}";
16
+ warn_days="{{warn_days}}";
17
+ cert_end=$(echo | openssl s_client -servername "$domain" -connect "$domain":443 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2);
18
+ if [ -n "$cert_end" ]; then
19
+ cert_epoch=$(date -d "$cert_end" +%s 2>/dev/null || date -j -f "%b %d %T %Y %Z" "$cert_end" +%s 2>/dev/null);
20
+ now_epoch=$(date +%s);
21
+ cert_days_left=$(( (cert_epoch - now_epoch) / 86400 ));
22
+ if [ "$cert_days_left" -le "$warn_days" ]; then
23
+ echo "SSL WARNING: cert for $domain expires in $cert_days_left days ($cert_end)";
24
+ fi;
25
+ else
26
+ echo "ERROR: could not read SSL cert for $domain";
27
+ fi;
28
+ domain_end=$(whois "$domain" 2>/dev/null | grep -iE "registry expiry|expiration date" | head -n1 | sed -E 's/.*: *//');
29
+ if [ -n "$domain_end" ]; then
30
+ dom_epoch=$(date -d "$domain_end" +%s 2>/dev/null);
31
+ if [ -n "$dom_epoch" ]; then
32
+ dom_days_left=$(( (dom_epoch - now_epoch) / 86400 ));
33
+ if [ "$dom_days_left" -le "$warn_days" ]; then
34
+ echo "DOMAIN WARNING: $domain registration expires in $dom_days_left days ($domain_end)";
35
+ fi;
36
+ fi;
37
+ fi
38
+ variables:
39
+ storefront_domain:
40
+ default: "example.com"
41
+ description: The domain your storefront is served from (no protocol/path).
42
+ warn_days:
43
+ default: 21
44
+ description: Days before SSL cert or domain expiry to start warning.
45
+ compatible_agents: [generic, claude, codex]
46
+ notes: Requires `openssl` and `whois` on the runner; whois output format varies by registrar/TLD, so treat a missing DOMAIN WARNING line as inconclusive rather than "all clear" and spot-check manually a few times after setup.
@@ -0,0 +1,55 @@
1
+ id: vip-tier-reclassification-check
2
+ version: 1
3
+ name: VIP Tier Reclassification Check
4
+ description: >
5
+ Checks each customer's year-to-date spend against your VIP tier
6
+ thresholds and flags anyone due to move up or down a tier, drafting a
7
+ short outreach note for new upgrades. Use this if a top customer has
8
+ ever crossed your VIP spend threshold months ago and never got the
9
+ perks (or the acknowledgment) because nobody was tracking tier
10
+ crossings.
11
+ category: ecommerce
12
+ tags: [ecommerce, vip, customers, ltv, segmentation]
13
+ schedule: "0 8 1 * *"
14
+ timezone: "UTC"
15
+ runner: hybrid
16
+ command: >
17
+ awk -F',' -v gold="{{gold_threshold_usd}}" -v platinum="{{platinum_threshold_usd}}" '
18
+ NR==1 {next}
19
+ {
20
+ customer=$1; spend=$2; current_tier=$3;
21
+ new_tier = "standard";
22
+ if (spend+0 >= platinum) new_tier = "platinum";
23
+ else if (spend+0 >= gold) new_tier = "gold";
24
+ if (new_tier != current_tier) {
25
+ printf "TIER CHANGE: %s — %s -> %s (YTD spend $%.2f)\n", customer, current_tier, new_tier, spend;
26
+ }
27
+ }
28
+ ' "{{customers_csv_path}}"
29
+ prompt: |
30
+ The script above compared each customer's YTD spend to the VIP tier
31
+ thresholds and listed everyone whose tier should change.
32
+ 1. For each upgrade (moving to a higher tier), draft a short, warm
33
+ note acknowledging the milestone and naming the specific new perk
34
+ they've unlocked.
35
+ 2. For each downgrade, just list it plainly — no outreach needed, this
36
+ is usually just for internal tracking/perk removal timing.
37
+ 3. Group the final output into "Upgrades (draft ready)" and
38
+ "Downgrades (no action needed)".
39
+ script_note: >
40
+ `command` gives you the raw list of who crossed a threshold in either
41
+ direction, at zero token cost. `prompt` adds the human touch: a
42
+ genuine, specific congratulations note for upgrades instead of a
43
+ generic template, which is the part worth spending tokens on.
44
+ variables:
45
+ customers_csv_path:
46
+ default: "./customer-ytd-spend.csv"
47
+ description: "Path to a CSV with columns: customer_name,ytd_spend_usd,current_tier (standard/gold/platinum)."
48
+ gold_threshold_usd:
49
+ default: 500
50
+ description: YTD spend at or above which a customer qualifies for gold tier.
51
+ platinum_threshold_usd:
52
+ default: 2000
53
+ description: YTD spend at or above which a customer qualifies for platinum tier.
54
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
55
+ notes: Distinct from `loyalty-points-expiry-reminder` in retail, which tracks points balances expiring — this tracks total spend against tier thresholds, independent of any points program.
@@ -0,0 +1,37 @@
1
+ id: wishlist-abandonment-check
2
+ version: 1
3
+ name: Wishlist Abandonment Check
4
+ description: >
5
+ Checks customer wishlists for items that have sat untouched for a while
6
+ and drafts a nudge email when there's a real reason to reach out — a
7
+ price drop or the item is back in stock — instead of a generic
8
+ "you still want this?" reminder. Use this if you've ever had a wishlist
9
+ feature that quietly collects intent and never converts any of it back
10
+ into a sale.
11
+ category: ecommerce
12
+ tags: [ecommerce, wishlist, recovery, conversion, sales]
13
+ schedule: "0 11 * * 1"
14
+ timezone: "UTC"
15
+ runner: agent-prompt
16
+ prompt: |
17
+ Check {{store_platform}} for wishlist items added at least
18
+ {{min_days_on_wishlist}} days ago that are still in the customer's
19
+ wishlist (not purchased).
20
+ 1. For each, check whether the item's price has dropped or it went
21
+ from out-of-stock to in-stock since it was wishlisted.
22
+ 2. Only draft an outreach email for items with one of those real
23
+ triggers — skip items where nothing has changed, since a nudge with
24
+ no news performs worse than no email at all.
25
+ 3. Draft a short, specific email per triggered item: name the item, the
26
+ specific change (price/stock), and a clear link back to it.
27
+ 4. Report how many wishlist items were checked, how many had a real
28
+ trigger, and how many drafts were produced.
29
+ variables:
30
+ store_platform:
31
+ default: "your storefront platform"
32
+ description: Name of the e-commerce platform with wishlist data (e.g. "Shopify", "WooCommerce").
33
+ min_days_on_wishlist:
34
+ default: 14
35
+ description: Minimum days an item must have sat on a wishlist before it's eligible for a re-engagement check.
36
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
37
+ notes: Draft-only — review before sending, and confirm your platform's marketing-consent rules cover wishlist-triggered email. Distinct from `abandoned-cart-recovery-check`, which targets items already added to an active cart; this targets earlier-funnel intent that never reached checkout, and only fires on a real trigger rather than time elapsed alone.
@@ -0,0 +1,34 @@
1
+ id: chronic-absenteeism-tracker
2
+ version: 1
3
+ name: Chronic Absenteeism Tracker
4
+ description: >
5
+ Calculates each student's missed-day percentage for the term and flags
6
+ anyone crossing the chronic-absenteeism threshold. Use this if a student
7
+ has ever quietly racked up enough missed days to count as chronically
8
+ absent before anyone outside the attendance office noticed.
9
+ category: education
10
+ tags: [education, attendance, chronic-absenteeism, students]
11
+ schedule: "0 8 * * 1"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ awk -F',' -v threshold="{{chronic_threshold_pct}}" '
16
+ NR==1 {next}
17
+ {
18
+ enrolled = $2; absent = $3;
19
+ if (enrolled <= 0) next;
20
+ pct = (absent / enrolled) * 100;
21
+ if (pct >= threshold) {
22
+ printf "CHRONIC: %s — %d/%d days missed (%.1f%%)\n", $1, absent, enrolled, pct;
23
+ }
24
+ }
25
+ ' "{{attendance_csv_path}}"
26
+ variables:
27
+ attendance_csv_path:
28
+ default: "./term-attendance.csv"
29
+ description: "Path to a CSV with columns: student_name,enrolled_days,absent_days."
30
+ chronic_threshold_pct:
31
+ default: 10
32
+ description: Percentage of enrolled days missed that counts as chronically absent (10% is the common federal benchmark).
33
+ compatible_agents: [generic, claude, codex]
34
+ notes: This looks at the whole term to date, unlike attendance-anomaly-check which flags a short-term drop — the two catch different problems.
@@ -0,0 +1,37 @@
1
+ id: department-budget-variance-check
2
+ version: 1
3
+ name: Department Budget Variance Check
4
+ description: >
5
+ Compares each department's or program's actual spending against its
6
+ budget and flags meaningful overages or underspend. Use this if a
7
+ department has ever blown through its annual budget months early
8
+ because nobody was checking actual-vs-budget until year-end
9
+ reconciliation.
10
+ category: education
11
+ tags: [education, budget, finance, departments]
12
+ schedule: "0 8 1 * *"
13
+ timezone: "UTC"
14
+ runner: agent-prompt
15
+ prompt: |
16
+ Review department/program budget vs. actual spending from
17
+ {{finance_system_hint}} for the current fiscal year to date.
18
+ 1. For each department or program, compute spend as a percentage of its
19
+ annual budget and compare that to the expected percentage of the
20
+ fiscal year elapsed.
21
+ 2. Flag departments running more than {{variance_threshold_pct}}
22
+ percentage points ahead of pace (overspend risk) or behind pace
23
+ (possible underspend, use-it-or-lose-it risk, or a stalled
24
+ initiative).
25
+ 3. Note any single large transactions that materially explain a
26
+ variance, if visible in the data.
27
+ 4. Summarize so budget owners can adjust spending or reforecast before
28
+ the next reporting cycle.
29
+ variables:
30
+ finance_system_hint:
31
+ default: "your district finance/ERP system"
32
+ description: Where budget and actuals data lives.
33
+ variance_threshold_pct:
34
+ default: 15
35
+ description: Percentage-point gap between spend pace and time-elapsed pace that counts as worth flagging.
36
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
37
+ notes: This tracks department/program-level spending, not headcount or payroll cost, which HR budget jobs already cover separately.
@@ -0,0 +1,39 @@
1
+ id: enrollment-withdrawal-trend-tracker
2
+ version: 1
3
+ name: Enrollment/Withdrawal Trend Tracker
4
+ description: >
5
+ Reviews new enrollments and withdrawals over time and flags a school or
6
+ grade level that's losing students faster than usual. Use this if
7
+ enrollment decline has ever gone unnoticed for a semester because
8
+ individual withdrawals looked routine one at a time.
9
+ category: education
10
+ tags: [education, enrollment, students, trends]
11
+ schedule: "0 8 1 * *"
12
+ timezone: "UTC"
13
+ runner: agent-prompt
14
+ prompt: |
15
+ Review enrollment and withdrawal records from {{sis_hint}} for the last
16
+ {{lookback_months}} months.
17
+ 1. Calculate net enrollment change by school and by grade level over the
18
+ window.
19
+ 2. Flag any school or grade with a withdrawal rate above
20
+ {{withdrawal_rate_threshold_pct}}%, or a net enrollment decline that's
21
+ unusual compared to the same period in prior years if that data is
22
+ available.
23
+ 3. Where withdrawal reasons are recorded, summarize the most common ones
24
+ (moved out of district, transferred to another school, homeschooling,
25
+ etc.) to help spot a pattern worth addressing versus normal mobility.
26
+ 4. Summarize findings for administration, since sustained enrollment
27
+ decline affects staffing and funding decisions.
28
+ variables:
29
+ sis_hint:
30
+ default: "your student information system"
31
+ description: Where enrollment and withdrawal records live.
32
+ lookback_months:
33
+ default: 6
34
+ description: How many months of enrollment history to review.
35
+ withdrawal_rate_threshold_pct:
36
+ default: 8
37
+ description: Withdrawal rate percentage that counts as worth flagging.
38
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
39
+ notes: No generic script mode — SIS platforms and how they record withdrawal reasons vary too widely to assume a common export format.
@@ -0,0 +1,34 @@
1
+ id: facility-work-order-backlog-check
2
+ version: 1
3
+ name: Facility Work Order Backlog Check
4
+ description: >
5
+ Reviews open facility maintenance work orders and flags the ones that
6
+ have been sitting too long, especially safety-related requests. Use
7
+ this if a maintenance ticket has ever gone stale for weeks until it
8
+ turned into a bigger, more expensive problem.
9
+ category: education
10
+ tags: [education, facilities, maintenance, work-orders]
11
+ schedule: "0 8 * * 1"
12
+ timezone: "UTC"
13
+ runner: agent-prompt
14
+ prompt: |
15
+ Review open facility work orders from {{facilities_system_hint}}.
16
+ 1. List every work order still open after {{stale_days}} days, with its
17
+ school/building, description, and age.
18
+ 2. Call out anything that reads as a safety or code issue (electrical,
19
+ HVAC failure in occupied spaces, structural, fire/life-safety,
20
+ accessibility) separately from routine cosmetic or convenience
21
+ requests — those need different urgency.
22
+ 3. Group the remaining backlog by building so facilities staff can see
23
+ where the workload is concentrated.
24
+ 4. Summarize counts and the oldest few tickets so leadership can decide
25
+ where to add capacity or reprioritize.
26
+ variables:
27
+ facilities_system_hint:
28
+ default: "your facilities/maintenance ticketing system"
29
+ description: Where work orders are tracked.
30
+ stale_days:
31
+ default: 14
32
+ description: Days a work order can stay open before it's counted as backlog.
33
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
34
+ notes: No generic script mode — facilities/maintenance ticketing systems vary too widely for a single export format.
@@ -0,0 +1,36 @@
1
+ id: free-reduced-lunch-eligibility-renewal-check
2
+ version: 1
3
+ name: Free/Reduced Lunch Eligibility Renewal Check
4
+ description: >
5
+ Checks free/reduced meal eligibility records for approvals that are
6
+ about to expire and flags families who need to renew. Use this if a
7
+ student has ever lost meal benefits mid-year because their eligibility
8
+ lapsed and nobody sent a renewal reminder in time.
9
+ category: education
10
+ tags: [education, meals, eligibility, compliance]
11
+ schedule: "0 8 1 * *"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ awk -F',' -v warnDays="{{warn_days}}" '
16
+ NR==1 {next}
17
+ $3 == "no" {next}
18
+ {
19
+ cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
20
+ cmd | getline exp_epoch; close(cmd);
21
+ "date +%s" | getline now_epoch; close("date +%s");
22
+ days_left = (exp_epoch - now_epoch) / 86400;
23
+ if (days_left <= warnDays) {
24
+ printf "%s: %s eligibility expires %s (%d days)\n", (days_left < 0 ? "EXPIRED" : "RENEW SOON"), $1, $2, days_left;
25
+ }
26
+ }
27
+ ' "{{eligibility_csv_path}}"
28
+ variables:
29
+ eligibility_csv_path:
30
+ default: "./meal-eligibility.csv"
31
+ description: "Path to a CSV with columns: student_name,expiration_date (YYYY-MM-DD),active (yes/no)."
32
+ warn_days:
33
+ default: 21
34
+ description: Days before expiration to start warning, giving families time to resubmit paperwork.
35
+ compatible_agents: [generic, claude, codex]
36
+ notes: Route renewal notices through whatever family-communication channel the district already uses for meal program paperwork.
@@ -0,0 +1,35 @@
1
+ id: iep-504-review-deadline-tracker
2
+ version: 1
3
+ name: IEP/504 Review Deadline Tracker
4
+ description: >
5
+ Checks upcoming IEP and 504 plan review deadlines and flags any that are
6
+ close or already past due. Use this if a required review has ever slipped
7
+ past its compliance deadline because it wasn't on anyone's calendar until
8
+ a parent or auditor asked about it.
9
+ category: education
10
+ tags: [education, iep, 504-plan, compliance, deadlines]
11
+ schedule: "0 8 * * 1"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ awk -F',' -v warnDays="{{warn_days}}" '
16
+ NR==1 {next}
17
+ {
18
+ cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
19
+ cmd | getline due_epoch; close(cmd);
20
+ "date +%s" | getline now_epoch; close("date +%s");
21
+ days_left = (due_epoch - now_epoch) / 86400;
22
+ if (days_left <= warnDays) {
23
+ printf "%s: %s review due %s (%d days)\n", (days_left < 0 ? "OVERDUE" : "DUE SOON"), $1, $2, days_left;
24
+ }
25
+ }
26
+ ' "{{plans_csv_path}}"
27
+ variables:
28
+ plans_csv_path:
29
+ default: "./iep-504-plans.csv"
30
+ description: "Path to a CSV with columns: student_name,next_review_due (YYYY-MM-DD)."
31
+ warn_days:
32
+ default: 14
33
+ description: Days before the review deadline to start warning.
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: These deadlines are legally mandated in most jurisdictions — treat overdue results as urgent, not routine.
@@ -0,0 +1,29 @@
1
+ id: parent-teacher-conference-noshow-tracker
2
+ version: 1
3
+ name: Parent-Teacher Conference No-Show Tracker
4
+ description: >
5
+ Checks scheduled parent-teacher conferences against attendance and flags
6
+ no-shows for follow-up. Use this if a family has ever missed a
7
+ conference slot and nobody rescheduled it, especially for a student
8
+ where that conversation actually mattered.
9
+ category: education
10
+ tags: [education, parent-engagement, conferences]
11
+ schedule: "0 17 * * 1-5"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ noshows=$(awk -F',' 'NR>1 && $4=="no-show" {print $1" (with "$2", "$3")"}' "{{conferences_csv_path}}");
16
+ count=$(echo "$noshows" | grep -c . || true);
17
+ if [ "$count" -gt 0 ]; then
18
+ echo "NO-SHOWS TO FOLLOW UP:";
19
+ echo "$noshows";
20
+ exit 1;
21
+ else
22
+ echo "OK: no unaddressed conference no-shows";
23
+ fi
24
+ variables:
25
+ conferences_csv_path:
26
+ default: "./conference-schedule.csv"
27
+ description: "Path to a CSV with columns: student_name,parent_name,teacher_name,status (attended, no-show, rescheduled)."
28
+ compatible_agents: [generic, claude, codex]
29
+ notes: Mark a no-show as rescheduled once a follow-up slot is booked, or it will keep showing up here.
@@ -0,0 +1,40 @@
1
+ id: school-bus-route-ontime-check
2
+ version: 1
3
+ name: School Bus Route On-Time Check
4
+ description: >
5
+ Reviews bus route arrival data and flags routes that are consistently
6
+ running late. Use this if a route has ever drifted later and later over
7
+ weeks with only individual parent complaints, never a pattern anyone
8
+ actually looked at.
9
+ category: education
10
+ tags: [education, transportation, bus-routes]
11
+ schedule: "0 16 * * 1-5"
12
+ timezone: "UTC"
13
+ runner: agent-prompt
14
+ prompt: |
15
+ Review bus arrival/departure data from {{transportation_system_hint}} for
16
+ the last {{lookback_days}} days.
17
+ 1. For each route, compare actual arrival times against the scheduled
18
+ times at each stop.
19
+ 2. Flag any route that was late by more than {{late_threshold_min}}
20
+ minutes on {{repeat_occurrences}} or more days in the window —
21
+ one bad day is noise, a pattern is a scheduling or staffing problem.
22
+ 3. For flagged routes, note whether the lateness looks tied to a specific
23
+ stop, time of day, or driver, since that changes what the fix is.
24
+ 4. Summarize findings so transportation staff can adjust schedules or
25
+ staffing before it becomes a parent-complaint pattern.
26
+ variables:
27
+ transportation_system_hint:
28
+ default: "your bus/transportation tracking system"
29
+ description: Where route timing data lives (GPS tracker, dispatch software, etc.).
30
+ lookback_days:
31
+ default: 10
32
+ description: How many school days of route data to review.
33
+ late_threshold_min:
34
+ default: 10
35
+ description: Minutes past scheduled time that counts as late.
36
+ repeat_occurrences:
37
+ default: 3
38
+ description: Number of late days within the window that counts as a pattern worth flagging.
39
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
40
+ notes: No generic script mode — bus tracking/GPS systems vary too widely to assume a common export format.
@@ -0,0 +1,35 @@
1
+ id: standardized-test-registration-deadline-check
2
+ version: 1
3
+ name: Standardized Test Registration Deadline Check
4
+ description: >
5
+ Warns before the registration cutoff for a standardized test (state
6
+ assessment, AP, SAT, etc.). Use this if a student has ever missed the
7
+ window to register for a test because the deadline landed during a busy
8
+ stretch of the term and nobody flagged it in advance.
9
+ category: education
10
+ tags: [education, testing, deadlines]
11
+ schedule: "0 8 * * *"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ today=$(date +%s);
16
+ due_ts=$(date -d "{{registration_deadline}}" +%s 2>/dev/null || date -jf "%Y-%m-%d" "{{registration_deadline}}" +%s);
17
+ days_left=$(( (due_ts - today) / 86400 ));
18
+ if [ "$days_left" -le "{{warn_days}}" ] && [ "$days_left" -ge 0 ]; then
19
+ echo "WARNING: {{test_name}} registration closes in $days_left days ({{registration_deadline}})";
20
+ exit 1;
21
+ else
22
+ echo "OK: {{test_name}} registration closes in $days_left days";
23
+ fi
24
+ variables:
25
+ test_name:
26
+ default: "state standardized assessment"
27
+ description: Name of the test whose registration window this tracks.
28
+ registration_deadline:
29
+ default: "2026-12-15"
30
+ description: Registration cutoff date (YYYY-MM-DD).
31
+ warn_days:
32
+ default: 10
33
+ description: Days before the deadline to start warning.
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: Run one instance per test/deadline you need to track — AP, SAT, and state assessments usually have different windows.
@@ -0,0 +1,35 @@
1
+ id: substitute-teacher-fill-rate-tracker
2
+ version: 1
3
+ name: Substitute Teacher Fill Rate Tracker
4
+ description: >
5
+ Compares substitute requests against how many were actually filled and
6
+ flags days or schools with a low fill rate. Use this if classes have
7
+ ever gone uncovered because nobody was tracking whether sub requests
8
+ were actually getting filled.
9
+ category: education
10
+ tags: [education, staffing, substitute-teachers]
11
+ schedule: "0 6 * * 1-5"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ awk -F',' -v minRate="{{min_fill_rate_pct}}" '
16
+ NR==1 {next}
17
+ { requested[$1] += 1; if ($3 == "filled") filled[$1] += 1; }
18
+ END {
19
+ for (school in requested) {
20
+ rate = (filled[school] / requested[school]) * 100;
21
+ if (rate < minRate) {
22
+ printf "LOW FILL RATE: %s — %.1f%% (%d/%d requests filled)\n", school, rate, filled[school], requested[school];
23
+ }
24
+ }
25
+ }
26
+ ' "{{sub_requests_csv_path}}"
27
+ variables:
28
+ sub_requests_csv_path:
29
+ default: "./sub-requests.csv"
30
+ description: "Path to a CSV with columns: school,request_date,status (filled or unfilled)."
31
+ min_fill_rate_pct:
32
+ default: 85
33
+ description: Fill rate percentage below which a school is flagged.
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: Run this early in the morning before the school day starts so unfilled slots can still be covered.