@wonsukchoi/crondex 0.8.0 → 0.9.1
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 +22 -8
- package/bin/crondex.js +44 -0
- package/catalog.json +862 -16
- package/jobs/agriculture/equipment-maintenance-due-reminder.yaml +36 -0
- package/jobs/agriculture/irrigation-schedule-check.yaml +41 -0
- package/jobs/agriculture/weather-frost-alert.yaml +41 -0
- package/jobs/crypto/gas-price-alert.yaml +34 -0
- package/jobs/crypto/smart-contract-upgrade-watch.yaml +49 -0
- package/jobs/crypto/wallet-balance-watch.yaml +37 -0
- package/jobs/devops/cost-alert.yaml +2 -2
- package/jobs/devops/github-issue-triage.yaml +38 -0
- package/jobs/devops/repo-health-check.yaml +2 -2
- package/jobs/ecommerce/abandoned-cart-recovery-check.yaml +38 -0
- package/jobs/ecommerce/low-stock-reorder-alert.yaml +33 -0
- package/jobs/ecommerce/return-refund-backlog-check.yaml +29 -0
- package/jobs/finance/subscription-price-hike-watch.yaml +44 -0
- package/jobs/gaming/game-patch-notes-watch.yaml +39 -0
- package/jobs/gaming/stream-schedule-reminder.yaml +30 -0
- package/jobs/gaming/subscriber-churn-watch.yaml +39 -0
- package/jobs/healthcare/appointment-no-show-follow-up.yaml +32 -0
- package/jobs/healthcare/license-credential-expiry-check.yaml +35 -0
- package/jobs/healthcare/patient-recall-reminder.yaml +34 -0
- package/jobs/hr/benefits-enrollment-deadline-reminder.yaml +34 -0
- package/jobs/hr/new-hire-paperwork-check.yaml +35 -0
- package/jobs/hr/payroll-run-reminder.yaml +30 -0
- package/jobs/insurance/claim-status-check.yaml +30 -0
- package/jobs/insurance/coverage-gap-audit.yaml +37 -0
- package/jobs/insurance/policy-renewal-reminder.yaml +35 -0
- package/jobs/marketing/competitor-page-diff-watch.yaml +52 -0
- package/jobs/personal/bill-due-reminder.yaml +2 -2
- package/jobs/personal/end-of-day-wrap-message.yaml +32 -0
- package/jobs/personal/new-restaurant-roundup.yaml +35 -0
- package/jobs/productivity/morning-briefing-digest.yaml +42 -0
- package/jobs/productivity/recurring-task-queue-reset.yaml +37 -0
- package/jobs/restaurant/health-inspection-prep-reminder.yaml +29 -0
- package/jobs/restaurant/inventory-waste-log-review.yaml +32 -0
- package/jobs/restaurant/reservation-noshow-deposit-check.yaml +32 -0
- package/jobs/sales/newly-funded-leads-scout.yaml +44 -0
- package/jobs/security/open-port-check.yaml +2 -2
- package/package.json +3 -2
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
id: patient-recall-reminder
|
|
2
|
+
version: 1
|
|
3
|
+
name: Patient Recall Reminder
|
|
4
|
+
description: >
|
|
5
|
+
Finds patients due (or overdue) for a routine checkup, cleaning, or
|
|
6
|
+
screening and lists them for outreach. Use this if recall/recare lists
|
|
7
|
+
pile up and patients quietly fall off the schedule for a year or more.
|
|
8
|
+
category: healthcare
|
|
9
|
+
tags: [patients, recall, checkup, outreach]
|
|
10
|
+
schedule: "0 8 1 * *"
|
|
11
|
+
timezone: "America/New_York"
|
|
12
|
+
runner: agent-prompt
|
|
13
|
+
prompt: |
|
|
14
|
+
Check {{scheduling_system}} for patients whose last visit for
|
|
15
|
+
"{{recall_type}}" was more than {{recall_interval_months}} months ago and
|
|
16
|
+
who have no future appointment booked.
|
|
17
|
+
1. List each patient, their last visit date, and how overdue they are.
|
|
18
|
+
2. Sort by most overdue first.
|
|
19
|
+
3. Draft a short recall message per patient (or a template if the list is
|
|
20
|
+
long) inviting them to book.
|
|
21
|
+
4. Call out anyone more than double the recall interval overdue — these
|
|
22
|
+
are the ones most at risk of having left the practice entirely.
|
|
23
|
+
variables:
|
|
24
|
+
scheduling_system:
|
|
25
|
+
default: "your scheduling/EHR system"
|
|
26
|
+
description: Name of the scheduling or EHR system to check.
|
|
27
|
+
recall_type:
|
|
28
|
+
default: "annual checkup"
|
|
29
|
+
description: What kind of visit this recall tracks (e.g. "dental cleaning", "annual physical", "eye exam").
|
|
30
|
+
recall_interval_months:
|
|
31
|
+
default: 12
|
|
32
|
+
description: How many months between visits before someone counts as due.
|
|
33
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
34
|
+
notes: Draft-only — outreach messages should be reviewed by staff before sending, and must follow your practice's patient communication/compliance policy.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
id: benefits-enrollment-deadline-reminder
|
|
2
|
+
version: 1
|
|
3
|
+
name: Benefits Open Enrollment Deadline Reminder
|
|
4
|
+
description: >
|
|
5
|
+
Counts down to the open-enrollment deadline and flags employees who
|
|
6
|
+
haven't submitted elections yet. Use this if open enrollment has ever
|
|
7
|
+
closed with people accidentally defaulting to no coverage or last
|
|
8
|
+
year's plan.
|
|
9
|
+
category: hr
|
|
10
|
+
tags: [hr, benefits, enrollment, deadline]
|
|
11
|
+
schedule: "0 9 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Open enrollment closes on {{enrollment_deadline}}. Check
|
|
16
|
+
{{benefits_system}} for who has and hasn't submitted elections yet.
|
|
17
|
+
1. Report days remaining until the deadline.
|
|
18
|
+
2. List employees with no submitted election.
|
|
19
|
+
3. If within {{final_warn_days}} days of the deadline, draft an urgent
|
|
20
|
+
reminder message to the non-responders and, separately, a summary
|
|
21
|
+
for HR of who still needs a nudge.
|
|
22
|
+
4. If the deadline has passed, report final completion rate instead.
|
|
23
|
+
variables:
|
|
24
|
+
enrollment_deadline:
|
|
25
|
+
default: "YYYY-MM-DD"
|
|
26
|
+
description: Date open enrollment closes.
|
|
27
|
+
benefits_system:
|
|
28
|
+
default: "your benefits administration platform"
|
|
29
|
+
description: Name of the benefits/HRIS system to check.
|
|
30
|
+
final_warn_days:
|
|
31
|
+
default: 5
|
|
32
|
+
description: Days before deadline to switch from routine reminders to urgent ones.
|
|
33
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
34
|
+
notes: Draft-only — review reminder messages before sending, especially anything framed as "urgent" to employees.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: new-hire-paperwork-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: New Hire Paperwork Completion Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks which recently started employees still have incomplete
|
|
6
|
+
onboarding paperwork (I-9, tax forms, benefits enrollment, signed
|
|
7
|
+
handbook) and flags them before they become a compliance problem. Use
|
|
8
|
+
this if onboarding paperwork has ever slipped through the cracks past
|
|
9
|
+
the legal deadline.
|
|
10
|
+
category: hr
|
|
11
|
+
tags: [hr, onboarding, compliance, paperwork]
|
|
12
|
+
schedule: "0 9 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: agent-prompt
|
|
15
|
+
prompt: |
|
|
16
|
+
Check onboarding status in {{hris_system}} for anyone who started in the
|
|
17
|
+
last {{lookback_days}} days.
|
|
18
|
+
1. For each new hire, list which required documents are still
|
|
19
|
+
incomplete: {{required_documents}}.
|
|
20
|
+
2. Flag anyone approaching or past a legal deadline (e.g. I-9 must be
|
|
21
|
+
completed within 3 business days of start in the US) as urgent.
|
|
22
|
+
3. Draft a reminder message to the employee and/or their manager for
|
|
23
|
+
each incomplete item.
|
|
24
|
+
variables:
|
|
25
|
+
hris_system:
|
|
26
|
+
default: "your HRIS/onboarding system"
|
|
27
|
+
description: Name of the HR system to check (e.g. "BambooHR", "Rippling", "Gusto").
|
|
28
|
+
lookback_days:
|
|
29
|
+
default: 30
|
|
30
|
+
description: How far back to check for recent hires.
|
|
31
|
+
required_documents:
|
|
32
|
+
default: "I-9, W-4, direct deposit form, benefits enrollment, signed handbook acknowledgment"
|
|
33
|
+
description: Comma-separated list of documents your onboarding requires.
|
|
34
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
35
|
+
notes: Legal deadlines for onboarding paperwork vary by country/jurisdiction — confirm the specifics for yours rather than relying on the example given.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
id: payroll-run-reminder
|
|
2
|
+
version: 1
|
|
3
|
+
name: Payroll Run Cutoff Reminder
|
|
4
|
+
description: >
|
|
5
|
+
Reminds you before the payroll submission cutoff so timesheets and
|
|
6
|
+
changes get in on time. Use this if payroll has ever run late because a
|
|
7
|
+
timesheet or new-hire update missed the cutoff by a day.
|
|
8
|
+
category: hr
|
|
9
|
+
tags: [payroll, hr, reminder, deadline]
|
|
10
|
+
schedule: "0 9 * * *"
|
|
11
|
+
timezone: "America/New_York"
|
|
12
|
+
runner: shell
|
|
13
|
+
command: >
|
|
14
|
+
today=$(date +%d);
|
|
15
|
+
cutoff="{{cutoff_day_of_month}}";
|
|
16
|
+
if [ "$today" -ge $((cutoff - {{warn_days_before}})) ] && [ "$today" -le "$cutoff" ]; then
|
|
17
|
+
echo "PAYROLL CUTOFF APPROACHING: due on day $cutoff of this month, today is day $today.";
|
|
18
|
+
echo "Checklist: timesheets submitted, new hires entered, terminations processed, PTO adjustments logged.";
|
|
19
|
+
else
|
|
20
|
+
echo "No payroll cutoff in the warning window today.";
|
|
21
|
+
fi
|
|
22
|
+
variables:
|
|
23
|
+
cutoff_day_of_month:
|
|
24
|
+
default: 25
|
|
25
|
+
description: Day of the month payroll submissions are due.
|
|
26
|
+
warn_days_before:
|
|
27
|
+
default: 3
|
|
28
|
+
description: How many days before the cutoff to start reminding.
|
|
29
|
+
compatible_agents: [generic, claude, codex]
|
|
30
|
+
notes: Assumes a fixed monthly cutoff day — adjust the command or add a variable if your payroll provider uses a different schedule (biweekly, semi-monthly).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
id: claim-status-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Open Claim Status Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks the status of any open insurance claims and flags ones that
|
|
6
|
+
haven't moved in a while. Use this if a claim has ever gone quiet for
|
|
7
|
+
weeks because nobody was following up with the adjuster.
|
|
8
|
+
category: insurance
|
|
9
|
+
tags: [insurance, claims, follow-up]
|
|
10
|
+
schedule: "0 9 * * 1"
|
|
11
|
+
timezone: "UTC"
|
|
12
|
+
runner: agent-prompt
|
|
13
|
+
prompt: |
|
|
14
|
+
Check the status of each open claim listed: {{open_claims}} (via the
|
|
15
|
+
insurer's portal, email correspondence, or whatever access is
|
|
16
|
+
available).
|
|
17
|
+
1. Report current status and last update date for each.
|
|
18
|
+
2. Flag any claim with no status change in more than
|
|
19
|
+
{{stale_after_days}} days as needing follow-up.
|
|
20
|
+
3. Draft a short follow-up message to the adjuster for each stale claim,
|
|
21
|
+
referencing the claim number and asking for a status update.
|
|
22
|
+
variables:
|
|
23
|
+
open_claims:
|
|
24
|
+
default: "list your open claim numbers here"
|
|
25
|
+
description: Comma-separated list of open claim numbers/references to track.
|
|
26
|
+
stale_after_days:
|
|
27
|
+
default: 14
|
|
28
|
+
description: Days without a status update before a claim counts as stale.
|
|
29
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
30
|
+
notes: Draft-only — review before sending anything to an adjuster or insurer.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: coverage-gap-audit
|
|
2
|
+
version: 1
|
|
3
|
+
name: Coverage Gap Audit
|
|
4
|
+
description: >
|
|
5
|
+
Compares your current insurance policies against a standard coverage
|
|
6
|
+
checklist for your situation and flags anything missing or underinsured.
|
|
7
|
+
Use this if you've ever added a policy for one specific thing and never
|
|
8
|
+
circled back to check the overall picture still made sense.
|
|
9
|
+
category: insurance
|
|
10
|
+
tags: [insurance, coverage, audit, risk]
|
|
11
|
+
schedule: "0 9 1 1,7 *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Review the current policies listed: {{current_policies}}, for a
|
|
16
|
+
{{profile_type}} profile.
|
|
17
|
+
1. Compare against a standard coverage checklist for that profile type
|
|
18
|
+
(e.g. for a homeowner: dwelling, liability, flood/earthquake if
|
|
19
|
+
applicable, umbrella; for a small business: general liability,
|
|
20
|
+
property, cyber, workers' comp as relevant).
|
|
21
|
+
2. Flag anything commonly recommended that's missing entirely.
|
|
22
|
+
3. Flag any policy whose coverage limit looks low relative to
|
|
23
|
+
{{asset_value_estimate}} in assets/exposure, with a one-line reason.
|
|
24
|
+
4. This is a gap-finding pass, not financial/legal advice — say so, and
|
|
25
|
+
recommend confirming any changes with a licensed agent.
|
|
26
|
+
variables:
|
|
27
|
+
current_policies:
|
|
28
|
+
default: "list your current policies and coverage limits here"
|
|
29
|
+
description: Summary of currently held policies and their limits.
|
|
30
|
+
profile_type:
|
|
31
|
+
default: "homeowner"
|
|
32
|
+
description: Who this audit is for (e.g. "homeowner", "renter", "small business", "landlord").
|
|
33
|
+
asset_value_estimate:
|
|
34
|
+
default: "not specified"
|
|
35
|
+
description: Rough total value of assets/exposure to size coverage against.
|
|
36
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
37
|
+
notes: General-knowledge gap-finding only — not a substitute for advice from a licensed insurance professional.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: policy-renewal-reminder
|
|
2
|
+
version: 1
|
|
3
|
+
name: Policy Renewal Reminder
|
|
4
|
+
description: >
|
|
5
|
+
Warns you before an insurance policy's renewal date so you have time to
|
|
6
|
+
shop around or review coverage, instead of auto-renewing on autopilot.
|
|
7
|
+
Use this if you've ever realized a policy renewed months ago at a higher
|
|
8
|
+
rate without you noticing.
|
|
9
|
+
category: insurance
|
|
10
|
+
tags: [insurance, renewal, policy, reminder]
|
|
11
|
+
schedule: "0 8 * * *"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: shell
|
|
14
|
+
command: >
|
|
15
|
+
awk -F',' -v days="{{warn_days_before}}" '
|
|
16
|
+
NR==1 {next}
|
|
17
|
+
{
|
|
18
|
+
cmd = "date -d \"" $2 "\" +%s 2>/dev/null || date -j -f %Y-%m-%d \"" $2 "\" +%s 2>/dev/null";
|
|
19
|
+
cmd | getline expiry_epoch; close(cmd);
|
|
20
|
+
"date +%s" | getline now_epoch; close("date +%s");
|
|
21
|
+
diff_days = (expiry_epoch - now_epoch) / 86400;
|
|
22
|
+
if (diff_days <= days && diff_days >= 0) {
|
|
23
|
+
printf "RENEWAL DUE: %s renews %s (%d days)\n", $1, $2, diff_days;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
' "{{policies_csv_path}}"
|
|
27
|
+
variables:
|
|
28
|
+
policies_csv_path:
|
|
29
|
+
default: "./insurance-policies.csv"
|
|
30
|
+
description: "Path to a CSV with columns: policy_name,renewal_date (YYYY-MM-DD)."
|
|
31
|
+
warn_days_before:
|
|
32
|
+
default: 30
|
|
33
|
+
description: How many days before renewal to start warning.
|
|
34
|
+
compatible_agents: [generic, claude, codex]
|
|
35
|
+
notes: Maintain the CSV manually or export it from whatever policy-management tool/broker portal you use.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
id: competitor-page-diff-watch
|
|
2
|
+
version: 2
|
|
3
|
+
name: Competitor Page Diff Watch
|
|
4
|
+
description: >
|
|
5
|
+
Snapshots a competitor's pricing or landing page and diffs it against the
|
|
6
|
+
last snapshot, turning any real change into a short action memo instead
|
|
7
|
+
of a wall of markup diff. Use this if a competitor has ever changed
|
|
8
|
+
pricing or repositioned a page and you found out from a customer instead
|
|
9
|
+
of noticing it yourself.
|
|
10
|
+
category: marketing
|
|
11
|
+
tags: [competitor, monitoring, pricing, marketing]
|
|
12
|
+
schedule: "0 9 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: hybrid
|
|
15
|
+
command: >
|
|
16
|
+
snapshot_dir="{{snapshot_dir}}";
|
|
17
|
+
mkdir -p "$snapshot_dir";
|
|
18
|
+
today_file="$snapshot_dir/$(date +%Y-%m-%d).html";
|
|
19
|
+
curl -s -A "Mozilla/5.0" "{{competitor_url}}" -o "$today_file";
|
|
20
|
+
prev_file="";
|
|
21
|
+
for f in "$snapshot_dir"/*.html; do
|
|
22
|
+
[ "$(basename "$f")" = "$(basename "$today_file")" ] && continue;
|
|
23
|
+
prev_file=$(basename "$f");
|
|
24
|
+
done;
|
|
25
|
+
if [ -n "$prev_file" ]; then
|
|
26
|
+
diff "$snapshot_dir/$prev_file" "$today_file" | head -100;
|
|
27
|
+
else
|
|
28
|
+
echo "first snapshot taken, nothing to diff against yet.";
|
|
29
|
+
fi
|
|
30
|
+
prompt: |
|
|
31
|
+
Compare today's snapshot of {{competitor_url}} against the previous one
|
|
32
|
+
(raw HTML diff provided by the script, or fetch and compare yourself).
|
|
33
|
+
1. Ignore markup/whitespace/tracking-param noise.
|
|
34
|
+
2. Summarize any real content change: pricing, plan names, feature
|
|
35
|
+
claims, or messaging changes.
|
|
36
|
+
3. If nothing meaningful changed, say so in one line.
|
|
37
|
+
4. If something did change, draft a short internal action memo: what
|
|
38
|
+
changed, why it might matter, and one suggested response (match
|
|
39
|
+
pricing, update our comparison page, no action needed).
|
|
40
|
+
script_note: >
|
|
41
|
+
`command` only saves a raw HTML diff — full of markup and whitespace
|
|
42
|
+
noise, no interpretation of what actually changed or whether it matters.
|
|
43
|
+
`prompt` filters the noise and produces an actionable summary.
|
|
44
|
+
variables:
|
|
45
|
+
competitor_url:
|
|
46
|
+
default: "https://example.com/pricing"
|
|
47
|
+
description: Competitor page URL to monitor (pricing/landing pages work best).
|
|
48
|
+
snapshot_dir:
|
|
49
|
+
default: "./competitor-snapshots"
|
|
50
|
+
description: Local directory to store daily HTML snapshots for diffing.
|
|
51
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
52
|
+
notes: Respect the target site's robots.txt/terms before scraping; some sites render pricing via JS and won't diff meaningfully from raw HTML alone.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
id: bill-due-reminder
|
|
2
|
-
version:
|
|
2
|
+
version: 2
|
|
3
3
|
name: Bill Due Reminder
|
|
4
4
|
description: >
|
|
5
5
|
Warns you a few days before a recurring monthly bill is due. Use this if
|
|
@@ -13,7 +13,7 @@ command: >
|
|
|
13
13
|
due={{due_day_of_month}}; warn={{warn_days}}; name="{{bill_name}}";
|
|
14
14
|
today=$(date +%-d);
|
|
15
15
|
days_left=$(( due - today ));
|
|
16
|
-
if [ "$days_left" -lt 0 ]; then days_left=$(( days_left + 30 )); fi
|
|
16
|
+
if [ "$days_left" -lt 0 ]; then days_left=$(( days_left + 30 )); fi;
|
|
17
17
|
if [ "$days_left" -le "$warn" ]; then echo "REMINDER: $name due in $days_left day(s) (on day $due of the month)";
|
|
18
18
|
else echo "OK: $name due in $days_left day(s)"; fi
|
|
19
19
|
variables:
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: end-of-day-wrap-message
|
|
2
|
+
version: 1
|
|
3
|
+
name: End-of-Day Wrap Message
|
|
4
|
+
description: >
|
|
5
|
+
Fires around the end of your work calendar and drafts a short wrap-up:
|
|
6
|
+
what got done today, what's carrying over to tomorrow. Use this if you
|
|
7
|
+
close your laptop most days without a clear sense of what actually
|
|
8
|
+
happened or what's still pending.
|
|
9
|
+
category: personal
|
|
10
|
+
tags: [reflection, end-of-day, productivity, wrap-up]
|
|
11
|
+
schedule: "0 18 * * 1-5"
|
|
12
|
+
timezone: "America/Los_Angeles"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Look at today's completed calendar events, closed tasks/tickets, and
|
|
16
|
+
commits (whatever of {{activity_sources}} is available) for
|
|
17
|
+
{{lookback_hours}} hours.
|
|
18
|
+
1. Summarize in 2-3 bullets what got meaningfully done today.
|
|
19
|
+
2. List anything left open that was expected to close today, as
|
|
20
|
+
"carrying over to tomorrow."
|
|
21
|
+
3. End with one line acknowledging the day plainly — no forced
|
|
22
|
+
positivity, just an honest close.
|
|
23
|
+
Keep the whole thing short enough to read in 15 seconds.
|
|
24
|
+
variables:
|
|
25
|
+
activity_sources:
|
|
26
|
+
default: "your calendar, task tracker, and git commits"
|
|
27
|
+
description: Comma-separated list of sources to check for today's activity.
|
|
28
|
+
lookback_hours:
|
|
29
|
+
default: 10
|
|
30
|
+
description: Rough length of the workday to look back over.
|
|
31
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
32
|
+
notes: Schedule this against your actual calendar end time, not a fixed hour, if your agent can read "last event ends at" dynamically.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
id: new-restaurant-roundup
|
|
2
|
+
version: 1
|
|
3
|
+
name: New Restaurant Roundup
|
|
4
|
+
description: >
|
|
5
|
+
Checks for restaurants that newly opened near you in the last week and
|
|
6
|
+
gives you a short list to consider. Use this if you like trying new
|
|
7
|
+
places but never remember to actually go looking for what just opened.
|
|
8
|
+
category: personal
|
|
9
|
+
tags: [restaurants, local, discovery, weekly]
|
|
10
|
+
schedule: "0 17 * * 5"
|
|
11
|
+
timezone: "America/Los_Angeles"
|
|
12
|
+
runner: agent-prompt
|
|
13
|
+
prompt: |
|
|
14
|
+
Check for restaurants that newly opened within {{radius_miles}} miles of
|
|
15
|
+
{{location}} in the last {{lookback_days}} days (via Yelp, Google Maps,
|
|
16
|
+
local news, or whatever local-discovery source is available).
|
|
17
|
+
1. List each new place: name, cuisine, and distance.
|
|
18
|
+
2. Note anything getting early buzz (a write-up, strong early reviews).
|
|
19
|
+
3. Keep it to the top {{max_results}} most promising — this is a quick
|
|
20
|
+
Friday-evening list, not a research report.
|
|
21
|
+
variables:
|
|
22
|
+
location:
|
|
23
|
+
default: "your city/neighborhood"
|
|
24
|
+
description: Location to search around.
|
|
25
|
+
radius_miles:
|
|
26
|
+
default: 5
|
|
27
|
+
description: Search radius in miles.
|
|
28
|
+
lookback_days:
|
|
29
|
+
default: 14
|
|
30
|
+
description: How recently a restaurant must have opened to count as "new."
|
|
31
|
+
max_results:
|
|
32
|
+
default: 5
|
|
33
|
+
description: Max number of places to list.
|
|
34
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
35
|
+
notes: Quality depends on local coverage in whatever source the agent can reach — sparser in small towns than big cities.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
id: morning-briefing-digest
|
|
2
|
+
version: 1
|
|
3
|
+
name: Morning Briefing Digest
|
|
4
|
+
description: >
|
|
5
|
+
Pulls together overnight email, today's calendar, and any connected
|
|
6
|
+
analytics/monitoring dashboards into one short digest waiting for you at
|
|
7
|
+
the start of the day. Use this if you start your morning tab-hopping
|
|
8
|
+
across five dashboards before you've even had coffee.
|
|
9
|
+
category: productivity
|
|
10
|
+
tags: [briefing, digest, morning, calendar, email]
|
|
11
|
+
schedule: "0 7 * * 1-5"
|
|
12
|
+
timezone: "America/Los_Angeles"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Build a short morning briefing covering:
|
|
16
|
+
1. Calendar: today's meetings from {{calendar_source}}, flagging any
|
|
17
|
+
back-to-back blocks with no prep time.
|
|
18
|
+
2. Email: unread messages from {{email_source}} in the last
|
|
19
|
+
{{lookback_hours}} hours that look like they need a same-day reply —
|
|
20
|
+
skip newsletters/notifications.
|
|
21
|
+
3. Metrics: anything notable from {{dashboard_sources}} (traffic spike or
|
|
22
|
+
drop, error rate change, ranking movement) — only report real changes,
|
|
23
|
+
not routine noise.
|
|
24
|
+
4. End with a single "top 3 things to do today" list synthesized from the
|
|
25
|
+
above.
|
|
26
|
+
Keep the whole digest to one screen — this replaces tab-hopping, it
|
|
27
|
+
shouldn't become its own chore to read.
|
|
28
|
+
variables:
|
|
29
|
+
calendar_source:
|
|
30
|
+
default: "your calendar (e.g. Google Calendar)"
|
|
31
|
+
description: Calendar to pull today's meetings from.
|
|
32
|
+
email_source:
|
|
33
|
+
default: "your inbox (e.g. Gmail)"
|
|
34
|
+
description: Inbox to scan for messages needing a same-day reply.
|
|
35
|
+
dashboard_sources:
|
|
36
|
+
default: "analytics/search console/uptime monitoring, whatever you have connected"
|
|
37
|
+
description: Comma-separated list of dashboards/metrics sources to check.
|
|
38
|
+
lookback_hours:
|
|
39
|
+
default: 16
|
|
40
|
+
description: How far back to scan email (covers overnight since last workday).
|
|
41
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
42
|
+
notes: Value scales with how many sources you connect — start with just calendar+email and add dashboards as they're available.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
id: recurring-task-queue-reset
|
|
2
|
+
version: 2
|
|
3
|
+
name: Recurring Task Queue Reset
|
|
4
|
+
description: >
|
|
5
|
+
Clears out last week's completed recurring-task checklist and creates a
|
|
6
|
+
fresh one from your template, so every cycle starts with the same
|
|
7
|
+
predefined owners and checklist instead of a copy-pasted mess. Use this
|
|
8
|
+
if your recurring weekly checklist has ever quietly drifted because
|
|
9
|
+
someone edited last week's copy instead of starting clean.
|
|
10
|
+
category: productivity
|
|
11
|
+
tags: [productivity, checklist, recurring, template]
|
|
12
|
+
schedule: "0 6 * * 1"
|
|
13
|
+
timezone: "UTC"
|
|
14
|
+
runner: shell
|
|
15
|
+
command: >
|
|
16
|
+
if [ ! -f "{{template_path}}" ]; then
|
|
17
|
+
echo "template not found at {{template_path}} — nothing to reset from.";
|
|
18
|
+
exit 1;
|
|
19
|
+
fi;
|
|
20
|
+
week_label=$(date +%G-W%V);
|
|
21
|
+
dest="{{output_dir}}/${week_label}.md";
|
|
22
|
+
mkdir -p "{{output_dir}}";
|
|
23
|
+
if [ -f "$dest" ]; then
|
|
24
|
+
echo "$dest already exists — not overwriting this week's checklist.";
|
|
25
|
+
else
|
|
26
|
+
cp "{{template_path}}" "$dest";
|
|
27
|
+
echo "created fresh checklist: $dest";
|
|
28
|
+
fi
|
|
29
|
+
variables:
|
|
30
|
+
template_path:
|
|
31
|
+
default: "./templates/weekly-checklist.md"
|
|
32
|
+
description: Path to the checklist template with predefined owners/items.
|
|
33
|
+
output_dir:
|
|
34
|
+
default: "./weekly-checklists"
|
|
35
|
+
description: Directory where each week's fresh checklist file is written.
|
|
36
|
+
compatible_agents: [generic, claude, codex]
|
|
37
|
+
notes: File-based by default for portability — swap `cp` for your task tool's API call (Notion, Asana, ClickUp) if you want it created there instead of as a local file.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
id: health-inspection-prep-reminder
|
|
2
|
+
version: 1
|
|
3
|
+
name: Health Inspection Prep Reminder
|
|
4
|
+
description: >
|
|
5
|
+
Reminds the team of the standard health-inspection checklist on a
|
|
6
|
+
recurring basis, not just when an inspection is imminent. Use this if
|
|
7
|
+
you've ever scrambled the morning an inspector showed up unannounced.
|
|
8
|
+
category: restaurant
|
|
9
|
+
tags: [compliance, health-inspection, checklist, kitchen]
|
|
10
|
+
schedule: "0 7 * * 1"
|
|
11
|
+
timezone: "America/New_York"
|
|
12
|
+
runner: shell
|
|
13
|
+
command: >
|
|
14
|
+
echo "Weekly health-inspection self-check ({{checklist_path}}):";
|
|
15
|
+
if [ -f "{{checklist_path}}" ]; then cat "{{checklist_path}}"; else
|
|
16
|
+
echo "- Fridge/freezer temps logged and in range";
|
|
17
|
+
echo "- Handwashing stations stocked (soap, towels, signage)";
|
|
18
|
+
echo "- Food storage labeled with dates, FIFO followed";
|
|
19
|
+
echo "- No bare-hand contact with ready-to-eat food";
|
|
20
|
+
echo "- Pest control log up to date";
|
|
21
|
+
echo "- Cleaning/sanitizing log current";
|
|
22
|
+
echo "- Employee health/illness policy posted";
|
|
23
|
+
fi
|
|
24
|
+
variables:
|
|
25
|
+
checklist_path:
|
|
26
|
+
default: "./health-inspection-checklist.txt"
|
|
27
|
+
description: Optional path to your own custom checklist file; falls back to a standard baseline if not found.
|
|
28
|
+
compatible_agents: [generic, claude, codex]
|
|
29
|
+
notes: This is a recurring self-audit reminder, not a substitute for your local health department's actual requirements — adapt the checklist to your jurisdiction.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: inventory-waste-log-review
|
|
2
|
+
version: 1
|
|
3
|
+
name: Inventory Waste Log Review
|
|
4
|
+
description: >
|
|
5
|
+
Reviews the kitchen's waste log for the week and flags which items are
|
|
6
|
+
being tossed most, in case it's an over-ordering or portioning problem.
|
|
7
|
+
Use this if food cost keeps creeping up and nobody's sure why.
|
|
8
|
+
category: restaurant
|
|
9
|
+
tags: [inventory, waste, food-cost, kitchen]
|
|
10
|
+
schedule: "0 10 * * 1"
|
|
11
|
+
timezone: "America/New_York"
|
|
12
|
+
runner: agent-prompt
|
|
13
|
+
prompt: |
|
|
14
|
+
Read the waste log for the past {{lookback_days}} days from
|
|
15
|
+
{{waste_log_source}}.
|
|
16
|
+
1. Total waste by item (quantity and estimated cost if given).
|
|
17
|
+
2. Rank the top 5 items by wasted cost.
|
|
18
|
+
3. For each top item, note the most common waste reason logged (spoilage,
|
|
19
|
+
over-prep, returned order, etc.) if that field exists.
|
|
20
|
+
4. Flag any item where waste looks like it's trending up week over week,
|
|
21
|
+
not just a one-off bad night.
|
|
22
|
+
5. Suggest one concrete action per top item (reduce par level, tighten
|
|
23
|
+
portioning, adjust prep timing).
|
|
24
|
+
variables:
|
|
25
|
+
waste_log_source:
|
|
26
|
+
default: "your POS/inventory system's waste log"
|
|
27
|
+
description: Where the waste log lives (e.g. "Toast waste tracking", "a shared spreadsheet").
|
|
28
|
+
lookback_days:
|
|
29
|
+
default: 7
|
|
30
|
+
description: How many days of waste log to review.
|
|
31
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
32
|
+
notes: Quality of the report depends entirely on how consistently staff logs waste — garbage in, garbage out.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
id: reservation-noshow-deposit-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Reservation No-Show Pattern Check
|
|
4
|
+
description: >
|
|
5
|
+
Reviews recent reservation no-shows and flags parties/times where
|
|
6
|
+
no-shows cluster, so you know whether a deposit or confirmation-call
|
|
7
|
+
policy would help. Use this if a certain night or party size keeps
|
|
8
|
+
costing you empty tables.
|
|
9
|
+
category: restaurant
|
|
10
|
+
tags: [reservations, no-show, hospitality]
|
|
11
|
+
schedule: "0 11 * * 1"
|
|
12
|
+
timezone: "America/New_York"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Pull reservation data from {{reservation_system}} for the past
|
|
16
|
+
{{lookback_days}} days.
|
|
17
|
+
1. Calculate the overall no-show rate.
|
|
18
|
+
2. Break it down by day of week, time slot, and party size — flag any
|
|
19
|
+
segment with a no-show rate meaningfully above the overall average.
|
|
20
|
+
3. List repeat no-show guests (2+ in the window) by name/phone if
|
|
21
|
+
available.
|
|
22
|
+
4. Recommend whether a deposit or confirmation-text policy is warranted
|
|
23
|
+
for the flagged segments specifically, rather than restaurant-wide.
|
|
24
|
+
variables:
|
|
25
|
+
reservation_system:
|
|
26
|
+
default: "your reservation platform"
|
|
27
|
+
description: Name of the reservation system (e.g. "OpenTable", "Resy", "Tock").
|
|
28
|
+
lookback_days:
|
|
29
|
+
default: 30
|
|
30
|
+
description: Window of reservation history to analyze.
|
|
31
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
32
|
+
notes: Read-only analysis — any policy change (deposits, blocklisting repeat no-shows) is a business decision for a human to make.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
id: newly-funded-leads-scout
|
|
2
|
+
version: 1
|
|
3
|
+
name: Newly Funded Companies Lead Scout
|
|
4
|
+
description: >
|
|
5
|
+
Checks funding-announcement sources for companies that just raised in
|
|
6
|
+
your target market and drafts a first-outreach message for each. Use
|
|
7
|
+
this if you sell to companies that spend differently right after a
|
|
8
|
+
funding round and you want to reach them before every other vendor does.
|
|
9
|
+
category: sales
|
|
10
|
+
tags: [sales, leads, funding, outreach, prospecting]
|
|
11
|
+
schedule: "0 8 * * 1-5"
|
|
12
|
+
timezone: "UTC"
|
|
13
|
+
runner: agent-prompt
|
|
14
|
+
prompt: |
|
|
15
|
+
Check {{funding_sources}} for companies that announced a funding round in
|
|
16
|
+
the last {{lookback_days}} days matching: industry "{{target_industry}}",
|
|
17
|
+
stage "{{target_stage}}".
|
|
18
|
+
1. List each company: name, round size/stage, and a one-line note on why
|
|
19
|
+
they fit the target profile.
|
|
20
|
+
2. For each, note the most relevant contact if discoverable (founder,
|
|
21
|
+
head of the department your product serves).
|
|
22
|
+
3. Draft a short, non-generic first-touch outreach message per company
|
|
23
|
+
that references the funding news and ties it to a concrete reason
|
|
24
|
+
they'd need {{your_product}} now.
|
|
25
|
+
4. Skip companies already in {{existing_crm_note}} to avoid duplicate
|
|
26
|
+
outreach.
|
|
27
|
+
variables:
|
|
28
|
+
funding_sources:
|
|
29
|
+
default: "Crunchbase, TechCrunch funding news, or your preferred funding-news feed"
|
|
30
|
+
description: Sources to check for funding announcements.
|
|
31
|
+
target_industry:
|
|
32
|
+
default: "SaaS"
|
|
33
|
+
description: Industry/vertical to filter for.
|
|
34
|
+
target_stage:
|
|
35
|
+
default: "Seed or Series A"
|
|
36
|
+
description: Funding stage(s) worth prospecting.
|
|
37
|
+
your_product:
|
|
38
|
+
default: "your product"
|
|
39
|
+
description: One-line description of what you sell, for the outreach draft to reference.
|
|
40
|
+
existing_crm_note:
|
|
41
|
+
default: "no CRM connected — skip duplicate check"
|
|
42
|
+
description: Where to check for companies already in your pipeline, to avoid re-outreaching.
|
|
43
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
44
|
+
notes: Draft-only — review before sending, and check the funding source's terms of use before scraping instead of using an official API/RSS feed.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
id: open-port-check
|
|
2
|
-
version:
|
|
2
|
+
version: 2
|
|
3
3
|
name: Expected Open Ports Check
|
|
4
4
|
description: >
|
|
5
5
|
Checks that the ports you expect to be open on a host actually are, and
|
|
@@ -16,7 +16,7 @@ command: >
|
|
|
16
16
|
if command -v nc >/dev/null 2>&1; then
|
|
17
17
|
nc -z -w2 "$host" "$p" 2>/dev/null && echo "OK: $host:$p open" || { echo "MISSING: $host:$p expected open but isn't"; fail=1; };
|
|
18
18
|
else
|
|
19
|
-
(echo > /dev/tcp/$host/$p) 2>/dev/null && echo "OK: $host:$p open" || { echo "MISSING: $host:$p expected open but isn't"; fail=1; };
|
|
19
|
+
(echo > "/dev/tcp/$host/$p") 2>/dev/null && echo "OK: $host:$p open" || { echo "MISSING: $host:$p expected open but isn't"; fail=1; };
|
|
20
20
|
fi
|
|
21
21
|
done;
|
|
22
22
|
exit $fail
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wonsukchoi/crondex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "A public directory of pre-made, agent-editable cron jobs.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|
|
34
34
|
"build-catalog": "node scripts/build-catalog.js",
|
|
35
|
-
"validate": "node scripts/validate-jobs.js"
|
|
35
|
+
"validate": "node scripts/validate-jobs.js",
|
|
36
|
+
"lint-shell": "node scripts/lint-shell.js"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"ajv": "^8.17.1",
|