@wonsukchoi/crondex 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -15
- package/catalog.json +4839 -118
- package/jobs/automotive/ase-certification-expiry-check.yaml +36 -0
- package/jobs/automotive/csi-score-monitor.yaml +33 -0
- package/jobs/automotive/customer-pay-warranty-pay-mix-tracker.yaml +47 -0
- package/jobs/automotive/fi-product-attachment-rate-tracker.yaml +39 -0
- package/jobs/automotive/loaner-fleet-availability-check.yaml +40 -0
- package/jobs/automotive/manufacturer-recall-notice-check.yaml +39 -0
- package/jobs/automotive/parts-reorder-point-check.yaml +36 -0
- package/jobs/automotive/repair-cycle-time-trend-monitor.yaml +42 -0
- package/jobs/automotive/service-appointment-no-show-tracker.yaml +38 -0
- package/jobs/automotive/service-bay-utilization-check.yaml +38 -0
- package/jobs/automotive/shop-supply-reorder-check.yaml +31 -0
- package/jobs/automotive/trade-in-appraisal-variance-check.yaml +39 -0
- package/jobs/automotive/used-vehicle-inventory-aging-check.yaml +35 -0
- package/jobs/construction/critical-path-material-lead-time-review.yaml +43 -0
- package/jobs/construction/daily-jobsite-log-compliance-check.yaml +34 -0
- package/jobs/construction/equipment-utilization-cost-check.yaml +35 -0
- package/jobs/construction/heavy-equipment-inspection-compliance-check.yaml +34 -0
- package/jobs/construction/jobsite-safety-incident-near-miss-tracker.yaml +35 -0
- package/jobs/construction/lien-waiver-collection-tracker.yaml +27 -0
- package/jobs/construction/permit-application-approval-backlog-check.yaml +33 -0
- package/jobs/construction/project-budget-variance-check.yaml +34 -0
- package/jobs/construction/punch-list-completion-tracker.yaml +36 -0
- package/jobs/construction/retainage-holdback-release-tracker.yaml +33 -0
- package/jobs/construction/rfi-response-time-tracker.yaml +33 -0
- package/jobs/construction/subcontractor-pay-application-approval-tracker.yaml +35 -0
- package/jobs/construction/submittal-shop-drawing-review-check.yaml +45 -0
- package/jobs/construction/weather-delay-impact-log.yaml +44 -0
- package/jobs/education/chronic-absenteeism-tracker.yaml +34 -0
- package/jobs/education/department-budget-variance-check.yaml +37 -0
- package/jobs/education/enrollment-withdrawal-trend-tracker.yaml +39 -0
- package/jobs/education/facility-work-order-backlog-check.yaml +34 -0
- package/jobs/education/free-reduced-lunch-eligibility-renewal-check.yaml +36 -0
- package/jobs/education/iep-504-review-deadline-tracker.yaml +35 -0
- package/jobs/education/parent-teacher-conference-noshow-tracker.yaml +29 -0
- package/jobs/education/school-bus-route-ontime-check.yaml +40 -0
- package/jobs/education/standardized-test-registration-deadline-check.yaml +35 -0
- package/jobs/education/substitute-teacher-fill-rate-tracker.yaml +35 -0
- package/jobs/education/teacher-certification-expiry-tracker.yaml +35 -0
- package/jobs/education/textbook-inventory-shortage-check.yaml +32 -0
- package/jobs/fleet/accident-incident-report-tracker.yaml +34 -0
- package/jobs/fleet/driver-mvr-review-tracker.yaml +34 -0
- package/jobs/fleet/driver-safety-score-monitor.yaml +39 -0
- package/jobs/fleet/ev-battery-health-check.yaml +36 -0
- package/jobs/fleet/fuel-efficiency-trend-monitor.yaml +33 -0
- package/jobs/fleet/geofence-violation-check.yaml +37 -0
- package/jobs/fleet/lease-return-condition-check.yaml +33 -0
- package/jobs/fleet/tire-wear-replacement-check.yaml +30 -0
- package/jobs/fleet/toll-violation-tracker.yaml +34 -0
- package/jobs/fleet/vehicle-pool-scheduling-conflict-check.yaml +37 -0
- package/jobs/fleet/vehicle-tco-tracker.yaml +41 -0
- package/jobs/fleet/vehicle-utilization-rate-check.yaml +37 -0
- package/jobs/growth/cohort-retention-curve-monitor.yaml +39 -0
- package/jobs/growth/customer-health-score-monitor.yaml +37 -0
- package/jobs/growth/dau-mau-engagement-ratio-check.yaml +39 -0
- package/jobs/growth/dormant-account-reactivation-check.yaml +39 -0
- package/jobs/growth/expansion-revenue-opportunity-tracker.yaml +44 -0
- package/jobs/growth/feature-adoption-rate-tracker.yaml +44 -0
- package/jobs/growth/nps-trend-tracker.yaml +40 -0
- package/jobs/growth/onboarding-funnel-dropoff-check.yaml +39 -0
- package/jobs/growth/paywall-upgrade-prompt-conversion-check.yaml +40 -0
- package/jobs/growth/product-qualified-lead-tracker.yaml +42 -0
- package/jobs/growth/referral-program-performance-tracker.yaml +35 -0
- package/jobs/growth/trial-to-paid-conversion-rate-tracker.yaml +48 -0
- package/jobs/growth/winback-reactivation-campaign-tracker.yaml +46 -0
- package/jobs/hospitality/adr-revpar-tracker.yaml +43 -0
- package/jobs/hospitality/cancellation-rate-spike-check.yaml +21 -0
- package/jobs/hospitality/group-booking-space-utilization-check.yaml +40 -0
- package/jobs/hospitality/guest-complaint-sla-tracker.yaml +34 -0
- package/jobs/hospitality/guest-satisfaction-score-monitor.yaml +41 -0
- package/jobs/hospitality/linen-inventory-turnover-check.yaml +35 -0
- package/jobs/hospitality/loyalty-points-reconciliation-check.yaml +33 -0
- package/jobs/hospitality/minibar-charge-reconciliation-check.yaml +38 -0
- package/jobs/hospitality/occupancy-forecast-variance-check.yaml +33 -0
- package/jobs/hospitality/ota-rate-parity-check.yaml +36 -0
- package/jobs/hospitality/overbooking-risk-alert.yaml +38 -0
- package/jobs/hospitality/room-maintenance-work-order-tracker.yaml +31 -0
- package/jobs/hospitality/upsell-upgrade-conversion-tracker.yaml +37 -0
- package/jobs/insurance/adjuster-caseload-balance-check.yaml +45 -0
- package/jobs/insurance/agent-broker-license-expiry-tracker.yaml +40 -0
- package/jobs/insurance/cat-event-exposure-monitor.yaml +37 -0
- package/jobs/insurance/claims-aging-backlog-tracker.yaml +48 -0
- package/jobs/insurance/doi-filing-deadline-tracker.yaml +42 -0
- package/jobs/insurance/loss-ratio-by-line-monitor.yaml +43 -0
- package/jobs/insurance/policy-lapse-rate-monitor.yaml +41 -0
- package/jobs/insurance/premium-payment-delinquency-tracker.yaml +42 -0
- package/jobs/insurance/quote-to-bind-conversion-tracker.yaml +41 -0
- package/jobs/insurance/reinsurance-treaty-renewal-tracker.yaml +38 -0
- package/jobs/insurance/siu-fraud-referral-tracker.yaml +36 -0
- package/jobs/insurance/subrogation-recovery-tracker.yaml +41 -0
- package/jobs/insurance/underwriting-queue-sla-monitor.yaml +45 -0
- package/jobs/logistics/3pl-performance-scorecard.yaml +45 -0
- package/jobs/logistics/bol-freight-class-accuracy-audit.yaml +33 -0
- package/jobs/logistics/cargo-insurance-claim-status-check.yaml +39 -0
- package/jobs/logistics/carrier-load-tender-acceptance-check.yaml +34 -0
- package/jobs/logistics/carrier-otd-performance-scorecard.yaml +41 -0
- package/jobs/logistics/carrier-rate-contract-renewal-check.yaml +35 -0
- package/jobs/logistics/cross-dock-dwell-time-watch.yaml +43 -0
- package/jobs/logistics/freight-invoice-rate-audit.yaml +38 -0
- package/jobs/logistics/fuel-surcharge-rate-monitor.yaml +40 -0
- package/jobs/logistics/international-shipment-documentation-check.yaml +36 -0
- package/jobs/logistics/linehaul-transit-time-variance-check.yaml +43 -0
- package/jobs/logistics/proof-of-delivery-reconciliation-check.yaml +38 -0
- package/jobs/logistics/route-load-optimization-check.yaml +32 -0
- package/jobs/manufacturing/changeover-time-tracker.yaml +29 -0
- package/jobs/manufacturing/critical-spare-parts-stock-check.yaml +29 -0
- package/jobs/manufacturing/first-pass-yield-report.yaml +37 -0
- package/jobs/manufacturing/lot-traceability-audit.yaml +37 -0
- package/jobs/manufacturing/non-conformance-report-backlog-check.yaml +34 -0
- package/jobs/manufacturing/oee-efficiency-check.yaml +37 -0
- package/jobs/manufacturing/osha-recordable-incident-audit.yaml +37 -0
- package/jobs/manufacturing/production-schedule-adherence-check.yaml +35 -0
- package/jobs/manufacturing/safety-certification-expiry-check.yaml +37 -0
- package/jobs/manufacturing/scrap-waste-rate-watch.yaml +33 -0
- package/jobs/manufacturing/shift-handoff-report.yaml +37 -0
- package/jobs/manufacturing/supplier-quality-ppm-watch.yaml +38 -0
- package/jobs/manufacturing/tooling-die-wear-check.yaml +31 -0
- package/jobs/manufacturing/work-order-backlog-check.yaml +37 -0
- package/jobs/marketing/ad-creative-fatigue-check.yaml +44 -0
- package/jobs/marketing/affiliate-partner-performance-check.yaml +38 -0
- package/jobs/marketing/attribution-discrepancy-check.yaml +42 -0
- package/jobs/marketing/brand-share-of-voice-check.yaml +43 -0
- package/jobs/marketing/campaign-roas-cpa-anomaly-check.yaml +41 -0
- package/jobs/marketing/competitor-ad-creative-watch.yaml +40 -0
- package/jobs/marketing/email-list-growth-rate-check.yaml +43 -0
- package/jobs/marketing/landing-page-conversion-drop-check.yaml +44 -0
- package/jobs/marketing/mql-to-sql-handoff-sla-check.yaml +29 -0
- package/jobs/marketing/mql-volume-pace-check.yaml +34 -0
- package/jobs/marketing/paid-search-negative-keyword-waste-check.yaml +37 -0
- package/jobs/marketing/press-release-pickup-tracking.yaml +32 -0
- package/jobs/marketing/webinar-registration-attendance-check.yaml +38 -0
- package/jobs/restaurant/comp-void-anomaly-tracker.yaml +39 -0
- package/jobs/restaurant/daily-sales-flash-report.yaml +36 -0
- package/jobs/restaurant/delivery-platform-commission-reconciliation.yaml +33 -0
- package/jobs/restaurant/delivery-receiving-discrepancy-check.yaml +33 -0
- package/jobs/restaurant/food-handler-permit-expiry-tracker.yaml +33 -0
- package/jobs/restaurant/gift-card-liability-check.yaml +45 -0
- package/jobs/restaurant/kitchen-ticket-time-watch.yaml +38 -0
- package/jobs/restaurant/liquor-pour-cost-variance-check.yaml +34 -0
- package/jobs/restaurant/menu-86-frequency-tracker.yaml +39 -0
- package/jobs/restaurant/menu-item-profitability-check.yaml +33 -0
- package/jobs/restaurant/pos-end-of-day-reconciliation-check.yaml +31 -0
- package/jobs/restaurant/table-turnover-rate-tracker.yaml +36 -0
- package/jobs/restaurant/waitlist-conversion-check.yaml +37 -0
- package/jobs/retail/cash-office-deposit-variance-check.yaml +34 -0
- package/jobs/retail/competitor-price-monitoring-check.yaml +42 -0
- package/jobs/retail/damaged-merchandise-writeoff-tracker.yaml +41 -0
- package/jobs/retail/employee-discount-abuse-check.yaml +39 -0
- package/jobs/retail/layaway-special-order-pickup-tracker.yaml +33 -0
- package/jobs/retail/loyalty-enrollment-redemption-rate-tracker.yaml +37 -0
- package/jobs/retail/markdown-execution-audit-check.yaml +29 -0
- package/jobs/retail/planogram-compliance-audit-check.yaml +36 -0
- package/jobs/retail/pos-void-refund-anomaly-tracker.yaml +42 -0
- package/jobs/retail/price-tag-audit-accuracy-check.yaml +37 -0
- package/jobs/retail/sales-per-square-foot-tracker.yaml +36 -0
- package/jobs/retail/seasonal-staffing-coverage-check.yaml +35 -0
- package/jobs/retail/store-closing-checklist-compliance-check.yaml +32 -0
- package/jobs/retail/visual-merchandising-compliance-check.yaml +40 -0
- package/jobs/veterinary/appointment-no-show-rate-tracker.yaml +49 -0
- package/jobs/veterinary/boarding-kennel-capacity-utilization-check.yaml +39 -0
- package/jobs/veterinary/client-payment-plan-delinquency-check.yaml +36 -0
- package/jobs/veterinary/dvm-license-dea-registration-expiry-check.yaml +41 -0
- package/jobs/veterinary/microchip-registration-verification-check.yaml +40 -0
- package/jobs/veterinary/patient-record-completeness-audit.yaml +41 -0
- package/jobs/veterinary/pet-medication-refill-backlog-check.yaml +36 -0
- package/jobs/veterinary/puppy-kitten-vaccine-series-compliance-check.yaml +39 -0
- package/jobs/veterinary/senior-pet-wellness-recall-tracker.yaml +43 -0
- package/jobs/veterinary/spay-neuter-followup-compliance-check.yaml +35 -0
- package/jobs/veterinary/specialist-referral-followup-check.yaml +38 -0
- package/jobs/veterinary/surgical-schedule-utilization-check.yaml +36 -0
- package/jobs/veterinary/vet-staff-ce-credit-tracking.yaml +36 -0
- package/jobs/warehousing/conveyor-sortation-downtime-watch.yaml +48 -0
- package/jobs/warehousing/labor-productivity-rate-check.yaml +33 -0
- package/jobs/warehousing/mhe-preventive-maintenance-check.yaml +38 -0
- package/jobs/warehousing/order-fulfillment-sla-watch.yaml +42 -0
- package/jobs/warehousing/shift-headcount-coverage-check.yaml +33 -0
- package/jobs/warehousing/slotting-velocity-review-check.yaml +44 -0
- package/jobs/warehousing/warehouse-damage-writeoff-review.yaml +41 -0
- package/jobs/warehousing/warehouse-near-miss-incident-rate-watch.yaml +47 -0
- package/jobs/warehousing/warehouse-space-utilization-check.yaml +39 -0
- package/jobs/warehousing/wave-pick-batch-efficiency-check.yaml +33 -0
- package/jobs/warehousing/wms-integration-error-check.yaml +36 -0
- package/jobs/warehousing/yard-trailer-detention-watch.yaml +41 -0
- package/lib/category-descriptions.js +12 -12
- package/lib/duplicates-allowlist.js +10 -0
- package/package.json +2 -2
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: price-tag-audit-accuracy-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Price Tag Audit Accuracy Check
|
|
4
|
+
description: >
|
|
5
|
+
Reviews photos of shelf price tags against the current POS price file
|
|
6
|
+
and flags mismatches. Use this if a customer has ever caught a
|
|
7
|
+
scan-versus-tag price discrepancy at the register before the store did
|
|
8
|
+
— those add up fast in refunds, complaints, and occasional fines.
|
|
9
|
+
category: retail
|
|
10
|
+
tags: [retail, pricing, audit, compliance]
|
|
11
|
+
schedule: "0 8 * * 4"
|
|
12
|
+
timezone: "America/New_York"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Compare this week's shelf tag photos ({{tag_photos_path}}) against the
|
|
16
|
+
current POS price export ({{pos_price_file}}) for store {{store_id}}.
|
|
17
|
+
1. Read the SKU and posted price off each tag photo (OCR/read the
|
|
18
|
+
image directly).
|
|
19
|
+
2. Match each tag to its POS price by SKU and flag any mismatch,
|
|
20
|
+
noting whether the tag is higher or lower than the register price.
|
|
21
|
+
3. Prioritize mismatches where the tag price is lower than the POS
|
|
22
|
+
price — those are the ones customers will notice and complain about
|
|
23
|
+
first, and in some states are a pricing-accuracy compliance risk.
|
|
24
|
+
4. Summarize as a punch list: SKU, tag price, POS price, and which tag
|
|
25
|
+
needs reprinting.
|
|
26
|
+
variables:
|
|
27
|
+
tag_photos_path:
|
|
28
|
+
default: "./shelf-tag-photos/"
|
|
29
|
+
description: Folder of this week's shelf price tag photos for the store.
|
|
30
|
+
pos_price_file:
|
|
31
|
+
default: "./pos-price-export.csv"
|
|
32
|
+
description: Current POS price export, columns sku,price.
|
|
33
|
+
store_id:
|
|
34
|
+
default: "store-001"
|
|
35
|
+
description: Identifier for the store being audited.
|
|
36
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
37
|
+
notes: Reading prices off photographed tags and matching them against a price list needs visual judgment a fixed script can't reliably do.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
id: sales-per-square-foot-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Sales Per Square Foot Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Calculates each store's sales-per-square-foot for the period and flags
|
|
6
|
+
stores falling below a benchmark. Use this if underperforming store
|
|
7
|
+
footprints have ever gone unnoticed until an annual real-estate review
|
|
8
|
+
instead of getting flagged while there was still time to act.
|
|
9
|
+
category: retail
|
|
10
|
+
tags: [retail, sales, performance, benchmarking]
|
|
11
|
+
schedule: "0 7 1 * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v floor="{{benchmark_sales_per_sqft}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
sqft = $3;
|
|
19
|
+
if (sqft > 0) {
|
|
20
|
+
rate = $2 / sqft;
|
|
21
|
+
status = (rate < floor) ? "BELOW BENCHMARK" : "ok";
|
|
22
|
+
if (status == "BELOW BENCHMARK") {
|
|
23
|
+
printf "BELOW BENCHMARK: store %s — $%.2f/sqft (benchmark $%.2f/sqft)\n", $1, rate, floor;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
' "{{store_sales_csv}}"
|
|
28
|
+
variables:
|
|
29
|
+
store_sales_csv:
|
|
30
|
+
default: "./store-sales-sqft.csv"
|
|
31
|
+
description: "CSV with header row, columns: store_id,period_sales_usd,selling_sqft — one row per store for the period."
|
|
32
|
+
benchmark_sales_per_sqft:
|
|
33
|
+
default: 300
|
|
34
|
+
description: Minimum acceptable sales-per-square-foot for the period before a store gets flagged.
|
|
35
|
+
compatible_agents: [generic, claude, codex]
|
|
36
|
+
notes: A single low period isn't necessarily a problem store — track the trend across periods before drawing conclusions about a location.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: seasonal-staffing-coverage-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Seasonal Staffing Coverage Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares scheduled labor hours against a forecasted seasonal-peak
|
|
6
|
+
staffing plan and flags stores that are under-scheduled. Use this if a
|
|
7
|
+
store has ever gone into a holiday or back-to-school rush understaffed
|
|
8
|
+
because the seasonal plan and the actual schedule quietly drifted apart.
|
|
9
|
+
category: retail
|
|
10
|
+
tags: [retail, staffing, seasonal, scheduling]
|
|
11
|
+
schedule: "0 9 * * 1"
|
|
12
|
+
timezone: "America/New_York"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v gap_pct="{{coverage_gap_threshold_pct}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
planned = $2; scheduled = $3;
|
|
19
|
+
if (planned > 0) {
|
|
20
|
+
gap = ((planned - scheduled) / planned) * 100;
|
|
21
|
+
if (gap >= gap_pct) {
|
|
22
|
+
printf "UNDER-SCHEDULED: store %s — planned %.0f hrs, scheduled %.0f hrs (%.1f%% short)\n", $1, planned, scheduled, gap;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
' "{{seasonal_staffing_csv}}"
|
|
27
|
+
variables:
|
|
28
|
+
seasonal_staffing_csv:
|
|
29
|
+
default: "./seasonal-staffing-plan.csv"
|
|
30
|
+
description: "CSV with header row, columns: store_id,planned_hours,scheduled_hours — one row per store for the upcoming seasonal window."
|
|
31
|
+
coverage_gap_threshold_pct:
|
|
32
|
+
default: 10
|
|
33
|
+
description: Percentage shortfall between planned and scheduled hours that triggers a flag.
|
|
34
|
+
compatible_agents: [generic, claude, codex]
|
|
35
|
+
notes: Complements `employee-shift-gap-check` (day-to-day unfilled shifts) by checking whether the whole store is resourced against a seasonal peak plan, weeks ahead of the rush rather than shift by shift.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: store-closing-checklist-compliance-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Store Closing Checklist Compliance Check
|
|
4
|
+
description: >
|
|
5
|
+
Reviews logged closing checklist completions and flags stores or shifts
|
|
6
|
+
that skipped required steps, rather than just reminding staff of the
|
|
7
|
+
checklist. Use this if a store has ever opened the next morning to a
|
|
8
|
+
safe left unlocked, alarm not set, or cash not dropped because closing
|
|
9
|
+
execution was never actually checked afterward.
|
|
10
|
+
category: retail
|
|
11
|
+
tags: [retail, checklist, closing, compliance, loss-prevention]
|
|
12
|
+
schedule: "0 7 * * *"
|
|
13
|
+
timezone: "America/New_York"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
{
|
|
19
|
+
if ($3 == "incomplete" || $3 == "") {
|
|
20
|
+
printf "INCOMPLETE CLOSE: store %s on %s — missing step: %s\n", $1, $2, $4;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
' "{{closing_log_csv}}"
|
|
24
|
+
variables:
|
|
25
|
+
closing_log_csv:
|
|
26
|
+
default: "./closing-checklist-log.csv"
|
|
27
|
+
description: "CSV with header row, columns: store_id,close_date,status(complete/incomplete),missing_step — one row per required closing step per night."
|
|
28
|
+
compatible_agents: [generic, claude, codex]
|
|
29
|
+
notes: >
|
|
30
|
+
Distinct from `store-opening-checklist-reminder`, which just prints the
|
|
31
|
+
standard checklist as a reminder — this audits a logged closing record
|
|
32
|
+
after the fact to catch steps that were actually skipped.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
id: visual-merchandising-compliance-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Visual Merchandising Compliance Check
|
|
4
|
+
description: >
|
|
5
|
+
Reviews store-front and window display photos against the current
|
|
6
|
+
visual merchandising directive and flags stores that haven't executed
|
|
7
|
+
it. Use this if a seasonal window or entrance display has ever stayed
|
|
8
|
+
up stale for weeks after corporate sent the new directive.
|
|
9
|
+
category: retail
|
|
10
|
+
tags: [retail, merchandising, visual, compliance]
|
|
11
|
+
schedule: "0 8 * * 5"
|
|
12
|
+
timezone: "America/New_York"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Compare this week's store-front/window/entrance photos
|
|
16
|
+
({{store_photos_path}}) against the current visual merchandising
|
|
17
|
+
directive ({{vm_directive_path}}) for store {{store_id}}.
|
|
18
|
+
1. Note whether the required theme, signage, mannequin styling, and
|
|
19
|
+
entrance table match the directive.
|
|
20
|
+
2. Flag anything stale (a prior season's display still up) separately
|
|
21
|
+
from anything simply missing.
|
|
22
|
+
3. Note any obviously damaged or faded display elements that need
|
|
23
|
+
replacing regardless of the current directive.
|
|
24
|
+
4. Give a short, actionable punch list, not a general aesthetic
|
|
25
|
+
critique.
|
|
26
|
+
variables:
|
|
27
|
+
store_photos_path:
|
|
28
|
+
default: "./vm-photos/"
|
|
29
|
+
description: Folder of this week's store-front and window display photos.
|
|
30
|
+
vm_directive_path:
|
|
31
|
+
default: "./current-vm-directive.pdf"
|
|
32
|
+
description: Path to the current corporate visual merchandising directive.
|
|
33
|
+
store_id:
|
|
34
|
+
default: "store-001"
|
|
35
|
+
description: Identifier for the store being reviewed.
|
|
36
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
37
|
+
notes: >
|
|
38
|
+
Distinct from `planogram-compliance-audit-check`, which audits shelf/bay
|
|
39
|
+
product placement inside the store — this covers window, entrance, and
|
|
40
|
+
seasonal display execution instead.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
id: appointment-no-show-rate-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Appointment No-Show Rate Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Calculates the weekly no-show rate from a logged appointment history and
|
|
6
|
+
flags when it crosses a threshold. Use this if the clinic has ever kept
|
|
7
|
+
eating empty exam-room slots without noticing the no-show rate had
|
|
8
|
+
crept up until the schedule was visibly hurting revenue — this tracks
|
|
9
|
+
the aggregate trend, distinct from a per-appointment outreach job.
|
|
10
|
+
category: veterinary
|
|
11
|
+
tags: [veterinary, appointments, no-show, scheduling, metrics]
|
|
12
|
+
schedule: "0 7 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
awk -F',' -v cutoff="{{lookback_days}}" -v threshold="{{alert_threshold_pct}}" '
|
|
17
|
+
NR==1 {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 appt_epoch; close(cmd);
|
|
21
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
22
|
+
age_days = (now_epoch - appt_epoch) / 86400;
|
|
23
|
+
if (age_days >= 0 && age_days <= cutoff) {
|
|
24
|
+
total++;
|
|
25
|
+
if ($3 == "no-show") noshow++;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
END {
|
|
29
|
+
if (total > 0) {
|
|
30
|
+
rate = (noshow / total) * 100;
|
|
31
|
+
printf "NO-SHOW RATE: %d/%d appointments in last %d day(s) = %.1f%%\n", noshow, total, cutoff, rate;
|
|
32
|
+
if (rate >= threshold) printf "ALERT: no-show rate %.1f%% is at or above the %.1f%% threshold\n", rate, threshold;
|
|
33
|
+
} else {
|
|
34
|
+
print "No appointments found in the lookback window.";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
' "{{appointments_csv_path}}"
|
|
38
|
+
variables:
|
|
39
|
+
appointments_csv_path:
|
|
40
|
+
default: "./appointments.csv"
|
|
41
|
+
description: "Path to a CSV with columns: pet_name,appointment_date (YYYY-MM-DD),status (arrived/no-show/cancelled)."
|
|
42
|
+
lookback_days:
|
|
43
|
+
default: 7
|
|
44
|
+
description: How many trailing days of appointments to include in the rate calculation.
|
|
45
|
+
alert_threshold_pct:
|
|
46
|
+
default: 10
|
|
47
|
+
description: No-show rate percentage that triggers an alert.
|
|
48
|
+
compatible_agents: [generic, claude, codex]
|
|
49
|
+
notes: Zero-token trend check — pair with a per-appointment outreach job if you also want to contact each no-show individually.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
id: boarding-kennel-capacity-utilization-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Boarding/Kennel Capacity Utilization Check
|
|
4
|
+
description: >
|
|
5
|
+
Compares today's occupied boarding runs/kennels against total capacity
|
|
6
|
+
and warns when utilization crosses a threshold. Use this if the front
|
|
7
|
+
desk has ever accepted a boarding reservation only to discover at
|
|
8
|
+
drop-off that every run was already full — this tracks overall
|
|
9
|
+
occupancy, distinct from boarding-checkout-reminder.yaml which tracks
|
|
10
|
+
individual checkout dates.
|
|
11
|
+
category: veterinary
|
|
12
|
+
tags: [veterinary, boarding, kennel, capacity, occupancy]
|
|
13
|
+
schedule: "0 6 * * *"
|
|
14
|
+
timezone: "UTC"
|
|
15
|
+
runner: shell
|
|
16
|
+
command: >
|
|
17
|
+
today=$(date +%Y-%m-%d);
|
|
18
|
+
occupied=$(awk -F',' -v today="$today" '
|
|
19
|
+
NR==1 {next}
|
|
20
|
+
$3 <= today && $4 >= today {count++}
|
|
21
|
+
END {print count+0}
|
|
22
|
+
' "{{boarding_csv_path}}");
|
|
23
|
+
total="{{total_kennel_capacity}}";
|
|
24
|
+
warn="{{warn_threshold_pct}}";
|
|
25
|
+
pct=$(awk -v o="$occupied" -v t="$total" 'BEGIN { printf "%.1f", (t>0)?(o/t*100):0 }');
|
|
26
|
+
echo "OCCUPANCY: $occupied/$total runs occupied today ($pct%)";
|
|
27
|
+
awk -v pct="$pct" -v warn="$warn" 'BEGIN { if (pct+0 >= warn+0) print "ALERT: occupancy at or above " warn "% — confirm capacity before accepting more reservations." }'
|
|
28
|
+
variables:
|
|
29
|
+
boarding_csv_path:
|
|
30
|
+
default: "./boarding-schedule.csv"
|
|
31
|
+
description: "Path to a CSV with columns: pet_name,owner_name,checkin_date (YYYY-MM-DD),checkout_date (YYYY-MM-DD)."
|
|
32
|
+
total_kennel_capacity:
|
|
33
|
+
default: 20
|
|
34
|
+
description: Total number of boarding runs/kennels available.
|
|
35
|
+
warn_threshold_pct:
|
|
36
|
+
default: 90
|
|
37
|
+
description: Occupancy percentage that triggers a capacity warning.
|
|
38
|
+
compatible_agents: [generic, claude, codex]
|
|
39
|
+
notes: Zero-token. Counts any stay whose check-in/checkout window spans today — adjust the CSV export cadence to keep this current through the day.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
id: client-payment-plan-delinquency-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Client Payment Plan Delinquency Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks active client payment plans (e.g. for a large surgery or
|
|
6
|
+
emergency bill) against their installment schedule and flags anyone
|
|
7
|
+
who's missed a payment. Use this if a payment plan has ever quietly
|
|
8
|
+
gone delinquent for months because nobody was cross-checking installment
|
|
9
|
+
due dates against what actually came in.
|
|
10
|
+
category: veterinary
|
|
11
|
+
tags: [veterinary, billing, payment-plans, collections, clients]
|
|
12
|
+
schedule: "0 9 1,15 * *"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
today=$(date +%s);
|
|
17
|
+
awk -F',' -v today="$today" -v grace_days="{{grace_period_days}}" '
|
|
18
|
+
NR==1 {next}
|
|
19
|
+
$4 == "unpaid" {
|
|
20
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
21
|
+
cmd | getline due_epoch; close(cmd);
|
|
22
|
+
overdue_days = (today - due_epoch) / 86400;
|
|
23
|
+
if (overdue_days >= grace_days) {
|
|
24
|
+
printf "DELINQUENT: %s — installment $%s due %s (%d days overdue), plan total $%s\n", $1, $2, $3, overdue_days, $5;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
' "{{payment_plans_csv_path}}"
|
|
28
|
+
variables:
|
|
29
|
+
payment_plans_csv_path:
|
|
30
|
+
default: "./payment-plans.csv"
|
|
31
|
+
description: "Path to a CSV with columns: owner_name,installment_amount,due_date (YYYY-MM-DD),status (paid/unpaid),plan_total_amount."
|
|
32
|
+
grace_period_days:
|
|
33
|
+
default: 5
|
|
34
|
+
description: Days past the due date before a missed installment is flagged as delinquent.
|
|
35
|
+
compatible_agents: [generic, claude, codex]
|
|
36
|
+
notes: Read-only aging check — actual collections outreach and any plan renegotiation should follow your practice's billing policy.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: dvm-license-dea-registration-expiry-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Veterinarian License & DEA Registration Expiry Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks each veterinarian's state license and DEA registration expiry
|
|
6
|
+
dates and warns before either lapses. Use this if a vet has ever
|
|
7
|
+
discovered a lapsed DEA registration only when trying to write a
|
|
8
|
+
controlled-substance prescription — distinct from
|
|
9
|
+
license-credential-expiry-check.yaml in healthcare, which tracks
|
|
10
|
+
general staff credentials rather than the DVM license plus DEA
|
|
11
|
+
dual-registration requirement specific to prescribing controlled
|
|
12
|
+
substances for animal patients.
|
|
13
|
+
category: veterinary
|
|
14
|
+
tags: [veterinary, compliance, licensing, dea, staff]
|
|
15
|
+
schedule: "0 8 * * 1"
|
|
16
|
+
timezone: "UTC"
|
|
17
|
+
runner: shell
|
|
18
|
+
command: >
|
|
19
|
+
awk -F',' -v days="{{warn_days_before}}" '
|
|
20
|
+
NR==1 {next}
|
|
21
|
+
{
|
|
22
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
23
|
+
cmd | getline license_expiry_epoch; close(cmd);
|
|
24
|
+
cmd2 = "date -d \"" $4 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $4 "\" +%s 2>/dev/null";
|
|
25
|
+
cmd2 | getline dea_expiry_epoch; close(cmd2);
|
|
26
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
27
|
+
license_days = (license_expiry_epoch - now_epoch) / 86400;
|
|
28
|
+
dea_days = (dea_expiry_epoch - now_epoch) / 86400;
|
|
29
|
+
if (license_days <= days) printf "EXPIRING: %s — state license expires %s (%d days)\n", $1, $3, license_days;
|
|
30
|
+
if (dea_days <= days) printf "EXPIRING: %s — DEA registration expires %s (%d days)\n", $1, $4, dea_days;
|
|
31
|
+
}
|
|
32
|
+
' "{{credential_csv_path}}"
|
|
33
|
+
variables:
|
|
34
|
+
credential_csv_path:
|
|
35
|
+
default: "./dvm-credentials.csv"
|
|
36
|
+
description: "Path to a CSV with columns: veterinarian_name,state,license_expiry_date (YYYY-MM-DD),dea_expiry_date (YYYY-MM-DD)."
|
|
37
|
+
warn_days_before:
|
|
38
|
+
default: 60
|
|
39
|
+
description: How many days before expiry to start warning.
|
|
40
|
+
compatible_agents: [generic, claude, codex]
|
|
41
|
+
notes: Assumes a maintained CSV export from your credentialing/HR system. A lapsed DEA registration blocks legal prescribing of controlled substances — treat DEA warnings as higher priority than license warnings.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
id: microchip-registration-verification-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Microchip Registration Verification Check
|
|
4
|
+
description: >
|
|
5
|
+
Reviews recently implanted microchips and checks whether the chip was
|
|
6
|
+
actually registered with the manufacturer's database under the owner's
|
|
7
|
+
current contact info. Use this if a lost pet has ever been scanned at
|
|
8
|
+
a shelter, chip found, but the registry came back with no owner info
|
|
9
|
+
or an outdated phone number — the chip is only useful if the
|
|
10
|
+
registration behind it is current.
|
|
11
|
+
category: veterinary
|
|
12
|
+
tags: [veterinary, microchip, registration, patients, compliance]
|
|
13
|
+
schedule: "0 9 * * 1"
|
|
14
|
+
timezone: "UTC"
|
|
15
|
+
runner: agent-prompt
|
|
16
|
+
prompt: |
|
|
17
|
+
Review the list of pets microchipped in the last {{lookback_days}} days
|
|
18
|
+
from {{practice_management_system}}: {{unregistered_chips_list}}.
|
|
19
|
+
1. For each chip, note whether the record shows it was registered with
|
|
20
|
+
the manufacturer's registry (e.g. HomeAgain, 24PetWatch, AKC
|
|
21
|
+
Reunite) and, if so, whether the owner contact info on file matches
|
|
22
|
+
the registry.
|
|
23
|
+
2. List any chip implanted but with no registration confirmed, and any
|
|
24
|
+
chip where the owner's phone/email on file has since changed
|
|
25
|
+
without the registry being updated.
|
|
26
|
+
3. Draft a short reminder message for owners with unregistered or
|
|
27
|
+
stale-registration chips, explaining briefly why an unregistered
|
|
28
|
+
chip won't reunite them with a lost pet.
|
|
29
|
+
variables:
|
|
30
|
+
practice_management_system:
|
|
31
|
+
default: "your practice management system"
|
|
32
|
+
description: Name of the system where microchip implant records live.
|
|
33
|
+
unregistered_chips_list:
|
|
34
|
+
default: "the clinic's microchip implant log for the period"
|
|
35
|
+
description: Source of implanted-chip records to check against registry status.
|
|
36
|
+
lookback_days:
|
|
37
|
+
default: 30
|
|
38
|
+
description: How far back to check for recently implanted chips.
|
|
39
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
40
|
+
notes: Draft-only outreach — registry lookups may require checking the specific manufacturer's site or portal, since there's no single universal microchip registry.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
id: patient-record-completeness-audit
|
|
2
|
+
version: 1
|
|
3
|
+
name: Patient (Pet) Record Completeness Audit
|
|
4
|
+
description: >
|
|
5
|
+
Spot-checks a sample of recent patient records for missing required
|
|
6
|
+
fields — weight, vaccine history, allergy flags, microchip number — and
|
|
7
|
+
lists the gaps. Use this if a chart has ever been missing a documented
|
|
8
|
+
drug allergy right when it mattered, because record completeness was
|
|
9
|
+
never actually reviewed, only assumed.
|
|
10
|
+
category: veterinary
|
|
11
|
+
tags: [veterinary, records, compliance, audit, patients]
|
|
12
|
+
schedule: "0 10 * * 3"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: agent-prompt
|
|
15
|
+
prompt: |
|
|
16
|
+
Review a sample of {{sample_size}} recent patient records from
|
|
17
|
+
{{practice_management_system}}, prioritizing patients seen in the last
|
|
18
|
+
{{lookback_days}} days.
|
|
19
|
+
1. For each record, check whether the following are present and current:
|
|
20
|
+
current weight, vaccine history, known allergies (or "none recorded"
|
|
21
|
+
explicitly, not just blank), and microchip number.
|
|
22
|
+
2. List each record with missing fields, grouped by which field is
|
|
23
|
+
missing most often across the sample — that's usually the intake
|
|
24
|
+
step actually breaking down.
|
|
25
|
+
3. Flag any record where an allergy field is blank rather than
|
|
26
|
+
explicitly marked "none" — a blank field is ambiguous and riskier
|
|
27
|
+
than a marked "none."
|
|
28
|
+
4. Suggest one process fix if the same field is missing across most of
|
|
29
|
+
the sample (e.g. "weight isn't being logged at check-in").
|
|
30
|
+
variables:
|
|
31
|
+
practice_management_system:
|
|
32
|
+
default: "your practice management system"
|
|
33
|
+
description: Name of the system where patient records live.
|
|
34
|
+
sample_size:
|
|
35
|
+
default: 20
|
|
36
|
+
description: Number of recent records to sample for the audit.
|
|
37
|
+
lookback_days:
|
|
38
|
+
default: 30
|
|
39
|
+
description: How far back to pull records from for the sample.
|
|
40
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
41
|
+
notes: Sampling audit, not a full chart review — use findings to spot a broken intake step, not to grade individual staff.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
id: pet-medication-refill-backlog-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Pet Medication Refill Request Backlog Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks pending prescription/food refill requests against how long
|
|
6
|
+
they've been waiting and flags anything past a reasonable turnaround.
|
|
7
|
+
Use this if a client has ever run out of a pet's chronic medication
|
|
8
|
+
(e.g. thyroid or seizure medication) because a refill request sat
|
|
9
|
+
unanswered in the queue over a weekend.
|
|
10
|
+
category: veterinary
|
|
11
|
+
tags: [veterinary, prescriptions, refills, patients, medication]
|
|
12
|
+
schedule: "0 9,15 * * 1-5"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
today=$(date +%s);
|
|
17
|
+
awk -F',' -v today="$today" -v hours="{{escalate_after_hours}}" '
|
|
18
|
+
NR==1 {next}
|
|
19
|
+
$4 == "pending" {
|
|
20
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
21
|
+
cmd | getline requested_epoch; close(cmd);
|
|
22
|
+
age_hours = (today - requested_epoch) / 3600;
|
|
23
|
+
if (age_hours >= hours) {
|
|
24
|
+
printf "REFILL PENDING: %s (%s) — %s requested %s (%d hrs ago)\n", $1, $2, $5, $3, age_hours;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
' "{{refill_requests_csv_path}}"
|
|
28
|
+
variables:
|
|
29
|
+
refill_requests_csv_path:
|
|
30
|
+
default: "./pet-refill-requests.csv"
|
|
31
|
+
description: "Path to a CSV with columns: pet_name,owner_name,requested_date (YYYY-MM-DD),status (pending/approved/denied),medication."
|
|
32
|
+
escalate_after_hours:
|
|
33
|
+
default: 48
|
|
34
|
+
description: Hours a refill request can sit pending before it's flagged.
|
|
35
|
+
compatible_agents: [generic, claude, codex]
|
|
36
|
+
notes: Read-only triage — actual approval of a refill is a clinical decision made by the veterinarian, not this job. Flag chronic/maintenance medications for priority handling.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
id: puppy-kitten-vaccine-series-compliance-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Puppy/Kitten Vaccine Series Compliance Check
|
|
4
|
+
description: >
|
|
5
|
+
Tracks young patients partway through their initial multi-dose vaccine
|
|
6
|
+
series and flags anyone who missed the next dose window. Use this if a
|
|
7
|
+
puppy or kitten has ever fallen off after the first shot in a series,
|
|
8
|
+
leaving them under-protected because nobody tracked series progress
|
|
9
|
+
separately from routine adult booster due dates — distinct from
|
|
10
|
+
pet-vaccine-due-reminder.yaml, which tracks single due-date reminders
|
|
11
|
+
rather than a multi-dose series with its own interval rules.
|
|
12
|
+
category: veterinary
|
|
13
|
+
tags: [veterinary, vaccine, puppy, kitten, patients]
|
|
14
|
+
schedule: "0 8 * * *"
|
|
15
|
+
timezone: "UTC"
|
|
16
|
+
runner: agent-prompt
|
|
17
|
+
prompt: |
|
|
18
|
+
Review the puppy/kitten vaccine series tracking export from
|
|
19
|
+
{{practice_management_system}} for patients currently mid-series
|
|
20
|
+
(i.e. have had at least one dose of a multi-dose series but not the
|
|
21
|
+
final dose).
|
|
22
|
+
1. For each patient, note the series (e.g. DHPP, FVRCP), which dose
|
|
23
|
+
number they're on, the date of their last dose, and the
|
|
24
|
+
recommended interval to the next dose ({{series_interval_weeks}}
|
|
25
|
+
weeks is typical but confirm against the specific vaccine's label).
|
|
26
|
+
2. Flag anyone past their expected next-dose window with no
|
|
27
|
+
appointment booked.
|
|
28
|
+
3. Sort by most overdue first, since a gap in a puppy/kitten series
|
|
29
|
+
can mean restarting the series depending on how long the gap was.
|
|
30
|
+
4. Draft a short reminder message per overdue patient for the owner.
|
|
31
|
+
variables:
|
|
32
|
+
practice_management_system:
|
|
33
|
+
default: "your practice management system"
|
|
34
|
+
description: Name of the system where vaccine series records live.
|
|
35
|
+
series_interval_weeks:
|
|
36
|
+
default: 3
|
|
37
|
+
description: Typical interval in weeks between doses in a puppy/kitten vaccine series (varies by vaccine and product label).
|
|
38
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
39
|
+
notes: Draft-only — always confirm dosing interval and restart rules against the specific vaccine manufacturer's label, since gap tolerance varies by product.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
id: senior-pet-wellness-recall-tracker
|
|
2
|
+
version: 1
|
|
3
|
+
name: Senior Pet Wellness Recall Tracker
|
|
4
|
+
description: >
|
|
5
|
+
Finds senior pets (past a configurable age threshold) who are overdue
|
|
6
|
+
for a semi-annual senior wellness exam or bloodwork panel and drafts
|
|
7
|
+
outreach. Use this if an older pet has ever gone a full year between
|
|
8
|
+
visits when twice-yearly senior screening would have caught a treatable
|
|
9
|
+
condition early — distinct from pet-vaccine-due-reminder.yaml, which
|
|
10
|
+
tracks vaccine due dates rather than age-based wellness screening
|
|
11
|
+
cadence.
|
|
12
|
+
category: veterinary
|
|
13
|
+
tags: [veterinary, senior-pets, wellness, recall, outreach]
|
|
14
|
+
schedule: "0 8 1 * *"
|
|
15
|
+
timezone: "UTC"
|
|
16
|
+
runner: agent-prompt
|
|
17
|
+
prompt: |
|
|
18
|
+
Check {{practice_management_system}} for patients aged
|
|
19
|
+
{{senior_age_threshold_years}} years or older whose last wellness
|
|
20
|
+
exam or senior bloodwork panel was more than
|
|
21
|
+
{{recall_interval_months}} months ago, with no future appointment
|
|
22
|
+
booked.
|
|
23
|
+
1. List each pet, species/breed if known, last visit date, and how
|
|
24
|
+
overdue they are.
|
|
25
|
+
2. Sort by most overdue first.
|
|
26
|
+
3. Draft a short outreach message per pet (or a reusable template)
|
|
27
|
+
inviting the owner to book a senior wellness visit, mentioning
|
|
28
|
+
that early screening catches age-related conditions while they're
|
|
29
|
+
still manageable.
|
|
30
|
+
4. Separately call out any pet more than double the recall interval
|
|
31
|
+
overdue.
|
|
32
|
+
variables:
|
|
33
|
+
practice_management_system:
|
|
34
|
+
default: "your practice management system"
|
|
35
|
+
description: Name of the system where appointment history lives.
|
|
36
|
+
senior_age_threshold_years:
|
|
37
|
+
default: 7
|
|
38
|
+
description: Age in years at which a pet is treated as a senior for recall purposes.
|
|
39
|
+
recall_interval_months:
|
|
40
|
+
default: 6
|
|
41
|
+
description: How many months between senior wellness visits before a pet counts as due.
|
|
42
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
43
|
+
notes: Draft-only — outreach messages should be reviewed by staff before sending. Senior age threshold varies by species/breed; adjust the default per your patient mix.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: spay-neuter-followup-compliance-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Spay/Neuter Post-Op Follow-Up Compliance Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks which spay/neuter patients are due for their post-op recheck
|
|
6
|
+
(incision check, suture removal) and haven't had one logged. Use this
|
|
7
|
+
if a pet has ever developed an incision complication that would have
|
|
8
|
+
been caught at a recheck nobody scheduled or confirmed happened.
|
|
9
|
+
category: veterinary
|
|
10
|
+
tags: [veterinary, surgery, post-op, follow-up, compliance]
|
|
11
|
+
schedule: "0 8 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
today=$(date +%s);
|
|
16
|
+
awk -F',' -v today="$today" -v window="{{recheck_window_days}}" '
|
|
17
|
+
NR==1 {next}
|
|
18
|
+
$4 != "completed" {
|
|
19
|
+
cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
|
|
20
|
+
cmd | getline surgery_epoch; close(cmd);
|
|
21
|
+
days_since = (today - surgery_epoch) / 86400;
|
|
22
|
+
if (days_since >= window) {
|
|
23
|
+
printf "NO RECHECK LOGGED: %s (%s) — surgery %s, %d days ago, recheck status: %s\n", $1, $3, $2, days_since, $4;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
' "{{spay_neuter_csv_path}}"
|
|
27
|
+
variables:
|
|
28
|
+
spay_neuter_csv_path:
|
|
29
|
+
default: "./spay-neuter-cases.csv"
|
|
30
|
+
description: "Path to a CSV with columns: pet_name,surgery_date (YYYY-MM-DD),owner_name,recheck_status (scheduled/completed/none)."
|
|
31
|
+
recheck_window_days:
|
|
32
|
+
default: 10
|
|
33
|
+
description: Days after surgery by which a post-op recheck should be scheduled or completed.
|
|
34
|
+
compatible_agents: [generic, claude, codex]
|
|
35
|
+
notes: Assumes a maintained export from your practice management system — this is a backstop for cases that fell out of the recheck workflow, not a substitute for discharge instructions.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
id: specialist-referral-followup-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Veterinary Specialist Referral Follow-Up Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks outbound referrals to veterinary specialists (cardiology,
|
|
6
|
+
oncology, orthopedic surgery, etc.) that haven't been scheduled or
|
|
7
|
+
completed within a set window and flags them for follow-up. Use this
|
|
8
|
+
if a pet has ever been referred out for a serious condition and the
|
|
9
|
+
primary clinic never confirmed the owner actually followed through and
|
|
10
|
+
got the specialist appointment.
|
|
11
|
+
category: veterinary
|
|
12
|
+
tags: [veterinary, referrals, specialists, follow-up, care-coordination]
|
|
13
|
+
schedule: "0 8 * * 1-5"
|
|
14
|
+
timezone: "UTC"
|
|
15
|
+
runner: shell
|
|
16
|
+
command: >
|
|
17
|
+
today=$(date +%s);
|
|
18
|
+
awk -F',' -v today="$today" -v days="{{stale_days}}" '
|
|
19
|
+
NR==1 {next}
|
|
20
|
+
$4 != "" {next}
|
|
21
|
+
{
|
|
22
|
+
cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
|
|
23
|
+
cmd | getline sent_epoch; close(cmd);
|
|
24
|
+
pending_days = (today - sent_epoch) / 86400;
|
|
25
|
+
if (pending_days >= days) {
|
|
26
|
+
printf "STALE REFERRAL: %s -> %s (%s) sent %s (%d days pending, no scheduled date)\n", $1, $2, $5, $3, pending_days;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
' "{{referrals_csv_path}}"
|
|
30
|
+
variables:
|
|
31
|
+
referrals_csv_path:
|
|
32
|
+
default: "./specialist-referrals.csv"
|
|
33
|
+
description: "Path to a CSV with columns: pet_name,specialist_name,referral_sent_date (YYYY-MM-DD),scheduled_date (blank if not yet scheduled),specialty."
|
|
34
|
+
stale_days:
|
|
35
|
+
default: 14
|
|
36
|
+
description: Days since a referral was sent, with no scheduled date, before it's flagged.
|
|
37
|
+
compatible_agents: [generic, claude, codex]
|
|
38
|
+
notes: Assumes a maintained CSV export of outbound specialist referrals from your practice management system; adjust columns to match your export.
|