src/lightspeed@release@maturity_baseline.erl

-module(lightspeed@release@maturity_baseline).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/lightspeed/release/maturity_baseline.gleam").
-export([contributor_workflows/0, ga_1_x_baseline/0, beta_2_x_next_baseline/0, release_lines/0, line/1, contributor_operations/1, report_artifact/1, stage_label/1, versioning_signature/1, release_hygiene_signature/1, api_compatibility_signature/1, supply_chain_signature/1, contributor_operations_signature/1, signature/1, release_line_artifact_signatures/0, valid/1, maturity_policies_explicit/0, api_breakage_gates_enforced/0, supply_chain_hygiene_enforced/0, contributor_operations_standardized/0, snapshot_signature/0]).
-export_type([maturity_stage/0, versioning_policy/0, release_hygiene_gate/0, api_compatibility_gate/0, supply_chain_gate/0, contributor_workflow/0, release_line_baseline/0]).

-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.

?MODULEDOC(" Framework maturity and community operations baseline contracts for M47.\n").

-type maturity_stage() :: beta | g_a.

-type versioning_policy() :: {versioning_policy,
        boolean(),
        boolean(),
        integer(),
        boolean(),
        boolean()}.

-type release_hygiene_gate() :: {release_hygiene_gate,
        binary(),
        boolean(),
        binary()}.

-type api_compatibility_gate() :: {api_compatibility_gate,
        binary(),
        binary(),
        boolean()}.

-type supply_chain_gate() :: {supply_chain_gate, binary(), boolean(), binary()}.

-type contributor_workflow() :: {contributor_workflow,
        binary(),
        list(binary()),
        binary()}.

-type release_line_baseline() :: {release_line_baseline,
        binary(),
        maturity_stage(),
        versioning_policy(),
        list(release_hygiene_gate()),
        list(api_compatibility_gate()),
        list(supply_chain_gate()),
        list(contributor_workflow()),
        binary()}.

-file("src/lightspeed/release/maturity_baseline.gleam", 220).
?DOC(" Contributor operations baseline.\n").
-spec contributor_workflows() -> list(contributor_workflow()).
contributor_workflows() ->
    [{contributor_workflow,
            <<"issue_triage"/utf8>>,
            [<<"intake"/utf8>>,
                <<"severity_labeling"/utf8>>,
                <<"owner_assignment"/utf8>>,
                <<"milestone_routing"/utf8>>],
            <<"ops/community/issue_triage_audit.md"/utf8>>},
        {contributor_workflow,
            <<"review_workflow"/utf8>>,
            [<<"rfc_adr_link_check"/utf8>>,
                <<"code_review"/utf8>>,
                <<"fixture_gate_review"/utf8>>,
                <<"approval"/utf8>>],
            <<"ops/community/review_audit.md"/utf8>>},
        {contributor_workflow,
            <<"release_workflow"/utf8>>,
            [<<"release_plan"/utf8>>,
                <<"compatibility_check"/utf8>>,
                <<"supply_chain_gate"/utf8>>,
                <<"release_announcement"/utf8>>],
            <<"ops/community/release_audit.md"/utf8>>}].

