@wonsukchoi/crondex 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +34 -27
  2. package/catalog.json +1790 -40
  3. package/jobs/agriculture/crop-price-market-watch.yaml +32 -0
  4. package/jobs/agriculture/livestock-feed-stock-check.yaml +35 -0
  5. package/jobs/automotive/loaner-vehicle-return-reminder.yaml +35 -0
  6. package/jobs/automotive/parts-backorder-check.yaml +33 -0
  7. package/jobs/automotive/repair-order-aging-check.yaml +35 -0
  8. package/jobs/childcare/immunization-record-compliance-check.yaml +33 -0
  9. package/jobs/childcare/staff-child-ratio-compliance-check.yaml +30 -0
  10. package/jobs/childcare/tuition-payment-late-check.yaml +35 -0
  11. package/jobs/construction/equipment-rental-return-reminder.yaml +35 -0
  12. package/jobs/construction/subcontractor-insurance-expiry-check.yaml +35 -0
  13. package/jobs/creator/sponsorship-deliverable-tracker.yaml +38 -0
  14. package/jobs/crypto/defi-liquidation-risk-watch.yaml +36 -0
  15. package/jobs/crypto/token-unlock-vesting-watch.yaml +34 -0
  16. package/jobs/ecommerce/checkout-conversion-drop-watch.yaml +39 -0
  17. package/jobs/ecommerce/negative-review-alert.yaml +35 -0
  18. package/jobs/education/at-risk-student-grade-watch.yaml +35 -0
  19. package/jobs/education/field-trip-permission-slip-check.yaml +36 -0
  20. package/jobs/events/attendee-checkin-rate-watch.yaml +37 -0
  21. package/jobs/events/event-staffing-shortfall-check.yaml +34 -0
  22. package/jobs/fitness/class-utilization-check.yaml +32 -0
  23. package/jobs/fitness/gym-equipment-maintenance-check.yaml +35 -0
  24. package/jobs/fitness/gym-membership-renewal-reminder.yaml +35 -0
  25. package/jobs/fleet/driver-license-cdl-expiry-check.yaml +35 -0
  26. package/jobs/fleet/vehicle-inspection-due-check.yaml +35 -0
  27. package/jobs/gaming/game-server-uptime-check.yaml +34 -0
  28. package/jobs/gaming/tournament-registration-deadline-check.yaml +34 -0
  29. package/jobs/government/constituent-casework-followup-check.yaml +33 -0
  30. package/jobs/government/foia-request-deadline-check.yaml +36 -0
  31. package/jobs/government/permit-application-backlog-check.yaml +37 -0
  32. package/jobs/healthcare/insurance-eligibility-verification-check.yaml +32 -0
  33. package/jobs/healthcare/lab-result-followup-check.yaml +34 -0
  34. package/jobs/hiring/background-check-status-check.yaml +35 -0
  35. package/jobs/hiring/interview-feedback-overdue-check.yaml +33 -0
  36. package/jobs/hospitality/guest-maintenance-request-backlog-check.yaml +35 -0
  37. package/jobs/hospitality/guest-review-response-check.yaml +35 -0
  38. package/jobs/hr/exit-interview-completion-check.yaml +33 -0
  39. package/jobs/hr/performance-review-cycle-reminder.yaml +34 -0
  40. package/jobs/insurance/certificate-of-insurance-request-check.yaml +38 -0
  41. package/jobs/insurance/premium-payment-due-reminder.yaml +35 -0
  42. package/jobs/inventory/inventory-shrinkage-watch.yaml +36 -0
  43. package/jobs/inventory/overstock-slow-mover-check.yaml +36 -0
  44. package/jobs/investing/earnings-calendar-watch.yaml +32 -0
  45. package/jobs/investing/tax-loss-harvesting-review.yaml +33 -0
  46. package/jobs/legal/compliance-filing-deadline-reminder.yaml +38 -0
  47. package/jobs/logistics/container-demurrage-fee-watch.yaml +35 -0
  48. package/jobs/logistics/last-mile-delivery-exception-check.yaml +36 -0
  49. package/jobs/manufacturing/raw-material-shortage-risk-check.yaml +31 -0
  50. package/jobs/manufacturing/supplier-otd-performance-watch.yaml +38 -0
  51. package/jobs/marketing/campaign-utm-tracking-check.yaml +41 -0
  52. package/jobs/nonprofit/board-action-item-followup-check.yaml +28 -0
  53. package/jobs/nonprofit/grant-reporting-deadline-check.yaml +38 -0
  54. package/jobs/podcast/podcast-download-drop-watch.yaml +42 -0
  55. package/jobs/podcast/podcast-rating-review-watch.yaml +37 -0
  56. package/jobs/realestate/property-tax-deadline-reminder.yaml +35 -0
  57. package/jobs/restaurant/food-cost-percentage-watch.yaml +35 -0
  58. package/jobs/restaurant/labor-cost-percentage-watch.yaml +36 -0
  59. package/jobs/retail/employee-shift-gap-check.yaml +35 -0
  60. package/jobs/retail/pos-till-reconciliation-check.yaml +33 -0
  61. package/jobs/retail/store-opening-checklist-reminder.yaml +30 -0
  62. package/jobs/support/agent-workload-balance-check.yaml +30 -0
  63. package/jobs/support/ticket-reopened-rate-watch.yaml +35 -0
  64. package/jobs/team/on-call-fatigue-check.yaml +39 -0
  65. package/jobs/veterinary/boarding-checkout-reminder.yaml +29 -0
  66. package/jobs/veterinary/controlled-substance-log-audit.yaml +33 -0
  67. package/jobs/veterinary/pet-vaccine-due-reminder.yaml +34 -0
  68. package/jobs/warehousing/climate-control-compliance-check.yaml +40 -0
  69. package/jobs/warehousing/dock-schedule-conflict-check.yaml +30 -0
  70. package/jobs/warehousing/pick-pack-error-rate-watch.yaml +35 -0
  71. package/package.json +1 -1
