# Plan: AI-Forward Axis + Bloom Calibration for assurance-audit

Source: faculty `ai_forward_assessment_rubric_tool.xlsx` (the user's own tool). Mine content, do NOT emit the xlsx as output. Fold every new criterion into the skill.

## Design principle

Two orthogonal axes (xlsx itself says they "solve different problems"):

- **Assurance tier** (EXISTING) — *can the course certify learning?* (resistance). Enum: Assured / Partially Assured / Unassured / Counterfeit. Deterministic. Unchanged.
- **AI-Forward rating** (NEW) — *does the design teach + assess ethical, judgment-based AI use?* Enum: Needs redesign / Use with safeguards / AI-resistant / AI-forward. Deterministic baseline; AI annotation never alters it (same rule as tier).

A course can be Assured but Needs-redesign on AI-forward (locked-down, teaches no AI literacy), or AI-forward but Unassured (great AI pedagogy, no certifying anchor). Reporting both is the point.

## Reuse (do NOT rebuild — already in backend)

| xlsx dimension | existing backend source |
|---|---|
| D1 transparency/ethical boundaries | AIAS 1-5 descriptors |
| D2 Bloom/outcome alignment | Dimension C (Bloom dist + counterfeit) |
| D3 AI-resistant assurance anchor | Two-Lane + Substitutability (= assurance tier) |
| D5 process/authorship (partial) | `_PROCESS_TRAIL_KEYWORDS` |
| D6 equity/workload/feasibility | Dimension E + over_surveillance + proctoring burden |

## Net-new build (lean)

### 1. Per-dimension 4-level anchors (`assurance_audit.py`)
Map each of the 6 dimensions to {0 Needs redesign, 1 Use with safeguards, 2 AI-resistant, 3 AI-forward} using existing signals:
- D1 from AIAS level (1→0, 2-3→2, 4-5→3)
- D2 from Bloom-fit + counterfeit flag
- D3 from lane + substitutability (secured anchor present/weight)
- D4 **NEW** judgment-of-AI keyword + AI-judged refinement
- D5 from process-trail depth (none / one artifact / authorship-supporting / AI-use-documented)
- D6 from Dimension E

### 2. `ai_forward_rating` combiner (deterministic)
Course-level enum from the "forward" dimensions (D1 transparency, D4 judgment, D5 authorship), with the xlsx auto-rule: *high-stakes task + no assurance anchor → auto Needs-redesign*. Min-gated: rating = lowest qualifying anchor across the forward dimensions (xlsx "use the category that best describes current design, not aspiration").

### 3. Bloom-calibrated findings (deterministic, from existing signals)
Per high-weight assessment, apply Bloom Guide "Avoid" rules:
- Remember + high-stakes + unproctored + no randomization → "AI-pasteable recall" finding
- Apply + reusable/no-variant → finding
- Analyze/Evaluate + no rubric/criteria → finding
- Create + high-weight + no process trail/milestones/defense → finding
Each finding cites assessment + points + grade_weight_pct (existing finding contract).

### 4. Two new `needs_ai_review` judgment types (AI annotation only, never feeds rating)
- `judgment_of_ai` (D4) — does task grade the *quality of AI-use judgment* (critique/verify/defend/audit)?
- `authorship_evidence_depth` (D5) — does process evidence document prompts/revisions/verification/reflection?
Deterministic keyword baseline first; AI refines the narrative only.

### 5. Inventory signals (`assurance_inventory.py`) — minimal additions
- judgment keywords: critique, defend, justify, verify, audit, disclose, "AI appendix", "AI-use", annotate
- task-level AI-use declaration detection (supplements syllabus-level AIAS)

### 6. Doc grounding
- **NEW** `references/ai-forward-framework.md`: the 6×4 anchor matrix + Bloom calibration table (restyled from xlsx, user's own content) + axis definition + scoring rules.
- `references/assurance-model.md`: add **AIAS construct-drift caution** (Ateşkan — frequency ≠ authority) + **Evidence Base & Cautions** section (xlsx bibliography w/ per-source limits; "design diagnostic, not validated instrument").
- `SKILL.md`: new Report section 2.5 "AI-Forward Rating", scorecard field docs, "AI-forward assessment" trigger → mapped to this axis.

## Scorecard additions
```
ai_forward_rating: "Needs redesign"|"Use with safeguards"|"AI-resistant"|"AI-forward"
ai_forward_dimensions: {D1..D6: {anchor: 0-3, label, evidence}}
bloom_calibration_findings: [{assessment, points, grade_weight_pct, rule, message}]
```
AI-judged items folded into narrative; never alter `ai_forward_rating` or `tier`.

## Out of scope
- No xlsx/Excel output. No psychometric scoring (xlsx itself disclaims validation). No new cross-course ranking axis (AI-forward is per-course diagnostic only, like the AI fields — keep cohort ranking on deterministic assurance tier).

## Release
feat → minor: 7.36.2 → 7.37.0. VERSION + both plugin.json + tag v7.37.0 + CHANGELOG `## 7.37.0`. Coda sync auto. Tests extend `tests/test_assurance_*`.

## Verification
- Synthetic course fixtures: (a) locked-down/no-AI → Assured + Needs-redesign forward; (b) AI-appendix project course → high forward, check anchor=3; (c) Create capstone one-shot no-milestones → Bloom finding fires. Assert deterministic rating stable regardless of AI annotation.
