Knowunity · US content machine · the main artifact

AI Vids

Structure - how content gets made, as a map and as text; Calendar - all 17 account calendars, week by week; Styles - 16 styles in six groups, colours, CTA and per-account assignment; Accounts - TikTok links and live performance from TokPortal; W1 Batch - the rendered week-1 posts, per account; W2 Batch - every week-2 deck as it stands.

The mapFive steps, inputs left, loops right

input feeds the step output handed to the next step feedback loop
CED units + exam clock AP accounts - week-level precision Textbook sequences + pacing guides subject accounts - unit-level, verified TOCs Course bundles + life calendar grade accounts - first tests, GPA moments, finals App demand report (weekly) AI-chat questions per subject and grade TikTok Keyword Planner search demand + niche keywords, esp. grade accounts 1 · CALENDAR 17 accounts x 16 weeks x 7 posts atomic, test-anchored angles week slots: day + type + topic code + angle Official CED PDFs all 11 saved in the repo - the only curriculum source Documented misconceptions + anchors chief-reader errors, released questions, %-correct Drafting rules ledger every rejection becomes a permanent rule Optional Knowunity chat run the topic through the app's AI chat as an extra input 2 · CONTENT QUALITY niched down: one atomic thing per post draft → blind verify → Julian's review facts + mechanism + example + question ladder, every trap named math computed, never estimated verified units: every answer blind-checked 2C + 2A + 3P weekly template concept / application / practice, Mon-Sun Hook canon - 5 families mined from Julian's shipped hooks (HOOKS.md) Style library - 16 styles, 6 groups the draw picks the group, then the variant 3 · POST SPECS one spec per calendar row: unit + hook + style, reviewed together validator: no unit no post - rotation - promise contract (3 questions = 3) approved specs: nothing invented at render time Code renderers type, highlights, arrows, diagrams - drawn, not generated Knowie vibe sprites flat, no shadow, no outline, never redrawn AI plates (organic visuals only) cells, brains, maps via the style kit - labels verified 4 · RENDER deck skeleton from the post type, treatment from the style shelf every slide visually reviewed before it exists for anyone else final decks: slides 01..N per post Week trigger Julian says "we do WNN now" - no fixed dates Caption + hashtag strategy keyword-rich + CTA, ~4 niche hashtags - CAPTIONS.md 5 · DISTRIBUTE TokPortal schedules the week when Julian triggers it posted content THE LOOPS comments, solve rates, performance comments → timing (ahead / behind) solve rates → difficulty calibration performance → hook + style weights rejection reasons → new rule
Each step consumes the inputs on its left and hands one artifact down the green spine; nothing skips a step, and the purple loops are how posted content re-calibrates the machine - timing into the calendar, difficulty into drafting, hook and style weights into the post specs. The small loop at step 2 is the fastest one: every review rejection becomes a drafting rule before the next batch.

The textThe Carousel Doctrine

The same machine in prose - thesis first, then each part in depth.


The thesisQuality is enforced, not hoped for

We post what a specific student is struggling with right now, every post is backed by verified, test-level substance, and the production machine is structured so that quality is a property of the system, not of anyone's discipline on a given day. Three parts follow from this: knowing the student and their moment, defining what quality actually means, and building the machine that produces it at scale.

The premise underneath everything: the students we want are the ones studying for a test this week. They can tell a real insight from filler in two slides, and they punish fake substance in the comments. So the bar is not "correct enough for social media" — it is the question on the unit test, verified before any human even reviews it. Depth over speed, always: never the easiest, quickest answer — the real sources, the real misconception, the real mechanism.


Part 1 · The three basketsKnowing what to post, for whom, and when

Every account belongs to one of three baskets, and each basket has a different clock.

Basket 1 — AP accounts (week-level precision)

The official College Board CED is a national syllabus: numbered topics, exam weightings, one national exam date. So AP ideas are never brainstormed — they are scheduled. The 16-week fall calendar maps every week to its CED unit in order; we can say "you are in Period 1 right now" and be right for most viewers. The fixed moments are layered on top: registration deadlines, the November 13 ordering deadline, finals. All eleven CED PDFs are downloaded into the repo; curriculum claims trace to those PDFs, never to memory.

Basket 2 — Subject accounts (unit-level precision)