-file("src/lightspeed/release/maturity_baseline.gleam", 66).
?DOC(" GA `1.x` maturity baseline.\n").
-spec ga_1_x_baseline() -> release_line_baseline().
ga_1_x_baseline() ->
    Release_policy = lightspeed@release@policy:ga_1_0_0(),
    Deprecation = lightspeed@release@policy:deprecation(Release_policy),
    {release_line_baseline,
        <<"1.x"/utf8>>,
        g_a,
        {versioning_policy,
            true,
            erlang:element(3, Deprecation),
            erlang:element(2, Deprecation),
            erlang:element(4, Deprecation),
            erlang:element(5, Deprecation)},
        [{release_hygiene_gate,
                <<"release_checklist_attested"/utf8>>,
                true,
                <<"docs/release_checklist_1.0.0.md"/utf8>>},
            {release_hygiene_gate,
                <<"compatibility_matrix_frozen"/utf8>>,
                true,
                <<"docs/compatibility_matrix_1.0.0.md"/utf8>>},
            {release_hygiene_gate,
                <<"fixture_gates_green"/utf8>>,
                true,
                <<"make ci"/utf8>>}],
        [{api_compatibility_gate,
                <<"public_api_signature_diff"/utf8>>,
                <<"no_breaking_changes_without_major"/utf8>>,
                true},
            {api_compatibility_gate,
                <<"protocol_version_guard"/utf8>>,
                <<"protocol_version_monotonic"/utf8>>,
                true},
            {api_compatibility_gate,
                <<"patch_stream_guard"/utf8>>,
                <<"patch_stream_contract_stable"/utf8>>,
                true}],
        [{supply_chain_gate,
                <<"sbom_generated"/utf8>>,
                true,
                <<"release_artifacts/sbom.spdx.json"/utf8>>},
            {supply_chain_gate,
                <<"license_audit_pass"/utf8>>,
                true,
                <<"reports/license_audit_latest.md"/utf8>>},
            {supply_chain_gate,
                <<"critical_vuln_gate"/utf8>>,
                true,
                <<"reports/vuln_scan_latest.md"/utf8>>},
            {supply_chain_gate,
                <<"artifact_provenance_attested"/utf8>>,
                true,
                <<"release_artifacts/provenance.intoto.jsonl"/utf8>>}],
        contributor_workflows(),
        <<"docs/reports/maturity_fixture_latest.md#release_line_1_x"/utf8>>}.

-file("src/lightspeed/release/maturity_baseline.gleam", 142).
?DOC(" Beta `2.x-next` maturity baseline.\n").
-spec beta_2_x_next_baseline() -> release_line_baseline().
beta_2_x_next_baseline() ->
    {release_line_baseline,
        <<"2.x-next"/utf8>>,
        beta,
        {versioning_policy, true, true, 2, true, true},
        [{release_hygiene_gate,
                <<"release_checklist_attested"/utf8>>,
                true,
                <<"docs/release_checklist_1.0.0.md"/utf8>>},
            {release_hygiene_gate,
                <<"compatibility_matrix_updated"/utf8>>,
                true,
                <<"docs/compatibility_matrix_1.0.0.md"/utf8>>},
            {release_hygiene_gate,
                <<"fixture_gates_green"/utf8>>,
                true,
                <<"make ci"/utf8>>}],
        [{api_compatibility_gate,
                <<"public_api_signature_diff"/utf8>>,
                <<"breaking_changes_require_rfc_and_major"/utf8>>,
                true},
            {api_compatibility_gate,
                <<"protocol_version_guard"/utf8>>,
                <<"protocol_version_monotonic"/utf8>>,
                true},
            {api_compatibility_gate,
                <<"patch_stream_guard"/utf8>>,
                <<"patch_stream_contract_stable"/utf8>>,
                true}],
        [{supply_chain_gate,
                <<"sbom_generated"/utf8>>,
                true,
                <<"release_artifacts/sbom.spdx.json"/utf8>>},
            {supply_chain_gate,
                <<"license_audit_pass"/utf8>>,
                true,
                <<"reports/license_audit_latest.md"/utf8>>},
            {supply_chain_gate,
                <<"critical_vuln_gate"/utf8>>,
                true,
                <<"reports/vuln_scan_latest.md"/utf8>>},
            {supply_chain_gate,
                <<"artifact_provenance_attested"/utf8>>,
                true,
                <<"release_artifacts/provenance.intoto.jsonl"/utf8>>}],
        contributor_workflows(),
        <<"docs/reports/maturity_fixture_latest.md#release_line_2_x_next"/utf8>>}.

-file("src/lightspeed/release/maturity_baseline.gleam", 215).
?DOC(" M47 release-line maturity baselines.\n").
-spec release_lines() -> list(release_line_baseline()).
release_lines() ->
    [ga_1_x_baseline(), beta_2_x_next_baseline()].

-file("src/lightspeed/release/maturity_baseline.gleam", 256).
?DOC(" Release-line accessor.\n").
-spec line(release_line_baseline()) -> binary().
line(Baseline) ->
    erlang:element(2, Baseline).

-file("src/lightspeed/release/maturity_baseline.gleam", 261).
?DOC(" Contributor operations accessor.\n").
-spec contributor_operations(release_line_baseline()) -> list(contributor_workflow()).
contributor_operations(Baseline) ->
    erlang:element(8, Baseline).

