# P2–P6 Manual Verification Walkthrough > Living document. Each section is completed with exact released commands and artifacts during its > corresponding plan. Automated integration and manual acceptance use separate clean state. ## Global rules - Use a new temporary operator root and a new private fixture Git remote for each Px. - Never use production PSD credentials in a retained report or screenshot. - Keep descriptor/content in Git; keep endpoints, bindings, credentials, and certificates in the installation-local protected directory. - Do not print secret files, rendered signed URLs, Compose environments, or unbounded logs. - Record the ThothII commit, workspace commit, installation descriptor path, Compose project name, command exit status, and report path. - A focused manual PASS does not replace the automated process goal. ## P2 — Host preprocessing CLI **Status:** P2 implementation complete; automated integration PASS; manual acceptance PENDING. Manual goal: from a clean local installation, use only `thothctl` on the host to inspect one registry workspace and execute the controlled REST-DWH/HTTP-Evidence preprocessing path without a host Python or Node runtime. Use a fresh operator root and a fresh fixture Git remote; never reuse the automated `.artifacts/p2-integration/**` state. Commands (contract: `docs/contracts/workspace-preprocessing-cli.md`): ```bash thothctl --installation /thothii-installation.yaml workspace inspect --workspace --json thothctl --installation /thothii-installation.yaml workspace preprocess dwh --workspace --json thothctl --installation /thothii-installation.yaml workspace preprocess dwh --workspace --resume --json thothctl --installation /thothii-installation.yaml workspace schema suggest-fks --workspace --from-sql .sql --output .yaml --json thothctl --installation /thothii-installation.yaml workspace schema check --workspace --annotations .yaml --reviewed-candidates --json thothctl --installation /thothii-installation.yaml workspace index-schema --workspace --json thothctl --installation /thothii-installation.yaml workspace preprocess evidence --workspace --dry-run --json thothctl --installation /thothii-installation.yaml workspace preprocess evidence --workspace --json thothctl --installation /thothii-installation.yaml workspace preprocess run --workspace --json ``` Checks: 1. installation/render preflight (`inspect` returns exact revision + catalog/descriptor digests); 2. DWH introspection+LSH succeeds, rerun is `unchanged`, `--resume ` is `unchanged`/`succeeded`; 3. `schema suggest-fks` returns pristine JSON with `suggestedFksYaml` and a `manual_review_required` block (exit 3) when candidates exist; the suggested YAML digest equals the reported digest; 4. `schema check --annotations --reviewed-candidates ` succeeds after review; 5. `index-schema` counts against a pre-provisioned compatible collection and rerun is `unchanged`; 6. HTTP Evidence `--dry-run` returns `dry_run`, the real run publishes, rerun is `unchanged`, an input mutation produces a new generation/ACTIVE; 7. filesystem Evidence returns a stable `evidence_materialization_required` block with no partial corpus/vector publication; 8. negatives: missing workspace (`workspace_not_activatable`), resume of a nonexistent run (`preprocessing_resume_mismatch`), invalid annotations digest (`annotation_invalid`), no-Evidence skip warning, no collection creation, no backend/Pi/frontend listener; 9. secret scan over retained artifacts and exact owned-resource cleanup. Decision: **PENDING** (independent manual gate; automation never records PASS). ## P3 — Effective config and `.tht-dwh` **Status:** instructions to be finalized by P3 implementation; not yet runnable. Manual goal: compare operator and session effective DWH identities, inspect `OWNER.json` and `ACTIVE` without exposing secrets, prove safe reuse after a content-only revision, and prove fail-closed behavior after a DWH-affecting change. Checks to fill during P3: 1. canonical fingerprint comparison; 2. stable logical config-source identity; 3. schema-v1 ownership compatibility/migration; 4. DWH cache reuse across equivalent revisions; 5. revision-scoped schema/Evidence state; 6. mismatch rejection and recovery. Decision: **PENDING**. ## P4 — Qdrant bootstrap and guarded rebuild **Status:** instructions to be finalized by P4 implementation; not yet runnable. Manual goal: prove admission creates a missing compatible collection and indexes, refuses an incompatible collection, and permits destructive rebuild only under durable maintenance with no active readers/jobs and exact repeated confirmation. Checks to fill during P4: 1. missing-collection self-heal; 2. missing-index self-heal; 3. dimensions/distance/index-type refusal; 4. confirmation mismatch refusal; 5. active-reader/job refusal; 6. successful drained rebuild; 7. interrupted rebuild recovery with maintenance retained. Decision: **PENDING**. ## P5 — Curated FK annotations in Git **Status:** instructions to be finalized by P5 implementation; not yet runnable. Manual goal: curate `/schema/annotations.yaml` in an author clone, publish it, pull the new revision, explicitly accept the reviewed blob, and prove atomic revision-correct sync without changing `physical.yaml` in Git. Checks to fill during P5: 1. candidate/export review; 2. Git commit and exact blob identity; 3. pull and controlled revision transition; 4. explicit acceptance record; 5. synchronized destination and ownership manifest; 6. malformed/oversized/symlink/cross-namespace refusal; 7. pinned historical revision isolation. Decision: **PENDING**. ## P6 — Commit-addressed Evidence materialization **Status:** instructions to be finalized by P6 implementation; not yet runnable. Manual goal: materialize filesystem Evidence from the pinned Git commit, inspect its bounded manifest, preprocess/index it, retrieve only the pinned revision, and exercise unsafe-tree and aggregate-limit failures without partial publication. Checks to fill during P6: 1. exact commit/tree/object identities; 2. successful atomic materialization; 3. manifest and file digest verification; 4. filesystem Evidence dry-run/run/idempotency; 5. revision-filtered Qdrant retrieval and corpus ACTIVE; 6. nested symlink/gitlink/traversal/special-file refusal; 7. file-count/total-byte/path/manifest limit refusal; 8. retention while pinned and owned cleanup after release. Decision: **PENDING**. ## Final aggregate P2–P6 verification **Status:** runnable only after P6. The final manual pass will start with a new registry and two independent installations. It will run the complete DWH → FK → schema → filesystem Evidence chain, prove idempotency and revision isolation, confirm the second installation uses its own secrets/state, and compare its observations to the retained aggregate automated report. Decision: **PENDING**.