{
  "capability_id": "mechanical.statics.incline_friction",
  "tool_id": "incline-friction",
  "engine": "incline-friction",
  "calculation_version": "1.0.0",
  "generated_at": "2026-11-10T05:18:42.163Z",
  "engine_build": "2026-09-27",
  "test_count": 7,
  "passed": 7,
  "failed": 0,
  "tests_summary": {
    "golden": {
      "passed": 3,
      "total": 3
    },
    "boundary": {
      "passed": 4,
      "total": 4
    },
    "property": {
      "passed": 0,
      "total": 0
    }
  },
  "engine_tested": true,
  "expert_reviewed": false,
  "internally_reviewed": false,
  "review_kind": null,
  "source_checked": true,
  "reviewed_by": null,
  "reviewer_role": null,
  "last_reviewed": null,
  "expert_review": {
    "status": "optional_not_performed",
    "reviewer": null,
    "scope": [
      "formula",
      "input semantics",
      "assumptions",
      "limitations",
      "sources",
      "tests"
    ],
    "note": "Domain expert review is optional under CVP (CVP-EXP-01). Absence does not block CVP Verified. See Review policy for supplemental domain assurance."
  },
  "internal_review": {
    "status": "not_applicable",
    "reviewer": null
  },
  "page": "https://www.calculatorx.com/calc/mechanical/incline-friction",
  "api": "https://www.calculatorx.com/api/v1/calc/incline-friction",
  "schema_input": "https://www.calculatorx.com/schemas/mechanical.statics.incline_friction.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/mechanical.statics.incline_friction.output.json",
  "assumptions": [],
  "limitations": [
    "P is parallel to the plane and positive up the plane",
    "F is positive up the plane and opposes the impending motion",
    "μ is the coefficient at impending slip",
    "Not wedges, screws, belts, tipping, or kinetic friction as a separate coefficient"
  ],
  "boundary_conditions": [
    "missing W, θ, μ, or direction → MISSING_REQUIRED_INPUT",
    "W ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "θ outside [0, 90) → VALUE_OUT_OF_RANGE",
    "μ < 0 → VALUE_OUT_OF_RANGE",
    "direction other than up or down → INVALID_INPUT"
  ],
  "sources": [
    {
      "title": "Hibbeler, Engineering Mechanics: Statics",
      "section": "Dry friction — impending motion",
      "supports": "On an incline, the force parallel to the plane at impending slip is W sinθ ± μ W cosθ",
      "kind": "reference"
    },
    {
      "title": "Beer, Johnston, and Mazurek, Vector Mechanics for Engineers: Statics",
      "section": "Dry friction — impending motion",
      "supports": "Supports the page formula: P = W sinθ + μ W cosθ",
      "kind": "reference"
    }
  ],
  "methods": [],
  "fingerprint": "sha256:8bfe172be8bdbba5155752742a366cc3fd78380049298fb0aadf68071e9b0a0f",
  "tier": "engine_tested",
  "verification": {
    "tests": {
      "passed": 7,
      "total": 7,
      "golden": 3,
      "boundary": 4,
      "property": 0
    },
    "contract_checks": {
      "passed": 6,
      "total": 6
    }
  },
  "evidence_core_generated_at": "2026-09-27T08:15:46.336Z",
  "rendered_at": "2026-11-10T05:18:42.163Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.0.0",
    "artifacts": {
      "engine": "1.0.0",
      "page": "1.0.0",
      "capability": "1.0.0",
      "evidence": "1.0.0",
      "input_schema": "1.0.0",
      "output_schema": "1.0.0",
      "mcp_contract": "1.0.0"
    },
    "digests": {
      "input_schema_sha256": "c9a87a5014dd69c3244ed88cb3a8e471a38068020f37be20589598ac6a68ab7d",
      "output_schema_sha256": "aaf5c4178077326ee390b5644ba15279cea0f946114a76f28a9bde402c12df00",
      "evidence_sha256": "22e280e76e7783e4b3b57c4466ad8b4e99ed9a729e0624470c87655296fa1e34",
      "evidence_core_sha256": "22e280e76e7783e4b3b57c4466ad8b4e99ed9a729e0624470c87655296fa1e34",
      "capability_sha256": "316a70edca4ad33da32406129339e5a08f1ff8c9a8e17c27b5818125c1410ed2",
      "engine_sha256": "c6ebd8436f08b413e1ac6317b2d48550f2e6639a90dff254244e3aa562158b8d",
      "mcp_contract_sha256": "eb3e39ad4a95ed263415b4932f185d5edfe00a2403267b7c5ed5f718d1ff6da3"
    },
    "contract_checks": {
      "total": 6,
      "passed": 6,
      "failed": 0,
      "items": [
        {
          "id": "release-artifacts-aligned",
          "status": "pass",
          "detail": "1.0.0"
        },
        {
          "id": "schema-output-required-declared",
          "status": "pass"
        },
        {
          "id": "schema-valid-input-executes",
          "status": "pass"
        },
        {
          "id": "engine-success-output-validates-schema",
          "status": "pass"
        },
        {
          "id": "schema-rejects-incomplete-input",
          "status": "pass"
        },
        {
          "id": "rest-success-payload-validates-schema",
          "status": "pass"
        }
      ]
    },
    "report": "https://www.calculatorx.com/.well-known/calculatorx-release-integrity.json"
  },
  "tests": [],
  "disclosure": {
    "policy": "calculatorx-public-evidence-v1",
    "full_validation": "private",
    "representation": "summary"
  }
}