@@ -0,0 +1,35 @@
1
+ id: food-cost-percentage-watch
2
+ version: 1
3
+ name: Food Cost Percentage Watch
4
+ description: >
5
+ Checks food cost as a percentage of sales against your target and flags
6
+ it when it runs high. Use this if food cost has ever crept up for weeks
7
+ before anyone pulled the numbers and noticed margins were shrinking.
8
+ category: restaurant
9
+ tags: [restaurant, food-cost, margin, finance]
10
+ schedule: "0 8 * * 1"
11
+ timezone: "America/New_York"
12
+ runner: shell
13
+ command: >
14
+ cogs="{{food_cost_usd}}";
15
+ sales="{{sales_revenue_usd}}";
16
+ target="{{target_food_cost_pct}}";
17
+ pct=$(awk -v c="$cogs" -v s="$sales" 'BEGIN{ if (s>0) printf "%.1f", (c/s)*100; else print "0" }');
18
+ if awk -v p="$pct" -v t="$target" 'BEGIN{exit !(p > t)}'; then
19
+ echo "WARNING: food cost at $pct% of sales (target $target%)";
20
+ exit 1;
21
+ else
22
+ echo "OK: food cost at $pct% of sales (target $target%)";
23
+ fi
24
+ variables:
25
+ food_cost_usd:
26
+ default: 0
27
+ description: Total cost of food used for the period (from your POS/inventory system).
28
+ sales_revenue_usd:
29
+ default: 0
30
+ description: Total food sales revenue for the same period.
31
+ target_food_cost_pct:
32
+ default: 30
33
+ description: Target food cost as a percentage of sales.
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: Feed in period totals from your POS/accounting export — this compares a single period's ratio, so schedule it to match how often you close out food-cost numbers (weekly is typical).
@@ -0,0 +1,36 @@
1
+ id: labor-cost-percentage-watch
2
+ version: 1
3
+ name: Labor Cost Percentage Watch
4
+ description: >
5
+ Checks labor cost as a percentage of sales against your target and
6
+ flags it when it runs high. Use this if overstaffing on a slow shift
7
+ has ever quietly eaten a week's margin before anyone pulled the labor
8
+ numbers and noticed.
9
+ category: restaurant
10
+ tags: [restaurant, labor-cost, margin, finance]
11
+ schedule: "0 8 * * 1"
12
+ timezone: "America/New_York"
13
+ runner: shell
14
+ command: >
15
+ labor="{{labor_cost_usd}}";
16
+ sales="{{sales_revenue_usd}}";
17
+ target="{{target_labor_cost_pct}}";
18
+ pct=$(awk -v l="$labor" -v s="$sales" 'BEGIN{ if (s>0) printf "%.1f", (l/s)*100; else print "0" }');
19
+ if awk -v p="$pct" -v t="$target" 'BEGIN{exit !(p > t)}'; then
20
+ echo "WARNING: labor cost at $pct% of sales (target $target%)";
21
+ exit 1;
22
+ else
23
+ echo "OK: labor cost at $pct% of sales (target $target%)";
24
+ fi
25
+ variables:
26
+ labor_cost_usd:
27
+ default: 0
28
+ description: Total labor cost (wages, not including benefits/taxes unless you want them included) for the period.
29
+ sales_revenue_usd:
30
+ default: 0
31
+ description: Total sales revenue for the same period.
32
+ target_labor_cost_pct:
33
+ default: 30
34
+ description: Target labor cost as a percentage of sales.
35
+ compatible_agents: [generic, claude, codex]
36
+ notes: Parallel structure to `food-cost-percentage-watch` — feed in period totals from your POS/payroll export, scheduled to match how often you close out labor numbers.
@@ -0,0 +1,35 @@
1
+ id: employee-shift-gap-check
2
+ version: 1
3
+ name: Employee Shift Gap Check
4
+ description: >
5
+ Checks the upcoming schedule for unfilled shifts and flags them while
6
+ there's still time to find coverage. Use this if a shift has ever gone
7
+ unfilled and nobody noticed until the store was short-staffed that
8
+ morning.
9
+ category: retail
10
+ tags: [retail, scheduling, staffing, shifts]
11
+ schedule: "0 9 * * *"
12
+ timezone: "America/New_York"
13
+ runner: shell
14
+ command: >
15
+ awk -F',' -v days="{{lookahead_days}}" '
16
+ NR==1 {next}
17
+ $3 == "unfilled" {
18
+ cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
19
+ cmd | getline shift_epoch; close(cmd);
20
+ "date +%s" | getline now_epoch; close("date +%s");
21
+ diff_days = (shift_epoch - now_epoch) / 86400;
22
+ if (diff_days >= 0 && diff_days <= days) {
23
+ printf "UNFILLED: %s shift on %s (%d days out)\n", $1, $2, diff_days;
24
+ }
25
+ }
26
+ ' "{{schedule_csv_path}}"
27
+ variables:
28
+ schedule_csv_path:
29
+ default: "./employee-schedule.csv"
30
+ description: "Path to a CSV with columns: shift_name,shift_date (YYYY-MM-DD),status (filled/unfilled)."
31
+ lookahead_days:
32
+ default: 7
33
+ description: How many days ahead to check for unfilled shifts.
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: Export this from your scheduling software (When I Work, Homebase, Deputy) on a schedule to keep the CSV current.
@@ -0,0 +1,33 @@
1
+ id: pos-till-reconciliation-check
2
+ version: 1
3
+ name: POS Till Reconciliation Check
4
+ description: >
5
+ Checks each register's end-of-day cash count against expected POS
6
+ totals and flags any discrepancy. Use this if a till has ever come up
7
+ short for days running before anyone connected the pattern to a
8
+ specific shift or register.
9
+ category: retail
10
+ tags: [retail, pos, cash, reconciliation]
11
+ schedule: "0 23 * * *"
12
+ timezone: "America/New_York"
13
+ runner: shell
14
+ command: >
15
+ awk -F',' -v tolerance="{{tolerance_usd}}" '
16
+ NR==1 {next}
17
+ {
18
+ diff = $3 - $2;
19
+ abs_diff = (diff < 0) ? -diff : diff;
20
+ if (abs_diff > tolerance) {
21
+ printf "DISCREPANCY: register %s — expected $%.2f, counted $%.2f (diff $%.2f)\n", $1, $2, $3, diff;
22
+ }
23
+ }
24
+ ' "{{till_counts_csv_path}}"
25
+ variables:
26
+ till_counts_csv_path:
27
+ default: "./till-counts.csv"
28
+ description: "Path to a CSV with columns: register_id,pos_expected_total,counted_total — one row per register per closing shift."
29
+ tolerance_usd:
30
+ default: 5.00
31
+ description: Acceptable discrepancy in dollars before flagging.
32
+ compatible_agents: [generic, claude, codex]
33
+ notes: A repeated discrepancy on the same register or shift is a much bigger signal than a single one-off — worth tracking over time, not just per-day.
@@ -0,0 +1,30 @@
1
+ id: store-opening-checklist-reminder
2
+ version: 1
3
+ name: Store Opening Checklist Reminder
4
+ description: >
5
+ Reminds the opening shift of the standard opening checklist every day,
6
+ not just when a manager happens to be on site to run it from memory.
7
+ Use this if the store has ever opened late, or opened with something
8
+ missed (lights, POS not booted, signage not out), because the checklist
9
+ lived only in one person's head.
10
+ category: retail
11
+ tags: [retail, checklist, opening, operations]
12
+ schedule: "0 8 * * *"
13
+ timezone: "America/New_York"
14
+ runner: shell
15
+ command: >
16
+ echo "Store opening checklist ({{checklist_path}}):";
17
+ if [ -f "{{checklist_path}}" ]; then cat "{{checklist_path}}"; else
18
+ echo "- Unlock doors, disarm alarm";
19
+ echo "- Turn on lights, signage, music";
20
+ echo "- Boot and log into POS terminals";
21
+ echo "- Count starting cash drawer";
22
+ echo "- Check overnight deliveries/restocking needs";
23
+ echo "- Walk the floor for cleanliness/facing";
24
+ fi
25
+ variables:
26
+ checklist_path:
27
+ default: "./store-opening-checklist.txt"
28
+ description: Optional path to your own custom checklist file; falls back to a standard baseline if not found.
29
+ compatible_agents: [generic, claude, codex]
30
+ notes: A recurring reminder/checklist print, not an automated door-unlock or alarm system — pair with your actual physical security systems as needed.
@@ -0,0 +1,30 @@
1
+ id: agent-workload-balance-check
2
+ version: 1
3
+ name: Support Agent Workload Balance Check
4
+ description: >
5
+ Checks how open tickets are distributed across agents and flags a real
6
+ imbalance. Use this if one agent has ever quietly ended up carrying
7
+ double the ticket load of a teammate because assignment was manual and
8
+ nobody was watching the split.
9
+ category: support
10
+ tags: [support, workload, agents, balance]
11
+ schedule: "0 9 * * *"
12
+ timezone: "UTC"
13
+ runner: agent-prompt
14
+ prompt: |
15
+ Check {{helpdesk_platform}} for currently open ticket counts per agent.
16
+ 1. List each agent's open ticket count.
17
+ 2. Flag any agent carrying {{imbalance_multiplier}}x or more the team
18
+ average as overloaded.
19
+ 3. Flag any agent with zero or very few open tickets while others are
20
+ overloaded — that's the other half of the imbalance worth surfacing.
21
+ 4. If the distribution looks reasonably even, say so in one line.
22
+ variables:
23
+ helpdesk_platform:
24
+ default: "your helpdesk (e.g. Zendesk, Intercom, Freshdesk)"
25
+ description: Where ticket assignment data is tracked.
26
+ imbalance_multiplier:
27
+ default: 1.5
28
+ description: How many times above the team average counts as overloaded.
29
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
30
+ notes: Read-only signal — rebalancing assignments is a team-lead decision, not something this job does automatically.
@@ -0,0 +1,35 @@
1
+ id: ticket-reopened-rate-watch
2
+ version: 1
3
+ name: Ticket Reopened Rate Watch
4
+ description: >
5
+ Checks what percentage of closed tickets get reopened and flags it when
6
+ the rate climbs — a quality signal that's different from SLA or backlog
7
+ size. Use this if tickets have ever been closed to hit a metric and
8
+ quietly bounced right back, without anyone tracking the reopen rate
9
+ itself.
10
+ category: support
11
+ tags: [support, tickets, quality, reopened]
12
+ schedule: "0 9 * * 1"
13
+ timezone: "UTC"
14
+ runner: agent-prompt
15
+ prompt: |
16
+ Check {{helpdesk_platform}} for tickets closed in the last
17
+ {{lookback_days}} days.
18
+ 1. Calculate what percentage were reopened at least once after closing.
19
+ 2. Compare against the target of {{target_reopen_pct}}%.
20
+ 3. If above target, look for a pattern in the reopened tickets — same
21
+ agent, same issue category, same customer — rather than treating
22
+ each as an isolated case.
23
+ 4. If at or below target, report the rate in one line.
24
+ variables:
25
+ helpdesk_platform:
26
+ default: "your helpdesk (e.g. Zendesk, Intercom, Freshdesk)"
27
+ description: Where ticket status history is tracked.
28
+ lookback_days:
29
+ default: 7
30
+ description: How far back to check closed tickets.
31
+ target_reopen_pct:
32
+ default: 5
33
+ description: Target reopen rate percentage — above this is worth investigating.
34
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
35
+ notes: A high reopen rate usually points at a process problem (closing too early, incomplete fixes) rather than any single ticket being mishandled — read it as a trend, not a per-ticket blame signal.
@@ -0,0 +1,39 @@
1
+ id: on-call-fatigue-check
2
+ version: 1
3
+ name: On-Call Fatigue Check
4
+ description: >
5
+ Checks the on-call rotation history and flags if the same person has
6
+ been covering on-call more often than the rotation intends. Use this if
7
+ someone has ever quietly ended up on-call three weeks running because
8
+ swaps kept landing on the same person and nobody was tracking the
9
+ pattern.
10
+ category: team
11
+ tags: [team, oncall, rotation, burnout]
12
+ schedule: "0 9 * * 1"
13
+ timezone: "UTC"
14
+ runner: shell
15
+ command: >
16
+ awk -F',' -v weeks="{{lookback_weeks}}" -v max_share="{{max_share_pct}}" '
17
+ NR==1 {next}
18
+ { count[$1]++; total++ }
19
+ END {
20
+ for (person in count) {
21
+ pct = (count[person] / total) * 100;
22
+ if (pct >= max_share) {
23
+ printf "IMBALANCE: %s covered %d of %d on-call shifts (%.0f%%) in the last %s weeks\n", person, count[person], total, pct, weeks;
24
+ }
25
+ }
26
+ }
27
+ ' "{{oncall_history_csv_path}}"
28
+ variables:
29
+ oncall_history_csv_path:
30
+ default: "./oncall-history.csv"
31
+ description: "Path to a CSV with one row per on-call shift, column: person_name — covering the lookback window."
32
+ lookback_weeks:
33
+ default: 8
34
+ description: How many weeks of on-call history the CSV covers (for labeling output).
35
+ max_share_pct:
36
+ default: 40
37
+ description: Percentage share of total shifts above which one person is carrying a disproportionate load.
38
+ compatible_agents: [generic, claude, codex]
39
+ notes: Complements `oncall-handoff-reminder` (per-shift handoff notes) by looking at the rotation pattern over time instead of a single handoff.
@@ -0,0 +1,29 @@
1
+ id: boarding-checkout-reminder
2
+ version: 1
3
+ name: Boarding/Kennel Checkout Reminder
4
+ description: >
5
+ Lists pets scheduled to check out of boarding today or tomorrow, plus
6
+ anyone past their scheduled checkout with no extension logged. Use this
7
+ if a boarded pet has ever stayed an extra unplanned day because nobody
8
+ cross-checked the boarding calendar against who was actually still
9
+ there.
10
+ category: veterinary
11
+ tags: [veterinary, boarding, kennel, schedule]
12
+ schedule: "0 7 * * *"
13
+ timezone: "UTC"
14
+ runner: shell
15
+ command: >
16
+ today=$(date +%Y-%m-%d);
17
+ awk -F',' -v today="$today" '
18
+ NR==1 {next}
19
+ {
20
+ if ($3 == today) print "CHECKOUT TODAY: " $1 " (" $2 ")";
21
+ else if ($3 < today && $4 != "extended") print "OVERDUE CHECKOUT: " $1 " (" $2 ") — was due " $3;
22
+ }
23
+ ' "{{boarding_csv_path}}"
24
+ variables:
25
+ boarding_csv_path:
26
+ default: "./boarding-schedule.csv"
27
+ description: "Path to a CSV with columns: pet_name,owner_name,checkout_date (YYYY-MM-DD),status (or 'extended' if the stay was extended)."
28
+ compatible_agents: [generic, claude, codex]
29
+ notes: Update the CSV whenever a stay is extended so it doesn't get flagged as overdue — this just cross-checks dates, it doesn't know about a phone call extending someone's stay.
@@ -0,0 +1,33 @@
1
+ id: controlled-substance-log-audit
2
+ version: 1
3
+ name: Controlled Substance Log Audit
4
+ description: >
5
+ Checks the controlled-substance usage log for gaps or unreconciled
6
+ counts. Use this if a discrepancy in the controlled-drug log has ever
7
+ gone unnoticed for weeks instead of being caught the same day it
8
+ happened, which is exactly what a DEA/board inspection will ask about.
9
+ category: veterinary
10
+ tags: [veterinary, controlled-substances, compliance, audit]
11
+ schedule: "0 20 * * *"
12
+ timezone: "UTC"
13
+ runner: agent-prompt
14
+ prompt: |
15
+ Read today's controlled-substance log from {{log_source}} for
16
+ {{substances_tracked}}.
17
+ 1. Check that every entry has a matching patient/case reference — flag
18
+ any entry missing one.
19
+ 2. Compare running balance against the last physical count on record;
20
+ flag any mismatch.
21
+ 3. Flag any day with zero entries logged if the practice was open and
22
+ controlled substances are known to be in regular use — a
23
+ suspiciously quiet log is itself worth a second look.
24
+ 4. If everything reconciles, say so in one line.
25
+ variables:
26
+ log_source:
27
+ default: "your controlled-substance log (paper log photographed/transcribed, or e-log system)"
28
+ description: Where the controlled-substance usage log is recorded.
29
+ substances_tracked:
30
+ default: "ketamine, butorphanol, and other Schedule II-IV substances kept on site"
31
+ description: Which substances this log covers.
32
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
33
+ notes: Read-only reconciliation check — does not replace your practice's actual DEA-compliant logging system, and any discrepancy found should go through your normal reporting/investigation process.
@@ -0,0 +1,34 @@
1
+ id: pet-vaccine-due-reminder
2
+ version: 1
3
+ name: Pet Vaccine Due Reminder
4
+ description: >
5
+ Checks which patients are due or overdue for a vaccine and lists them
6
+ for outreach. Use this if a pet has ever gone a year past due for a
7
+ core vaccine because the reminder postcard got lost in the mail.
8
+ category: veterinary
9
+ tags: [veterinary, vaccine, patients, reminder]
10
+ schedule: "0 8 * * *"
11
+ timezone: "UTC"
12
+ runner: shell
13
+ command: >
14
+ awk -F',' -v days="{{warn_days_before}}" '
15
+ NR==1 {next}
16
+ {
17
+ cmd = "date -d \"" $3 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $3 "\" +%s 2>/dev/null";
18
+ cmd | getline due_epoch; close(cmd);
19
+ "date +%s" | getline now_epoch; close("date +%s");
20
+ diff_days = (due_epoch - now_epoch) / 86400;
21
+ if (diff_days <= days) {
22
+ printf "VACCINE DUE: %s (%s) — %s due %s (%d days)\n", $1, $2, $4, $3, diff_days;
23
+ }
24
+ }
25
+ ' "{{patients_csv_path}}"
26
+ variables:
27
+ patients_csv_path:
28
+ default: "./pet-vaccines.csv"
29
+ description: "Path to a CSV with columns: pet_name,owner_name,due_date (YYYY-MM-DD),vaccine_type."
30
+ warn_days_before:
31
+ default: 14
32
+ description: How many days before (or past) the due date to start listing.
33
+ compatible_agents: [generic, claude, codex]
34
+ notes: Assumes a maintained export from your practice management software — this is the "did anyone actually check the due list" backstop.
@@ -0,0 +1,40 @@
1
+ id: climate-control-compliance-check
2
+ version: 1
3
+ name: Warehouse Climate Control Compliance Check
4
+ description: >
5
+ Checks temperature/humidity logs for climate-controlled storage areas
6
+ and flags any reading outside the safe range. Use this if product has
7
+ ever been damaged or spoiled because a climate-controlled zone drifted
8
+ out of range and nobody noticed until the next physical walk-through.
9
+ category: warehousing
10
+ tags: [warehousing, climate-control, compliance, storage]
11
+ schedule: "0 */4 * * *"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ awk -F',' -v min_t="{{min_temp_f}}" -v max_t="{{max_temp_f}}" -v min_h="{{min_humidity_pct}}" -v max_h="{{max_humidity_pct}}" '
16
+ NR==1 {next}
17
+ {
18
+ if ($2 < min_t || $2 > max_t || $3 < min_h || $3 > max_h) {
19
+ printf "OUT OF RANGE: %s — %sF, %s%% humidity (limits %s-%sF, %s-%s%%)\n", $1, $2, $3, min_t, max_t, min_h, max_h;
20
+ }
21
+ }
22
+ ' "{{readings_csv_path}}"
23
+ variables:
24
+ readings_csv_path:
25
+ default: "./climate-readings.csv"
26
+ description: "Path to a CSV with columns: zone_name,temperature_f,humidity_pct — latest sensor readings per zone."
27
+ min_temp_f:
28
+ default: 60
29
+ description: Minimum acceptable temperature in Fahrenheit.
30
+ max_temp_f:
31
+ default: 75
32
+ description: Maximum acceptable temperature in Fahrenheit.
33
+ min_humidity_pct:
34
+ default: 30
35
+ description: Minimum acceptable relative humidity percentage.
36
+ max_humidity_pct:
37
+ default: 60
38
+ description: Maximum acceptable relative humidity percentage.
39
+ compatible_agents: [generic, claude, codex]
40
+ notes: Assumes readings are exported from your sensor/IoT system on a schedule matching this job's frequency — adjust thresholds per what's actually stored in each zone.
@@ -0,0 +1,30 @@
1
+ id: dock-schedule-conflict-check
2
+ version: 1
3
+ name: Loading Dock Schedule Conflict Check
4
+ description: >
5
+ Checks tomorrow's dock appointments for double-bookings or gaps too
6
+ tight to actually unload a truck in. Use this if two carriers have ever
7
+ shown up for the same dock door at the same time because scheduling was
8
+ done in a shared spreadsheet nobody cross-checked.
9
+ category: warehousing
10
+ tags: [warehousing, dock-scheduling, logistics, conflicts]
11
+ schedule: "0 16 * * *"
12
+ timezone: "UTC"
13
+ runner: agent-prompt
14
+ prompt: |
15
+ Check tomorrow's dock appointment schedule from {{scheduling_source}}.
16
+ 1. Flag any two appointments assigned to the same dock door with
17
+ overlapping time windows.
18
+ 2. Flag any appointment scheduled with less than
19
+ {{min_turnaround_minutes}} minutes between it and the next one at
20
+ the same door — likely too tight for an actual unload.
21
+ 3. If the schedule is clean, say so in one line.
22
+ variables:
23
+ scheduling_source:
24
+ default: "your dock scheduling system or shared spreadsheet"
25
+ description: Where dock appointments are booked.
26
+ min_turnaround_minutes:
27
+ default: 30
28
+ description: Minimum minutes needed between appointments at the same dock door.
29
+ compatible_agents: [claude, codex, hermes, openclaw, generic]
30
+ notes: Read-only conflict check — resolving a found conflict (rebooking one carrier) is a dispatcher decision.
@@ -0,0 +1,35 @@
1
+ id: pick-pack-error-rate-watch
2
+ version: 1
3
+ name: Pick/Pack Error Rate Watch
4
+ description: >
5
+ Checks recent order fulfillment error rate (wrong item, wrong quantity,
6
+ missing item) against a target and flags it when it climbs. Use this if
7
+ a fulfillment error rate has ever crept up for weeks before a spike in
8
+ return/complaint volume made the problem impossible to ignore.
9
+ category: warehousing
10
+ tags: [warehousing, fulfillment, quality, errors]
11
+ schedule: "0 6 * * *"
12
+ timezone: "UTC"
13
+ runner: shell
14
+ command: >
15
+ awk -F',' -v target="{{target_error_rate_pct}}" '
16
+ NR==1 {next}
17
+ { total++; if ($2 == "error") errors++ }
18
+ END {
19
+ pct = (total > 0) ? (errors / total) * 100 : 0;
20
+ if (pct > target) {
21
+ printf "ABOVE TARGET: %.2f%% error rate (%d of %d orders), target %.2f%%\n", pct, errors, total, target;
22
+ } else {
23
+ printf "OK: %.2f%% error rate (%d of %d orders)\n", pct, errors, total;
24
+ }
25
+ }
26
+ ' "{{orders_csv_path}}"
27
+ variables:
28
+ orders_csv_path:
29
+ default: "./fulfillment-log.csv"
30
+ description: "Path to a CSV with columns: order_id,outcome (ok/error) — one row per fulfilled order in the period."
31
+ target_error_rate_pct:
32
+ default: 1.0
33
+ description: Target maximum error rate as a percentage.
34
+ compatible_agents: [generic, claude, codex]
35
+ notes: If errors cluster on a specific picker, shift, or SKU, that's worth investigating separately — this job only flags the aggregate rate crossing target.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wonsukchoi/crondex",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "A public directory of pre-made, agent-editable cron jobs.",
5
5
  "type": "module",
6
6
  "license": "MIT",