-file("src/lightspeed/release/maturity_baseline.gleam", 268).
?DOC(" Report artifact accessor.\n").
-spec report_artifact(release_line_baseline()) -> binary().
report_artifact(Baseline) ->
    erlang:element(9, Baseline).

-file("src/lightspeed/release/maturity_baseline.gleam", 273).
?DOC(" Stable maturity-stage label.\n").
-spec stage_label(maturity_stage()) -> binary().
stage_label(Stage) ->
    case Stage of
        beta ->
            <<"beta"/utf8>>;

        g_a ->
            <<"ga"/utf8>>
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 583).
-spec bool_label(boolean()) -> binary().
bool_label(Value) ->
    case Value of
        true ->
            <<"true"/utf8>>;

        false ->
            <<"false"/utf8>>
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 281).
?DOC(" Stable versioning signature.\n").
-spec versioning_signature(versioning_policy()) -> binary().
versioning_signature(Policy) ->
    <<<<<<<<<<<<<<<<<<"semver_required="/utf8,
                                        (bool_label(erlang:element(2, Policy)))/binary>>/binary,
                                    "|breaking_change_requires_major="/utf8>>/binary,
                                (bool_label(erlang:element(3, Policy)))/binary>>/binary,
                            "|warning_releases_before_removal="/utf8>>/binary,
                        (erlang:integer_to_binary(erlang:element(4, Policy)))/binary>>/binary,
                    "|migration_notes_required="/utf8>>/binary,
                (bool_label(erlang:element(5, Policy)))/binary>>/binary,
            "|rfc_adr_required="/utf8>>/binary,
        (bool_label(erlang:element(6, Policy)))/binary>>.

-file("src/lightspeed/release/maturity_baseline.gleam", 551).
-spec release_hygiene_gate_signature(release_hygiene_gate()) -> binary().
release_hygiene_gate_signature(Gate) ->
    <<<<<<<<(erlang:element(2, Gate))/binary, ":required="/utf8>>/binary,
                (bool_label(erlang:element(3, Gate)))/binary>>/binary,
            ":evidence="/utf8>>/binary,
        (erlang:element(4, Gate))/binary>>.

-file("src/lightspeed/release/maturity_baseline.gleam", 590).
-spec join_with(binary(), list(binary())) -> binary().
join_with(Separator, Values) ->
    case Values of
        [] ->
            <<""/utf8>>;

        [Value] ->
            Value;

        [Value@1 | Rest] ->
            <<<<Value@1/binary, Separator/binary>>/binary,
                (join_with(Separator, Rest))/binary>>
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 295).
?DOC(" Stable release hygiene signature.\n").
-spec release_hygiene_signature(list(release_hygiene_gate())) -> binary().
release_hygiene_signature(Gates) ->
    join_with(
        <<";"/utf8>>,
        gleam@list:map(Gates, fun release_hygiene_gate_signature/1)
    ).

-file("src/lightspeed/release/maturity_baseline.gleam", 559).
-spec api_gate_signature(api_compatibility_gate()) -> binary().
api_gate_signature(Gate) ->
    <<<<<<<<(erlang:element(2, Gate))/binary, ":expected="/utf8>>/binary,
                (erlang:element(3, Gate))/binary>>/binary,
            ":strict="/utf8>>/binary,
        (bool_label(erlang:element(4, Gate)))/binary>>.

-file("src/lightspeed/release/maturity_baseline.gleam", 300).
?DOC(" Stable API compatibility gate signature.\n").
-spec api_compatibility_signature(list(api_compatibility_gate())) -> binary().
api_compatibility_signature(Gates) ->
    join_with(<<";"/utf8>>, gleam@list:map(Gates, fun api_gate_signature/1)).

-file("src/lightspeed/release/maturity_baseline.gleam", 567).
-spec supply_chain_gate_signature(supply_chain_gate()) -> binary().
supply_chain_gate_signature(Gate) ->
    <<<<<<<<(erlang:element(2, Gate))/binary, ":required="/utf8>>/binary,
                (bool_label(erlang:element(3, Gate)))/binary>>/binary,
            ":evidence="/utf8>>/binary,
        (erlang:element(4, Gate))/binary>>.

-file("src/lightspeed/release/maturity_baseline.gleam", 307).
?DOC(" Stable supply-chain gate signature.\n").
-spec supply_chain_signature(list(supply_chain_gate())) -> binary().
supply_chain_signature(Gates) ->
    join_with(
        <<";"/utf8>>,
        gleam@list:map(Gates, fun supply_chain_gate_signature/1)
    ).

