# CHILISA OVERLAY AUTO-ACTIVATION

**Purpose:** Define when the Chilisa (Indigenous) constraint overlay activates automatically, independent of the orchestrator's `frame_id` selection. Chilisa is both a primary frame and a constitutive overlay.

---

## 1. Two Activation Modes

- **Primary Frame.** `frame_id = chilisa_indigenous`. Hooks loaded from `_public/frame-packs/chilisa-indigenous.md`. State: `PRIMARY_FRAME`.
- **Overlay.** Other `frame_id`; overlay auto-activates on top of that frame's scoring hook. State: `OVERLAY_ACTIVE`.
- **Inactive.** Neither condition fires. State: `NONE`.

---

## 2. Auto-Activation Triggers (Mode B)

Overlay activates if **any** of the following is true:

1. `population_flag.indigenous_or_non_western == true` (orchestrator-supplied).
2. `question_intent == "indigenous"` AND `frame_id != "chilisa_indigenous"`.
3. `audit_target_artifact_ref` metadata (pass-through descriptor only; Frame Host does not read artifact bodies per E1 isolation) carries an orchestrator-applied population tag in the Indigenous / First Nations / Aboriginal / African-traditional / Asian-traditional-non-urban / Pacific Islander / non-Western-epistemically-grounded set.

If any trigger fires and `frame_id != chilisa_indigenous`, set `OVERLAY_ACTIVE`. If `frame_id == chilisa_indigenous`, set `PRIMARY_FRAME` regardless.

---

## 3. Overlay Mechanics

When `chilisa_constraint_state = OVERLAY_ACTIVE`, the Frame Host augments the bound frame's `scoring_hook` with a **refusal-to-score predicate**:

```
four_rs_gate(audit_artifact) := {
  responsibility_attested: bool,   // research declares accountability to community
  respect_attested: bool,          // culturally appropriate methods declared
  reciprocity_attested: bool,      // benefit flows to community, not extracted
  rights_and_regulations_attested: bool  // Indigenous data sovereignty acknowledged
}

score_predicate := all four fields == true
```

If the predicate is false at scoring time, the bound frame's scoring hook **refuses to score** and returns `NO_SCORE_FOUR_RS_UNMET`. The refusal propagates to Independent Scoring Layer, which renders it as a first-class verdict (not a silence, not a failure).

The overlay does NOT replace the bound frame's scoring axes. It adds a predicate that must pass before scoring proceeds. This is a constitutive constraint, not a substitute frame.

---

## 4. Why Auto-Activation (Not Opt-In)

Auditing Indigenous / non-Western-population claims with a Western frame, absent Four-Rs overlay, is structurally extractive regardless of auditor intent. Opt-in invites omission by inattention; auto-activation makes the constraint non-defeasible. Counter `bindings_with_chilisa_overlay` increments on activation; E9 cross-checks against population-flag histograms to detect activation failure.

---

## 5. What Overlay Is Not

- **Not a frame substitution.** The orchestrator's `frame_id` still binds; Chilisa constrains scoring, not retrieval.
- **Not community-specific.** Chilisa is a floor (Four Rs) across Indigenous methodologies; does not substitute for a community-specific frame (Mi'kmaw, Maori, Bantu, etc.) where one is available.
- **Not a politeness check.** The Four-Rs predicate is methodological, not rhetorical. "Research mentions community" is not "research demonstrates reciprocity." Resolve against structural audit-trail evidence, not tone.

---

## 6. Interaction With Role-Divider

Chilisa overlay and role-divider are independent: both can fire on the same binding. If `frame_id = realist_cmo`, `ram_frame_id = RAM_S03`, and `population_flag.indigenous_or_non_western = true`, then:

1. Role-divider check runs first (Phase 5).
2. If role-divider refuses, binding fails before overlay is evaluated.
3. If role-divider passes, Phase 6 binding proceeds with `chilisa_constraint_state = OVERLAY_ACTIVE` and the Four-Rs predicate attached.

Order is fixed: role-divider is LOAD-BEARING structural refusal; overlay is an additive constraint on the scoring hook.
