ഇvana sajan pallivathukkal
four pre-read components composed over a purple render: a rice calculator with a live priority ranking, a table comparing the product manager's job across three company stages, a type-hint clarity lab, and a quarterly budget allocator flagged two weeks over

ai systems · airtribe

airtribe ai skills

two skills at airtribe. one used by the team that writes what paid learners get, one by the learner. in both, what is being designed is how much room the author is allowed.

role
product designer
team
four: two product designers, one backend, one frontend
context
airtribe · pre-reads and cohort live
year
2026

product thesis

a skill is a packaged set of instructions a model works inside. airtribe's two are not versions of each other, and in both the work is the same: deciding what the author may change and what they may never touch.

context

the two pull in opposite directions. inside, the author is a colleague building for a catalogue, so the risk is drift. outside, the author is the model itself, writing for one reader who cannot easily check it, so the risk is trust. the pre-read skill protects the product from its authors; kai protects the reader from the product.

role and ownership

two product designers ran both of these end to end. i took the ground research, the problem framing, the conversations with the lxd team and the stakeholders around them, and the design decisions below; we split the ui screens, and the other designer led the handoff. one backend and one frontend engineer alongside. each skill below is its own case study.

01 · pre-reads · the internal skill

a pre-read is what a learner gets before a live session, and at airtribe they are written by learning designers rather than visual ones. across a growing catalogue that produced fifty lessons which each looked slightly like whoever wrote them.

what drifted, and how

the lxd team took up the problem that pre-reads were walls of text and wanted them interactive enough to be worth opening. the catch is who writes them.

the question

how do you hand ten to fifteen people the freedom to build anything a lesson needs, and still have it come out looking like one product?

two working boards side by side: on the left the component exploration in light and dark, from avatars and text blocks through chat, quiz, visualisation and loader states; on the right the comp board for the product management programme
the working boards, at the zoom where you stop reading them and start seeing the size of the problem.

key decisions · pre-reads

01

a skill, not templates or a rulebook

why

templates hold a catalogue together by capping what a lesson can be. a rulebook leaves an author free and gets read once. the lxd team needed both halves at once, across a catalogue still growing.

tradeoff

a skill has to be comprehensive enough to write a whole lesson inside, far more to author and maintain than a page of guidelines.

result

the brand is inherited by construction rather than checked after the fact, so the only thing left for a learning designer to decide is the teaching.

02

classify by behaviour

why

most of a real pre-read is not a library primitive. it is dioramas, chat dialogues, tap-sort exercises, a gamification rail, a 3d rice space. whatever a library failed to cover would have been the interesting part of the lesson.

tradeoff

eight behaviours is coarser than a list of components, and it asks an author to decide what a thing does before building it.

result

anything new is placed by what it does, prose, widget, data-figure, chrome or code, inherits that family's surfaces, and comes out airtribe without passing a designer.

03

govern the look and nothing else

why

a skill that reached into structure or pedagogy is one the learning designers would route around, and its whole value is that they author inside it.

tradeoff

it can produce a pre-read that is perfectly on-brand and badly taught, and there is no guardrail in it that would catch that.

result

one accent, cool neutrals, two typefaces, every state defined. structure, sections and the teaching stay with the author, and the skill says so in as many words.

the tool we built and threw away

first direction

the lxd team arrived with a version that had every possible interaction in it. we broke it into categories, shipped a basic version, and it was rejected: too simple. so we went back and did the pedagogical work we had skipped, then built a component maker, a framer-like tool for assembling the artifacts.

what happened

it made the workflow worse. the chain already ran designer, program manager, copy-paste into the dashboard; the maker added another station and one more place for an error to enter.

what changed

we scratched it and built the skill instead, comprehensive enough that the designer writes the whole lesson inside it and hands over a link. the rule: when a tool sits between the person who understands the material and the thing the learner reads, the tool is the problem.

what interactive was actually doing

a board splitting the prototype's interactive elements into two jobs: forcing active thought, and visual variety as a palate cleanser
  1. 01

    two jobs, and only one of them teaches

    every interactive element in the prototype, sorted into two piles. job a forces active thought: the quiz that interrupts the narrative, the prompt that makes you apply it. job b is visual variety: radar charts, fake chrome, mock terminals.

  2. 02

    job b is allowed, it is just not progress

    visual variety makes a page less monotonous. it does not change what the learner remembers. the prototype was dense with job b, and we had read that density as evidence the lesson was interactive.

  3. 03

    name the mechanism, or you are only adding widgets

    job a works because of retrieval practice, spaced thinking and the generation effect. writing those down let us argue for one interaction over another instead of about how many there were.