Algebra 1, Geometry, Chemistry, Biology, English. No national syllabus, so the course order has to come from somewhere real, and we only claim what we can actually check: published textbook sequences and pacing guides establish the conventional order (linear → systems → quadratics), verified against the actual tables of contents whenever we rely on them — and our own app data confirms or corrects it, because what Algebra 1 students search in Knowunity week by week shows where classes actually are. Calendars drift three to four weeks between schools, so we target the unit with a wide window ("if you are in factoring right now, here is what trips everyone") and carry a heavier evergreen share. Khan/Knowt give the shape and difficulty of questions, always re-authored with our own numbers in our own renderer.

The demand source is our own app — and the funnel is live. The first report (Sep 1) measured ~912,000 academic AI-chat questions from ~33,000 US grade 9–12 students in 14 days: Algebra 1 is the single biggest subject (46k questions), with Biology, Geometry, Algebra 2, US History, English, and Chemistry all top-10 — the account lineup validated by demand, not assumption. One honest nuance the data forced: US students barely use in-app content search (40 searches in the window vs ~90,000 in Germany), so the AI chat is the US signal, not search. The report reruns weekly from a documented query (input/demand/); nothing is cited that we do not have a real funnel for.

Basket 3 — Grade accounts (month-level precision)

Grade 9, 10, 11. The account is a course bundle, and the rotation is deliberately simple: today math, tomorrow biology, the day after English — each course in the bundle takes its turn across the week. Within each course, basket-2 logic decides the position: an Algebra 1 slot in October is not on linear anymore, it is on systems or quadratics. On top of that sits the life calendar — first unit tests, GPA moments, finals. Grade 11 is the SAT-and-AP year and sounds like it.

Why imperfect timing is good enough: the algorithm and search do the per-viewer matching — timing raises the base rate, labeling posts with the exact strings students search does the targeting, and comments tell us whether an account runs ahead or behind. And Knowunity's own usage data is an empirical national syllabus: what US students search in the app, week by week, measures the school year instead of guessing it. Every account gets a written avatar — one specific student, not a demographic — and the avatar decides tone, difficulty, and which moments matter. The avatar is internal only: it is the reader we write FOR, never a character the account plays. Accounts never look like creator accounts — no persona, no face, no first-person “my” voice; they stay clean study resources.


Part 2 · The quality barThree post types, one bar

Every post is one of three types: concept (teach it), application (use it), practice (test yourself). The weekly formula per account is fixed and essential: 2 concept + 2 application + 3 practice — seven posts, Monday through Sunday. The bar every post clears:

Consequence: difficulty decides the format, never the reverse. A question with a real trap earns the worked-solution deck; an easy question is at most a warm-up rung. And the trap is not decoration — it becomes the hook, the crossed-out wrong answer on the slide, and the reason the post gets argued about.


Part 3 · The machineFive steps, strictly in order

calendar/ content/ posts/ render distribute

Nothing moves to a later step before the earlier step is filled and reviewed. The machine lives in projects/julian_ap_content (steps 1–3) and projects/julian_carousel + julian_tokportal (steps 4–5).

Step 1 — The calendar

One JSON per account: 16 weeks (Aug 31 – Dec 20), 7 posts per week with day, date, type, topic code, and an atomic angle as the title. Seventeen accounts × 16 weeks × 7 posts = 1,904 planned posts. Binding authoring rules: atomic titles, test-anchored angles, practice titles hint the trap, specific beats clever, stay inside the week's topic range.

Step 2 — Content quality

Three rules: niche down (one atomic thing per post, in depth), prove it (every claim sourced, every answer blind-verified), match the test (real difficulty, one documented trap, laddered).

The verified substance. One unit per distinct topic code in the calendar week (the scaffold is calendar-driven, so every post has substance behind it). Each unit carries: a one-sentence brief (one CED objective), facts cited to specific CED codes, an original explanation of the mechanism, a worked example, three documented misconceptions, and the practice ladder — where every question must name its trap (the specific shortcut and the plausible wrong answer it produces), its anchor (the CED code or released question that calibrates it), and its rung.

Then the step that makes the whole thesis real: blind verification. A second, independent pass solves every question seeing only the question — no answer key. Math is computed, never estimated. A mismatch bounces the unit back with a note, and the incident becomes a permanent rule in drafting_rules.md. In week 1 this caught a real arithmetic error (a 26 that was actually 34) before any human saw it. One pipeline truth from that week: every numeric total is computed in Python, and exam-structure numbers are read from the CED table, never from memory.

