From workflow-skills
Generate a morning briefing from today's daily note, open tasks, carryover from yesterday, and Jira sprint items. Use when the user says "morning", "start my day", "daily plan", "what's on today", or "plan my day".
npx claudepluginhub arosenkranz/claude-code-config --plugin workflow-skillsThis skill uses the workspace's default tool permissions.
Refer to `~/.claude/skills/obsidian-core/SKILL.md` for CLI patterns, preflight checks, and error handling.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
Refer to ~/.claude/skills/obsidian-core/SKILL.md for CLI patterns, preflight checks, and error handling.
Check the user's invocation:
Read today's daily note first (to know what template sections exist):
obsidian daily:read 2>/dev/null
Then read yesterday's daily note (compute YYYY-MM-DD for yesterday):
obsidian read path="Ideas and Journal/YYYY-MM-DD.md" 2>/dev/null
Look for:
- [ ] itemsShow any unchecked items found. Ask: "For each of these — carry forward to today, drop it, or already done?"
Wait for response. Note confirmed carryovers before proceeding.
obsidian tasks todo 2>/dev/null
Show the top 5 open vault-wide tasks (exclude today's carryovers already addressed). Ask: "Any of these a priority for today?"
Wait for response before proceeding.
If the Atlassian MCP is available (mcp__plugin_atlassian_atlassian__searchJiraIssuesUsingJql), query:
project = TRAIN AND assignee = currentUser() AND sprint in openSprints() AND status != Done ORDER BY priority DESC
Show the sprint items. Ask: "Which of these are you tackling today?"
Wait for response. If MCP is unavailable, skip this step silently and proceed.
Walk through each section of the daily note template one at a time, incorporating what you've already learned from Steps 1-3. Use the sections detected in today's daily note.
Do this conversationally, section by section. Do not ask all sections at once. Wait for the user's response before moving to the next section.
Work through these sections in order:
Skip a section only if the user explicitly says to skip it or says they have nothing for it.
Important: If the user provides multiple sections' worth of information in a single message (e.g., "1:1 w/ Naris @1pm, 1:1 w/ Jeremy @4pm, review the course, perf reviews"), parse it intelligently:
Once all sections are collected, present the assembled content for confirmation. Then write using daily:prepend:
Note: obsidian create does NOT overwrite existing files — it creates a numbered duplicate (e.g., 2026-03-03 1.md). To rewrite an existing daily note, use the Write tool directly on the vault file at /Users/alex.rosenkranz/Documents/main-vault/Ideas and Journal/YYYY-MM-DD.md. Use daily:prepend only when adding content to an otherwise-complete note.
obsidian daily:prepend content="## Today's Focus
- [ ] Priority 1
- [ ] Priority 2
## Meetings & Calls
### 1:1 w/ Name - Time
**Purpose:**
**Action Items:**
- [ ]
## Learning & Development
[what they said, or omit if skipped]
## Tomorrow's Prep
- [ ] [what they said, or omit if skipped]
"
Confirm with the user before writing if there are any ambiguities. After writing, confirm what was saved and where.
daily:prepend will create it