Information Architecture: CLI + Docs Findability Audit (2026-03-01)

May 3, 2026 ยท View on GitHub

Scope: user-facing command taxonomy, runtime help labels, docs navigation hierarchy, and naming consistency.

Evidence sources:

  • Runtime command/help surfaces: lib/codex-manager.ts, scripts/codex-routing.js
  • Docs navigation/reference surfaces: README.md, docs/README.md, docs/reference/commands.md, docs/troubleshooting.md, docs/getting-started.md, docs/releases/v0.1.1.md
  • Governance/test contracts: docs/DOCUMENTATION.md, docs/STYLE_GUIDE.md, test/documentation.test.ts

Current Structure

Runtime command taxonomy (current)

  • codex-multi-auth <subcommand> (canonical)
    • Primary: login, list, status, switch, check, features
    • Advanced: verify-flagged, forecast, report, fix, doctor
  • Compatibility aliases:
    • codex multi auth ...
    • codex multi-auth ...
    • codex multiauth ...
  • Runtime usage labels before this audit mixed canonical and package-prefixed forms in help/error paths.
    • Prior printUsage() output in lib/codex-manager.ts used package-prefixed forms such as codex-multi-auth auth fix [--dry-run] [--json] [--live] [--model <model>].
    • Prior runSwitch() error text in lib/codex-manager.ts used Missing index. Usage: codex-multi-auth auth switch <index>.
    • Post-fix regression baseline is now asserted in test/documentation.test.ts by checking canonical codex-multi-auth ... usage and switch-error strings.
    • Canonical baseline strings now used in runtime output are codex-multi-auth fix [--dry-run] [--json] [--live] [--model <model>] and Missing index. Usage: codex-multi-auth switch <index>.

Docs hierarchy (current)

  • Product entry
    • README.md
  • Docs portal
    • docs/README.md
  • User operations
    • docs/index.md
    • docs/getting-started.md
    • docs/troubleshooting.md
    • docs/configuration.md
    • docs/features.md
    • docs/privacy.md
    • docs/upgrade.md
  • Reference
    • docs/reference/commands.md
    • docs/reference/settings.md
    • docs/reference/storage-paths.md
  • Releases
    • docs/releases/v0.1.1.md
    • docs/releases/v0.1.0.md
    • docs/releases/v0.1.0-beta.0.md
    • docs/releases/legacy-pre-0.1-history.md

Hierarchy depth is 3 or fewer levels.


Task-to-Location Mapping (Current)

Scoring rubric:

  • Match: task is discoverable in the expected location within one navigation hop.
  • Near-miss: task is discoverable but appears in unexpected locations or requires extra context-switch hops.
  • Lost: task is not discoverable through expected navigation.
User TaskExpected LocationActual LocationFindability
Log in first accountREADME.md quick start / docs/getting-started.mdMatchMatch
Find all auth commands and flagsdocs/reference/commands.mdMatchMatch
Understand alias availabilitydocs/reference/commands.md (or troubleshooting fallback)Also shown in README.md and docs/getting-started.mdNear-miss
Interpret CLI usage outputCanonical codex-multi-auth ... labelsMixed with codex-multi-auth auth ... in runtime usage stringsNear-miss
Check current stable release notesdocs/releases/v0.1.1.md via docs portal referencedocs/README.md reference table labeled v0.1.0 as current stableNear-miss
Find scoped legacy package guidanceMigration docs only (docs/upgrade.md, selected troubleshooting)Also surfaced in stable release notes docs/releases/v0.1.1.mdNear-miss

Findability score (core tasks): 2/6 clear first-attempt match.

Verification evidence snapshot (2026-03-01):

  • Runtime source checks in lib/codex-manager.ts confirm canonical codex-multi-auth ... usage labels and switch-error wording.
  • Documentation checks in test/documentation.test.ts validate stable release pointer correctness and alias-scope allowlists.
  • Alias detection checks are case-insensitive to prevent false negatives on mixed-case docs labels.

