Learning Castle Portcullis Schema
This schema defines the hard-stop rules of the eduKateSengkang Learning Castle. A Portcullis does not choose the next destination. It blocks movement when the architecture, evidence, ownership, privacy or return requirements are not satisfied.
schema_id: /learning-castle/0113 schema_version: 0.1 system: eduKateSengkang Learning Castle object_type: portcullis runtime_parent: /learning-castle/0100 gate_schema: /learning-castle/0111 key_schema: /learning-castle/0112 state_schema: /learning-castle/0110 validation_schema: /learning-castle/0107 principle: invalid_transition_must_stop_before_traversal
Portcullis Contract
portcullis: rule_id: unique_rule_name trigger: explicit_condition blocks: gate_or_transition_class severity: warning | hard_stop reason: explicit_architectural_or_evidence_reason fallback: gatehouse | validation | canonical_owner | stop recoverable: true_or_false release_condition: declared_condition_or_not_applicable
Duplicate Ownership Stop
rule.duplicate_owner: trigger: new_or_existing_node_claims_primary_intent_already_owned_by_stronger_canonical_owner blocks: owner_promotion | new_hub_creation | route_to_duplicate_owner severity: hard_stop fallback: canonical_owner release_condition: genuine_distinct_intent_and_boundary_are_demonstrated
Weak Evidence Stop
rule.insufficient_evidence: trigger: prescription_or_high_confidence_route_requires_evidence_but_key.evidence_sufficient_is_missing blocks: prescription | confident_state_upgrade | high_confidence_bridge severity: hard_stop fallback: /learning-castle/0005 release_condition: sufficient_new_evidence
Unknown-State Stop
rule.unknown_state: trigger: learner_state = unknown AND route_requires_specific_intervention blocks: direct_intervention severity: hard_stop fallback: gatehouse release_condition: smallest_defensible_state_resolved
Unjustified Bridge Stop
rule.unjustified_bridge: trigger: cross_owner_route_without_key.bridge_justified blocks: bridge severity: hard_stop fallback: source_owner release_condition: real_handoff_job_and_evidence_are_declared
Forced Service Stop
rule.forced_service: trigger: destination_is_tuition_service AND key.service_requested_is_missing blocks: service_road severity: hard_stop fallback: knowledge_owner_or_gatehouse release_condition: explicit_service_intent
Knowledge-Service Boundary Stop
rule.service_replaces_knowledge_owner: trigger: commercial_service_node_claims_broader_knowledge_ownership blocks: owner_transfer severity: hard_stop fallback: subject_or_knowledge_fort release_condition: ownership_boundary_restored
Private Boundary Stop
rule.private_runtime_leak: trigger: public_route_requires_exposure_of_private_proprietary_logic blocks: disclosure | direct_private_traversal severity: hard_stop fallback: public_safe_projection release_condition: none_for_public_runtime
Missing Return Stop
rule.missing_return: trigger: deep_learning_route_or_bridge_has_no_meaningful_return_path blocks: route_completion severity: hard_stop fallback: source_owner_or_validation release_condition: return_target_added_and_validated
Archive Ownership Stop
rule.archive_claims_owner: trigger: archive_or_index_attempts_to_replace_canonical_hub_owner blocks: owner_transfer severity: hard_stop fallback: canonical_owner_hub release_condition: archive_role_restored_to_enumeration
Clinical Overreach Stop
rule.clinical_overreach: trigger: educational_observation_is_used_to_make_medical_or_clinical_diagnosis blocks: diagnosis_claim severity: hard_stop fallback: bounded_educational_observation release_condition: none_within_learning_castle_scope
State Inflation Stop
rule.state_inflation:
trigger: evidence_does_not_support_upgrade_to_stronger_state
blocks: state_upgrade
severity: hard_stop
examples:
one_good_attempt -> independent
familiar_only -> portable
bounded_evidence -> verified
fallback: current_state
release_condition: stronger_new_evidence
Dead-End Stop
rule.dead_end: trigger: learning_route_terminates_without_owner_keep_or_open_gate_return blocks: completion_status severity: hard_stop fallback: nearest_verified_owner release_condition: valid_return_added
Portcullis Priority
evaluate_before_gate_open: 1. private_boundary 2. duplicate_owner 3. unknown_state_or_insufficient_evidence 4. invalid_bridge 5. forced_service 6. missing_return 7. state_inflation 8. archive_or_service_boundary_collapse if hard_stop_triggered: gate_must_remain_closed
Release Procedure
1. identify triggered rule 2. preserve current safe owner 3. gather missing evidence or repair architecture 4. revalidate state key edge and return 5. release only when declared release_condition_is_met 6. do_not_bypass_hard_stop_by_using_alternate_unvalidated_route
The Portcullis is the Castle’s refusal layer. Gates decide where movement may go; keys justify permission; the Portcullis prevents movement that the architecture has no right to make.