pdftract/notes/pdftract-653ah.md
jedarden 6000c654ce fix: resolve compilation errors across codebase
- Fixed missing fields in BlockJson, SpanJson, ExtractionOptions initializations
- Added feature gates to ocr_integration tests for conditional compilation
- Fixed McpServerState::new calls to include audit writer argument
- Fixed CCITTFaxDecoder::decode calls to use instance method
- Fixed type casts for ObjRef::new calls
- Fixed serde_json::Value method calls (is_some -> !is_null)
- Fixed ProfileType test feature gates
- Worked around lifetime issues in schema roundtrip tests

These changes fix numerous compilation errors that were blocking the
codebase from building. The main library and tests now compile successfully.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 08:38:04 -04:00

89 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Verification Note: pdftract-653ah
## Bead: 6.10.4: Runbook integration (docs/operations/manual-platform-smoke.md references doctor)
## Implementation Summary
Implemented runbook integration for `pdftract doctor` by:
1. **Created `docs/operations/manual-platform-smoke.md`** - A comprehensive smoke test runbook for KU-12 quarterly manual platform testing, including:
- Step 1: pdftract doctor as the first validation step
- Expected output examples for TTY and JSON formats
- Troubleshooting table with 22+ rows covering all FAIL/WARN scenarios for all 14 doctor checks
- Platform-specific notes for macOS, Windows, and Linux
- Completion criteria (PASS/FAIL conditions)
2. **Updated `docs/user-docs/src/installation.md`** - Added "Environment Health Check" section with `pdftract doctor` command and link to the operations runbook.
3. **Updated `docs/user-docs/src/quickstart.md`** - Added "Verify Your Environment" section as the first step in the quickstart, before any extraction examples.
4. **Created `tests/doctor_runbook_coverage.rs`** - CI gate test that:
- Parses the troubleshooting table from the runbook
- Verifies all 14 doctor checks are present
- Detects orphaned checks (in table but not in registry)
- Fails fast if runbook is out of sync with check registry
## Acceptance Criteria Status
| Criterion | Status | Notes |
|-----------|--------|-------|
| docs/operations/manual-platform-smoke.md has "Step 1: pdftract doctor" as the first section | ✅ PASS | Created with comprehensive runbook |
| Troubleshooting table has one row per FAIL-capable check | ✅ PASS | All 14 checks covered (22+ rows including FAIL/WARN variants) |
| docs/user-docs/src/install.md mentions pdftract doctor with link | ✅ PASS | Added "Environment Health Check" section |
| docs/user-docs/src/quickstart.md uses pdftract doctor as first command | ✅ PASS | Added "Verify Your Environment" before extraction |
| CI gate parses runbook and asserts all checks are present | ✅ PASS | Created doctor_runbook_coverage.rs test |
| mdBook build succeeds | ✅ PASS | Built successfully with new content |
| No broken internal links | ✅ PASS | mdbook found no broken links |
## Commit
- **Commit hash:** `d9d21df`
- **Commit message:** `docs(pdftract-653ah): add runbook integration for pdftract doctor`
- **Files changed:**
- `docs/operations/manual-platform-smoke.md` (new)
- `docs/user-docs/src/installation.md` (modified)
- `docs/user-docs/src/quickstart.md` (modified)
- `tests/doctor_runbook_coverage.rs` (new)
## Test Results
- **CI gate test:** ✅ PASS
```
✓ Runbook troubleshooting table covers all doctor checks
✓ No orphaned checks in table
```
- **mdBook build:** ✅ PASS
```
INFO Book building has started
INFO Running the html backend
INFO HTML book written to `/home/coding/pdftract/docs/user-docs/build/user-docs`
```
## Doctor Checks Covered
The troubleshooting table covers all 14 doctor checks from the registry:
1. pdftract binary (FAIL only - corrupted binary)
2. tesseract install (FAIL/WARN/OK)
3. tesseract languages (FAIL/WARN/OK)
4. leptonica install (FAIL/WARN/OK)
5. libtiff (FAIL only - missing)
6. libopenjp2 (FAIL only - missing)
7. pdfium native lib (FAIL/WARN/OK)
8. network reachability (FAIL/WARN/OK)
9. cache directory (FAIL/WARN/OK)
10. profile search path (FAIL/WARN/OK)
11. ulimit -n (FAIL/WARN/OK)
12. available RAM (FAIL/WARN/OK)
13. system locale (FAIL/WARN/OK)
14. temp dir writable (FAIL/WARN/OK)
## Plan References
- Plan section: Phase 6.10 `pdftract doctor` (lines 24792528 in `/docs/plan/plan.md`)
- Sibling 6.10.1: check registry (implemented in `crates/pdftract-cli/src/doctor/checks/mod.rs`)
- Sibling 6.10.3: exit code contract (implemented in `crates/pdftract-cli/src/doctor/mod.rs` lines 190-200)
## Bead Status
**CLOSED** - All acceptance criteria met with no WARN items.