Skip to content

feat: usability improvements from Nielsen heuristic audit - #106

Closed
sunapi386 wants to merge 0 commit into
mainfrom
feat/usability-audit-improvements
Closed

sunapi386 wants to merge 0 commit into
mainfrom
feat/usability-audit-improvements

Conversation

@sunapi386

Copy link
Copy Markdown
Contributor

Summary

  • Systematic audit against Jakob Nielsen's 10 usability heuristics identified gaps in user control (H3), discoverability (H6/H7), consistency (H4), and error recovery (H9)
  • Adds confirmation prompts to destructive commands (stop, logout), shell completion support, global --no-color, --json output for key commands, and improved error messages with recovery hints

Changes

H3: User Control & Freedom

  • citadel stop now prompts before stopping all services; --rm uses default-No confirmation
  • citadel logout now prompts before disconnecting
  • Both support --force / -f to skip prompts (for scripts/CI)
  • citadel stop --dry-run previews what would be stopped

H6/H7: Discoverability & Efficiency

  • New citadel completion [bash|zsh|fish|powershell] command via Cobra built-in generators
  • --json flag on status, nodes, peers for machine-readable output
  • JSON struct tags added to StatusData, GPUInfo, ServiceStatus, PeerInfo

H4: Consistency

  • --no-color moved from status-only to global persistent flag in root.go
  • Respects NO_COLOR environment variable (standard convention)

H9: Error Recovery

  • Manifest "corrupt" error now says "Run 'citadel init' to regenerate"
  • Service start failures hint "Run 'citadel logs ' for details"
  • Docker compose errors suggest checking if Docker is running
  • Container-not-found errors suggest citadel status

Test plan

  • go build ./cmd/citadel/ compiles clean
  • go test ./cmd/ ./internal/... all unit tests pass
  • Manual: citadel stop shows confirmation, --force skips it, --dry-run previews
  • Manual: citadel logout shows confirmation, --force skips it
  • Manual: citadel completion bash | head outputs completion script
  • Manual: citadel status --json | jq . outputs valid JSON
  • Manual: citadel --no-color status disables colors globally
  • Manual: NO_COLOR=1 citadel status disables colors via env

🤖 Generated with Claude Code

@sunapi386 sunapi386 closed this Jun 9, 2026
@sunapi386
sunapi386 force-pushed the feat/usability-audit-improvements branch from 004432d to f61aa11 Compare June 9, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant