@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,44 @@
1
+ id: expansion-revenue-opportunity-tracker
2
+ version: 1
3
+ name: Expansion Revenue Opportunity Tracker
4
+ description: >
5
+ Reviews usage-based consumption (API calls, storage, records processed,
6
+ etc.) against each account's plan allowance and flags accounts
7
+ regularly running over, before it becomes a support complaint about
8
+ being throttled. Use this if the first sign of an account outgrowing
9
+ its plan is a "why did my job fail" ticket instead of a proactive
10
+ expansion conversation.
11
+ category: growth
12
+ tags: [growth, expansion, upsell, usage-based]
13
+ schedule: "0 9 * * 1"
14
+ timezone: "UTC"
15
+ runner: agent-prompt
16
+ prompt: |
17
+ Pull consumption metrics (e.g. API calls, storage used, records
18
+ processed — whatever your plan limits are metered on) for each paying
19
+ account from {{usage_source}} over the last {{lookback_days}} days.
20
+ 1. Compare each account's usage against its plan's included allowance.
21
+ 2. Flag accounts that exceeded the allowance, or came within
22
+ {{near_limit_pct}}% of it, on {{repeat_occurrences}} or more days in
23
+ the window.
24
+ 3. List flagged accounts with their overage amount and current plan, so
25
+ the account owner can start an expansion conversation.
26
+ variables:
27
+ usage_source:
28
+ default: "your metering/billing system or usage database"
29
+ description: Where consumption/usage-metering data lives.
30
+ lookback_days:
31
+ default: 30
32
+ description: Window of usage to evaluate.
33
+ near_limit_pct:
34
+ default: 90
35
+ description: Percent of plan allowance that counts as "near the limit."
36
+ repeat_occurrences:
37
+ default: 3
38
+ description: Number of days within the window an account must hit/near the limit to be flagged.
39
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
40
+ notes: >
41
+ No generic script mode — usage-metering schemas vary too much per
42
+ product to hardcode a query. Distinct from seat-utilization-upsell-check
43
+ (seat-count based) — this looks at metered/consumption-based usage
44
+ instead of seat count, since not every plan is priced per seat.
@@ -0,0 +1,44 @@
1
+ id: feature-adoption-rate-tracker
2
+ version: 1
3
+ name: Feature Adoption Rate Tracker
4
+ description: >
5
+ Tracks what percent of active accounts have used a specific feature at
6
+ least once, and flags when adoption is stuck below target. Use this if
7
+ you shipped a feature, called it done, and never actually checked
8
+ whether anyone uses it.
9
+ category: growth
10
+ tags: [growth, feature-adoption, activation, product]
11
+ schedule: "0 9 1 * *"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ file={{accounts_csv_path}}; feature="{{feature_column}}"; target={{target_adoption_pct}};
16
+ [ -f "$file" ] || { echo "ERROR: $file not found"; exit 1; };
17
+ header=$(head -1 "$file");
18
+ col=$(echo "$header" | tr ',' '\n' | grep -nx "$feature" | cut -d: -f1);
19
+ [ -n "$col" ] || { echo "ERROR: column $feature not found in $file"; exit 1; };
20
+ total=0; used=0;
21
+ tail -n +2 "$file" | while IFS=',' read -ra row; do
22
+ total=$((total+1));
23
+ val="${row[$((col-1))]}";
24
+ [ "$val" = "yes" ] || [ "$val" = "1" ] || [ "$val" = "true" ] && used=$((used+1));
25
+ echo "$total $used";
26
+ done | tail -1 | { read -r t u;
27
+ pct=$(awk "BEGIN{printf \"%.1f\", ($u/$t)*100}");
28
+ echo "Feature adoption for $feature: $u/$t accounts (${pct}%)";
29
+ if awk "BEGIN{exit !($pct < $target)}"; then echo "WARNING: adoption below target (${target}%)"; exit 1; fi;
30
+ }
31
+ variables:
32
+ accounts_csv_path:
33
+ default: "./account-feature-usage.csv"
34
+ description: "Path to a CSV with an account identifier column plus one column per tracked feature (yes/no, 1/0, or true/false)."
35
+ feature_column:
36
+ default: "used_new_dashboard"
37
+ description: Column name for the feature to check adoption of.
38
+ target_adoption_pct:
39
+ default: 30
40
+ description: Minimum adoption percent expected before flagging as behind.
41
+ compatible_agents: [generic, claude, codex]
42
+ notes: >
43
+ Zero-token. You export account-feature-usage.csv from your product
44
+ analytics tool (one boolean column per feature you want to track).
@@ -0,0 +1,40 @@
1
+ id: nps-trend-tracker
2
+ version: 1
3
+ name: NPS Trend Tracker
4
+ description: >
5
+ Computes Net Promoter Score from a survey response log and flags when
6
+ it drops meaningfully from the prior period. Use this if NPS only gets
7
+ looked at once a quarter in a slide, instead of catching a slide in
8
+ sentiment while there's still time to find out why.
9
+ category: growth
10
+ tags: [growth, nps, sentiment, retention]
11
+ schedule: "0 9 1 * *"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ file={{nps_responses_csv_path}}; drop_threshold={{drop_threshold_points}};
16
+ [ -f "$file" ] || { echo "ERROR: $file not found"; exit 1; };
17
+ total=$(tail -n +2 "$file" | wc -l | tr -d ' ');
18
+ if [ "$total" -eq 0 ]; then echo "No NPS responses recorded in $file"; exit 0; fi;
19
+ promoters=$(tail -n +2 "$file" | awk -F',' '$2>=9 {c++} END{print c+0}');
20
+ detractors=$(tail -n +2 "$file" | awk -F',' '$2<=6 {c++} END{print c+0}');
21
+ nps=$(awk "BEGIN{printf \"%.0f\", (($promoters-$detractors)/$total)*100}");
22
+ prev={{previous_nps_score}};
23
+ drop=$((prev - nps));
24
+ echo "NPS: $nps (from $total responses; $promoters promoters, $detractors detractors) — previous: $prev";
25
+ if [ "$drop" -ge "$drop_threshold" ]; then echo "WARNING: NPS dropped $drop points since last period"; exit 1; fi
26
+ variables:
27
+ nps_responses_csv_path:
28
+ default: "./nps-responses.csv"
29
+ description: "Path to a CSV with header: respondent_email,score (score is 0-10)."
30
+ previous_nps_score:
31
+ default: 40
32
+ description: NPS score from the prior period, to compare against (update after each run).
33
+ drop_threshold_points:
34
+ default: 10
35
+ description: Point drop in NPS from the previous period that triggers a warning.
36
+ compatible_agents: [generic, claude, codex]
37
+ notes: >
38
+ Zero-token. Export nps-responses.csv from your survey tool (Delighted,
39
+ Wootric, or your own in-app survey) and update previous_nps_score after
40
+ each run to track period-over-period movement.
@@ -0,0 +1,39 @@
1
+ id: onboarding-funnel-dropoff-check
2
+ version: 1
3
+ name: Onboarding Funnel Drop-off Check
4
+ description: >
5
+ Computes the step-by-step completion rate across your onboarding funnel
6
+ and flags whichever step is losing the most users. Use this if you know
7
+ onboarding completion isn't great but have never actually seen where in
8
+ the funnel people give up.
9
+ category: growth
10
+ tags: [growth, onboarding, funnel, activation]
11
+ schedule: "0 9 * * 1"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ file={{funnel_csv_path}}; drop_threshold={{step_dropoff_threshold_pct}};
16
+ [ -f "$file" ] || { echo "ERROR: $file not found"; exit 1; };
17
+ prev_count=0; prev_step="start";
18
+ tail -n +2 "$file" | while IFS=',' read -r step count; do
19
+ if [ "$prev_count" -gt 0 ]; then
20
+ drop_pct=$(awk "BEGIN{printf \"%.1f\", (($prev_count-$count)/$prev_count)*100}");
21
+ flag="";
22
+ awk "BEGIN{exit !($drop_pct >= $drop_threshold)}" && flag=" <-- HIGH DROP-OFF";
23
+ echo "$prev_step -> $step: $prev_count -> $count (-${drop_pct}%)$flag";
24
+ fi;
25
+ prev_count=$count; prev_step=$step;
26
+ done
27
+ variables:
28
+ funnel_csv_path:
29
+ default: "./onboarding-funnel.csv"
30
+ description: "Path to a CSV with header: step,users_reached, ordered from first onboarding step to last, one row per step."
31
+ step_dropoff_threshold_pct:
32
+ default: 30
33
+ description: Step-over-step drop percent that flags a step as a major leak.
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: >
36
+ Zero-token. Export onboarding-funnel.csv from your product analytics
37
+ tool's funnel report. Distinct from onboarding-completion-stall-check
38
+ (flags individual users stuck on a step) — this looks at aggregate
39
+ step-to-step drop-off across the whole funnel instead.
@@ -0,0 +1,40 @@
1
+ id: paywall-upgrade-prompt-conversion-check
2
+ version: 1
3
+ name: Paywall/Upgrade Prompt Conversion Check
4
+ description: >
5
+ Reviews how often users who hit a paywall or upgrade prompt actually
6
+ convert, and flags prompts that are being seen a lot but converting
7
+ poorly. Use this if an upgrade prompt has ever quietly annoyed users for
8
+ months with a near-zero conversion rate and nobody looked at the
9
+ numbers until a redesign project asked "does this even work?"
10
+ category: growth
11
+ tags: [growth, paywall, upgrade-prompt, conversion, product-led-growth]
12
+ schedule: "0 9 * * 1"
13
+ timezone: "UTC"
14
+ runner: agent-prompt
15
+ prompt: |
16
+ Pull paywall/upgrade-prompt impression and conversion data from
17
+ {{analytics_hint}} for the last {{lookback_days}} days, broken down by
18
+ prompt location or trigger (e.g. feature-gate modal, usage-limit
19
+ banner, pricing page CTA).
20
+ 1. Compute the view-to-upgrade conversion rate for each prompt.
21
+ 2. Flag any prompt with {{min_impressions}}+ impressions but a
22
+ conversion rate under {{min_conversion_rate_pct}}%.
23
+ 3. For flagged prompts, suggest likely causes based on what's visible
24
+ (wrong audience being shown the prompt, unclear value proposition,
25
+ price shown too early, friction in the upgrade flow itself).
26
+ variables:
27
+ analytics_hint:
28
+ default: "product analytics tool (e.g. Amplitude, Mixpanel, PostHog)"
29
+ description: Where paywall/upgrade-prompt impression and conversion events are tracked.
30
+ lookback_days:
31
+ default: 30
32
+ description: Window of prompt data to evaluate.
33
+ min_impressions:
34
+ default: 100
35
+ description: Minimum impressions a prompt needs before its conversion rate is judged.
36
+ min_conversion_rate_pct:
37
+ default: 2
38
+ description: Conversion rate percent below which a well-seen prompt gets flagged.
39
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
40
+ notes: No generic script mode — diagnosing why a specific prompt underconverts needs judgment about UX and audience, not just a rate comparison.
@@ -0,0 +1,42 @@
1
+ id: product-qualified-lead-tracker
2
+ version: 1
3
+ name: Product-Qualified Lead (PQL) Tracker
4
+ description: >
5
+ Reviews free/trial users' in-product usage for signals that they're
6
+ ready for a sales conversation — hitting usage limits, inviting
7
+ teammates, using premium-gated features — and flags them as PQLs. Use
8
+ this if self-serve users who are clearly ready to buy only get noticed
9
+ when they email support asking how to upgrade.
10
+ category: growth
11
+ tags: [growth, pql, product-led-growth, activation]
12
+ schedule: "0 9 * * 2"
13
+ timezone: "UTC"
14
+ runner: agent-prompt
15
+ prompt: |
16
+ Review usage data for free/trial accounts from {{analytics_hint}} over
17
+ the last {{lookback_days}} days.
18
+ 1. Identify accounts showing buying-intent signals: approaching or
19
+ hitting a usage limit, inviting {{team_invite_threshold}}+ teammates,
20
+ repeatedly hitting a paywalled/premium feature, or a sustained
21
+ increase in core-feature usage.
22
+ 2. Score each candidate account as a PQL if it shows two or more of
23
+ these signals.
24
+ 3. List PQLs ranked by signal strength, with which signals triggered
25
+ the flag, so sales/success can prioritize outreach.
26
+ variables:
27
+ analytics_hint:
28
+ default: "product analytics tool (e.g. Amplitude, Mixpanel, PostHog)"
29
+ description: Where in-product usage data lives.
30
+ lookback_days:
31
+ default: 14
32
+ description: Window of usage activity to evaluate.
33
+ team_invite_threshold:
34
+ default: 2
35
+ description: Number of teammate invites within the window that counts as a buying-intent signal.
36
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
37
+ notes: >
38
+ No generic script mode — combining multiple usage signals into a
39
+ qualification judgment needs reasoning about the product's specific
40
+ activation moments. Distinct from marketing's MQL jobs (marketing-sourced
41
+ leads from campaigns/forms) — this looks at existing free/trial users'
42
+ in-product behavior instead.
@@ -0,0 +1,35 @@
1
+ id: referral-program-performance-tracker
2
+ version: 1
3
+ name: Referral Program Performance Tracker
4
+ description: >
5
+ Computes referral-to-signup and referral-to-paid conversion rates from
6
+ a referral log and flags when the program's performance drops. Use this
7
+ if a referral program launched with fanfare and nobody has checked its
8
+ numbers since.
9
+ category: growth
10
+ tags: [growth, referrals, virality, conversion]
11
+ schedule: "0 9 * * 1"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ file={{referrals_csv_path}}; min_rate={{min_conversion_rate_pct}};
16
+ [ -f "$file" ] || { echo "ERROR: $file not found"; exit 1; };
17
+ total=$(tail -n +2 "$file" | wc -l | tr -d ' ');
18
+ converted=$(tail -n +2 "$file" | awk -F',' '$3=="paid" {c++} END{print c+0}');
19
+ signed_up=$(tail -n +2 "$file" | awk -F',' '$3=="signed_up" || $3=="paid" {c++} END{print c+0}');
20
+ if [ "$total" -eq 0 ]; then echo "No referrals recorded in $file"; exit 0; fi;
21
+ signup_rate=$(awk "BEGIN{printf \"%.1f\", ($signed_up/$total)*100}");
22
+ paid_rate=$(awk "BEGIN{printf \"%.1f\", ($converted/$total)*100}");
23
+ echo "Referral performance: $total referrals, ${signup_rate}% signed up, ${paid_rate}% converted to paid";
24
+ if awk "BEGIN{exit !($paid_rate < $min_rate)}"; then echo "WARNING: referral-to-paid rate below ${min_rate}%"; exit 1; fi
25
+ variables:
26
+ referrals_csv_path:
27
+ default: "./referrals.csv"
28
+ description: "Path to a CSV with header: referral_id,referrer_email,status (status is one of: pending,signed_up,paid)."
29
+ min_conversion_rate_pct:
30
+ default: 10
31
+ description: Minimum acceptable referral-to-paid conversion rate percent.
32
+ compatible_agents: [generic, claude, codex]
33
+ notes: >
34
+ Zero-token. Export referrals.csv from your referral program tool
35
+ (ReferralCandy, Rewardful, or your own tracking table).
@@ -0,0 +1,48 @@
1
+ id: trial-to-paid-conversion-rate-tracker
2
+ version: 1
3
+ name: Trial-to-Paid Conversion Rate Tracker
4
+ description: >
5
+ Computes the trial-to-paid conversion rate for recently-ended trial
6
+ cohorts and can summarize what's changed if the rate moves. Use this if
7
+ trial conversion rate is a number that only gets calculated by hand
8
+ once a quarter for a board deck, instead of being watched continuously.
9
+ category: growth
10
+ tags: [growth, trials, conversion, activation]
11
+ schedule: "0 9 1 * *"
12
+ timezone: "UTC"
13
+ runner: hybrid
14
+ command: >
15
+ file={{trials_csv_path}}; min_rate={{min_conversion_rate_pct}};
16
+ [ -f "$file" ] || { echo "ERROR: $file not found"; exit 1; };
17
+ ended=$(tail -n +2 "$file" | awk -F',' '$2=="ended" {c++} END{print c+0}');
18
+ converted=$(tail -n +2 "$file" | awk -F',' '$2=="converted" {c++} END{print c+0}');
19
+ total=$((ended+converted));
20
+ if [ "$total" -eq 0 ]; then echo "No ended trials recorded in $file"; exit 0; fi;
21
+ rate=$(awk "BEGIN{printf \"%.1f\", ($converted/$total)*100}");
22
+ echo "Trial-to-paid conversion: $converted/$total (${rate}%)";
23
+ if awk "BEGIN{exit !($rate < $min_rate)}"; then echo "WARNING: conversion rate below ${min_rate}%"; exit 1; fi
24
+ prompt: |
25
+ The trial-to-paid conversion rate for the recent trial cohort in
26
+ {{trials_csv_path}} is below {{min_conversion_rate_pct}}%.
27
+ 1. Look at the trials that ended without converting and note any
28
+ pattern visible in the data (e.g. low usage before expiry, specific
29
+ plan tier, signup source).
30
+ 2. Suggest one or two concrete follow-ups (e.g. targeted win-back
31
+ outreach, a longer trial for a specific segment) based on what the
32
+ data shows.
33
+ script_note: >
34
+ `command` computes the trial-to-paid conversion rate with zero tokens
35
+ and flags if it's below target. `prompt` (only needed when the rate is
36
+ flagged) digs into why and suggests a fix, which needs judgment.
37
+ variables:
38
+ trials_csv_path:
39
+ default: "./trial-outcomes.csv"
40
+ description: "Path to a CSV with header: user_email,outcome (outcome is 'ended' for trials that expired without converting or 'converted' for trials that became paid)."
41
+ min_conversion_rate_pct:
42
+ default: 15
43
+ description: Minimum acceptable trial-to-paid conversion rate percent.
44
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
45
+ notes: >
46
+ Distinct from trial-expiring-nudge (per-user nudge before expiry) —
47
+ this tracks the aggregate conversion rate after trials have already
48
+ ended, as a health metric rather than an outreach trigger.
@@ -0,0 +1,46 @@
1
+ id: winback-reactivation-campaign-tracker
2
+ version: 1
3
+ name: Win-Back Reactivation Campaign Tracker
4
+ description: >
5
+ Tracks how canceled customers targeted by a win-back campaign are
6
+ responding, and can draft the next outreach touch for non-responders.
7
+ Use this if a win-back campaign has ever gone out once and then nobody
8
+ followed up with the customers who didn't respond.
9
+ category: growth
10
+ tags: [growth, winback, reactivation, churn]
11
+ schedule: "0 9 * * 1"
12
+ timezone: "UTC"
13
+ runner: hybrid
14
+ command: >
15
+ file={{winback_csv_path}}; wait_days={{followup_wait_days}};
16
+ [ -f "$file" ] || { echo "ERROR: $file not found"; exit 1; };
17
+ today=$(date +%s);
18
+ tail -n +2 "$file" | while IFS=',' read -r email canceled_date sent_date status; do
19
+ [ "$status" = "reactivated" ] || [ "$status" = "declined" ] && continue;
20
+ s_epoch=$(date -d "$sent_date" +%s 2>/dev/null || date -j -f "%Y-%m-%d" "$sent_date" +%s 2>/dev/null);
21
+ [ -z "$s_epoch" ] && continue;
22
+ days=$(( (today-s_epoch)/86400 ));
23
+ if [ "$days" -ge "$wait_days" ]; then echo "NO RESPONSE: $email — canceled $canceled_date, win-back sent $days day(s) ago"; fi
24
+ done
25
+ prompt: |
26
+ For each customer flagged as "NO RESPONSE" (from {{winback_csv_path}},
27
+ win-back email sent {{followup_wait_days}}+ days ago with no reply):
28
+ 1. Draft a short, low-pressure follow-up touch — a different angle than
29
+ the first email (e.g. a specific improvement made since they left,
30
+ or a direct ask for feedback on why they canceled).
31
+ 2. Keep it under 100 words. Don't send — draft only.
32
+ script_note: >
33
+ `command` lists which canceled customers were sent a win-back email and
34
+ haven't responded, zero tokens. `prompt` drafts the follow-up touch for
35
+ each, which needs judgment on tone and angle.
36
+ variables:
37
+ winback_csv_path:
38
+ default: "./winback-campaign.csv"
39
+ description: "Path to a CSV with header: email,canceled_date,winback_sent_date,status (status is one of: sent,reactivated,declined)."
40
+ followup_wait_days:
41
+ default: 10
42
+ description: Days to wait after the win-back email before flagging for a follow-up touch.
43
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
44
+ notes: >
45
+ You maintain winback-campaign.csv yourself (update status as customers
46
+ respond) — doesn't integrate with any CRM/ESP directly.
@@ -0,0 +1,56 @@
1
+ id: appointment-slot-utilization-check
2
+ version: 1
3
+ name: Appointment Slot Utilization and Schedule Gap Check
4
+ description: >
5
+ Computes daily/weekly appointment slot utilization from the schedule and
6
+ flags days running well under capacity, then suggests what to do about
7
+ the gaps. Use this if provider schedules have ever had large unbooked
8
+ gaps that nobody noticed until the day arrived nearly empty, wasting
9
+ billable capacity that a recall push or same-day-opening alert could
10
+ have filled.
11
+ category: healthcare
12
+ tags: [healthcare, scheduling, utilization, operations, capacity]
13
+ schedule: "0 16 * * 5"
14
+ timezone: "America/New_York"
15
+ runner: hybrid
16
+ command: >
17
+ awk -F',' -v threshold="{{low_utilization_threshold_pct}}" '
18
+ NR==1 {next}
19
+ {
20
+ total += $2; booked += $3;
21
+ pct = ($2 > 0) ? ($3 / $2 * 100) : 0;
22
+ if (pct < threshold) {
23
+ printf "LOW UTILIZATION: %s — %d/%d slots booked (%.1f%%)\n", $1, $3, $2, pct;
24
+ }
25
+ }
26
+ END {
27
+ overall = (total > 0) ? (booked / total * 100) : 0;
28
+ printf "WEEK OVERALL: %d/%d slots booked (%.1f%%)\n", booked, total, overall;
29
+ }
30
+ ' "{{schedule_utilization_csv_path}}"
31
+ prompt: |
32
+ Look at the low-utilization days and overall weekly rate flagged above
33
+ (from {{schedule_utilization_csv_path}}).
34
+ 1. Note which specific days/providers are consistently under
35
+ {{low_utilization_threshold_pct}}% booked versus a one-off dip.
36
+ 2. For consistently low days, suggest a concrete fix: a targeted recall
37
+ push (see patient-recall-reminder) for that provider's open slots, a
38
+ schedule consolidation (fewer open days, more density), or a same-day
39
+ opening alert to a waitlist — whichever fits the pattern.
40
+ 3. Keep it to a short, actionable list — this is a capacity-planning
41
+ nudge, not a full operations review.
42
+ variables:
43
+ schedule_utilization_csv_path:
44
+ default: "./schedule-utilization.csv"
45
+ description: "Path to a CSV with columns: date_or_provider_day,total_slots,booked_slots."
46
+ low_utilization_threshold_pct:
47
+ default: 70
48
+ description: Utilization percentage below which a day is flagged as under capacity.
49
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
50
+ script_note: >
51
+ The command gives you the per-day and weekly utilization percentages for free.
52
+ Only the prompt pass distinguishes a one-off dip from a real pattern and
53
+ recommends a specific fix — that judgment call is what the LLM pass adds.
54
+ notes: >
55
+ Assumes an already-exported CSV from your scheduling/practice-management system.
56
+ Read-only analysis — it doesn't rebook anyone or change the schedule itself.
@@ -0,0 +1,43 @@
1
+ id: claims-denial-resubmission-check
2
+ version: 1
3
+ name: Claims Denial Resubmission Check
4
+ description: >
5
+ Checks denied insurance claims against their payer resubmission or appeal
6
+ deadline and flags anything still open as the deadline approaches or has
7
+ already passed. Use this if a denied claim has ever quietly aged past the
8
+ window to resubmit or appeal it, turning recoverable revenue into a
9
+ write-off nobody meant to take.
10
+ category: healthcare
11
+ tags: [healthcare, billing, claims, denials, revenue-cycle]
12
+ schedule: "0 8 * * 1-5"
13
+ timezone: "America/New_York"
14
+ runner: shell
15
+ command: >
16
+ today=$(date +%s);
17
+ awk -F',' -v today="$today" -v warn_days="{{warn_days_before_deadline}}" '
18
+ NR==1 {next}
19
+ $6 != "open" {next}
20
+ {
21
+ cmd = "date -d \"" $5 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $5 "\" +%s 2>/dev/null";
22
+ cmd | getline deadline_epoch; close(cmd);
23
+ diff_days = (deadline_epoch - today) / 86400;
24
+ if (diff_days < 0) {
25
+ printf "PAST DEADLINE: %s — claim %s (%s) resubmission deadline was %s (%d days ago)\n", $1, $2, $3, $5, -diff_days;
26
+ } else if (diff_days <= warn_days) {
27
+ printf "RESUBMIT SOON: %s — claim %s (%s) deadline %s (%d days left)\n", $1, $2, $3, $5, diff_days;
28
+ }
29
+ }
30
+ ' "{{denied_claims_csv_path}}"
31
+ variables:
32
+ denied_claims_csv_path:
33
+ default: "./denied-claims.csv"
34
+ description: "Path to a CSV with columns: patient_name,claim_number,payer,denial_date (YYYY-MM-DD),resubmission_deadline (YYYY-MM-DD),status (open/resubmitted/appealed/written-off)."
35
+ warn_days_before_deadline:
36
+ default: 7
37
+ description: How many days before the resubmission/appeal deadline to start warning.
38
+ compatible_agents: [generic, claude, codex]
39
+ notes: >
40
+ Assumes an already-exported CSV from your billing/clearinghouse system rather than
41
+ live PHI system access. Distinct from insurance-eligibility-verification-check
42
+ (pre-visit) and prior-authorization-expiry-check (treatment approval) — this is
43
+ post-visit claims that already got denied.
@@ -0,0 +1,30 @@
1
+ id: clinical-supply-low-stock-check
2
+ version: 1
3
+ name: Clinical Supply and PPE Low-Stock Check
4
+ description: >
5
+ Scans clinical supply and PPE inventory (gloves, masks, gowns, syringes,
6
+ exam table paper, sanitizer) against reorder thresholds and flags what's
7
+ running low. Use this if a clinic has ever discovered it was out of
8
+ gloves or exam paper mid-morning because nobody was watching stock levels
9
+ between deliveries.
10
+ category: healthcare
11
+ tags: [healthcare, inventory, supplies, ppe, operations]
12
+ schedule: "0 7 * * 1,4"
13
+ timezone: "America/New_York"
14
+ runner: shell
15
+ command: >
16
+ awk -F',' '
17
+ NR==1 {next}
18
+ ($3 + 0) <= ($4 + 0) {
19
+ printf "LOW STOCK: %s (%s) — %d on hand, reorder threshold %d\n", $1, $2, $3, $4;
20
+ }
21
+ ' "{{supply_inventory_csv_path}}"
22
+ variables:
23
+ supply_inventory_csv_path:
24
+ default: "./clinical-supply-inventory.csv"
25
+ description: "Path to a CSV with columns: item_name,category,current_qty,reorder_threshold."
26
+ compatible_agents: [generic, claude, codex]
27
+ notes: >
28
+ Zero-token, read-only check. Assumes a maintained inventory export (manual count
29
+ or supply-management software) — this is the "did anyone check the shelf" backstop,
30
+ it doesn't place the reorder itself.
@@ -0,0 +1,42 @@
1
+ id: controlled-substance-inventory-reconciliation
2
+ version: 1
3
+ name: Controlled Substance Inventory Reconciliation
4
+ description: >
5
+ Reviews the practice's controlled-substance dispensing/administration log
6
+ (e.g. in-office injectable opioids, ketamine, testosterone, Schedule II-V
7
+ medications kept on site) for gaps or unreconciled counts. Use this if a
8
+ discrepancy in a controlled-drug count has ever gone unnoticed for weeks
9
+ in a human practice instead of being caught same-day — this covers a
10
+ clinic's own in-office stock, the same DEA-style pattern as
11
+ jobs/veterinary/controlled-substance-log-audit.yaml but for a human
12
+ medical/dental practice rather than an animal clinic, so both are kept as
13
+ separate jobs.
14
+ category: healthcare
15
+ tags: [healthcare, controlled-substances, compliance, audit, dea]
16
+ schedule: "0 20 * * *"
17
+ timezone: "America/New_York"
18
+ runner: agent-prompt
19
+ prompt: |
20
+ Read today's controlled-substance log from {{log_source}} for
21
+ {{substances_tracked}}.
22
+ 1. Check that every entry has a matching patient/encounter reference —
23
+ flag any entry missing one.
24
+ 2. Compare the running balance against the last physical count on record;
25
+ flag any mismatch.
26
+ 3. Flag any day with zero entries logged if the practice was open and
27
+ controlled substances are known to be in regular use — a suspiciously
28
+ quiet log is itself worth a second look.
29
+ 4. If everything reconciles, say so in one line.
30
+ variables:
31
+ log_source:
32
+ default: "your controlled-substance log (paper log photographed/transcribed, or e-log system)"
33
+ description: Where the controlled-substance usage log is recorded.
34
+ substances_tracked:
35
+ default: "injectable opioids, ketamine, and other Schedule II-V substances kept on site"
36
+ description: Which substances this log covers.
37
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
38
+ notes: >
39
+ Read-only reconciliation check — does not replace your practice's actual
40
+ DEA-compliant logging system, and any discrepancy found should go through your
41
+ normal reporting/investigation process. Assumes an already-exported or
42
+ transcribed log rather than live PHI system access.
@@ -0,0 +1,74 @@
1
+ id: hipaa-access-log-audit
2
+ version: 1
3
+ name: HIPAA Chart Access Log Audit
4
+ description: >
5
+ Scans the EHR's chart-access log for high-volume, off-hours, or otherwise
6
+ unusual access patterns and has an agent judge which are worth a closer
7
+ look. Use this if unauthorized or curious chart access (a coworker's
8
+ family member, a local celebrity, an ex-spouse) has ever gone unnoticed
9
+ because nobody was reviewing the access log until an audit or complaint
10
+ forced it.
11
+ category: healthcare
12
+ tags: [healthcare, hipaa, compliance, audit, security]
13
+ schedule: "0 7 * * 1"
14
+ timezone: "America/New_York"
15
+ runner: hybrid
16
+ command: >
17
+ awk -F',' -v threshold="{{daily_access_threshold}}" -v off_start="{{off_hours_start}}" -v off_end="{{off_hours_end}}" '
18
+ NR==1 {next}
19
+ {
20
+ day = substr($3,1,10); hour = substr($3,12,2) + 0;
21
+ key = $1 SUBSEP day;
22
+ count[key]++;
23
+ staffname[key] = $1; dayval[key] = day;
24
+ if (hour >= off_start || hour < off_end) {
25
+ printf "OFF-HOURS ACCESS: %s accessed %s at %s (action: %s)\n", $1, $2, $3, $4;
26
+ }
27
+ }
28
+ END {
29
+ for (k in count) {
30
+ if (count[k] > threshold) {
31
+ printf "HIGH-VOLUME ACCESS: %s accessed %d distinct log entries on %s (threshold %d)\n", staffname[k], count[k], dayval[k], threshold;
32
+ }
33
+ }
34
+ }
35
+ ' "{{access_log_csv_path}}"
36
+ prompt: |
37
+ Run the flagged entries from the access-log scan above (high-volume days
38
+ and off-hours access events) through a closer read.
39
+ 1. For each flagged staff member/day, look at which patient records were
40
+ touched and whether the access pattern looks consistent with normal
41
+ clinical or front-desk duties for that role (e.g. a nurse pulling
42
+ charts for today's patient panel) versus inconsistent with it (e.g.
43
+ access to a patient not on that staff member's schedule, repeated
44
+ access to the same non-assigned patient, or a name match suggesting a
45
+ coworker, family member, or public figure).
46
+ 2. Rank flags from "likely benign, no action" to "recommend compliance
47
+ officer review."
48
+ 3. Do not name a possible relationship as fact — describe the pattern
49
+ observed and let a human confirm it.
50
+ 4. If nothing stands out beyond routine volume, say so in one line.
51
+ variables:
52
+ access_log_csv_path:
53
+ default: "./chart-access-log.csv"
54
+ description: "Path to a CSV with columns: staff_name,patient_name,access_timestamp (YYYY-MM-DD HH:MM),action (view/edit/print)."
55
+ daily_access_threshold:
56
+ default: 40
57
+ description: Number of chart access events by one staff member in one day that triggers a high-volume flag.
58
+ off_hours_start:
59
+ default: 20
60
+ description: Hour (0-23, local clinic time) after which access counts as off-hours.
61
+ off_hours_end:
62
+ default: 6
63
+ description: Hour (0-23) before which access still counts as off-hours.
64
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
65
+ script_note: >
66
+ The command gives you the raw high-volume and off-hours flags for free, purely
67
+ from counts and timestamps. Only the prompt pass can judge whether a flagged
68
+ pattern looks like inappropriate snooping versus legitimate clinical coverage —
69
+ that judgment call is what the LLM pass adds.
70
+ notes: >
71
+ Assumes an already-exported, de-identified-where-possible access log rather than
72
+ live EHR/PHI system access — export staff name, patient identifier, timestamp,
73
+ and action only. Any confirmed concern should go through your practice's actual
74
+ HIPAA compliance/privacy officer process, not this job.