{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-16T14:13:51.913Z",
  "record_id": "VXI-EXT-PROCUREMENT-GITLAB-MANUAL-GATE-01-v1",
  "record_kind": "external_reference",
  "title": "GitLab manual jobs: Optional steps and blocking gates",
  "system": "GitLab CI/CD",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does a manual GitLab job necessarily block release until someone approves it?",
  "near_questions": [
    "Is the manual job optional or blocking?",
    "Is when: manual inside rules?",
    "What is the effective allow_failure value?",
    "Which rule matched this release?",
    "Can the pipeline pass if this job fails?",
    "Was the manual job actually run?",
    "Who was allowed to start it?",
    "Did the pipeline stop at the gate?",
    "Does a manual button prove required approval?",
    "Was the job archived?",
    "What configuration applied to this revision?",
    "Can I retain the release-gate review?"
  ],
  "supported_claims": [
    {
      "claim": "Manual jobs can be optional or blocking. Outside rules, when: manual defaults to allow_failure true; inside rules, its default is false. Explicit configuration can alter the outcome. A pipeline can succeed despite optional manual-job failures, so inspect the effective gate rather than relying on the manual button.",
      "reliance": "DOCUMENTED_CAPABILITY_ONLY"
    }
  ],
  "not_demonstrated_claims": [
    "Verified buyer configuration or effective access rights",
    "Independent execution, completeness or security testing",
    "Vendor certification, legal compliance or guaranteed suitability"
  ],
  "public_summary": "Manual jobs can be optional or blocking. Outside rules, when: manual defaults to allow_failure true; inside rules, its default is false. Explicit configuration can alter the outcome. A pipeline can succeed despite optional manual-job failures, so inspect the effective gate rather than relying on the manual button.",
  "related_record_ids": [],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "GitLab: Control jobs",
    "source_url": "https://docs.gitlab.com/ci/jobs/job_control/",
    "checked_on": "2026-10-16",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-GITLAB-MANUAL-GATE-01-v1",
    "candidate_record_sha256": "b17c7e9b069c785dac451df09b89b04068c7c8ad9a538ff0597ceb5cabac3235",
    "method": "Primary documentation reviewed for the published bounded statement.",
    "deployment_tested_by_varexis": false,
    "revalidation": "The delivered snapshot preserves the review date shown. Recheck current primary documentation and deployment context before relying on present applicability; payment does not trigger fresh research."
  },
  "answer_policy": {
    "classification": "DOCUMENTED_WITH_DEPLOYMENT_BOUNDARY",
    "bounded_answer": "Manual jobs can be optional or blocking. Outside rules, when: manual defaults to allow_failure true; inside rules, its default is false. Explicit configuration can alter the outcome. A pipeline can succeed despite optional manual-job failures, so inspect the effective gate rather than relying on the manual button.",
    "required_buyer_context": "GitLab version, expanded rules, allow_failure, release event and operator permissions. Effective configuration and dated operational evidence have not been inspected.",
    "missing_evidence": "A broader claim needs evidence matching the intended use. Payment does not upgrade the evidence state."
  },
  "private_boundary": "Raw logs, thresholds, private paths, source code, protected mechanisms and reconstruction-level details are excluded from public and paid delivery.",
  "decision_profile": {
    "schema": "varexis-vendor-evidence-review/1",
    "review_status": "documentation_review_only",
    "checked_on": "2026-10-16",
    "claim_to_check": "Every manual job is a mandatory approval gate.",
    "documented_statement": {
      "status": "documented",
      "statement": "Manual jobs can be optional or blocking. Outside rules, when: manual defaults to allow_failure true; inside rules, its default is false. Explicit configuration can alter the outcome. A pipeline can succeed despite optional manual-job failures, so inspect the effective gate rather than relying on the manual button.",
      "source_ids": [
        "gitlab-manual"
      ]
    },
    "buyer_evidence_required": [
      "Expanded job configuration and effective allow_failure.",
      "Rules matched for the release event.",
      "Pipeline state and authorized operator evidence."
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Require evidence of a blocking gate before treating a manual job as mandatory release approval."
    },
    "unknowns": "The buyer configuration, contract, effective entitlement and operational evidence have not been inspected. Missing evidence does not establish absence or failure of the feature.",
    "evidence_sources": [
      {
        "source_id": "gitlab-manual",
        "url": "https://docs.gitlab.com/ci/jobs/job_control/",
        "final_url": "https://docs.gitlab.com/ci/jobs/job_control/",
        "title": "GitLab: Control jobs",
        "checked_on": "2026-10-16",
        "sha256": "560e94c87db77df28d1ea949eb4ffb6c7aff0e3c9c3cfeda39ea5a45e1df3b4a",
        "bytes": 99203
      }
    ],
    "observed_deployment": false,
    "commercial_reliance_boundary": "Procurement evidence support only; no supplier clearance, legal conclusion, configuration audit or verification of the buyer's claim is supplied.",
    "paid_value": {
      "decision_context": "Save the enforcement basis behind a manual-release-control claim.",
      "free": "Complete review, practical questions, sources and limitations; may be saved locally.",
      "single_request": "Existing server-saved version-bound route snapshot for later authenticated retrieval.",
      "evidence_receipt": "The same snapshot plus the existing unsigned delivery receipt.",
      "excluded": [
        "Fresh vendor research",
        "Continuous monitoring or change alerts",
        "Testing the buyer configuration",
        "Private evidence or vendor certification"
      ],
      "integrity": "Hashes identify content versions; they do not prove truth or provide a signature."
    },
    "revalidation": {
      "trigger": "A saved purchase does not recheck the source or buyer configuration.",
      "specific_watch": "GitLab version, expanded rules, allow_failure, release event and operator permissions."
    }
  },
  "paid_access_note": "The full published answer and boundaries are free. Paid access saves the selected route and source versions, with an unsigned receipt when purchased. Preview coverage before paying. Fresh research, bespoke assessment and protected evidence are excluded.",
  "service_route": {
    "request_guide": "/varexis-index/request.html",
    "request_workflow": "/varexis-index/request-workflow.json",
    "service_id": "single_request",
    "service_routes_url": "/varexis-index/service-routes.json",
    "payment_required": true,
    "availability_endpoint": "/api/index/capabilities",
    "operational_status": "AUTOMATIC_SERVICE_CAPABILITIES_GATED",
    "checkout_url": "/index-access"
  },
  "authority_boundary": "VAREXIS-INDEX informs evidence reliance. It does not provide advice, certification, deployment authority, security assurance, production approval, or guarantee.",
  "human_page": "/varexis-index/catalog.html#gitlab-manual-job-optional-versus-blocking",
  "machine_readable_record": "/varexis-index/records/gitlab-manual-job-optional-versus-blocking.json"
}
