@wonsukchoi/crondex 0.1.1 → 0.3.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 +78 -19
- package/catalog.json +537 -1
- package/jobs/content/broken-link-check.yaml +33 -0
- package/jobs/content/changelog-digest.yaml +40 -0
- package/jobs/content/social-mentions-watch.yaml +32 -0
- package/jobs/devops/db-backup-verify.yaml +37 -0
- package/jobs/devops/disk-space-check.yaml +26 -0
- package/jobs/devops/docker-image-prune.yaml +24 -0
- package/jobs/devops/env-drift-check.yaml +34 -0
- package/jobs/devops/license-compliance-check.yaml +31 -0
- package/jobs/devops/orphaned-branch-cleanup.yaml +28 -0
- package/jobs/devops/stale-dependency-pr-nudge.yaml +25 -0
- package/jobs/finance/net-worth-snapshot.yaml +33 -0
- package/jobs/finance/saas-seat-audit.yaml +35 -0
- package/jobs/finance/subscription-audit.yaml +34 -0
- package/jobs/learning/course-progress-checkin.yaml +37 -0
- package/jobs/learning/daily-flashcard-review.yaml +29 -0
- package/jobs/learning/reading-list-nudge.yaml +25 -0
- package/jobs/personal/screen-time-check.yaml +27 -0
- package/jobs/personal/water-intake-reminder.yaml +20 -0
- package/jobs/productivity/focus-block-reminder.yaml +25 -0
- package/jobs/security/failed-login-watch.yaml +37 -0
- package/jobs/security/open-port-check.yaml +36 -0
- package/jobs/security/secrets-scan.yaml +28 -0
- package/package.json +1 -1
package/catalog.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"generated_by": "scripts/build-catalog.js",
|
|
3
3
|
"schema": "schema/job.schema.json",
|
|
4
|
-
"count":
|
|
4
|
+
"count": 35,
|
|
5
5
|
"jobs": [
|
|
6
6
|
{
|
|
7
7
|
"id": "backup-reminder",
|
|
@@ -51,6 +51,57 @@
|
|
|
51
51
|
],
|
|
52
52
|
"path": "jobs/personal/bill-due-reminder.yaml"
|
|
53
53
|
},
|
|
54
|
+
{
|
|
55
|
+
"id": "broken-link-check",
|
|
56
|
+
"version": 1,
|
|
57
|
+
"name": "Broken Link Check",
|
|
58
|
+
"description": "Checks a list of URLs and reports any that are dead. Use this if your site or docs have outbound/internal links that quietly rot over time.",
|
|
59
|
+
"category": "content",
|
|
60
|
+
"tags": [
|
|
61
|
+
"links",
|
|
62
|
+
"content",
|
|
63
|
+
"maintenance"
|
|
64
|
+
],
|
|
65
|
+
"schedule": "0 7 * * 1",
|
|
66
|
+
"timezone": "UTC",
|
|
67
|
+
"runner": "shell",
|
|
68
|
+
"modes": [
|
|
69
|
+
"script"
|
|
70
|
+
],
|
|
71
|
+
"compatible_agents": [
|
|
72
|
+
"generic",
|
|
73
|
+
"claude",
|
|
74
|
+
"codex"
|
|
75
|
+
],
|
|
76
|
+
"path": "jobs/content/broken-link-check.yaml"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "changelog-digest",
|
|
80
|
+
"version": 1,
|
|
81
|
+
"name": "Changelog Digest",
|
|
82
|
+
"description": "Rolls up recent commits into a draft changelog entry your users could actually read. Use this if you ship regularly but always write the changelog as an afterthought (or skip it).",
|
|
83
|
+
"category": "content",
|
|
84
|
+
"tags": [
|
|
85
|
+
"changelog",
|
|
86
|
+
"release",
|
|
87
|
+
"docs"
|
|
88
|
+
],
|
|
89
|
+
"schedule": "0 10 * * 5",
|
|
90
|
+
"timezone": "UTC",
|
|
91
|
+
"runner": "hybrid",
|
|
92
|
+
"modes": [
|
|
93
|
+
"script",
|
|
94
|
+
"agent-prompt"
|
|
95
|
+
],
|
|
96
|
+
"compatible_agents": [
|
|
97
|
+
"claude",
|
|
98
|
+
"codex",
|
|
99
|
+
"hermes",
|
|
100
|
+
"openclaw",
|
|
101
|
+
"generic"
|
|
102
|
+
],
|
|
103
|
+
"path": "jobs/content/changelog-digest.yaml"
|
|
104
|
+
},
|
|
54
105
|
{
|
|
55
106
|
"id": "cost-alert",
|
|
56
107
|
"version": 1,
|
|
@@ -78,6 +129,54 @@
|
|
|
78
129
|
],
|
|
79
130
|
"path": "jobs/devops/cost-alert.yaml"
|
|
80
131
|
},
|
|
132
|
+
{
|
|
133
|
+
"id": "course-progress-checkin",
|
|
134
|
+
"version": 1,
|
|
135
|
+
"name": "Course Progress Check-in",
|
|
136
|
+
"description": "Compares your current chapter/lesson against a target date and tells you if you're on track or falling behind. Use this if you've ever signed up for a course and quietly stopped halfway through.",
|
|
137
|
+
"category": "learning",
|
|
138
|
+
"tags": [
|
|
139
|
+
"learning",
|
|
140
|
+
"goals",
|
|
141
|
+
"progress"
|
|
142
|
+
],
|
|
143
|
+
"schedule": "0 9 * * 1",
|
|
144
|
+
"timezone": "America/Los_Angeles",
|
|
145
|
+
"runner": "shell",
|
|
146
|
+
"modes": [
|
|
147
|
+
"script"
|
|
148
|
+
],
|
|
149
|
+
"compatible_agents": [
|
|
150
|
+
"generic",
|
|
151
|
+
"claude",
|
|
152
|
+
"codex"
|
|
153
|
+
],
|
|
154
|
+
"path": "jobs/learning/course-progress-checkin.yaml"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "daily-flashcard-review",
|
|
158
|
+
"version": 1,
|
|
159
|
+
"name": "Daily Flashcard Review",
|
|
160
|
+
"description": "Lists which flashcards are due for review today from a simple deck file. Use this if you're learning something with spaced repetition but don't want a whole separate app for it.",
|
|
161
|
+
"category": "learning",
|
|
162
|
+
"tags": [
|
|
163
|
+
"learning",
|
|
164
|
+
"flashcards",
|
|
165
|
+
"spaced-repetition"
|
|
166
|
+
],
|
|
167
|
+
"schedule": "0 8 * * *",
|
|
168
|
+
"timezone": "America/Los_Angeles",
|
|
169
|
+
"runner": "shell",
|
|
170
|
+
"modes": [
|
|
171
|
+
"script"
|
|
172
|
+
],
|
|
173
|
+
"compatible_agents": [
|
|
174
|
+
"generic",
|
|
175
|
+
"claude",
|
|
176
|
+
"codex"
|
|
177
|
+
],
|
|
178
|
+
"path": "jobs/learning/daily-flashcard-review.yaml"
|
|
179
|
+
},
|
|
81
180
|
{
|
|
82
181
|
"id": "daily-standup-summary",
|
|
83
182
|
"version": 1,
|
|
@@ -105,6 +204,30 @@
|
|
|
105
204
|
],
|
|
106
205
|
"path": "jobs/productivity/daily-standup-summary.yaml"
|
|
107
206
|
},
|
|
207
|
+
{
|
|
208
|
+
"id": "db-backup-verify",
|
|
209
|
+
"version": 1,
|
|
210
|
+
"name": "Database Backup Restore Verification",
|
|
211
|
+
"description": "Actually restores your latest database backup to a throwaway database and checks it's queryable. Use this if `backup-reminder` isn't enough — a backup file existing doesn't mean it's actually restorable.",
|
|
212
|
+
"category": "devops",
|
|
213
|
+
"tags": [
|
|
214
|
+
"database",
|
|
215
|
+
"backup",
|
|
216
|
+
"postgres"
|
|
217
|
+
],
|
|
218
|
+
"schedule": "0 5 * * *",
|
|
219
|
+
"timezone": "UTC",
|
|
220
|
+
"runner": "shell",
|
|
221
|
+
"modes": [
|
|
222
|
+
"script"
|
|
223
|
+
],
|
|
224
|
+
"compatible_agents": [
|
|
225
|
+
"generic",
|
|
226
|
+
"claude",
|
|
227
|
+
"codex"
|
|
228
|
+
],
|
|
229
|
+
"path": "jobs/devops/db-backup-verify.yaml"
|
|
230
|
+
},
|
|
108
231
|
{
|
|
109
232
|
"id": "dependency-audit",
|
|
110
233
|
"version": 1,
|
|
@@ -132,6 +255,126 @@
|
|
|
132
255
|
],
|
|
133
256
|
"path": "jobs/devops/dependency-audit.yaml"
|
|
134
257
|
},
|
|
258
|
+
{
|
|
259
|
+
"id": "disk-space-check",
|
|
260
|
+
"version": 1,
|
|
261
|
+
"name": "Disk Space Check",
|
|
262
|
+
"description": "Checks how full a disk/volume is and warns you before it fills up. Use this if you've ever had a server or laptop grind to a halt because disk usage crept up unnoticed.",
|
|
263
|
+
"category": "devops",
|
|
264
|
+
"tags": [
|
|
265
|
+
"disk",
|
|
266
|
+
"monitoring",
|
|
267
|
+
"maintenance"
|
|
268
|
+
],
|
|
269
|
+
"schedule": "0 */6 * * *",
|
|
270
|
+
"timezone": "UTC",
|
|
271
|
+
"runner": "shell",
|
|
272
|
+
"modes": [
|
|
273
|
+
"script"
|
|
274
|
+
],
|
|
275
|
+
"compatible_agents": [
|
|
276
|
+
"generic",
|
|
277
|
+
"claude",
|
|
278
|
+
"codex"
|
|
279
|
+
],
|
|
280
|
+
"path": "jobs/devops/disk-space-check.yaml"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"id": "docker-image-prune",
|
|
284
|
+
"version": 1,
|
|
285
|
+
"name": "Docker Image & Container Prune",
|
|
286
|
+
"description": "Cleans up stopped containers and dangling Docker images so they don't quietly eat your disk. Use this if you run Docker locally or on a server and never remember to clean up after yourself.",
|
|
287
|
+
"category": "devops",
|
|
288
|
+
"tags": [
|
|
289
|
+
"docker",
|
|
290
|
+
"cleanup",
|
|
291
|
+
"disk-space"
|
|
292
|
+
],
|
|
293
|
+
"schedule": "0 4 * * *",
|
|
294
|
+
"timezone": "UTC",
|
|
295
|
+
"runner": "shell",
|
|
296
|
+
"modes": [
|
|
297
|
+
"script"
|
|
298
|
+
],
|
|
299
|
+
"compatible_agents": [
|
|
300
|
+
"generic",
|
|
301
|
+
"claude",
|
|
302
|
+
"codex"
|
|
303
|
+
],
|
|
304
|
+
"path": "jobs/devops/docker-image-prune.yaml"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"id": "env-drift-check",
|
|
308
|
+
"version": 1,
|
|
309
|
+
"name": "Env File Drift Check",
|
|
310
|
+
"description": "Compares your .env against .env.example and flags keys that are missing or extra. Use this if you've ever deployed and hit a crash because a new required env var never got set.",
|
|
311
|
+
"category": "devops",
|
|
312
|
+
"tags": [
|
|
313
|
+
"config",
|
|
314
|
+
"env",
|
|
315
|
+
"drift"
|
|
316
|
+
],
|
|
317
|
+
"schedule": "0 8 * * *",
|
|
318
|
+
"timezone": "UTC",
|
|
319
|
+
"runner": "shell",
|
|
320
|
+
"modes": [
|
|
321
|
+
"script"
|
|
322
|
+
],
|
|
323
|
+
"compatible_agents": [
|
|
324
|
+
"generic",
|
|
325
|
+
"claude",
|
|
326
|
+
"codex"
|
|
327
|
+
],
|
|
328
|
+
"path": "jobs/devops/env-drift-check.yaml"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"id": "failed-login-watch",
|
|
332
|
+
"version": 1,
|
|
333
|
+
"name": "Failed Login Watch",
|
|
334
|
+
"description": "Watches an auth log for a burst of failed login attempts and alerts if it crosses a threshold. Use this if you run a server exposed to SSH and want an early warning for brute-force attempts.",
|
|
335
|
+
"category": "security",
|
|
336
|
+
"tags": [
|
|
337
|
+
"security",
|
|
338
|
+
"auth",
|
|
339
|
+
"monitoring"
|
|
340
|
+
],
|
|
341
|
+
"schedule": "*/15 * * * *",
|
|
342
|
+
"timezone": "UTC",
|
|
343
|
+
"runner": "shell",
|
|
344
|
+
"modes": [
|
|
345
|
+
"script"
|
|
346
|
+
],
|
|
347
|
+
"compatible_agents": [
|
|
348
|
+
"generic",
|
|
349
|
+
"claude",
|
|
350
|
+
"codex"
|
|
351
|
+
],
|
|
352
|
+
"path": "jobs/security/failed-login-watch.yaml"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"id": "focus-block-reminder",
|
|
356
|
+
"version": 1,
|
|
357
|
+
"name": "Focus Block Reminder",
|
|
358
|
+
"description": "Nudges you to start a deep-work block at set times. Use this if your day fills up with reactive work and real focus time only happens by accident.",
|
|
359
|
+
"category": "productivity",
|
|
360
|
+
"tags": [
|
|
361
|
+
"focus",
|
|
362
|
+
"productivity",
|
|
363
|
+
"deep-work"
|
|
364
|
+
],
|
|
365
|
+
"schedule": "0 9,14 * * 1-5",
|
|
366
|
+
"timezone": "America/Los_Angeles",
|
|
367
|
+
"runner": "shell",
|
|
368
|
+
"modes": [
|
|
369
|
+
"script"
|
|
370
|
+
],
|
|
371
|
+
"compatible_agents": [
|
|
372
|
+
"generic",
|
|
373
|
+
"claude",
|
|
374
|
+
"codex"
|
|
375
|
+
],
|
|
376
|
+
"path": "jobs/productivity/focus-block-reminder.yaml"
|
|
377
|
+
},
|
|
135
378
|
{
|
|
136
379
|
"id": "habit-checkin",
|
|
137
380
|
"version": 1,
|
|
@@ -182,6 +425,30 @@
|
|
|
182
425
|
],
|
|
183
426
|
"path": "jobs/productivity/inbox-triage.yaml"
|
|
184
427
|
},
|
|
428
|
+
{
|
|
429
|
+
"id": "license-compliance-check",
|
|
430
|
+
"version": 1,
|
|
431
|
+
"name": "Dependency License Compliance Check",
|
|
432
|
+
"description": "Scans your dependencies for licenses you've flagged as risky (like GPL or AGPL). Use this if you've ever shipped something and only later found out a dependency's license doesn't play well with your product.",
|
|
433
|
+
"category": "devops",
|
|
434
|
+
"tags": [
|
|
435
|
+
"license",
|
|
436
|
+
"compliance",
|
|
437
|
+
"dependencies"
|
|
438
|
+
],
|
|
439
|
+
"schedule": "0 8 * * 1",
|
|
440
|
+
"timezone": "UTC",
|
|
441
|
+
"runner": "shell",
|
|
442
|
+
"modes": [
|
|
443
|
+
"script"
|
|
444
|
+
],
|
|
445
|
+
"compatible_agents": [
|
|
446
|
+
"generic",
|
|
447
|
+
"claude",
|
|
448
|
+
"codex"
|
|
449
|
+
],
|
|
450
|
+
"path": "jobs/devops/license-compliance-check.yaml"
|
|
451
|
+
},
|
|
185
452
|
{
|
|
186
453
|
"id": "log-cleanup",
|
|
187
454
|
"version": 1,
|
|
@@ -232,6 +499,102 @@
|
|
|
232
499
|
],
|
|
233
500
|
"path": "jobs/personal/meal-plan-reminder.yaml"
|
|
234
501
|
},
|
|
502
|
+
{
|
|
503
|
+
"id": "net-worth-snapshot",
|
|
504
|
+
"version": 1,
|
|
505
|
+
"name": "Net Worth Snapshot Reminder",
|
|
506
|
+
"description": "Reminds you to log your net worth each month and shows the trend from your last two entries. Use this if you want to track your finances over time but keep forgetting to actually sit down and do it.",
|
|
507
|
+
"category": "finance",
|
|
508
|
+
"tags": [
|
|
509
|
+
"finance",
|
|
510
|
+
"net-worth",
|
|
511
|
+
"tracking"
|
|
512
|
+
],
|
|
513
|
+
"schedule": "0 9 1 * *",
|
|
514
|
+
"timezone": "UTC",
|
|
515
|
+
"runner": "shell",
|
|
516
|
+
"modes": [
|
|
517
|
+
"script"
|
|
518
|
+
],
|
|
519
|
+
"compatible_agents": [
|
|
520
|
+
"generic",
|
|
521
|
+
"claude",
|
|
522
|
+
"codex"
|
|
523
|
+
],
|
|
524
|
+
"path": "jobs/finance/net-worth-snapshot.yaml"
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"id": "open-port-check",
|
|
528
|
+
"version": 1,
|
|
529
|
+
"name": "Expected Open Ports Check",
|
|
530
|
+
"description": "Checks that the ports you expect to be open on a host actually are, and flags any that aren't. Use this if a service has ever silently stopped listening and you found out from a user instead of a monitor.",
|
|
531
|
+
"category": "security",
|
|
532
|
+
"tags": [
|
|
533
|
+
"security",
|
|
534
|
+
"network",
|
|
535
|
+
"ports"
|
|
536
|
+
],
|
|
537
|
+
"schedule": "0 */4 * * *",
|
|
538
|
+
"timezone": "UTC",
|
|
539
|
+
"runner": "shell",
|
|
540
|
+
"modes": [
|
|
541
|
+
"script"
|
|
542
|
+
],
|
|
543
|
+
"compatible_agents": [
|
|
544
|
+
"generic",
|
|
545
|
+
"claude",
|
|
546
|
+
"codex"
|
|
547
|
+
],
|
|
548
|
+
"path": "jobs/security/open-port-check.yaml"
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"id": "orphaned-branch-cleanup",
|
|
552
|
+
"version": 1,
|
|
553
|
+
"name": "Orphaned Branch Cleanup",
|
|
554
|
+
"description": "Lists remote branches already merged into main that nobody's deleted yet. Use this if your branch list has become a graveyard nobody wants to clean up.",
|
|
555
|
+
"category": "devops",
|
|
556
|
+
"tags": [
|
|
557
|
+
"git",
|
|
558
|
+
"cleanup",
|
|
559
|
+
"branches"
|
|
560
|
+
],
|
|
561
|
+
"schedule": "0 9 * * 1",
|
|
562
|
+
"timezone": "UTC",
|
|
563
|
+
"runner": "shell",
|
|
564
|
+
"modes": [
|
|
565
|
+
"script"
|
|
566
|
+
],
|
|
567
|
+
"compatible_agents": [
|
|
568
|
+
"generic",
|
|
569
|
+
"claude",
|
|
570
|
+
"codex"
|
|
571
|
+
],
|
|
572
|
+
"path": "jobs/devops/orphaned-branch-cleanup.yaml"
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
"id": "reading-list-nudge",
|
|
576
|
+
"version": 1,
|
|
577
|
+
"name": "Reading List Nudge",
|
|
578
|
+
"description": "Reminds you what's next on your reading list. Use this if you save articles/books to \"read later\" and later never comes.",
|
|
579
|
+
"category": "learning",
|
|
580
|
+
"tags": [
|
|
581
|
+
"learning",
|
|
582
|
+
"reading",
|
|
583
|
+
"reminder"
|
|
584
|
+
],
|
|
585
|
+
"schedule": "0 9 * * 6",
|
|
586
|
+
"timezone": "America/Los_Angeles",
|
|
587
|
+
"runner": "shell",
|
|
588
|
+
"modes": [
|
|
589
|
+
"script"
|
|
590
|
+
],
|
|
591
|
+
"compatible_agents": [
|
|
592
|
+
"generic",
|
|
593
|
+
"claude",
|
|
594
|
+
"codex"
|
|
595
|
+
],
|
|
596
|
+
"path": "jobs/learning/reading-list-nudge.yaml"
|
|
597
|
+
},
|
|
235
598
|
{
|
|
236
599
|
"id": "repo-health-check",
|
|
237
600
|
"version": 1,
|
|
@@ -259,6 +622,107 @@
|
|
|
259
622
|
],
|
|
260
623
|
"path": "jobs/devops/repo-health-check.yaml"
|
|
261
624
|
},
|
|
625
|
+
{
|
|
626
|
+
"id": "saas-seat-audit",
|
|
627
|
+
"version": 1,
|
|
628
|
+
"name": "Team SaaS Seat Audit",
|
|
629
|
+
"description": "Flags team SaaS seats (Slack, Notion, GitHub, etc.) nobody's actually used in a while. Use this if you suspect you're paying for seats of people who left or tools nobody opens anymore.",
|
|
630
|
+
"category": "finance",
|
|
631
|
+
"tags": [
|
|
632
|
+
"saas",
|
|
633
|
+
"seats",
|
|
634
|
+
"team",
|
|
635
|
+
"budget"
|
|
636
|
+
],
|
|
637
|
+
"schedule": "0 9 1 * *",
|
|
638
|
+
"timezone": "UTC",
|
|
639
|
+
"runner": "shell",
|
|
640
|
+
"modes": [
|
|
641
|
+
"script"
|
|
642
|
+
],
|
|
643
|
+
"compatible_agents": [
|
|
644
|
+
"generic",
|
|
645
|
+
"claude",
|
|
646
|
+
"codex"
|
|
647
|
+
],
|
|
648
|
+
"path": "jobs/finance/saas-seat-audit.yaml"
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
"id": "screen-time-check",
|
|
652
|
+
"version": 1,
|
|
653
|
+
"name": "Screen Time Check",
|
|
654
|
+
"description": "Checks today's screen time against a goal and tells you if you're over. Use this if you're trying to cut down on screen time but never actually look at the stats your phone/laptop already collects.",
|
|
655
|
+
"category": "personal",
|
|
656
|
+
"tags": [
|
|
657
|
+
"health",
|
|
658
|
+
"screen-time",
|
|
659
|
+
"wellbeing"
|
|
660
|
+
],
|
|
661
|
+
"schedule": "0 20 * * *",
|
|
662
|
+
"timezone": "America/Los_Angeles",
|
|
663
|
+
"runner": "agent-prompt",
|
|
664
|
+
"modes": [
|
|
665
|
+
"agent-prompt"
|
|
666
|
+
],
|
|
667
|
+
"compatible_agents": [
|
|
668
|
+
"claude",
|
|
669
|
+
"codex",
|
|
670
|
+
"hermes",
|
|
671
|
+
"openclaw",
|
|
672
|
+
"generic"
|
|
673
|
+
],
|
|
674
|
+
"path": "jobs/personal/screen-time-check.yaml"
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"id": "secrets-scan",
|
|
678
|
+
"version": 1,
|
|
679
|
+
"name": "Committed Secrets Scan",
|
|
680
|
+
"description": "Scans a repo for accidentally committed API keys, tokens, and private keys. Use this if you want a safety net for the \"oops, committed a key\" mistake everyone makes eventually.",
|
|
681
|
+
"category": "security",
|
|
682
|
+
"tags": [
|
|
683
|
+
"security",
|
|
684
|
+
"secrets",
|
|
685
|
+
"scanning"
|
|
686
|
+
],
|
|
687
|
+
"schedule": "0 3 * * *",
|
|
688
|
+
"timezone": "UTC",
|
|
689
|
+
"runner": "shell",
|
|
690
|
+
"modes": [
|
|
691
|
+
"script"
|
|
692
|
+
],
|
|
693
|
+
"compatible_agents": [
|
|
694
|
+
"generic",
|
|
695
|
+
"claude",
|
|
696
|
+
"codex"
|
|
697
|
+
],
|
|
698
|
+
"path": "jobs/security/secrets-scan.yaml"
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"id": "social-mentions-watch",
|
|
702
|
+
"version": 1,
|
|
703
|
+
"name": "Social Mentions Watch",
|
|
704
|
+
"description": "Scans for recent mentions of your brand, product, or repo and summarizes them. Use this if you want to catch a complaint or bug report on social media before it turns into a bigger problem.",
|
|
705
|
+
"category": "content",
|
|
706
|
+
"tags": [
|
|
707
|
+
"social",
|
|
708
|
+
"mentions",
|
|
709
|
+
"monitoring"
|
|
710
|
+
],
|
|
711
|
+
"schedule": "0 9 * * *",
|
|
712
|
+
"timezone": "UTC",
|
|
713
|
+
"runner": "agent-prompt",
|
|
714
|
+
"modes": [
|
|
715
|
+
"agent-prompt"
|
|
716
|
+
],
|
|
717
|
+
"compatible_agents": [
|
|
718
|
+
"claude",
|
|
719
|
+
"codex",
|
|
720
|
+
"hermes",
|
|
721
|
+
"openclaw",
|
|
722
|
+
"generic"
|
|
723
|
+
],
|
|
724
|
+
"path": "jobs/content/social-mentions-watch.yaml"
|
|
725
|
+
},
|
|
262
726
|
{
|
|
263
727
|
"id": "ssl-cert-expiry-check",
|
|
264
728
|
"version": 1,
|
|
@@ -284,6 +748,54 @@
|
|
|
284
748
|
],
|
|
285
749
|
"path": "jobs/devops/ssl-cert-expiry-check.yaml"
|
|
286
750
|
},
|
|
751
|
+
{
|
|
752
|
+
"id": "stale-dependency-pr-nudge",
|
|
753
|
+
"version": 1,
|
|
754
|
+
"name": "Stale Dependency PR Nudge",
|
|
755
|
+
"description": "Lists open dependency-bump pull requests (from Dependabot/Renovate) that have been sitting for a while. Use this if automated PRs pile up and quietly go stale instead of getting merged or closed.",
|
|
756
|
+
"category": "devops",
|
|
757
|
+
"tags": [
|
|
758
|
+
"github",
|
|
759
|
+
"dependencies",
|
|
760
|
+
"pr"
|
|
761
|
+
],
|
|
762
|
+
"schedule": "0 9 * * 1-5",
|
|
763
|
+
"timezone": "UTC",
|
|
764
|
+
"runner": "shell",
|
|
765
|
+
"modes": [
|
|
766
|
+
"script"
|
|
767
|
+
],
|
|
768
|
+
"compatible_agents": [
|
|
769
|
+
"generic",
|
|
770
|
+
"claude",
|
|
771
|
+
"codex"
|
|
772
|
+
],
|
|
773
|
+
"path": "jobs/devops/stale-dependency-pr-nudge.yaml"
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
"id": "subscription-audit",
|
|
777
|
+
"version": 1,
|
|
778
|
+
"name": "Subscription Audit",
|
|
779
|
+
"description": "Flags recurring subscriptions you haven't actually used in a while. Use this if you suspect you're paying for things you forgot to cancel.",
|
|
780
|
+
"category": "finance",
|
|
781
|
+
"tags": [
|
|
782
|
+
"subscriptions",
|
|
783
|
+
"budget",
|
|
784
|
+
"finance"
|
|
785
|
+
],
|
|
786
|
+
"schedule": "0 9 1 * *",
|
|
787
|
+
"timezone": "UTC",
|
|
788
|
+
"runner": "shell",
|
|
789
|
+
"modes": [
|
|
790
|
+
"script"
|
|
791
|
+
],
|
|
792
|
+
"compatible_agents": [
|
|
793
|
+
"generic",
|
|
794
|
+
"claude",
|
|
795
|
+
"codex"
|
|
796
|
+
],
|
|
797
|
+
"path": "jobs/finance/subscription-audit.yaml"
|
|
798
|
+
},
|
|
287
799
|
{
|
|
288
800
|
"id": "uptime-ping-check",
|
|
289
801
|
"version": 1,
|
|
@@ -308,6 +820,30 @@
|
|
|
308
820
|
],
|
|
309
821
|
"path": "jobs/devops/uptime-ping-check.yaml"
|
|
310
822
|
},
|
|
823
|
+
{
|
|
824
|
+
"id": "water-intake-reminder",
|
|
825
|
+
"version": 1,
|
|
826
|
+
"name": "Water Intake Reminder",
|
|
827
|
+
"description": "Nudges you to drink water a few times a day toward a daily goal. Use this if you sit at a desk all day and forget to drink water until you've got a headache.",
|
|
828
|
+
"category": "personal",
|
|
829
|
+
"tags": [
|
|
830
|
+
"health",
|
|
831
|
+
"hydration",
|
|
832
|
+
"reminder"
|
|
833
|
+
],
|
|
834
|
+
"schedule": "0 9,12,15,18 * * *",
|
|
835
|
+
"timezone": "America/Los_Angeles",
|
|
836
|
+
"runner": "shell",
|
|
837
|
+
"modes": [
|
|
838
|
+
"script"
|
|
839
|
+
],
|
|
840
|
+
"compatible_agents": [
|
|
841
|
+
"generic",
|
|
842
|
+
"claude",
|
|
843
|
+
"codex"
|
|
844
|
+
],
|
|
845
|
+
"path": "jobs/personal/water-intake-reminder.yaml"
|
|
846
|
+
},
|
|
311
847
|
{
|
|
312
848
|
"id": "weekly-report",
|
|
313
849
|
"version": 1,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
id: broken-link-check
|
|
2
|
+
version: 1
|
|
3
|
+
name: Broken Link Check
|
|
4
|
+
description: >
|
|
5
|
+
Checks a list of URLs and reports any that are dead. Use this if your
|
|
6
|
+
site or docs have outbound/internal links that quietly rot over time.
|
|
7
|
+
category: content
|
|
8
|
+
tags: [links, content, maintenance]
|
|
9
|
+
schedule: "0 7 * * 1"
|
|
10
|
+
timezone: "UTC"
|
|
11
|
+
runner: shell
|
|
12
|
+
command: >
|
|
13
|
+
file={{urls_file}};
|
|
14
|
+
[ -f "$file" ] || { echo "ERROR: $file not found"; exit 1; };
|
|
15
|
+
fail=0;
|
|
16
|
+
while IFS= read -r url; do
|
|
17
|
+
[ -z "$url" ] && continue;
|
|
18
|
+
code=$(curl -o /dev/null -s -w '%{http_code}' --max-time {{timeout_seconds}} "$url");
|
|
19
|
+
if [ "$code" -ge 400 ] || [ "$code" = "000" ]; then echo "BROKEN ($code): $url"; fail=1; fi
|
|
20
|
+
done < "$file";
|
|
21
|
+
[ "$fail" -eq 0 ] && echo "OK: all links responded successfully";
|
|
22
|
+
exit $fail
|
|
23
|
+
variables:
|
|
24
|
+
urls_file:
|
|
25
|
+
default: "./links.txt"
|
|
26
|
+
description: Plain text file with one URL per line to check.
|
|
27
|
+
timeout_seconds:
|
|
28
|
+
default: 10
|
|
29
|
+
description: Max seconds to wait per URL before treating it as broken.
|
|
30
|
+
compatible_agents: [generic, claude, codex]
|
|
31
|
+
notes: >
|
|
32
|
+
Zero-token, deterministic. You maintain urls_file yourself (or generate
|
|
33
|
+
it from a sitemap) — this job only checks what's listed.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
id: changelog-digest
|
|
2
|
+
version: 1
|
|
3
|
+
name: Changelog Digest
|
|
4
|
+
description: >
|
|
5
|
+
Rolls up recent commits into a draft changelog entry your users could
|
|
6
|
+
actually read. Use this if you ship regularly but always write the
|
|
7
|
+
changelog as an afterthought (or skip it).
|
|
8
|
+
category: content
|
|
9
|
+
tags: [changelog, release, docs]
|
|
10
|
+
schedule: "0 10 * * 5"
|
|
11
|
+
timezone: "UTC"
|
|
12
|
+
runner: hybrid
|
|
13
|
+
command: >
|
|
14
|
+
cd {{repo_path}} && last_tag=$(git describe --tags --abbrev=0 2>/dev/null);
|
|
15
|
+
if [ -n "$last_tag" ]; then echo "--- commits since $last_tag ---"; git log "$last_tag"..HEAD --pretty=format:'%h %s';
|
|
16
|
+
else echo "--- no tags found, showing last {{lookback_days}} days ---"; git log --since="{{lookback_days}} days ago" --pretty=format:'%h %s'; fi
|
|
17
|
+
prompt: |
|
|
18
|
+
Draft a user-facing changelog entry for {{project_name}} covering commits
|
|
19
|
+
since the last release (or the last {{lookback_days}} days if no tags
|
|
20
|
+
exist) in {{repo_path}}.
|
|
21
|
+
1. Group into Added / Changed / Fixed.
|
|
22
|
+
2. Rewrite terse commit messages into plain language a user would
|
|
23
|
+
actually understand.
|
|
24
|
+
3. Skip purely internal commits (refactors, tests, CI) unless they're
|
|
25
|
+
user-visible.
|
|
26
|
+
script_note: >
|
|
27
|
+
`command` dumps the raw commit log since the last tag, zero tokens.
|
|
28
|
+
`prompt` groups and rewrites it into an actual user-facing changelog entry.
|
|
29
|
+
variables:
|
|
30
|
+
repo_path:
|
|
31
|
+
default: "."
|
|
32
|
+
description: Path to the repo to pull history from.
|
|
33
|
+
project_name:
|
|
34
|
+
default: "this project"
|
|
35
|
+
description: Name to use in the changelog header.
|
|
36
|
+
lookback_days:
|
|
37
|
+
default: 14
|
|
38
|
+
description: Fallback window if the repo has no tags yet.
|
|
39
|
+
compatible_agents: [claude, codex, hermes, openclaw, generic]
|
|
40
|
+
notes: Schedule defaults to Friday; adjust to your release cadence.
|