a four beat learning loop: encountering a situation, forming a position, testing it against reality, connecting it to yourself
what a learner does in a good lesson, as four beats. the second is new: commit to an answer before the explanation arrives, and the explanation can be written as a reply to what you picked. the fourth existed but sat at the end. moving it cost no new components.
probable types of interactivity mapped across three programmes: product management, backend engineering and generative ai
the three programmes do not share a way of being right. a product answer is defended, so pml gets decision scenarios and spec critique. a backend answer is executable, so bel gets a sandbox. a generative ai answer is evaluated, so gai gets prompt iteration and eval design. one approved list could not have served all three.

the workflow the skill actually changed

  1. the designer writes the lesson

    the learning experience designer designs the material and its teaching in one pass, inside the skill.

    before, they designed the material and handed it on to someone else to assemble

  2. a link, not a document

    what comes out is an interactive lesson at a url.

    before, a program manager copy-pasted the material into the internal dashboard, which is where errors entered

  3. the manager embeds the link

    the program manager drops it into the learner dashboard. that is the whole handover.

    content quality now belongs to the person with the pedagogy, and uniformity belongs to the skill

scroll the run →

the first skill's output contract: its five sections, and the required html boilerplate with the pinned babel version and the exact script tag called out
section 1.2 of the first skill version, typeset from the file: the tag verbatim, with the failure written next to the version that causes it. a rule an author can paste survives the next person who tidies a dependency list.

what the spec carries besides colour

a file, not a design file

one self-contained html page, react and tailwind from a cdn, no build step, so a learning designer can upload it without an engineer.

a pinned version, with the reason next to it

babel standalone is pinned to 7.17.12. newer builds default to the automatic jsx runtime, which injects an import into a non-module script and renders a blank page. the pin is written down with the failure beside it.

one exact script tag

type text/babel, with no data-presets, no data-type and no type module. each reintroduces the same blank page.

a weight budget

the renderer accepts 500kb. generated pre-reads land between 50 and 80kb, so the budget is headroom rather than something an author thinks about.

an allowlist, not a hope

the content security policy names the script, font and avatar hosts by hand. without it a file works on the designer's laptop and nowhere else, and the failure arrives weeks later as somebody else's bug.

no em dashes, anywhere

a copy rule that is really a visual one, checked with a grep before shipping. the smallest rule in the system and the most reliable tell for whether a lesson went through it.

the spec that was too tight

first direction

the first version was prescriptive: thirteen components with their full source in the file, two permitted border radii, twenty-two named prohibitions, and a rule saying do not invent new components. on its own terms it worked.

what happened

the lxd team found it too limiting. they built their own pre-reads outside it, with components the thirteen did not cover, and those were the ones that shipped, off the visual language. the worst available outcome: a spec nobody authored inside, and a catalogue that had stopped looking like one product.

what changed

it was rewritten to govern less. thirteen components became eight behaviour families, radius went back to the author, and the scope narrowed to the visual layer alone. a rule people route around protects nothing.

the component comp board for the product management programme: text, dialogue, table, tab, progressive, quiz, slider calculator and data-viz cards
the inventory for one programme, and the drift, in one picture. each column is a behaviour the system had to cover. the cream grounds, the orange tabs and the serif heading are what the restyle checklist lists.

eight families, not a component library

the catalogue is not a set of components, it is eight behaviours with a visual treatment attached. each family carries the same three constants: purple is the one accent, neutrals are cool, colour means state.

01 reading & narrative
→ prose on the ground, accent for emphasis, never a boxed paragraph
02 characters & dialogue
→ learner bubble purple-tinted, mentor neutral, always inside a panel
03 assessment & interaction
→ selected purple, correct green, wrong red, no confetti
04 calculators & inputs
→ purple is the value, semantics are the state, tabular numerals
05 comparison & structured
→ column tags, hairline separators, a middle dot for an empty cell
06 data-viz & dioramas
→ chart palette purple-led, real type inside the svg, dark surfaces never black
07 app chrome & gamification
→ purple progress on cool neutrals, calm rather than arcade
08 technical, code & diagrams
→ a defined code surface, mono for code, palette-restrained connectors

