Skip to content

Comments

feat: usability improvements from Nielsen heuristic audit#106

Open
sunapi386 wants to merge 1 commit intomainfrom
feat/usability-audit-improvements
Open

feat: usability improvements from Nielsen heuristic audit#106
sunapi386 wants to merge 1 commit intomainfrom
feat/usability-audit-improvements

Conversation

@sunapi386
Copy link
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

Systematic audit against Jakob Nielsen's 10 usability heuristics
identified gaps in user control (H3), discoverability (H6/H7),
consistency (H4), and error recovery (H9). This addresses the
high and medium priority findings.

- Add confirmation prompts to `stop` and `logout` (with --force to skip)
- Add --dry-run to `stop` for previewing actions
- Add `completion` command for bash/zsh/fish/powershell
- Make --no-color a global flag (was status-only), respect NO_COLOR env
- Add --json flag to status, nodes, peers for machine-readable output
- Improve error messages with actionable recovery hints

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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