{
  "base": "c04ffca436f86e18ad236c191c02ab58a750db4f",
  "environment": {
    "python": "3.12.14",
    "implementation": "CPython",
    "platform": "Linux-6.18.44-x86_64-with-glibc2.41",
    "six": "1.17.0",
    "pytest": "9.1.1",
    "setuptools": "84.0.0",
    "wheel": "0.48.0"
  },
  "coverage": {
    "declarations": 268,
    "kinds": {
      "function": 112,
      "class": 9,
      "method": 143,
      "alias": 4
    },
    "constants": 7,
    "omitted_declarations": [],
    "module_counts": {
      "gem.bezier": 12,
      "gem.common": 12,
      "gem.legendre": 6,
      "gem.matrix": 57,
      "gem.plane": 15,
      "gem.quaternion": 65,
      "gem.ray": 7,
      "gem.spherical_harmonics": 18,
      "gem.vector": 76
    },
    "new_reference_examples": 16,
    "limitations": "Coverage checks exact declarations/aliases, exposed buffers and reexport identity, not exhaustive validation of all possible input domains."
  },
  "pytest": {
    "passed": 2249,
    "failed": 0,
    "xfail": 0,
    "skipped": 0,
    "seconds": 8.6
  },
  "source_check": {
    "base": "dc418923c692b609a9fc611c66433e5950e0a321",
    "pages": [
      "ROADMAP.md",
      "docs/README.md",
      "docs/development/roadmap.md",
      "docs/development/verification.md",
      "docs/architecture/philosophy.md",
      "docs/architecture/conventions.md",
      "docs/architecture/compatibility.md",
      "docs/architecture/api-inventory.md",
      "README.md",
      "docs/getting-started/README.md",
      "docs/getting-started/installation.md",
      "docs/getting-started/quick-start.md",
      "docs/getting-started/verification.md",
      "docs/api/bezier.md",
      "docs/api/common.md",
      "docs/api/coverage.md",
      "docs/api/decisions.md",
      "docs/api/index.md",
      "docs/api/legacy.md",
      "docs/api/legendre.md",
      "docs/api/matrix.md",
      "docs/api/plane.md",
      "docs/api/projection.md",
      "docs/api/quaternion.md",
      "docs/api/ray.md",
      "docs/api/spherical-harmonics.md",
      "docs/api/transformations.md",
      "docs/api/vector.md"
    ],
    "links_checked": 313,
    "source_declarations_checked": 268,
    "examples_executed": 29,
    "api_reference": {
      "declarations": 268,
      "constants": 7,
      "runtime_signatures_checked": true,
      "omitted_declarations": []
    },
    "protected_files_unchanged": 93,
    "protected_sha256": "701db31c85d278d7d547adca3312ee58f2296dc892a6a9aee10500187ecc5196"
  },
  "installed_wheel_check": {
    "base": "dc418923c692b609a9fc611c66433e5950e0a321",
    "pages": [
      "ROADMAP.md",
      "docs/README.md",
      "docs/development/roadmap.md",
      "docs/development/verification.md",
      "docs/architecture/philosophy.md",
      "docs/architecture/conventions.md",
      "docs/architecture/compatibility.md",
      "docs/architecture/api-inventory.md",
      "README.md",
      "docs/getting-started/README.md",
      "docs/getting-started/installation.md",
      "docs/getting-started/quick-start.md",
      "docs/getting-started/verification.md",
      "docs/api/bezier.md",
      "docs/api/common.md",
      "docs/api/coverage.md",
      "docs/api/decisions.md",
      "docs/api/index.md",
      "docs/api/legacy.md",
      "docs/api/legendre.md",
      "docs/api/matrix.md",
      "docs/api/plane.md",
      "docs/api/projection.md",
      "docs/api/quaternion.md",
      "docs/api/ray.md",
      "docs/api/spherical-harmonics.md",
      "docs/api/transformations.md",
      "docs/api/vector.md"
    ],
    "links_checked": 313,
    "source_declarations_checked": 268,
    "examples_executed": 29,
    "example_package": "/tmp/phase4c-wheel-env/lib/python3.12/site-packages/gem/__init__.py",
    "api_reference": {
      "declarations": 268,
      "constants": 7,
      "runtime_signatures_checked": true,
      "omitted_declarations": []
    },
    "protected_files_unchanged": 93,
    "protected_sha256": "701db31c85d278d7d547adca3312ee58f2296dc892a6a9aee10500187ecc5196"
  },
  "installed_sdist_check": {
    "base": "dc418923c692b609a9fc611c66433e5950e0a321",
    "pages": [
      "ROADMAP.md",
      "docs/README.md",
      "docs/development/roadmap.md",
      "docs/development/verification.md",
      "docs/architecture/philosophy.md",
      "docs/architecture/conventions.md",
      "docs/architecture/compatibility.md",
      "docs/architecture/api-inventory.md",
      "README.md",
      "docs/getting-started/README.md",
      "docs/getting-started/installation.md",
      "docs/getting-started/quick-start.md",
      "docs/getting-started/verification.md",
      "docs/api/bezier.md",
      "docs/api/common.md",
      "docs/api/coverage.md",
      "docs/api/decisions.md",
      "docs/api/index.md",
      "docs/api/legacy.md",
      "docs/api/legendre.md",
      "docs/api/matrix.md",
      "docs/api/plane.md",
      "docs/api/projection.md",
      "docs/api/quaternion.md",
      "docs/api/ray.md",
      "docs/api/spherical-harmonics.md",
      "docs/api/transformations.md",
      "docs/api/vector.md"
    ],
    "links_checked": 313,
    "source_declarations_checked": 268,
    "examples_executed": 29,
    "example_package": "/tmp/phase4c-sdist-env/lib/python3.12/site-packages/gem/__init__.py",
    "api_reference": {
      "declarations": 268,
      "constants": 7,
      "runtime_signatures_checked": true,
      "omitted_declarations": []
    },
    "protected_files_unchanged": 93,
    "protected_sha256": "701db31c85d278d7d547adca3312ee58f2296dc892a6a9aee10500187ecc5196"
  },
  "architecture_check": {
    "base": "dc418923c692b609a9fc611c66433e5950e0a321",
    "pages": [
      "ROADMAP.md",
      "docs/README.md",
      "docs/development/roadmap.md",
      "docs/development/verification.md",
      "docs/architecture/philosophy.md",
      "docs/architecture/conventions.md",
      "docs/architecture/compatibility.md",
      "docs/architecture/api-inventory.md"
    ],
    "links_checked": 131,
    "source_declarations_checked": 268,
    "examples_executed": 4,
    "protected_files_unchanged": 93,
    "protected_sha256": "701db31c85d278d7d547adca3312ee58f2296dc892a6a9aee10500187ecc5196"
  },
  "build": {
    "wheel": "gem-0.1.12-py3-none-any.whl",
    "sdist": "gem-0.1.12.tar.gz",
    "directory": "/tmp/phase4c-source/dist",
    "source": "Clean local clone of merged master; protected runtime, packaging and legacy README.rst are byte-identical to this documentation branch. New API Markdown is not added to unchanged packaging manifests."
  },
  "commands": [
    "git clone --no-hardlinks /workspace/pyGameMath /tmp/phase4c-source",
    "python3.12 -m venv /tmp/phase4c-wheel-env",
    "/tmp/phase4c-wheel-env/bin/python -m pip install --no-index --find-links /tmp/phase4b-dependencies six setuptools wheel packaging",
    "/tmp/phase4c-wheel-env/bin/python setup.py sdist bdist_wheel",
    "/tmp/phase4c-wheel-env/bin/python -m pip install --no-index dist/gem-0.1.12-py3-none-any.whl",
    "/tmp/phase4c-wheel-env/bin/python -I /workspace/pyGameMath/tools/check_architecture_docs.py --examples --getting-started --api-reference --package-root /tmp/phase4c-wheel-env/lib/python3.12/site-packages --output /tmp/phase4c-wheel-check.json",
    "/workspace/.venvs/pyGameMath/bin/python -m pytest -q",
    "/workspace/.venvs/pyGameMath/bin/python tools/check_architecture_docs.py --examples --getting-started --api-reference --output /tmp/phase4c-source-check.json",
    "/workspace/.venvs/pyGameMath/bin/python tools/check_architecture_docs.py --examples --output /tmp/phase4c-architecture.json",
    "PIP_NO_INDEX=1 PIP_FIND_LINKS=/tmp/phase4b-dependencies /tmp/phase4c-sdist-env/bin/python -m pip install /tmp/phase4c-sdist/gem-0.1.12",
    "/tmp/phase4c-sdist-env/bin/python -I /workspace/pyGameMath/tools/check_architecture_docs.py --examples --getting-started --api-reference --package-root /tmp/phase4c-sdist-env/lib/python3.12/site-packages --output /tmp/phase4c-sdist-check.json"
  ],
  "working_directories": "Build/wheel install in /tmp/phase4c-source; isolated installed checks in /tmp; suite/source checks in /workspace/pyGameMath. Sdist extracted with standard-library tarfile safe data filter into /tmp/phase4c-sdist before its isolated install. Offline build wheels were locally supplied; no optional numerical/renderer dependency was needed.",
  "checker_fault_cases": [
    "Missing coverage entry rejected with ValueError.",
    "Changed documented signature rejected with ValueError."
  ],
  "open_decisions": "docs/api/decisions.md; no new mathematical contract or runtime behavior chosen",
  "limitations": [
    "Only CPython 3.12/Linux executed; no support-matrix changes.",
    "New docs are source-tree Markdown, not a new packaged documentation site.",
    "No uniform malformed/nonfinite-input guarantees; prerequisites and checked errors are distinguished."
  ]
}
