๐ŸŸช๐ŸŸฆ๐ŸŸฉ๐ŸŸจ

Teachkit โ€” leave teacher notes on any page

No accounts. No login. Anyone who knows the keywords can author a lesson for the page they're on. Pick a verb, type your note, send.

1The 90-second how-to

  1. Install once. Drag the BotsKit bookmarklet from the install page onto your bookmarks bar.
  2. Visit the page you want a lesson to attach to (e.g. a product manual, a docs page, a Wikipedia article).
  3. Click the bookmarklet. A small chat panel opens.
  4. Type a TEACH-family message (see verbs below). Send.
  5. Anyone who visits that URL afterwards and opens BotsKit gets your note pre-loaded as the chat's running context.

That's it. There is no separate teacher mode, no login, no admin panel. The role of teacher is conferred per-message by the keyword you used.

2The five verbs

Case-insensitive, must lead the message line. Anything else is treated as a normal chat turn.

TEACH: teacher

Author or amend the running lesson for this URL.

TEACH: When students ask about pairing this device, point them at section 4
of the manual. Common confusion: the LED blinks blue during pairing, not green.

The model rephrases your note into a clean instruction set, swaps it in as the canonical lesson for this URL, and keeps the prior version in append-only history.

TEACH_VIEW: teacher

Show the current lesson without editing it. No body needed.

TEACH_VIEW:

TEACH_SCOPE: teacher

Broaden (or narrow) the URL the next TEACH: writes against. Combinable as a leading line before TEACH: or LEARNED:.

TEACH_SCOPE: /devices/*
TEACH: All device pages share the same pairing flow โ€” see manual ยง4.

Default scope is the exact path you're on. /devices/* applies to every page under /devices/. A page-level TEACH: will still win over a broader prefix when both exist (most-specific wins).

QUESTION: student

Park an open question for a teacher to review later. Does not change the lesson.

QUESTION: The pairing LED is purple on my unit, not blue. Same flow?

Lands in the inbox attached to this URL key. Teachers see queued questions when they next TEACH_VIEW: here.

LEARNED: student

Student-authored amendment. Same rewrite path as TEACH:; differs only in attribution intent.

LEARNED: If the LED is purple instead of blue, hold the button for 10s
to reset, then start the pairing flow.

Use this when you, as a learner, discovered something the lesson should know โ€” without claiming the teacher role.

3How URL scoping works

Lessons attach to a URL key, not a topic. The lookup escalates from most-specific to most-general.

When a student visits a page and types a chat message, BotsKit walks:

  1. Exact path โ€” https://example.com/devices/widget-pro/setup
  2. Path prefixes set by TEACH_SCOPE: โ€” e.g. /devices/widget-pro/*, then /devices/*
  3. Origin-wide โ€” https://example.com/*
  4. Fall through to "no lesson" โ€” generic chat.

The first match wins. So a page-specific TEACH: always overrides a broader scoped one.

Local IPs and loopback

On http://localhost / http://192.168.x.x, BotsKit also folds in a content-hash salt โ€” a short hash of the first ~N characters of the page text โ€” to disambiguate same-URL-different-machine collisions. It's a heuristic, not a guarantee. See ADR 0002.

4What the chat sees

Lessons are pre-injected as system context. Page text rides along when you grant the chip.

Every chat turn that's not a TEACH/STUDENT verb runs through the orchestrator, which:

Conversation continuity is keyed by a session cookie (botskit_session) โ€” opaque, not auth, just a routing key so multiple turns on the same page share state. Each URL navigation in a session = its own conversation (ADR 0003).

5Trust caveats โ€” read this once

Cooperative small-group, not adversarial. Teachkit has no auth gate. Anyone who knows the verbs is a teacher for the message they typed. Any student can issue TEACH: and rewrite the lesson for a URL. This is fine for classrooms, teams, and private deployments โ€” it is not fine for hostile multi-tenant. See ADR 0001 for the reasoning and the upgrade path.

If you need real teacher/student separation, the path is documented but not built: invite-code rooms or per-install bookmarklet tokens. Both add a tenancy primitive. Until then, only deploy teachkit somewhere the audience is cooperative.

What's safe regardless. The trust model still holds: the bookmarklet anchor is the only thing that touches your browser; the collar's grant chips still gate every cap; the host page never sees the chat or the lesson unless you flip a chip on.

6Worked example โ€” leaving a lesson for a Wikipedia article

  1. Visit https://en.wikipedia.org/wiki/Bookmarklet.
  2. Click your BotsKit bookmark; the chat panel attaches.
  3. Flip the read page chip on (so the lesson can reference what's on the page).
  4. Type:
    TEACH_SCOPE: /wiki/Bookmarklet
    TEACH: For students new to bookmarklets: focus on the "Security" and
    "Browser support" sections. Skip "History" โ€” interesting but not on the test.
  5. Send. The next student who visits the same URL and opens BotsKit gets that as their running context โ€” they don't need to know it's there.

To check it later, open BotsKit on the same URL and type TEACH_VIEW: โ€” the canonical lesson echoes back.

7Going deeper