chargelink qualification ======================== Build or verify protocol qualification bundles and launch gates. Reference syntax ---------------- .. code-block:: text usage: chargelink qualification [-h] {run,verify,roots} ... positional arguments: {run,verify,roots} options: -h, --help show this help message and exit Subcommands ----------- .. list-table:: :header-rows: 1 :widths: 25 75 * - Subcommand - Purpose * - ``run`` - Build a protocol qualification bundle from a qualification manifest. * - ``verify`` - Check a qualification bundle against status, gate, bundle, and artifact expectations. * - ``roots`` - List known qualification roots or write them to JSON. run --- Build a protocol qualification bundle from a qualification manifest. CLI help ~~~~~~~~ .. code-block:: text usage: chargelink qualification run [-h] [--artifact-root ARTIFACT_ROOT] [--output-root OUTPUT_ROOT] [--rerun] [--rerun-failed] [--verify-only] [--output OUTPUT] manifest positional arguments: manifest options: -h, --help show this help message and exit --artifact-root ARTIFACT_ROOT --output-root OUTPUT_ROOT --rerun rerun every campaign listed in the qualification manifest --rerun-failed rerun only failed or missing campaign artifacts before rebuilding the qualification bundle --verify-only --output OUTPUT Production examples ~~~~~~~~~~~~~~~~~~~ **Run the ISO 15118-20 focused qualification manifest.** .. code-block:: bash chargelink qualification run 'campaigns/qualification/protocols/iso15118_20_suite.json' --artifact-root 'artifacts/evcc_campaign_runs' --output-root 'artifacts/protocol_qualification' --rerun-failed **Run the production release gate manifest for MCS evidence intake.** .. code-block:: bash chargelink qualification run 'campaigns/qualification/protocols/production_release_gate_mcs_hardware_evidence_intake.json' --artifact-root 'artifacts/evcc_campaign_runs' --output-root 'artifacts/protocol_qualification' --rerun-failed verify ------ Check a qualification bundle against status, gate, bundle, and artifact expectations. CLI help ~~~~~~~~ .. code-block:: text usage: chargelink qualification verify [-h] [--output-root OUTPUT_ROOT] [--expect-status EXPECT_STATUS] [--expect-production-graded EXPECT_PRODUCTION_GRADED] [--expect-claim-safe EXPECT_CLAIM_SAFE] [--expect-qualification-passed EXPECT_QUALIFICATION_PASSED] [--expect-protocol-gate EXPECT_PROTOCOL_GATE] [--expect-vendor-gate EXPECT_VENDOR_GATE] [--expect-bench-gate EXPECT_BENCH_GATE] [--expect-bench-proof-gate EXPECT_BENCH_PROOF_GATE] [--expect-differential-gate EXPECT_DIFFERENTIAL_GATE] [--expect-package-expansion-status EXPECT_PACKAGE_EXPANSION_STATUS] [--expect-live-e2e-status EXPECT_LIVE_E2E_STATUS] [--expect-live-protocol EXPECT_LIVE_PROTOCOL] [--expect-live-vendor EXPECT_LIVE_VENDOR] [--expect-live-backend EXPECT_LIVE_BACKEND] [--expect-session-fault-status EXPECT_SESSION_FAULT_STATUS] [--expect-session-fault-protocol EXPECT_SESSION_FAULT_PROTOCOL] [--expect-session-fault-case EXPECT_SESSION_FAULT_CASE] [--expect-session-fault-class EXPECT_SESSION_FAULT_CLASS] [--expect-conformance-expansion-status EXPECT_CONFORMANCE_EXPANSION_STATUS] [--expect-conformance-protocol EXPECT_CONFORMANCE_PROTOCOL] [--expect-conformance-standard EXPECT_CONFORMANCE_STANDARD] [--expect-conformance-case EXPECT_CONFORMANCE_CASE] [--expect-interoperability-expansion-status EXPECT_INTEROPERABILITY_EXPANSION_STATUS] [--expect-interoperability-protocol EXPECT_INTEROPERABILITY_PROTOCOL] [--expect-interoperability-vendor EXPECT_INTEROPERABILITY_VENDOR] [--expect-interoperability-backend EXPECT_INTEROPERABILITY_BACKEND] [--expect-interoperability-pair EXPECT_INTEROPERABILITY_PAIR] [--expect-interoperability-case EXPECT_INTEROPERABILITY_CASE] [--expect-standards-traceability-status EXPECT_STANDARDS_TRACEABILITY_STATUS] [--expect-standard EXPECT_STANDARD] [--expect-standards-clause-traceability-status EXPECT_STANDARDS_CLAUSE_TRACEABILITY_STATUS] [--expect-clause-standard EXPECT_CLAUSE_STANDARD] [--expect-standard-clause EXPECT_STANDARD_CLAUSE] [--expect-clause-package EXPECT_CLAUSE_PACKAGE] [--expect-ats-reference EXPECT_ATS_REFERENCE] [--expect-srs-coverage-status EXPECT_SRS_COVERAGE_STATUS] [--expect-srs-requirement EXPECT_SRS_REQUIREMENT] [--expect-traceability-package EXPECT_TRACEABILITY_PACKAGE] [--expect-conformance-package EXPECT_CONFORMANCE_PACKAGE] [--expect-interoperability-package EXPECT_INTEROPERABILITY_PACKAGE] [--require-package-expansion-bundle] [--require-live-e2e-bundle] [--require-session-fault-bundle] [--require-conformance-expansion-bundle] [--require-interoperability-expansion-bundle] [--require-suite-traceability-bundle] [--require-standards-clause-traceability-bundle] [--expect-production-release-status EXPECT_PRODUCTION_RELEASE_STATUS] [--expect-mcs-hardware-evidence-status EXPECT_MCS_HARDWARE_EVIDENCE_STATUS] [--expect-production-release-gate EXPECT_PRODUCTION_RELEASE_GATE] [--expect-hardware-evidence EXPECT_HARDWARE_EVIDENCE] [--require-production-release-bundle] [--expect-backend-orchestration-status EXPECT_BACKEND_ORCHESTRATION_STATUS] [--expect-orchestrated-backend EXPECT_ORCHESTRATED_BACKEND] [--expect-backend-adapter EXPECT_BACKEND_ADAPTER] [--expect-backend-capability EXPECT_BACKEND_CAPABILITY] [--require-backend-orchestration-bundle] [--expect-mcs-bench-capture-status EXPECT_MCS_BENCH_CAPTURE_STATUS] [--expect-mcs-capture-driver EXPECT_MCS_CAPTURE_DRIVER] [--expect-mcs-capture-artifact EXPECT_MCS_CAPTURE_ARTIFACT] [--require-mcs-bench-capture-bundle] [--expect-release-candidate-hardening-status EXPECT_RELEASE_CANDIDATE_HARDENING_STATUS] [--expect-rc-hardening-check EXPECT_RC_HARDENING_CHECK] [--require-release-candidate-hardening-bundle] [--require-artifact REQUIRE_ARTIFACT] [--max-campaign-age-hours MAX_CAMPAIGN_AGE_HOURS] [--expect-vendor-connector EXPECT_VENDOR_CONNECTOR] [--expect-vendor-partner EXPECT_VENDOR_PARTNER] [--require-vendor-proof-attestation] [--require-bench-proof-attestation] [--strict] [--output OUTPUT] path positional arguments: path options: -h, --help show this help message and exit --output-root OUTPUT_ROOT --expect-status EXPECT_STATUS --expect-production-graded EXPECT_PRODUCTION_GRADED --expect-claim-safe EXPECT_CLAIM_SAFE --expect-qualification-passed EXPECT_QUALIFICATION_PASSED --expect-protocol-gate EXPECT_PROTOCOL_GATE --expect-vendor-gate EXPECT_VENDOR_GATE --expect-bench-gate EXPECT_BENCH_GATE --expect-bench-proof-gate EXPECT_BENCH_PROOF_GATE --expect-differential-gate EXPECT_DIFFERENTIAL_GATE --expect-package-expansion-status EXPECT_PACKAGE_EXPANSION_STATUS --expect-live-e2e-status EXPECT_LIVE_E2E_STATUS --expect-live-protocol EXPECT_LIVE_PROTOCOL --expect-live-vendor EXPECT_LIVE_VENDOR --expect-live-backend EXPECT_LIVE_BACKEND --expect-session-fault-status EXPECT_SESSION_FAULT_STATUS --expect-session-fault-protocol EXPECT_SESSION_FAULT_PROTOCOL --expect-session-fault-case EXPECT_SESSION_FAULT_CASE --expect-session-fault-class EXPECT_SESSION_FAULT_CLASS --expect-conformance-expansion-status EXPECT_CONFORMANCE_EXPANSION_STATUS --expect-conformance-protocol EXPECT_CONFORMANCE_PROTOCOL --expect-conformance-standard EXPECT_CONFORMANCE_STANDARD --expect-conformance-case EXPECT_CONFORMANCE_CASE --expect-interoperability-expansion-status EXPECT_INTEROPERABILITY_EXPANSION_STATUS --expect-interoperability-protocol EXPECT_INTEROPERABILITY_PROTOCOL --expect-interoperability-vendor EXPECT_INTEROPERABILITY_VENDOR --expect-interoperability-backend EXPECT_INTEROPERABILITY_BACKEND --expect-interoperability-pair EXPECT_INTEROPERABILITY_PAIR --expect-interoperability-case EXPECT_INTEROPERABILITY_CASE --expect-standards-traceability-status EXPECT_STANDARDS_TRACEABILITY_STATUS --expect-standard EXPECT_STANDARD --expect-standards-clause-traceability-status EXPECT_STANDARDS_CLAUSE_TRACEABILITY_STATUS --expect-clause-standard EXPECT_CLAUSE_STANDARD --expect-standard-clause EXPECT_STANDARD_CLAUSE --expect-clause-package EXPECT_CLAUSE_PACKAGE --expect-ats-reference EXPECT_ATS_REFERENCE --expect-srs-coverage-status EXPECT_SRS_COVERAGE_STATUS --expect-srs-requirement EXPECT_SRS_REQUIREMENT --expect-traceability-package EXPECT_TRACEABILITY_PACKAGE --expect-conformance-package EXPECT_CONFORMANCE_PACKAGE --expect-interoperability-package EXPECT_INTEROPERABILITY_PACKAGE --require-package-expansion-bundle --require-live-e2e-bundle --require-session-fault-bundle --require-conformance-expansion-bundle --require-interoperability-expansion-bundle --require-suite-traceability-bundle --require-standards-clause-traceability-bundle --expect-production-release-status EXPECT_PRODUCTION_RELEASE_STATUS --expect-mcs-hardware-evidence-status EXPECT_MCS_HARDWARE_EVIDENCE_STATUS --expect-production-release-gate EXPECT_PRODUCTION_RELEASE_GATE --expect-hardware-evidence EXPECT_HARDWARE_EVIDENCE --require-production-release-bundle --expect-backend-orchestration-status EXPECT_BACKEND_ORCHESTRATION_STATUS --expect-orchestrated-backend EXPECT_ORCHESTRATED_BACKEND --expect-backend-adapter EXPECT_BACKEND_ADAPTER --expect-backend-capability EXPECT_BACKEND_CAPABILITY --require-backend-orchestration-bundle --expect-mcs-bench-capture-status EXPECT_MCS_BENCH_CAPTURE_STATUS --expect-mcs-capture-driver EXPECT_MCS_CAPTURE_DRIVER --expect-mcs-capture-artifact EXPECT_MCS_CAPTURE_ARTIFACT --require-mcs-bench-capture-bundle --expect-release-candidate-hardening-status EXPECT_RELEASE_CANDIDATE_HARDENING_STATUS --expect-rc-hardening-check EXPECT_RC_HARDENING_CHECK --require-release-candidate-hardening-bundle --require-artifact REQUIRE_ARTIFACT --max-campaign-age-hours MAX_CAMPAIGN_AGE_HOURS --expect-vendor-connector EXPECT_VENDOR_CONNECTOR --expect-vendor-partner EXPECT_VENDOR_PARTNER --require-vendor-proof-attestation --require-bench-proof-attestation --strict --output OUTPUT Production examples ~~~~~~~~~~~~~~~~~~~ **Verify that the ISO 15118-20 qualification bundle is green.** .. code-block:: bash chargelink qualification verify 'artifacts/protocol_qualification/iso15118_20_suite' --expect-status 'passed' --expect-qualification-passed 'true' --expect-protocol-gate 'passed' --strict --output 'artifacts/verification/iso20_qualification_verify.json' **Verify that the production release gate is still attention_required until hardware proof is attached.** .. code-block:: bash chargelink qualification verify 'artifacts/protocol_qualification/production_release_gate_mcs_hardware_evidence_intake' --expect-status 'attention_required' --expect-production-graded 'false' --expect-claim-safe 'false' --require-production-release-bundle --strict --output 'artifacts/verification/production_release_verify.json' roots ----- List known qualification roots or write them to JSON. CLI help ~~~~~~~~ .. code-block:: text usage: chargelink qualification roots [-h] [--output-root OUTPUT_ROOT] [--output OUTPUT] options: -h, --help show this help message and exit --output-root OUTPUT_ROOT --output OUTPUT Production examples ~~~~~~~~~~~~~~~~~~~ **List qualification roots from the default output root.** .. code-block:: bash chargelink qualification roots **Write qualification roots to JSON.** .. code-block:: bash chargelink qualification roots --output-root 'artifacts/protocol_qualification' --output 'artifacts/protocol_qualification/roots.json'