Part of #12150 (Epic: ADR-0126 implementation, v17 line — 17.x minor, maintainer-ruled).
Blocked-by: #12157
Blocked-by: #12158
Dispatch: coordinated under the #12150 program — ⛔ not from the general queue; the program dispatches on unlock (maintainer anti-preemption instruction, 2026-08-25, PM session session_01KWRU3s15AJz7PGW7a7wdCh). Contract: ADR-0126 §8 item 2 (amended) + amendment ruling 3, maintainer verbatim: 「动作 可能是需要开关的,因为有的 action 我不想启用。」 (ruling record: #12049 comment 5408117664 — first-party pull for the disable half).
Deliverable
Generalize the flow disable machinery to actions:
- Ledger rows
metadata_type: 'action' in the same sys_metadata_activation object — no schema change. - Consult point at action dispatch (the action-execution seam analog of L3's
execute() consult); loud refusal reusing the established disable code/message shape. - Same §5 write authority (install-level, operator-gated in multi-org postures).
- Surface row: packaged actions with on/off on the L5 Setup surface (or its actions sibling — follow the shape L5 lands; coordinate, don't fork).
- ⛔ Action-clone is NOT chartered — disable only; authoring new sibling actions stays as today.
Acceptance
- Disabled packaged action refuses at dispatch on every invocation path; enabled-by-absence unchanged.
- Posture-matrix write tests as L2.
- No new ledger columns, no clone machinery.
Refs: ADR-0126 §8 · #12049 comment 5408117664 · L2/L3 (the mechanism this generalizes)
Part of #12150 (Epic: ADR-0126 implementation, v17 line — 17.x minor, maintainer-ruled).
Blocked-by: #12157
Blocked-by: #12158
Dispatch: coordinated under the #12150 program — ⛔ not from the general queue; the program dispatches on unlock (maintainer anti-preemption instruction, 2026-08-25, PM session
session_01KWRU3s15AJz7PGW7a7wdCh). Contract: ADR-0126 §8 item 2 (amended) + amendment ruling 3, maintainer verbatim: 「动作 可能是需要开关的,因为有的 action 我不想启用。」 (ruling record: #12049 comment 5408117664 — first-party pull for the disable half).Deliverable
Generalize the flow disable machinery to actions:
metadata_type: 'action'in the samesys_metadata_activationobject — no schema change.execute()consult); loud refusal reusing the established disable code/message shape.Acceptance
Refs: ADR-0126 §8 · #12049 comment 5408117664 · L2/L3 (the mechanism this generalizes)