Captain's Log demonstrates solid tool design with 18 well-named, verb-prefixed tools covering task lifecycle (capture, complete, update, delete, archive). All tools have descriptions (avg ~120 chars) and input schemas with types. However, output schemas are entirely undocumented, no tool specifies what fields are returned, forcing LLMs to infer structure. Parameter descriptions are present but often generic (e.g., 'List of entry IDs to delete' lacks context on what happens). Error handling is minimal, no recovery guidance, no actionable error messages visible in code. Dependency validation exists (depends_on deduplication) but error responses are not shown. Tool composition is strong: capture/capture_many, complete/complete_many, update_entry/update_many follow batch patterns. Naming is consistent and clear (verb_noun convention). Security: no secrets in parameters, but no visible permission gates or audit logging.
Return tasks that need attention — due today or overdue, plus high-priority items.
Bulk-cancel or bulk-complete stale entries older than N days.
Add a new task or note to the log.
Add multiple tasks or notes to the log in a single call.
Mark a task as done. If the entry has a recurrence set and a due_date, a new entry is automatically created with the next due date so the series continues. Note: if recurrence is set but no due_date is present, the next occurrence cannot be auto-scheduled. Set a due_date on the entry before completing to enable auto-scheduling.
Mark multiple tasks as done in a single call.
Output schemas completely undocumented. No tool specifies what fields are returned (e.g., does capture return entry_id, created_at, blocked_by?). LLMs cannot plan downstream calls or extract required data without guessing structure.
Destructive tools (delete_entry, delete_many, archive) lack confirmation/dry-run support and have minimal descriptions. No guidance on recovery or undo. Agents may accidentally delete large batches without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Remove one entry from the log.
Remove multiple entries from the log.
Read all fields of a single entry including depends_on and blocked_by relationships.
See all categories with open/done counts.
Browse or filter the backlog with optional sorting and date-range filtering.
Find entries by keyword using full-text search.
Quick count summary by status and priority, including currently_active count.
Export the log to markdown format.
Export the log to org-mode format.
Edit an existing entry, with support for updating depends_on relationships or clearing them.
Bulk-update several entries at once.
Summarise a week's activity.
Error handling not visible in code samples. No recovery guidance (e.g., 'Invalid depends_on IDs: [5, 7]. Valid IDs: 1-4, 8-12'). Validation exists but error responses are not shown; LLMs cannot self-correct.
Parameter descriptions are generic and lack constraints. E.g., 'List of entry IDs to delete' does not explain what happens, whether it's atomic, or what errors are possible. 'Optional due date in YYYY-MM-DD format' lacks validation rules (e.g., must be future date?).
No pagination or result limits documented for list_entries and search. Large result sets could exhaust context window. No mention of limit defaults or max values.