Skip to content

fix(skills): wire evening journal, gate Reminders steps, safe Tasks.md clear-down, sync-ready focus items - #425

Merged
davekilleen merged 1 commit into
mainfrom
fix/workflow-skill-gaps
Aug 7, 2026
Merged

fix(skills): wire evening journal, gate Reminders steps, safe Tasks.md clear-down, sync-ready focus items#425
davekilleen merged 1 commit into
mainfrom
fix/workflow-skill-gaps

Conversation

@davekilleen

Copy link
Copy Markdown
Owner

Fixes four verified workflow gaps from Michelle's 5–6 August power-user feedback. Every finding was re-verified against main before changing anything. Related: #139 (instruction reliability — "the instruction exists but doesn't reliably fire" is exactly this category).

What was wrong, and what changed

1. Evening journaling never fired from the daily review (daily-review Step 11)
The step was a one-line stub — "prompt for evening reflection" — that never invoked the real /journal evening flow that already exists with proper prompts. Michelle enabled journaling mid-day and her evening review ran straight through without a single journal question. Step 11 now runs the actual journal flow: checks for an existing entry, pulls in the morning intention, guides the prompts one at a time, and skips gracefully if declined or disabled.

2. Reminders steps without a failure gate (daily-review Steps 2.55 & 2.6; also found in daily-plan 5.7 & 7.5)
Verification note: the task brief said daily-plan's Reminders steps had been removed on main — they haven't. What main actually has is a skip-silently gate ("if the tool is unavailable or errors…", added in 1c636aa2) on some steps. daily-review Step 2.6 had no gate at all, and daily-plan Step 5.7 had the identical hole (7.5 gated "unavailable" but not errors). All Reminders steps in both skills now carry the same gate, plus a pointer to the newly documented VS Code limitation so the model never suggests "reinstall and reconfigure" for something that can't work.

3. Weekly Tasks.md clear-down could orphan multi-line tasks (week-review, Follow-up Actions)
The instruction was a bare "Archive completed items", which invites a per-line sweep of [x] lines. Tasks.md entries span multiple lines (indented priority/due/notes sub-lines, continuation paragraphs), so a per-line delete strands fragments — and can also delete completed sub-checkboxes out from under still-open tasks. The instruction now defines a task block precisely, requires removing whole blocks only when the block's own top-level checkbox is [x], and confirms with the user before deleting.