-file("src/lightspeed/release/maturity_baseline.gleam", 575).
-spec contributor_workflow_signature(contributor_workflow()) -> binary().
contributor_workflow_signature(Workflow) ->
    <<<<<<<<(erlang:element(2, Workflow))/binary, ":stages="/utf8>>/binary,
                (join_with(<<","/utf8>>, erlang:element(3, Workflow)))/binary>>/binary,
            ":audit="/utf8>>/binary,
        (erlang:element(4, Workflow))/binary>>.

-file("src/lightspeed/release/maturity_baseline.gleam", 312).
?DOC(" Stable contributor operations signature.\n").
-spec contributor_operations_signature(list(contributor_workflow())) -> binary().
contributor_operations_signature(Workflows) ->
    join_with(
        <<";"/utf8>>,
        gleam@list:map(Workflows, fun contributor_workflow_signature/1)
    ).

-file("src/lightspeed/release/maturity_baseline.gleam", 319).
?DOC(" Stable release-line baseline signature.\n").
-spec signature(release_line_baseline()) -> binary().
signature(Baseline) ->
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"line="/utf8,
                                                                (erlang:element(
                                                                    2,
                                                                    Baseline
                                                                ))/binary>>/binary,
                                                            "|stage="/utf8>>/binary,
                                                        (stage_label(
                                                            erlang:element(
                                                                3,
                                                                Baseline
                                                            )
                                                        ))/binary>>/binary,
                                                    "|versioning="/utf8>>/binary,
                                                (versioning_signature(
                                                    erlang:element(4, Baseline)
                                                ))/binary>>/binary,
                                            "|release_hygiene="/utf8>>/binary,
                                        (release_hygiene_signature(
                                            erlang:element(5, Baseline)
                                        ))/binary>>/binary,
                                    "|api_compatibility="/utf8>>/binary,
                                (api_compatibility_signature(
                                    erlang:element(6, Baseline)
                                ))/binary>>/binary,
                            "|supply_chain="/utf8>>/binary,
                        (supply_chain_signature(erlang:element(7, Baseline)))/binary>>/binary,
                    "|contributor_operations="/utf8>>/binary,
                (contributor_operations_signature(erlang:element(8, Baseline)))/binary>>/binary,
            "|artifact="/utf8>>/binary,
        (erlang:element(9, Baseline))/binary>>.

-file("src/lightspeed/release/maturity_baseline.gleam", 339).
?DOC(" Release-line artifact signatures for M47 reports.\n").
-spec release_line_artifact_signatures() -> list(binary()).
release_line_artifact_signatures() ->
    gleam@list:map(
        release_lines(),
        fun(Item) ->
            <<<<(erlang:element(2, Item))/binary, ":"/utf8>>/binary,
                (erlang:element(9, Item))/binary>>
        end
    ).

-file("src/lightspeed/release/maturity_baseline.gleam", 476).
-spec contributor_workflow_valid(contributor_workflow()) -> boolean().
contributor_workflow_valid(Workflow) ->
    ((erlang:element(2, Workflow) /= <<""/utf8>>) andalso (erlang:element(
        4,
        Workflow
    )
    /= <<""/utf8>>))
    andalso (erlang:element(3, Workflow) /= []).

-file("src/lightspeed/release/maturity_baseline.gleam", 465).
-spec contributor_operations_valid_continue(list(contributor_workflow())) -> boolean().
contributor_operations_valid_continue(Workflows) ->
    case Workflows of
        [] ->
            true;

        [Workflow | Rest] ->
            contributor_workflow_valid(Workflow) andalso contributor_operations_valid_continue(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 456).
-spec contributor_operations_valid(list(contributor_workflow())) -> boolean().
contributor_operations_valid(Workflows) ->
    case Workflows of
        [] ->
            false;

        [Workflow | Rest] ->
            contributor_workflow_valid(Workflow) andalso contributor_operations_valid_continue(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 452).
-spec supply_chain_gate_valid(supply_chain_gate()) -> boolean().
supply_chain_gate_valid(Gate) ->
    ((erlang:element(2, Gate) /= <<""/utf8>>) andalso erlang:element(3, Gate))
    andalso (erlang:element(4, Gate) /= <<""/utf8>>).

