frameworktextbook-teacher · v21099:cursor-cloud-r7xp2026-08-21served from databaseAll documents

Textbook Teacher

Portal (refer to this): https://projects.jbnx.io/framework/textbook-teacher Markdown for agents: https://projects.jbnx.io/framework/textbook-teacher?format=md Repo: TEXTBOOK_TEACHER.md · skill skills/textbook-teacher/SKILL.md For: anyone writing FedM8 that a customer will read — marketing, Workspace, Academy, Support, emails Updated: 2026-08-21 · version 2

This is not a tone palette and not a reading-score target.

Federal contracting is already hard. The page should be easy. The hard word should wear its own definition. Teachers are not defensive. Salesman wrappers stay out. One next step, then the page is quiet.

If a high-school civics book, a QuickBooks screen, or SAM.gov itself would not say it, neither do we.


Paste this into a chat

FedM8 customer copy. Follow Textbook Teacher:
https://projects.jbnx.io/framework/textbook-teacher?format=md
Hard subject, easy page. The hard word wears the definition.
Teachers are not defensive. Do not brand Honest. Do not say grounded,
unlocks, By journey, theater, or scaffold in the UI. Cite a source
or leave a blank. One next step, then quiet.

Why this exists

Three holes showed up in the same week. Each one survived a narrower doctrine:

  1. Manifesto teaching. Human Framework stopped the salesman. It did not stop “we teach as you go, then get out of the way.” Real teachers do not narrate the method.
  2. Jargon with no tap. The subject uses NAICS, RFP, SAM, shall. Simple sentences without a tap-definition still leave the reader stuck. Title tooltips fail on a phone.
  3. Smart-sounding wrappers. After the manifesto came off, the page still said grounded, unlocks, By journey, theater, scaffold. Those words score clever and still sound like a demo bot. The product fact underneath (“cite a source or leave a blank”) is the thing to keep.

Best Learning Framework still shapes lessons (writers only). This framework governs every public sentence that sits next to those lessons — including tool chrome.


Ranking (why start here)

Other candidates were real. They each catch one bug and miss the rest.

RankCandidateWhat it catchesWhy it is not the start
7“Talk like a 15-year-old” as the whole brandShort wordsSounds like we think the owner is a child. The paperwork is hard. The person is not.
6Federal Plain Language (gov manuals)Passive voice, buried verbsFine for a form. Silent on defensive teaching. Silent on in-place jargon.
5Grade-10 / Hemingway score onlyLong sentences“We teach as you go, then get out of the way” scores easy and still fails.
4Ban “grounded / unlocks / journey” onlyOne week’s wrappersTomorrow’s wrapper will be a different adjective. Need the law, not yesterday’s grep.
3Anti-defensive silence onlyMethod-narration, “Honest” as a brandCaught the homepage. Leaves NAICS as a brick. Leaves “Grounded help” on Assist.
2Glossary-first onlyAcronyms on a phoneWe built the mechanic. You can still wrap bubbles in a manifesto.
1Textbook TeacherHard subject + easy page + definition on the word + no defensive teaching + no salesman wrappersCompletes Human Framework. Proven by the copy pass, the glossary, and the wrapper pass. Four laws, four tests, a grep that CI can run.

Start with rank 1. Use 2–6 as checks inside it, not as competing doctrines.


Four laws

1. Adult respect, schoolbook words

Write so a sharp 15-year-old could follow the federal layer. Do not talk down to the owner.

Allowed: short words, short sentences, one idea. Forbidden: “you got this,” mascot energy, explaining how to run a business.

The customer already knows their trade. SAM, NAICS, and Section L are the new layer.

2. The hard word wears the definition

Do not lecture “what is an RFP” in a paragraph. Put a light dotted underline on RFP. Hover (mouse) or tap (phone) opens a short bubble.

Glossary lives in assets/gloss.js. Definitions: teen-level English, 4–28 words, stand alone — no nested acronym that itself needs another tap.

Do not auto-gloss everyday English (contract, company, email, search). Do not wrap a link whose only text is the term (SAM.gov stays a link).

3. Teachers are not defensive

Do not narrate how we teach. Do not promise to “get out of the way.” Do not brand “Honest.”

Name a product fact when it is a fact (“USAspending does not publish losers”). Do not make a speech about how honest that makes us.

4. One next step, then the page is quiet

A hand should be able to do the next thing: open, save, filter, subscribe, finish a cert step.

Then stop writing. Writer slogans (“then stop”) belong in doctrine files, not on the homepage.


Salesman wrappers (delete as chrome)

These survived Human Framework because they sound technical, not salesy. They still fail Schoolbook and Method.

Do not say in the UISay this insteadKeep underneath
grounded / Grounded help / grounded briefCites a source or leaves a blankAssist must cite or go blank. That is a product rule, not a brand.
unlocks / unlock the powerincludes, adds, opensPlan gates stay. The verb does not.
By journeyIn orderWorkspace Everything label. The view id may stay journey so saved layout does not reset.
theater (as chrome)say the fact: we do not draw fake org chartsCompetitive copy may still refuse theater. Do not make “No theater” a slogan.
scaffold (as a brand)outline, first draft, checklistA download can still be an outline. The page does not sell “scaffolds.”

