feat(stage2): add S2_00 AgentBackend spec

Keep the adapter non-executable until the native loader primitive and signed runtime admission contracts are bound.
This commit is contained in:
2026-08-30 03:05:06 +09:00
parent 0ac7223790
commit 388a6c0179
5 changed files with 1932 additions and 0 deletions
@@ -16,6 +16,17 @@
- 하위 에이전트(subagents)를 사용하여 핵심 테마와 교훈을 식별하고 MEMORY.md에 섹션으로 저장하라.
- 향후 세션 시작 시 MEMORY.md의 이전 섹션을 참조하라.
## 2026-08-30 — S2_00 AgentBackend YAML 작업명세 구현
한 줄 요약: `S_00_SOW.md`의 S2_00 계약을 두 독립 후보의 앙상블과 독립 evaluator 2개씩 정확히 2회 검증·증분개정하여 `Stage_2_S2_00.yml`로 구현하되, 미확인 native primitive를 창작하지 않고 O-06이 닫힐 때까지 명시적인 비실행 authoring projection으로 고정했다.
- 최종 산출물: `YAML_Prompts/2. Stage_2/Stage_2_S2_00.yml`; 954행/45,833 bytes/SHA-256 `3fbadd9bf48e8d3921b43f766690bf67ad1dd2cd0a8f624d78a9b3223edeeeb7`. 후보 A는 계약 완전성, 후보 B는 canonical 참조 최소화를 강화했고 main agent가 thin loader-adapter 구조로 병합했다.
- 실행 의미: 실행 성격은 `NON-LLM-DETERMINISTIC`이지만 현재 AgentBackend의 외부 고정 `.py` native invocation primitive가 확인되지 않았다. 따라서 `tasks: []`, `nexts: []`, `DRAFT_NOT_EXECUTABLE`, `OPEN_EXTERNAL_BACKEND`를 유지하며 빈 task를 성공 no-op으로 해석하지 않는다. 인라인 Python, direct runtime 우회, shell, 임의 MCP/tool, 구 Stage 2 v.0~v.3 dependency·fallback은 모두 금지한다.
- 계약 범위: loader만 호출하는 단일 원자 native primitive가 향후 invoke→profile별 single receipt 검증→상호배타 dispatch를 소유하도록 했다. Stage 1 exact input 16개 + signal expansion 1 family, `C00→C05→C10→C15`, normal 12-family와 diagnostic exact 5-family, `S2_10`/`S2_40_STATUS_ONLY` 상호배타 route 및 final status single writer `S2_40`을 보존한다.
- 2회 검증 교정: Round 1에서 affected-scope·보존식·review/slot·party/title·native projection·single receipt·workspace·retry·self-binding을 보강했다. Round 2의 법률/계약 `CRITICAL 0·MAJOR 4·MINOR 1`과 architecture `CRITICAL 0·MAJOR 6·MINOR 1`을 반영해 review `SUPPORTED`, slot `UNEVALUABLE`, explicit-relation adapter 미결속 처리, validate-only receipt v1/사건실행 receipt v2 분리, non-DEV admission·600초 process-tree timeout·workspace mapping·self-hash 전제를 명시했다. 지정 횟수 종료 후 제3의 독립 PASS 평가는 수행하지 않았다.
- drift·검증: 복사 view 24개를 `local_pointer → authority_ref#authority_pointer` 19개와 future-blocking row 5개로 기계 판독 가능하게 만들었다. unique-key YAML parse, pointer·fixed argv·input/output/route/schema enum 교차대조, UTF-8/final newline/trailing whitespace 및 `git diff --check`를 통과했고, 기존 `tests/s2_00` 38/38 PASS와 loader validate-only `VALIDATED_WITH_PENDING_BINDINGS`를 재확인했다.
- 잔여 경계: O-06 native adapter, O-07 signed admission, receipt v2와 runtime stdout single-JSON capture, loader non-DEV/timeout, authenticated workspace mapping, explicit relation adapter, Stage 1 completion seal와 detached signature가 열려 있다. 현 파일은 static adapter contract일 뿐 case invoke·downstream E2E·canary/production admission 또는 법률 검수 완료를 증명하지 않으며, 전제가 닫히면 canonical `agent_scripts/Stage_2_S2_00.yml` native projection을 원자 생성·hash binding·재봉인해야 한다.
## 2026-08-30 — S2_00 고정 YAML·assets·sources 구현
한 줄 요약: 정본 `S_00_SOW.md`와 `S2_00_assets.md`에 따라 `Default_Agent/Stage_2_Clean/`에 S2_00 고정 자산 141개를 생성하고, N=3 병렬 생성·순차 hash binding·독립 감사 2회와 병렬 증분수정을 거쳐 38/38 test 및 전체 정적 closure를 통과했다.
@@ -0,0 +1,954 @@
# S2_00 AgentBackend orchestration specification
# Canonical runtime logic remains under Default_Agent/Stage_2_Clean/.
# This authoring projection is intentionally non-executable until O-06 is closed.
Agent:
name: Stage_2_S2_00
description: >-
현행 Stage 1 Part 1-4 산출물을 release-bound fixed runtime으로 검증·보존·정규화하고,
claim-neutral cluster slice와 prompt bundle plan을 작성하는 S2_00 AgentBackend
loader-adapter 작업명세서. 이 파일은 외부 고정 Python을 호출하는 검증된
AgentBackend primitive와 live loader receipt가 결속되기 전에는 실행형 스크립트가 아니다.
version: "1.0.0-draft"
metadata:
workflow_id: S2_00
execution_class: NON-LLM-DETERMINISTIC
artifact_role: AGENTBACKEND_LOADER_ADAPTER_CONTRACT
contract_schema_version: stage2_agent_loader_adapter_contract.v1-draft
contract_schema_ref: null
contract_schema_status: NOT_IMPLEMENTED_DRAFT_ONLY
owner: Stage_2_workflow_maintainer
implementation_status: FIXED_ASSETS_PRESENT_ADAPTER_OPEN
specification_status: DRAFT_NOT_EXECUTABLE
authorization_status: DEV_VALIDATION_ONLY
invocation_status: OPEN_EXTERNAL_BACKEND
runtime_activation_allowed: false
strategy_ref: stage_2_optimal_update_strategy_v.4.md
sow_ref: S_00_SOW.md
canonical_root_ref: Default_Agent/Stage_2_Clean
canonical_workflow_ref: >-
Default_Agent/Stage_2_Clean/workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
loader_binding_ref: >-
Default_Agent/Stage_2_Clean/deployment/stage2_loader_binding.yml
loader_ref: Default_Agent/Stage_2_Clean/release_ops/stage2_loader.py
runtime_ref: Default_Agent/Stage_2_Clean/runtime/s2_00_ingress.py
release_ref: Default_Agent/Stage_2_Clean/manifest/stage2_release.json
source_of_truth_order:
- Default_Agent/Stage_2_Clean/manifest/stage2_release.json
- Default_Agent/Stage_2_Clean/deployment/stage2_loader_binding.yml
- Default_Agent/Stage_2_Clean/workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
canonical_contract_is_imported_not_copied: true
duplicated_runtime_logic_allowed: false
duplicated_hash_binding_allowed: false
legacy_runtime_dependencies: []
old_stage2_fallbacks: []
stage1_new_required_outputs: []
Stages:
- name: S2_00
description: >-
검증된 host adapter가 canonical stage2_loader.py만 호출하고, loader가
release·binding·asset closure를 검증한 뒤 C00→C05→C10→C15 fixed runtime을
수행하도록 하는 단일 deterministic stage. O-06 미해결 상태에서는 downstream을
스케줄하지 않으며 빈 tasks를 성공 no-op으로 해석해서는 안 된다.
prevs: []
nexts: []
tasks: []
x_activation_gate:
open_id: O-06
status: OPEN_EXTERNAL_BACKEND
runtime_activation_allowed: false
empty_tasks_meaning: NON_EXECUTABLE_CONTRACT_NOT_SUCCESSFUL_NOOP
blocker_reason: >-
현재 확인된 Agent Script 문법에는 release-bound 외부 고정 .py를 직접 호출하는
native task primitive가 없다. Direct MCP, code-executor, shell, 인라인 Python,
또는 확인되지 않은 tool name으로 우회하지 않는다.
allowed_until_closed:
- STATIC_CONTRACT_VALIDATION
- LOADER_VALIDATE_ONLY
- DEV_FIXTURE_TEST_HARNESS
forbidden_until_closed:
- AGENTBACKEND_CASE_RUN_INVOCATION
- S2_10_HANDOFF
- S2_40_STATUS_ONLY_HANDOFF
- SUBSET_CANARY_EXECUTION
- PRODUCTION_EXECUTION
required_closure_evidence:
- BACKEND_OWNER_APPROVED_FIXED_ENTRYPOINT_ADAPTER_SYNTAX
- LIVE_LOADER_INVOCATION_RECEIPT
- LOADER_BYPASS_NEGATIVE_TEST_PASS
- USER_WORKSPACE_CONTEXT_BINDING_PASS
activation_patch_contract:
replacement_mode: ATOMIC_NATIVE_EXECUTABLE_PROJECTION
draft_host_registry_policy: REJECT_IMPORT_AND_EXECUTION
draft_rejection_code: EMPTY_TASK_STAGE_REJECTED
executable_projection_allowed_top_level_fields_only: true
executable_projection_must_remove_extension_fields:
- Agent.metadata
- Agent.Stages[0].x_activation_gate
- Agent.Stages[0].x_s2_00_contract
executable_projection_task_count: 1
executable_projection_task_role: >-
NATIVE_LOADER_INVOKE_RECEIPT_VALIDATE_AND_EXCLUSIVE_DISPATCH
executable_projection_graph_owner: ONE_ATOMIC_APPROVED_HOST_PRIMITIVE
executable_projection_internal_semantics:
- INVOKE_BOUND_STAGE2_LOADER
- VERIFY_PROFILE_SPECIFIC_SINGLE_LOADER_RECEIPT
- VERIFY_ROUTE_STATUS_AND_ARTIFACT_HASH_BINDING
- DISPATCH_EXACTLY_ONE_DOWNSTREAM_OR_FAIL_ZERO_DOWNSTREAM
stage_level_unconditional_nexts_after_activation: []
exclusive_downstream_handoffs:
- S2_10
- S2_40_STATUS_ONLY
s2_10_edge_requires:
- LOADER_INVOKE_SUCCESS
- ROUTE_IN_TO_S2_10_OR_TO_S2_10_WITH_ISSUES
- IMMUTABLE_EXECUTABLE_CLUSTER_SLICE_AND_BUNDLE_ONLY
s2_40_status_only_edge_requires:
- LOADER_INVOKE_SUCCESS
- ROUTE_EQUALS_TO_S2_40_STATUS_ONLY
- EXACT_FIVE_DIAGNOSTIC_ARTIFACTS_ONLY
both_downstream_edges_same_run_allowed: false
required_post_patch_evidence:
- AGENTBACKEND_PARSE_CONSTRUCT_PASS
- EXACTLY_ONE_NATIVE_LOADER_TASK_PASS
- ATOMIC_INVOKE_VALIDATE_EXCLUSIVE_DISPATCH_PASS
- EMPTY_TASK_DRAFT_REJECTION_PASS
- EXECUTABLE_AGENT_SCRIPT_SELF_HASH_PASS
- LOADER_RECEIPT_SCHEMA_STRICT_PASS
- RUNTIME_STDOUT_EXACTLY_ONE_JSON_PASS
- ROUTE_STATUS_ARTIFACT_HASH_BINDING_PASS
- MALFORMED_EXTRA_MISSING_RECEIPT_ZERO_DOWNSTREAM_PASS
- ROUTE_MUTUAL_EXCLUSION_AND_AFFECTED_SCOPE_CONFORMANCE_PASS
- TIMEOUT_RETRY_OWNERSHIP_CONFORMANCE_PASS
release_rebind_required: true
x_s2_00_contract:
canonical_import:
mode: RELEASE_BOUND_EXACT_REFERENCE
workflow_ref: workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
workflow_id: S2_00
workflow_schema_version: stage2_workflow_contract.v1
loader_ref: release_ops/stage2_loader.py
binding_ref: deployment/stage2_loader_binding.yml
runtime_ref: runtime/s2_00_ingress.py
release_ref: manifest/stage2_release.json
runtime_logic_override_allowed: false
input_output_override_allowed: false
directory_scan_allowed: false
glob_fallback_allowed: false
fuzzy_basename_allowed: false
host_adapter_slot:
primitive_name: null
primitive_schema: null
native_task_definition: null
status: OPEN_EXTERNAL_BACKEND
required_semantics:
loader_only_invocation: true
direct_runtime_invocation_allowed: false
shell: false
arbitrary_command_allowed: false
arbitrary_executable_allowed: false
arbitrary_source_code_allowed: false
arbitrary_absolute_path_allowed: false
caller_selected_output_root_allowed: false
user_workspace_context_forwarding_required: true
byte_preserving_workspace_transport_required: true
loader_receipt_capture_required: true
runtime_stdout_capture_required: true
runtime_stdout_strict_single_json_required: true
runtime_extra_or_missing_json_allowed: false
runtime_returncode_zero_required: true
runtime_result_ok_true_required: true
prohibited_substitutes:
- INLINE_PYTHON_CODE_EXECUTOR
- DIRECT_RUNTIME_S2_00_INGRESS_CALL
- TEXT_NORMALIZING_RAW_DIGEST_TRANSPORT
- UNVERIFIED_MCP_TOOL_OR_ENDPOINT
single_loader_receipt_contract:
output_object_count: 1
current_schema_ref: schemas/deployment.schema.json#/$defs/loader_receipt
current_schema_version: stage2_loader_receipt.v1
required_case_schema_version: stage2_loader_receipt.v2
binding_status: PENDING_LOADER_AND_SCHEMA_UPGRADE
sole_envelope_writer: release_ops/stage2_loader.py
common_required_fields:
- schema_version
- loader_id
- workflow_id
- mode
- request_digest
- run_id
- attempt_id
- argv_digest
- release_class
- release_digest
- binding_digest
- asset_validation
- invocation_status
- backend_session_binding_digest
- workspace_mapping_digest
- transport_adapter_id
- transport_adapter_sha256
- byte_preserving_transport_verified
- shell
mode_contracts:
VALIDATE_ONLY:
required_fields:
- pending_bindings
- pending_binding_count
forbidden_fields:
- run_binding_digest
- runtime_returncode
- runtime_result_digest
- ingress_route
- ingress_status_sha256
- publish_status
INVOKE:
required_fields:
- run_binding_digest
- runtime_returncode
- runtime_result_digest
- ingress_route
- ingress_status_sha256
- publish_status
- pending_bindings
- pending_binding_count
required_values:
pending_binding_count: 0
runtime_returncode: 0
publish_status: PUBLISHED_OR_IDEMPOTENT_REVALIDATED
host_binding_fields_source: APPROVED_NATIVE_ADAPTER_SESSION_EVIDENCE
invocation_status_is_profile_specific: true
malformed_extra_missing_or_noop_disposition: FAIL_WITH_ZERO_DOWNSTREAM
loader_update_and_schema_reseal_required: true
loader_request_contract:
fixed_values:
workflow_id: S2_00
release_ref: manifest/stage2_release.json
backend_bound_values:
- argument_id: run_id
source: RUN_TUPLE_BINDING
raw_user_value_allowed: false
- argument_id: attempt_id
source: TRANSIENT_RETRY_BINDING
canonical_id_input_allowed: false
- argument_id: user_context_sha256
source: BACKEND_SESSION
raw_user_id_persist_allowed: false
- argument_id: workspace_context_sha256
source: BACKEND_SESSION
raw_workspace_id_persist_allowed: false
- argument_id: stage1_run_root_ref
source: BACKEND_WORKSPACE_TRANSPORT
arbitrary_absolute_path_allowed: false
- argument_id: stage1_deployment_root_ref
source: BACKEND_WORKSPACE_TRANSPORT
arbitrary_absolute_path_allowed: false
deployed_contents_must_match: >-
manifest/stage2_release.json#/dependency_locks/stage1
allowed_flags_in_order:
- --workflow-id
- --release-ref
- --run-id
- --attempt-id
- --user-context-sha256
- --workspace-context-sha256
- --stage1-run-root-ref
- --stage1-deployment-root-ref
positional_argument_count: 0
invocation_profiles:
DEV_VALIDATE_ONLY:
base_flags_plus:
- --validate-only
expected_status:
- VALIDATED
- VALIDATED_WITH_PENDING_BINDINGS
case_runtime_success_allowed: false
downstream_handoff_allowed: false
CASE_INVOKE:
additional_flags: []
validate_only_flag_allowed: false
runtime_and_publish_receipt_required: true
downstream_handoff_allowed_only_after_receipt_pass: true
CASE_INVOKE_NO_DOWNSTREAM_CANARY:
additional_flags: []
isolated_workspace_required: true
route_dispatch_allowed: false
purpose: VERIFY_NON_DEV_ADMISSION_AND_SINGLE_RECEIPT_BEFORE_ROUTING
negative_test_required: VALIDATE_ONLY_CANNOT_SATISFY_CASE_TASK_SUCCESS
release_and_integrity_gate:
trust_boundary: release_ops/stage2_loader.py
loader_bypass_allowed: false
binding_id: S2-BINDING-S2_00-V1
current_release_class: DEV_FIXTURE_RELEASE
current_release_status: DRAFT_NOT_EXECUTABLE
current_authorization_status: DEV_VALIDATION_ONLY
validate_only_expected_status: VALIDATED_WITH_PENDING_BINDINGS
signed_canary_admission_required: true
signed_production_admission_required: true
module_acceptance_is_production_release: false
required_checks:
- RELEASE_AND_BINDING_STRICT_PARSE
- AUTHORING_ROOT_AND_WORKSPACE_ROOT_CONFINEMENT
- WORKFLOW_LOADER_RUNTIME_SCHEMA_RAW_HASH_CLOSURE
- MODULE_MANIFEST_AND_RELEASE_ORACLE_CROSS_BINDING
- STAGE1_DEPENDENCY_LOCK_CLOSURE
- FIXED_ARGV_CONTRACT
- LEGACY_FALLBACK_EMPTY
- EXTERNAL_NETWORK_DISABLED
open_or_pending_evidence:
- O-06_AGENTBACKEND_NATIVE_ADAPTER
- O-07_SIGNED_RELEASE_ADMISSION
- STAGE1_COMPLETION_SEAL
- DETACHED_RELEASE_SIGNATURE
o06_closure_scope: LIVE_VALIDATE_ONLY_ADAPTER_RECEIPT
case_runtime_activation_requires:
- O_06_CLOSED
- O_07_CLOSED
- RELEASE_CLASS_IS_SUBSET_CANARY_OR_PRODUCTION
- RELEASE_STATUS_IS_ADMITTED
- SIGNED_NON_DEV_ADMISSION_VERIFIER_BOUND_AND_TESTED
- LOADER_NON_DEV_RELEASE_CLASS_SUPPORT_BOUND_AND_RESEALED
- PENDING_BINDING_COUNT_ZERO
- STAGE1_COMPLETION_SEAL_VALID
- DETACHED_RELEASE_SIGNATURE_VALID
- LOADER_RECEIPT_V2_SCHEMA_STRICT_PASS
- RUNTIME_STDOUT_EXACTLY_ONE_JSON_PASS
- ROUTE_STATUS_ARTIFACT_HASH_BINDING_PASS
- MALFORMED_EXTRA_MISSING_RECEIPT_ZERO_DOWNSTREAM_PASS
- ROUTE_MUTUAL_EXCLUSION_AND_AFFECTED_SCOPE_CONFORMANCE_PASS
- CASE_INVOKE_NO_DOWNSTREAM_CANARY_PASS
- AUTHENTICATED_WORKSPACE_MAPPING_BINDING_PASS
- CROSS_WORKSPACE_TAMPER_AND_COLLISION_NEGATIVE_TEST_PASS
- LOADER_600_SECOND_PROCESS_TREE_TIMEOUT_PASS
- RETRY_POLICY_AND_NEW_ATTEMPT_ID_CONFORMANCE_PASS
- EXPLICIT_RELATION_ADAPTER_BOUND_OR_HARD_JOIN_DISABLED_PASS
- LIVE_CASE_INVOKE_SINGLE_RECEIPT_PASS
user_workspace_transport_receipt_contract:
backend_session_hash_exact_equality_required: true
workspace_mapping_digest_required: true
transport_adapter_identity_and_hash_required: true
byte_preserving_capability_required: true
raw_user_or_workspace_id_persistence_allowed: false
tamper_negative_test_required: true
agent_script_self_binding_contract:
asset_id: AGENT-SCRIPT-S2_00
authoring_source_base: MAIN_WORKING_DIRECTORY
authoring_source_path: Stage_2_S2_00.yml
executable_projection_path: agent_scripts/Stage_2_S2_00.yml
canonical_path_root: Default_Agent/Stage_2_Clean
schema_id: stage2_agent_loader_adapter_contract.v1-draft
schema_ref: null
required_native_schema_id: stage2_agent_loader_adapter_contract.v1
binding_status: PENDING_O06_NATIVE_PROJECTION
required_manifest_targets:
- deployment/stage2_loader_binding.yml
- manifest/module_manifest.json
- manifest/stage2_release.json
exact_raw_sha256_required_before_activation: true
current_authoring_projection_is_release_asset: false
bind_authoring_source_directly_allowed: false
executable_projection_must_be_atomically_generated_and_resealed: true
fixed_runtime_contract:
runtime_ref: runtime/s2_00_ingress.py
only_direct_caller: release_ops/stage2_loader.py
component_order:
- C00
- C05
- C10
- C15
component_responsibilities:
C00: EXACT_RESOLVE_BOUNDED_SNAPSHOT_STRICT_VALIDATE_SOURCE_LOCK
C05: INDEPENDENT_MULTISET_AND_REVIEW_CONSERVATION
C10: SOURCE_PRESERVING_CONTEXT_CROSSWALK_BASE_ISSUE
C15: CLAIM_NEUTRAL_CLUSTER_SLICE_BUNDLE_AND_ATOMIC_PUBLISH
llm_calls_allowed: false
external_network_access_allowed: false
dynamic_code_allowed: false
runtime_package_install_allowed: false
snapshot_and_parse_policy:
transport_class: RELEASE_BOUND_BYTE_PRESERVING_WORKSPACE_TRANSPORT
text_normalizing_transport_for_raw_digest_allowed: false
same_descriptor_one_read_required: true
raw_hash_parse_and_schema_use_same_buffer: true
strict_utf8_json_required: true
duplicate_json_key_allowed: false
nan_or_infinity_allowed: false
trailing_extra_object_allowed: false
resource_limits_source: manifest/stage2_release.json
snapshot_seal_before_and_after_required: true
source_snapshot_change_disposition: DISCARD_ATTEMPT
stage1_ingress_view:
authority: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml#/Agent/Stages/0/orchestration_contract/input_contract
default_exact_input_count: 16
signal_manifest_expansion_family_count: 1
default_exact_paths:
- evidence_indexed.json
- evidence_event_candidates.json
- client_goal.json
- routing/domain_screening.json
- routing/domain_activation_manifest.json
- quality_gates/B1_evidence_indexed_gate.json
- quality_gates/B2_event_candidates_gate.json
- quality_gates/stage1_part1_soft_gate_handoff.json
- BO.json
- signals/signal_manifest.json
- quality_gates/stage1_part2_review_handoff.json
- legal_effect_structures.json
- quality_gates/stage1_part3_review_handoff.json
- Fact_Ledger_base.json
- stage1_tmp/fact_ledger/fact_ledger_writer_report.json
- quality_gates/stage1_part4_review_handoff.json
signal_manifest_expansion_rule: signals/<signal_manifest.files[i].path>
optional_fields_only:
- client_goal.json#/defendant_target_matrix
- client_goal.json#/parties/defendants/*/asset_status
optional_fields_as_sibling_files_allowed: false
stage1_contract_manifest_default_required: false
stage1_new_production_task_required: false
deployment_dependency_lock_ref: manifest/stage2_release.json#/dependency_locks/stage1
expected_stage1_deployment_path_count: 55
signal_and_conservation_policy:
signal_downstream_read_set_exact:
- ALL
manifest_file_order_preserved: true
semantic_file_kinds:
- canonical
- domain_signal
integrity_only_file_kinds:
- compatibility_view
signal_file_and_record_equations_separate: true
signal_record_occurrence_identity:
- manifest_transaction_id
- file_path
- record_ordinal
- signal_id
dual_sg01_raw_hashes_preserved_separately: true
dual_sg01_semantic_projection_comparison_required: true
upstream_pass_trusted_without_recompute: false
bo_fact_ledger_set_cardinality_multiset_required: true
review_occurrence_single_partition_required: true
preserve_stage1_ids_codepoint_exactly: true
raw_stage1_id_normalization_allowed: false
fact_ledger_current_v8_required_keys:
- domain_effects
- calculation_requests
required_independent_conservation_checks:
- BO_FACT_LEDGER_SOURCE_BO_SET_CARDINALITY_MULTISET
- FACT_ID_PRODUCER_SEQUENCE_DUPLICATE_AND_MISSING
- LES_DECLARED_ACTUAL_DOMAIN_TYPE_ROUTE_AND_BO_REVERSE_JOIN
- EVIDENCE_EVENT_FINAL_ID_GATE_EXCEPTION_AND_DANGLING_REF
- SIGNAL_FILE_MULTISET_RAW_HASH_COUNT_AND_PROJECTION_LINEAGE
- SIGNAL_SEMANTIC_RECORD_OCCURRENCE_MULTISET
- EXPECTED_RUNNABLE_CONFIG_AND_ACTIVE_DOMAIN_SIGNAL_CLOSURE
- P1_P4_PATH_WRAPPER_DIGEST_RECEIPT_AND_WRITER_REPORT
- EVERY_INPUT_ALLOWLIST_PRODUCER_SCHEMA_HASH_RUN_TRANSACTION
schema_pass_substitutes_for_semantic_conservation_pass: false
review_partition_contract:
partitions:
- SUPPORTED
- CONDITIONAL
- UNRESOLVED
- EXCLUDED
- UNMAPPED
pairwise_disjoint: true
exhaustive_over_raw_review_occurrences: true
unknown_upstream_status_disposition: UNMAPPED
legacy_resolved_alias_target: SUPPORTED
legacy_resolved_alias_requires_release_bound_adapter: true
inferred_supported_promotion_allowed: false
blocked_review_item_limits_affected_ready_scope_only: true
affected_scope_policy:
technical_disposition_enum:
- AVAILABLE
- AVAILABLE_WITH_ISSUES
- UNAVAILABLE
every_occurrence_has_exactly_one_disposition: true
unavailable_occurrence_receipt_preserved: true
impact_scope_enum:
- GLOBAL
- CLUSTER
- PARTY_CONTEXT
- OBJECT_CONTEXT
- FACT
- EVIDENCE
- SIGNAL
- REVIEW_ITEM
occurrence_disposition_required_fields:
- scope_technical_disposition
- impact_scope
- scope_refs
- source_contract_row_refs
- reason_codes
- downstream_allowed_actions
minimum_coherent_package_predicate:
- SAME_RUN_FACT_AND_BO_IDENTITY_UNIVERSE_RESOLVABLE
- ALL_AVAILABLE_INCOMPLETE_AND_UNAVAILABLE_SCOPES_ENUMERATED
- EVERY_USED_AND_UNUSABLE_SOURCE_EXPLAINED_IN_MANIFEST_AND_ISSUES
- AT_LEAST_ONE_SCHEMA_VALID_EXECUTABLE_CLUSTER_SLICE_AND_BUNDLE
evidence_gap_or_legal_uncertainty_is_global_abort: false
non_global_abort_reason_classes:
- EVIDENCE_OR_EVENT_GATE_UNCERTAIN
- EVENT_DATE_UNRESOLVED
- CLIENT_GOAL_OR_OPTIONAL_TARGET_ASSET_ABSENT
- PARTIAL_DOMAIN_CONFIG_GAP
- UNRESOLVED_CONDITIONAL_EXCLUDED_OR_UNMAPPED_REVIEW_ITEM
- RECOVERABLE_JOIN_GAP
- DOWNSTREAM_CASE_TYPE_RULE_OR_CORPUS_RELEASE_ISSUE
- CACHE_MISS_OR_CACHE_SERVICE_UNAVAILABLE
closed_route_decision_table:
TO_S2_10:
requires_all:
- CORE_ANCHORS_AND_CONSERVATION_CONSISTENT
- EXECUTABLE_CLUSTER_IDS_NONEMPTY
- NO_RECOVERABLE_SCOPE_ISSUE_REQUIRING_WITH_ISSUES_LABEL
TO_S2_10_WITH_ISSUES:
requires_all:
- MINIMUM_COHERENT_PACKAGE_POSSIBLE
- RECOVERABLE_SCOPE_OR_REVIEW_ISSUES_EXIST
- EXECUTABLE_CLUSTER_IDS_NONEMPTY
TO_S2_40_STATUS_ONLY:
requires_any:
- MINIMUM_COHERENT_PACKAGE_IMPOSSIBLE
- GLOBAL_RUN_OR_TRANSACTION_IDENTITY_CONFLICT
- TRUSTED_SOURCE_UNIVERSE_CANNOT_BE_ENUMERATED
- NO_CONSISTENT_EXECUTABLE_OR_RESIDUAL_SLICE
- RESIDUAL_ONLY_AND_EXECUTABLE_CLUSTER_IDS_EMPTY
- ALL_BUNDLE_COHORTS_NON_EXECUTABLE
context_and_cluster_policy:
source_ref_required_for_every_context_row: true
stage1_canonical_id_preferred: true
occurrence_context_id_only_when_canonical_id_absent: true
party_object_fuzzy_merge_allowed: false
legal_conclusion_allowed: false
case_type_id_creation_allowed: false
claim_option_id_creation_allowed: false
atomic_claim_id_creation_allowed: false
claim_group_id_creation_allowed: false
slot_crosswalk_contract:
required_link_chain:
- FACT_TO_BO_PARTY_OBJECT
- BO_TO_LES_DOMAIN_TYPE_ROUTE
- LES_TO_SIGNAL_CALCULATION_AND_LAW_VERSION
- FACT_TO_ELEMENT_OPPOSING_DEFENSE_REBUTTAL_SLOT
- FACT_TO_EVIDENCE_STATUS_EVIDENCE_AND_EVENT
- FACT_TO_REVIEW_CLIENT_GOAL_AND_CLIENT_INSTRUCTION
slot_state_enum:
- SUPPORTED
- CONDITIONAL
- UNRESOLVED
- NOT_APPLICABLE
- UNEVALUABLE
config_gap_disposition: UNEVALUABLE
missing_stage1_rebuttal_or_canonical_slot_creation_allowed: false
proposed_slot_is_canonical_slot: false
proposed_slot_requires:
- authority_ref
- taxonomy_difference
- review_disposition
corpus_element_may_replace_stage1_slot_without_approved_crosswalk: false
party_and_title_context_contract:
separate_fields:
- plaintiff_title_chain
- defendant_role
- liability_form
- client_instruction
- recovery_information
- completeness_status
- source_refs
client_no_sue_means_claim_nonexistence: false
recovery_risk_means_claim_nonexistence: false
hard_join_predicates:
- SAME_BO_ID
- LES_SOURCE_BO_ID
- SAME_EVIDENCE_REF
- SAME_EVENT_REF
- APPROVED_EXPLICIT_CASE_RELATION
approved_explicit_case_relation_contract:
adapter_id: S2A-FACT-EXPLICIT-RELATION-V1
schema_ref: null
required_release_pointer: >-
manifest/stage2_release.json#/relation_adapters/S2A-FACT-EXPLICIT-RELATION-V1
allowed_logical_input_id: fact_ledger_base
allowed_json_pointer_patterns:
- /facts/*/relations/*
- /facts/*/explicit_relations/*
- /facts/*/candidate_relations/*
allowed_relation_kinds:
- claim_precondition
- accessory_of
- incompatible_with
- EXPLICIT_DEPENDENCY
- EXPLICIT_CASE_RELATION
exact_source_relation_required: true
binding_status: UNBOUND_BLOCKS_EXPLICIT_HARD_JOIN
unbound_disposition: >-
APPROVED_EXPLICIT_CASE_RELATION을 hard join에서 제외하고 issue로 보존한다.
activation_evidence_required:
- EXPLICIT_RELATION_ADAPTER_SCHEMA_BOUND
- EXPLICIT_RELATION_ADAPTER_RELEASE_POINTER_PASS
- UNAPPROVED_RELATION_HARD_JOIN_NEGATIVE_TEST_PASS
same_domain_profile_type_route_or_display_value_as_hard_join_allowed: false
legal_relation_projection_status: CANDIDATE_ONLY
candidate_only_relation_types:
- claim_precondition
- accessory_of
- incompatible_with
similarity_only_hard_join_allowed: false
domain_registry_depends_on_as_litigation_edge_allowed: false
cycles_preserved_as_scc: true
executable_and_residual_partitions_disjoint: true
bundle_policy:
plan_only: true
prompt_text_generation_allowed: false
cache_policy_ref: registry/cache/prompt_cache_policy.yml
forbidden_bulk_inputs:
- FULL_137_CASE_CATALOG
- RAW_CORPUS
- ALL_RELIEF_MARKDOWN
- ALL_LAW_VALUE_ROWS
pii_in_static_prefix_allowed: false
cache_miss_or_service_down_is_quality_failure: false
prefix_hash_or_pii_failure_scope: COHORT_NON_EXECUTABLE
mode_release_mapping:
STRUCTURAL_FIXTURE: DEV_FIXTURE_RELEASE
SUBSET_CANARY: SUBSET_CANARY_RELEASE
PRODUCTION: PRODUCTION_RELEASE
structural_fixture_case_run_publish_allowed: false
structural_fixture_downstream_route_allowed: false
output_and_route_contract:
output_root_source: LOADER_BOUND_WORKSPACE_MAPPING
current_runtime_mapping_status: UNBOUND_FOR_CASE_ACTIVATION
current_runtime_mapping_observation: >-
runtime currently derives project_root/stage2_runs/<run_id>; authenticated workspace
mapping is not yet supplied by a bound native adapter.
required_workspace_mapping_contract:
source: AUTHENTICATED_BACKEND_WORKSPACE_TRANSPORT
opaque_mapping_handle_required: true
mapping_digest_required: true
stage1_run_and_deployment_roots_same_workspace_required: true
output_destination_deterministically_derived_from_mapping_and_run_id: true
cross_workspace_collision_and_tamper_negative_test_required: true
caller_selected_output_root_allowed: false
normal_branch:
route_values:
- TO_S2_10
- TO_S2_10_WITH_ISSUES
required_artifacts:
- ingress/stage1_input_manifest.json
- ingress/intake_report.json
- context/case_context.json
- context/evidence_inventory.json
- context/object_registry.json
- context/party_and_title_context.json
- context/slot_crosswalk.json
- context/cluster_plan.json
- context/cluster_slices/<cluster_id>.json
- context/bundle_plan.json
- review/issue_ledger.base.json
- ingress/ingress_status.json
technical_diagnostic_allowed: false
diagnostic_branch:
route_values:
- TO_S2_40_STATUS_ONLY
exact_artifacts:
- ingress/stage1_input_manifest.json
- ingress/intake_report.json
- ingress/technical_diagnostic.json
- review/issue_ledger.base.json
- ingress/ingress_status.json
context_publish_allowed: false
ingress_status_written_last: true
whole_tree_atomic_publish_required: true
partial_publish_allowed: false
downstream_route_after_successful_loader_invoke_only: true
normal_route_requires_nonempty_executable_cluster_ids: true
final_status_writer: S2_40
s2_00_final_status_write_allowed: false
retry_and_idempotence:
timeout_seconds: 600
timeout_source: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml#/Agent/Stages/0/orchestration_contract/execution/timeout_seconds
timeout_source_is_release_policy: false
outer_timeout_owner: APPROVED_NATIVE_HOST_ADAPTER
subprocess_timeout_owner: release_ops/stage2_loader.py
current_loader_timeout_support: MISSING_BLOCKS_CASE_ACTIVATION
process_tree_cancel_on_timeout_required: true
retry_policy_ref: manifest/stage2_release.json#/retry_policies/0
retry_policy_id: S2-RETRY-TRANSIENT-READ-V1
referenced_row_policy_id_equality_required: true
retry_policy_literals_duplicated_here: false
retryable_class: TRANSIENT_READ_OR_LOCK_ONLY
timeout_retryable_only_if_closed_retry_policy_code_present: true
timeout_retry_disposition_source: manifest/stage2_release.json#/retry_policies/0
per_attempt_timeout_receipt_required: true
semantic_or_integrity_failure_retry_allowed: false
run_tuple_material:
- input_set_digest
- stage2_release_digest
- algorithm_digest
- release_class
attempt_id_is_run_tuple_material: false
every_retry_requires_new_attempt_id: true
same_run_tuple_byte_identical_required: true
different_run_tuple_requires_new_run_id: true
conflicting_existing_output_overwrite_allowed: false
prohibitions:
llm_provider_field_allowed: false
llm_model_field_allowed: false
prompt_body_allowed: false
inline_python_allowed: false
inline_schema_allowed: false
direct_runtime_call_allowed: false
arbitrary_mcp_endpoint_allowed: false
external_network_access_allowed: false
directory_scan_allowed: false
fuzzy_path_fallback_allowed: false
claim_or_case_type_generation_allowed: false
final_document_status_seal_or_commit_allowed: false
legacy_stage2_v0_v3_dependencies: []
old_stage2_runtime_fallbacks: []
acceptance_boundary:
executable_yaml_acceptance_deferred: true
defer_reason: O-06_OPEN_EXTERNAL_BACKEND
static_checks_required_now:
- YAML_STRICT_PARSE
- CANONICAL_REFERENCE_PATHS_EXIST
- CANONICAL_WORKFLOW_COMPONENT_AND_IO_MATCH
- NO_LLM_PROMPT_INLINE_CODE_OR_UNVERIFIED_TOOL
- LEGACY_V0_V3_DEPENDENCY_COUNT_ZERO
- FIXED_ARGV_MATCHES_LOADER_BINDING
- RELEASE_STATUS_REMAINS_DRAFT_NOT_EXECUTABLE
- CANONICAL_HASH_AND_JSON_POINTER_DRIFT_TEST_PASS
- DRAFT_EMPTY_TASK_HOST_REJECTION_PASS
validate_only_adapter_claim_requires:
- O_06_CLOSED
- NATIVE_ADAPTER_SCHEMA_AND_HASH_BOUND
- LIVE_VALIDATE_ONLY_LOADER_RECEIPT_PASS
- LOADER_BYPASS_NEGATIVE_TEST_PASS
case_runtime_executable_claim_requires:
- NATIVE_EXECUTABLE_PROJECTION_PARSE_CONSTRUCT_PASS
- EXACTLY_ONE_NATIVE_LOADER_TASK_PASS
authoritative_case_activation_prerequisite_ref: >-
/Agent/Stages/0/x_s2_00_contract/release_and_integrity_gate/case_runtime_activation_requires
all_authoritative_case_activation_prerequisites_required: true
canary_or_production_claim_requires:
- CASE_RUNTIME_EXECUTABLE_CLAIM_PASS
- RELEASE_SCOPE_MATCHES_CASE_RUN
- DOWNSTREAM_HANDOFF_MOCK_PASS
completion_claim_allowed_now: STATIC_AGENT_ADAPTER_CONTRACT_ONLY
canonical_view_drift_control:
copied_fields_are_non_authoritative_views: true
authoritative_contract_hash_source: manifest/stage2_release.json
comparison_rows:
- contract_id: COMPONENT_ORDER
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/fixed_runtime_contract/component_order
authority_ref: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
authority_pointer: >-
/Agent/Stages/0/orchestration_contract/component_order
comparison_mode: EXACT_SEQUENCE
binding_status: BOUND
- contract_id: FIXED_ARGV_ALLOWED_FLAGS
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/loader_request_contract/allowed_flags_in_order
authority_ref: deployment/stage2_loader_binding.yml
authority_pointer: /fixed_argv_contract/allowed_flags
comparison_mode: EXACT_SEQUENCE
binding_status: BOUND
- contract_id: STAGE1_INPUT_ALLOWLIST
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/stage1_ingress_view/default_exact_paths
authority_ref: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
authority_pointer: >-
/Agent/Stages/0/orchestration_contract/input_contract
comparison_mode: EXACT_PATH_PROJECTION_IN_DECLARED_ORDER
binding_status: BOUND
- contract_id: NORMAL_OUTPUT_BRANCH
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/output_and_route_contract/normal_branch/required_artifacts
authority_ref: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
authority_pointer: >-
/Agent/Stages/0/orchestration_contract/output_contract/normal_branch
comparison_mode: EXACT_SEQUENCE
binding_status: BOUND
- contract_id: DIAGNOSTIC_OUTPUT_BRANCH
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/output_and_route_contract/diagnostic_branch/exact_artifacts
authority_ref: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
authority_pointer: >-
/Agent/Stages/0/orchestration_contract/output_contract/diagnostic_branch
comparison_mode: EXACT_SEQUENCE
binding_status: BOUND
- contract_id: ROUTE_ENUMS
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/output_and_route_contract
authority_ref: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
authority_pointer: >-
/Agent/Stages/0/orchestration_contract/routing
comparison_mode: ROUTE_VALUE_AND_EXCLUSIVE_HANDOFF_PROJECTION_EXACT
binding_status: BOUND
- contract_id: RETRY_POLICY
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/retry_and_idempotence
authority_ref: manifest/stage2_release.json
authority_pointer: /retry_policies/0
comparison_mode: RETRY_POLICY_ID_AND_CLASSIFICATION_PROJECTION_EXACT
binding_status: BOUND
- contract_id: AFFECTED_SCOPE_REQUIRED_FIELDS
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/affected_scope_policy/occurrence_disposition_required_fields
authority_ref: schemas/ingress.schema.json
authority_pointer: /$defs/affected_scope_fields/required
comparison_mode: EXACT_SET
binding_status: BOUND
- contract_id: AFFECTED_SCOPE_TECHNICAL_ENUM
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/affected_scope_policy/technical_disposition_enum
authority_ref: schemas/ingress.schema.json
authority_pointer: /$defs/scope_technical_disposition/enum
comparison_mode: EXACT_SEQUENCE
binding_status: BOUND
- contract_id: AFFECTED_SCOPE_IMPACT_ENUM
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/affected_scope_policy/impact_scope_enum
authority_ref: schemas/ingress.schema.json
authority_pointer: /$defs/impact_scope/enum
comparison_mode: EXACT_SEQUENCE
binding_status: BOUND
- contract_id: CONSERVATION_CONTRACT
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/signal_and_conservation_policy
authority_ref: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
authority_pointer: >-
/Agent/Stages/0/orchestration_contract/conservation_contract
comparison_mode: REQUIRED_INVARIANT_PROJECTION_EXACT
binding_status: BOUND
- contract_id: REVIEW_PARTITION_ENUM
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/signal_and_conservation_policy/review_partition_contract/partitions
authority_ref: schemas/review_status.schema.json
authority_pointer: /$defs/normalized_review_partition/enum
comparison_mode: EXACT_SEQUENCE
binding_status: BOUND
- contract_id: SLOT_EVALUATION_ENUM
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/context_and_cluster_policy/slot_crosswalk_contract/slot_state_enum
authority_ref: schemas/context.schema.json
authority_pointer: >-
/$defs/slot_crosswalk_row/properties/evaluation_status/enum
comparison_mode: EXACT_SEQUENCE
binding_status: BOUND
- contract_id: EXPLICIT_RELATION_ADAPTER
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/context_and_cluster_policy/approved_explicit_case_relation_contract
authority_ref: null
authority_pointer: null
comparison_mode: REQUIRED_FUTURE_BINDING
binding_status: UNBOUND_BLOCKS_EXPLICIT_HARD_JOIN
- contract_id: BUNDLE_POLICY
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/bundle_policy
authority_ref: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
authority_pointer: >-
/Agent/Stages/0/orchestration_contract/bundle_policy
comparison_mode: REQUIRED_POLICY_PROJECTION_EXACT
binding_status: BOUND
- contract_id: FINAL_STATUS_SINGLE_WRITER
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/output_and_route_contract/final_status_writer
authority_ref: >-
workflows/S2_00_stage1_ingress_normalize_and_bundle_compile.yml
authority_pointer: >-
/Agent/Stages/0/orchestration_contract/routing/final_status_writer
comparison_mode: EXACT_SCALAR
binding_status: BOUND
- contract_id: CURRENT_LOADER_RECEIPT_SCHEMA
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/host_adapter_slot/single_loader_receipt_contract/current_schema_version
authority_ref: schemas/deployment.schema.json
authority_pointer: /$defs/loader_receipt/properties/schema_version/const
comparison_mode: EXACT_SCALAR
binding_status: BOUND_VALIDATE_ONLY
- contract_id: REQUIRED_CASE_LOADER_RECEIPT_PROFILE
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/host_adapter_slot/single_loader_receipt_contract
authority_ref: null
authority_pointer: null
comparison_mode: REQUIRED_FUTURE_BINDING
binding_status: UNBOUND_BLOCKS_CASE_ACTIVATION
- contract_id: CURRENT_RELEASE_CLASS
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/release_and_integrity_gate/current_release_class
authority_ref: manifest/stage2_release.json
authority_pointer: /release_class
comparison_mode: EXACT_SCALAR
binding_status: BOUND_DEV_ONLY
- contract_id: CURRENT_RELEASE_STATUS
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/release_and_integrity_gate/current_release_status
authority_ref: manifest/stage2_release.json
authority_pointer: /release_status
comparison_mode: EXACT_SCALAR
binding_status: BOUND_DEV_ONLY
- contract_id: CURRENT_AUTHORIZATION_STATUS
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/release_and_integrity_gate/current_authorization_status
authority_ref: manifest/stage2_release.json
authority_pointer: /authorization_status
comparison_mode: EXACT_SCALAR
binding_status: BOUND_DEV_ONLY
- contract_id: CASE_ACTIVATION_PREREQUISITES
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/release_and_integrity_gate/case_runtime_activation_requires
authority_ref: null
authority_pointer: null
comparison_mode: REQUIRED_FUTURE_RELEASE_BINDING
binding_status: UNBOUND_BLOCKS_CASE_ACTIVATION
- contract_id: TIMEOUT_AND_PROCESS_TREE_CONTROL
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/retry_and_idempotence
authority_ref: null
authority_pointer: null
comparison_mode: REQUIRED_FUTURE_LOADER_AND_HOST_BINDING
binding_status: UNBOUND_BLOCKS_CASE_ACTIVATION
- contract_id: EXECUTABLE_PROJECTION_SELF_BINDING
local_pointer: >-
/Agent/Stages/0/x_s2_00_contract/agent_script_self_binding_contract
authority_ref: null
authority_pointer: null
comparison_mode: REQUIRED_FUTURE_MANIFEST_HASH_BINDING
binding_status: UNBOUND_BLOCKS_CASE_ACTIVATION
every_row_requires_local_pointer: true
every_bound_row_requires_authority_ref_and_pointer: true
unbound_row_requires_closed_blocking_disposition: true
drift_disposition: BLOCK_ACTIVATION_AND_REGENERATE_VIEW