TaskPack: an open, offline task-handoff container. Task Passport is the durable state; TaskPack is the box it travels in.
Task Passport defines 4 tools with clear, domain-specific purposes and well-structured schemas. Tool names follow verb_noun convention (list, open, new, checkpoint). Descriptions are substantive (80-180 chars) and explain WHEN to use each tool. Input schemas are properly typed with required fields marked. Output schemas are documented. However, parameter descriptions lack depth, most are 1-2 sentences without format constraints, ranges, or examples. Error handling is absent from tool definitions; no guidance on what happens on conflict, missing passport, or version mismatch. System prompt provides context but does not substitute for tool-level error recovery hints. Composition is sound: tools chain logically (list → open → checkpoint). No security issues detected (no secrets in params). Overall: solid domain modeling, but parameter documentation and error guidance fall short of A-grade standards.
Checkpoint changed task state for another harness. Requires the exact state and state_version returned by open; a stale version is rejected instead of overwriting.
List task passports without loading their full bodies. Use this to resolve a title or discover the exact passport id. Read-only.
Create a durable task passport with a stable human-readable id. Use one passport per objective, not one per chat message or harness session.
Open exactly one task passport and return its durable state plus a bounded context block. Never auto-selects a recent task. Read-only.
task_passport_checkpoint lacks error guidance for version conflicts. Description says 'stale version is rejected' but does not tell the LLM what to do next (reopen and merge?). No recovery path documented.
Parameter descriptions are minimal (1-2 sentences). 'current_state' and 'next_step' in task_passport_new lack format guidance, length constraints, or examples. LLMs cannot infer whether these are free-form text, structured JSON, or markdown.
task_passport_open output includes 'compiled_context' and 'handoff_prompt' fields but their structure and content are not documented. LLMs cannot reason about how to use these fields downstream.
No error classification or recovery hints in tool definitions. What happens if passport_id does not exist? If state object is malformed? If checkpoint conflicts? Tool definitions are silent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
task_passport_list output schema documents 'passports' array but does not specify pagination limits or whether results are capped. No mention of max count or next_cursor for large result sets.