Near-miss to remediation traceability:

  • Understand alias availability -> resolved by scoping aliases to reference/troubleshooting/migration surfaces and removing alias examples from primary onboarding flows.
  • Interpret CLI usage output -> resolved by canonicalizing runtime help and error usage strings to codex-multi-auth ... in lib/codex-manager.ts.
  • Check current stable release notes -> resolved by updating docs portal stable pointer to docs/releases/v0.1.1.md.
  • Find scoped legacy package guidance -> resolved by keeping scoped-package references in migration contexts and removing them from stable release notes.

Naming Inconsistencies Found

ConceptVariant AVariant BRecommended
Canonical command labelcodex-multi-auth ...codex-multi-auth auth ...codex-multi-auth ... for all primary user-facing help text
Alias placement policyReference/troubleshooting intentAlso in primary README/getting-started command flowsKeep aliases in reference/troubleshooting/migration contexts only
Stable release pointerv0.1.1 in user guidesv0.1.0 labeled current stable in docs reference tableUse v0.1.1 as current stable consistently
Scoped legacy package mentionMigration-only contextsStable release notes mentionKeep scoped package guidance migration-only

Proposed Structure

  • Keep existing shallow hierarchy and layer model.
  • Enforce one canonical location per task category:
    • "How to run commands": docs/reference/commands.md
    • "Fallback routing or alias recovery": docs/troubleshooting.md
    • "Migration from legacy package/path": docs/upgrade.md
    • "Current stable release": docs/releases/v1.1.10.md

Labeling model

  • Canonical command wording in runtime help/error text: codex-multi-auth ...
  • Compatibility alias wording restricted to reference/troubleshooting/migration sections.
  • Scoped legacy package guidance restricted to migration contexts.

Migration Path

  1. Canonicalize runtime usage/error strings to codex-multi-auth ....
  2. Remove alias examples from primary README/onboarding flows; keep fallback routing guidance in troubleshooting/reference.
  3. Correct docs portal reference table to current stable release (v0.1.1).
  4. Remove scoped package mention from stable release notes and point to upgrade guide for migration details.
  5. Maintain deterministic regression checks in test/documentation.test.ts:
    • uses scoped package only in explicit legacy migration notes (test/documentation.test.ts:104) enforces scoped package boundaries.
    • keeps compatibility command aliases scoped to reference, troubleshooting, or migration docs (test/documentation.test.ts:127) enforces alias-visibility boundaries with explicit allowlist files.
    • keeps fix command flag docs aligned across README, reference, and CLI usage text (test/documentation.test.ts:160) enforces canonical runtime help/error wording.
    • Keep cross-platform verification requirements explicit: Windows-oriented validation patterns (for example HOME/USERPROFILE handling and Windows path guidance checks in test/documentation.test.ts:244-245) must be extended whenever new shell-sensitive command rendering is introduced, including explicit codex-multi-auth output-escaping checks for cmd.exe and PowerShell.

Task-to-Location Mapping (Proposed)

User TaskLocationFindability Improvement
Run login/switch/check commandsREADME.md and docs/getting-started.md with canonical labelsRemoves mixed labels in first-run paths
Discover full command/flag matrixdocs/reference/commands.mdRetains single authoritative command catalog
Recover from command routing problemsdocs/troubleshooting.mdAlias fallback remains discoverable but contextual
Verify current stable releasedocs/README.md -> docs/releases/v0.1.1.mdEliminates stale stable-pointer ambiguity
Migrate from scoped legacy packagedocs/upgrade.mdPrevents legacy naming bleed into stable operational docs

Target findability score for core tasks after remediation: 6/6 first-attempt match.


Out of Scope

  • Visual design or formatting redesign.
  • Runtime behavior changes to command routing/alias support.
  • Internal module naming unrelated to user-facing findability.