permissive on purpose. radius is the author's choice as long as one pre-read is consistent with itself.

colour

  • 683FBEpurple, the one accent
  • 2563EBblue, info
  • 12875Agreen, correct
  • DC2626red, wrong
  • CA8A04yellow, warning

type

  • displayplus jakarta sans
  • bodyinter
  • datajetbrains mono, real code only

what a guardrail looks like up close

a quiz answered correctly, a slider calculator and a counter allocator, each with its motion spec
  1. 01

    one accent, one job

    the score, the slider fill and the chosen row are the same purple. correctness is green, over-budget is red, because colour is only ever allowed to mean state.

  2. 02

    every state, or it isn't done

    hover, focus-visible, selected, correct, incorrect, disabled. a component with only a default state is unfinished.

  3. 03

    the spec sits in the corner

    200ms, ease-out, colour transition, written beside the component so the next author does not guess at what calm looks like.

  4. 04

    replay, not confetti

    the reward for a right answer is the state change, plus a way to run it again.

  5. 05

    a written list of what we are not doing

    kind a hangs off an interaction, eases out, finishes inside 500ms. kind b was decorative, scroll fades on prose, confetti, ambient loops, bounce and elastic easings, and it did not ship. it sits in the spec under what we are not doing.

a pre-read opening with its learning objectives and a tabbed comparison of three systems
a four-step trace exercise that fills in as the learner answers
built inside the guardrails, by learning designers. neither is a component in a library. both were placed by behaviour and inherited the treatment.

outcome · pre-reads

the skill carries around fifty pre-reads across fifty modules, five subtracks and three courses, reaching more than fifteen hundred learners, authored by ten to fifteen people with no visual designer in the loop. those are scope figures, not outcome claims.

of the four hundred and twenty learners who answered the closing prompt in phase one, sixty per cent called the format more positive and engaging. that is one phase across two tracks, not the catalogue, and it is the one measured signal this work has so far.

what the system did to the work is still the next thing to measure against a baseline: adoption over one-off styling, review rounds per pre-read before and after, brand-audit pass rate, and whether authors say they can ship on-brand without design support.

02 · kai · the consumer skill

most 'learn anything with ai' products are a chat box with a better frame: you ask, it answers, and what you are left with is a transcript. kai writes a lesson instead, to four answers you give before it starts.

kai's landing: learn something you've been wondering about, a prompt field, and three steps reading you bring the question, kai builds the lesson around you, you learn test and explore. around it, a concept map of consciousness and a diagram of photosynthesis, both produced inside a lesson
a guided lesson with sources, not an answer. what sits around the landing is the part a chat box cannot do: a map of what the topic is made of, and a diagram where a third paragraph would have gone.

what kai is

kai is an ai-first learning experience for the airtribe community: give it a topic, answer four questions, and it writes the lesson to those answers. a concept map draws the ideas as you read, a library holds the source behind every claim, and kai unpacks any phrase you highlight.

the question

what if ai adapted to how someone learns, instead of only answering what they asked?

the three-pane workspace: kai chat, the lesson, and the lesson, map and library tabs
kai on the left, the lesson in the centre, the map and library one tab away. the tip up top is the whole posture: highlight anything and ask.

kai opens a lesson by naming what you already know. it is one sentence, and it does more for trust than anything else in the product.

how a lesson gets made

  1. topic

    you give kai something you have been wondering about.

  2. intake

    four questions: purpose, background, prior knowledge, depth.

    asked once, up front. personalising afterwards writes the lesson for no one

  3. lesson

    a hook, a worked example, the misconception, a quick check, a reflection.

  4. map

    the concepts and their links, drawn as you read.

  5. library

    the source behind each claim, marked cited and linked out.

scroll the run →

key decisions · kai

a lesson diagram splitting the easy problems from the hard problem
01

build it the way a teacher would

why

a chat answers the question you asked and skips the shape around it. that is nearly the opposite of teaching.

tradeoff

the output has to be planned before it is written, which is far more machinery than answering.

result

a hook, a worked example, the misconception that keeps the idea fuzzy, a quick check, a reflection. the hard idea gets a diagram, not another paragraph.

the four-question intake before a lesson is written
02

ask four questions, then commit

why