4. "Today's Focus" items never synced (daily-plan Step 6 + plan template)
Verified against the code: Work MCP completion sync (update_task_statusupdate_task_status_everywherefind_task_by_id) only matches a line containing both the literal - [ ]/- [x] checkbox and the ^task-YYYYMMDD-XXX anchor on that same line. The template rendered focus items as numbered checkboxes (1. [ ]) with no ID — doubly invisible to sync (numbered checkboxes don't contain the - [ ] string the matcher looks for, even with an ID). The template now uses dash checkboxes with a {{^task-id}} placeholder, and Step 6 mandates embedding the real task ID inline for any focus item that maps to a Tasks.md task — creating the task first via create_task when it doesn't exist yet.

Also: documented the VS Code + Apple Reminders limitation. Michelle verified that macOS never shows the Reminders/EventKit permission dialog to Claude Code running inside the VS Code extension, and a Terminal.app grant does not transfer. Added a "Known limitation" section to docs/Dex_System/Calendar_Setup.md (mirrored byte-identically to the 06-Resources bridge copy) with the working alternative: run Dex from a standalone terminal.

Verification

  • python scripts/check-instructed-tools.py ✅ (caught and fixed one wording issue: an internal function named as if it were an MCP tool)
  • bash scripts/check-architecture-inventory.sh
  • bash scripts/check-doc-drift.sh ✅ · bash scripts/check-test-delta.sh
  • bash scripts/check-pii.sh ✅ · bash scripts/check-founder-content.sh
  • No Python/Node code changed, so the test suites are unaffected (docs + skill instruction files only).

Proposed CHANGELOG entry (not committed — for the release that picks this up)

Your evening wind-down, your task list, and your daily plan now keep their promises

A power user who runs Dex every day spent a full day checking what actually happens versus what Dex promises, and found four places where a written promise quietly wasn't kept. Thank you, Michelle.

What this fixes for you:

  • Evening journaling actually happens now. If you turned on evening journaling, the end-of-day review used to skip right past it without asking a single question. Now it walks you through your evening reflection properly — and steps aside just as quietly if you've already journaled or say no thanks.
  • Ticking off a focus item now counts everywhere. Items in your daily plan's "Today's Focus" were written in a way Dex's completion tracking couldn't see, so finishing one never updated your task list, and finishing a task never updated the plan. Focus items are now written so both sides stay in step.
  • The weekly tidy-up of your task list can't leave scraps behind anymore. Some tasks take several lines — a due date here, a note there. The old clean-up could remove a task's first line and strand the rest. It now removes each finished task whole, and tells you what it's clearing before it does.
  • No more dead-end advice about phone reminders. If you use Dex inside VS Code (a popular code editor), Apple's reminders simply can't be reached from there — that's how the Mac's privacy protections work, not something a reinstall fixes. Dex now knows this, skips those steps quietly, and the setup guide explains the one change that helps: run Dex from a regular Terminal window instead.

🤖 Generated with Claude Code

…d clear-down, sync-ready focus items

Four verified workflow gaps reported by a power user running Dex daily:

1. daily-review Step 11 was a one-line stub ('prompt for evening reflection')
   that never invoked the real /journal evening flow — with journaling.evening
   enabled, the review ran straight through without a single journal question.
   Step 11 now runs the actual flow from .claude/skills/journal/SKILL.md.

2. daily-review Step 2.6 (Reminders Completion Sync) had no unavailable-or-
   errors gate, unlike Step 2.55 and daily-plan's equivalents (gate introduced
   in 1c636aa). daily-plan Step 5.7 had the same hole and Step 7.5 only gated
   'unavailable', not errors. All Reminders steps in both skills now carry the
   same skip-silently gate, with a pointer to the documented VS Code extension
   limitation so support advice isn't 'reinstall and reconfigure'.

3. week-review's follow-up action 'Archive completed items' invited a per-line
   sweep of [x] lines, which orphans indented sub-lines and continuation
   paragraphs of multi-line Tasks.md entries. The instruction now requires
   removing whole task blocks, confirms with the user first, and never treats
   a completed sub-checkbox as a deletable task. (Related: #139 — instruction
   reliability observability.)

4. daily-plan's Today's Focus template used numbered checkboxes ('1. [ ]') and
   never embedded task IDs. Work MCP completion sync (update_task_status ->
   update_task_status_everywhere / find_task_by_id) only matches lines that
   contain the literal '- [ ]'/'- [x]' AND the ^task-YYYYMMDD-XXX anchor on the
   same line, so focus items silently never synced. The template now uses dash
   checkboxes with a {{^task-id}} placeholder, and Step 6 mandates embedding
   the real task ID inline (creating the task first when needed).

Also documents the verified macOS limitation — Apple Reminders/EventKit access
is never granted to Claude Code running inside the VS Code extension (no
permission dialog appears; a Terminal.app grant does not transfer) — in
docs/Dex_System/Calendar_Setup.md, mirrored byte-identically to the
06-Resources bridge copy.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

What this pull request touches

  • skills — feeds the guided workflows and commands people use with Dex.

Gates that will judge this change

  • Personal-data gate: added lines must not expose real identities or personal vault content.
  • Change-aware gates: source changes are checked for tests, path-contract use, documentation drift, and touched-file coverage.
  • Tests and coverage: the Python, MCP, migration, hook, and script suites must remain healthy.
  • Safety and quality: security, lint, distribution, path consistency, and large-vault checks still apply.

Based on 5 changed files.

@davekilleen
davekilleen merged commit dc881cd into main Aug 7, 2026
9 checks passed
@davekilleen
davekilleen deleted the fix/workflow-skill-gaps branch August 7, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant