A human-operated CLI for local Trajectory IR workdirs: status, export, import, verify, and node inspection. Wraps the same SDK calls as trajir-mcp without the TRAJIR_MCP_ROOT confinement policy.
trajirctl exposes 6 tools with complete input schemas and descriptions, but suffers from critical naming and composition issues. Tool names lack action verbs (status, export, import, verify, nodes list/show), they read as nouns or subcommands rather than imperative actions. Descriptions are adequate (60 - 120 chars) but generic; they state WHAT without WHEN or WHY. Parameters are well-typed with descriptions, but the tool set violates single-responsibility: 'nodes' combines list and show as subcommands rather than separate tools. No output schemas are documented. Error handling is absent from descriptions. The server is a CLI wrapper, not an MCP-native design, tool definitions appear inferred from CLI dispatch logic rather than explicitly registered.
Export a trajectory to a .tir package file in thin or fat mode
Load and report on a .tir package without writing to NodeLog
List all nodes in a trajectory with their IDs, kinds, sequences, and timestamps
Show detailed information about a specific node by ID
Get status of a trajectory workdir including node count, seal count, and counts by node kind
Verify the signature of a .tir package. Status is one of 'unsigned', 'verified', or 'failed'
Tool names lack action verbs. 'status', 'export', 'import', 'verify' read as nouns; should be 'get_status', 'export_trajectory', 'import_package', 'verify_package'. LLMs infer intent from verb-noun structure.
'nodes' combines list and show as subcommands rather than separate tools. This violates single-responsibility and forces LLMs to reason about subcommand dispatch. Should be 'list_nodes' and 'show_node' as independent tools.
No output schemas documented. Descriptions state WHAT tools do but not what they return. LLMs cannot plan downstream calls or extract fields without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Descriptions lack WHEN/WHY context. 'Get status of a trajectory workdir' does not explain when to call this vs other tools or what the user gains. Descriptions should guide tool selection.
No error handling guidance in descriptions. Tools may fail (e.g., missing workdir, invalid trajectory ID) but descriptions do not explain recovery steps or error categories.