Skip to content

Conversation

@mphstudios
Copy link
Member

@mphstudios mphstudios commented Jan 19, 2026

Pull-Request Stacked on #1150

New quire doctor "health check" command following command delegation pattern.

Architecture: commands/doctor.js delegates to lib/doctor/index.js

Purpose

Diagnose common issues with quire development environment and project setup/misconfiguration.

Checks

Environment setup

  • Check Quire CLI version and report if an update is available
  • Check Git is available in PATH
  • Check Node.js version meets minimum requirement
  • Check npm is available in PATH
  • Check if PrinceXML is installed

Project configuration

  • Check if current directory is a Quire project
  • Check if dependencies are installed
  • Check if quire-11ty is outdated compared to the latest available version
  • Check data files in content/_data/ for YAML syntax and schema validation

Quire build artifacts

  • Check if build output is stale (source files are newer than _site)
  • Check if PDF output has been generated
  • Check if EPUB output has been generated

Example output

All Checks Pass (in a healthy project)

📖 Quire Doctor

Environment
  ✓ Operating system: macOS 14.0.0 (arm64)
  ✓ Quire CLI version: 1.0.0-rc.33
  ✓ Node.js version: v22.0.0
  ✓ npm: 10.2.4
  ✓ Git: 2.43.0
  ✓ PrinceXML: installed

Project
  ✓ Quire project: .quire
  ✓ Dependencies: installed
  ✓ quire-11ty version: 1.0.0-rc.33
  ✓ Data files: 3 files validated

Outputs
  ✓ Build status: _site up to date
  ○ PDF output: No PDF files
  ○ EPUB output: No EPUB output (run quire epub to generate)

All checks passed!

With failures and warnings:

📖 Quire Doctor

Environment
  ✓ Operating system: macOS 14.0.0 (arm64)
  ✓ Quire CLI version: 1.0.0-rc.33
  ✗ Node.js version: v18.0.0 (requires v22+)
      Run: nvm install 22 && nvm use 22
      Docs: https://quire.getty.edu/docs-v1/install-uninstall/#1-install-nodejs
  ✓ npm: 10.2.4
  ✗ Git: not found in PATH
      Install Git from https://git-scm.com/downloads
      Docs: https://quire.getty.edu/docs-v1/install-uninstall/#macos
  ⚠ PrinceXML: not found (optional)
      Download from https://www.princexml.com/download/
      Docs: https://quire.getty.edu/docs-v1/quire-commands/#pdf

Project
  ✓ Quire project: .quire
  ✗ Dependencies: node_modules not found
      Run: npm install
      Docs: https://quire.getty.edu/docs-v1/quire-commands/#install-dependencies
  ✓ quire-11ty version: 1.0.0-rc.33
  ✓ Data files: 3 files validated

Outputs
  ⚠ Build status: _site is 2 days older than source files
      Run: quire build
      Docs: https://quire.getty.edu/docs-v1/quire-commands/#build
  ○ PDF output: No PDF files
  ○ EPUB output: No EPUB output (run quire epub to generate)

2 checks failed, 2 warnings. See above for details.

All Checks Pass (--verbose)

📖 Quire Doctor

Running diagnostic checks...

Environment
  ✓ Operating system: macOS 14.0.0 (arm64)
  ✓ Quire CLI version: 1.0.0-rc.33
  ✓ Node.js version: v22.0.0
  ✓ npm: 10.2.4
      /usr/local/bin/npm
  ✓ Git: 2.43.0
      /usr/bin/git
  ✓ PrinceXML: installed
      /usr/local/bin/prince

Project
  ✓ Quire project: .quire
  ✓ Dependencies: installed
      /Users/mhrudka/Code/Getty/quire-test-project/node_modules
  ✓ quire-11ty version: 1.0.0-rc.33
  ✓ Data files: 3 files validated

Outputs
  ✓ Build status: _site up to date
  ○ PDF output: No PDF files
  ○ EPUB output: No EPUB output (run quire epub to generate)

All checks passed!

Key: ✓ passed  ✗ failed  ⚠ warning  ○ not applicable / not yet generated

With failures (--verbose)

📖 Quire Doctor

Running diagnostic checks...

Environment
  ✓ Operating system: macOS 14.0.0 (arm64)
  ✓ Quire CLI version: 1.0.0-rc.33
  ✓ Node.js version: v22.0.0
  ✓ npm: 10.2.4
      /usr/local/bin/npm
  ✗ Git: not found in PATH

    How to fix:
    Install Git:
    • Run: xcode-select --install
    • Or using Homebrew: brew install git

    Documentation: https://quire.getty.edu/docs-v1/install-uninstall/#mac-os-installation

  ⚠ PrinceXML: not found (optional)

    How to fix:
    PrinceXML is optional (only needed for --engine prince).
    • Download from: https://www.princexml.com/download/
    • Or install via Homebrew: brew install --cask prince

    Documentation: https://quire.getty.edu/docs-v1/quire-commands/#pdf

Project
  ✓ Quire project: .quire
  ✓ Dependencies: installed
      /Users/mhrudka/Code/Getty/quire-test-project/node_modules
  ✓ quire-11ty version: 1.0.0-rc.33
  ✓ Data files: 3 files validated

Outputs
  ✓ Build status: _site up to date
  ○ PDF output: No PDF files
  ○ EPUB output: No EPUB output (run quire epub to generate)

1 check failed, 1 warning. See above for details.

Key: ✓ passed  ✗ failed  ⚠ warning  ○ not applicable / not yet generated

@mphstudios mphstudios requested a review from cbutcosk January 19, 2026 17:45
@mphstudios mphstudios marked this pull request as ready for review January 19, 2026 21:49
@mphstudios mphstudios requested a review from geealbers January 19, 2026 21:49
@mphstudios mphstudios force-pushed the feature/cli-ux-improvements branch from efdee12 to 2c9bd2e Compare January 21, 2026 04:49
@mphstudios mphstudios force-pushed the feature/cli-doctor-command branch from ce40331 to 7a20274 Compare January 21, 2026 05:06
@mphstudios mphstudios force-pushed the feature/cli-ux-improvements branch from 2c9bd2e to 54623ff Compare January 22, 2026 22:29
@mphstudios mphstudios force-pushed the feature/cli-doctor-command branch from 60c0f14 to 5ede249 Compare January 23, 2026 00:56
@mphstudios mphstudios force-pushed the feature/cli-ux-improvements branch from eb9450d to 2b9bc08 Compare January 23, 2026 18:47
@mphstudios mphstudios force-pushed the feature/cli-doctor-command branch from f7f290e to 2c4421b Compare January 23, 2026 20:21
Base automatically changed from feature/cli-ux-improvements to main January 23, 2026 22:49
@mphstudios mphstudios force-pushed the feature/cli-doctor-command branch from dac4310 to d0899f7 Compare January 24, 2026 00:35
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.

2 participants