{
  "schemaVersion": "kingy-practical-journey/1",
  "version": "20261029.2",
  "fitProducer": "kingy-local-lab",
  "taskEvidenceOwner": "local-ai-work-kits",
  "consumer": "kingy-local-ai-wordpress",
  "coverage": "Two retained measured task fixtures; one checker-only coding fixture with resource-deferred inference.",
  "model": {
    "repository": "Qwen/Qwen3-4B-GGUF",
    "revision": "bc640142c66e1fdd12af0bd68f40445458f3869b",
    "file": "Qwen3-4B-Q4_K_M.gguf",
    "sha256": "7485fe6f11af29433bc51cab58009521f205840f5b4ae3a32fa7f92e8534fdf5",
    "bytes": 2497280256,
    "quantization": "Q4_K_M"
  },
  "configuration": {
    "chip": "Apple M4 Pro",
    "memoryGiB": 24,
    "osVersion": "26.3",
    "osBuild": "25D125",
    "runtimeBuild": 11429,
    "runtimeCommit": "d81235049",
    "modelSha256": "7485fe6f11af29433bc51cab58009521f205840f5b4ae3a32fa7f92e8534fdf5",
    "contextTokens": 8192,
    "concurrency": 1,
    "gpuLayers": 0,
    "threads": 4,
    "batchThreads": 4,
    "cacheK": "f16",
    "cacheV": "f16",
    "pythonVersion": "3.12.14"
  },
  "tasks": [
    {
      "id": "invoice",
      "title": "Extract an invoice",
      "scope": "Turn a small text invoice into four typed fields, preserving a missing bank account as null.",
      "configuration": {
        "chip": "Apple M4 Pro",
        "memoryGiB": 24,
        "osVersion": "26.3",
        "osBuild": "25D125",
        "runtimeBuild": 11429,
        "runtimeCommit": "d81235049",
        "modelSha256": "7485fe6f11af29433bc51cab58009521f205840f5b4ae3a32fa7f92e8534fdf5",
        "contextTokens": 8192,
        "concurrency": 1,
        "gpuLayers": 0,
        "threads": 4,
        "batchThreads": 4,
        "cacheK": "f16",
        "cacheV": "f16",
        "pythonVersion": "3.12.14"
      },
      "download": "packs/invoice-20261027.1.zip",
      "downloadSha256": "0758666b59956cf5207b731f4ccf067b241a4703f2d698946fe8b6f98b08e44d",
      "downloadBytes": 64563,
      "taskEvidence": {
        "kind": "observed-local-model-run",
        "passed": true,
        "attempts": 1,
        "observedAt": "2026-10-28T05:06:04.925132+00:00",
        "answerSeconds": 4.180923915999301,
        "coldStartSeconds": 5.911885916997562,
        "peakSampledProcessRssBytes": 5206867968,
        "receipt": "packs/invoice-20261027.1.zip#fresh-run.json"
      },
      "checker": "index.html#invoice",
      "limitations": [
        "Historical retained measurements, recomputed for this release without rerunning a model. Only three repetitions per exact JSON task; inspect task-specific acceptance rather than inferring general capability.",
        "Sampled process RSS is not total unified memory, GPU allocation, available-memory requirement or a guarantee that another machine fits. RSS covers the full 18-attempt model cohort, including six summary attempts excluded from the strict JSON task results.",
        "Elapsed request time covers only the 12 linked strict JSON attempts; excludes model loading, warmup and human repair. Response lengths vary. No synthetic decode benchmark, power draw or total unified/GPU footprint was measured.",
        "The run began on battery power. GPU offload was requested with -ngl 99, but the retained evidence does not independently confirm actual device placement. Quantizations differ across the three models.",
        "The server reserved 4,096 tokens of context; these short JSON requests do not demonstrate quality across a fully occupied 4,096-token context or at larger context sizes.",
        "This export is newly packaged; the measurements are historical. Offline re-scoring does not create a new model run.",
        "Three attempts per task do not establish general reliability. The first two tasks passed 3/3; deadline classification passed 2/3; price/consent filtering passed 0/3.",
        "No model weights or runtime binary is included. No script downloads, starts a server, or calls any model API.",
        "This uses supplied plain text. OCR, invoices with tables, currencies beyond USD and real supplier documents were not measured.",
        "Fresh sample is one exposed synthetic fixture, not a new held-out qualification or a general accuracy estimate. Global workload, swap and filesystem cache were not controlled.",
        "Fresh process RSS samples do not measure total unified memory. Wall power, human review time and cloud replacement savings were not measured."
      ],
      "repairs": []
    },
    {
      "id": "search",
      "title": "Search PDFs with citations",
      "scope": "Find an explicit loan policy in two small public synthetic PDFs and retain its source page and quote.",
      "configuration": {
        "chip": "Apple M4 Pro",
        "memoryGiB": 24,
        "osVersion": "26.3",
        "osBuild": "25D125",
        "runtimeBuild": 11429,
        "runtimeCommit": "d81235049",
        "modelSha256": "7485fe6f11af29433bc51cab58009521f205840f5b4ae3a32fa7f92e8534fdf5",
        "contextTokens": 8192,
        "concurrency": 1,
        "gpuLayers": 0,
        "threads": 4,
        "batchThreads": 4,
        "cacheK": "f16",
        "cacheV": "f16",
        "pythonVersion": "3.12.14"
      },
      "download": "packs/search-20261027.1.zip",
      "downloadSha256": "fdc4a0ade2c8880cd6480d345ede0cff780aad95a81ff4b194db5fe678b09b3f",
      "downloadBytes": 140225,
      "taskEvidence": {
        "kind": "observed-local-model-run",
        "passed": true,
        "attempts": 1,
        "observedAt": "2026-10-28T05:03:12.568160+00:00",
        "answerSeconds": 80.8268105840034,
        "coldStartSeconds": 3.57617337499687,
        "peakSampledProcessRssBytes": 5591498752,
        "receipt": "packs/search-20261027.1.zip#fresh-run.json"
      },
      "checker": "index.html#search",
      "limitations": [
        "The four exposed self-tests are development examples, not a new held-out result. The original Oct18 release has separate dated forty-question evaluation evidence.",
        "The browser compares this one public sample exactly. The ZIP checker re-grades all four original outputs against the original PDFs and frozen rubric.",
        "English text-bearing PDFs only; at most 30 pages and two requested fields per question. OCR, scanned PDFs and broad synthesis are not established.",
        "Answer time includes retrieval and per-field model requests; PDF parsing, indexing, loading and cold start are separate. Process RSS is not total unified memory; wall power was not measured.",
        "Fresh sample is one exposed synthetic fixture, not a new held-out qualification or a general accuracy estimate. Global workload, swap and filesystem cache were not controlled.",
        "Fresh process RSS samples do not measure total unified memory. Wall power, human review time and cloud replacement savings were not measured."
      ],
      "repairs": []
    },
    {
      "id": "coding",
      "title": "Repair integer billing rounding",
      "scope": "One public Python fixture; one fixed change; original seven tests. No general coding ability claim.",
      "configuration": {
        "chip": "Apple M4 Pro",
        "memoryGiB": 24,
        "osVersion": "26.3",
        "osBuild": "25D125",
        "runtimeBuild": 11429,
        "runtimeCommit": "d81235049",
        "modelSha256": "7485fe6f11af29433bc51cab58009521f205840f5b4ae3a32fa7f92e8534fdf5",
        "contextTokens": 8192,
        "concurrency": 1,
        "gpuLayers": 0,
        "threads": 4,
        "batchThreads": 4,
        "cacheK": "f16",
        "cacheV": "f16",
        "pythonVersion": "3.14.0"
      },
      "download": "packs/coding-20261029.2.zip",
      "downloadSha256": "627368b5479142243eb02f90e7ef8a5117d8b9a54c12132240d2857f62448cfc",
      "downloadBytes": 12031,
      "taskEvidence": {
        "kind": "resource-deferred",
        "passed": false,
        "attempts": 0,
        "preflightAttempts": 2,
        "observedAt": "2026-10-29T22:41:33.400007+00:00",
        "reason": "Require normal memory pressure and 15 GiB free before a new sample.",
        "receipt": "coding-preflight-20261029.2.json",
        "modelRequestAttempts": 0,
        "inferencePerformed": false
      },
      "checker": "coding-manifest-20261029.2.json",
      "limitations": [
        "No fresh model execution yet. Corrected project notes remain a separate existing task and do not count as coding evidence.",
        "A checker fixture pass is not model task evidence. Nearby hardware and changed dependencies remain unverified."
      ],
      "repairs": [],
      "runnerRevision": "20261029.2: phase-accurate request accounting; exact setup/frozen task guards; no new model run"
    }
  ],
  "memoryStatus": "insufficient-information",
  "memoryReason": "The retained estimator requires full-GPU placement; these exact task runs used CPU-only placement. No second estimator or allocation claim is created.",
  "repairStatus": "No retained same-task failure/correction/rerun packet yet qualifies. Links below are version-scoped reference repairs, not reproduced repairs for these tasks."
}
