Author an ASE Academy Lesson
The production pipeline for one or more slideshow lessons. Follow every step in order. Never run parallel agents over the same lesson files; partition by file or run sequentially.
Paths
- Lesson sources:
…/Sheridan Technical/ai-Claude/ASE B-Series Academy (DATA)/Academy Lessons/<MOD> Slides/
- TOC:
<MOD> Slides/_<MOD>-TABLE-OF-CONTENTS*.txt — the authoritative lesson list
- Question digests:
<MOD> Slides/_question-inventories/
- Binding standard:
ASE_Portal/functions/scripts/academy-build/FABLE5-LESSON-AUTHORING-PROMPT.md (ADDENDUM v2 §F arc + v3 + v5 + v6 + v7 — ALL binding)
- Grounding task list:
ASE_Portal/ase-academy/slideshow/_grounding/<MOD>-tasklist.txt
- Media style guide:
ASE_Portal/functions/scripts/academy-build/MEDIA-STYLE-GUIDE.md (§1e zones)
Per-lesson recipe
- Read the TOC line for the exact lesson number and title BEFORE authoring (numbering drift happened once — never again). Confirm the lesson isn't already marked
[BUILT …].
- Grep the unit's question digest for the lesson's topics. Extract the graded facts (numbers, rules, distinctions the bank grades). Every matching bank question must be answerable from the lesson.
- Author the txt per the binding standard. Non-negotiables checklist:
- ~22 slide §F arc: splash → objectives → asetasks → 3-idea imagecards → 2 divider'd sections w/ reviews → dovsdont (images both sides) → labassignment w/ 5 GRADED STEPS → common questions → tools (EVERYTHING mentioned) → keyterms → termsmatch → cheat (big numbers) → quizintro → 10-Q quiz PASSING 80 (exactly 1 Tech A/B + 1 EXCEPT) → stats → end w/ NEXT hook
- ASE task ids must exist in the grounding tasklist (
<letter> overview and none are the only alternatives) — a clean build prints zero WARNs
- No cross-lesson references in student-visible text; takeaway sets are their own imagecards slide; REMEMBER banners are retired
- "%" never "percent" · Common Mistakes slide in every technical lesson
- CURRENCY: verify practices are current; never teach retired techniques; bank-key conflicts → teach current fact + flag to Mario
- FUTURE-LOOK: include what's arriving in shops where relevant
- TDS-FIRST: product lessons point to the TDS; real documents come from Mario, never invented
- PPE RESEARCH: never guess PPE — use the researched SDS/TDS spec for the operation
- Image prompts: ONE named signature-shop zone, strict PPE, one subject, no readable text
- Reviews: FEEDBACK CORRECT/WRONG covering all 3 distractors; Tech A/B fixed answer order
- FEEDBACK FORMAT (v8): quiz FEEDBACK + review FEEDBACK WRONG = correct-answer paragraph, then one continuation line per wrong option "Answer X is incorrect because …" (xlsx bank pattern)
- Build:
node functions/scripts/build-slideshow-deck.js "<txt path>" (from ASE_Portal). Zero WARNs required. SKIP audio (final-only step).
- Verify: deck loads (
require it, check slide count/lab explosion/quiz 10Q); on player changes run the script syntax-check; density-sweep new slide types at desktop; spot-check 375px (no horizontal overflow, stacking correct).
- Mark the TOC line
[BUILT YYYY-MM-DD].
- Every ~3 lessons deploy:
cp deck(s) to _site/academy-decks/ → node node_modules/@11ty/eleventy/cmd.cjs → HYDRATE _site (find _site -type f -exec cat {} + >/dev/null) → firebase deploy --only hosting --project ase-portal-5d37c (verify the project flag TWICE). NEVER copy academy-player.html into _site by hand — eleventy writes it (raw front-matter leaks otherwise).
- Sweep the digest after each lesson: confirm the lesson's matching bank questions are now answerable; note gaps for the next lesson in the unit.
Seeding + menu (do once per module, ~when Foundation is complete, not per lesson)
node scripts/seed-academy-slides.js <deckId> --docid <DOCID> from functions/ + wire simulator.html menus (ACADEMY_SECTIONS / ACADEMY_LESSON_DECKS / ACADEMY_LESSON_META), then syntax-check simulator.html (18+ scripts, 0 errors).
Reporting to Mario (rule 19)
Reply with only: lessons now live + links, anything needing his decision or documents (real TDS/SDS/position statements), and flagged bank-question conflicts. No process narration.