Honest is the same class: not a brand. Plans, not “Honest pricing.” Compare, not “Honest comparison.”


Ban in the UI (keep the facts)

Delete these as chrome. Keep the underlying legal/scope facts in plain words.

Keep, said plainly: we do not file SAM for you; we are not FedRAMP; USAspending has no losers; Assist cites a source or leaves a blank.


What to gloss

Federal-layer terms the reader cannot be expected to know: NAICS, PSC, SAM, UEI, CAGE, RFP, RFQ, RFI, Sources Sought, set-aside, SDVOSB, VetCert, FAR, shall, SOW, Section L / M, shred, incumbent, CLIN, and the rest of the dictionary in assets/gloss.js.

Add a term when a real person would stall. Do not add a term to look thorough.

A bubble that uses another glossary term fails. Rewrite until a first-time reader can stop after one tap.


Leave alone (on purpose)

Do not “fix” these in a copy sweep:

Do not globally grep-ban /unlocks/ — you will hit comments and keys.


Conflict order

If the fight is about…Winner
Salesman voice, fake excitement, feature soupHuman Framework + AI_EVIDENCE.md
Lesson shape (story → teach → try)Best Learning Framework (writers only; learners never see HOOK/WHY)
Sentence simplicity, no defensive teaching, jargon on the word, salesman wrappersTextbook Teacher
Human Framework “name the tradeoff” turning into a speech about what we are notTextbook Teacher

Human Framework still wins against clever structure and against salesman voice. Textbook Teacher wins against manifesto teaching and against “smart” wrappers that HF currently allows.

Related (same portal):


Four tests (fail any → rewrite)

TestPass
SchoolbookA high-school civics page, QuickBooks, GitHub, or SAM.gov could have printed this.
FifteenA sharp 15-year-old can follow it, and can tap the dotted words.
MethodThe page never talks about how we teach, how we stay out of the way, how honest we are, or how grounded we are.
StepA hand can do the next thing.

Read the block out loud. If you hear a product explaining itself to a reviewer, it fails Method.


Self-review (holes we already know)

A framework that cannot name its failure modes is a vibe. These are the holes:

  1. Talking down. “15-year-old” is a vocabulary test, not a personality. Law 1 is the brake. If copy sounds like a kids’ app, it fails Adult respect.
  2. Over-gloss. Underlining “contract” and “email” turns the page into a ransom note. Dictionary stays federal-layer.
  3. Nested jargon in bubbles. “SDVOSB = a veteran set-aside certification” still needs two more taps. Rewrite the bubble until it stands alone.
  4. Campus as art vs campus as speech. Academy may keep the illustration and CSS class names. Spoken copy may not tell the reader they are walking a campus.
  5. Grep is not enough. Ban-list QC catches yesterday’s slogans. New manifesto will sound different. Run the four human tests.
  6. Not a lesson designer. This does not replace Best Learning. A well-structured lesson that brags about the method still fails.
  7. Scope. Do not auto-gloss veteran-benefits.html, admin.html, hub/, or hi/ without a reason. Calm VA pages stay calm.
  8. Wrapper whack-a-mole. Killing grounded does not kill next week’s clever adjective. If it would not appear in a civics book, it is chrome.

After that review, this is still the right start: the holes are named as rules, the live copy passes already match the four laws, and the other candidates are checks inside this one.


Before → after

Before: “Do the work here — we teach as you go, then get out of the way.” After: “Search notices. Walk a first bid. Check who won last time.”

Before: Native title="NAICS" tooltip. After: Dotted NAICS → tap/hover → “A number for what kind of work you do. The government sorts jobs with it.”

Before: “Honest pricing.” After: “Plans.”

Before: “That’s enough for day one.” After: “Create a free account. Open Get Certified and finish the step in front of you.”

Before: “Grounded help” After: “Cites a source or leaves a blank.”

Before: Everything sort “By journey” After: “In order” (view id stays journey)

Before: “Basic unlocks Bid Coach.” After: “Basic includes Bid Coach.”

Before: “scaffolds grounded drafts” After: “an outline you can download”


How to use this

  1. Load this page (or the repo file + skill) before drafting customer-facing copy.
  2. Storyboard with Human Framework (world / pressure / truth / move / proof).
  3. Draft in schoolbook words. Put federal jargon on the dotted word, not in a lecture.
  4. Run the four tests. Cut method-narration and salesman wrappers.
  5. node qc/textbook-teacher.spec.cjs — then node qc/gloss.spec.cjs if you touched definitions.

Workspace trap: os.html loads only assets/os-bundle.js. Source edits in assets/os-*.js ship nothing until:

bash scripts/make-bundle.sh <stamp>

Then bump os.html?v= to match. Skip this and production still shows yesterday’s chrome.

For agents: do not “add warmth.” Do not add a pedagogy paragraph. Rebuild the sentence so a textbook could print it.


One line

Hard subject. Easy page. The hard word wears the definition.