-file("src/lightspeed/release/maturity_baseline.gleam", 444).
-spec supply_chain_valid_continue(list(supply_chain_gate())) -> boolean().
supply_chain_valid_continue(Gates) ->
    case Gates of
        [] ->
            true;

        [Gate | Rest] ->
            supply_chain_gate_valid(Gate) andalso supply_chain_valid_continue(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 436).
-spec supply_chain_valid(list(supply_chain_gate())) -> boolean().
supply_chain_valid(Gates) ->
    case Gates of
        [] ->
            false;

        [Gate | Rest] ->
            supply_chain_gate_valid(Gate) andalso supply_chain_valid_continue(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 432).
-spec api_gate_valid(api_compatibility_gate()) -> boolean().
api_gate_valid(Gate) ->
    ((erlang:element(2, Gate) /= <<""/utf8>>) andalso (erlang:element(3, Gate)
    /= <<""/utf8>>))
    andalso erlang:element(4, Gate).

-file("src/lightspeed/release/maturity_baseline.gleam", 425).
-spec api_gates_valid_continue(list(api_compatibility_gate())) -> boolean().
api_gates_valid_continue(Gates) ->
    case Gates of
        [] ->
            true;

        [Gate | Rest] ->
            api_gate_valid(Gate) andalso api_gates_valid_continue(Rest)
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 418).
-spec api_gates_valid(list(api_compatibility_gate())) -> boolean().
api_gates_valid(Gates) ->
    case Gates of
        [] ->
            false;

        [Gate | Rest] ->
            api_gate_valid(Gate) andalso api_gates_valid_continue(Rest)
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 414).
-spec release_gate_valid(release_hygiene_gate()) -> boolean().
release_gate_valid(Gate) ->
    ((erlang:element(2, Gate) /= <<""/utf8>>) andalso erlang:element(3, Gate))
    andalso (erlang:element(4, Gate) /= <<""/utf8>>).

-file("src/lightspeed/release/maturity_baseline.gleam", 406).
-spec release_hygiene_valid_continue(list(release_hygiene_gate())) -> boolean().
release_hygiene_valid_continue(Gates) ->
    case Gates of
        [] ->
            true;

        [Gate | Rest] ->
            release_gate_valid(Gate) andalso release_hygiene_valid_continue(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 398).
-spec release_hygiene_valid(list(release_hygiene_gate())) -> boolean().
release_hygiene_valid(Gates) ->
    case Gates of
        [] ->
            false;

        [Gate | Rest] ->
            release_gate_valid(Gate) andalso release_hygiene_valid_continue(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 390).
-spec versioning_policy_valid(versioning_policy()) -> boolean().
versioning_policy_valid(Policy) ->
    (((erlang:element(2, Policy) andalso erlang:element(3, Policy)) andalso (erlang:element(
        4,
        Policy
    )
    >= 2))
    andalso erlang:element(5, Policy))
    andalso erlang:element(6, Policy).

-file("src/lightspeed/release/maturity_baseline.gleam", 346).
?DOC(" Validate one release-line maturity baseline.\n").
-spec valid(release_line_baseline()) -> boolean().
valid(Baseline) ->
    ((((((erlang:element(2, Baseline) /= <<""/utf8>>) andalso (erlang:element(
        9,
        Baseline
    )
    /= <<""/utf8>>))
    andalso versioning_policy_valid(erlang:element(4, Baseline)))
    andalso release_hygiene_valid(erlang:element(5, Baseline)))
    andalso api_gates_valid(erlang:element(6, Baseline)))
    andalso supply_chain_valid(erlang:element(7, Baseline)))
    andalso contributor_operations_valid(erlang:element(8, Baseline)).

-file("src/lightspeed/release/maturity_baseline.gleam", 480).
-spec baselines_valid(list(release_line_baseline())) -> boolean().
baselines_valid(Values) ->
    case Values of
        [] ->
            true;

        [Value | Rest] ->
            valid(Value) andalso baselines_valid(Rest)
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 357).
?DOC(" Check all release lines have explicit maturity policies.\n").
-spec maturity_policies_explicit() -> boolean().
maturity_policies_explicit() ->
    baselines_valid(release_lines()) andalso (erlang:length(release_lines()) =:= 2).

