fix(skills): wire evening journal, gate Reminders steps, safe Tasks.md clear-down, sync-ready focus items - #425
Merged
Merged
Conversation
…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>
What this pull request touches
Gates that will judge this change
Based on 5 changed files. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes four verified workflow gaps from Michelle's 5–6 August power-user feedback. Every finding was re-verified against
mainbefore 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-reviewStep 11)The step was a one-line stub — "prompt for evening reflection" — that never invoked the real
/journal eveningflow 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-reviewSteps 2.55 & 2.6; also found indaily-plan5.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-planStep 6 + plan template)Verified against the code: Work MCP completion sync (
update_task_status→update_task_status_everywhere→find_task_by_id) only matches a line containing both the literal- [ ]/- [x]checkbox and the^task-YYYYMMDD-XXXanchor 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 viacreate_taskwhen 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 the06-Resourcesbridge 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✅Proposed CHANGELOG entry (not committed — for the release that picks this up)
🤖 Generated with Claude Code