Focusgroup Evaluation: mx CLI Discoverability
Date: 2026-01-12 Agents: Opus 4.5 (Claude), Codex (OpenAI) Mode: Exploration (agents ran commands interactively)
Summary
Two AI agents evaluated the mx CLI for discoverability and agent-friendliness. They ran mx prime, then attempted common operations without reading --help.
Key Findings
What Works Well
| Feature | Assessment |
|---|---|
mx prime |
Excellent - provides quick workflow context |
mx batch |
Outstanding - JSON output, multiple ops, exactly what agents need |
mx schema |
Very useful for programmatic discovery |
mx search |
Clean tabular output with scores and confidence |
mx health |
Good actionable diagnostics |
| Tag suggestions | Helpful after mx add |
Bugs Found
| Priority | Issue | Impact |
|---|---|---|
| P0 | mx info shows 0 entries when entries exist |
Misleading stats |
| P0 | mx publish crashes with AttributeError |
Feature broken |
| P1 | --json-errors doesn't produce JSON |
Blocks programmatic error handling |
| P1 | mx history always empty |
Feature broken |
| P1 | mx tags/hubs throw tracebacks without KB |
Inconsistent errors |
| P2 | mx replace --tags requires --content |
Unnecessary friction |
| P2 | \n in --content stored literally |
Escape handling missing |
| P2 | mx whats-new datetime crash (intermittent) |
Fragile datetime handling |
Documentation Issues
mx addrequires--categorybut docs show it as optional--tagvs--tagsinconsistency in examples (fixed 2026-01-12)- Config naming consistency: docs should refer to
.kbconfigeverywhere
Agent-Friendliness Recommendations
- Fix
--json-errors- Agents need structured errors - Make error handling consistent - All commands should give friendly errors or structured JSON
mx batchis the gold standard - Other commands should follow its patterns- Document
--stdinfor formatted content - Since--contentdoesn't interpret escapes
Best Practices for Agents
# Use batch for multiple operations (structured JSON output)
mx batch << 'EOF'
add --title='...' --tags='...' --category=tooling --content='...'
search 'query'
EOF
# Use --stdin for content with formatting
echo -e "Line 1\n\nLine 2" | mx add --title="..." --tags="..." --category=... --stdin
# Check for KB first
mx info >/dev/null 2>&1 || mx init
Session Details
- Session ID:
218cdae5 - Duration: ~11 minutes
- Log:
~/.local/share/focusgroup/logs/20260112-218cdae5.json