-file("src/lightspeed/release/maturity_baseline.gleam", 496).
-spec api_gates_all_strict(list(api_compatibility_gate())) -> boolean().
api_gates_all_strict(Values) ->
    case Values of
        [] ->
            true;

        [Value | Rest] ->
            erlang:element(4, Value) andalso api_gates_all_strict(Rest)
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 487).
-spec all_api_gates_strict(list(release_line_baseline())) -> boolean().
all_api_gates_strict(Values) ->
    case Values of
        [] ->
            true;

        [Value | Rest] ->
            api_gates_all_strict(erlang:element(6, Value)) andalso all_api_gates_strict(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 362).
?DOC(" Check API breakage gates are strict and explicit.\n").
-spec api_breakage_gates_enforced() -> boolean().
api_breakage_gates_enforced() ->
    all_api_gates_strict(release_lines()).

-file("src/lightspeed/release/maturity_baseline.gleam", 512).
-spec supply_chain_all_required(list(supply_chain_gate())) -> boolean().
supply_chain_all_required(Values) ->
    case Values of
        [] ->
            true;

        [Value | Rest] ->
            erlang:element(3, Value) andalso supply_chain_all_required(Rest)
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 503).
-spec all_supply_chain_required(list(release_line_baseline())) -> boolean().
all_supply_chain_required(Values) ->
    case Values of
        [] ->
            true;

        [Value | Rest] ->
            supply_chain_all_required(erlang:element(7, Value)) andalso all_supply_chain_required(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 367).
?DOC(" Check supply-chain hygiene gates are required across release lines.\n").
-spec supply_chain_hygiene_enforced() -> boolean().
supply_chain_hygiene_enforced() ->
    all_supply_chain_required(release_lines()).

-file("src/lightspeed/release/maturity_baseline.gleam", 542).
-spec all_workflow_audits_present(list(contributor_workflow())) -> boolean().
all_workflow_audits_present(Workflows) ->
    case Workflows of
        [] ->
            true;

        [Workflow | Rest] ->
            gleam_stdlib:string_starts_with(
                erlang:element(4, Workflow),
                <<"ops/community/"/utf8>>
            )
            andalso all_workflow_audits_present(Rest)
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 533).
-spec workflows_have_audit_artifacts(list(release_line_baseline())) -> boolean().
workflows_have_audit_artifacts(Values) ->
    case Values of
        [] ->
            true;

        [Value | Rest] ->
            all_workflow_audits_present(erlang:element(8, Value)) andalso workflows_have_audit_artifacts(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 528).
-spec workflow_names_match(list(contributor_workflow())) -> boolean().
workflow_names_match(Workflows) ->
    Names = gleam@list:map(
        Workflows,
        fun(Workflow) -> erlang:element(2, Workflow) end
    ),
    Names =:= [<<"issue_triage"/utf8>>,
        <<"review_workflow"/utf8>>,
        <<"release_workflow"/utf8>>].

-file("src/lightspeed/release/maturity_baseline.gleam", 519).
-spec all_workflows_standardized(list(release_line_baseline())) -> boolean().
all_workflows_standardized(Values) ->
    case Values of
        [] ->
            true;

        [Value | Rest] ->
            workflow_names_match(erlang:element(8, Value)) andalso all_workflows_standardized(
                Rest
            )
    end.

-file("src/lightspeed/release/maturity_baseline.gleam", 372).
?DOC(" Check contributor operations are standardized.\n").
-spec contributor_operations_standardized() -> boolean().
contributor_operations_standardized() ->
    all_workflows_standardized(release_lines()) andalso workflows_have_audit_artifacts(
        release_lines()
    ).

-file("src/lightspeed/release/maturity_baseline.gleam", 378).
?DOC(" Deterministic M47 snapshot signature.\n").
-spec snapshot_signature() -> binary().
snapshot_signature() ->
    Line_signatures = gleam@list:map(release_lines(), fun signature/1),
    Artifacts = release_line_artifact_signatures(),
    <<<<<<<<<<"m47.maturity.v"/utf8, (erlang:integer_to_binary(1))/binary>>/binary,
                    "|lines="/utf8>>/binary,
                (join_with(<<";"/utf8>>, Line_signatures))/binary>>/binary,
            "|artifacts="/utf8>>/binary,
        (join_with(<<";"/utf8>>, Artifacts))/binary>>.