diff --git a/docs/automation/handoffs/pre-phase10/ACCEPTANCE.json b/docs/automation/handoffs/pre-phase10/ACCEPTANCE.json new file mode 100644 index 0000000..4494620 --- /dev/null +++ b/docs/automation/handoffs/pre-phase10/ACCEPTANCE.json @@ -0,0 +1,209 @@ +{ + "schemaVersion": 1, + "workstreamId": "AUTOMATION-HANDOFF-01", + "kind": "ACCEPTANCE", + "authority": "EVIDENCE_ONLY", + "sourceBranch": "test/pre-phase10-ux-acceptance", + "localCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "localCommitMeaning": "FROZEN_TESTED_APPLICATION_BASELINE", + "snapshotHead": "c16a66e2c85b35caa5a4460c186dc77d28e31ccb", + "verifiedRemoteCommit": "c16a66e2c85b35caa5a4460c186dc77d28e31ccb", + "remoteObservation": "Snapshot verification 2026-10-29T17:55:24.139000+00:00; current final package HEAD must be resolved and read back independently.", + "worktreeCleanliness": { + "atSourceBaseline": "CLEAN", + "atPackageGeneration": "HANDOFF_FILES_ONLY", + "requiredAtConsumption": "CLEAN" + }, + "acceptanceStatus": "CONDITIONAL GO", + "entryGateStatus": "BLOCKED", + "phase10DevelopmentReadiness": "NO-GO", + "eligibleForAutomaticExecution": false, + "packageStatus": "READY", + "verdicts": [ + { + "criterion": "Pre-Phase-10 UX", + "status": "CONDITIONAL GO", + "evidence": [ + "TEST_EVIDENCE.json", + "TRACEABILITY.md" + ], + "limits": "Finite automated development review; manual/PDF/model/operator conditions remain." + }, + { + "criterion": "CV Integration", + "status": "CONDITIONAL GO", + "evidence": [ + "docling-import", + "cv-integration-qa", + "long-import", + "mariadb-provider" + ], + "limits": "Supported reviewed workflow only; partial extraction and legacy-text generic-AI precondition retained." + }, + { + "criterion": "PDF Spacing", + "status": "PARTIAL", + "evidence": [ + "VISUAL_REVIEW.md", + "windows-template-oracle", + "linux-template-oracle" + ], + "limits": "Unchanged S01 coordinate failures remain; human aesthetic/print approval absent." + }, + { + "criterion": "Automated PDF Fidelity", + "status": "FAIL", + "evidence": [ + "windows-template-oracle", + "linux-template-oracle" + ], + "limits": "Original24CV+4letter per platform pass; revised corpus fails only S01. No oracle waiver." + }, + { + "criterion": "Semantic Content Completeness", + "status": "PASS", + "evidence": [ + "windows-template-completeness", + "linux-template-completeness" + ], + "limits": "Finite36 revised CVs/122pages per platform, source markers/bounds; not model semantic truth." + }, + { + "criterion": "Human Print Approval", + "status": "NOT TESTED", + "evidence": [ + "MANUAL_ACCEPTANCE.md" + ], + "limits": "Actual printing requires a human/printer; PDF generation is not printing." + }, + { + "criterion": "CV AI Accuracy", + "status": "BLOCKED", + "evidence": [ + "cv-model-probe", + "AI_RESULTS.md" + ], + "limits": "Three actual synthetic responses rejected; no accepted end-to-end model quality evidence." + }, + { + "criterion": "Human/Device Acceptance", + "status": "NOT TESTED", + "evidence": [ + "MANUAL_ACCEPTANCE.md" + ], + "limits": "Automated emulation/axe are separate and do not supply human approval." + }, + { + "criterion": "Python Security", + "status": "CONDITIONAL", + "evidence": [ + "installed-python-advisories", + "pip-audit" + ], + "limits": "Current exact installed audit retains one vendor-PyPI404; source-scoped P9 disposition, no risk waiver." + }, + { + "criterion": "Hosted CI", + "status": "BLOCKED", + "evidence": [ + "AUTHORITY.md", + ".gitea/workflows/mariadb-integration.yml" + ], + "limits": "Quarantined lane/current runner isolation unverified;0 fresh hosted database cases." + }, + { + "criterion": "Preservation", + "status": "PARTIAL", + "evidence": [ + "preservation-register", + "TRACEABILITY.md" + ], + "limits": "All57 criteria and34 routes retained;56PARTIAL/1DEFERRED states are not promoted." + }, + { + "criterion": "Git Publication", + "status": "VERIFIED", + "evidence": [ + "git-checkpoint" + ], + "limits": "Exactc16a66e2c85b35caa5a4460c186dc77d28e31ccb snapshot readback; final resolved local/remote HEAD must be independently rechecked after publishing package." + }, + { + "criterion": "Phase 10 Development Readiness", + "status": "NO-GO", + "evidence": [ + "BLOCKERS.json", + "READY_TO_RUN.md" + ], + "limits": "Missing protected entry/candidate decisions, affected PDF disposition and controller runtime/test-adapter/policy qualification." + }, + { + "criterion": "Automation Handoff Package", + "status": "READY", + "evidence": [ + "HANDOFF_SCHEMA.json", + "TEST_EVIDENCE.json", + "CONTRACT.md" + ], + "limits": "Ready evidence import proposal; not configured or tested inside the separate orchestrator and not authority to execute." + }, + { + "criterion": "Production", + "status": "NO-GO", + "evidence": [ + "BLOCKERS.json" + ], + "limits": "No main merge/deploy; independent release/security/backup/recovery/provider/manual approvals absent." + } + ], + "testEvidenceReferences": [ + "TEST_EVIDENCE.json", + "TRACEABILITY.md", + "VISUAL_REVIEW.md", + "AI_RESULTS.md" + ], + "unresolvedBlockerIds": [ + "P10-ENTRY-01", + "P10-CANDIDATE-01", + "AUTO-RUNTIME-01", + "AUTO-ADAPTER-01", + "PDF-S01-01", + "HUMAN-01", + "AI-CV-01", + "DET-RECALL-01", + "PYSEC-01", + "CI-01", + "MYSQL-TLS-01", + "OPS-01", + "NATIVE-SEC-01", + "FUTURE-01", + "AI-CONTEXT-01", + "AUTO-SCOPE-01" + ], + "permissibleDeferrals": [ + "HUMAN-01", + "AI-CV-01", + "DET-RECALL-01", + "PYSEC-01", + "CI-01" + ], + "requiredOwnerApprovals": [ + { + "id": "phase10-development-entry", + "state": "NOT_PROVIDED_TO_HANDOFF", + "authority": "EXTERNAL_PROTECTED_CONTROLLER_APPROVAL" + }, + { + "id": "candidate-specific-cleanup-scope", + "state": "NOT_PROVIDED_TO_HANDOFF", + "authority": "EXTERNAL_PROTECTED_CONTROLLER_APPROVAL" + }, + { + "id": "policy-update", + "state": "NOT_PROVIDED_TO_HANDOFF", + "authority": "EXTERNAL_PROTECTED_CONTROLLER_APPROVAL" + } + ], + "generatedUtc": "2026-10-29T17:56:46.240720+00:00", + "recommendation": "Remain BLOCKED for automatic Phase10. Review this complete evidence, resolve affected mandatory conditions and protected scope, qualify the separate runtime/adapter, and adopt final published baseline/policy through its signed approval flow. Do not start any later workstream, merge or deploy." +} diff --git a/docs/automation/handoffs/pre-phase10/BLOCKERS.json b/docs/automation/handoffs/pre-phase10/BLOCKERS.json index c35c2a2..35dfa22 100644 --- a/docs/automation/handoffs/pre-phase10/BLOCKERS.json +++ b/docs/automation/handoffs/pre-phase10/BLOCKERS.json @@ -41,14 +41,16 @@ }, { "id": "AUTO-RUNTIME-01", - "description": "The separate orchestrator reports an unqualified native Codex sandbox and missing isolated runner/signing boundary.", + "description": "Current single-user controller reports real MXC canary PASS, but no actual owner key or ChatGPT sign-in, operator-controlled policy and disabled real execution; current-context qualification/activation remains incomplete.", "evidence": [ - "AUTHORITY.md", - "ROADMAP.md" + "CONTROLLER_ADDENDUM.md", + "READY_TO_RUN.md", + "controller-current-native-qualification-json", + "controller-current-setup-results-json" ], "severity": "HIGH", "acceptanceCriterion": "Independent qualified execution boundary", - "requiredAction": "Qualify the sandbox/isolated account or VM, protected approval/state ACLs, process/CPU/memory/tool/read/egress/secret boundaries and actual worker execution. This workstream must not modify that runtime.", + "requiredAction": "Operator must sign into dedicated auth-only profile, configure the actual protected owner key and qualify its host-positive/worker-negative boundary and fresh current-context controls, then independently approve runtime/queue/entry policy. Existing same-user MXC mode does not require a new account or VM; its finite canaries do not qualify actual owner credentials or roadmap execution. This handoff must not operate that runtime.", "blockingPhase": [ "AUTOMATIC_PHASE-10_EXECUTION" ], @@ -263,11 +265,17 @@ { "id": "AI-CONTEXT-01", "description": "Generic strategy admission still requires legacy ProfileCvText; successful reviewed structured import alone does not establish that precondition.", - "evidence": ["AI_RESULTS.md", "JobTrackerApi/Services/StrategySnapshotService.cs", "JobTrackerApi/Controllers/ProfileCvController.Import.cs"], + "evidence": [ + "AI_RESULTS.md", + "JobTrackerApi/Services/StrategySnapshotService.cs", + "JobTrackerApi/Controllers/ProfileCvController.Import.cs" + ], "severity": "MODERATE", "acceptanceCriterion": "Do not claim canonical-only import to generic AI compatibility without exercising it", "requiredAction": "Assess canonical-only generic-AI source compatibility during Product Review. Preserve existing consent/source contracts; never silently fill legacy text from unreviewed uploads. The current successful smoke explicitly supplies separately authored fictional CV text.", - "blockingPhase": ["GENERIC_AI_FROM_CANONICAL_ONLY_PROFILE_CLAIM"], + "blockingPhase": [ + "GENERIC_AI_FROM_CANONICAL_ONLY_PROFILE_CLAIM" + ], "responsibleParty": "Product / AI integration owner", "deferralAuthority": null, "classification": "FUTURE_FEATURE", @@ -276,11 +284,17 @@ { "id": "AUTO-SCOPE-01", "description": "The committed controller policy has stage entry/review approvals but no explicit protected candidate-scope checkpoint after an assessment-only Phase10 entry.", - "evidence": ["CONTRACT.md", "GATES.json", "CLEANUP_INVENTORY.md"], + "evidence": [ + "CONTRACT.md", + "GATES.json", + "CLEANUP_INVENTORY.md" + ], "severity": "HIGH", "acceptanceCriterion": "Concrete owner-approved candidate scope before cleanup implementation", "requiredAction": "Bind a full entry approval to already-proven exact candidates, or use the controller's signed policy update to stop after assessment and require a protected candidate-specific-cleanup-scope decision before removal. Do not treat assessment-only approval or worker-written evidence as deletion authority.", - "blockingPhase": ["AUTOMATIC_PHASE-10_CLEANUP_IMPLEMENTATION"], + "blockingPhase": [ + "AUTOMATIC_PHASE-10_CLEANUP_IMPLEMENTATION" + ], "responsibleParty": "Owner / AUTONOMOUS-ROADMAP-01 policy maintainer", "deferralAuthority": null, "classification": "MANDATORY_ENTRY", diff --git a/docs/automation/handoffs/pre-phase10/CONTROLLER_ADDENDUM.md b/docs/automation/handoffs/pre-phase10/CONTROLLER_ADDENDUM.md new file mode 100644 index 0000000..28b0ee8 --- /dev/null +++ b/docs/automation/handoffs/pre-phase10/CONTROLLER_ADDENDUM.md @@ -0,0 +1,17 @@ +# External controller snapshot reconciliation — 29 October 2026 + +At final review the external worktree advanced from the initially inspected c1663df to **140e182516e86c8718054cf0907593fcd6a38aa7**, branch `codex/autonomous-roadmap-single-user`. This addendum supersedes current-runtime statements based only on the earlier snapshot. Only committed Git objects were read; no external worktree file, setup, login, key, runtime, process, policy or schedule was modified or run by this handoff. + +The committed SINGLE_USER_ACCEPTANCE and machine-readable setup/qualification/results now report: + +- **69 Python controller tests**, including the original48, and **6 separate .NET signature cases**. These are external-workstream results, not fresh application/handoff executions, and69 must not be added to48. +- Actual native MXC synthetic filesystem/network/signing canaries PASS, with host-positive controls and seven denied protected-file categories. The earlier legacy CryptUnprotectData failure is historical; it is no longer accurate to describe every supported native mode as failing startup. +- Same-user installation exists; a new Windows account/VM is not a requirement of this mode. This confinement is not an independently administered account boundary and does not establish exhaustive API/credential safety. +- Dedicated ChatGPT authentication **NOT_SIGNED_IN**, real owner signing key **NOT_CONFIGURED**, actual owner-key denial **false/not tested**, operator-controlled policy, queue **disabled**, **zero real sessions**. Canary signing-key denial does not qualify a nonexistent actual owner key. +- Real provider/browser/Python/PDF/security/preservation adapter is still unconfigured. No formal Phase10 entry or accepted candidate-removal scope is supplied. No task was installed; locked-desktop/logged-out/reboot execution remains unqualified. + +GATES.json references140e182. The backlog/prompt policy remains based on5032ccb with empty checkpoint deferrableGates; the candidate-scope integration requirement remains open. TEST_EVIDENCE.json indexes the committed external documents/results/backlog as `controller-current-*` artifacts with exact byte hashes, explicitly not as our executed tests. The initial c166 observations remain historical context. + +AUTO-RUNTIME-01 remains BLOCKED for **actual key, human sign-in, current-context qualification and independent activation authority**, rather than an assumed universal DPAPI failure or mandatory second account. AUTO-ADAPTER-01, AUTO-SCOPE-01, exact final baseline adoption and Phase10 entry remain separate. The package neither closes nor duplicates the external controller's work. + +The operator's next steps, in their own real terminal, are described by that snapshot's SINGLE_USER.md: dedicated same-account authentication, protected owner-key setup, qualification of the exact actual key/current context, and later signed runtime/policy/baseline/entry decisions. Those actions are not performed or pre-approved here. Preserve the external operator-controlled pause until every applicable condition is met. diff --git a/docs/automation/handoffs/pre-phase10/GATES.json b/docs/automation/handoffs/pre-phase10/GATES.json index 05dc2a2..0fac10a 100644 --- a/docs/automation/handoffs/pre-phase10/GATES.json +++ b/docs/automation/handoffs/pre-phase10/GATES.json @@ -3,12 +3,14 @@ "workstreamId": "AUTOMATION-HANDOFF-01", "kind": "GATES", "contractStatus": "PROPOSED_EVIDENCE_ADAPTER_NOT_EXECUTABLE_POLICY", - "controllerCommit": "c1663df44ca54eb1e6fad8facfcbc2d5eb5db8c8", + "controllerCommit": "140e182516e86c8718054cf0907593fcd6a38aa7", "controllerFiles": [ "automation/backlog.json", "automation/schemas/backlog.schema.json", "automation/schemas/result.schema.json", - "docs/automation/GATES.md" + "docs/automation/GATES.md", + "docs/automation/SINGLE_USER_ACCEPTANCE.md", + "docs/automation/SINGLE_USER.md" ], "executionEnabledByThisPackage": false, "externalApprovalPolicy": "Use existing protected RSA/SHA256 owner-SID/request-hash/expiry binding. Bind resolved final baseline, candidate scope, policy/prompt and artifact hashes. No signatures/tokens are created here; all current checkpoint deferrableGates are empty. Any policy update/conditional-deferral requires the controller signed process.", diff --git a/docs/automation/handoffs/pre-phase10/HANDOFF.md b/docs/automation/handoffs/pre-phase10/HANDOFF.md new file mode 100644 index 0000000..c9e4048 --- /dev/null +++ b/docs/automation/handoffs/pre-phase10/HANDOFF.md @@ -0,0 +1,52 @@ +# AUTOMATION-HANDOFF-01 — completed evidence handoff + +**Package READY; Pre-Phase-10 UX and CV Integration CONDITIONAL GO; Phase10 development NO-GO; automatic execution NOT authorised; production NO-GO.** This handoff completes safely achievable evidence work, not the missing owner/operator qualifications. + +Branch: `test/pre-phase10-ux-acceptance`. Frozen tested application baseline: **5032ccb41514807c8ca3008c24ca6326be1170de**. It contains CV-UX4a0af62, CV-QA4a8c907, cumulative3255da9 and strategy correction caa0c6a. Handoff-only descendants do not change application, existing tests or deployment. Resolve the final package commit using `git rev-parse HEAD`, and independently compare its remote ref and clean working tree: a file cannot truthfully embed the hash of the commit containing itself. ACCEPTANCE.json labels its earlier snapshot/readback explicitly. `verify.mjs --verify-remote` checks the actual current HEAD. + +The two previously unpublished commits caa0c6a/5032ccb and completed handoff checkpoints8804231,78e5296,657db9d,c16a66e were normally pushed and exact remote refs read back. DNS/TCP443/HTTPS/TLS and Git recovered without disabling certificate checks. GJ-00 planning remained separately published at0ec9f98e6ed4a646fc5e017d8eb6fade07653f37, diverging18/2 commits from5032ccb; it was not merged or modified. Primary and separate controller worktrees were preserved. + +## Fresh execution results + +| Lane | Actual outcome | +|---|---| +| .NET backend | **1448 passed**,0 failed/skipped | +| React frontend | **1031 passed /112 suites**,0 failed/pending | +| Ordinary browser | **380 passed** across four disjoint discovery-verified shards;0 failed/skipped/flaky/retries | +| Specialized browser contracts | **53 passed**: AI2, auth2, rate9, ingress6, PDF admission1, preferences3, RD21 6, diagnostics18, volume3, RD21-volume3 | +| Real import browser journeys | **8 passed**: Docling3, integration QA4, long import1 | +| Real MariaDB | **90 provider tests +3 browser cases passed**, isolated data and fixture cleanup verified | +| Native Linux rendering browser | **8 passed**, source/image/runtime identity and cleanup retained | +| Python | **83 offline +14 real Docling passed**; native JUnit repeat replaces overlapping console run | +| Existing helper/oracle tests | **9 new-benchmark +11 original-benchmark +11 Linux-helper +25 Node-helper passed** | +| TypeScript, lint, frontend/API builds, Linux native build, Windows apphost restoration | All exit0 | +| Handoff verification | **18 passed** native parser/schema/source/approval unit and package negative tests; report `handoff-validator` supersedes bootstrap7 | +| Original PDF fidelity | Per platform24 CVs/60 pages and4 letters/14 pages PASS | +| Revised PDF corpus | Per platform36 CVs/122 pages content/bounds PASS; full-height sidebar43/43 pages PASS; matching letters18/38 pages PASS | +| Revised unchanged S01 fidelity | **FAIL: Windows28/36 and Linux20/36 fail S01 only**; criteria unchanged | + +These are separate executed lanes, not an assertion that every case exercises a unique product scenario. The original broad regression completed once with source unchanged. Follow-up fixture/collector failures and their non-overlapping recovery are retained in [QUALIFICATION_FAILURES.md](QUALIFICATION_FAILURES.md). Native command arguments, timestamps, exit codes, test identities, source maps and immutable runtime observations are portable artifacts indexed in [TEST_EVIDENCE.json](TEST_EVIDENCE.json). Historical totals and repeated runs are not added to fresh totals. + +## Actual local workflow and limits + +The existing development environment remains available at `http://jobbjakt.local/`; no handoff-doc activation was necessary. A fresh synthetic PDF passed through the real worker to pending review with owner-correlated events. Separate browser/MariaDB tests cover Upload→Review/correct→Approve→canonical Career Profile→CV Editor→PDF and durable rollback/concurrency protections. Synthetic owner erasure completed. Generic queued strategy and scheduled enrichment actually saved nonempty results; strategy retained a prior provider_unavailable failure. Generic strategy used separately authored fictional ProfileCvText: canonical-only imported structured facts do not satisfy that legacy precondition. AI-CONTEXT-01 records the gap without overwriting user-controlled text. + +Real conversion and deterministic extraction are distinct from model inference. Three safely isolated real CV-adapter probes used the approved existing Qwen artifact through a **read-only** model mount; all three were rejected. No compatibility or semantic-accuracy PASS is possible. The active CV adapter remains disabled/disconnected. No model download/replacement, existing Ollama/cache modification or permanent model selection occurred. [AI_RESULTS.md](AI_RESULTS.md) distinguishes actual inference, contract doubles, historical deterministic precision/recall and future qualification. + +Security is **CONDITIONAL**: import-lock48 dependencies had0 reported advisories; frontend production0, full frontend5 low; current NuGet scan reports MySqlConnector2.4.0 moderate GHSA-473q-m89c-ghf8. Exact installed Python audit queried63 distributions/126 endpoints with0 advisory records but retained vendor Torch PyPI404, so remains INCOMPLETE. No security risk was accepted on the owner's behalf. Prior source-diff review is historical scoped evidence, not a newly executed exhaustive scan. Hosted MariaDB/CI, native-image, production TLS/filesystem/off-disk backup/recovery/cache/operator qualification remain open in their own scopes. + +## Independent decisions and handoff + +[ACCEPTANCE.json](ACCEPTANCE.json) contains all15 independent decisions. PDF spacing PARTIAL, revised automated fidelity FAIL, finite semantic content completeness PASS; human printing/device/AT/language NOT TESTED; CV AI BLOCKED; Python security CONDITIONAL; hosted CI BLOCKED; preservation PARTIAL; Git snapshot publication VERIFIED. All57 preservation criteria and34 routes remain retained at their existing56 PARTIAL/1 DEFERRED classifications. No test or historical acceptance record was weakened. + +- [TRACEABILITY.md](TRACEABILITY.md): every requested capability mapped to current owners, actual reports and limits. +- [VISUAL_REVIEW.md](VISUAL_REVIEW.md) and [owner-review.zip](visual/owner-review.zip): actual54 PDFs and first/final comparisons for owner decisions. +- [MANUAL_ACCEPTANCE.md](MANUAL_ACCEPTANCE.md):11 prioritised human/device/AT/copy/print/workflow checks, all pending. +- [BLOCKERS.json](BLOCKERS.json) and [AUTHORITY.md](AUTHORITY.md): mandatory entry blockers, source-authorised conditional development debt, production-only blockers and future work kept separate. +- [PHASE10_BASELINE.md](PHASE10_BASELINE.md) and [CLEANUP_INVENTORY.md](CLEANUP_INVENTORY.md): exact source/compatibility baseline and19 concrete retain/assessment entries; **no approved product removal**. +- [GATES.json](GATES.json), [ROADMAP.md](ROADMAP.md), [CONTRACT.md](CONTRACT.md), [HANDOFF_SCHEMA.json](HANDOFF_SCHEMA.json): proposed versioned evidence contract, stage05–11 dependencies and separately retained initiatives. +- [REPRODUCE.md](REPRODUCE.md) and [READY_TO_RUN.md](READY_TO_RUN.md): independent verification and protected entry conditions. + +The separate controller was inspected through committed Git objects only, initially c1663df and finally **140e182516e86c8718054cf0907593fcd6a38aa7**. [CONTROLLER_ADDENDUM.md](CONTROLLER_ADDENDUM.md) reconciles its newer single-user mode:69 external Python cases (includes earlier48),6 signature cases and actual MXC canaries PASS, but dedicated sign-in and real owner key missing, operator-controlled/disabled, real adapter unconfigured and no Phase10 authority. Those tests were not rerun here. The older DPAPI failure remains historical. Empty checkpoint deferrableGates and AUTO-SCOPE-01 still require protected policy/candidate decisions. This package does not install a second controller, launch a queue, generate approval signatures or supply an owner decision. + +**Required owner/operator action:** review the actual PDFs and affected S01 requirement, complete applicable manual checks, approve the resolved final published baseline and exact cleanup candidate scope through protected approval, and qualify the separate sandbox/test adapter and signed policy. Existing source-authorised conditional debt is not an executable waiver. Production-only issues are not blanket blockers on unrelated assessment, and conditional development permission is not production acceptance. Until mandatory conditions are satisfied, the orchestrator must remain BLOCKED. No Phase10, Product Review, Global Jobs, main merge or production deployment was started. diff --git a/docs/automation/handoffs/pre-phase10/PHASE10_BASELINE.md b/docs/automation/handoffs/pre-phase10/PHASE10_BASELINE.md index 6f3ebda..282dd07 100644 --- a/docs/automation/handoffs/pre-phase10/PHASE10_BASELINE.md +++ b/docs/automation/handoffs/pre-phase10/PHASE10_BASELINE.md @@ -4,7 +4,7 @@ Application baseline: **5032ccb41514807c8ca3008c24ca6326be1170de**, branch **tes The handoff checkpoint8804231be4e7c309a62d9d6e7d07c9ae0809bc3c was normally pushed and independently read back. Later handoff commits must also be published and verified. The **final integration ref is the resolved clean published HEAD containing this package**; obtain its exact hash with Git and bind the protected owner decision to it. A file cannot contain its own Git commit hash. ACCEPTANCE.json therefore distinguishes the frozen tested application baseline, capture-time HEAD/remote observation and required current consumption checks. Documentation-only descendants are bounded to `docs/automation/handoffs/pre-phase10/`; application or existing-test changes invalidate that shortcut and require fresh affected evidence. -The separate controller snapshot is c1663df44ca54eb1e6fad8facfcbc2d5eb5db8c8, based on5032ccb. Its branch is not modified here. The operator must use its existing signed policy-update/configure process to adopt the final approved integration baseline/context artifacts **before real execution**, qualify its runtime/test adapter and obtain the required entry approval. Do not edit its policy silently or run another controller. No baseline replacement after started work is authorised by this package. +The separate controller's final inspected snapshot is140e182516e86c8718054cf0907593fcd6a38aa7, descended from initially inspected c1663df and based on5032ccb. [CONTROLLER_ADDENDUM.md](CONTROLLER_ADDENDUM.md) distinguishes new MXC canary PASS from still-missing actual key/sign-in/runtime activation and test adapter. Its branch is not modified here. The operator must use its existing signed policy-update/configure process to adopt the final approved integration baseline/context artifacts **before real execution**, qualify its current context/test adapter and obtain the required entry approval. Do not edit its policy silently or run another controller. No baseline replacement after started work is authorised by this package. GJ-00 planning local/remote0ec9f98e6ed4a646fc5e017d8eb6fade07653f37 is separately verified. Relative to5032ccb, the integration and planning branches have18 and2 unique commits respectively. Neither is a safe blind replacement for the other. No merge/cherry-pick was performed. Future authorised integration must reconcile the planning documents against the later accepted application source. diff --git a/docs/automation/handoffs/pre-phase10/PLAN.md b/docs/automation/handoffs/pre-phase10/PLAN.md index 05342fa..d787baf 100644 --- a/docs/automation/handoffs/pre-phase10/PLAN.md +++ b/docs/automation/handoffs/pre-phase10/PLAN.md @@ -24,12 +24,12 @@ No Phase 10, later feature work, main merge, production operations, destructive ## Checkpoints -- [ ] AUTO-H01: capture clean starting source/ancestry/remote/session observations; reconcile original CV-UX/import/QA/RD21/Phase9/Phase10 gates and committed orchestrator policy. Produce capability traceability and authority register. -- [ ] AUTO-H02/H03: investigate unchanged S01 PDF failures using actual synthetic rendered bytes, preserve the original oracle, nominate only confirmed formatting defects; run safe parser/model/security checks with existing immutable artifacts. Prepare labelled visual comparison artifacts. No CV-model activation or semantic PASS by inference. -- [ ] AUTO-H04/H05: produce prioritised owner scenarios with blocking scope; diagnose DNS/TCP/HTTPS/TLS/Git separately, normal-push this branch if reachable, inspect GJ-00 ref without changing it. -- [ ] AUTO-H06: run fresh applicable backend/frontend/browser/Docling/MariaDB/RD21/Python/build/type/lint/security/preservation lanes in isolated fixtures. Capture native commands/exits/reports/test identities/source hashes; retain failures and compare historical counts separately. -- [ ] AUTO-H07: create HANDOFF.md, ACCEPTANCE.json, GATES.json, BLOCKERS.json, TEST_EVIDENCE.json, MANUAL_ACCEPTANCE.md, PHASE10_BASELINE.md, READY_TO_RUN.md, HANDOFF_SCHEMA.json. Add minimal schema/evidence verification and negative tests proving missing/tampered/wrong-source reports or fake owner approvals cannot authorise execution. -- [ ] AUTO-H08: record exact candidate/retain inventory, roadmap stages05–11 and separately tracked initiatives, independent decisions and owner actions. Review whole package, validate, commit, normal-push/read-back if available; otherwise preserve precise publication blocker. Stop. +- [x] AUTO-H01: capture clean starting source/ancestry/remote/session observations; reconcile original CV-UX/import/QA/RD21/Phase9/Phase10 gates and committed orchestrator policy. Produce capability traceability and authority register. +- [x] AUTO-H02/H03: investigate unchanged S01 PDF failures using actual synthetic rendered bytes, preserve the original oracle, nominate only confirmed formatting defects; run safe parser/model/security checks with existing immutable artifacts. Prepare labelled visual comparison artifacts. No CV-model activation or semantic PASS by inference. +- [x] AUTO-H04/H05: produce prioritised owner scenarios with blocking scope; diagnose DNS/TCP/HTTPS/TLS/Git separately, normal-push this branch if reachable, inspect GJ-00 ref without changing it. +- [x] AUTO-H06: run fresh applicable backend/frontend/browser/Docling/MariaDB/RD21/Python/build/type/lint/security/preservation lanes in isolated fixtures. Capture native commands/exits/reports/test identities/source hashes; retain failures and compare historical counts separately. +- [x] AUTO-H07: create HANDOFF.md, ACCEPTANCE.json, GATES.json, BLOCKERS.json, TEST_EVIDENCE.json, MANUAL_ACCEPTANCE.md, PHASE10_BASELINE.md, READY_TO_RUN.md, HANDOFF_SCHEMA.json. Add minimal schema/evidence verification and negative tests proving missing/tampered/wrong-source reports or fake owner approvals cannot authorise execution. +- [x] AUTO-H08: record exact candidate/retain inventory, roadmap stages05–11 and separately tracked initiatives, independent decisions and owner actions. Review whole package, validate, commit, normal-push/read-back if available; otherwise preserve precise publication blocker. Stop. Final publication/cleanliness is resolved dynamically after the containing commit, not self-asserted by a hash inside it. ## Initial rulings @@ -40,3 +40,9 @@ The existing controller's result/backlog schemas are not acceptance-package sche The initial commit normalised the copied request's CRLF bytes. Scoped .gitattributes now preserves the original request and hash-indexed package bytes exactly across checkouts; no instruction or acceptance criterion is changed. Native evidence is compressed individually for portable verification rather than relying on ignored files in another worktree. Existing Phase9 authority allows genuinely unfinished human checks as release debt and individually scoped conditional development; it does not grant broad Phase10 entry or accept unresolved security risks. Exact candidate approval and unused-caller proof remain mandatory. This handoff can be READY as evidence while Phase10 remains BLOCKED. + +## Final verification and review + +All safely achievable checkpoints completed; completion of the evidence task does not complete the outstanding gates. The final combined18 parser/schema/source/authority/package-negative tests passed and supersede bootstrap7. Native required-readiness exit3 and RTK-wrapper exit1 were independently distinguished. Fresh-context whole-package review found no actionable defects; its scope included source/report/exit binding, approval boundaries, decompression/path limits, temporary-directory cleanup and84 visual ZIP entries matching manifest hashes. The reviewer did not rerun product/production/human tests or grant protected approval. Final publisher must verify clean current HEAD and exact remote equality. + +The external controller advanced during this task; CONTROLLER_ADDENDUM.md records the final read-only140e182 snapshot and narrower remaining actual-key/sign-in/context gates. No controller operation occurred here. Updated package text uses LF except existing CRLF files and the exact byte-preserved owner request; compressed native artifacts retain original bytes. No application or pre-existing test source was changed. diff --git a/docs/automation/handoffs/pre-phase10/QUALIFICATION_FAILURES.md b/docs/automation/handoffs/pre-phase10/QUALIFICATION_FAILURES.md index 8800840..d2a7c5f 100644 --- a/docs/automation/handoffs/pre-phase10/QUALIFICATION_FAILURES.md +++ b/docs/automation/handoffs/pre-phase10/QUALIFICATION_FAILURES.md @@ -7,7 +7,9 @@ Failed attempts are not deleted, counted as passing tests or hidden by retries. | post-01 | Temporary proxy exited before any browser case; immediate port lookup raised KeyError | A separate reproduction retained nginx's exact `mkdir /var/cache/nginx/fastcgi_temp: Read-only file system` error. The one-off fixture omitted FastCGI/uwsgi/scgi paths. post-02 points all temporary paths into the existing bounded `/tmp` mount and checks startup state. Root stays read-only; no application/configuration or test assertion changed | | proxy-reproduction-02 | Expected diagnostic exit1 before tests | Exact logs/state and owned-resource cleanup retained; not a product failure or extra test case | | post-02 Linux build | The runner incorrectly supplied an output outside `.artifacts/cv-ux-01`; existing helper rejected it before build | linux-post-03 resumes only the unfinished Linux/audit work under a fresh allowed child. The helper guard was preserved; already passing import/MariaDB/Windows lanes were not rerun or double-counted | -| Revised S01 oracle | Windows8/36 and the separately recorded Linux result; original2mm coordinate threshold unchanged | Content, name wrapping, sidebar raster and visible-ink diagnostics are distinct evidence. No golden/tolerance change or aesthetic self-approval | +| linux-post-03 collector | Native build and8 Linux browser cases passed; follow-up checker targeted nonexistent `templates` instead of actual `template-library` | linux-pdf-post-04 runs only unfinished PDF/audit checks against the actual corpus. No duplicate Linux browser total or application change | +| Initial portable export | Raw Playwright JSON with inline screenshots exceeded the verifier's8MiB decompression limit | Original raw files remain untouched. Portable projections remove only inline attachment body strings, retaining all cases/status/errors/retries/counters and a per-body/source/projection hash audit. Visual PDFs/images are separately packaged. The limit stays enforced | +| Revised S01 oracle | Windows8/36 and Linux16/36 pass; original2mm coordinate threshold unchanged | Remaining28/20 failures are S01-only. Content, name wrapping, sidebar raster and visible-ink diagnostics are distinct evidence. No golden/tolerance change or aesthetic self-approval | | Isolated real CV-model probe | All3 synthetic responses rejected with ValueError | No model/validator replacement or activation. Compatibility/semantic accuracy remains BLOCKED; process exit0 means the measurement completed | | Initial handoff-validator RED | New tests failed because implementation module was absent | Native parser/hash/approval tests implemented and rerun; final unit/integration results supersede overlapping focused runs, without adding them | diff --git a/docs/automation/handoffs/pre-phase10/READY_TO_RUN.md b/docs/automation/handoffs/pre-phase10/READY_TO_RUN.md index 005bd80..80ebeda 100644 --- a/docs/automation/handoffs/pre-phase10/READY_TO_RUN.md +++ b/docs/automation/handoffs/pre-phase10/READY_TO_RUN.md @@ -9,18 +9,18 @@ Before the separate controller starts anything, its operator must independently: 3. Obtain a protected `phase10-development-entry` approval bound to the **resolved final published commit**, exact candidate scope, current policy/prompt and artifact hashes. No approval was supplied to this handoff, and none is generated. A worker-written GO or signed-looking JSON is not approval. 4. Establish concrete unused caller/route/old-data proof, affected57-group/34-route preservation, rollback and candidate tests before any removal. Current inventory has **no approved removal**. Retain legacy CV design/run behavior, aliases, revision/persistence contracts, SQLite and migrations. 5. Resolve affected S01/rendering acceptance or obtain an explicit protected applicability decision supported by unchanged original failures and real visual evidence. Do not silently reinterpret a required automated failure as a deferral. Complete applicable human checks; existing release-only debt does not independently forbid unrelated assessment, but also does not grant implementation authority. -6. Qualify the separate controller's native sandbox/host/process/secret/read/egress/control-plane boundary and install/approve the actual stage composite test adapter. Its synthetic48+6 test evidence and static queue validity do not qualify real roadmap execution. This workstream did not modify or run it. +6. Qualify the separate controller's actual owner key, dedicated sign-in and fresh current execution context, then install/approve the real stage composite test adapter. The latest inspected140e182 single-user mode reports69 external Python cases (includes the earlier48),6 signature cases and actual MXC canary PASS; actual owner key/authentication/activation remain missing. Canary PASS and static queue validity do not qualify real roadmap execution. See CONTROLLER_ADDENDUM.md; this workstream did not modify or run it. 7. Reconcile individual conditional debt with the existing signed policy. Current checkpoint deferrableGates arrays are empty. Any future policy/conditional-deferral requires the controller's protected approval flow and cannot override a mandatory automated requirement. Keep hosted CI BLOCKED until actual isolated execution and cleanup proof; keep CV AI disabled and production NO-GO. Local package checks: ```powershell -rtk proxy node --test docs/automation/handoffs/pre-phase10/verify.test.mjs +rtk proxy node --test docs/automation/handoffs/pre-phase10/verify.test.mjs docs/automation/handoffs/pre-phase10/package.test.mjs rtk proxy node docs/automation/handoffs/pre-phase10/verify.mjs rtk proxy node docs/automation/handoffs/pre-phase10/verify.mjs --verify-remote rtk proxy node docs/automation/handoffs/pre-phase10/verify.mjs --require-ready ``` -Normal validation exit0 means evidence integrity is consistent; it prints Phase10 BLOCKED. `--require-ready` deliberately exits3 for this unapproved snapshot. This verifier does not run tests, launch a queue, validate/issue owner signatures or modify the controller. The controller must perform its own protected checks and fresh candidate verification. If it lacks these capabilities, stop rather than trusting a repository status. +Normal validation exit0 means evidence integrity is consistent; it prints Phase10 BLOCKED. `--require-ready` deliberately produces native Node exit3 for this unapproved snapshot (the installed RTK wrapper maps nonzero child exits to1). This verifier does not run tests, launch a queue, validate/issue owner signatures or modify the controller. The controller must perform its own protected checks and fresh candidate verification. If it lacks these capabilities, stop rather than trusting a repository status. No protected owner key/token, credentials, model cache or production endpoint belongs in this package. The separate worktree was inspected through committed Git objects only. No second orchestrator, scheduled automation, main merge, deployment or Phase10 implementation was started. diff --git a/docs/automation/handoffs/pre-phase10/REPRODUCE.md b/docs/automation/handoffs/pre-phase10/REPRODUCE.md new file mode 100644 index 0000000..2d26916 --- /dev/null +++ b/docs/automation/handoffs/pre-phase10/REPRODUCE.md @@ -0,0 +1,22 @@ +# Reproducing and consuming this evidence + +Start in a clean checkout of the **resolved published** `test/pre-phase10-ux-acceptance` branch, containing5032ccb. Do not reset another worktree or assume main contains the application baseline. Use repository-supported tools and isolated fixtures; no production database, service, model cache or credentials are needed. + +```powershell +rtk proxy git status --short +rtk proxy git rev-parse HEAD +rtk proxy git merge-base --is-ancestor 5032ccb41514807c8ca3008c24ca6326be1170de HEAD +rtk proxy node --test docs/automation/handoffs/pre-phase10/verify.test.mjs docs/automation/handoffs/pre-phase10/package.test.mjs +rtk proxy node docs/automation/handoffs/pre-phase10/verify.mjs --verify-remote +rtk proxy node docs/automation/handoffs/pre-phase10/verify.mjs --require-ready +``` + +The final command must fail closed and report BLOCKED/eligible:false. The native Node exit is3; the installed RTK wrapper maps that child failure to shell exit1. Both were observed separately. Normal validation exit0 confirms internal evidence consistency only. Run the installed frontend dependencies' Ajv validator through the existing module; do not fetch dependencies or unapproved runtime artifacts implicitly. Node24.19.0, .NET SDK9.0.317, Python3.12.10 and Docker29.7.2 were observed. Absolute native report paths are producer metadata; compressed artifact paths resolve relative to this directory. + +The four primary structured files ACCEPTANCE/GATES/BLOCKERS/TEST_EVIDENCE validate against HANDOFF_SCHEMA draft7. The verifier checks each compressed artifact SHA/size, bounded decompression, native test counters and membership, exit-code process pointer, commit binding, source-before/after equality and current tracked source scope, ordinary discovery coverage, verifier code committed identity and protected decision invariants. Portable Playwright projections externalize **only** inline attachment body strings; an indexed audit retains original report SHA/path and each omitted body's SHA/length. Case/status/error/retry/stat data is retained. Original raw reports remain unchanged under the producer artifact root. These projections and review JPEGs must not be described as byte-identical originals or used to waive a policy requiring the original attachment payloads. + +For fresh application execution, inspect the exact process artifact referenced by each report, including argv, timestamps, exit and executedFromCommit. The one-off bounded producer scripts are also indexed; they are QA records, not a new roadmap executor. Restore the same immutable fixture/image inputs and use a **new** allowed output directory. Do not blindly replay destructive setup, reuse a previous run's paths or accept stored PASS as a new run. Relevant repository lanes include backend `dotnet test`, UI `npm test -- --watchAll=false --runInBand`, `npm run typecheck`, lint/build, four ordinary Playwright shards with `--retries=0`, isolated import/MariaDB and native Linux renderer helpers, and Python offline/real-Docling suites. The process records carry exact filters/configuration rather than an approximate command assembled from historical totals. + +Source-binding excludes only the new handoff package; any change in the indexed application/test/helper/previous acceptance scope fails validation until affected evidence is rerun and reviewed. Its frozen baseline is5032ccb; `executedFromCommit` preserves the actual later documentation-only execution commit. The verifier has its own immutable verifierCommit/source map. A later documentation commit does not pretend the earlier tests executed at that future hash. Actual final Git cleanliness/publication must be checked at consumption and bound into any protected approval. + +Do not add bootstrap unit7 to final combined validator totals, repeated Python console97 to native JUnit97, or the Linux eight browser cases to each PDF recovery attempt. Native document measurement totals are not test-case totals. See QUALIFICATION_FAILURES.md before interpreting intermediate exit1 records. Source manifests and artifact hashes establish correspondence and detect accidental drift; they are **not cryptographic owner attestation** and cannot defeat a malicious writer who controls every evidence file. The independent protected controller must retain its own trust roots, report generation/review and approval process. diff --git a/docs/automation/handoffs/pre-phase10/TEST_EVIDENCE.json b/docs/automation/handoffs/pre-phase10/TEST_EVIDENCE.json new file mode 100644 index 0000000..4feeb70 --- /dev/null +++ b/docs/automation/handoffs/pre-phase10/TEST_EVIDENCE.json @@ -0,0 +1,2166 @@ +{ + "schemaVersion": 1, + "workstreamId": "AUTOMATION-HANDOFF-01", + "kind": "TEST_EVIDENCE", + "testedCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "verifierCommit": "c16a66e2c85b35caa5a4460c186dc77d28e31ccb", + "verifierSourceArtifactId": "verifier-source", + "sourceManifestArtifactId": "application-source-before", + "sourceAfterArtifactId": "application-source-after", + "ordinaryDiscoveryArtifactId": "ordinary-discovery", + "ordinaryReportIds": [ + "ordinary-1", + "ordinary-3", + "ordinary-4", + "ordinary-2" + ], + "artifacts": [ + { + "id": "main-processes", + "path": "evidence/main-processes.gz", + "sha256": "d61d0a3b54c6a42a3a82407404348ac817982f4cfa09e7d4d0d4242cfc174284", + "description": "Native source-bound qualification evidence" + }, + { + "id": "main-closure", + "path": "evidence/main-closure.gz", + "sha256": "6177f3803408bf0a8b5dbbc8065f3549d8163647e150dcc17744a7b7459ea0ef", + "description": "Native source-bound qualification evidence" + }, + { + "id": "main-git", + "path": "evidence/main-git.gz", + "sha256": "bffbff1a5fa23574e6cde5b3b9867610a421332165f169302c8b21e00ea6d7ab", + "description": "Native source-bound qualification evidence" + }, + { + "id": "application-source-before", + "path": "evidence/application-source-before.gz", + "sha256": "fdbdef88e182341faae2437127197ee6d60d1439c30473401b6b4a0c0791d99e", + "description": "Native source-bound qualification evidence" + }, + { + "id": "application-source-after", + "path": "evidence/application-source-after.gz", + "sha256": "fdbdef88e182341faae2437127197ee6d60d1439c30473401b6b4a0c0791d99e", + "description": "Native source-bound qualification evidence" + }, + { + "id": "ordinary-discovery", + "path": "evidence/ordinary-discovery.gz", + "sha256": "25c22957b44bdcc37abddf68c3a760744b426234d1bca8e616f91bd4b2a16526", + "description": "Native source-bound qualification evidence" + }, + { + "id": "backend-native", + "path": "evidence/backend-native.gz", + "sha256": "ddaf18d82b42a264004d73c16a1ec802c71e5cf9f8ad0c2ba68fc24c2af7c74d", + "description": "Native source-bound qualification evidence" + }, + { + "id": "frontend-native", + "path": "evidence/frontend-native.gz", + "sha256": "f50b244b383d0faf2bab0863cd7494a4dc417c3ffe23127e100a940d2cb47c6c", + "description": "Native source-bound qualification evidence" + }, + { + "id": "typecheck-native", + "path": "evidence/typecheck-native.gz", + "sha256": "69785b4c92c52a672b306df65bdacf07f335d0046df12ac11a2906938db394ee", + "description": "Native source-bound qualification evidence" + }, + { + "id": "lint-native", + "path": "evidence/lint-native.gz", + "sha256": "70335ab21127cfe30ee80c025401b632f2b7be204fcbb5f2a9d9f2982008eb53", + "description": "Native source-bound qualification evidence" + }, + { + "id": "build-native", + "path": "evidence/build-native.gz", + "sha256": "57ff3d63c2ff586a3668058d0ff57558babec3775f89b238396598dd3fd55e28", + "description": "Native source-bound qualification evidence" + }, + { + "id": "api-build-native", + "path": "evidence/api-build-native.gz", + "sha256": "42741353464755ad01afd3449c7e130968159cf080fe22ec120e1000ec77197d", + "description": "Native source-bound qualification evidence" + }, + { + "id": "ordinary-1-native-projection-audit", + "path": "evidence/ordinary-1-native-projection-audit.gz", + "sha256": "624e38de197912863b6fb9e772cb2c0449fdb266f51f0843a48202a947ca620b", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "ordinary-1-native", + "path": "evidence/ordinary-1-native.gz", + "sha256": "dc0271c9f55eae9f1e8c72aca106057323cc2e4b89a7ca01334ea50eed124780", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "fd928206ca62db1bfde92ea9a1ad2df518e2a279a6d4cae70f883418e6f3a867", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/ordinary-1.json", + "externalizedAttachmentCount": 453, + "projectionAuditArtifactId": "ordinary-1-native-projection-audit" + }, + { + "id": "ordinary-3-native-projection-audit", + "path": "evidence/ordinary-3-native-projection-audit.gz", + "sha256": "c1a898f07c781220d0bb920f74d573e316f7db876d1a6b401c101c3794056922", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "ordinary-3-native", + "path": "evidence/ordinary-3-native.gz", + "sha256": "4253e06b33ff51ff7aa73849e57d9d3012d057e4aad6609a004191adf8bf939b", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "9987b586d1ee7a98207b5d7198bfb8867f322eece456740436bd955d215b6a2b", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/ordinary-3.json", + "externalizedAttachmentCount": 483, + "projectionAuditArtifactId": "ordinary-3-native-projection-audit" + }, + { + "id": "ordinary-4-native-projection-audit", + "path": "evidence/ordinary-4-native-projection-audit.gz", + "sha256": "b445235326971482e93e346aa3fb20e8d57073aaa4f6c40fad4555376cc06740", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "ordinary-4-native", + "path": "evidence/ordinary-4-native.gz", + "sha256": "683a185b98a16825599e4cc4f5281ba9a5765c56985ef7c6ca4cb6d52b7d4c60", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "0bc9d36cb1333f6752bfb0409d1a65ba2ddd4b941719c83ea83a60a8b434fd10", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/ordinary-4.json", + "externalizedAttachmentCount": 371, + "projectionAuditArtifactId": "ordinary-4-native-projection-audit" + }, + { + "id": "ordinary-2-native-projection-audit", + "path": "evidence/ordinary-2-native-projection-audit.gz", + "sha256": "e7641063ed49e0e9bf93f0dc9d6cae656b23e8d83322bb4dbed62179a8f61673", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "ordinary-2-native", + "path": "evidence/ordinary-2-native.gz", + "sha256": "6181ee5c3b72d7bd9595b6134c81800468fb323a5614fcd4c2a25e20c8181c93", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "4b8825ed6129d18a6f604bdfbb20f58b0718a7f17085602e21d3225ea8e056df", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/ordinary-2.json", + "externalizedAttachmentCount": 421, + "projectionAuditArtifactId": "ordinary-2-native-projection-audit" + }, + { + "id": "ai-native-projection-audit", + "path": "evidence/ai-native-projection-audit.gz", + "sha256": "93270891837947cf209125a00e7ebb1d551d6a4c975575bc434cdabd4600a759", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "ai-native", + "path": "evidence/ai-native.gz", + "sha256": "17865ee61e43bc169f8e3fcf549010979dc06dfd7ce400ff5a810ded2075ef15", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "d5123c058281dade2ff93b83e8b8204d8dd0298fa0c5e083be5764b7c84d9028", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/ai.json", + "externalizedAttachmentCount": 1, + "projectionAuditArtifactId": "ai-native-projection-audit" + }, + { + "id": "auth-native-projection-audit", + "path": "evidence/auth-native-projection-audit.gz", + "sha256": "78540b9a14c2d61ecd484b81a056da588fe0e56665857316000bd0e44e7f995e", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "auth-native", + "path": "evidence/auth-native.gz", + "sha256": "2211717af690f450578ab7136a7b8840b263d92e9cf6b59541ba0300fa28f435", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "f42d992c0277f757ef4faaff1c08ba697ac979107d2dafd6f3938a73b956f230", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/auth.json", + "externalizedAttachmentCount": 1, + "projectionAuditArtifactId": "auth-native-projection-audit" + }, + { + "id": "rate-native-projection-audit", + "path": "evidence/rate-native-projection-audit.gz", + "sha256": "ab4d028352f17d307971375f2b10903f49073cab96d7c6e3f1c7907108c20b64", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "rate-native", + "path": "evidence/rate-native.gz", + "sha256": "0b198448514d670b85ab0c39b1fa18e55d7c1fdcf001be676f5a540679a686e4", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "53340b690e7a754a0da4cec7bf3c7baf43b24cb7aeaf3c337d45b3d7d7142227", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/rate.json", + "externalizedAttachmentCount": 3, + "projectionAuditArtifactId": "rate-native-projection-audit" + }, + { + "id": "ingress-native", + "path": "evidence/ingress-native.gz", + "sha256": "68481bf3f5919d5a445566e9217749d87f227c81e52736e6e2ebf6bbe83d3942", + "description": "Native source-bound qualification evidence" + }, + { + "id": "pdf-admission-native-projection-audit", + "path": "evidence/pdf-admission-native-projection-audit.gz", + "sha256": "1985c363000b6608deb4bfdb578539b93143bfd38e910cf1e27dec5618c881c2", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "pdf-admission-native", + "path": "evidence/pdf-admission-native.gz", + "sha256": "a806dcddf5cf5c3ab3d1cc64306d5462a9fc2545d19756dae8d80a7403072f0c", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "81ab471b38ae48b2f077ae394ed6918fbb915e1ef5bc3ef317777e127b2a0b51", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/pdf-admission.json", + "externalizedAttachmentCount": 1, + "projectionAuditArtifactId": "pdf-admission-native-projection-audit" + }, + { + "id": "preferences-native-projection-audit", + "path": "evidence/preferences-native-projection-audit.gz", + "sha256": "2eec2ab7d42dc89a2034b2bbab8813c4fd333a8272a8bd2cafc2cf3acef6e54c", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "preferences-native", + "path": "evidence/preferences-native.gz", + "sha256": "dde75b4f5996721d2aa5fe3d16cf06e67c79b9fa6bfdedf01b04bb35b591aa6e", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "0267d6cc2b74fa1fd72b9b6c17bbe84418c8a85f9c8466fb4bf9e09796a61395", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/preferences.json", + "externalizedAttachmentCount": 17, + "projectionAuditArtifactId": "preferences-native-projection-audit" + }, + { + "id": "rd21-native-projection-audit", + "path": "evidence/rd21-native-projection-audit.gz", + "sha256": "900848a367e05719374c9e83c57bfc55a94d4d69b48891dd7d4172c66d3222e8", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "rd21-native", + "path": "evidence/rd21-native.gz", + "sha256": "ebaf9620d02685437d7706998f08a1e715b880c516565b705ae3580fac35c670", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "31ed503aa31cbb78188c3363c1116c58a780cb3e3f5b33b4e40353cd855e173d", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/rd21.json", + "externalizedAttachmentCount": 6, + "projectionAuditArtifactId": "rd21-native-projection-audit" + }, + { + "id": "diagnostics-native-projection-audit", + "path": "evidence/diagnostics-native-projection-audit.gz", + "sha256": "7e2ffb89d7bc70f6871bee14af7eeb2fe0823643248902c241e33bfea74dc6c0", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "diagnostics-native", + "path": "evidence/diagnostics-native.gz", + "sha256": "0e6841881be8473021ecc9b879f8dca23e939cd59b39822e4f4abfb7b3db0641", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "4abe26834096cccb8afa37ceaa24a44f0790e8304f8343fc6d07cd66b89e572a", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/diagnostics.json", + "externalizedAttachmentCount": 18, + "projectionAuditArtifactId": "diagnostics-native-projection-audit" + }, + { + "id": "volume-native-projection-audit", + "path": "evidence/volume-native-projection-audit.gz", + "sha256": "31e66b84141c76d0c8ddbad5dae44486bcf2df5d7bd65601ca4459b3c060bec0", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "volume-native", + "path": "evidence/volume-native.gz", + "sha256": "edd521fcff38dc6910a1b2c584052025e87902c87b4681cab928b0705b1c240d", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "74d06674481f78d821eb04c656582c03a3628e04eb3dca7fe36ebc928a69134d", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/volume.json", + "externalizedAttachmentCount": 3, + "projectionAuditArtifactId": "volume-native-projection-audit" + }, + { + "id": "rd21-volume-native-projection-audit", + "path": "evidence/rd21-volume-native-projection-audit.gz", + "sha256": "311320dbce7f7c2be67bc2519bb7e326e1f4ea9c3c23e277036df4681c59f427", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "rd21-volume-native", + "path": "evidence/rd21-volume-native.gz", + "sha256": "95bc789656bf5add820ba973a871e37c29ddd300e91e33109e3a3a68ffdbb40e", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "b051d0dc7370af5f0161889d715b89becf1331ac1811ab86b7300fa26b9444c5", + "sourceRelativePath": ".artifacts/automation-handoff-01/regression-01/rd21-volume.json", + "externalizedAttachmentCount": 3, + "projectionAuditArtifactId": "rd21-volume-native-projection-audit" + }, + { + "id": "post-processes", + "path": "evidence/post-processes.gz", + "sha256": "71b2089ae193c71ba2ab743c9a0c37ff7cc4b17e36b7cefad434e0f17b5f174a", + "description": "Native source-bound qualification evidence" + }, + { + "id": "docling-fixture", + "path": "evidence/docling-fixture.gz", + "sha256": "0e55057396eefb8baba1f1902c8963459fee825a3f3ae0330f97dfa262dd4a32", + "description": "Native source-bound qualification evidence" + }, + { + "id": "docling-cleanup", + "path": "evidence/docling-cleanup.gz", + "sha256": "c06b8d608d532eeb82b9deec10b48a7adcc6492f080a82e2d84ecffbaf775884", + "description": "Native source-bound qualification evidence" + }, + { + "id": "docling-import-native-projection-audit", + "path": "evidence/docling-import-native-projection-audit.gz", + "sha256": "871d50cbfad75828ddd05b359e84baef03976eb2851729ff5fc062eaa0ab3c99", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "docling-import-native", + "path": "evidence/docling-import-native.gz", + "sha256": "6caa7666a2acce4f1888b2136216aa4e0b2364fb0604bcd5eac224f8c72a110f", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "4aafd682a2a72ac1862d97cd73bf1ade5aa40fadc0bd93be18e9211abe0d34d0", + "sourceRelativePath": ".artifacts/automation-handoff-01/post-02/docling-import.json", + "externalizedAttachmentCount": 3, + "projectionAuditArtifactId": "docling-import-native-projection-audit" + }, + { + "id": "cv-integration-qa-native-projection-audit", + "path": "evidence/cv-integration-qa-native-projection-audit.gz", + "sha256": "2b5518d69fe5a2b5d27f8662e14e54ac3327b0f7330d0bcb6c373930229d21a6", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "cv-integration-qa-native", + "path": "evidence/cv-integration-qa-native.gz", + "sha256": "4a91c287643675b33088e7b102ce55c312b28928ea44452ae2992d573ecb8b48", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "123fe1e2beb67af7180f01f8b9a2c430f3413be20af45912163b7ba4dab0064e", + "sourceRelativePath": ".artifacts/automation-handoff-01/post-02/cv-integration-qa.json", + "externalizedAttachmentCount": 19, + "projectionAuditArtifactId": "cv-integration-qa-native-projection-audit" + }, + { + "id": "long-import-native-projection-audit", + "path": "evidence/long-import-native-projection-audit.gz", + "sha256": "445708097680da84bd071ed39cbbd58b91654b9a0fa3a22dff58973e486dbbe3", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "long-import-native", + "path": "evidence/long-import-native.gz", + "sha256": "da796d8eafd8d57bed46cdb332250baec38463b1ac3026b28bb17a1658833f00", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "78485381f975223c1aa3a6d8e5eb2d7d3c2ccfbabf4edda3905a98c10840c5ec", + "sourceRelativePath": ".artifacts/automation-handoff-01/post-02/long-import.json", + "externalizedAttachmentCount": 3, + "projectionAuditArtifactId": "long-import-native-projection-audit" + }, + { + "id": "mariadb-provider-native", + "path": "evidence/mariadb-provider-native.gz", + "sha256": "aa015692271dc48382de2a24ee21d30207927982b7421d1e62aaddcef8e2ce3a", + "description": "Native source-bound qualification evidence" + }, + { + "id": "mariadb-provider-lifecycle", + "path": "evidence/mariadb-provider-lifecycle.gz", + "sha256": "f78148890866dc42eb494639d5c694206057c894d17609c436e2c0e0d215bfcf", + "description": "Native source-bound qualification evidence" + }, + { + "id": "mariadb-browser-processes", + "path": "evidence/mariadb-browser-processes.gz", + "sha256": "cd2e95a759a0b943463efbbfd4d53080ef47517e1817f038a5458db8c2073827", + "description": "Native source-bound qualification evidence" + }, + { + "id": "mariadb-browser-native-projection-audit", + "path": "evidence/mariadb-browser-native-projection-audit.gz", + "sha256": "77e17637638d6b08c54bf3c8dc2c07e9fb05642cdd5f533bd58d8eae53d0f476", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "mariadb-browser-native", + "path": "evidence/mariadb-browser-native.gz", + "sha256": "54cc547d3f1e9899a066fe925786acb2f06b10492d5ace924bedae652da704c4", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "9a120b65941c138fb57db712dcdae617a066faa4a4478449329fd0df6ccc9960", + "sourceRelativePath": ".artifacts/automation-handoff-01/mariadb-browser-01/mariadb-browser.json", + "externalizedAttachmentCount": 1, + "projectionAuditArtifactId": "mariadb-browser-native-projection-audit" + }, + { + "id": "mariadb-observations-native-projection-audit", + "path": "evidence/mariadb-observations-native-projection-audit.gz", + "sha256": "4a89b0b42d2a9ce9a2eeab8f400197c8cac7a69dbb3ad6550d1a08da0e35c862", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "mariadb-observations-native", + "path": "evidence/mariadb-observations-native.gz", + "sha256": "370f873492bebda5f56808d970dbdd860e7c0ac01f2926b4cb47e69271d5f253", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "cbd6966d66e5ab874d6c6622639c2ccda0032c6cddbb52aa5c3fa43c0ceb8265", + "sourceRelativePath": ".artifacts/automation-handoff-01/mariadb-browser-01/mariadb-observations.json", + "externalizedAttachmentCount": 2, + "projectionAuditArtifactId": "mariadb-observations-native-projection-audit" + }, + { + "id": "mariadb-browser-cleanup", + "path": "evidence/mariadb-browser-cleanup.gz", + "sha256": "28752f2a6de76988b38b63a836683d5231c83ac090090c784f71cd8611d4b6e6", + "description": "Native source-bound qualification evidence" + }, + { + "id": "independent-processes", + "path": "evidence/independent-processes.gz", + "sha256": "39c403b70b17e508e7989849a6bb4e063391ddaa9c9cfafa9443db47ad5c7507", + "description": "Native source-bound qualification evidence" + }, + { + "id": "benchmark-new-native", + "path": "evidence/benchmark-new-native.gz", + "sha256": "374e44382beb186c3b8b27fbc65ac6b295a8c0de21c30fe5281c02870de11e35", + "description": "Native source-bound qualification evidence" + }, + { + "id": "benchmark-original-native", + "path": "evidence/benchmark-original-native.gz", + "sha256": "6624b99f3baebc9dae2966466a5db978c2e8b53a0d55cedb5d15d2b21e9a8f54", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-helper-native", + "path": "evidence/linux-helper-native.gz", + "sha256": "4e5034ac1a2cd5d8ac6338a22fa58f546cbf08d144daf086c1cb5ff8e4e9872e", + "description": "Native source-bound qualification evidence" + }, + { + "id": "node-helpers-native", + "path": "evidence/node-helpers-native.gz", + "sha256": "58e9349318dca9510f07876cfe3bad0009ef5ed95158efdce462b4847580f7f9", + "description": "Native source-bound qualification evidence" + }, + { + "id": "npm-audit-native", + "path": "evidence/npm-audit-native.gz", + "sha256": "a14cd900020a3fdf39eb92c62f55a68d547c808e6ecd2444671cc1ede3ff7be4", + "description": "Native source-bound qualification evidence" + }, + { + "id": "npm-production-audit-native", + "path": "evidence/npm-production-audit-native.gz", + "sha256": "8e37f12747b3abcaaa9bab9072a3fed2aae35652e13e9454621ecd12f326020d", + "description": "Native source-bound qualification evidence" + }, + { + "id": "pip-audit-native", + "path": "evidence/pip-audit-native.gz", + "sha256": "0b58f099b5672a97f7f7a52d077413a21a5fbea42aef73f55333105fb5a7b456", + "description": "Native source-bound qualification evidence" + }, + { + "id": "python-junit-processes", + "path": "evidence/python-junit-processes.gz", + "sha256": "26873ae408f1e6be62f514c1124e0bc8648d959d2a21dfa28b3a4faaf079beee", + "description": "Native source-bound qualification evidence" + }, + { + "id": "python-offline-native", + "path": "evidence/python-offline-native.gz", + "sha256": "3950c5e28fbf74ad5ac66d334b47a5cb6d77f02669b5fb01b346fff1b222df09", + "description": "Native source-bound qualification evidence" + }, + { + "id": "python-docling-native", + "path": "evidence/python-docling-native.gz", + "sha256": "acfe494e0b0ec24665a1a2db28eaa9066e6ac656cb6a5a710788fde13e0c5a05", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-pdf-processes", + "path": "evidence/linux-pdf-processes.gz", + "sha256": "203e57fa7d580fff1fbc837ff542f019f2d7d707b3fce7bd25f744044cc2ac74", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-render-processes", + "path": "evidence/linux-render-processes.gz", + "sha256": "3a608fda5389c8b3f49469d5fb42742efb7148b6d43db42bd9209cbc5165f494", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-browser-native-projection-audit", + "path": "evidence/linux-browser-native-projection-audit.gz", + "sha256": "3110b4afba8146b88ca801d9def164bbbe791b7b0b588b933ac08236f22fd660", + "description": "Transport audit only: inline bodies externalized; native results, errors, retries and identities unchanged" + }, + { + "id": "linux-browser-native", + "path": "evidence/linux-browser-native.gz", + "sha256": "4faff80e27615df7f7bf8eefca2aafd8611667dd2864412f4daa90563e5396a4", + "description": "Native source-bound qualification evidence", + "projection": "PLAYWRIGHT_INLINE_ATTACHMENT_BODIES_EXTERNALIZED", + "sourceSha256": "375be46e86873152b0b075beca38b3325fd140e479fa0631aeab1a736c4e8c7d", + "sourceRelativePath": ".artifacts/cv-ux-01/automation-handoff-linux-run-01/linux-renderer.json", + "externalizedAttachmentCount": 28, + "projectionAuditArtifactId": "linux-browser-native-projection-audit" + }, + { + "id": "linux-image-build", + "path": "evidence/linux-image-build.gz", + "sha256": "a6627ba04760cf1242c66cec312f28c38ab05f85024c7ba29445909328bb2d52", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-lifecycle", + "path": "evidence/linux-lifecycle.gz", + "sha256": "b243e1c42f78cfbaf176256714e6d9acdc8d18f989c02cd4318fe2e632cf7902", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-native-processes", + "path": "evidence/linux-native-processes.gz", + "sha256": "623547280d8a5769b68df73e8b9f091e1b647f700b21f42ef30cd97c59d15c2b", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-template-oracle-native", + "path": "evidence/windows-template-oracle-native.gz", + "sha256": "235cb551af90c58088e23333feb2bf9c84b7152a0d36323fd55ea4c76ef1cc68", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-template-completeness-native", + "path": "evidence/windows-template-completeness-native.gz", + "sha256": "7420837894f67c5dba8fc97c0967a51c55080b0ef53572f9eba469e2cb6b37de", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-template-name-wrap-native", + "path": "evidence/windows-template-name-wrap-native.gz", + "sha256": "a62887644ecdc97f3cfe664d26b41ab313f2e3de514d1c141d93228c3b60cd98", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-template-name-ink-native", + "path": "evidence/windows-template-name-ink-native.gz", + "sha256": "64e4d37eed1525aca003b2781756715e6f6767e5f70fc5d27a6d8765e09bf1b8", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-template-sidebar-native", + "path": "evidence/windows-template-sidebar-native.gz", + "sha256": "f1c7fa0007b6d4a5cd474ef67155aa2dd2e0f8bae4e16e039107fb21f782f21c", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-template-measurements", + "path": "evidence/windows-template-measurements.gz", + "sha256": "51e45c0e4d8109c5cf21c6ac16d64f5a478c21e53ea082974e717473d6bae575", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-letter-proof-0", + "path": "evidence/windows-letter-proof-0.gz", + "sha256": "63a7983fa7bcd111fcc3dc7a61547c4d19ab7a2601bd1f42984db43dc2f1eda7", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-original-pdf", + "path": "evidence/windows-original-pdf.gz", + "sha256": "5b9b3baa90610b6add9e97bad02b581849d71b07ead730460404ba5ba66448ba", + "description": "Native source-bound qualification evidence" + }, + { + "id": "windows-original-letter", + "path": "evidence/windows-original-letter.gz", + "sha256": "19a0a338844ca489eb45231bc725cab815cfc3c93e3deb4e69ac7327a20e221c", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-template-oracle-native", + "path": "evidence/linux-template-oracle-native.gz", + "sha256": "83a11406a06ce35f4dbaac9fdbf921edf927da6ccaac85299f8b75288c8ebefb", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-template-completeness-native", + "path": "evidence/linux-template-completeness-native.gz", + "sha256": "fec7f65c3a33143c4209a2b334528d18e35e14d8bbb6d205ab4e1ba6dbf7c754", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-template-name-wrap-native", + "path": "evidence/linux-template-name-wrap-native.gz", + "sha256": "a62887644ecdc97f3cfe664d26b41ab313f2e3de514d1c141d93228c3b60cd98", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-template-name-ink-native", + "path": "evidence/linux-template-name-ink-native.gz", + "sha256": "cd269026e2683159c4b668ff4cfb7867030b279e065c69bcf261acf01b58fdbe", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-template-sidebar-native", + "path": "evidence/linux-template-sidebar-native.gz", + "sha256": "f1c7fa0007b6d4a5cd474ef67155aa2dd2e0f8bae4e16e039107fb21f782f21c", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-template-measurements", + "path": "evidence/linux-template-measurements.gz", + "sha256": "1c0d79e0df88e605f7169836f2c95953da7f1c174802134bd69fb3e6dac5983b", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-letter-proof-0", + "path": "evidence/linux-letter-proof-0.gz", + "sha256": "9cee78c33ca44da91340ec2cfb1f1d5a83e248764b890699827388f96e7ade0c", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-original-pdf", + "path": "evidence/linux-original-pdf.gz", + "sha256": "8f895643e25bd578c845c5b475ebda2ec9def7e5949aa48bcdcc0d5da3c8ef8d", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-original-letter", + "path": "evidence/linux-original-letter.gz", + "sha256": "60b51113d1301c46596b9f5d4e8f0da06fa43cd0ab5a657dcfadce472e70c73f", + "description": "Native source-bound qualification evidence" + }, + { + "id": "nuget-audit-native", + "path": "evidence/nuget-audit-native.gz", + "sha256": "383e2751c341b1365495e5f762abeab888bc6c96fcec428873b26af557203c15", + "description": "Native source-bound qualification evidence" + }, + { + "id": "restore-native-apphost-native", + "path": "evidence/restore-native-apphost-native.gz", + "sha256": "718aebf1212811b67da3b12b3ba840d0df6bb93cc8d77401bc23470daeb0d984", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-matching-letters-native", + "path": "evidence/linux-matching-letters-native.gz", + "sha256": "c50cbb0ffa80883482f9d6064c919a9c1cf4acf4e369674755175004a48b561c", + "description": "Native source-bound qualification evidence" + }, + { + "id": "linux-build-native", + "path": "evidence/linux-build-native.gz", + "sha256": "55bfd793014d220a3157e7e150fa032a62a50a8cb308082759fa20aae3e2b6d5", + "description": "Native source-bound qualification evidence" + }, + { + "id": "model-probe-process", + "path": "evidence/model-probe-process.gz", + "sha256": "662f3b702653e43bd014e953d3d465565ba305e1e9dee883632ff13d78fa90e8", + "description": "Native source-bound qualification evidence" + }, + { + "id": "model-probe-cases", + "path": "evidence/model-probe-cases.gz", + "sha256": "515a3dd78bf1f0d2bc33d79d4758b037b20d59b2a17749e6eff1b654dfc63b2e", + "description": "Native source-bound qualification evidence" + }, + { + "id": "model-probe-client", + "path": "evidence/model-probe-client.gz", + "sha256": "1309255705cd4c50c271d5d6051cf8c57a3edd0c32103c9f5b0ebf5ba68777e3", + "description": "Native source-bound qualification evidence" + }, + { + "id": "model-probe-results", + "path": "evidence/model-probe-results.gz", + "sha256": "ccd98c6332655707fc136af55a949a4b6f9bae2a306a900f4df59bfb62370df9", + "description": "Native source-bound qualification evidence" + }, + { + "id": "cv-model-probe-native", + "path": "evidence/cv-model-probe-native.gz", + "sha256": "ccd98c6332655707fc136af55a949a4b6f9bae2a306a900f4df59bfb62370df9", + "description": "Native source-bound qualification evidence" + }, + { + "id": "model-verification", + "path": "evidence/model-verification.gz", + "sha256": "774a893fbf79de71673eb50e9b859a01db02c3f0a7783cee13041dbe64b3a596", + "description": "Native source-bound qualification evidence" + }, + { + "id": "model-verification-after-probe", + "path": "evidence/model-verification-after-probe.gz", + "sha256": "774a893fbf79de71673eb50e9b859a01db02c3f0a7783cee13041dbe64b3a596", + "description": "Native source-bound qualification evidence" + }, + { + "id": "worker-process", + "path": "evidence/worker-process.gz", + "sha256": "0f12dd94538f6cabf4bd906d3a399ab7170e0aad465e4030a14b679583040602", + "description": "Native source-bound qualification evidence" + }, + { + "id": "local-worker-native", + "path": "evidence/local-worker-native.gz", + "sha256": "dd6c6df90f696baba9f46446c3baacc4dc096eb7d46c1a73252b942d8dec4f1b", + "description": "Native source-bound qualification evidence" + }, + { + "id": "installed-python-process", + "path": "evidence/installed-python-process.gz", + "sha256": "054aa4a558cedab7eed846acb5d3f782367db8d9e227d94a91a26ddd968d165a", + "description": "Native source-bound qualification evidence" + }, + { + "id": "installed-python-membership", + "path": "evidence/installed-python-membership.gz", + "sha256": "457fa1ea874f2ad0bac196b1795be46ac741e6fc5a268509de4f652057e27373", + "description": "Native source-bound qualification evidence" + }, + { + "id": "installed-python-advisories-native", + "path": "evidence/installed-python-advisories-native.gz", + "sha256": "bde54fcf0df1ad3c7d3ba1fcebd1966178b9c1c085668806fb358afc79514767", + "description": "Native source-bound qualification evidence" + }, + { + "id": "git-start", + "path": "evidence/git-start.gz", + "sha256": "d2b74334a6ccc54773d986061c95247d6fe31defc906dc0d4b5fe0b4d2b47028", + "description": "Native source-bound qualification evidence" + }, + { + "id": "git-recovered", + "path": "evidence/git-recovered.gz", + "sha256": "d2dee06d13f8c1f4ddcbc9d636b9fc62c9f027bd360a609b51e99576acad82dd", + "description": "Native source-bound qualification evidence" + }, + { + "id": "git-checkpoint", + "path": "evidence/git-checkpoint.gz", + "sha256": "e505fa740db6748bd51746e2226604da7183a5fab94fc90ffdf498cc516acf69", + "description": "Native source-bound qualification evidence" + }, + { + "id": "environment", + "path": "evidence/environment.gz", + "sha256": "f229bb70ffcd4abdd250bb4c5668562b130cb4db8331e3f6d17b822b24be5844", + "description": "Native source-bound qualification evidence" + }, + { + "id": "original-proxy-failure", + "path": "evidence/original-proxy-failure.gz", + "sha256": "fbbca4b0c39818eaa2fcd5055807e211937b0a3af1f91fe5178946885ad5ae39", + "description": "Native source-bound qualification evidence" + }, + { + "id": "proxy-failure-state", + "path": "evidence/proxy-failure-state.gz", + "sha256": "77e0fa100bea852b06386a404c803368e7e6fd46f95965ca4db260bb03482701", + "description": "Native source-bound qualification evidence" + }, + { + "id": "proxy-failure-cleanup", + "path": "evidence/proxy-failure-cleanup.gz", + "sha256": "d94586a9cb6c3675ca900fa4c825e67d01121a86a265ac9f5e12f58527b168a7", + "description": "Native source-bound qualification evidence" + }, + { + "id": "initial-proxy-cleanup", + "path": "evidence/initial-proxy-cleanup.gz", + "sha256": "8ef09f56bdafeffabfb87e13f33f5d3625a9c19a25362fadfd1c58060b3e574c", + "description": "Native source-bound qualification evidence" + }, + { + "id": "preservation-register", + "path": "evidence/preservation-register.gz", + "sha256": "95b7431880dfaf77ef0a8c0c21569c1b4f1953c2e6d0f1a8601ffcad1cf4624c", + "description": "Native source-bound qualification evidence" + }, + { + "id": "producer-run-regression-01", + "path": "evidence/producer-run-regression-01.gz", + "sha256": "19f9a3d49d3348d605a8616e93667fc6fca977f6871468994e25f93b859e2325", + "description": "One-off bounded QA producer source, not an execution policy or roadmap controller" + }, + { + "id": "producer-run-post-02", + "path": "evidence/producer-run-post-02.gz", + "sha256": "8c1efb7f485e0fc035cd401c22cc0af212660d298688bb87b83f927094bf0ff9", + "description": "One-off bounded QA producer source, not an execution policy or roadmap controller" + }, + { + "id": "producer-run-linux-post-03", + "path": "evidence/producer-run-linux-post-03.gz", + "sha256": "f881ef0f7218c2ee63c1ba1f3a46ef41eee75e47981901b4ef9e38dcc689b977", + "description": "One-off bounded QA producer source, not an execution policy or roadmap controller" + }, + { + "id": "producer-run-linux-pdf-post-04", + "path": "evidence/producer-run-linux-pdf-post-04.gz", + "sha256": "060fd7b6dce7903afd59705791ee2ea130ec94ea40b5282cec952571d2a22775", + "description": "One-off bounded QA producer source, not an execution policy or roadmap controller" + }, + { + "id": "producer-run-worker-proof", + "path": "evidence/producer-run-worker-proof.gz", + "sha256": "e5ecd9a81f920e60c22914964d30c5d14ca6bdf46d7bbd1cc483a09cff835873", + "description": "One-off bounded QA producer source, not an execution policy or roadmap controller" + }, + { + "id": "producer-run-model-probe", + "path": "evidence/producer-run-model-probe.gz", + "sha256": "669073f92b0f4b6743914c14bd0fdb865562d3f0c24b82b95edf28dd8dce8a69", + "description": "One-off bounded QA producer source, not an execution policy or roadmap controller" + }, + { + "id": "producer-run-installed-audit", + "path": "evidence/producer-run-installed-audit.gz", + "sha256": "ee0a70105a81fd83eb3dc4d94067cf5f0e69f11868a1767acaf447168c2c8438", + "description": "One-off bounded QA producer source, not an execution policy or roadmap controller" + }, + { + "id": "producer-run-junit-01", + "path": "evidence/producer-run-junit-01.gz", + "sha256": "c6cf652658e6c621d953325fa6b3875a5993b71973282f9989b2bb52e1629222", + "description": "One-off bounded QA producer source, not an execution policy or roadmap controller" + }, + { + "id": "verifier-source", + "path": "evidence/verifier-source.gz", + "sha256": "04ec38efa62320b0f8d56f56e23ffa1186b3349543ff59ebd2351bd98b54aba5", + "description": "Native source-bound qualification evidence" + }, + { + "id": "controller-current-SINGLE_USER_ACCEPTANCE-md", + "path": "evidence/controller-current-SINGLE_USER_ACCEPTANCE-md.gz", + "sha256": "7ca0ae5653e3ebd6a2bcc1f060b2d0a0fb0c4f32bdd410a418a589f17f7948fb", + "description": "Read-only external committed evidence at 140e182516e86c8718054cf0907593fcd6a38aa7:docs/automation/SINGLE_USER_ACCEPTANCE.md; not executed or accepted by this handoff" + }, + { + "id": "controller-current-SINGLE_USER-md", + "path": "evidence/controller-current-SINGLE_USER-md.gz", + "sha256": "874ca3b6de19ec0e4a4c8887fd9f4ad3c18a08840857ce54f109558e33388904", + "description": "Read-only external committed evidence at 140e182516e86c8718054cf0907593fcd6a38aa7:docs/automation/SINGLE_USER.md; not executed or accepted by this handoff" + }, + { + "id": "controller-current-results-json", + "path": "evidence/controller-current-results-json.gz", + "sha256": "f6feb541d03d4934198d9e8957fee58b92273dce1de06e49c9d8d5e1e06db027", + "description": "Read-only external committed evidence at 140e182516e86c8718054cf0907593fcd6a38aa7:automation/reports/single-user/results.json; not executed or accepted by this handoff" + }, + { + "id": "controller-current-setup-results-json", + "path": "evidence/controller-current-setup-results-json.gz", + "sha256": "3d616e60147b073273ee4add2015aec1a4282c8be43a67f6faf58d18e544819b", + "description": "Read-only external committed evidence at 140e182516e86c8718054cf0907593fcd6a38aa7:automation/reports/single-user/setup-results.json; not executed or accepted by this handoff" + }, + { + "id": "controller-current-native-qualification-json", + "path": "evidence/controller-current-native-qualification-json.gz", + "sha256": "0bff1c8a4157ffc728a62193a2f27c5e7675057191f1a44111c34ce01984b2ee", + "description": "Read-only external committed evidence at 140e182516e86c8718054cf0907593fcd6a38aa7:automation/reports/single-user/native-qualification.json; not executed or accepted by this handoff" + }, + { + "id": "controller-current-backlog-json", + "path": "evidence/controller-current-backlog-json.gz", + "sha256": "b318732eb9a9491584a8bad2eae3ce9dda563d90ddfe555a12db0d1f89ad1889", + "description": "Read-only external committed evidence at 140e182516e86c8718054cf0907593fcd6a38aa7:automation/backlog.json; not executed or accepted by this handoff" + }, + { + "id": "visual-letter-library-contact-long-nb-first-jpg", + "path": "visual/letter-library-contact-long-nb-first.jpg", + "sha256": "32eaf1332a2cb19aedd4d3527fa7344d8481376b4ee7a1077ddc574dd11f0ad4", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-letter-library-contact-long-nb-last-jpg", + "path": "visual/letter-library-contact-long-nb-last.jpg", + "sha256": "a1c7141207ee39ce70644ae022874528187c6d61965bd1f082525bfd2c927a11", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-letter-library-contact-short-en-first-jpg", + "path": "visual/letter-library-contact-short-en-first.jpg", + "sha256": "1426379a9f8242b55d47336fd957a69697db26fe0459fafd3968b4a51ee5165b", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-letter-library-contact-short-en-last-jpg", + "path": "visual/letter-library-contact-short-en-last.jpg", + "sha256": "1426379a9f8242b55d47336fd957a69697db26fe0459fafd3968b4a51ee5165b", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-manifest-json", + "path": "visual/manifest.json", + "sha256": "ae243eb3cb5440080117f63f4b87196e88b921d46c72b80649693b4f3ac3239e", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-owner-review-zip", + "path": "visual/owner-review.zip", + "sha256": "edca5e0326eed056961ba971dbef7cf6ba111d9b1de62d6108af0aa323511e1e", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-templates-contact-dense-nb-first-jpg", + "path": "visual/templates-contact-dense-nb-first.jpg", + "sha256": "3887bc248787e0cb3fc88e0bddba08a7b5b12d10e132ae7f48cc2000d84ed7b2", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-templates-contact-dense-nb-last-jpg", + "path": "visual/templates-contact-dense-nb-last.jpg", + "sha256": "02ad22ae33acc82862c01d11dc5fc8f9de14253108614a522442a23e1e116259", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-templates-contact-long-en-first-jpg", + "path": "visual/templates-contact-long-en-first.jpg", + "sha256": "d1b306b3e562c3c82dcdec83992b0419cf0c2f54ad9df2c6f95e57987328c050", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-templates-contact-long-en-last-jpg", + "path": "visual/templates-contact-long-en-last.jpg", + "sha256": "a1c01c0a0ca62286c9a1edbd3cf2553c4de39c243eb2bb5466f99d1d9f694af3", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-templates-contact-medium-nb-first-jpg", + "path": "visual/templates-contact-medium-nb-first.jpg", + "sha256": "d90ff9ad576d2c76a86991cdbf41b26e272ce92b0d0a26e3805911e5e5af2c04", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-templates-contact-medium-nb-last-jpg", + "path": "visual/templates-contact-medium-nb-last.jpg", + "sha256": "6edc882f316c47c206a7ea121dd4ab2cc5036c1a7158181567060dc3571a2dfb", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-templates-contact-short-en-first-jpg", + "path": "visual/templates-contact-short-en-first.jpg", + "sha256": "c6a1061e34fc04fd7fd3ea3ef8c1c4078da348ab0afb6e8c1358444a85968064", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "visual-templates-contact-short-en-last-jpg", + "path": "visual/templates-contact-short-en-last.jpg", + "sha256": "c6a1061e34fc04fd7fd3ea3ef8c1c4078da348ab0afb6e8c1358444a85968064", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "producer-visual-package", + "path": "evidence/producer-visual-package.gz", + "sha256": "67148079c4c5f59990505f67a59f67894b386a91c7222d94473cfc4754e23f5d", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "verifier-process", + "path": "evidence/verifier-process.gz", + "sha256": "7a8999c3c26ce35f1cbba2fc89cffb1c3ff8b9b883eb7d48212759efb61967b4", + "description": "Final source-bound qualification or synthetic owner-review artifact" + }, + { + "id": "handoff-validator-native", + "path": "evidence/handoff-validator-native.gz", + "sha256": "cc5149eeed8dd66d54aebd5e3de1d6213e94bc1083c4856fd7bc8f54fe55e487", + "description": "Final source-bound qualification or synthetic owner-review artifact" + } + ], + "reports": [ + { + "id": "backend", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "backend-native", + "processArtifactId": "main-processes", + "processPointer": "/0/exitCode", + "nativeFormat": "trx", + "counts": { + "passed": 1448, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "cbdce86e0764b9981c7ab1e5b2b3f80922af18fab4b6e6d3886786fc4a5e6c6a", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "frontend", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "frontend-native", + "processArtifactId": "main-processes", + "processPointer": "/1/exitCode", + "nativeFormat": "jest", + "counts": { + "passed": 1031, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "760b6a9c62fda91a5670a4ddb9bb285eb3db3bbf7dd32900564c3f735dbfb093", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "typecheck", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "typecheck-native", + "processArtifactId": "main-processes", + "processPointer": "/2/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "lint", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "lint-native", + "processArtifactId": "main-processes", + "processPointer": "/3/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "build", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "build-native", + "processArtifactId": "main-processes", + "processPointer": "/4/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "api-build", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "api-build-native", + "processArtifactId": "main-processes", + "processPointer": "/5/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "ordinary-1", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "ordinary-1-native", + "processArtifactId": "main-processes", + "processPointer": "/7/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 102, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "2d086c3f194ca33265f2a6564b795706d4f72ebd88aefa63455de6ac1942774b", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "ordinary-3", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "ordinary-3-native", + "processArtifactId": "main-processes", + "processPointer": "/8/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 88, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "d35158dfda7e6062cfb3c9ee273286f2da64437ca0ac2a28a846fec480c4a899", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "ordinary-4", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "ordinary-4-native", + "processArtifactId": "main-processes", + "processPointer": "/9/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 95, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "ffd78c0e0b9287b36e0c957bbee70556eb758a9e670125b91a195595e29ec98e", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "ordinary-2", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "ordinary-2-native", + "processArtifactId": "main-processes", + "processPointer": "/10/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 95, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "737640ccb8cea3c0d23cd91c6063afe220834db943296dfd10d5cb95cec64cee", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "ai", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "ai-native", + "processArtifactId": "main-processes", + "processPointer": "/11/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 2, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "cabdc6278364a212cc7f77a0969b3976003492628efb8d0a92554b45ce21b912", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "auth", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "auth-native", + "processArtifactId": "main-processes", + "processPointer": "/12/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 2, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "3163b85b4b49e4158d4db9d52a66c56f866aa060e25a0a5745d6205b0f0139ad", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "rate", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "rate-native", + "processArtifactId": "main-processes", + "processPointer": "/13/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 9, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "663549c99e2d2cf55e6e519a113ee2c88f3b968901781fe3b451434e0d31b82a", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "ingress", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "ingress-native", + "processArtifactId": "main-processes", + "processPointer": "/14/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 6, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "599a3c00218be6332df592b58f4c38d482ba0d2a6c0f2b3220750fff68ad68ba", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "pdf-admission", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "pdf-admission-native", + "processArtifactId": "main-processes", + "processPointer": "/15/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 1, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "177d3ed2957537b15705442513a903089601e95fbf9fbf639967e4dcfbf01187", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "preferences", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "preferences-native", + "processArtifactId": "main-processes", + "processPointer": "/16/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 3, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "8cca5cae0fdc9545e3d0451fd82dd07849ccf794ac593eeee18905d5660d508d", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "rd21", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "rd21-native", + "processArtifactId": "main-processes", + "processPointer": "/17/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 6, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "73212a03d65ed62be10306991d4492b5d285cc967f26bbe1a431cf329044487d", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "diagnostics", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "diagnostics-native", + "processArtifactId": "main-processes", + "processPointer": "/18/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 18, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "be5cafa1ef632d93f0bc8213f68d8e066d6265a17ff1101fefbf997e838a938a", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "volume", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "volume-native", + "processArtifactId": "main-processes", + "processPointer": "/19/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 3, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "34e9fce2b1b9249c484d470832fb0f4df05d8c38172909fd52079ee421a8430b", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "rd21-volume", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "rd21-volume-native", + "processArtifactId": "main-processes", + "processPointer": "/20/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 3, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "34e9fce2b1b9249c484d470832fb0f4df05d8c38172909fd52079ee421a8430b", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "docling-import", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "docling-import-native", + "processArtifactId": "post-processes", + "processPointer": "/0/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 3, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "e343cff4bb807cec2346055d7441f4501ce183d7e3c683980d0e61caa5f3c445", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "cv-integration-qa", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "cv-integration-qa-native", + "processArtifactId": "post-processes", + "processPointer": "/1/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 4, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "1324bf645e9b6e6625bc06cb73a5fb0de84c222eff9bda20355ba9e1a4624ebf", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "long-import", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "long-import-native", + "processArtifactId": "post-processes", + "processPointer": "/2/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 1, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "d807db6d382aab68973733f07125cfe1013632fc58bae820f112a99cefe87148", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "mariadb-provider", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "mariadb-provider-native", + "processArtifactId": "post-processes", + "processPointer": "/3/exitCode", + "nativeFormat": "trx", + "counts": { + "passed": 90, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "ab210246c2777891baab996c3a793afb49a9593b4d0dd982dcd03c72907f009f", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "mariadb-browser", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "mariadb-browser-native", + "processArtifactId": "mariadb-browser-processes", + "processPointer": "/3/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 1, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "d432e0a84b4288d3020c3f4f2f433a2d2c4a0b34ff3a1f1882fba6d5d957f5d3", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "mariadb-observations", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "mariadb-observations-native", + "processArtifactId": "mariadb-browser-processes", + "processPointer": "/4/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 2, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "091aca498ae2ba3839af2de0325416ef9759199755fcb3f3c56d177a6b2c880c", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "benchmark-new", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "benchmark-new-native", + "processArtifactId": "independent-processes", + "processPointer": "/2/exitCode", + "nativeFormat": "unittest", + "counts": { + "passed": 9, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "ade218b1cda0fb54c769413affa81c67b7032986109d26eb8f37c77195bf819c", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "benchmark-original", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "benchmark-original-native", + "processArtifactId": "independent-processes", + "processPointer": "/3/exitCode", + "nativeFormat": "unittest", + "counts": { + "passed": 11, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "95ea4f6ffe49e629d1166ceb34e5fabcb228491d8725265d2e77fcf131c6aed3", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "linux-helper", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "linux-helper-native", + "processArtifactId": "independent-processes", + "processPointer": "/4/exitCode", + "nativeFormat": "unittest", + "counts": { + "passed": 11, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "node-helpers", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "node-helpers-native", + "processArtifactId": "independent-processes", + "processPointer": "/5/exitCode", + "nativeFormat": "node-test", + "counts": { + "passed": 25, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "892477b31c6084589b728784192a104b22bd3c48ed27dba36590d22016772831", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "npm-audit", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PARTIAL", + "exitCode": 1, + "artifactId": "npm-audit-native", + "processArtifactId": "independent-processes", + "processPointer": "/6/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Point-in-time advisory query; not a functional suite or unknown-vulnerability guarantee." + }, + { + "id": "npm-production-audit", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "npm-production-audit-native", + "processArtifactId": "independent-processes", + "processPointer": "/7/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Point-in-time advisory query; not a functional suite or unknown-vulnerability guarantee." + }, + { + "id": "pip-audit", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "PASS", + "exitCode": 0, + "artifactId": "pip-audit-native", + "processArtifactId": "independent-processes", + "processPointer": "/8/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Point-in-time advisory query; not a functional suite or unknown-vulnerability guarantee." + }, + { + "id": "python-offline", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "python-offline-native", + "processArtifactId": "python-junit-processes", + "processPointer": "/0/exitCode", + "nativeFormat": "junit", + "counts": { + "passed": 83, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "ee0e26322907e2ccf3c2283d77cbb4aa35aa707b46afc14c61bb499ca108185f", + "limits": "Native JUnit repeat solely for portable test identities; replaces overlapping console-only run, not additional cases." + }, + { + "id": "python-docling", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "python-docling-native", + "processArtifactId": "python-junit-processes", + "processPointer": "/1/exitCode", + "nativeFormat": "junit", + "counts": { + "passed": 14, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "e093e065fb40221bcfac23c394c74ff2f60d2b8d86526d99412004024668b850", + "limits": "Native JUnit repeat solely for portable test identities; replaces overlapping console-only run, not additional cases." + }, + { + "id": "linux-browser", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "linux-browser-native", + "processArtifactId": "linux-render-processes", + "processPointer": "/1/exitCode", + "nativeFormat": "playwright", + "counts": { + "passed": 8, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "15c6c0b396809caf261cf91736c015a03f0d4041c1d084bc7e16db5fb55818d2", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance. Portable transport omits inline attachment bodies only; raw original and body hashes are retained in the indexed projection audit." + }, + { + "id": "windows-template-oracle", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PARTIAL", + "exitCode": 1, + "artifactId": "windows-template-oracle-native", + "processArtifactId": "post-processes", + "processPointer": "/7/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "windows-template-completeness", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "windows-template-completeness-native", + "processArtifactId": "post-processes", + "processPointer": "/8/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "windows-template-name-wrap", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "windows-template-name-wrap-native", + "processArtifactId": "post-processes", + "processPointer": "/9/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "windows-template-name-ink", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "windows-template-name-ink-native", + "processArtifactId": "post-processes", + "processPointer": "/10/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "windows-template-sidebar", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "windows-template-sidebar-native", + "processArtifactId": "post-processes", + "processPointer": "/74/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "linux-template-oracle", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "78e5296881cfd79f8c3fef95022a4500d39a4b77", + "status": "PARTIAL", + "exitCode": 1, + "artifactId": "linux-template-oracle-native", + "processArtifactId": "linux-pdf-processes", + "processPointer": "/2/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "linux-template-completeness", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "78e5296881cfd79f8c3fef95022a4500d39a4b77", + "status": "PASS", + "exitCode": 0, + "artifactId": "linux-template-completeness-native", + "processArtifactId": "linux-pdf-processes", + "processPointer": "/3/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "linux-template-name-wrap", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "78e5296881cfd79f8c3fef95022a4500d39a4b77", + "status": "PASS", + "exitCode": 0, + "artifactId": "linux-template-name-wrap-native", + "processArtifactId": "linux-pdf-processes", + "processPointer": "/4/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "linux-template-name-ink", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "78e5296881cfd79f8c3fef95022a4500d39a4b77", + "status": "PASS", + "exitCode": 0, + "artifactId": "linux-template-name-ink-native", + "processArtifactId": "linux-pdf-processes", + "processPointer": "/5/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "linux-template-sidebar", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "78e5296881cfd79f8c3fef95022a4500d39a4b77", + "status": "PASS", + "exitCode": 0, + "artifactId": "linux-template-sidebar-native", + "processArtifactId": "linux-pdf-processes", + "processPointer": "/69/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Document measurement, not a browser-case count. S01 failures retain the unchanged2mm oracle; raster/semantic checks do not waive them." + }, + { + "id": "nuget-audit", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "78e5296881cfd79f8c3fef95022a4500d39a4b77", + "status": "PARTIAL", + "exitCode": 0, + "artifactId": "nuget-audit-native", + "processArtifactId": "linux-pdf-processes", + "processPointer": "/72/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Native command exit/report retained; NuGet findings require separate security disposition." + }, + { + "id": "restore-native-apphost", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "78e5296881cfd79f8c3fef95022a4500d39a4b77", + "status": "PASS", + "exitCode": 0, + "artifactId": "restore-native-apphost-native", + "processArtifactId": "linux-pdf-processes", + "processPointer": "/71/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Native command exit/report retained; NuGet findings require separate security disposition." + }, + { + "id": "linux-matching-letters", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "78e5296881cfd79f8c3fef95022a4500d39a4b77", + "status": "PASS", + "exitCode": 0, + "artifactId": "linux-matching-letters-native", + "processArtifactId": "linux-pdf-processes", + "processPointer": "/70/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Native command exit/report retained; NuGet findings require separate security disposition." + }, + { + "id": "linux-build", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "linux-build-native", + "processArtifactId": "linux-render-processes", + "processPointer": "/0/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Finite isolated automated qualification; no human, deployed or production acceptance." + }, + { + "id": "cv-model-probe", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "BLOCKED", + "exitCode": 0, + "artifactId": "cv-model-probe-native", + "processArtifactId": "model-probe-process", + "processPointer": "/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Three actual synthetic requests; all rejected. Measurement process0 is not model compatibility or semantic PASS." + }, + { + "id": "local-worker", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PASS", + "exitCode": 0, + "artifactId": "local-worker-native", + "processArtifactId": "worker-process", + "processPointer": "/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "Actual local synthetic Docling/strategy/enrichment/erasure; strategy has retained prior provider_unavailable. Separately authored CV text, no semantic approval or imported-facts Apply claim." + }, + { + "id": "installed-python-advisories", + "bindingScope": "APPLICATION", + "sourceCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "executedFromCommit": "8804231be4e7c309a62d9d6e7d07c9ae0809bc3c", + "status": "PARTIAL", + "exitCode": 0, + "artifactId": "installed-python-advisories-native", + "processArtifactId": "installed-python-process", + "processPointer": "/exitCode", + "nativeFormat": null, + "counts": { + "passed": 0, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", + "limits": "63 exact installed distributions/126 public OSV/PyPI queries,0 advisory records,1 torch vendor-local PyPI404; scan remains INCOMPLETE." + }, + { + "id": "handoff-validator", + "bindingScope": "HANDOFF_VERIFIER", + "sourceCommit": "c16a66e2c85b35caa5a4460c186dc77d28e31ccb", + "executedFromCommit": "c16a66e2c85b35caa5a4460c186dc77d28e31ccb", + "status": "PASS", + "exitCode": 0, + "artifactId": "handoff-validator-native", + "processArtifactId": "verifier-process", + "processPointer": "/exitCode", + "nativeFormat": "node-test", + "counts": { + "passed": 18, + "failed": 0, + "skipped": 0, + "retries": 0, + "unexecuted": 0 + }, + "membershipSha256": "ec236d69e68738437b2107bd25bbc4f5cef7b645dd4930d5d18ba05463aae65a", + "limits": "Final combined18 unit/schema/native parser/package tampering and authority negative tests; supersedes overlapping bootstrap7, not added to it." + } + ], + "historicalEvidence": [ + "docs/pre-phase10-ux/evidence-summary.json: prior composite browser/PDF/benchmark evidence, not new executions", + "docs/pre-phase10-ux/local-runtime-summary.json: earlier local smoke, not included in fresh totals", + "docs/redesign/phase-9/p9-sec-02: historical advisory/vendor/source/model/cache and CI/operator scope", + "docs/pre-phase10-ux/SECURITY_REVIEW.md: sealed136-file diff plus separate later reviews; not a new whole-repository scan", + "Current external controller140e182 reports69 Python cases (includes earlier48) plus6 signature cases, finite MXC canaries PASS; no current-owner key/sign-in/runtime grant/adapter/Phase10 acceptance. Not rerun here." + ], + "environment": [ + "{\"node\": \"v24.19.0\", \"dotnet\": \"9.0.317\", \"python\": \"Python 3.12.10\", \"dockerServer\": \"29.7.2\"}", + "Windows native/browser; pinned Docker Desktop Linux sidecar/MariaDB/PDF fixtures; immutable source/image manifests", + "Model probe: dedicated internal-only network, read-only approved GGUF volume,4CPU/8GiB; active CV adapter remains disabled", + "Native process arguments are retained unmodified; absolute paths are informational producer locations; portable artifact references are package-relative" + ], + "notRun": [ + "Human/physical-device/screen-reader/native-language/actual-print approval", + "Hosted MariaDB and actual hosted isolation/lifecycle qualification", + "Full real CV-model PDF/DOCX semantic benchmark or activation; three development probes rejected", + "Production filesystem, off-disk backup/restore/deployed TLS/model cache/native-image/egress/operator qualification", + "Separate orchestrator execution, actual owner-key/current-context qualification, protected approvals and real test-adapter integration", + "New paid exhaustive Codex Security scan; retained sealed source scope and separate code review are identified explicitly" + ], + "generatedUtc": "2026-10-29T17:56:46.240720+00:00" +} diff --git a/docs/automation/handoffs/pre-phase10/TRACEABILITY.md b/docs/automation/handoffs/pre-phase10/TRACEABILITY.md new file mode 100644 index 0000000..3dcf2b6 --- /dev/null +++ b/docs/automation/handoffs/pre-phase10/TRACEABILITY.md @@ -0,0 +1,42 @@ +# Capability-to-evidence traceability + +Fresh source baseline: **5032ccb41514807c8ca3008c24ca6326be1170de**. Report IDs below resolve through TEST_EVIDENCE.json to native reports, actual process exits, test identities and source hashes. PASS means the finite automated behavior exercised, not blanket feature, semantic, human or production acceptance. No application source or existing test was changed for this handoff. + +| Required capability | Current owner / actual tests | Fresh report IDs | Decision and limits | +|---|---|---|---| +| Completely blank CV, zero unwanted sections | CvBuilderEditor; `e2e/pre-p10-cv-editor.spec.ts`; CvBlankPersistenceTests | ordinary-1/2/3/4, backend, mariadb-provider | Automated PASS; actual blank durable save exercised | +| Create from Career Profile, section selection | CvBuilderEditor/CareerProfileMapper; pre-p10 editor and cv-section-scope specs | ordinary shards, backend, frontend | Automated PASS; profile remains canonical; explicit supported selections | +| Undo/redo across supported operations | editor history; pre-p10 editor spec and frontend tests | ordinary shards, frontend | Automated PASS for bounded document operations; not undo of every remote side effect | +| Save, refresh, lost response and recovery | ApplicationAssetsService/version tokens; provider and RD21 suites | mariadb-provider, mariadb-browser, rd21, rd21-volume | Automated PASS; success requires read-back/durable write | +| Multiple-session editing, stale writes | existing revision contract; MariaDB concurrency suites | mariadb-provider, rd21, preferences | Automated PASS for conflicts/no lost update; not simultaneous human usability approval | +| Existing CVs, frozen revisions, job variants and submitted packages | ApplicationAssetsService; original renderer; documents-contract/cv-library specs | backend, ordinary shards, original PDF artifacts | Automated finite PASS; no old-data rewrite; preservation overall remains PARTIAL | +| Nine-template library and actual previews | CvTemplateGallery/Thumbnail; actual sandboxed HTML samples, explicit Apply | frontend, ordinary shards, windows/linux-browser | Automated PASS; aesthetics PARTIAL | +| Existing/new title and section spacing | CvTheme/ThemedCvRenderer design versions | windows/linux-template-oracle, -name-ink | PARTIAL: unchanged S01 failures; never waived by ink diagnostic | +| Optional photos, crop and theme persistence | editor/photo/theme owners; revised corpus | frontend, ordinary shards, template measurements | Automated finite PASS with synthetic geometric photo; human photo/layout review open | +| Font consistency/weights, margins, headings, bullets/columns/page breaks | licensed bundled fonts/shared physical renderer; original and revised oracles | original PDF artifacts; template-completeness/-name-wrap/-sidebar | Content/bounds PASS; coordinate fidelity FAIL; visual rhythm/whitespace PARTIAL | +| Multi-page and long names/skills/education, Norwegian characters | four revised fixture profiles and matching letters | template-completeness; matching-letter proofs | 36 CVs/122 pages and18 letters/38 pages per platform; automated finite PASS, physical printing NOT TESTED | +| Real PDF and DOCX conversion | bounded Python Docling; import-tests/cv-import-docling.spec.ts; Python document tests | docling-import, python-docling | Automated PASS for supported text PDF/DOCX fixtures; scanned/OCR/layout breadth not qualified | +| Real worker dispatch and progress | existing CV worker/store/AdminProcessing owners | local-worker, docling-import, diagnostics | Actual queued→running/extracting→pending_review plus owner-correlated events PASS; finite timeout/cancel tests separate | +| Canonical Career Profile field mapping/new records | import interpreter/mapper/reviewed persistence; import-tests/cv-integration-qa.spec.ts | cv-integration-qa, long-import, mariadb-provider, backend | Automated supported workflow PASS; deterministic recall remains PARTIAL; unknown values must stay unknown | +| Review/correction, group/field approval, source evidence | career/CvImportReview/CvImportMappingEditor | cv-integration-qa, docling-import, frontend, backend | Automated PASS; original PDF preview, DOCX source download/text; no claim of inline Word renderer | +| Duplicate/conflict resolution, preserve existing values | reviewed apply owner and provider tests | mariadb-provider, cv-integration-qa, backend | Automated PASS for exercised matching/update/skip paths; conservative human decisions retained | +| Transactional MariaDB apply, idempotent replay, rollback | CvImportReviewedPersistenceTests/CvImportConnectionLossTests/CvImportLifecycleConcurrencyTests | mariadb-provider | 90 provider cases overall, not90 import-only cases; rollback/concurrency/replay covered | +| Revision safety and repeated requests | existing profile/job revisions and RD21 contracts | mariadb-provider, rd21, mariadb-observations | PASS for covered concurrency/recovery. Two observation cases document repeated creation behavior; do not prove creation-intent idempotency | +| Failure/retry/cancellation/restart and provenance | CV worker durable states/source ownership and parser tests | backend, python-offline, docling-import, long-import, diagnostics | Automated PASS for finite cases; ownership/tenant/source checks retained; no indefinite success by timers | +| Dashboard actual drag/resize | DashboardGrid + LayoutEditor; phase8-dashboard-customisation and dashboard-presentation specs | ordinary shards, frontend, preferences | Automated PASS; keyboard alternatives, collision and persistence covered | +| Dashboard show/hide/save/reset, v1 preferences and stale-save conflicts | dashboardLayout/useDashboardLayout | preferences, frontend, ordinary shards | Automated PASS; hidden/future widget data retained | +| Dashboard mobile and keyboard use | responsive linear layout/navigation guard | ordinary shards, frontend | Automated viewport/keyboard/axe PASS; physical mobile and AT NOT TESTED | +| Admin owner + related job/import attribution | AdminProcessingPage/controller/store | diagnostics, backend, local-worker | Automated PASS for scoped IDs and real events; no cross-user progress/result access accepted | +| Admin stage/status/duration/failures and bounded polling | admin-processing.spec.ts and API tests | diagnostics, frontend, backend | Automated PASS; provider_unavailable history retained even when retry succeeds | +| Sanitised event logs, redaction, authorisation and tenant isolation | processing diagnostics service + authorisation tests | diagnostics, auth, rate, ingress, backend | Automated PASS for exercised payloads/roles; no claim of exhaustive repository security scan | +| Real Docling vs deterministic interpretation | separate converter/grounding/interpreter | python-docling, python-offline, benchmark-new/-original, import journeys | Real conversion PASS; extraction recall PARTIAL; benchmark fixtures are finite synthetic source facts | +| Queued AI strategy generation | existing generic operation worker/StrategySnapshotService | local-worker, ai, backend | Real local queue completed and persisted summary; earlier provider failure retained; separately authored ProfileCvText required | +| Scheduled job enrichment | current scheduled worker/sidecar | local-worker | Actual scheduler persisted summary+tags at configured cadence; semantic correctness NOT qualified | +| Safe structured outputs and model failures | cv_import_ai.py and grounding tests; isolated immutable probe | python-offline, cv-model-probe, model-verification artifacts | Contract tests PASS; all3 real CV probes rejected. CV model compatibility/accuracy BLOCKED; adapter stays disabled/disconnected | +| Generic AI from imported structured profile alone | StrategySnapshotService requires legacy ProfileCvText | AI_RESULTS.md, BLOCKERS AI-CONTEXT-01 | NOT QUALIFIED: reviewed import deliberately does not populate legacy raw CV text; no fabricated compatibility claim | +| Routes, auth, jobs/applications, CV/letters, settings, administration | existing shared owners; redesign-preservation and route specs | ordinary shards, auth, backend, frontend, preservation-register | 380 ordinary cases with discovery identity; all57 preservation entries/34 routes retained,56 PARTIAL/1 DEFERRED unchanged | +| EN/Bokmål, light/dark, responsive/reduced motion | existing translations/themes/a11y specs | ordinary shards, frontend, native PDF measurements | Finite automated PASS; human copy/contrast/AT/device approval NOT TESTED. Other languages not newly qualified | + +`ordinary-*` denotes four disjoint reports (380 unique executed cases), not an extra suite added to the total. Specialized contracts have53 cases, import journeys8, real-provider browser checks3 and Linux native-browser checks8; these are separate lanes, not all unique product scenarios. Backend1448 and frontend1031 include many of the behaviors above; row counts must never be summed. + +See [VISUAL_REVIEW.md](VISUAL_REVIEW.md), [AI_RESULTS.md](AI_RESULTS.md), [MANUAL_ACCEPTANCE.md](MANUAL_ACCEPTANCE.md), [AUTHORITY.md](AUTHORITY.md) and [BLOCKERS.json](BLOCKERS.json) for the deliberately unfinished acceptance decisions. No listed PASS supplies protected Phase10 approval. diff --git a/docs/automation/handoffs/pre-phase10/VISUAL_REVIEW.md b/docs/automation/handoffs/pre-phase10/VISUAL_REVIEW.md new file mode 100644 index 0000000..f16c8f4 --- /dev/null +++ b/docs/automation/handoffs/pre-phase10/VISUAL_REVIEW.md @@ -0,0 +1,25 @@ +# Current template visual review — 29 October 2026 + +**Visual spacing: PARTIAL. Automated revised fidelity: FAIL. Human approval and actual printing: NOT TESTED.** No tolerance, golden, font, renderer or application source was changed during this handoff. + +Download [owner-review.zip](visual/owner-review.zip) (about 5 MB). It contains **36 actual CV PDFs and 18 matching cover-letter PDFs**, first/final contact sheets, and adjacent short-CV preview/export images for all nine templates. [manifest.json](visual/manifest.json) records original source and packaged SHA-256 values. PDFs are byte-preserved; JPEG review images are compressed navigation aids, never pixel oracles. Synthetic names, email addresses, long identifiers, Norwegian characters and geometric photo placeholders are deliberate fixtures. + +| Fresh measurement | Windows | Linux | Meaning | +|---|---:|---:|---| +| Original CV corpus | 24 documents / 60 pages PASS | 24 / 60 PASS | Historical rendering compatibility | +| Original cover letters | 4 / 14 PASS | 4 / 14 PASS | Historical letter compatibility | +| Revised CV content/bounds | 36 / 122 PASS | 36 / 122 PASS | Source markers retained; physical text bounds checked | +| Revised unchanged coordinate oracle | 8/36 PASS; 28 S01-only failures | 16/36 PASS; 20 S01-only failures | Existing 2 mm criterion still fails; exit1 retained | +| Full-height sidebar raster | 43/43 applicable pages PASS | 43/43 PASS | Actual PDF color samples through top and bottom rows | +| Name wrap and separate visible-ink checks | PASS | PASS | Distinct diagnostics; cannot waive S01 | +| Matching themed cover letters | 18 / 38 pages PASS | 18 / 38 PASS | Finite source markers, bounds and theme checks | + +The revised corpus covers modern, minimal, executive, technical, ats-classic, nordic, elegant, creative and code; four short/medium/long/dense EN/Bokmål profiles. Dense cases include 12 employers, education and long skill lists. Separate matching letters cover short EN and long Bokmål. Native report IDs are `windows-template-*`, `linux-template-*`, original-PDF/letter artifacts and matching-letter proof artifacts in TEST_EVIDENCE.json. Each measurement is separate from browser test totals. + +Agent inspection of the short first-page and dense final-page sheets confirms the intended template differences and full-height colored sidebars are visible. Long names wrap, and some dense final pages have considerable trailing whitespace after the final sections. That observation is a review question, not a new automated failure or a human aesthetic decision. Actual PDFs, bounds/marker diagnostics and unchanged S01 failures remain available for independent inspection. + +Open [short first pages](visual/templates-contact-short-en-first.jpg) and [dense final pages](visual/templates-contact-dense-nb-last.jpg), then the corresponding PDFs at 100%. Compare title-to-subtitle/content gaps, heading rhythm, line height, paragraph/bullet indentation, page margins, column alignment, breaks, photo/no-photo variants, font weights and final-page whitespace. Inspect first **and** final pages of long/dense records, not just gallery thumbnails. Print representative classic, modern, code and sidebar layouts at actual size. Record template/profile/page, platform, screenshot or print, result and requested correction using MANUAL_ACCEPTANCE.md cases HUMAN-06/HUMAN-07. + +The current gallery uses actual rendered sample HTML; changing template is preview-only until **Apply**. New CVs or explicit Apply use design version2. Existing version1, frozen/historical CVs and submitted packages retain their renderer/settings until an explicit supported edit. This handoff does not rewrite old documents. + +S01 compares text-coordinate baselines; separate raster ink diagnostics are closer while still not satisfying the original criterion. No reproducible missing-content/clipping defect was established by the finite checks. An owner must resolve the affected fidelity requirement or supply a protected applicability decision for a concrete cleanup candidate. This evidence does not change a mandatory test into optional release debt. diff --git a/docs/automation/handoffs/pre-phase10/evidence/ai-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/ai-native-projection-audit.gz new file mode 100644 index 0000000..e50e577 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ai-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ai-native.gz b/docs/automation/handoffs/pre-phase10/evidence/ai-native.gz new file mode 100644 index 0000000..13381c7 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ai-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/api-build-native.gz b/docs/automation/handoffs/pre-phase10/evidence/api-build-native.gz new file mode 100644 index 0000000..927d6f5 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/api-build-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/application-source-after.gz b/docs/automation/handoffs/pre-phase10/evidence/application-source-after.gz new file mode 100644 index 0000000..4f4d951 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/application-source-after.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/application-source-before.gz b/docs/automation/handoffs/pre-phase10/evidence/application-source-before.gz new file mode 100644 index 0000000..4f4d951 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/application-source-before.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/auth-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/auth-native-projection-audit.gz new file mode 100644 index 0000000..a101481 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/auth-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/auth-native.gz b/docs/automation/handoffs/pre-phase10/evidence/auth-native.gz new file mode 100644 index 0000000..a07f688 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/auth-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/backend-native.gz b/docs/automation/handoffs/pre-phase10/evidence/backend-native.gz new file mode 100644 index 0000000..1e283f6 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/backend-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/benchmark-new-native.gz b/docs/automation/handoffs/pre-phase10/evidence/benchmark-new-native.gz new file mode 100644 index 0000000..46cee44 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/benchmark-new-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/benchmark-original-native.gz b/docs/automation/handoffs/pre-phase10/evidence/benchmark-original-native.gz new file mode 100644 index 0000000..56f4871 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/benchmark-original-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/build-native.gz b/docs/automation/handoffs/pre-phase10/evidence/build-native.gz new file mode 100644 index 0000000..7e95df7 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/build-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/controller-current-SINGLE_USER-md.gz b/docs/automation/handoffs/pre-phase10/evidence/controller-current-SINGLE_USER-md.gz new file mode 100644 index 0000000..8a5d21d Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/controller-current-SINGLE_USER-md.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/controller-current-SINGLE_USER_ACCEPTANCE-md.gz b/docs/automation/handoffs/pre-phase10/evidence/controller-current-SINGLE_USER_ACCEPTANCE-md.gz new file mode 100644 index 0000000..b57785d Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/controller-current-SINGLE_USER_ACCEPTANCE-md.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/controller-current-backlog-json.gz b/docs/automation/handoffs/pre-phase10/evidence/controller-current-backlog-json.gz new file mode 100644 index 0000000..6710fcd Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/controller-current-backlog-json.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/controller-current-native-qualification-json.gz b/docs/automation/handoffs/pre-phase10/evidence/controller-current-native-qualification-json.gz new file mode 100644 index 0000000..c89bbb2 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/controller-current-native-qualification-json.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/controller-current-results-json.gz b/docs/automation/handoffs/pre-phase10/evidence/controller-current-results-json.gz new file mode 100644 index 0000000..7dcd610 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/controller-current-results-json.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/controller-current-setup-results-json.gz b/docs/automation/handoffs/pre-phase10/evidence/controller-current-setup-results-json.gz new file mode 100644 index 0000000..c38315f Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/controller-current-setup-results-json.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/cv-integration-qa-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/cv-integration-qa-native-projection-audit.gz new file mode 100644 index 0000000..8c39f3b Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/cv-integration-qa-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/cv-integration-qa-native.gz b/docs/automation/handoffs/pre-phase10/evidence/cv-integration-qa-native.gz new file mode 100644 index 0000000..202977c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/cv-integration-qa-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/cv-model-probe-native.gz b/docs/automation/handoffs/pre-phase10/evidence/cv-model-probe-native.gz new file mode 100644 index 0000000..20d09ac Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/cv-model-probe-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/diagnostics-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/diagnostics-native-projection-audit.gz new file mode 100644 index 0000000..8fd3a85 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/diagnostics-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/diagnostics-native.gz b/docs/automation/handoffs/pre-phase10/evidence/diagnostics-native.gz new file mode 100644 index 0000000..2ee07c3 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/diagnostics-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/docling-cleanup.gz b/docs/automation/handoffs/pre-phase10/evidence/docling-cleanup.gz new file mode 100644 index 0000000..dcb47f1 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/docling-cleanup.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/docling-fixture.gz b/docs/automation/handoffs/pre-phase10/evidence/docling-fixture.gz new file mode 100644 index 0000000..7b055d5 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/docling-fixture.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/docling-import-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/docling-import-native-projection-audit.gz new file mode 100644 index 0000000..c1d4bb9 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/docling-import-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/docling-import-native.gz b/docs/automation/handoffs/pre-phase10/evidence/docling-import-native.gz new file mode 100644 index 0000000..8f7fccc Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/docling-import-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/environment.gz b/docs/automation/handoffs/pre-phase10/evidence/environment.gz new file mode 100644 index 0000000..db8bfa9 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/environment.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/frontend-native.gz b/docs/automation/handoffs/pre-phase10/evidence/frontend-native.gz new file mode 100644 index 0000000..c2ebd74 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/frontend-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/git-checkpoint.gz b/docs/automation/handoffs/pre-phase10/evidence/git-checkpoint.gz new file mode 100644 index 0000000..b4d8a14 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/git-checkpoint.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/git-recovered.gz b/docs/automation/handoffs/pre-phase10/evidence/git-recovered.gz new file mode 100644 index 0000000..a2b930b Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/git-recovered.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/git-start.gz b/docs/automation/handoffs/pre-phase10/evidence/git-start.gz new file mode 100644 index 0000000..c5b6c8e Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/git-start.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/handoff-validator-native.gz b/docs/automation/handoffs/pre-phase10/evidence/handoff-validator-native.gz new file mode 100644 index 0000000..0bfda6c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/handoff-validator-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/independent-processes.gz b/docs/automation/handoffs/pre-phase10/evidence/independent-processes.gz new file mode 100644 index 0000000..1936820 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/independent-processes.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ingress-native.gz b/docs/automation/handoffs/pre-phase10/evidence/ingress-native.gz new file mode 100644 index 0000000..c06a10c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ingress-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/initial-proxy-cleanup.gz b/docs/automation/handoffs/pre-phase10/evidence/initial-proxy-cleanup.gz new file mode 100644 index 0000000..a7908c9 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/initial-proxy-cleanup.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/installed-python-advisories-native.gz b/docs/automation/handoffs/pre-phase10/evidence/installed-python-advisories-native.gz new file mode 100644 index 0000000..a87fa4e Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/installed-python-advisories-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/installed-python-membership.gz b/docs/automation/handoffs/pre-phase10/evidence/installed-python-membership.gz new file mode 100644 index 0000000..a0f4d5b Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/installed-python-membership.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/installed-python-process.gz b/docs/automation/handoffs/pre-phase10/evidence/installed-python-process.gz new file mode 100644 index 0000000..7898fd4 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/installed-python-process.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/lint-native.gz b/docs/automation/handoffs/pre-phase10/evidence/lint-native.gz new file mode 100644 index 0000000..000dc33 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/lint-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-browser-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-browser-native-projection-audit.gz new file mode 100644 index 0000000..733861e Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-browser-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-browser-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-browser-native.gz new file mode 100644 index 0000000..e976957 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-browser-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-build-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-build-native.gz new file mode 100644 index 0000000..3f43b9c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-build-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-helper-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-helper-native.gz new file mode 100644 index 0000000..90a9a82 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-helper-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-image-build.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-image-build.gz new file mode 100644 index 0000000..1813600 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-image-build.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-letter-proof-0.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-letter-proof-0.gz new file mode 100644 index 0000000..f32aa72 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-letter-proof-0.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-lifecycle.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-lifecycle.gz new file mode 100644 index 0000000..ccda18f Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-lifecycle.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-matching-letters-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-matching-letters-native.gz new file mode 100644 index 0000000..ebf4905 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-matching-letters-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-native-processes.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-native-processes.gz new file mode 100644 index 0000000..a2f68c7 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-native-processes.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-original-letter.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-original-letter.gz new file mode 100644 index 0000000..f762dfd Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-original-letter.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-original-pdf.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-original-pdf.gz new file mode 100644 index 0000000..0320c12 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-original-pdf.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-pdf-processes.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-pdf-processes.gz new file mode 100644 index 0000000..fe13b29 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-pdf-processes.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-render-processes.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-render-processes.gz new file mode 100644 index 0000000..d538dec Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-render-processes.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-template-completeness-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-template-completeness-native.gz new file mode 100644 index 0000000..54868a5 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-template-completeness-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-template-measurements.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-template-measurements.gz new file mode 100644 index 0000000..ea55c3f Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-template-measurements.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-template-name-ink-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-template-name-ink-native.gz new file mode 100644 index 0000000..4ed12b0 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-template-name-ink-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-template-name-wrap-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-template-name-wrap-native.gz new file mode 100644 index 0000000..6bd49e3 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-template-name-wrap-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-template-oracle-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-template-oracle-native.gz new file mode 100644 index 0000000..bab9bf0 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-template-oracle-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/linux-template-sidebar-native.gz b/docs/automation/handoffs/pre-phase10/evidence/linux-template-sidebar-native.gz new file mode 100644 index 0000000..f9b8bfb Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/linux-template-sidebar-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/local-worker-native.gz b/docs/automation/handoffs/pre-phase10/evidence/local-worker-native.gz new file mode 100644 index 0000000..40f48e6 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/local-worker-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/long-import-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/long-import-native-projection-audit.gz new file mode 100644 index 0000000..71ea67b Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/long-import-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/long-import-native.gz b/docs/automation/handoffs/pre-phase10/evidence/long-import-native.gz new file mode 100644 index 0000000..4762f69 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/long-import-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/main-closure.gz b/docs/automation/handoffs/pre-phase10/evidence/main-closure.gz new file mode 100644 index 0000000..160c995 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/main-closure.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/main-git.gz b/docs/automation/handoffs/pre-phase10/evidence/main-git.gz new file mode 100644 index 0000000..b541d8f Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/main-git.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/main-processes.gz b/docs/automation/handoffs/pre-phase10/evidence/main-processes.gz new file mode 100644 index 0000000..235b344 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/main-processes.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-cleanup.gz b/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-cleanup.gz new file mode 100644 index 0000000..af024cf Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-cleanup.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-native-projection-audit.gz new file mode 100644 index 0000000..241e309 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-native.gz b/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-native.gz new file mode 100644 index 0000000..68dfd35 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-processes.gz b/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-processes.gz new file mode 100644 index 0000000..7bb242d Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/mariadb-browser-processes.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/mariadb-observations-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/mariadb-observations-native-projection-audit.gz new file mode 100644 index 0000000..87064b6 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/mariadb-observations-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/mariadb-observations-native.gz b/docs/automation/handoffs/pre-phase10/evidence/mariadb-observations-native.gz new file mode 100644 index 0000000..b3d458e Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/mariadb-observations-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/mariadb-provider-lifecycle.gz b/docs/automation/handoffs/pre-phase10/evidence/mariadb-provider-lifecycle.gz new file mode 100644 index 0000000..28c406d Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/mariadb-provider-lifecycle.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/mariadb-provider-native.gz b/docs/automation/handoffs/pre-phase10/evidence/mariadb-provider-native.gz new file mode 100644 index 0000000..819a9da Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/mariadb-provider-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/model-probe-cases.gz b/docs/automation/handoffs/pre-phase10/evidence/model-probe-cases.gz new file mode 100644 index 0000000..3605f04 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/model-probe-cases.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/model-probe-client.gz b/docs/automation/handoffs/pre-phase10/evidence/model-probe-client.gz new file mode 100644 index 0000000..526f9e0 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/model-probe-client.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/model-probe-process.gz b/docs/automation/handoffs/pre-phase10/evidence/model-probe-process.gz new file mode 100644 index 0000000..7519493 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/model-probe-process.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/model-probe-results.gz b/docs/automation/handoffs/pre-phase10/evidence/model-probe-results.gz new file mode 100644 index 0000000..20d09ac Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/model-probe-results.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/model-verification-after-probe.gz b/docs/automation/handoffs/pre-phase10/evidence/model-verification-after-probe.gz new file mode 100644 index 0000000..373ff6a Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/model-verification-after-probe.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/model-verification.gz b/docs/automation/handoffs/pre-phase10/evidence/model-verification.gz new file mode 100644 index 0000000..373ff6a Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/model-verification.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/node-helpers-native.gz b/docs/automation/handoffs/pre-phase10/evidence/node-helpers-native.gz new file mode 100644 index 0000000..77243ba Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/node-helpers-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/npm-audit-native.gz b/docs/automation/handoffs/pre-phase10/evidence/npm-audit-native.gz new file mode 100644 index 0000000..637af00 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/npm-audit-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/npm-production-audit-native.gz b/docs/automation/handoffs/pre-phase10/evidence/npm-production-audit-native.gz new file mode 100644 index 0000000..9b51e4f Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/npm-production-audit-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/nuget-audit-native.gz b/docs/automation/handoffs/pre-phase10/evidence/nuget-audit-native.gz new file mode 100644 index 0000000..00b91f3 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/nuget-audit-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-1-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-1-native-projection-audit.gz new file mode 100644 index 0000000..7a2d587 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-1-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-1-native.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-1-native.gz new file mode 100644 index 0000000..2687410 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-1-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-2-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-2-native-projection-audit.gz new file mode 100644 index 0000000..546b780 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-2-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-2-native.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-2-native.gz new file mode 100644 index 0000000..5f11a0a Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-2-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-3-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-3-native-projection-audit.gz new file mode 100644 index 0000000..005eb7c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-3-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-3-native.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-3-native.gz new file mode 100644 index 0000000..1c02d94 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-3-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-4-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-4-native-projection-audit.gz new file mode 100644 index 0000000..ace29b7 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-4-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-4-native.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-4-native.gz new file mode 100644 index 0000000..297fd8a Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-4-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/ordinary-discovery.gz b/docs/automation/handoffs/pre-phase10/evidence/ordinary-discovery.gz new file mode 100644 index 0000000..66cc5f5 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/ordinary-discovery.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/original-proxy-failure.gz b/docs/automation/handoffs/pre-phase10/evidence/original-proxy-failure.gz new file mode 100644 index 0000000..a071af3 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/original-proxy-failure.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/pdf-admission-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/pdf-admission-native-projection-audit.gz new file mode 100644 index 0000000..05b1259 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/pdf-admission-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/pdf-admission-native.gz b/docs/automation/handoffs/pre-phase10/evidence/pdf-admission-native.gz new file mode 100644 index 0000000..54d0b32 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/pdf-admission-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/pip-audit-native.gz b/docs/automation/handoffs/pre-phase10/evidence/pip-audit-native.gz new file mode 100644 index 0000000..0d21186 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/pip-audit-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/post-processes.gz b/docs/automation/handoffs/pre-phase10/evidence/post-processes.gz new file mode 100644 index 0000000..d17eacb Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/post-processes.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/preferences-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/preferences-native-projection-audit.gz new file mode 100644 index 0000000..8d13ff8 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/preferences-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/preferences-native.gz b/docs/automation/handoffs/pre-phase10/evidence/preferences-native.gz new file mode 100644 index 0000000..ae09e63 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/preferences-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/preservation-register.gz b/docs/automation/handoffs/pre-phase10/evidence/preservation-register.gz new file mode 100644 index 0000000..7274a11 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/preservation-register.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-run-installed-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-run-installed-audit.gz new file mode 100644 index 0000000..5744054 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-run-installed-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-run-junit-01.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-run-junit-01.gz new file mode 100644 index 0000000..1c6b96d Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-run-junit-01.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-run-linux-pdf-post-04.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-run-linux-pdf-post-04.gz new file mode 100644 index 0000000..b6e1d1f Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-run-linux-pdf-post-04.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-run-linux-post-03.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-run-linux-post-03.gz new file mode 100644 index 0000000..6a8302a Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-run-linux-post-03.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-run-model-probe.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-run-model-probe.gz new file mode 100644 index 0000000..8c8d16c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-run-model-probe.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-run-post-02.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-run-post-02.gz new file mode 100644 index 0000000..6033859 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-run-post-02.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-run-regression-01.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-run-regression-01.gz new file mode 100644 index 0000000..94715c2 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-run-regression-01.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-run-worker-proof.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-run-worker-proof.gz new file mode 100644 index 0000000..101d8eb Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-run-worker-proof.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/producer-visual-package.gz b/docs/automation/handoffs/pre-phase10/evidence/producer-visual-package.gz new file mode 100644 index 0000000..9beffff Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/producer-visual-package.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/proxy-failure-cleanup.gz b/docs/automation/handoffs/pre-phase10/evidence/proxy-failure-cleanup.gz new file mode 100644 index 0000000..0fdc396 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/proxy-failure-cleanup.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/proxy-failure-state.gz b/docs/automation/handoffs/pre-phase10/evidence/proxy-failure-state.gz new file mode 100644 index 0000000..af4e35a Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/proxy-failure-state.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/python-docling-native.gz b/docs/automation/handoffs/pre-phase10/evidence/python-docling-native.gz new file mode 100644 index 0000000..aede5ab Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/python-docling-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/python-junit-processes.gz b/docs/automation/handoffs/pre-phase10/evidence/python-junit-processes.gz new file mode 100644 index 0000000..29db2e3 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/python-junit-processes.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/python-offline-native.gz b/docs/automation/handoffs/pre-phase10/evidence/python-offline-native.gz new file mode 100644 index 0000000..bed9297 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/python-offline-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/rate-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/rate-native-projection-audit.gz new file mode 100644 index 0000000..be63ff8 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/rate-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/rate-native.gz b/docs/automation/handoffs/pre-phase10/evidence/rate-native.gz new file mode 100644 index 0000000..103cf54 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/rate-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/rd21-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/rd21-native-projection-audit.gz new file mode 100644 index 0000000..630a56b Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/rd21-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/rd21-native.gz b/docs/automation/handoffs/pre-phase10/evidence/rd21-native.gz new file mode 100644 index 0000000..640f6cb Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/rd21-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/rd21-volume-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/rd21-volume-native-projection-audit.gz new file mode 100644 index 0000000..e10dedd Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/rd21-volume-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/rd21-volume-native.gz b/docs/automation/handoffs/pre-phase10/evidence/rd21-volume-native.gz new file mode 100644 index 0000000..d01865c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/rd21-volume-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/restore-native-apphost-native.gz b/docs/automation/handoffs/pre-phase10/evidence/restore-native-apphost-native.gz new file mode 100644 index 0000000..dfe375a Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/restore-native-apphost-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/typecheck-native.gz b/docs/automation/handoffs/pre-phase10/evidence/typecheck-native.gz new file mode 100644 index 0000000..bc0068c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/typecheck-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/verifier-process.gz b/docs/automation/handoffs/pre-phase10/evidence/verifier-process.gz new file mode 100644 index 0000000..7885899 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/verifier-process.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/verifier-source.gz b/docs/automation/handoffs/pre-phase10/evidence/verifier-source.gz new file mode 100644 index 0000000..85ce665 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/verifier-source.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/volume-native-projection-audit.gz b/docs/automation/handoffs/pre-phase10/evidence/volume-native-projection-audit.gz new file mode 100644 index 0000000..3458d7c Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/volume-native-projection-audit.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/volume-native.gz b/docs/automation/handoffs/pre-phase10/evidence/volume-native.gz new file mode 100644 index 0000000..2b1795e Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/volume-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-letter-proof-0.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-letter-proof-0.gz new file mode 100644 index 0000000..3369db0 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-letter-proof-0.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-original-letter.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-original-letter.gz new file mode 100644 index 0000000..337f2e7 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-original-letter.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-original-pdf.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-original-pdf.gz new file mode 100644 index 0000000..6d60321 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-original-pdf.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-template-completeness-native.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-template-completeness-native.gz new file mode 100644 index 0000000..04400f6 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-template-completeness-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-template-measurements.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-template-measurements.gz new file mode 100644 index 0000000..ca03e27 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-template-measurements.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-template-name-ink-native.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-template-name-ink-native.gz new file mode 100644 index 0000000..24af00f Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-template-name-ink-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-template-name-wrap-native.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-template-name-wrap-native.gz new file mode 100644 index 0000000..6bd49e3 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-template-name-wrap-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-template-oracle-native.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-template-oracle-native.gz new file mode 100644 index 0000000..fb02402 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-template-oracle-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/windows-template-sidebar-native.gz b/docs/automation/handoffs/pre-phase10/evidence/windows-template-sidebar-native.gz new file mode 100644 index 0000000..f9b8bfb Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/windows-template-sidebar-native.gz differ diff --git a/docs/automation/handoffs/pre-phase10/evidence/worker-process.gz b/docs/automation/handoffs/pre-phase10/evidence/worker-process.gz new file mode 100644 index 0000000..b4d68a6 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/evidence/worker-process.gz differ diff --git a/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-long-nb-first.jpg b/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-long-nb-first.jpg new file mode 100644 index 0000000..9c540cb Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-long-nb-first.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-long-nb-last.jpg b/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-long-nb-last.jpg new file mode 100644 index 0000000..0c96fa9 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-long-nb-last.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-short-en-first.jpg b/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-short-en-first.jpg new file mode 100644 index 0000000..4ec2f97 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-short-en-first.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-short-en-last.jpg b/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-short-en-last.jpg new file mode 100644 index 0000000..4ec2f97 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/letter-library-contact-short-en-last.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/manifest.json b/docs/automation/handoffs/pre-phase10/visual/manifest.json new file mode 100644 index 0000000..958d4ae --- /dev/null +++ b/docs/automation/handoffs/pre-phase10/visual/manifest.json @@ -0,0 +1,682 @@ +{ + "testedCommit": "5032ccb41514807c8ca3008c24ca6326be1170de", + "status": "OWNER_REVIEW_REQUIRED", + "humanAcceptance": "NOT TESTED", + "pdfFiles": 54, + "reviewedSource": "Actual fresh Windows browser/export corpus; native PDFs preserved byte for byte. Original PNGs and separate Linux native measurements retained.", + "limits": "JPEG contact sheets/previews are navigation aids, never replacement oracles. Inspect vector PDFs at 100%, first and final pages, then actual print and physical devices.", + "entries": [ + { + "path": "cv/dense-nb-ats-classic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-ats-classic/export.pdf", + "sourceSha256": "73e20ab7ab432845d039a5552f33a5899bc7c94c0ee0fc721f86801d611755d5", + "packagedSha256": "73e20ab7ab432845d039a5552f33a5899bc7c94c0ee0fc721f86801d611755d5", + "bytes": 114880, + "transform": "NONE" + }, + { + "path": "cv/dense-nb-code.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-code/export.pdf", + "sourceSha256": "4cff11587a96f9acd07e5c47bca960d574456e0bed8dfb5b74f0f3ab80689ac1", + "packagedSha256": "4cff11587a96f9acd07e5c47bca960d574456e0bed8dfb5b74f0f3ab80689ac1", + "bytes": 116096, + "transform": "NONE" + }, + { + "path": "cv/dense-nb-creative.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-creative/export.pdf", + "sourceSha256": "e1d84657b8599f50cd5a8b673aef8cecad640b81f61f8df2a5414c9a99f3037f", + "packagedSha256": "e1d84657b8599f50cd5a8b673aef8cecad640b81f61f8df2a5414c9a99f3037f", + "bytes": 138021, + "transform": "NONE" + }, + { + "path": "cv/dense-nb-elegant.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-elegant/export.pdf", + "sourceSha256": "253fc84632a231d5b8ff264a4d5b89a341afb90f7a588425ab1514ee29619b58", + "packagedSha256": "253fc84632a231d5b8ff264a4d5b89a341afb90f7a588425ab1514ee29619b58", + "bytes": 138972, + "transform": "NONE" + }, + { + "path": "cv/dense-nb-executive.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-executive/export.pdf", + "sourceSha256": "3dbfb962392656aa2adc6d0c341780106393a9cae3be020889cc624c9c7ec822", + "packagedSha256": "3dbfb962392656aa2adc6d0c341780106393a9cae3be020889cc624c9c7ec822", + "bytes": 99377, + "transform": "NONE" + }, + { + "path": "cv/dense-nb-minimal.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-minimal/export.pdf", + "sourceSha256": "32031605483b6e55f176901c01b43ad57f6c32130fe00e6e2d63ec1518f9123e", + "packagedSha256": "32031605483b6e55f176901c01b43ad57f6c32130fe00e6e2d63ec1518f9123e", + "bytes": 83898, + "transform": "NONE" + }, + { + "path": "cv/dense-nb-modern.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-modern/export.pdf", + "sourceSha256": "ed32735d1d42f57445f5ff6a00ae48e0413f651af68ad91515358c775cc5677b", + "packagedSha256": "ed32735d1d42f57445f5ff6a00ae48e0413f651af68ad91515358c775cc5677b", + "bytes": 129852, + "transform": "NONE" + }, + { + "path": "cv/dense-nb-nordic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-nordic/export.pdf", + "sourceSha256": "7a2fee103f05eff99e883a2efaf9769f34a652da29b66f3bbbde6b6f501f83d7", + "packagedSha256": "7a2fee103f05eff99e883a2efaf9769f34a652da29b66f3bbbde6b6f501f83d7", + "bytes": 135338, + "transform": "NONE" + }, + { + "path": "cv/dense-nb-technical.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/dense-nb-technical/export.pdf", + "sourceSha256": "9190f35c2eeabd9eb77fdfa75d80bfc151d4043c70a7657553b1a5f973a6bc91", + "packagedSha256": "9190f35c2eeabd9eb77fdfa75d80bfc151d4043c70a7657553b1a5f973a6bc91", + "bytes": 116299, + "transform": "NONE" + }, + { + "path": "cv/long-en-ats-classic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-ats-classic/export.pdf", + "sourceSha256": "d6d1eb20f7bc1b45c3f642d2ceaa7e54a8d045ae50139e2064032fd5e90519a3", + "packagedSha256": "d6d1eb20f7bc1b45c3f642d2ceaa7e54a8d045ae50139e2064032fd5e90519a3", + "bytes": 81650, + "transform": "NONE" + }, + { + "path": "cv/long-en-code.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-code/export.pdf", + "sourceSha256": "d57427b6ca752b81d60ccbfbd38880351fc8aea139673dbcb0e29129bab0d79f", + "packagedSha256": "d57427b6ca752b81d60ccbfbd38880351fc8aea139673dbcb0e29129bab0d79f", + "bytes": 80768, + "transform": "NONE" + }, + { + "path": "cv/long-en-creative.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-creative/export.pdf", + "sourceSha256": "d677f0c5897e2c5d3a46c827a92d26cf102e03fa95e64ed2d0c1f22f5ce11fca", + "packagedSha256": "d677f0c5897e2c5d3a46c827a92d26cf102e03fa95e64ed2d0c1f22f5ce11fca", + "bytes": 93249, + "transform": "NONE" + }, + { + "path": "cv/long-en-elegant.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-elegant/export.pdf", + "sourceSha256": "fd13d3ab56bff12013540f9e7a93c1f2c5b3b52084f59699ea13dd40faf626a6", + "packagedSha256": "fd13d3ab56bff12013540f9e7a93c1f2c5b3b52084f59699ea13dd40faf626a6", + "bytes": 97233, + "transform": "NONE" + }, + { + "path": "cv/long-en-executive.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-executive/export.pdf", + "sourceSha256": "ec124f2ed022fe19615150d3b0329a25dddf51f2233d1efc0920b56280eb9a61", + "packagedSha256": "ec124f2ed022fe19615150d3b0329a25dddf51f2233d1efc0920b56280eb9a61", + "bytes": 84041, + "transform": "NONE" + }, + { + "path": "cv/long-en-minimal.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-minimal/export.pdf", + "sourceSha256": "06dedef58dc75d701a55bf404a7f6e086254bac03247964a99183f355b4d3946", + "packagedSha256": "06dedef58dc75d701a55bf404a7f6e086254bac03247964a99183f355b4d3946", + "bytes": 68762, + "transform": "NONE" + }, + { + "path": "cv/long-en-modern.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-modern/export.pdf", + "sourceSha256": "dbf08f90de04588800ddb7ec9ab565a61598786f0f032f9814c74aa74db7a9fb", + "packagedSha256": "dbf08f90de04588800ddb7ec9ab565a61598786f0f032f9814c74aa74db7a9fb", + "bytes": 88633, + "transform": "NONE" + }, + { + "path": "cv/long-en-nordic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-nordic/export.pdf", + "sourceSha256": "ae1b63df59f8675f00b0a20b51c6844d24a6ea07971ec1ddaf580e7050c5013f", + "packagedSha256": "ae1b63df59f8675f00b0a20b51c6844d24a6ea07971ec1ddaf580e7050c5013f", + "bytes": 90783, + "transform": "NONE" + }, + { + "path": "cv/long-en-technical.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/long-en-technical/export.pdf", + "sourceSha256": "6c7e1728e1e284f9f2332492b0ec9cbf109f59d9858fa231ca5ceb0ab146488a", + "packagedSha256": "6c7e1728e1e284f9f2332492b0ec9cbf109f59d9858fa231ca5ceb0ab146488a", + "bytes": 82775, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-ats-classic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-ats-classic/export.pdf", + "sourceSha256": "33612ba88737d1689e8d4658b267ae18e6965c787e1835ef8765e0391a996e12", + "packagedSha256": "33612ba88737d1689e8d4658b267ae18e6965c787e1835ef8765e0391a996e12", + "bytes": 48546, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-code.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-code/export.pdf", + "sourceSha256": "247edd7b5528bb361749fff59faf4af004eb69a46ce61f1d0de53909c2db9b2e", + "packagedSha256": "247edd7b5528bb361749fff59faf4af004eb69a46ce61f1d0de53909c2db9b2e", + "bytes": 48769, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-creative.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-creative/export.pdf", + "sourceSha256": "44a51cb91b519df71e3b7d7bbd0b5230e14e60c08fde1fc568d8ff7dd2d74b80", + "packagedSha256": "44a51cb91b519df71e3b7d7bbd0b5230e14e60c08fde1fc568d8ff7dd2d74b80", + "bytes": 56010, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-elegant.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-elegant/export.pdf", + "sourceSha256": "a302c9edb3a2ae9a75350c9ef4aee0103fcb2457b90ffa0dde221f9322635a89", + "packagedSha256": "a302c9edb3a2ae9a75350c9ef4aee0103fcb2457b90ffa0dde221f9322635a89", + "bytes": 61013, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-executive.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-executive/export.pdf", + "sourceSha256": "f2ca4d5d88db6680cfe2d1cfacd42b4d5bfa2a4a1130359636c9dbf2ee4743aa", + "packagedSha256": "f2ca4d5d88db6680cfe2d1cfacd42b4d5bfa2a4a1130359636c9dbf2ee4743aa", + "bytes": 55760, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-minimal.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-minimal/export.pdf", + "sourceSha256": "c190c87effe87f181e82690f2e27303802aa2fb9741800a300e4ed3ffc83268e", + "packagedSha256": "c190c87effe87f181e82690f2e27303802aa2fb9741800a300e4ed3ffc83268e", + "bytes": 42575, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-modern.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-modern/export.pdf", + "sourceSha256": "d7796abace7ce555f687507495d369e23a7f281550cbfb084b1085f083775a9c", + "packagedSha256": "d7796abace7ce555f687507495d369e23a7f281550cbfb084b1085f083775a9c", + "bytes": 52012, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-nordic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-nordic/export.pdf", + "sourceSha256": "110623e6b0a775bd719d34426d0f981050aa8a528652acd3414f974920874521", + "packagedSha256": "110623e6b0a775bd719d34426d0f981050aa8a528652acd3414f974920874521", + "bytes": 53134, + "transform": "NONE" + }, + { + "path": "cv/medium-nb-technical.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/medium-nb-technical/export.pdf", + "sourceSha256": "3d6c82c98dd42cd5314892b109f3d4f70addbbbdf3cb346a75dc1bb6546421c2", + "packagedSha256": "3d6c82c98dd42cd5314892b109f3d4f70addbbbdf3cb346a75dc1bb6546421c2", + "bytes": 49084, + "transform": "NONE" + }, + { + "path": "cv/short-en-ats-classic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-ats-classic/export.pdf", + "sourceSha256": "64a4e460d157003e22939996e6b5cd58888592e2419f38d5e835792d559242f3", + "packagedSha256": "64a4e460d157003e22939996e6b5cd58888592e2419f38d5e835792d559242f3", + "bytes": 34177, + "transform": "NONE" + }, + { + "path": "cv/short-en-code.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-code/export.pdf", + "sourceSha256": "25eb2c6c051c292d2d351fc503ae40fd38290c14632c933141925d6ea55d7ede", + "packagedSha256": "25eb2c6c051c292d2d351fc503ae40fd38290c14632c933141925d6ea55d7ede", + "bytes": 33491, + "transform": "NONE" + }, + { + "path": "cv/short-en-creative.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-creative/export.pdf", + "sourceSha256": "c20f34d4dce542266314a29590e29ec50e9e4a77f3357d25f07fbf4d6c95ef1d", + "packagedSha256": "c20f34d4dce542266314a29590e29ec50e9e4a77f3357d25f07fbf4d6c95ef1d", + "bytes": 38811, + "transform": "NONE" + }, + { + "path": "cv/short-en-elegant.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-elegant/export.pdf", + "sourceSha256": "8c641ef3bc53a532f6400cabf53f0e6cd5e153e0977bde0ec7a39d29cb3c72a9", + "packagedSha256": "8c641ef3bc53a532f6400cabf53f0e6cd5e153e0977bde0ec7a39d29cb3c72a9", + "bytes": 43617, + "transform": "NONE" + }, + { + "path": "cv/short-en-executive.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-executive/export.pdf", + "sourceSha256": "4c94d01b4b0ed47b1f71004c3586a6709a9229a41fc16c883202aa006210aa51", + "packagedSha256": "4c94d01b4b0ed47b1f71004c3586a6709a9229a41fc16c883202aa006210aa51", + "bytes": 42520, + "transform": "NONE" + }, + { + "path": "cv/short-en-minimal.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-minimal/export.pdf", + "sourceSha256": "2c698ce22a070ea60f156c079460b7c75b2567e9682ac42598d1c9783f371154", + "packagedSha256": "2c698ce22a070ea60f156c079460b7c75b2567e9682ac42598d1c9783f371154", + "bytes": 30809, + "transform": "NONE" + }, + { + "path": "cv/short-en-modern.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-modern/export.pdf", + "sourceSha256": "ebeba8b31010af561aef2f1b12c07963eba663251daa8cf2adbc2dcef4c008ea", + "packagedSha256": "ebeba8b31010af561aef2f1b12c07963eba663251daa8cf2adbc2dcef4c008ea", + "bytes": 34862, + "transform": "NONE" + }, + { + "path": "cv/short-en-nordic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-nordic/export.pdf", + "sourceSha256": "321589ec6d923be7bf91938ffdc581a220af538e24868c041e2982679c67c619", + "packagedSha256": "321589ec6d923be7bf91938ffdc581a220af538e24868c041e2982679c67c619", + "bytes": 36338, + "transform": "NONE" + }, + { + "path": "cv/short-en-technical.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-technical/export.pdf", + "sourceSha256": "6982ec08a86c06c964855c9d27b522b2db7f806e035b650901cc4d40dadf3b3b", + "packagedSha256": "6982ec08a86c06c964855c9d27b522b2db7f806e035b650901cc4d40dadf3b3b", + "bytes": 33462, + "transform": "NONE" + }, + { + "path": "letters/long-nb-ats-classic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-ats-classic/export.pdf", + "sourceSha256": "c50655f6e10dc50466aa88647270d96453b56d6c3d9d3ce9fb5325e98fdc1236", + "packagedSha256": "c50655f6e10dc50466aa88647270d96453b56d6c3d9d3ce9fb5325e98fdc1236", + "bytes": 31451, + "transform": "NONE" + }, + { + "path": "letters/long-nb-code.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-code/export.pdf", + "sourceSha256": "5e3b8ff8fe066274f840f3e7bd0fe0ae35542b696637f551015a432692f3d58c", + "packagedSha256": "5e3b8ff8fe066274f840f3e7bd0fe0ae35542b696637f551015a432692f3d58c", + "bytes": 32938, + "transform": "NONE" + }, + { + "path": "letters/long-nb-creative.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-creative/export.pdf", + "sourceSha256": "ad429f9374a7014b7a2272ff569f75d2abb5c5db245caed554f9e86f47c16aac", + "packagedSha256": "ad429f9374a7014b7a2272ff569f75d2abb5c5db245caed554f9e86f47c16aac", + "bytes": 26814, + "transform": "NONE" + }, + { + "path": "letters/long-nb-elegant.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-elegant/export.pdf", + "sourceSha256": "a4e4badb183ff5e3b4251b00f203521d5c7933dbe53c1b71fae117133c1629fe", + "packagedSha256": "a4e4badb183ff5e3b4251b00f203521d5c7933dbe53c1b71fae117133c1629fe", + "bytes": 30175, + "transform": "NONE" + }, + { + "path": "letters/long-nb-executive.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-executive/export.pdf", + "sourceSha256": "f1590a636da4df3a449e3d1fef2d5fd8e3f4a7f1cc7213fb989a152d5d058521", + "packagedSha256": "f1590a636da4df3a449e3d1fef2d5fd8e3f4a7f1cc7213fb989a152d5d058521", + "bytes": 44704, + "transform": "NONE" + }, + { + "path": "letters/long-nb-minimal.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-minimal/export.pdf", + "sourceSha256": "18fb96f4b00d92bd4b27f9fd9cf36608baf09f0acf8a6d8fc84ca09c8307619e", + "packagedSha256": "18fb96f4b00d92bd4b27f9fd9cf36608baf09f0acf8a6d8fc84ca09c8307619e", + "bytes": 31482, + "transform": "NONE" + }, + { + "path": "letters/long-nb-modern.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-modern/export.pdf", + "sourceSha256": "15541510a907964a958c0c5caf37d77530b8c4d918174a02cb997a7e28f17322", + "packagedSha256": "15541510a907964a958c0c5caf37d77530b8c4d918174a02cb997a7e28f17322", + "bytes": 25125, + "transform": "NONE" + }, + { + "path": "letters/long-nb-nordic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-nordic/export.pdf", + "sourceSha256": "aed63864787759ab6d9fecd51ba589a5d1da89cb9935af2e21fdd83f1f615360", + "packagedSha256": "aed63864787759ab6d9fecd51ba589a5d1da89cb9935af2e21fdd83f1f615360", + "bytes": 27440, + "transform": "NONE" + }, + { + "path": "letters/long-nb-technical.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/long-nb-technical/export.pdf", + "sourceSha256": "9c816acc717037a85fb3f840adf67e047e48498aece05f54388c448078a01ff6", + "packagedSha256": "9c816acc717037a85fb3f840adf67e047e48498aece05f54388c448078a01ff6", + "bytes": 26940, + "transform": "NONE" + }, + { + "path": "letters/short-en-ats-classic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-ats-classic/export.pdf", + "sourceSha256": "3ff8b2186a8085029315a7d0df05b6ff93661faee8d5ef9e3a7dd71741940afe", + "packagedSha256": "3ff8b2186a8085029315a7d0df05b6ff93661faee8d5ef9e3a7dd71741940afe", + "bytes": 22612, + "transform": "NONE" + }, + { + "path": "letters/short-en-code.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-code/export.pdf", + "sourceSha256": "d9cd701acd93d6dc5801105d19b5c4c6a5c47bd5ec07d100f3397bf68a00f2fa", + "packagedSha256": "d9cd701acd93d6dc5801105d19b5c4c6a5c47bd5ec07d100f3397bf68a00f2fa", + "bytes": 23923, + "transform": "NONE" + }, + { + "path": "letters/short-en-creative.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-creative/export.pdf", + "sourceSha256": "aacbba53a6e756e242500fd0bf787ba03ef972f3e0e43c9f49fe5657f2ad22e0", + "packagedSha256": "aacbba53a6e756e242500fd0bf787ba03ef972f3e0e43c9f49fe5657f2ad22e0", + "bytes": 15826, + "transform": "NONE" + }, + { + "path": "letters/short-en-elegant.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-elegant/export.pdf", + "sourceSha256": "5ddae5f369a13974d0433d4873ec9e402e71f18a8b5527a7125b5b5a07faf6e4", + "packagedSha256": "5ddae5f369a13974d0433d4873ec9e402e71f18a8b5527a7125b5b5a07faf6e4", + "bytes": 21514, + "transform": "NONE" + }, + { + "path": "letters/short-en-executive.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-executive/export.pdf", + "sourceSha256": "d5667ffc4959aab619772eff236c92b2a4f733ed85248d850d218d9fa9226829", + "packagedSha256": "d5667ffc4959aab619772eff236c92b2a4f733ed85248d850d218d9fa9226829", + "bytes": 34474, + "transform": "NONE" + }, + { + "path": "letters/short-en-minimal.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-minimal/export.pdf", + "sourceSha256": "cef355e7e5581b7e0af077c6f50129121b4a9ae98af014cd992cc7e543a82bcd", + "packagedSha256": "cef355e7e5581b7e0af077c6f50129121b4a9ae98af014cd992cc7e543a82bcd", + "bytes": 22645, + "transform": "NONE" + }, + { + "path": "letters/short-en-modern.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-modern/export.pdf", + "sourceSha256": "416c501030d032ca3027881b702b0943814f84b86bb30bc8aa72580ce61051ec", + "packagedSha256": "416c501030d032ca3027881b702b0943814f84b86bb30bc8aa72580ce61051ec", + "bytes": 16391, + "transform": "NONE" + }, + { + "path": "letters/short-en-nordic.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-nordic/export.pdf", + "sourceSha256": "f21ff4c7fc287e1701671027ef9555a0a1de14dcb605f777016946aa2cdfb40a", + "packagedSha256": "f21ff4c7fc287e1701671027ef9555a0a1de14dcb605f777016946aa2cdfb40a", + "bytes": 16424, + "transform": "NONE" + }, + { + "path": "letters/short-en-technical.pdf", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/short-en-technical/export.pdf", + "sourceSha256": "0decce7c8aa06180e9dfffe969321885c439bb7f4e44b60f91ab6dd97626552a", + "packagedSha256": "0decce7c8aa06180e9dfffe969321885c439bb7f4e44b60f91ab6dd97626552a", + "bytes": 17078, + "transform": "NONE" + }, + { + "path": "contact-sheets/templates-contact-dense-nb-first.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/contact-dense-nb-first.png", + "sourceSha256": "77b380533230623c2e8d6a05525aa38c979e6bcccc6a0eb8f86e7c6e91e27a70", + "packagedSha256": "3887bc248787e0cb3fc88e0bddba08a7b5b12d10e132ae7f48cc2000d84ed7b2", + "bytes": 270757, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/templates-contact-dense-nb-last.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/contact-dense-nb-last.png", + "sourceSha256": "ec1d9c6feba8c1228e88773b6d5027d20f726b1c4f9512997e8bd9058118c9ff", + "packagedSha256": "02ad22ae33acc82862c01d11dc5fc8f9de14253108614a522442a23e1e116259", + "bytes": 90424, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/templates-contact-long-en-first.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/contact-long-en-first.png", + "sourceSha256": "cc075935265d1a6f2513b3df13ab7ed6b04b73bdd0cf145d03d92f8dda0e0983", + "packagedSha256": "d1b306b3e562c3c82dcdec83992b0419cf0c2f54ad9df2c6f95e57987328c050", + "bytes": 215772, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/templates-contact-long-en-last.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/contact-long-en-last.png", + "sourceSha256": "ab98cb9a7e2028f625826f271fa3aa629ba76a25dae7ba50895d32c41f6b6749", + "packagedSha256": "a1c01c0a0ca62286c9a1edbd3cf2553c4de39c243eb2bb5466f99d1d9f694af3", + "bytes": 105100, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/templates-contact-medium-nb-first.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/contact-medium-nb-first.png", + "sourceSha256": "bc115a8975048fdc74977597cfa7062cbc74a8f206f1bc670d646af10489eba1", + "packagedSha256": "d90ff9ad576d2c76a86991cdbf41b26e272ce92b0d0a26e3805911e5e5af2c04", + "bytes": 237575, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/templates-contact-medium-nb-last.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/contact-medium-nb-last.png", + "sourceSha256": "c1515e6d31b1b724007f94b63da8a1d525624c16d3fb849f8fd7311f64280591", + "packagedSha256": "6edc882f316c47c206a7ea121dd4ab2cc5036c1a7158181567060dc3571a2dfb", + "bytes": 120097, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/templates-contact-short-en-first.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/contact-short-en-first.png", + "sourceSha256": "4c4f384b443d1296ba1a72ed65be4013be43b40890bf736fa2f180075629b62c", + "packagedSha256": "c6a1061e34fc04fd7fd3ea3ef8c1c4078da348ab0afb6e8c1358444a85968064", + "bytes": 146941, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/templates-contact-short-en-last.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/contact-short-en-last.png", + "sourceSha256": "4c4f384b443d1296ba1a72ed65be4013be43b40890bf736fa2f180075629b62c", + "packagedSha256": "c6a1061e34fc04fd7fd3ea3ef8c1c4078da348ab0afb6e8c1358444a85968064", + "bytes": 146941, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/letter-library-contact-long-nb-first.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/contact-long-nb-first.png", + "sourceSha256": "f0fc4f97be026b3e8aa84219432f2f2e640d9e070e54b69bce3c6f0cbcdd4ce0", + "packagedSha256": "32eaf1332a2cb19aedd4d3527fa7344d8481376b4ee7a1077ddc574dd11f0ad4", + "bytes": 253895, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/letter-library-contact-long-nb-last.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/contact-long-nb-last.png", + "sourceSha256": "fa9a9eaf31d560b62620f21511d09a5bf67cf65f25278da89286bbe7b65b0248", + "packagedSha256": "a1c7141207ee39ce70644ae022874528187c6d61965bd1f082525bfd2c927a11", + "bytes": 96225, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/letter-library-contact-short-en-first.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/contact-short-en-first.png", + "sourceSha256": "87ed7017b3331d66134ab31c8e64418c5d5eef173ee92a11fd97e2e859c33b21", + "packagedSha256": "1426379a9f8242b55d47336fd957a69697db26fe0459fafd3968b4a51ee5165b", + "bytes": 97638, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "contact-sheets/letter-library-contact-short-en-last.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/letter-library/contact-short-en-last.png", + "sourceSha256": "87ed7017b3331d66134ab31c8e64418c5d5eef173ee92a11fd97e2e859c33b21", + "packagedSha256": "1426379a9f8242b55d47336fd957a69697db26fe0459fafd3968b4a51ee5165b", + "bytes": 97638, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-ats-classic/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-ats-classic/pdf-1.png", + "sourceSha256": "d8c75bafbd2d43a9ef96a030eeeee826e8ba64bbdf193da6a8a0548a1d10d464", + "packagedSha256": "1636569788efd8c36b4239af4f00da148d81f8e85681f3e9387bc8cbcf0f78a7", + "bytes": 79287, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-ats-classic/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-ats-classic/preview-1.png", + "sourceSha256": "ac36f05f8e85629817219ab6252e021b5ecc701b51daf090123cf504621d6d79", + "packagedSha256": "5b21f0cd1485e0476455e053360085d2b04be9c4a8486488991e897d00247409", + "bytes": 86278, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-code/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-code/pdf-1.png", + "sourceSha256": "bb423b2d98ae60c24b90f4959df7af0f176e61c901c9d0525db166a592f1dc1e", + "packagedSha256": "24b3e6f23a4afc274c3b0ee8ae30c95cb6e25ee81f1207cf8eddb2abead4ad1f", + "bytes": 72067, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-code/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-code/preview-1.png", + "sourceSha256": "a0646bec594f7ebfe52dc02ce143da369afe3f017c7dbb2c168c155df875876d", + "packagedSha256": "3b9b953e66b76617e7e26bc94a5e0d502b47bb2e858a8ec27fbc400b04606a21", + "bytes": 79693, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-creative/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-creative/pdf-1.png", + "sourceSha256": "30d491b7b75bd2c9884754e475ad136e9c9c595d4d40aafac93dddea2ca77a79", + "packagedSha256": "5dacb0506be783ac0a3177b192ca52243556e00e17f3b7ee5f59bdd777753d2a", + "bytes": 79324, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-creative/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-creative/preview-1.png", + "sourceSha256": "cf7fd7c64b6a47bea23d5c283250eba25f09d8f55fd514d4bf736383a97953d5", + "packagedSha256": "c31ac8d0acb7c4893dec43ae3be3c947a1ce774534e221d3275fac416024dfd9", + "bytes": 79838, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-elegant/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-elegant/pdf-1.png", + "sourceSha256": "bca4344466cf679aad24f5d2a54c7af4a5380fe27ec35c064df05a237fff0199", + "packagedSha256": "e5ece906cdddfc7c38558d4f4137b821e7263e778a161bfc0569b44f9a0091ba", + "bytes": 81731, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-elegant/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-elegant/preview-1.png", + "sourceSha256": "396beebb057905bcf0611afaacf28caaf27e04b10f98f25f1ab8725cfb5285eb", + "packagedSha256": "2b639065de31df8913601d7e54b6bac3527ef92bc895ac9f6466237795ba54bc", + "bytes": 89520, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-executive/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-executive/pdf-1.png", + "sourceSha256": "03d238477f91f41093fd0605bdff0b301ee12efdb74f37b049533c806773fa85", + "packagedSha256": "b325a725a7627121d6bbf00282f243b8675c48dd66439af29cbb174eb32bad13", + "bytes": 79994, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-executive/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-executive/preview-1.png", + "sourceSha256": "c3f9887ea1e63a0f7ed5045fb9d9d5f37e645c37c0f6f23c4063e13bcb1e0513", + "packagedSha256": "06f7531c4eb6f3563879e42bfb22cb7374ca8897a70e10997700e245bce7b69e", + "bytes": 89574, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-minimal/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-minimal/pdf-1.png", + "sourceSha256": "23e473f7040a3be04517bac8b03d01119ef8270af854dfa8d6898acbfc3ae874", + "packagedSha256": "187c02bb85c8d5f93ce6818960cb8ee95bfb16a879257a4034d67ceadf36c1cf", + "bytes": 75313, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-minimal/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-minimal/preview-1.png", + "sourceSha256": "02bcc4b2773e813bb44c05f1a4653bf9377880c471607a32904eef0f46a07103", + "packagedSha256": "04b35f15dd14b48ee9ff8ebf895c167fb36355510766427f43b0b78fe82c7945", + "bytes": 82985, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-modern/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-modern/pdf-1.png", + "sourceSha256": "6bf6fd26358e5408d5c92261f983d0df2a74cd08ddccc03e1c2da4ed4d70fa35", + "packagedSha256": "4be9580c3699028726172ceb8268949ef577bb6957c1f0830028aeba4cf0ff0a", + "bytes": 87215, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-modern/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-modern/preview-1.png", + "sourceSha256": "77b6e09bb5299871cdbf69361ffb683b8bc8c85813195fd2698bd82f5639a5dd", + "packagedSha256": "6858b5d45296f903146c50fe4e76ae425452a2d26c64feb70e5b0da0ea8a55bc", + "bytes": 94623, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-nordic/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-nordic/pdf-1.png", + "sourceSha256": "a85f0be2a48a34b31f815acb6fbc51c3f92e6cb2f8ddc8990495cbe1b5c25dea", + "packagedSha256": "528e0697c3b87b1cac73bf4e375071426cbe0879ad85ac93e094638f9ba09995", + "bytes": 74566, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-nordic/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-nordic/preview-1.png", + "sourceSha256": "9422e984b6237cc84743e32f9c50c7d4ecb190e8583ac8cd43a55c6d36310d43", + "packagedSha256": "970878f59483610dd9ffaa6e1766a0059487606ece84fd544d3347c859499efe", + "bytes": 79778, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-technical/pdf-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-technical/pdf-1.png", + "sourceSha256": "1ef42940ac56bf6a8f42a240634421586822bcd6790470b76f3baff8f8640c4c", + "packagedSha256": "4af168e5f1fc88b06c1f4613f6577fa34fabdccfb112eaef9aaa8ba4b0c9ebda", + "bytes": 75042, + "transform": "JPEG review compression; not a pixel oracle" + }, + { + "path": "comparison/short-en-technical/preview-1.jpg", + "source": ".artifacts/automation-handoff-01/regression-01/windows/templates/short-en-technical/preview-1.png", + "sourceSha256": "01da2c76b0dc162d7a61276fdb0f4c5bef44c91363032988853dca6628556d88", + "packagedSha256": "b6c881038f18ccd631139117a5102590ae958f2a85e290f47e3eaa5f286116f9", + "bytes": 77748, + "transform": "JPEG review compression; not a pixel oracle" + } + ] +} diff --git a/docs/automation/handoffs/pre-phase10/visual/owner-review.zip b/docs/automation/handoffs/pre-phase10/visual/owner-review.zip new file mode 100644 index 0000000..3c98638 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/owner-review.zip differ diff --git a/docs/automation/handoffs/pre-phase10/visual/templates-contact-dense-nb-first.jpg b/docs/automation/handoffs/pre-phase10/visual/templates-contact-dense-nb-first.jpg new file mode 100644 index 0000000..2eaace0 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/templates-contact-dense-nb-first.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/templates-contact-dense-nb-last.jpg b/docs/automation/handoffs/pre-phase10/visual/templates-contact-dense-nb-last.jpg new file mode 100644 index 0000000..6bdf36b Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/templates-contact-dense-nb-last.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/templates-contact-long-en-first.jpg b/docs/automation/handoffs/pre-phase10/visual/templates-contact-long-en-first.jpg new file mode 100644 index 0000000..5fcfe52 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/templates-contact-long-en-first.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/templates-contact-long-en-last.jpg b/docs/automation/handoffs/pre-phase10/visual/templates-contact-long-en-last.jpg new file mode 100644 index 0000000..7c965f7 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/templates-contact-long-en-last.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/templates-contact-medium-nb-first.jpg b/docs/automation/handoffs/pre-phase10/visual/templates-contact-medium-nb-first.jpg new file mode 100644 index 0000000..ba1e080 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/templates-contact-medium-nb-first.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/templates-contact-medium-nb-last.jpg b/docs/automation/handoffs/pre-phase10/visual/templates-contact-medium-nb-last.jpg new file mode 100644 index 0000000..c1c15d4 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/templates-contact-medium-nb-last.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/templates-contact-short-en-first.jpg b/docs/automation/handoffs/pre-phase10/visual/templates-contact-short-en-first.jpg new file mode 100644 index 0000000..feea4d4 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/templates-contact-short-en-first.jpg differ diff --git a/docs/automation/handoffs/pre-phase10/visual/templates-contact-short-en-last.jpg b/docs/automation/handoffs/pre-phase10/visual/templates-contact-short-en-last.jpg new file mode 100644 index 0000000..feea4d4 Binary files /dev/null and b/docs/automation/handoffs/pre-phase10/visual/templates-contact-short-en-last.jpg differ