Skip to Content

Session Catalog

The Session Catalog gives teachers a fast, reliable path to preparing a class session without waiting for an AI draft. The catalog is a library of pre-authored blueprints — each one a curated set of sub-skills, a theme, and a target session length, written offline and quality-checked before publication. There is no generated content and no LLM anywhere on this path.

When you pick a blueprint, Amal uses it as an instruction set. For every eligible student in your class, the system selects items from the item bank, personalizes the order and scaffold level based on each student’s skill-status and active support plan, and delivers the result as an online practice queue or a printable worksheet with a QR code. The question bank, the ISM assembly engine, and each student’s profile all stay as they are — the blueprint only defines the topic and sub-skill focus.

No questions are written at session time. The blueprint picks existing items from the bank; it does not generate new ones.

The three tabs

Navigate to Sessions in the teacher sidebar. The hub opens to three tabs:

The recommended tab shows blueprints that Amal thinks are most relevant for your class right now. The ranking is based on which sub-skills appear most frequently as areas of active need across your students — weighted by RTI support level — so students who need more intensive practice have a stronger influence on the ranking.

Each row shows:

  • The blueprint name and its primary focus.
  • “Why recommended” — expand to see the matched sub-skills and how many students in your class have active need in those areas. The count is a plain number of students, not a percentage or a severity score.
  • A “Pick” button to start the session wizard for that blueprint.

The recommended list is a suggestion. You are not required to follow it. Any blueprint in the catalog is available via the Browse tab, and you always confirm before anything is sent to students.

Browse

The browse tab shows the full operational catalog. Use the filters to narrow by:

  • Grade — matches your class’s grade level by default.
  • Theme — content topic (e.g., a named reading theme or skill family).
  • Sub-skill — the primary targeted literacy sub-skill.
  • Keyword — free-text search across title and tags.

Results page with a “Load more” control (cursor-based paging). Each BlueprintCard shows the blueprint name, theme, the primary sub-skill, and the target session length.

Recently generated

The recently-generated tab lists sessions your class has had in the past, most recent first. Each row shows the blueprint used, the session state (draft / previewed / delivered / cancelled), and the delivery mode (online or printable).

Row links open the session detail in read-only mode so you can review what was sent. The “New session” button always routes back to the full blueprint wizard — a prior session is never reused as-is to protect per-student personalization accuracy.


Pick → edit → accept → deliver

Step 1: Pick a blueprint

Click “Pick” on any blueprint card (from the recommended or browse tab). Amal creates a draft session pinned to that blueprint’s version. The draft opens the session detail page.

Step 2: Edit (optional)

In the draft state you can adjust:

  • Target sub-skills — add or remove sub-skills from the blueprint’s default set. The set must stay between 1 and 5 sub-skills. If you add a sub-skill with limited item bank coverage for your grade, an inline amber note appears; this is advisory and does not block you from proceeding.
  • Theme — swap the content theme if a different one is more relevant to your current unit.

These edits adjust the instruction set for the ISM assembly engine. No items are selected or generated until you accept.

To discard the session entirely, use the “Cancel session” button (a confirmation dialog appears). A cancelled session remains in the recently-generated tab for reference.

Step 3: Accept

Click “Accept” to close the draft and trigger the per-student fan-out. For each eligible student:

  1. Amal checks the student’s current skill-status, active support plan (bundle assignment if any), and scaffold tier.
  2. The ISM assembly engine selects items from the bank according to the blueprint’s (sub-skills, theme, grade) instruction set and the student’s personalization context.
  3. A session slot is created for the student.

The preview surface shows how many students were included and how many were temporarily excluded (see “Students not included” below). You cannot re-edit after accepting.

Step 4: Deliver

Once the session is in previewed state you can deliver it in one or both modes:

Online delivery

“Distribute online” queues a practice session for each included student. The next time a student opens Amal, the session will be waiting in their practice queue. The system is idempotent: running distribute more than once for the same student shows “already delivered” rather than creating a duplicate.

