Mark the current or specified task as done in today's daily task list and show progress. This skill should be used when Benjamin says "done", "task complete", "finished", "mark done", or wants to mark a task as completed.
Install
npx skillscat add benjaming/ai-skills/daily-done Install via the SkillsCat registry.
Done — Complete Current Task
Mark a task as completed in today's task file and show remaining work.
Configuration
persistence:
tasksDir: "~/.claude/daily-tasks"Execution Steps
1. Load Task File
Read today's task file:
cat ~/.claude/daily-tasks/$(date +%Y-%m-%d).json 2>/dev/nullIf no file exists: "No task file for today. Nothing to mark as done." Stop here.
Parse the JSON.
2. Identify Task to Complete
If $ARGUMENTS is a number: target that task ID.
If $ARGUMENTS matches a Jira key pattern (e.g., RGI-265): find the task with matching jira_key.
If $ARGUMENTS is empty: find the task with status: "in_progress".
- If multiple tasks are
in_progress, list them and ask which one to complete. - If no task is
in_progress: "No task currently in progress. Specify a task ID:/daily-done 3" - Stop here if unable to identify a single task.
Validation:
- If the selected task has
status: "done": "Task #N is already done." - If the selected task ID doesn't exist: "Task #N not found. Today has tasks 1-M."
- If the selected task has
status: "pending"(never started): Mark as done anyway, but note: "Task #N was never started — marking as done directly." - If the selected task has
status: "standby": Warn but proceed: "⚠️ Task #N is on standby (waiting on: {waiting_on}). Marking as done anyway."
3. Mark as Done
Read the current task file, update the target task:
- Set
statusto"done" - Set
completed_atto current ISO timestamp (usedate -u +%Y-%m-%dT%H:%M:%SZ) - Set
waiting_ontonullandpaused_attonull(clean up any standby fields) - Update
updated_aton the root object
Write the updated JSON back using the Write tool.
4. Show Completion Summary
Display:
✅ Task #N done: $JIRA_KEY — $SUMMARYIf started_at exists, calculate and show duration:
⏱️ Duration: Xh YmShow overall progress:
📋 Progress: N/M tasks done today5. Show Next Task
List remaining actionable tasks (pending or in_progress only — exclude standby):
Remaining:
#N. [TIER] $JIRA_KEY — $SUMMARY
#N. [TIER] $JIRA_KEY — $SUMMARYIf any standby tasks exist, add a note:
⏸ N task(s) on standby — run /daily-unblock to activate when readySuggest the next task:
👉 Next up: Task #N ($JIRA_KEY) — $SUMMARY
Run /daily-next to pick it up, or /daily-next M for a different task.6. All Done State
If no pending or in-progress tasks remain (standby tasks don't count):
🎉 All tasks for today are done!
📋 Final: M/M complete
⏱️ Total tracked time: Xh Ym (sum of all tasks with started_at and completed_at)
Consider:
- Running /daily-standup to refresh and check for new items
- Checking Jira backlog for new workEdge Cases
- Multiple
in_progresstasks, no argument: List all in-progress tasks with IDs and ask which to complete. Do not guess. - Task is
skipped: Allow marking asdone— change status fromskippedtodone. - Task is
standby: Warn about standby state but allow marking asdone. Clearwaiting_onandpaused_at. - File write fails: Report error, do not silently lose the update.
- Concurrent modification: Read-then-write is sufficient for single-user workflow. If the file was modified between read and write, the latest write wins.