Sourcing is binding: the CED is the spine, original prose only, OpenStax CC BY permitted with attribution, Khan Academy remix prohibited on AP. Maths problems and plain facts are free to use; authored prose and diagrams get rewritten and redrawn. Sources exist for answer and terminology verification. No trademark disclaimer on posts or bios.

Step 3 — The posts join

The link between planning and production: one post spec per calendar row, joining the backing unit, the hook (drafted here, per the canon below — never invented at render time), and the style. A validator enforces the hard rules mechanically: no unit, no post; nothing renders on unverified answers; hook rotation is bookkept (never the same template twice in a row, three distinct challenge templates across a week's practice posts); and the promise contract — the deck owes what the hook promises ("3 questions" means exactly three, "cheat sheet included" means one screenshot-able slide, "swipe for the solution" means it is the next slide).

Step 4 — Render

Slides are drawn by code, not generated: Python renderers set the type, highlights, arrows, and diagrams pixel-precisely. AI image generation appears only where code cannot draw — organic plates (a cell, a brain, a map) through the approved style kit, with every label verified before shipping. Practice and worked decks are template-consumable; concept decks carry bespoke diagrams, which is where the craft budget goes. Everything renders from approved units only — nothing is written at render time.

Step 5 — Distribute

TokPortal schedules the rendered decks against the calendar dates, logging each post's hook template so performance reads out per family and template. Captions, hashtags, and sounds are a later layer by explicit decision, as is the account wiring (handles, bundles, the HS→AP repositioning of bio.knowie and chem.rescue).

The loops close the system: comments calibrate timing, solve rates calibrate difficulty, post performance feeds repost slots and hook-template weights, and every rejection reason becomes a drafting rule. Year two starts with the library built — packs, units, templates all compound.


The hook canonFive families, and nothing else

The hook is the viral mechanism, and it has one core principle: it talks TO the viewer — dares them, promises them, warns them. A hook that merely describes the topic is banned. The canon was mined from every hook we have ever shipped; these five families are the only hooks used, on any account, in any pipeline (HOOKS.md holds the templates and the full verbatim bank):

FamilyVoiceServes
1 · Challenge"Can you solve this in 10 seconds?" · "can you still solve freshman algebra?" · "the impossible triangle question"practice — the highest converter
2 · Social proof"most freshmen can't explain this" · "90% of students get it wrong" · "most people miss the last one"practice headlines and sub-lines
3 · Cheat sheet"everything you need to know before your first test: cheat sheet included" · "X, explained:" · "guaranteed question on every chem test:"concept — the save driver
4 · How-to"how to write a thesis in one sentence:" · "steal this" · "how to guarantee points on the DBQ"application
5 · Personal curiosity"DNA and RNA are not the same — do you know why?" · "3 things no one tells you about X"the variety slot

The style librarySixteen styles in six groups, one shared renderer

Styles are chosen last: the account decides whether the deck is branded, the post type decides the pool, and a deterministic draw per post picks a group first, then a variant inside it, so a week spreads across looks. Every style lives in one shared renderer (projects/carousel/styles.py) and takes the account colour from the registry. The full library, with rendered examples, is on the Styles tab.

Invariants: one deck one style, never the same group on two consecutive posts of an account, ten slides maximum, and every deck carries a one-sentence CTA. Branded = the .knowie accounts; everything else carries only the small by knowunity mark. Every colour is a Knowunity design token.


Review & stateWhere the human sits, and where we are

Julian's review is the only judgment layer left, and the machine is built to keep it cheap: one line per question (question · answer · trap · anchor), the hooks reviewed alongside, approve or reject with a reason — and the reason becomes a drafting rule that binds every later batch. Nothing is "approved" until Julian says so after seeing it. At full scale (17 accounts, ~120 posts a week) review shifts to approve-by-exception: flagged items and samples, not everything.

As of September 1: the calendars exist for all 17 accounts; week-1 content for the four active AP accounts (APUSH, Psych, Bio, Chem) is drafted and blind-verified — 35 of 36 answers matched on the first pass, one arithmetic error caught and fixed; the posts layer and validator are live across all 16 weeks; the hook canon and style atlas are published; seven demo decks exist in the polished/quiz styles with canon hooks. Deliberately deferred: captions/hashtags/sounds, account wiring, the Sunday-review question selection, and the style matrix — each waiting on its own decision, none blocking the next batch.