Printable PDFs

“Generate PDFs” produces a per-student PDF and a ZIP download of all sheets. Each sheet is A4, RTL, and includes a QR code the student can use to submit answers digitally. If any student-facing PDF string contains a language-safety violation, the API returns 422 and PDF generation is rejected for the whole batch. The session remains in previewed state; correct the content issue and retry. The filter_failed state is reserved for future partial-failure detection and is not currently written by the system.


Students not included

When you accept a session, students who currently have a do_not_decide_yet signal — meaning the system does not yet have enough data to determine their skill profile — are automatically held out of the fan-out. These students are listed in the “Not included” section on the previewed state with a growth-framed reason.

You can manually include a student by clicking “Include” next to their name. A confirmation dialog opens; there is no free-text reason field — the override is recorded by the system with a fixed reason code. Manually included students receive an ISM-assembled session using whatever profile data is currently available.

If all students in your class are temporarily excluded, delivery buttons are disabled. You can either include students manually one by one, or return later when more assessment data has been collected.


Personalization still happens per student

The blueprint defines the topic and sub-skill focus. Personalization happens inside that focus, per student:

  • Item difficulty is matched to the student’s current ability estimate.
  • If the student has an active support plan (bundle assignment), the ISM engine uses bundle-context mode — items are selected to reinforce the bundle’s anchor and supporting threads.
  • Scaffold level is an internal ISM signal; it is never shown to the student.

Two students in the same class who receive the same blueprint will get different items, different item orders, and potentially different session lengths depending on their individual profiles.


API endpoints

Teacher routes require authentication and are ClassTeacher-scoped.

MethodPathPurpose
GET/api/sessions/catalogBrowse / search / filter operational blueprints (FR-SGE-15)
GET/api/sessions/catalog/recommendedRTI-weighted recommended list for a class (FR-SGE-16)
GET/api/sessions/recently-generatedRecently-generated sessions for a class (FR-SGE-13)
POST/api/sessions/from-blueprintPick a blueprint and create a draft session (FR-SGE-17)
PATCH/api/sessions/:id/editEdit sub-skills / theme while in draft state (FR-SGE-17)
POST/api/sessions/:id/acceptAccept draft and trigger per-student ISM fan-out (FR-SGE-5)
POST/api/sessions/:id/distribute-onlineQueue online practice for included students (FR-SGE-6)
POST/api/sessions/:id/generate-pdfsProduce per-student printable PDFs + ZIP (FR-SGE-7)
POST/api/sessions/:id/recipients/:studentId/includeManually include an excluded student (FR-SGE-14)
POST/api/sessions/:id/cancelCancel a draft session
GET/api/sessions/:idSession detail (teacher read)
GET/api/sessions/:id/auditFull V-6 replay pin set + aggregate snapshot (requires RUN_BACKOFFICE)

For full request/response shapes see the API Reference.


Admin: importing and approving blueprints

Before any blueprint appears in the teacher catalog, an administrator imports a batch and a subject-matter expert approves it. These routes require the RUN_BACKOFFICE permission and are not available to teachers.

MethodPathPurpose
POST/api/session-blueprints/importImport a JSON batch of blueprints; returns a batchId
GET/api/session-blueprints/importList all blueprint import batches
GET/api/session-blueprints/import/:batchIdInspect a specific import batch
POST/api/session-blueprints/:batchId/approveApprove a batch; blueprints become visible in the catalog
GET/api/session-blueprints/:idSingle blueprint detail (admin read)

Blueprints start in pending_review status after import. Only approved (operational) blueprints appear in GET /api/sessions/catalog or GET /api/sessions/catalog/recommended. No blueprint is auto-approved on import.


Wave-2 note

Free-text topic input and document upload (both of which required a Teacher AI language model on the session path) are deferred to Wave 2. Wave 1 uses pre-authored blueprints only.