{
  "execution": {
    "check": {
      "commands": [
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/zero.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/classify.awk",
          "build/tests/zero/validated.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/select.awk",
          "build/tests/zero/classified.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/summarize.awk",
          "build/tests/zero/classified.tsv",
          "build/tests/zero/usable.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/missing.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/classify.awk",
          "build/tests/missing/validated.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/select.awk",
          "build/tests/missing/classified.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/summarize.awk",
          "build/tests/missing/classified.tsv",
          "build/tests/missing/usable.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/rejected.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/classify.awk",
          "build/tests/rejected/validated.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/select.awk",
          "build/tests/rejected/classified.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/summarize.awk",
          "build/tests/rejected/classified.tsv",
          "build/tests/rejected/usable.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/priority.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/classify.awk",
          "build/tests/priority/validated.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/select.awk",
          "build/tests/priority/classified.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/summarize.awk",
          "build/tests/priority/classified.tsv",
          "build/tests/priority/usable.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/header-only.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/classify.awk",
          "build/tests/header-only/validated.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/select.awk",
          "build/tests/header-only/classified.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/summarize.awk",
          "build/tests/header-only/classified.tsv",
          "build/tests/header-only/usable.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/empty.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/duplicate.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/status.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/fields.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/number.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/invalid-number.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/scientific.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/classify.awk",
          "build/tests/scientific/validated.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/select.awk",
          "build/tests/scientific/classified.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/summarize.awk",
          "build/tests/scientific/classified.tsv",
          "build/tests/scientific/usable.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/order.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/classify.awk",
          "build/tests/order/validated.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/select.awk",
          "build/tests/order/classified.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/summarize.awk",
          "build/tests/order/classified.tsv",
          "build/tests/order/usable.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/header.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/range.tsv"
        ],
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "tests/fixtures/empty-group.tsv"
        ]
      ],
      "exit": 0,
      "operations": [
        {
          "actual": "build/results/summary.tsv",
          "api": "Python bytes equality",
          "expected": "tests/expected-summary.tsv"
        }
      ],
      "outputs": {
        "build/checks.json": "6040c4a3d3399ec61f19dc178bb556ae389de5ebf218ce2fa587c39262f8b4b5"
      }
    },
    "classify": {
      "commands": [
        [
          "awk",
          "-f",
          "build/programs/classify.awk",
          "build/results/validated.tsv"
        ]
      ],
      "exit": 0,
      "operations": [],
      "outputs": {
        "build/results/classified.tsv": "815dcd21afe440ffec0c0071d57ff8d7038df461f4e0361768ad5945941e10b5"
      }
    },
    "plot": {
      "commands": [
        [
          "gnuplot",
          "-e",
          "SUMMARY='build/results/summary.tsv';SVG='build/results/figure.svg';PDF='build/results/figure.pdf';GROUPS=2",
          "build/programs/plot.gp"
        ]
      ],
      "exit": 0,
      "operations": [],
      "outputs": {
        "build/results/figure.pdf": "9ee35edd715b01eb6550638066696108476569f33e66e4ebae9ce8f4015344f4",
        "build/results/figure.svg": "d28c9993b84275b461a6c908f9fe7e533ab8d91d632de32bcf2c790a993d8f9e"
      }
    },
    "select": {
      "commands": [
        [
          "awk",
          "-f",
          "build/programs/select.awk",
          "build/results/classified.tsv"
        ]
      ],
      "exit": 0,
      "operations": [],
      "outputs": {
        "build/results/usable.tsv": "1907b0930662e56e102dec184df34a16a9c28663170a8d1ac4f2300abc8d0097"
      }
    },
    "summarize": {
      "commands": [
        [
          "awk",
          "-f",
          "build/programs/summarize.awk",
          "build/results/classified.tsv",
          "build/results/usable.tsv"
        ]
      ],
      "exit": 0,
      "operations": [],
      "outputs": {
        "build/results/summary.tsv": "d5e735386050c8e943ad0cad20884440242df32732e2f228fa510a647db62201"
      }
    },
    "validate": {
      "commands": [
        [
          "awk",
          "-f",
          "build/programs/validate.awk",
          "data/measurements.tsv"
        ]
      ],
      "exit": 0,
      "operations": [],
      "outputs": {
        "build/results/validated.tsv": "20bc1f66027d68f3bfb6c14c9fc9056645df8b347970c28b45c1ce1a75603e3c"
      }
    }
  },
  "git": {
    "commit": "c1ccc8f2af94130907df580638cbe4660bed836b",
    "dirty": true
  },
  "inputs": {
    "data/measurements.tsv": "20bc1f66027d68f3bfb6c14c9fc9056645df8b347970c28b45c1ce1a75603e3c",
    "tests/cases.json": "e5ed5984ffb2989512b8c97c1893be63ca830b70f5e48ed4ce9fc6dab9ac06c7",
    "tests/expected-summary.tsv": "d5e735386050c8e943ad0cad20884440242df32732e2f228fa510a647db62201",
    "tests/fixtures/duplicate.tsv": "853e155287c7b79f58e9a14aab84886aaa87e11b772799dd7b942a6b5e9be9f4",
    "tests/fixtures/empty-group.tsv": "7c69e00c56be7309f67d3bb05aa776fbc6aa23c400a25ab1b17334d0b9be3b27",
    "tests/fixtures/empty.tsv": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "tests/fixtures/fields.tsv": "03af4a359e48f2180e1a91ebf0b36c220ed377a99b1c4a3efa7e615f0377c1de",
    "tests/fixtures/header-only.tsv": "dd3ad93555ab3ba55d5f214aa034964f34c98bac9c7765a0cce126db831b2b42",
    "tests/fixtures/header.tsv": "e1c03362e7e8ee88113ae9777195c769de23ab95eac0e4426eb29ac66b4f190f",
    "tests/fixtures/invalid-number.tsv": "6fdf56d8a4215447654eb1e3900eb51398307255b070b0190e5ecf73142b328f",
    "tests/fixtures/missing.tsv": "fa73a0b59c3e1c668f08be64e9552416e9571ce6c68774587d1c2caa79726475",
    "tests/fixtures/number.tsv": "89798c429ff37a02892cf346b094d6c3168aca26c2bec3d3e8cd1b50d9fee30a",
    "tests/fixtures/order.tsv": "39dc9280d34e79f06d5f34064c15fc071cc1a10f4c3144ba87c8e639d5e7041a",
    "tests/fixtures/priority.tsv": "a5beaa96b92b04d68a25fee25b8f0a71ee026890892ebc7fe720000762dd5891",
    "tests/fixtures/range.tsv": "98c0246058815d503447ac4cce9de41f1df7952610c6c871c588df9b916fdd7a",
    "tests/fixtures/rejected.tsv": "3daa2914bab22bf2458dbe6ae9cd5f5d8a8354e4ad8033e679829deb3205f05f",
    "tests/fixtures/scientific.tsv": "0daa04588dd67a116a5b4320c8a8cc0b3cb1992d4d480ff9f6fb514192a025fb",
    "tests/fixtures/status.tsv": "6d99fcc4a4ac3f50f3a97639eec61713b6d925b8133408522637f3aa353db993",
    "tests/fixtures/zero.tsv": "6bd3476aef942501a0f61a1099efdec4fe35a7296e4145cf00aaaa6de05535de"
  },
  "invocation": {
    "bootstrap": [
      "python3",
      "build.py",
      "all",
      "--jobs",
      "4",
      "--awk",
      "awk"
    ],
    "cwd": ".",
    "make": [
      "gmake",
      "--silent",
      "--no-print-directory",
      "-rR",
      "-j",
      "4",
      "-f",
      "build/workflow.mk",
      "all",
      "PYTHON=python3",
      "AWK=awk"
    ]
  },
  "parameters": {
    "empty_input": "zero bytes: error 2; header only: no groups",
    "exclusion_priority": [
      "invalid",
      "NA"
    ],
    "locale": "C",
    "mean_format": "two decimal places; NA when n_used=0",
    "missing": "NA",
    "number_format": "finite decimal/scientific; abs(value)<=1000000",
    "output_order": "ASCII group ascending",
    "status": [
      "valid",
      "invalid"
    ],
    "units": "a.u."
  },
  "programs": {
    "build/programs/classify.awk": "044b31022ef7a9618c1b3bb5ab700f2709228f50353ad179eb77ac14349d5cbd",
    "build/programs/contract.json": "2e2e6d8865c6f66598265e70fe4fc74cfbe277fe25feac7beb22fba8bd6776fa",
    "build/programs/plot.gp": "8de4390e0aec373991fcce61399742b6ae67c28d8295039d56d0aacebbce96ca",
    "build/programs/report-template.org": "b72e02c9151d188ea38c0d98eaf3ab7237b7c7d7e1b8e891a707a5a9aeaa406e",
    "build/programs/report.css": "8e9673b92ac5bc672356a9b1d02646bb23ada88642eb80c9e46bfdeedb302759",
    "build/programs/select.awk": "9fca97a1125a21316bf88a386ff4b525d44182d0d6100bfca1428d60c5ba1253",
    "build/programs/summarize.awk": "5918f57c4642e7ed9aca5bc571c4c83049536ff263885e22f135a33a07616050",
    "build/programs/validate.awk": "6d572270ab039a1cc02fc5fdf969386ba2cbea4d22dcbf4a75a288ab0b66ea48",
    "build/tools/pipeline.py": "78554a76ea510156134986a66498de560150743df416249b3a05a9d6eafe95b7",
    "build/workflow.mk": "e37cb59ff98bfaf1449641e57ebb72d5c040d86b8b7a8d27bd014ecee0601d55"
  },
  "question": "Group mean of usable fictional measurements",
  "results": {
    "build/checks.json": "6040c4a3d3399ec61f19dc178bb556ae389de5ebf218ce2fa587c39262f8b4b5",
    "build/results/classified.tsv": "815dcd21afe440ffec0c0071d57ff8d7038df461f4e0361768ad5945941e10b5",
    "build/results/figure.pdf": "9ee35edd715b01eb6550638066696108476569f33e66e4ebae9ce8f4015344f4",
    "build/results/figure.svg": "d28c9993b84275b461a6c908f9fe7e533ab8d91d632de32bcf2c790a993d8f9e",
    "build/results/summary.tsv": "d5e735386050c8e943ad0cad20884440242df32732e2f228fa510a647db62201",
    "build/results/usable.tsv": "1907b0930662e56e102dec184df34a16a9c28663170a8d1ac4f2300abc8d0097",
    "build/results/validated.tsv": "20bc1f66027d68f3bfb6c14c9fc9056645df8b347970c28b45c1ce1a75603e3c"
  },
  "schema": 1,
  "scope": "Same scientific tables for the specified input and recorded environment. Manifest excludes itself, receipts generated after it, and the downstream reports.",
  "sources": {
    "bootstrap.el": "92870a87d31ef7b562e18e5e257788901f234c4bb6dee99a5033d23ccf7e597e",
    "build.py": "198e10e3c882af5810bf946d08b453ec0e47872a7e450249f44e7f6f7a3d81c2",
    "research.org": "27708922eeaf5c45db13bc359857057ecd389380c35b657bb6225e2f3f4f7aa9"
  },
  "tangle": [
    "emacs",
    "--batch",
    "-Q",
    "--script",
    "bootstrap.el",
    "tangle",
    "research.org"
  ],
  "versions": {
    "PyMuPDF": "1.28.2",
    "awk": "awk version 20200816",
    "awk_binary_sha256": "310e75b917c4d346cecb6ffab9ca88507870242347a6cf0110eef4aa73b6f809",
    "emacs": "31.1 / Org 9.8.7",
    "gnuplot": "gnuplot 6.0 patchlevel 6",
    "make": "GNU Make 4.4.1",
    "python": "3.14.10",
    "weasyprint": "70.0"
  }
}
