Chalkmind

Teachers: one AI teacher, made into any subject's teacher

The board has one teacher: the AI with its teaching skill. A tenant makes its own teachers from it, over the API (API.md). Each is a profile the AI teaches as:

There is nothing to program for a new kind of teacher. A stock market teacher, a spoken English teacher and a Std 10 science teacher are all the same teacher with a different profile.

{
  "id": "stock-market-basics",
  "name": "Stock Market Basics",
  "names": { "gu": "શેરબજારની પાયાની વાતો" },
  "subject": "the stock market and trading",
  "level": "adults who have never traded",
  "lang": "gu",
  "style": "Calm and practical: every idea with a chart and a small worked example in rupees.",
  "notes": "Learners confuse a share's price with the company's value; come back to it.",
  "library": ["economics", "financial_markets", "share_types"]
}

What the AI is told

A lesson for a teacher gets the board guide and the tool rules. In place of the index of the whole library, it gets the teacher's own block:

## You are Stock Market Basics (શેરબજારની પાયાની વાતો)

You teach the stock market and trading to adults who have never traded. Teach it at their level, with examples from
their world, the words of the field explained the first time they come, and the field's own notation.
- **How you teach:** Calm and practical: …
- **The book you teach from** (board_book chapter=N reads a chapter …). Its chapters: 1. શેર એટલે શું?; …
- **Your part of the library** …: economics: diagram demand_curve, …
- **Notes:** …
- You teach; you do not advise. Never tell a learner what to buy, sell or take for their own money, health or legal
  matters, and promise no result …

After that comes the teaching skill. The rest of the library is still one board_library search=WORD away. GET /v1/teachers/ID?lang=gu shows exactly what the AI is told (instructions).

School classes: templates

Every standard and subject the library is made for is a template: std10-science, std12-accountancy, std11-political-science and so on (GET /v1/templates). Each one has a name in Gujarati and Hindi, and its class's part of the library, chapter by chapter.

There are two ways to teach a class:

A school teacher is told to teach as the class's own GSEB teacher (or the board named): from its textbook, in its words, definitions, examples, units and notation, and with its chapter and exercise numbers.

Books

Each chapter is one file: # title on the first line, then the text. Later the books move to R2 with the same keys.

Its memory of each class

A teacher remembers each class (or student) it teaches: what it taught, when, how often, how, and how the class did. The memory is per teacher. A Std 10 English teacher remembers its English lessons with class 10A, and a Std 10 science teacher remembers its own.

Each teacher may record its lessons ("record": true): see Recording in API.md.

How it looks on the students' screens

Its own voice and pace

Strictly by its book (scope)

"scope": "book" keeps a teacher to its book and the lesson's chapter (Shikhar's Live ભણતર). It teaches and answers only from the book: no other subject, no other standard, no general knowledge. "open" (the default, or null) lets it teach from what it knows.

Before such a teacher hears a student's question, the board places it with a small, fast model (src/scope.ts):

WhereWhat happens
Today's chapter, or the class itself ("again, slower", a greeting)The teacher answers it, from the book
Another chapter of the same bookAnswered in a sentence or two; the teacher says which chapter teaches it and goes back
Outside the bookThe teacher never sees its words. It says one fixed, kind line in the lesson's language («આ પ્રશ્ન આપણા અભ્યાસક્રમની બહાર છે. આપણે આ પ્રકરણ પર ધ્યાન રાખીએ.») and goes on. The question is flagged off_topic (question.flagged) at once. After the lesson, it starts nothing

The lesson's chapter is the one the host names ("chapter": N on the lesson) and those the teacher read; with none named, the whole book counts as today's. If the placing fails (6 s), the teacher hears the question with the rule to check it itself. bin/scope-check.ts --secrets FILE runs the edge cases against the real model.

Where teachers are kept

A tenant's teachers are files: liveboard/teachers/TENANT/ID.json (TEACHERS_DIR moves the folder). Each tenant sees only its own. A board without keys keeps its teachers under _local, for this computer.

Using a teacher