obsidian-task-rolloverlisted
Install: claude install-skill oleg-koval/agent-skills
# Obsidian Task Rollover
Bullet-journal–style end-of-day task migration. Unfinished tasks (`- [ ]`) from
today's note get copied forward to the next workday, and marked as migrated in
today's note.
## Configuration
- `VAULT_DAILY` — absolute path to the daily notes folder (e.g. `/Users/you/obsidian/vault/Lead/Daily`)
If not specified, infer from context or ask.
## Step 1 — Identify source note
Default source = **today's note**. If the user specifies a date ("roll over Monday's
tasks"), resolve that date instead.
```bash
SOURCE_DATE=$(date +%Y-%m-%d)
SOURCE="${VAULT_DAILY}/${SOURCE_DATE}.md"
```
If the source note doesn't exist, report and stop — nothing to migrate.
## Step 2 — Find next workday
```bash
TARGET_DATE=$(python3 -c "
from datetime import date, timedelta
d = date.fromisoformat('${SOURCE_DATE}') + timedelta(days=1)
while d.weekday() >= 5: # 5=Sat, 6=Sun
d += timedelta(days=1)
print(d)
")
TARGET="${VAULT_DAILY}/${TARGET_DATE}.md"
```
Skips weekends. If today is Friday, tasks roll to Monday.
## Step 3 — Extract incomplete tasks
Read the source note and collect all lines matching `- [ ] ` that are:
- **Not** inside the `## PRs to review` section (that section is auto-managed by
the `obsidian-pr-sync` skill — don't touch it)
- **Not** already migrated (`- [>]` lines — idempotency guard)
Sections to skip entirely: `## PRs to review`. Stop collecting at the nav footer
(`*← [[...`).
Collect both the task lines and which section (h2 heading) they belon