II.
MergePolicy JSON
Structured · livemerge-policy:protected-prefixes
Protected-prefixes env merge json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "merge-policy:protected-prefixes",
"_kind": "MergePolicy",
"_file": "channels-hooks/merge-policies/protected-prefixes.yaml",
"_cluster": "channels-hooks",
"attributes": {
"displayName": "Protected-prefixes env merge",
"decisionRule": "most-restrictive-wins",
"envMergeRule": "protected-prefixes",
"protectedPrefixes": [
"A5C_",
"BABYSITTER_",
"CLAUDE_"
],
"systemMessageStrategy": "concatenate",
"arraysMergeRule": "replace",
"description": "Merge policy used when settings layers ship sensitive env keys that\nplugins SHOULD NOT be able to overwrite. Any persistEnv / contextVars\nkey whose name starts with one of `protectedPrefixes` is locked in by\nthe first handler that sets it; later handlers attempting to override\nsuch a key produce a HookMergeDiagnostic with outcome=conflict and\nseverity=warning.\n"
},
"outgoingEdges": [
{
"from": "merge-policy:protected-prefixes",
"to": "decision-verb:deny",
"kind": "merge_policy_orders_decision_verb",
"attributes": {
"rank": 1
}
},
{
"from": "merge-policy:protected-prefixes",
"to": "decision-verb:ask",
"kind": "merge_policy_orders_decision_verb",
"attributes": {
"rank": 2
}
},
{
"from": "merge-policy:protected-prefixes",
"to": "decision-verb:allow",
"kind": "merge_policy_orders_decision_verb",
"attributes": {
"rank": 3
}
},
{
"from": "merge-policy:protected-prefixes",
"to": "decision-verb:continue",
"kind": "merge_policy_orders_decision_verb",
"attributes": {
"rank": 4
}
},
{
"from": "merge-policy:protected-prefixes",
"to": "decision-verb:noop",
"kind": "merge_policy_orders_decision_verb",
"attributes": {
"rank": 5
}
}
],
"incomingEdges": [
{
"from": "hook-surface:decision-point",
"to": "merge-policy:protected-prefixes",
"kind": "uses_merge_policy",
"attributes": {}
}
]
}