@olegkoval/agent-skills 1.28.0 → 1.30.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/.claude-plugin/plugin.json +7 -2
- package/.cursor-plugin/index.json +26 -1
- package/.grok-plugin/index.json +26 -1
- package/.kiro/steering/garmin-watchface.md +83 -31
- package/.windsurf/rules/garmin-watchface.md +83 -31
- package/README.md +8 -3
- package/catalog/skills.json +117 -1
- package/collections/software-development.json +2 -1
- package/package.json +1 -1
- package/packages/software-development/branch-cleanup/SKILL.md +204 -0
- package/packages/software-development/branch-cleanup/adapters/claude/plugin.json +5 -0
- package/packages/software-development/branch-cleanup/adapters/claude/skills/branch-cleanup/SKILL.md +205 -0
- package/packages/software-development/branch-cleanup/adapters/codex/README.md +19 -0
- package/packages/software-development/branch-cleanup/adapters/cursor/plugin.json +6 -0
- package/packages/software-development/branch-cleanup/adapters/cursor/skills/branch-cleanup/SKILL.md +205 -0
- package/packages/software-development/branch-cleanup/adapters/grok/plugin.json +6 -0
- package/packages/software-development/branch-cleanup/adapters/grok/skills/branch-cleanup/SKILL.md +205 -0
- package/packages/software-development/morning-routine/SKILL.md +149 -0
- package/packages/software-development/morning-routine/adapters/claude/plugin.json +5 -0
- package/packages/software-development/morning-routine/adapters/claude/skills/morning-routine/SKILL.md +150 -0
- package/packages/software-development/morning-routine/adapters/codex/README.md +19 -0
- package/packages/software-development/morning-routine/adapters/cursor/plugin.json +6 -0
- package/packages/software-development/morning-routine/adapters/cursor/skills/morning-routine/SKILL.md +150 -0
- package/packages/software-development/morning-routine/adapters/grok/plugin.json +6 -0
- package/packages/software-development/morning-routine/adapters/grok/skills/morning-routine/SKILL.md +150 -0
- package/packages/software-development/pr-finalize-complete/adapters/claude/plugin.json +1 -1
- package/packages/software-development/pr-finalize-complete/adapters/codex/README.md +7 -11
- package/packages/software-development/pr-finalize-complete/adapters/cursor/plugin.json +1 -1
- package/packages/software-development/pr-finalize-complete/adapters/grok/plugin.json +1 -1
- package/packages/software-development/release-day/SKILL.md +286 -0
- package/packages/software-development/release-day/adapters/claude/plugin.json +5 -0
- package/packages/software-development/release-day/adapters/claude/skills/release-day/SKILL.md +287 -0
- package/packages/software-development/release-day/adapters/codex/README.md +19 -0
- package/packages/software-development/release-day/adapters/cursor/plugin.json +6 -0
- package/packages/software-development/release-day/adapters/cursor/skills/release-day/SKILL.md +287 -0
- package/packages/software-development/release-day/adapters/grok/plugin.json +6 -0
- package/packages/software-development/release-day/adapters/grok/skills/release-day/SKILL.md +287 -0
- package/packages/software-development/vinted-listing/SKILL.md +58 -0
- package/packages/software-development/vinted-listing/adapters/claude/plugin.json +5 -0
- package/packages/software-development/vinted-listing/adapters/claude/skills/vinted-listing/SKILL.md +59 -0
- package/packages/software-development/vinted-listing/adapters/claude/skills/vinted-listing/references/photo-and-duplicate-policy.md +20 -0
- package/packages/software-development/vinted-listing/adapters/codex/README.md +3 -0
- package/packages/software-development/vinted-listing/adapters/cursor/plugin.json +6 -0
- package/packages/software-development/vinted-listing/adapters/cursor/skills/vinted-listing/SKILL.md +59 -0
- package/packages/software-development/vinted-listing/adapters/cursor/skills/vinted-listing/references/photo-and-duplicate-policy.md +20 -0
- package/packages/software-development/vinted-listing/adapters/grok/plugin.json +6 -0
- package/packages/software-development/vinted-listing/adapters/grok/skills/vinted-listing/SKILL.md +59 -0
- package/packages/software-development/vinted-listing/adapters/grok/skills/vinted-listing/references/photo-and-duplicate-policy.md +20 -0
- package/packages/software-development/vinted-listing/references/photo-and-duplicate-policy.md +20 -0
- package/packages/wearables/garmin-watchface/SKILL.md +82 -35
- package/packages/wearables/garmin-watchface/adapters/claude/plugin.json +1 -1
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/SKILL.md +82 -35
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/references/design-proposals.md +99 -0
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/references/devices.md +112 -0
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/references/display.md +78 -3
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/references/inspiration-wizard.md +140 -0
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/references/layout.md +28 -0
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/references/publishing.md +134 -5
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/references/simulator.md +86 -2
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/scripts/ciq-inspire +329 -0
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/scripts/ciq-mock +502 -0
- package/packages/wearables/garmin-watchface/adapters/claude/skills/garmin-watchface/scripts/ciq-release +12 -6
- package/packages/wearables/garmin-watchface/adapters/cursor/plugin.json +1 -1
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/SKILL.md +82 -35
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/references/design-proposals.md +99 -0
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/references/devices.md +112 -0
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/references/display.md +78 -3
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/references/inspiration-wizard.md +140 -0
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/references/layout.md +28 -0
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/references/publishing.md +134 -5
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/references/simulator.md +86 -2
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/scripts/ciq-inspire +329 -0
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/scripts/ciq-mock +502 -0
- package/packages/wearables/garmin-watchface/adapters/cursor/skills/garmin-watchface/scripts/ciq-release +12 -6
- package/packages/wearables/garmin-watchface/adapters/grok/plugin.json +1 -1
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/SKILL.md +82 -35
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/references/design-proposals.md +99 -0
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/references/devices.md +112 -0
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/references/display.md +78 -3
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/references/inspiration-wizard.md +140 -0
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/references/layout.md +28 -0
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/references/publishing.md +134 -5
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/references/simulator.md +86 -2
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/scripts/ciq-inspire +329 -0
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/scripts/ciq-mock +502 -0
- package/packages/wearables/garmin-watchface/adapters/grok/skills/garmin-watchface/scripts/ciq-release +12 -6
- package/packages/wearables/garmin-watchface/adapters/kiro/steering/garmin-watchface.md +83 -31
- package/packages/wearables/garmin-watchface/adapters/windsurf/rules/garmin-watchface.md +83 -31
- package/packages/wearables/garmin-watchface/references/design-proposals.md +99 -0
- package/packages/wearables/garmin-watchface/references/devices.md +112 -0
- package/packages/wearables/garmin-watchface/references/display.md +78 -3
- package/packages/wearables/garmin-watchface/references/inspiration-wizard.md +140 -0
- package/packages/wearables/garmin-watchface/references/layout.md +28 -0
- package/packages/wearables/garmin-watchface/references/publishing.md +134 -5
- package/packages/wearables/garmin-watchface/references/simulator.md +86 -2
- package/packages/wearables/garmin-watchface/scripts/ciq-inspire +329 -0
- package/packages/wearables/garmin-watchface/scripts/ciq-mock +502 -0
- package/packages/wearables/garmin-watchface/scripts/ciq-release +12 -6
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: morning-routine
|
|
3
|
+
description: >
|
|
4
|
+
Run the complete start-of-day setup in one pass: roll over unfinished Obsidian tasks
|
|
5
|
+
to today's daily note, sync open GitHub PRs that need your attention, and sweep
|
|
6
|
+
Dependabot/Renovate PRs to clear safe patch bumps. Use when the user says "start my
|
|
7
|
+
day", "morning routine", "set up my day", or when a scheduled morning job fires.
|
|
8
|
+
license: MIT
|
|
9
|
+
allowed-tools: Bash, Read, Write, Edit
|
|
10
|
+
compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires git and gh (GitHub CLI) authenticated, plus a daily-note vault path configured.
|
|
11
|
+
metadata:
|
|
12
|
+
targets: [_source-only]
|
|
13
|
+
author: Oleg Koval
|
|
14
|
+
tags:
|
|
15
|
+
- morning
|
|
16
|
+
- obsidian
|
|
17
|
+
- daily-note
|
|
18
|
+
- github
|
|
19
|
+
- dependabot
|
|
20
|
+
- productivity
|
|
21
|
+
- routine
|
|
22
|
+
- automation
|
|
23
|
+
source: weekly-pattern-learner
|
|
24
|
+
source_reason: "obsidian-task-rollover, obsidian-pr-sync, and dependabot-triage all describe themselves as morning-routine steps but no meta-skill chains them into a single first-thing-of-day pass"
|
|
25
|
+
source_date: "2026-08-10"
|
|
26
|
+
---
|
|
27
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
28
|
+
|
|
29
|
+
> 🤖 *Auto-generated by **weekly-pattern-learner** · obsidian-task-rollover, obsidian-pr-sync, and dependabot-triage all describe themselves as morning-routine steps but no meta-skill chains them into a single first-thing-of-day pass*
|
|
30
|
+
|
|
31
|
+
# Morning Routine
|
|
32
|
+
|
|
33
|
+
Run the three start-of-day workflows in sequence, then summarize what needs your
|
|
34
|
+
attention today. Each phase is idempotent — re-running is safe.
|
|
35
|
+
|
|
36
|
+
## Inputs
|
|
37
|
+
|
|
38
|
+
- **VAULT_DAILY** (required): absolute path to the Obsidian daily notes folder
|
|
39
|
+
- **GH_USERNAME** (required): GitHub login for PR filtering
|
|
40
|
+
- **ORG_PREFIX** (optional): org name to group as "Work" in the PR section
|
|
41
|
+
- **--skip-rollover** (optional): skip task rollover (e.g. Monday after a break)
|
|
42
|
+
- **--skip-pr-sync** (optional): skip GitHub PR sync
|
|
43
|
+
- **--skip-dependabot** (optional): skip Dependabot triage
|
|
44
|
+
|
|
45
|
+
If any required config is missing, ask once before starting — don't abort midway.
|
|
46
|
+
|
|
47
|
+
## Phase 1 — Task rollover
|
|
48
|
+
|
|
49
|
+
Initialize the daily note path once, before any optional phase:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
NOTE="${VAULT_DAILY}/$(date +%Y-%m-%d).md"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Run `olko:obsidian-task-rollover` on the **previous workday's** note.
|
|
56
|
+
|
|
57
|
+
`obsidian-task-rollover` is an end-of-day migration skill — it copies unchecked tasks
|
|
58
|
+
from a given day's note into the next workday's note with a `[>]` marker. When invoked
|
|
59
|
+
here in the morning, it should operate on **yesterday's** (or the last workday's) note
|
|
60
|
+
so those unchecked tasks are pulled forward into today's note. If yesterday's note does
|
|
61
|
+
not exist, skip this step and note it in the report.
|
|
62
|
+
|
|
63
|
+
**Skip if** `--skip-rollover` is set, or if it's Monday and the user has explicitly
|
|
64
|
+
said they clear the board on Fridays.
|
|
65
|
+
|
|
66
|
+
After this phase, confirm:
|
|
67
|
+
```bash
|
|
68
|
+
grep -c "^\- \[ \]" "$NOTE" 2>/dev/null || echo "0" # open tasks today
|
|
69
|
+
grep -c "^\- \[>\]" "$NOTE" 2>/dev/null || echo "0" # migrated tasks
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Record counts for the final report.
|
|
73
|
+
|
|
74
|
+
## Phase 2 — PR sync
|
|
75
|
+
|
|
76
|
+
Run `olko:obsidian-pr-sync`.
|
|
77
|
+
|
|
78
|
+
This fetches all open GitHub PRs where the user is assignee or review-requested,
|
|
79
|
+
filters out bots and drafts, and writes or replaces the `## PRs to review` section
|
|
80
|
+
in today's daily note. PRs are grouped into Work (ORG_PREFIX org) and Personal.
|
|
81
|
+
|
|
82
|
+
**Skip if** `--skip-pr-sync` is set.
|
|
83
|
+
|
|
84
|
+
After this phase, count PRs written:
|
|
85
|
+
```bash
|
|
86
|
+
grep -c "^\- \[ \] \[" "$NOTE" 2>/dev/null || echo "0"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Phase 3 — Dependabot triage (quick sweep)
|
|
90
|
+
|
|
91
|
+
Run `olko:dependabot-triage` with `patch-only` auto-merge policy.
|
|
92
|
+
|
|
93
|
+
This auto-approves and merges safe patch bumps whose CI is green, flags major
|
|
94
|
+
upgrades for human review, and posts a digest. The `patch-only` policy means no
|
|
95
|
+
minor or major bumps are merged automatically — just the safest dependency noise.
|
|
96
|
+
|
|
97
|
+
**Skip if** `--skip-dependabot` is set, or if there are no open dependency PRs:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
gh pr list --state open \
|
|
101
|
+
--json author --jq '
|
|
102
|
+
[.[] | select(.author.login | test("dependabot|renovate"; "i"))]
|
|
103
|
+
| length
|
|
104
|
+
' 2>/dev/null
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
If the count is 0, skip phase 3 and note it in the report.
|
|
108
|
+
|
|
109
|
+
## Final report
|
|
110
|
+
|
|
111
|
+
Print a compact brief suitable for the start of the day:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Morning routine complete — YYYY-MM-DD
|
|
115
|
+
|
|
116
|
+
Tasks: N open today (M carried over from yesterday)
|
|
117
|
+
PRs: X work PRs, Y personal PRs → see ## PRs to review in today's note
|
|
118
|
+
Dependabot: Z merged (patch, CI green), W flagged for review
|
|
119
|
+
|
|
120
|
+
Today's top 3:
|
|
121
|
+
[read from ## Top 3 for today section if populated, else print "(not filled in yet)"]
|
|
122
|
+
|
|
123
|
+
Flagged for you:
|
|
124
|
+
- [PRs older than 7 days ⚠️ from the PR sync, if any]
|
|
125
|
+
- [Major Dependabot bumps flagged for human decision, if any]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If a phase failed (auth expired, vault not found, network error), surface the error
|
|
129
|
+
clearly rather than silently skipping that phase.
|
|
130
|
+
|
|
131
|
+
## Invocation patterns
|
|
132
|
+
|
|
133
|
+
**Manual (user-triggered):**
|
|
134
|
+
User says "start my day", "run morning routine", or "set up today's note".
|
|
135
|
+
Run the full flow and show the final report.
|
|
136
|
+
|
|
137
|
+
**Scheduled (cron / CCR):**
|
|
138
|
+
No user prompt needed. Run all three phases silently and emit the report as the
|
|
139
|
+
run's output. Useful as a pre-meeting brief or as a first message in a new session.
|
|
140
|
+
|
|
141
|
+
**Partial run:**
|
|
142
|
+
If the user wants to re-sync only PRs mid-day: `--skip-rollover --skip-dependabot`.
|
|
143
|
+
|
|
144
|
+
## Chaining
|
|
145
|
+
|
|
146
|
+
| Before this skill | After this skill |
|
|
147
|
+
|---|---|
|
|
148
|
+
| — (start of session) | Work the PR queue (`olko:pr-to-green` on flagged items) |
|
|
149
|
+
| — | `olko:dependabot-triage` with `patch-and-minor` if the quick sweep flagged many |
|
|
150
|
+
| `olko:obsidian-task-rollover` alone | nothing — this skill already calls it |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Codex Adapter for morning-routine
|
|
2
|
+
|
|
3
|
+
This is a Codex-specific adapter for the `olko:morning-routine` skill.
|
|
4
|
+
The canonical skill definition is in `../../SKILL.md`.
|
|
5
|
+
|
|
6
|
+
## Usage
|
|
7
|
+
|
|
8
|
+
Invoke in a Codex session:
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
Use the olko:morning-routine skill to run my start-of-day setup.
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
See `../../SKILL.md` for the full workflow: roll over unfinished tasks from the previous
|
|
17
|
+
workday's Obsidian daily note to today's, sync open GitHub PRs that need your attention,
|
|
18
|
+
and sweep Dependabot/Renovate PRs for safe patch merges. Chains obsidian-task-rollover,
|
|
19
|
+
obsidian-pr-sync, and dependabot-triage. The procedure is agent-agnostic.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "olko:morning-routine",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Run the complete start-of-day setup in one pass: roll over unfinished Obsidian tasks to today's daily note, sync open GitHub PRs that need your attention, and sweep Dependabot patch bumps. Chains obsidian-task-rollover, obsidian-pr-sync, and dependabot-triage.",
|
|
5
|
+
"skills": "skills/"
|
|
6
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: morning-routine
|
|
3
|
+
description: >
|
|
4
|
+
Run the complete start-of-day setup in one pass: roll over unfinished Obsidian tasks
|
|
5
|
+
to today's daily note, sync open GitHub PRs that need your attention, and sweep
|
|
6
|
+
Dependabot/Renovate PRs to clear safe patch bumps. Use when the user says "start my
|
|
7
|
+
day", "morning routine", "set up my day", or when a scheduled morning job fires.
|
|
8
|
+
license: MIT
|
|
9
|
+
allowed-tools: Bash, Read, Write, Edit
|
|
10
|
+
compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires git and gh (GitHub CLI) authenticated, plus a daily-note vault path configured.
|
|
11
|
+
metadata:
|
|
12
|
+
targets: ["cursor"]
|
|
13
|
+
author: Oleg Koval
|
|
14
|
+
tags:
|
|
15
|
+
- morning
|
|
16
|
+
- obsidian
|
|
17
|
+
- daily-note
|
|
18
|
+
- github
|
|
19
|
+
- dependabot
|
|
20
|
+
- productivity
|
|
21
|
+
- routine
|
|
22
|
+
- automation
|
|
23
|
+
source: weekly-pattern-learner
|
|
24
|
+
source_reason: "obsidian-task-rollover, obsidian-pr-sync, and dependabot-triage all describe themselves as morning-routine steps but no meta-skill chains them into a single first-thing-of-day pass"
|
|
25
|
+
source_date: "2026-08-10"
|
|
26
|
+
---
|
|
27
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
28
|
+
|
|
29
|
+
> 🤖 *Auto-generated by **weekly-pattern-learner** · obsidian-task-rollover, obsidian-pr-sync, and dependabot-triage all describe themselves as morning-routine steps but no meta-skill chains them into a single first-thing-of-day pass*
|
|
30
|
+
|
|
31
|
+
# Morning Routine
|
|
32
|
+
|
|
33
|
+
Run the three start-of-day workflows in sequence, then summarize what needs your
|
|
34
|
+
attention today. Each phase is idempotent — re-running is safe.
|
|
35
|
+
|
|
36
|
+
## Inputs
|
|
37
|
+
|
|
38
|
+
- **VAULT_DAILY** (required): absolute path to the Obsidian daily notes folder
|
|
39
|
+
- **GH_USERNAME** (required): GitHub login for PR filtering
|
|
40
|
+
- **ORG_PREFIX** (optional): org name to group as "Work" in the PR section
|
|
41
|
+
- **--skip-rollover** (optional): skip task rollover (e.g. Monday after a break)
|
|
42
|
+
- **--skip-pr-sync** (optional): skip GitHub PR sync
|
|
43
|
+
- **--skip-dependabot** (optional): skip Dependabot triage
|
|
44
|
+
|
|
45
|
+
If any required config is missing, ask once before starting — don't abort midway.
|
|
46
|
+
|
|
47
|
+
## Phase 1 — Task rollover
|
|
48
|
+
|
|
49
|
+
Initialize the daily note path once, before any optional phase:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
NOTE="${VAULT_DAILY}/$(date +%Y-%m-%d).md"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Run `olko:obsidian-task-rollover` on the **previous workday's** note.
|
|
56
|
+
|
|
57
|
+
`obsidian-task-rollover` is an end-of-day migration skill — it copies unchecked tasks
|
|
58
|
+
from a given day's note into the next workday's note with a `[>]` marker. When invoked
|
|
59
|
+
here in the morning, it should operate on **yesterday's** (or the last workday's) note
|
|
60
|
+
so those unchecked tasks are pulled forward into today's note. If yesterday's note does
|
|
61
|
+
not exist, skip this step and note it in the report.
|
|
62
|
+
|
|
63
|
+
**Skip if** `--skip-rollover` is set, or if it's Monday and the user has explicitly
|
|
64
|
+
said they clear the board on Fridays.
|
|
65
|
+
|
|
66
|
+
After this phase, confirm:
|
|
67
|
+
```bash
|
|
68
|
+
grep -c "^\- \[ \]" "$NOTE" 2>/dev/null || echo "0" # open tasks today
|
|
69
|
+
grep -c "^\- \[>\]" "$NOTE" 2>/dev/null || echo "0" # migrated tasks
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Record counts for the final report.
|
|
73
|
+
|
|
74
|
+
## Phase 2 — PR sync
|
|
75
|
+
|
|
76
|
+
Run `olko:obsidian-pr-sync`.
|
|
77
|
+
|
|
78
|
+
This fetches all open GitHub PRs where the user is assignee or review-requested,
|
|
79
|
+
filters out bots and drafts, and writes or replaces the `## PRs to review` section
|
|
80
|
+
in today's daily note. PRs are grouped into Work (ORG_PREFIX org) and Personal.
|
|
81
|
+
|
|
82
|
+
**Skip if** `--skip-pr-sync` is set.
|
|
83
|
+
|
|
84
|
+
After this phase, count PRs written:
|
|
85
|
+
```bash
|
|
86
|
+
grep -c "^\- \[ \] \[" "$NOTE" 2>/dev/null || echo "0"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Phase 3 — Dependabot triage (quick sweep)
|
|
90
|
+
|
|
91
|
+
Run `olko:dependabot-triage` with `patch-only` auto-merge policy.
|
|
92
|
+
|
|
93
|
+
This auto-approves and merges safe patch bumps whose CI is green, flags major
|
|
94
|
+
upgrades for human review, and posts a digest. The `patch-only` policy means no
|
|
95
|
+
minor or major bumps are merged automatically — just the safest dependency noise.
|
|
96
|
+
|
|
97
|
+
**Skip if** `--skip-dependabot` is set, or if there are no open dependency PRs:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
gh pr list --state open \
|
|
101
|
+
--json author --jq '
|
|
102
|
+
[.[] | select(.author.login | test("dependabot|renovate"; "i"))]
|
|
103
|
+
| length
|
|
104
|
+
' 2>/dev/null
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
If the count is 0, skip phase 3 and note it in the report.
|
|
108
|
+
|
|
109
|
+
## Final report
|
|
110
|
+
|
|
111
|
+
Print a compact brief suitable for the start of the day:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Morning routine complete — YYYY-MM-DD
|
|
115
|
+
|
|
116
|
+
Tasks: N open today (M carried over from yesterday)
|
|
117
|
+
PRs: X work PRs, Y personal PRs → see ## PRs to review in today's note
|
|
118
|
+
Dependabot: Z merged (patch, CI green), W flagged for review
|
|
119
|
+
|
|
120
|
+
Today's top 3:
|
|
121
|
+
[read from ## Top 3 for today section if populated, else print "(not filled in yet)"]
|
|
122
|
+
|
|
123
|
+
Flagged for you:
|
|
124
|
+
- [PRs older than 7 days ⚠️ from the PR sync, if any]
|
|
125
|
+
- [Major Dependabot bumps flagged for human decision, if any]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If a phase failed (auth expired, vault not found, network error), surface the error
|
|
129
|
+
clearly rather than silently skipping that phase.
|
|
130
|
+
|
|
131
|
+
## Invocation patterns
|
|
132
|
+
|
|
133
|
+
**Manual (user-triggered):**
|
|
134
|
+
User says "start my day", "run morning routine", or "set up today's note".
|
|
135
|
+
Run the full flow and show the final report.
|
|
136
|
+
|
|
137
|
+
**Scheduled (cron / CCR):**
|
|
138
|
+
No user prompt needed. Run all three phases silently and emit the report as the
|
|
139
|
+
run's output. Useful as a pre-meeting brief or as a first message in a new session.
|
|
140
|
+
|
|
141
|
+
**Partial run:**
|
|
142
|
+
If the user wants to re-sync only PRs mid-day: `--skip-rollover --skip-dependabot`.
|
|
143
|
+
|
|
144
|
+
## Chaining
|
|
145
|
+
|
|
146
|
+
| Before this skill | After this skill |
|
|
147
|
+
|---|---|
|
|
148
|
+
| — (start of session) | Work the PR queue (`olko:pr-to-green` on flagged items) |
|
|
149
|
+
| — | `olko:dependabot-triage` with `patch-and-minor` if the quick sweep flagged many |
|
|
150
|
+
| `olko:obsidian-task-rollover` alone | nothing — this skill already calls it |
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "olko:morning-routine",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Run the complete start-of-day setup in one pass: roll over unfinished Obsidian tasks to today's daily note, sync open GitHub PRs that need your attention, and sweep Dependabot patch bumps. Chains obsidian-task-rollover, obsidian-pr-sync, and dependabot-triage.",
|
|
5
|
+
"skills": "skills/"
|
|
6
|
+
}
|
package/packages/software-development/morning-routine/adapters/grok/skills/morning-routine/SKILL.md
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: morning-routine
|
|
3
|
+
description: >
|
|
4
|
+
Run the complete start-of-day setup in one pass: roll over unfinished Obsidian tasks
|
|
5
|
+
to today's daily note, sync open GitHub PRs that need your attention, and sweep
|
|
6
|
+
Dependabot/Renovate PRs to clear safe patch bumps. Use when the user says "start my
|
|
7
|
+
day", "morning routine", "set up my day", or when a scheduled morning job fires.
|
|
8
|
+
license: MIT
|
|
9
|
+
allowed-tools: Bash, Read, Write, Edit
|
|
10
|
+
compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires git and gh (GitHub CLI) authenticated, plus a daily-note vault path configured.
|
|
11
|
+
metadata:
|
|
12
|
+
targets: [_source-only]
|
|
13
|
+
author: Oleg Koval
|
|
14
|
+
tags:
|
|
15
|
+
- morning
|
|
16
|
+
- obsidian
|
|
17
|
+
- daily-note
|
|
18
|
+
- github
|
|
19
|
+
- dependabot
|
|
20
|
+
- productivity
|
|
21
|
+
- routine
|
|
22
|
+
- automation
|
|
23
|
+
source: weekly-pattern-learner
|
|
24
|
+
source_reason: "obsidian-task-rollover, obsidian-pr-sync, and dependabot-triage all describe themselves as morning-routine steps but no meta-skill chains them into a single first-thing-of-day pass"
|
|
25
|
+
source_date: "2026-08-10"
|
|
26
|
+
---
|
|
27
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
28
|
+
|
|
29
|
+
> 🤖 *Auto-generated by **weekly-pattern-learner** · obsidian-task-rollover, obsidian-pr-sync, and dependabot-triage all describe themselves as morning-routine steps but no meta-skill chains them into a single first-thing-of-day pass*
|
|
30
|
+
|
|
31
|
+
# Morning Routine
|
|
32
|
+
|
|
33
|
+
Run the three start-of-day workflows in sequence, then summarize what needs your
|
|
34
|
+
attention today. Each phase is idempotent — re-running is safe.
|
|
35
|
+
|
|
36
|
+
## Inputs
|
|
37
|
+
|
|
38
|
+
- **VAULT_DAILY** (required): absolute path to the Obsidian daily notes folder
|
|
39
|
+
- **GH_USERNAME** (required): GitHub login for PR filtering
|
|
40
|
+
- **ORG_PREFIX** (optional): org name to group as "Work" in the PR section
|
|
41
|
+
- **--skip-rollover** (optional): skip task rollover (e.g. Monday after a break)
|
|
42
|
+
- **--skip-pr-sync** (optional): skip GitHub PR sync
|
|
43
|
+
- **--skip-dependabot** (optional): skip Dependabot triage
|
|
44
|
+
|
|
45
|
+
If any required config is missing, ask once before starting — don't abort midway.
|
|
46
|
+
|
|
47
|
+
## Phase 1 — Task rollover
|
|
48
|
+
|
|
49
|
+
Initialize the daily note path once, before any optional phase:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
NOTE="${VAULT_DAILY}/$(date +%Y-%m-%d).md"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Run `olko:obsidian-task-rollover` on the **previous workday's** note.
|
|
56
|
+
|
|
57
|
+
`obsidian-task-rollover` is an end-of-day migration skill — it copies unchecked tasks
|
|
58
|
+
from a given day's note into the next workday's note with a `[>]` marker. When invoked
|
|
59
|
+
here in the morning, it should operate on **yesterday's** (or the last workday's) note
|
|
60
|
+
so those unchecked tasks are pulled forward into today's note. If yesterday's note does
|
|
61
|
+
not exist, skip this step and note it in the report.
|
|
62
|
+
|
|
63
|
+
**Skip if** `--skip-rollover` is set, or if it's Monday and the user has explicitly
|
|
64
|
+
said they clear the board on Fridays.
|
|
65
|
+
|
|
66
|
+
After this phase, confirm:
|
|
67
|
+
```bash
|
|
68
|
+
grep -c "^\- \[ \]" "$NOTE" 2>/dev/null || echo "0" # open tasks today
|
|
69
|
+
grep -c "^\- \[>\]" "$NOTE" 2>/dev/null || echo "0" # migrated tasks
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Record counts for the final report.
|
|
73
|
+
|
|
74
|
+
## Phase 2 — PR sync
|
|
75
|
+
|
|
76
|
+
Run `olko:obsidian-pr-sync`.
|
|
77
|
+
|
|
78
|
+
This fetches all open GitHub PRs where the user is assignee or review-requested,
|
|
79
|
+
filters out bots and drafts, and writes or replaces the `## PRs to review` section
|
|
80
|
+
in today's daily note. PRs are grouped into Work (ORG_PREFIX org) and Personal.
|
|
81
|
+
|
|
82
|
+
**Skip if** `--skip-pr-sync` is set.
|
|
83
|
+
|
|
84
|
+
After this phase, count PRs written:
|
|
85
|
+
```bash
|
|
86
|
+
grep -c "^\- \[ \] \[" "$NOTE" 2>/dev/null || echo "0"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Phase 3 — Dependabot triage (quick sweep)
|
|
90
|
+
|
|
91
|
+
Run `olko:dependabot-triage` with `patch-only` auto-merge policy.
|
|
92
|
+
|
|
93
|
+
This auto-approves and merges safe patch bumps whose CI is green, flags major
|
|
94
|
+
upgrades for human review, and posts a digest. The `patch-only` policy means no
|
|
95
|
+
minor or major bumps are merged automatically — just the safest dependency noise.
|
|
96
|
+
|
|
97
|
+
**Skip if** `--skip-dependabot` is set, or if there are no open dependency PRs:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
gh pr list --state open \
|
|
101
|
+
--json author --jq '
|
|
102
|
+
[.[] | select(.author.login | test("dependabot|renovate"; "i"))]
|
|
103
|
+
| length
|
|
104
|
+
' 2>/dev/null
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
If the count is 0, skip phase 3 and note it in the report.
|
|
108
|
+
|
|
109
|
+
## Final report
|
|
110
|
+
|
|
111
|
+
Print a compact brief suitable for the start of the day:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Morning routine complete — YYYY-MM-DD
|
|
115
|
+
|
|
116
|
+
Tasks: N open today (M carried over from yesterday)
|
|
117
|
+
PRs: X work PRs, Y personal PRs → see ## PRs to review in today's note
|
|
118
|
+
Dependabot: Z merged (patch, CI green), W flagged for review
|
|
119
|
+
|
|
120
|
+
Today's top 3:
|
|
121
|
+
[read from ## Top 3 for today section if populated, else print "(not filled in yet)"]
|
|
122
|
+
|
|
123
|
+
Flagged for you:
|
|
124
|
+
- [PRs older than 7 days ⚠️ from the PR sync, if any]
|
|
125
|
+
- [Major Dependabot bumps flagged for human decision, if any]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If a phase failed (auth expired, vault not found, network error), surface the error
|
|
129
|
+
clearly rather than silently skipping that phase.
|
|
130
|
+
|
|
131
|
+
## Invocation patterns
|
|
132
|
+
|
|
133
|
+
**Manual (user-triggered):**
|
|
134
|
+
User says "start my day", "run morning routine", or "set up today's note".
|
|
135
|
+
Run the full flow and show the final report.
|
|
136
|
+
|
|
137
|
+
**Scheduled (cron / CCR):**
|
|
138
|
+
No user prompt needed. Run all three phases silently and emit the report as the
|
|
139
|
+
run's output. Useful as a pre-meeting brief or as a first message in a new session.
|
|
140
|
+
|
|
141
|
+
**Partial run:**
|
|
142
|
+
If the user wants to re-sync only PRs mid-day: `--skip-rollover --skip-dependabot`.
|
|
143
|
+
|
|
144
|
+
## Chaining
|
|
145
|
+
|
|
146
|
+
| Before this skill | After this skill |
|
|
147
|
+
|---|---|
|
|
148
|
+
| — (start of session) | Work the PR queue (`olko:pr-to-green` on flagged items) |
|
|
149
|
+
| — | `olko:dependabot-triage` with `patch-and-minor` if the quick sweep flagged many |
|
|
150
|
+
| `olko:obsidian-task-rollover` alone | nothing — this skill already calls it |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "olko-pr-finalize-complete",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "Comprehensive PR finalization workflow for PRs that may already be partially addressed: checks each review comment's actual current status in code, distinguishes fixed vs. stale vs. still-present findings, verifies test coverage, runs real lint/test gates, and reports what still needs a human.",
|
|
4
4
|
"skills": "./skills"
|
|
5
5
|
}
|
|
@@ -7,18 +7,14 @@ The canonical skill definition is in `../../SKILL.md`.
|
|
|
7
7
|
|
|
8
8
|
Invoke in a Codex session:
|
|
9
9
|
|
|
10
|
-
```
|
|
11
|
-
Use the olko:pr-finalize-complete skill to verify this PR is
|
|
10
|
+
```text
|
|
11
|
+
Use the olko:pr-finalize-complete skill to verify this PR is genuinely merge-ready.
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
## Workflow
|
|
15
15
|
|
|
16
|
-
See `../../SKILL.md` for the full workflow:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
agent-agnostic.
|
|
21
|
-
|
|
22
|
-
Use this rather than `pr-finalize` when the work is believed already done and you need that claim
|
|
23
|
-
verified. The skill's non-negotiables are the point: never claim a test passed without running it,
|
|
24
|
-
and never resolve a bot comment without checking whether the issue still exists.
|
|
16
|
+
See `../../SKILL.md` for the full workflow: establish ground truth on PR state, rebase
|
|
17
|
+
only if needed, triage each review comment to determine if it's already fixed, stale,
|
|
18
|
+
still present, or a false positive, verify unit test coverage for changed files, run
|
|
19
|
+
the real lint/format/test gates, push if needed, and report what still needs a human.
|
|
20
|
+
The procedure is plain git/gh and is agent-agnostic.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "olko:pr-finalize-complete",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Comprehensive PR finalization workflow for PRs that may already be partially addressed: checks each review comment's actual current status in code, distinguishes fixed vs. stale vs. still-present findings, verifies test coverage, runs real lint/test gates, and reports what still needs a human.",
|
|
5
5
|
"skills": "skills/"
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "olko:pr-finalize-complete",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Comprehensive PR finalization workflow for PRs that may already be partially addressed: checks each review comment's actual current status in code, distinguishes fixed vs. stale vs. still-present findings, verifies test coverage, runs real lint/test gates, and reports what still needs a human.",
|
|
5
5
|
"skills": "skills/"
|
|
6
6
|
}
|