personalising after the fact, a simplify-this button, comes too late; the lesson is already written for no one.

tradeoff

four questions is four screens before anyone has read a single word.

result

purpose, background, prior knowledge and depth are set once, and the lesson, its examples and how far each section pushes are written to them.

a concept map connecting the ideas in the lesson
03

draw the topic while you read it

why

a lesson you read and close leaves nothing you can hold onto.

tradeoff

a second, structural view of the topic to build and keep in step with the lesson.

result

the map draws the concepts and their links as you go, with room for your own notes, so the shape of the topic outlives the reading.

the library of cited and further-reading sources
04

cite sources, not vibes

why

an ai that merely sounds confident is easy to build and easy to distrust.

tradeoff

every claim has to trace to something real, in the lesson and in the library.

result

key sentences are footnoted, and the library gathers the sources, each marked cited and linked out.

kai on a phone while a lesson is being written: the opening hook in large type, ready when you are underneath it, and a start reading buttonthe map and library arriving as a sheet over the lesson, with the concept tree listed under retrieval augmented generationthe concept map as a vertical tree, with cosine similarity open in a detail sheet showing what it relates to and a jump to lesson 3 button
the wait, the map and library as a sheet over the lesson, and the concept map with one concept open. each of the three is a desktop answer that had to be rebuilt rather than resized.

the wait we tried to hide

first direction

generating a lesson takes ten to thirty seconds, and the first instinct was the usual furniture for that gap: a spinner, or a progress bar.

what happened

a progress bar that tracks nothing is a lie, and neither it nor a spinner gives the learner anything to do. the countdown we tried next was worse than both: naming the seconds left makes the wait feel longer.

what changed

the building screen became a wait ladder: a hook lands immediately, then the shape of the lesson assembles line by line while the rest is written, so the learner is reading before the lesson exists. a notify me hatch sits under it. the rule: dead time is a content problem before it is a loading problem.

the map that could not be shrunk

first direction

on desktop the concept map is an svg, with measured and word-wrapped text and collision-free tree packing. the obvious move for the phone was to scale that same svg down.

what happened

shrunk, it is unreadable and un-tappable. the svg had already cost a layout bug, labels like 'knowledge argument (mary's room)' overflowing their nodes. the phone version was not a rendering problem, it was the wrong object.

what changed

the phone got a different map rather than a smaller one: a native vertical tree of plain dom lists with css connector spines. it scrolls, it wraps, a tap opens a focus card. two renderings for two jobs beats one compromised for both.

the rest of what the phone changed

kai is a sheet, not a screen

kai was close to becoming a separate destination, which fights the product: the lesson is the point. it became a peek and expand sheet, a line at the bottom that one tap brings up over the lesson, so the lesson never leaves.

the header was carrying desktop clutter

teach appeared twice on the expanded sheet, and the demo badge sat on the header's map icon. the fix was not to nudge either: the header came down to brand left and map icon right, the breadcrumb went, the badge moved to the bottom. a collision is usually a density problem in a positioning costume.

the em dash rule did the editing

the hook was written with em dashes, which the project style forbids. rewriting them as full sentence breaks made it punchier. the pre-reads spec above carries the same rule.

a way out of the model

an ai-first product that never points outside itself is asking to be trusted more than it has earned.

a kai lesson on the hard problem of consciousness, with its concept map open beside it

outcome · kai

kai runs inside airtribe and has reached more than ten thousand learners. it sits behind the login, where it is available to enrolled learners and nobody else.

so what is linked here is a demo build: one seeded lesson running the full system end to end, with the intake open to any topic. it exists so that this page has something you can actually open. what it carries is the shape, an ai learning product can plan a lesson rather than answer a question, and the cost is four screens of intake before anyone reads a word.

both are defined by what they refuse. the pre-read skill refuses confetti. kai refuses to just answer. in a system that generates, the design decision worth having is almost always a subtraction.

want the full story?

the pre-reads the internal skill produces are what paid learners get, so the system and the reasoning are public here and the lessons themselves are not.

the spec, the audit the eight families came out of, and the version that was built and thrown away are all things i am happy to walk through privately.

reflection

i was annoyed when the first version came back as too simple, and it took me a while to hear what was being asked: not more components, but evidence we had thought about the teaching. the skill still governs only how a pre-read looks, so it can produce something on-brand and badly taught.