From productivity
Bullet journal-style task management using daily log files in Obsidian. Reference this when the user asks about their tasks, wants to capture something, plan their day, review yesterday, or track an effort.
npx claudepluginhub acjackman/claude-productivityThis skill uses the workspace's default tool permissions.
Tasks live in daily log files in the Obsidian vault. There is no separate TASKS.md — the daily log is the task system.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Tasks live in daily log files in the Obsidian vault. There is no separate TASKS.md — the daily log is the task system.
Bullet journal migration: Unfinished items don't persist automatically. At the start of each day, yesterday's unfinished items are reviewed and intentionally carried forward or dropped. The friction is the point — it forces prioritization.
Daily log as primary surface: Each day's log/daily/YYYY-MM-DD.md has:
## Plan — intentional work for the day, including time-prefixed calendar events## Capture — incoming tasks, requests, ideas that arrive throughout the dayEfforts for bigger work: Multi-step initiatives get their own file in efforts/. Daily tasks link to efforts with [[effort-slug]]. Efforts are a personal scratchpad — once mature, work gets pushed to Linear or Notion for the team.
Lightweight refinement funnel: The vault is a capture and refinement space before sharing with the team:
+/ → raw inbox, unorganizedlog/daily/ → daily planning + captureefforts/ → personal tracking of multi-step work (shared with TaskNotes plugin)comms/ → meeting notes, draft communicationsAll interactions with daily notes use the Obsidian MCP.
Daily notes include frontmatter fields managed by the Templater plugin, TaskNotes, and productivity skills:
| Field | Set by | Purpose |
|---|---|---|
created_at | TaskNotes | ISO timestamp of note creation (e.g. 2026-03-19T00:16:39-07:00) |
modified_at | TaskNotes | ISO timestamp — updated on every save |
modified_days | TaskNotes | List of daily note wikilinks for each day the file was touched |
created_day | TaskNotes | Wikilink to the daily note for the creation day |
up | Templater | Link to the parent cycle note |
prev / next | Templater | Navigation links between working days (skips weekends) |
tags | Templater | Always periodic/daily |
weekday | Templater | Day abbreviation (Mon, Tue, etc.) |
review_after | Templater | Date when the note is eligible for review (defaults to the note's own date) |
last_reviewed | workflow skills | Empty until a workflow skill processes the note; set to today's date after review |
The four TaskNotes date fields (created_at, modified_at, modified_days, created_day) are auto-managed across all note types in the vault — efforts, daily notes, cycle notes, and comms. Do not set them manually.
The review_after / last_reviewed pair drives the review lifecycle — workflow skills (configured per-vault) use these to decide which notes need attention.
Sections follow the day's natural flow:
## Open
- [ ] Linear issue title [TEAM-123](url)
- [ ] PR: Pull request title [#45](url) — review requested
- [ ] INC: Incident description [#inc-channel](slack-url)
- [ ] effort: [[20260318211939-effort-slug|Effort Title]]
## Plan
- [ ] **10:00:** [[comms/2026_03_19-standup|Standup]]
- [ ] **14:45:** [1:1 with Jeff](https://www.notion.so/...)
- [ ] Task I intend to do today
- [ ] Work on [[20260318211939-effort-slug]] — specific next step
## Capture
- [ ] Thing that came up during the day
- [ ] Request from someone in Slack
- Something worth noting but not a task
## Log
### HH:MM — description
- Concise bullets with links
## Summary
Flexible digest of the day's activity — structure determined by workflow skills.
## Open — active Linear tickets, PRs waiting on review, open incidents, and active efforts. Populated by workflow skills.## Plan — written by the user. Calendar events are time-prefixed checkboxes.## Capture — incoming items throughout the day. Append-only.## Log — freeform working memory. Timestamped blocks: ### HH:MM — description. Write whatever captures the work.## Summary — end-of-day digest. Structure is flexible — workflow skills fill this however makes sense for the vault.When user asks "what's on my plate" / "my tasks":
## Open (external items + active efforts), ## Plan (intended work), and ## Capture (incoming)When user says "add a task" / "capture this" / "remind me to":
## Capture in today's daily note[[effort-slug]] linkWhen user says "done with X" / "finished X":
- [x]When user asks to "plan my day" or "what should I focus on":
## Open for external obligations and active efforts## Capture for things that came in## PlanWhen user asks to "review" or "start my day":
## Open, ## Plan, and ## Capture## PlanWhen user asks "what am I waiting on":
- [ ] Task description — open task- [x] Task description — completed- [-] Task description — canceled or migrated- [!] Task description — important / flagged- [ ] **HH:MM:** [[comms/note|Meeting Name]] — calendar event with link- [ ] Work on [[20260318211939-effort-slug]] — specific step — task linked to effort📝 YYYY-MM-DD prefix on tasks carried forward from a previous dayRecurring meetings and communications live in comms/ as dated notes: comms/YYYY_MM_DD-slug.md.
The mapping from calendar event titles to their comms notes or external links lives in memory/meetings.md. Workflow skills read this when building tomorrow's ## Plan.
Other recurring meetings (1:1s, etc.) link to their Notion running-agenda pages rather than creating local notes.
Efforts track multi-step work that spans multiple days. They live in efforts/ in the Obsidian vault. The TaskNotes plugin is also configured to create files in efforts/, so both systems share the same folder and frontmatter schema. See DEC-0013.
All effort files use the datetime ID format:
YYYYMMDDHHMMSS.md
14 all-digit characters (year, month, day, hour, minute, second). Example: 20260318211939.md
Optional slug suffix for manually created efforts: 20260319001057-migrate-effort-id-format.md
The filename contains no title — the title frontmatter field is the human-readable identifier and must always be set.
When creating an effort manually via Obsidian MCP, generate the ID from the current time:
from datetime import datetime, timezone, timedelta
now = datetime.now(timezone(timedelta(hours=-7))) # PDT
print(now.strftime("%Y%m%d%H%M%S"))
Or run: python3 -c "from datetime import datetime,timezone,timedelta; print(datetime.now(timezone(timedelta(hours=-7))).strftime('%Y%m%d%H%M%S'))" from Bash.
Older effort files using YYYY_MM_DD-slug.md naming are preserved as-is — wikilinks continue to resolve.
---
title: "Effort Title"
type: effort # required — how TaskNotes identifies effort files
status: idea # idea | planning | waiting | blocked | active | paused | done | dropped
created_at: 2026-03-19T00:16:39-07:00 # ISO timestamp — set by TaskNotes on creation
modified_at: 2026-03-19T00:16:39-07:00 # ISO timestamp — updated by TaskNotes on every save
modified_days: # auto-managed by TaskNotes — list of days the file was touched
- "[[log/daily/2026-03-19|2026-03-19]]"
created_day: "[[log/daily/2026-03-19|2026-03-19]]" # wikilink to creation day — set by TaskNotes
review_after: YYYY-MM-DD # when to resurface this effort — set by review skill after each triage
scheduled: YYYY-MM-DD # optional: when to work on it next
due: YYYY-MM-DD # optional: hard deadline
linear: https://linear.app/{linear_org}/issue/TEAM-1234/ # optional: Linear URL (no title slug)
tags:
- effort
---
The four date fields (created_at, modified_at, modified_days, created_day) are auto-managed by TaskNotes — do not set them manually. review_after is the only date field that productivity skills write to.
type: effort is required — TaskNotes uses property-based file detection. Without it, the effort won't appear in kanban/calendar/agenda views.
title is required — filenames are opaque zettle IDs with no slug; the title field is the only human-readable identifier.
Status values: idea, planning, waiting, blocked, active, paused, done, dropped
Efforts with status: active, planning, waiting, or blocked are surfaced in ## Open by workflow skills (see DEC-0014).
linear field: Linear URL without the title slug (e.g. https://linear.app/{linear_org}/issue/TEAM-1234/). Obsidian renders this as a clickable link. The trailing slash is kept, no title slug — stable if the ticket is renamed. Extract the ticket ID by splitting on / and taking the last non-empty segment.
review_after field: Date when the effort should next be surfaced for a status check. Set by the review skill (/productivity:review) after each triage. Default intervals by status:
active, waiting, blocked → 7 days (or review_interval from Workflow Config)idea, planning → 14 dayspaused → 30 daysIf missing, the review skill falls back to created_at + the status-appropriate interval.
Optional fields (add when relevant):
time_estimate — estimated minutesblocked_by — wikilinks to blocking effortsefforts — wikilink to a parent effort (for sub-efforts)completed_at — set automatically by TaskNotes when status → done or droppedNew efforts start minimal — frontmatter, title, and a ## Links section. Add sections as the work warrants them:
---
title: "Roll IBM MQ Command"
type: effort
status: active
created_at: 2026-03-18T14:23:15-07:00
modified_at: 2026-03-18T14:23:15-07:00
modified_days:
- "[[log/daily/2026-03-18|2026-03-18]]"
created_day: "[[log/daily/2026-03-18|2026-03-18]]"
review_after: 2026-03-25
linear: https://linear.app/{linear_org}/issue/TEAM-1234/
tags:
- effort
---
# Roll IBM MQ Command
## Links
- [Slack thread](url)
Add sections organically:
## Goal / ## Why / ## Approach — when thinking needs structure## Decisions / ## Open Questions — when evaluating options## Next Steps — when there's a clear sequence of work## Reference — supporting links, docs, commands## Log — dated progress entries when the effort spans multiple daysFull templates for more structured efforts are in z/templates/.
Daily bullet
↓ (gets complex or spans days)
Effort file — status: idea or planning
↓ (work begins)
Effort file — status: active
↓ (optionally, when ready to share)
Linear ticket created → add linear: TEAM-NNNN to frontmatter
↓
status: done (or paused)
Not every daily bullet needs an effort. Not every effort needs a Linear ticket.
When an effort has a linear field, it acts as a personal companion to the Linear ticket — holding approach notes, scratchpad thinking, Slack context, and working notes that don't belong in the ticket itself.
Efforts with a linear field are not duplicated in ## Open — the Linear ticket line already covers them.
If an effort grows too large or needs supporting files, refactor it into a folder:
efforts/20260318211939-roll-ibm-mq-command.md
↓ refactors into
efforts/20260318211939-roll-ibm-mq-command/
20260318211939-roll-ibm-mq-command.md (main file, same name)
architecture.md
research-notes.md
The folder and main file keep the same name, so [[20260318211939-roll-ibm-mq-command]] wikilinks continue to work.
When user asks to "start an effort" / "track an effort" / "create a task note":
efforts/YYYY_MM_DD-slug## Links## Capture linking to the new effortlinear: to frontmatterWhen user asks about effort status:
When user says to "log progress" on an effort:
## Log section via patch_noteWhen an effort is ready for the team:
linear: TEAM-NNNN once the ticket existsstatus to reflect current stateWhen user asks to "pause" or "close" an effort:
status to paused or done via update_frontmatter## Open after the next workflow refreshEach Linear sprint/cycle gets a personal note in log/cycles/. These are for personal reflection — goals for the cycle, retro notes, links to each day.
Template available at z/templates/periodic-cycle.md.
When summarizing meetings or conversations, offer to add extracted items:
Add to ## Capture in today's daily note. If something is a bigger effort, suggest creating an effort file.
Ask before adding — don't auto-add without confirmation.