Skip to content

Latest commit

 

History

History
421 lines (320 loc) · 89.6 KB

worklog.md

File metadata and controls

421 lines (320 loc) · 89.6 KB

Worklog

Daily entries of real work — appended automatically by a scheduled job.

2026-10-16

  • Wired audience segmentation into the site's tracking stack: every event on the four marketing pages now carries a for_teachers / for_students category — server-side copies included — the homepage separates the trial-booking Lead from a click into the teachers section, and trial requests send hashed advanced-matching fields with their UTM tags journaled for the dashboard. The privacy policy gained the web-analytics clause, the live tracking QA suite passed 4/4, and the deploy was verified on both edge nodes.
  • Closed the payment provider's storefront-review request: the homepage got its legal links first, then the footers were unified into one canon across the site — a shared navigation column in a fixed page order, offer / policy / Telegram in the support column, the copyright line rebuilt with the owner's business requisites, and a nav strip added to the legal pages themselves. Every page suite re-ran green (the legal-page checks reconfigured for the new navigation) and all eight pages went out byte-verified on both edge nodes.
  • Built an experimental second take on the homepage on Tailwind 4 + Preline UI — same content, links, booking dialog, currencies and pixel/CAPI — and shipped it as its own /home-v2/ draft page (noindexed so it cannot compete with the main page) for review; the new QA suite passed 85 checks, the main page stayed byte-identical, and both verified live on the two edge nodes.
  • With Edvibe back up, the new B2 lesson "Articles in work messages" was built and then reworked into image-work production tasks: six rendered mocks — two chat threads, a channel post, an email, a checklist and a follow-up — each paired with its find-and-fix writing task, plus two 30–60 s voice tasks and a closing incident-report paragraph; six hidden teacher notes sit right under their mocks (image → answers → task). The set renders from one source script (lesson spec + HTML mocks → 2× PNGs, OCR-checked), was DOM-verified in the live editor, and the layout pattern went back into the lesson-building skill.
  • Fixed two silently dead pieces of the practice's tooling and redeployed: the teacher dashboard's daily refresh (broken since Oct 9 — the scan had lost its platform session and the script had no credential fallback) and the homepage's live "lesson in progress" indicator (dark since Oct 11 — the schedule filter kept only past lessons while upcoming ones now come back under a different status). The dashboard data rebuilt clean at 18/18 cards and the public schedule feed carries 54 windows again — verified on both edge nodes.
  • Wrote the day's rules back into the working skills: the audience-segmentation contract into the tracking skill, the footer canon and the home-v2 build recipe into the site skill, and the notes-under-mocks layout plus the empty-editor retry quirk into the lesson-building skill.

2026-10-15

  • Overnight, the sales push went end to end: a Telegram free-to-paid lead bridge now runs the whole path — /start hands over the free course, one qualification question follows, and each contact lands in the site's own Cloudflare KV journal (webhook live, path E2E-tested, test traces cleaned; the first real contacts began arriving within hours). Buy clicks are counted server-side now too — the storefront's buttons route through a counter endpoint that journals and then hands off to the payment link (fail-open). A new MCP bridge now also lets the assistant operate Telegram directly.
  • Closed the Meta-side purchase gaps: the server-side Purchase payload fix shipped (to be confirmed by the first live sale), and the payment-start click joined the server relay's event allowlist after a live check — every step from a Buy click to a purchase now reports through both the pixel and its server twin.
  • The homepage got its shape pass: the "Where to start" fork section retired, the practice counters moved inside the About block at the same 34px rhythm, the teachers row rebuilt as live course cards (speaking course, grammar pack, free news course), and GitHub reduced to a single footer link — the spacing audit and the full page QA (86 checks) closed green, deployed and spot-checked live.
  • The storefront dropped its migration banner — the "what moves next" section with its timer, tallies and links is gone, the menu trimmed to Books / FAQ and the hero to one CTA; all seven Buy buttons and the payment dialog re-verified on the live site.
  • The new payment window became the house standard on every sales page: a radio-style picker with two routes — cards (tenge, through the payment provider) and rubles (the messenger checkout) — mono icons in one style, and per-region pricing (euro/dollar on the rows, the visitor's local price on the pay button). The free-course page swapped its old mini-dialog for it, and the grammar-pack page — where buy was a bare redirect — got the full dialog in RU/EN; all three pages re-passed their automated suites.
  • Wired the card route live with temporary signed payment links (single book and full set): verified from production with correct signatures, all 14 messenger-checkout links re-verified, and the full integration design written — per-order invoice ids with signed start links, a server-side payment confirmation callback, automatic access delivery with a thank-you page, and one product registry feeding every SKU.
  • The course-book import pipeline continued overnight: five more units assembled and live-verified (seven in total, zero problems), pausing on request.
  • Built and live-verified a new B2 lesson from a WSJ investigation, "The Hidden Backdoors Inside Your Smart Devices": 23 visible exercises plus a four-item homework bucket across five sections — flipped-classroom warm-up, a 10-term vocabulary set, the video with timecoded segments and answer keys, speaking and a voice task — trial-checks 24/24 and the deep verifier at zero problems; it slots into the sold speaking book at position 59.
  • Same release, evening cleanup: the storefront counts stepped to 245 lessons / 58 speaking (OG card re-rendered, md5-matched on both edge nodes), a small-screen guard (single column at 359px and below) fixed a card overflow the afternoon's one-line rework had introduced, and all three page QA suites were re-aligned to the new payment dialog — 68 checks green on the storefront.
  • Wrote the day's rules back into the skills: the payment-window v2 standard as a new reference (component, behavior contract, new-product checklist), the added click events and purchase fix into the tracking skill, and the count-sync / guard / QA notes into the site skill.

2026-10-14

  • The GitHub side got a maintenance pass after the account token was rotated: every workspace clone's remote was re-bound to the fresh credential and auth-probed (a couple needed their separate push URL fixed as well), the two publishes the expired credential had held up overnight went out, and six dead clones whose repositories no longer exist were decommissioned — uncommitted state archived as patches with a manifest, ~41 MB reclaimed, dead helper scripts swept too.
  • The public site went through its frontend-design audit (all six pages, desktop + 390px) and shipped all seven approved fixes: a darker WCAG-passing red for the discount ribbons (4.59:1), real tap targets on the language pills and preview buttons, a state-aware voting section with a pluralized countdown, sentence-case legal headings with canonicals, and contrast/shadow cleanups — plus the teacher dashboard restyled on the Cirrus kit (self-hosted variable font, sky backdrop). All seven QA page sets closed green and every fix was spot-checked on production (v2.59).
  • Re-cut the /langlisto/ link preview to the /news/ banner canon — a programmatic render with autofit checks — and deployed it: the image md5-matched on both edge nodes and all six public pages came back 200 and byte-matching their local sources (the legal page's pending fixes rode the same deploy).
  • Closed the Meta events-coverage gap: a new server-side relay endpoint now pairs each click event (ViewContent / Lead / InitiateCheckout) so the browser pixel and the server copy share one dedup id — verified live with a masked-headless run (6/6 click pairs matched), local suites green (28/28 plus a new 4/4 pairing test), and the domain verification Meta asks for ad tooling is now confirmed.
  • Stood up the platform's first course-book import pipeline: the Beginner student book OCR'd page-by-page (138/138 pages, full book map), the teacher's pack parsed for keys and audio scripts, and units 1A/1B built and verified live as lessons (7 + 5 sections, 20 + 14 exercises, zero warnings) — pipeline documented before a pause on request.
  • Built and live-verified a new B2 lesson, "What Happens to Your Brain Without Any Social Contact?" (TED-Ed, 6:52): 28 items across six sections — the first from-scratch build using the native wordlist card (10 words with built-in listen-and-repeat) — all 48 gap answers and both tests trial-checked, then reset; video embed and both drag banks rendering, cover tile applied; the storefront stepped to 243 lessons / 56 speaking on the same deploy.
  • Found and fixed a whole bug class in the speaking book: HTML tags were shipping inside match-exercise cells — 15 exercises across 9 lessons stripped clean via the API, the four generator scripts that produced them fixed at the source, and a 60-lesson sweep (116 matches) came back clean; the plain-text match-cell rule is now in the platform skill.
  • Built a second B2 lesson, "What Entertainment Lawyers Actually Do" (ABA interview, 9:24): 27 items with four timed video segments mapped to the video's own chapters and a 10-term vocabulary block — trial-checks 17/17 and the kit's deep verifier at zero problems; the storefront's OG card was re-rendered (it was one number behind) and the counts synced to 244 lessons / 57 speaking at itsfedor.cc/langlisto.
  • Wrote the day's rules back into the skills: the course-book pipeline notes and the plain-text match-cell rule into the platform skill, the audit chapter plus the banner-count sync convention into the site skill, and the token-rotation clone sweep with the dead-clone decommission recipe into the portfolio tooling.
  • The evening also mirrored the school's serial-video homework course in full: all five episodes built as platform lessons on the identical six-item skeleton — wordlist, drag word-bank story gap, episode link, true/false/not-stated with a hidden teacher key, a reply test and a voice task — with the first episode rescued from an archived homework capture (its old-platform copy proved unreachable), the series ordered 1 to 5 server-side, each lesson at 23/23 checks and a zero-problem deep verify, and the generalized port chain saved for the next season.

2026-10-13

  • Closed the speaking course's cleanup pass — the whole book now holds the "one video = one lesson" rule: the last 11 same-video duplicates came out (full dumps kept), a whole-book video audit reads zero duplicates, five lessons were re-imported from the out-of-series folder and rebuilt for their levels (Digital Hoarder and Rita Pierson into B1, their 10 missing gap answers restored, and Buy Now Pay Later, Bond Yields and Unanimity into B2), and a six-lesson wave was re-leveled up into C1 with fresh covers and descriptions. The book stands at 55 live lessons (B1 13 · B1+ 18 · B2 15 · C1 9).
  • The homework migration closed overnight: all 190 units now author their homework into the workbook bucket, and the speaking course's last "Extra" sections were folded in (58/58 — each move read back, the emptied sections deleted).
  • Color-coded the grammar books' rule articles end-to-end: across the five Big Grammar Pack volumes, 340 rule articles were restyled with the platform's own text colors — blue segment headings, green forms and keywords, red crossed-out errors, orange notes — and list spacing was normalized at 1,712 spots (bullets run tight inside a segment; a blank line only between segments). The migration's closing verification came back clean: all six books — the five volumes plus the speaking course — at 0 problems.
  • Built two more B2 conversation lessons end-to-end and live-verified both: "Nate Silver: Why Risk-Takers Win" (Big Think+, 22 exercises plus the matching teacher guide in the school library) and "Every App on Earth Is Now Open Source" (Fireship, 26 exercises) — every answer key trial-tested against the platform's own grader (right accepted, wrong rejected, trials reset), drag banks rendering exact chip counts, video embeds and hidden teacher keys confirmed.
  • Built and launched the "Engoo Daily News" book and its public landing page: 45 lessons in three 15-lesson modules (Intermediate / Advanced / Proficient), three lessons from each of five news categories per level, every unit a full flow — vocabulary card, audio wordlist, the article with its original audio, a hand-written true/false, speaking, auto-checked homework. Sourced entirely through Engoo's own API (category catalogues, full lesson JSON, whole-article audio — no scraping), authored in parallel waves behind an overlay validator, assembled by script, tiled with per-category covers (45/45), drag banks converted and trial-checked (36/36 green), share links live, and the app-side read-back closed on every count (45 titled lessons, positions 1–45, covers everywhere). The public page at itsfedor.cc/news carries the cover hero, a lesson-anatomy strip, a three-step start guide, FAQ and a compact six-card shop strip for the paid books (six across on desktop, three on mobile) — 30 QA checks green, desktop / full-page / mobile screenshots, deployed byte-identical across both edge nodes. The book's closing whole-book verify re-runs at a gentler pace after the platform's bot gate clipped a first pass.
  • Turned the books store into a working checkout: all fourteen product links (each of the seven titles in rubles and euro) wired from the payment provider's API behind a clean currency-choice dialog — reworked to the owner's spec with a minimalist close control — every link spot-checked on its live product page, the store QA closed at 65/65, and the page deployed byte-identical with a live click-through into the payment page; the six book preview links were re-verified end-to-end, right book behind each token, negative test included.
  • Wired the public site for paid traffic: a Meta Pixel now runs across its four marketing pages (home, the store, the grammar pack, the news course — student cabinets and legal pages deliberately left out), emitting PageView / InitiateCheckout / ViewContent / Lead. Verified for real: 25/25 local event checks passed, live beacons confirmed on production for page views, checkout and preview events, the full site QA suite green, page backups kept for an instant rollback.
  • Wrote the day's rules back into the skills: the Engoo source pipeline (API-first, no scraping) and the full-book build recipe into the platform skill, the /news page conventions into the site skill.

2026-10-12

  • Gave the CLI projects their portfolio identity: both platform harnesses were renamed to the cli-<platform> convention — cli-edvibe (formerly cli-anything-edvibe) and cli-langlisto — with the old commands kept as hidden compatibility aliases, and the rename carried through the packages, READMEs, docs and bundled agent skills, plus regenerated banners, how-it-works art and social previews. Every dependent surface followed and was deployed: the automation suite's bundled wheel, the prism landing, the profile's project card, and the tools card on itsfedor.cc — checked live. The convention is now fixed for future CLI projects: one repo per platform, own brand, one-line install.
  • A brand-new public repo went from first release to v2.0.0 in a single day: cli-langlisto's 1.0.0 covered students, classes, schedule, materials and books, and by evening an agent-driven pass through every exercise surface produced v2.0.0 — 18 additional exercise types, per-gap hints, answer variants, free gaps, captions, a duplicate-lesson guard and a spec linter — plus a corrected homework model (homework content now authors into the workbook bucket «Exercises for homework», with homework prepare/bucket to migrate and inspect it) and a preview open command, with the 1.1.x fixes folded in. 76 offline tests, wheel rebuilt, tag v2.0.0 (ead43f6).
  • The school's operating setup completed its move off Edvibe onto LangListo — all 12 student accounts brought over and re-verified with a real sign-in, 9 classes and the full weekly schedule live on the new platform; the same rebuild cli-langlisto's README tells as its origin story.
  • The lesson libraries landed as platform books, driven by resumable background builders: the five-volume Big Grammar Pack rebuild assembled 154 lessons with four books fully live (36 + 41 + 41 + 36) and the fifth mid-build at posting time, and the speaking course rebuilt to 68 live lessons across its core, extras and re-homed waves — per-book QC passes (shelf banners, render checks, screenshots) closing behind them.
  • Dressed the new shelf: the grammar books' covers were redrawn as character cards at the platform's exact card geometry (1358×1728, 11:14, no crop), the speaking course's cover settled on its final range label (A2–C1), and the level courses got a matching minimal cover set — every upload checked against the live shelf.
  • Built four full video-homework lessons into the speaking course straight from the school's homework archive — vocabulary, gap-fill, video and a True/False/Not-stated check (the Not-stated answer type and a fix for video items silently losing their player landed in the engine the same day) — re-homed three existing lessons, and moved the Small Talk lesson over ahead of its class; each verified by API read-back.
  • Wrote the day's rules back into the working skills: the CLI naming convention and wheel pitfalls into the CLI methodology skill, the corrected homework model and the cover geometry into the platform skill, and the shelf-design recipe into its reference.

2026-10-11

  • Designed the ESL Minecraft server's quest and level-progression layer in one working session: the 63-item idea board walked, the NPC/quests direction brainstormed into a concrete design set — a twelve-quest storyline plus a two-parrot comedy side quest, and a six-gate progression track of one-time exams and day-cooldown practice loops driven by scoreboard counters (A0→B2) — with the pacing rules and quest-format notes written down for build.
  • Chose the NPC provider on jar-level evidence: FancyNpcs, the single free candidate whose release build ships exactly the API the quest engine's integration calls, supports creating NPCs from the console at exact coordinates, and is built for the server's exact game version; the runner-up lost on snapshot-only builds and per-tick entity cost.
  • Reverse-engineered the quest file format out of the engine's bytecode — dialog structure, tag-based block objectives, per-object counter semantics — then authored the full quest package: 13 story/fun quests plus 6 progression gates as 19 YAML files, with a strict deploy runbook and an NPC placement map. Verified locally end to end: every file YAML-validated (19/19, zero warnings) and the whole pack load-tested on a local Paper 26.1.2 sandbox with the quest engine and the NPC plugin — clean start, 19 quests and 0 pools loaded, no quest-file errors (evidence logs kept).
  • Rehearsed the village build before touching the live world: live region files pulled read-only, terrain / water / structure analysis, and a 1:1 local test world on the same server build where the structure-generation and WorldEdit steps were rehearsed with before/after maps and a rollback runbook. That evening the village went up on the live world — the quest village generated at its chosen site, the fresh live region files confirming the build — with the progression counters switched on for the new level gates.
  • Prepared two admin packages from live state, each as live copy → diffed edit → staged file → runbook: a nine-task quick-wins pack (seven configs across auth, claims, permissions, holograms and economy — all YAML-validated, with a deploy plan and the open questions listed for the owner) and the guide-book permission grid (every in-game guide button traced to its permission node across the live groups, corrected books staged with test-and-rollback checklists).
  • Workspace hygiene: ≈4.3 GB reclaimed — an orphaned duplicate browser bundle, dev caches, decompile dumps, finished-wave render artifacts and old videos — every path cross-checked against active work before deletion, and the verify-first rules written back into the cleanup skill.

2026-10-10

  • Rebuilt the GitHub profile's hero: the wide banner is gone — the profile now opens with a theme-adaptive card grid (an identity card plus the five pinned projects), each card a landscape mini-banner — kicker, title and description on the left, the project's banner-family motif glyph on the right, chips and an arrow along the bottom — with translucent accent-tinted fills (15% light / 20% dark) that let the page background show through: pastel tiles on white, deep tints in dark mode. Three design passes shipped in one sitting — first a 3-column grid replacing the banner, then 2-up cards with larger type and trimmed copy, then the final landscape mini-banners — rolled out as 12 light/dark PNGs in the profile repo's assets/cards/.
  • Verified the grid live: the server-rendered profile page carries six themed-picture blocks (one per card, with each project card wrapped in a link to its repo), a Playwright pass with dark-mode emulation shows all six cards loading at 406px rendered width with every currentSrc flipping to the -dark asset, and the card QA loop closed green — single-line title autofit, ≤2-line descriptions, padding and gap assertions, tesseract OCR per PNG composited over the theme background, and contrast checks (titles ≥10:1, descriptions ≥4.5:1).
  • Assembled a reusable local-business visibility-audit workflow — Google Maps share-link resolution via a mobile-UA header trick, a signed-out listing scrape through headless chromium + CDP + Playwright (rating, review count, hours, owner posts), a sweep of the surfaces AI assistants actually cite for local picks (forum threads, community groups, directories, listicles), and a priority plan of free levers — captured as a new skill with its pitfalls.
  • Wrote the card-grid lessons back into the portfolio skill: the design parameters, the measured sizing rule (48%-width reads ~406px), the GitHub-sanitizer check for themed-picture blocks, and the OCR-over-composited-background QA recipe.

2026-10-09

  • Shipped the feedback design system's v1.5 revision (owner call): the revised-variant reveals — "How It Could Sound (Spoken)" and "How It Could Read" with their green "More Polished" plate — are out of the canon. Both templates lost the slot (11 SLOT markers now), the CSS component is gone from the canonical stylesheet, tokens.json and the spec (new §13) record the change, and the analysis skill moved to v1.7.0 with every mirror asset resynced. The three fresh October reviews were migrated to match — reveal blocks removed, praise kept, lint 9/9 on each — and their live copies on itsfedor.cc/progress updated in one production deploy (only those three files changed; backups kept). Pre-October documents were deliberately left as they are.

  • Built the next C1 lesson in the spoken-lessons series — WSJ's "How Global Trade Runs on U.S. Dollars": 36 exercises across the six-stage flipped format — an at-home prep page (word match + phrase fill-in), warm-up, a ten-item C1 lexis set with hidden teacher notes, watching (gist questions, the video, an 8-question auto-checked test, seven timestamped segments with hidden answer keys, and a 17-sentence / 24-gap exact-listening block whose every gap was chunk-checked against both caption corpora), speaking (6 discussion questions, a 2–2.5 min briefing-style voice task with a model answer and tips) and an extra stage. Verified end-to-end: server read-back closed with 0 problems (section order, counts, hidden notes, 8/8 test ticks, rotated dropdown positions, gap counts, cover) and a live headless DOM sweep came back green — all six sections render, the YouTube embed and 24/24 typed gap boxes mount, dropdowns open with the right options, the cover loads at 1280×720, and the new 💵 tile serves on the C1 course page at 256px with md5 parity. Course #9 in the New Spoken Lessons book.

  • Fixed the teaching-platform landing's setup error: the trial-lesson application block had two empty documents, so the cabinet showed the red "Set up the user agreement and personal data processing policy" banner — authored both documents (adapted from the site's own offer / privacy pages), published them into the block with read-back verification, and confirmed live: the banner is gone (the same API the UI runs on returns IsViewBanner: false) and both public links open working modals (8.0k-char agreement, 8.4k-char policy). Also restored the landing's meta tags, which the platform had silently reset to defaults (title, description, og image), and taught the CLI harness a dedicated site policy command (+11 unit tests, 133 passing).

  • Curated the GitHub profile: the pinned set now shows the five current projects — esl-automation-suite, cli-anything-edvibe, esl-feedback-design-system, notion-charts and worklog — and the two newest repos received their custom social-preview cards (both verified by the og:image flip from GitHub's auto-generated banner). Retired the off-topic casino demo from the profile: the repo went private (its page and Pages demo now 404 for visitors), GitHub dropped it off the pins on its own, its featured row came off the profile README, and the weekly portfolio watchdog was retaught to skip it.

  • The teacher dashboard's weekday-noon refresh ran on schedule: the scan caught real movement — three cards rebuilt with fresh "not submitted" lines and the online row refreshed for five more of the 18 active students — and the updated page deployed and verified live (/dashboard/ serving, avatars still 404 for anonymous visitors).

  • Stood up the sandbox's own browser as the default for agent browsing: a headed Chromium 154 driven over CDP from a persistent profile on the sandbox screen — uBlock Lite plus a 72k-domain tracker blocklist via /etc/hosts, working software-rendered WebGL, and reusable launch / stop / warmup / blocklist scripts; a warmup pass built a realistic cookie state (~94 cookies across 14 sites). Rewrote the browser-routing guidance across the skills — sandbox first, Mac Chrome kept only for genuinely Mac-side jobs (Web Bluetooth, the owner's logged-in profile) — and cleaned the panel config so the dock rebuilds with a Browser icon; one Mac-side config flip plus the final end-to-end pass remain.

  • Wrote the day's rules back into the skills: the v1.5 no-reveal canon and its migration recipe (analysis skill), the landing's site policy command and the live-modal selector fix (materials CLI + a new landing-policies reference), the dollar-wave notes (lesson design), the sandbox-browser routing updates across the sandbox / tools / chrome skills, and the CDP recipes for pins, social previews and clean repo retirement (portfolio skill).

  • Synced the design system's public repo to v1.5: esl-feedback-design-system now carries the no-reveal canon — both templates restamped v1.5 (11 SLOT markers; the .revised-box rules gone from the canonical stylesheet), tokens.json at 1.5, the spec updated with the change and its history, both synthetic demos rebuilt, and fresh evidence in the same commit: linter 9/9 on all four files, a new Playwright pass on desktop + mobile (0 errors, 0 overflow, Inter loaded, audio present), regenerated screenshots and machine reports; verified live via the GitHub API.

2026-10-08

  • Moved the teacher dashboard's own refresh to a weekday cadence: the scan now runs Monday–Friday at noon (it was Mon/Wed/Fri), and the dashboard footnote was updated to match.
  • Refreshed the live dashboard by hand after the switch: a fresh platform scan found real changes — one card rebuilt with new homework numbers and the online line refreshed for 5 of 18 students — and the updated build went live. Verified: both edge nodes serve /dashboard/ and /progress/ byte-identical to the local build (md5 match on both), and the live stamp reads 08.10, 14:07.
  • Built review read-receipts for the dashboard: when a student opens a review in their own cabinet, a best-effort server-side marker records first / last / count in a Cloudflare KV namespace, and cards with reviews show a «Разборы в кабинете» block — «открыт сегодня / вчера / dd.mm» or a blue «не открыт» pill — plus a new «Не открыли» filter. A teacher's view-as fetch deliberately does not count, and receipts only ever hold timestamps.
  • Extended the dashboard QA suite to cover the feature — 46 checks: every rendered row cross-checked against the API state, teacher view-as writes nothing, the owner's own fetch increments the count by exactly one, .html redirects don't double-count, and students get 403 from the dashboard API — plus a dormant mode (38 checks) for production before the KV binding exists. All suites green locally (46 + 60 + 42 + 34), and the post-deploy live checks passed — both edges byte-identical, dormant API behaving as designed.
  • Shipped the feature in dormant form after a branch-preview dry run: the code and UI are live on production, with the receipt blocks staying hidden until the KV binding is attached (needs one more scope on the Cloudflare token); the exact activation steps are written down so nothing has to be rediscovered.
  • Hygiene: kept a pre-change backup of the dashboard page, added the cabinet/dashboard playbook to the site README (local stand flags, QA modes, receipts architecture), and wrote the receipts notes into the project skill.

2026-10-07

  • Untangled the platform's book organization: the "many copies" turned out to be three intentional sets of five — masters, working copies, preview books — but the copies and previews had silently fallen out of their folders. Isolated the cause with a controlled experiment on a scratch book: saving a book by script without carrying its folder id detaches it from the folder, with no notice. Restored the two displaced sets (5 + 5) with read-back verification — each folder holds exactly its five again and only the masters stay top-level — and wrote the rule into the tooling skills: always pass the folder id, and re-verify folder membership after every scripted wave.
  • Built the next B2 lesson in the spoken-lessons series — the BBC's "Change Your Mind, Change Your Life" episode on work anxiety: 36 exercises across the six-stage flipped format — a pre-watching prep page, warm-up, vocabulary (a fresh ten-item lexis set), watching (gist questions, the video, an 8-question auto-checked test, seven timestamped segments with hidden answer keys, and a 16-sentence / 20-gap exact-listening block whose gaps were gate-checked chunk-wise against two independent caption corpora), speaking and an extra stage. Verified live: clean API read-back and a full DOM sweep — embed and cover mounting, 20/20 typed gaps, working dropdowns. Appended to the B2 course — the nineteenth verified build, the sixth flipped wave.
  • Reworked the teacher dashboard, now live at itsfedor.cc/dashboard: English-first card titles with an online-status line, compact status chips (waiting / checked / not submitted), real platform avatars, and a self-contained refresh — one read-only platform scan with change detection, so only cards with real homework changes rebuild. Hardened and tidied: avatars sit behind the teacher gate (anonymous and student access return 404; the old public path serves a blank placeholder after an edge-cache quirk), the dead-end "cabinet" button gave way to a smart back that returns to the same cabinet, and the scan schedule moved to Mon / Wed / Fri at 12:00. Verified: local and live suites green — 33/33 + 60/60 + 42/42 — and the dashboard page file byte-identical across both edge nodes.
  • Built the C1 edition of WSJ's "How Ben & Jerry's Activism Helps Scoop Up Customers" — the same-video companion to its B2 build: the six-stage skeleton re-authored around a distinct "price of principles" angle with a completely fresh C1 lexis set (zero overlap with the B2 one), a 15-sentence exact-listening block whose every gap passed the dual-caption gate, and a coral C1 tile on the book page. Verified end-to-end: server read-back clean (section order, counts, 8/8 test ticks, hidden notes, gap counts), the tile md5-matches its CDN copy, and a live DOM sweep came back green — the twentieth verified build of the series.
  • Trimmed the ESL Automation Suite README: the redundant static preview above the live pipeline-demo GIF is gone.
  • Published two new public repos: notion-charts — a JSON spec → Notion-style chart/table PNG generator (transparent canvas, Inter, 2× output, a QA mode that catches overflow, OCR/colour-map tooling to decode source charts, and three calibration examples; the same pipeline behind the course's 600+ chart images) — and esl-feedback-design-system — the feedback design system: one five-role palette, slot-marked templates (homework + IELTS band card), a conformance linter and a Playwright render-QA runner, shipping synthetic demo docs (linter 9/9, QA green on desktop + mobile). Both public, MIT, with descriptions, topics and transparent light/dark banners.
  • Evening README pass across the account: retired the old opaque preview cards from six repos' READMEs (the transparent banner carries the identity now), gave the profile a theme-adaptive banner (light/dark) with a fresh social-preview card, and removed a leftover duplicate preview in prism-landing; closed with a 12-repo scan — no duplicate or broken asset references left in any README.

2026-10-06

  • Built the next B2 lesson in the spoken-lessons series — WSJ's "Repo: How Roughly $1 Trillion Moves Overnight": 34 exercises across the six-stage flipped format — a pre-watching prep page, warm-up, vocabulary, watching and questions (gist, an 8-question auto-checked test, six timestamped watching segments with hidden answer keys, and a 15-sentence / 16-gap exact-listening block whose every gap was cross-checked chunk-wise against two independent caption tracks), speaking and an extra stage. Verified live: clean API read-back and a full DOM sweep — cover, video embed, 16/16 gap boxes, working dropdowns and the book tile at 256px; the eighteenth verified build and the fifth flipped wave.
  • Extended the student area to every student with existing analyses: new per-student accounts with credentials kept 1:1 with the platform's own student cards, and seven legacy reviews rebuilt to the current design canon (v1.4) with reproducible per-document builders — originals kept intact. Verified on production: API 60/60, UI 41/41 and a new 34-check per-student E2E, plus md5 parity between both edge nodes.
  • Cleared the platform's homework queue end to end: surveyed every active student and closed all 29 waiting sheets — the exercise-only sheets checked against their answer keys through a new exercise-level error digest (ten exercise types, cross-checked against the platform's own autocorrect flags), and the writing / recording sheets reviewed and closed. Three fresh reviews went live in the student area — an essay review, a writing + audio review with the recording embedded, and a research-task review — each lint-clean (9/9) and QA'd with zero errors or overflow.
  • Applied the new feedback canon across the published archive: every review now carries at most two actionable tips, the most evidenced for that document. Caught and fixed a builder bug mid-wave, re-linted, and re-verified all eleven published reviews live.
  • Launched the teacher dashboard at itsfedor.cc/progress/dashboard — per-student homework status (waiting check / checked of total / not submitted), hand-kept focus zones and next-step notes across 18 active students, on a teacher login that can open any student's file while student isolation stays intact (cross-access 404s re-verified). Its data rebuilds from a live platform scan three times a week.
  • Wrote the day's rules back into the tooling skills: the cabinet's multi-student account playbook and QA suites, the legacy-review adaptation builders, the dual-caption-corpus pitfall for lesson waves, and the feedback canon's two-tips limit.

2026-10-05

  • Re-audited the whole account (15 repos): a secret scan over full history, a PII sweep across working trees, commit graphs, 74 images and sampled video frames. Scrubbed a client reference and student names that had leaked into an example teacher-kit and the landing demo, rewrote history on three repos (filter-repo + force-push) and verified every fix on a fresh clone; the affected example screenshot was re-rendered and OCR-checked.
  • Published prism-landing — the ESL Automation Suite now has a live landing page (repo public, Pages on, description and topics set).
  • Gave the repos a matching visual identity: transparent theme-adaptive banners (light/dark) with the Fedor Molodtsov byline and SEO alt text across nine repos, an animated gameplay GIF for ChainLuck, and a pipx one-liner install for the Edvibe CLI.
  • Backfilled the worklog queue (16 unposted days) and refreshed the profile's Recent activity.
  • Built the next B2 lesson in the spoken-lessons series — WSJ's "How Ben & Jerry's Activism Helps Scoop Up Customers": 34 exercises across the six-stage flipped format — a pre-watching prep page, warm-up, vocabulary, watching and questions (a 13-sentence / 14-gap exact-listening block; all 14 gaps passed chunk-wise against both caption corpora on the first run), speaking and an extra stage. Verified live: API read-back clean and a DOM sweep green — cover, YouTube embed, 24 test radios, 14 gaps, 8 dropdowns and the tile on the B2 gradient; the seventeenth verified build and the fourth flipped wave.
  • Ran the homework-review pipeline on the day's IELTS batch into a full review (listening / reading / writing) and published it to the student area — the new report tops the cabinet with the "new" badge, and the earlier diagnostic was re-issued in the updated design. Live checks green: API 34/34, UI 30/30, three report cards end-to-end.
  • Reworked the student area through a full owner-review cycle: the cabinet went RU-only (top-bar and language switcher dropped), report cards moved to a mobile-first layout, "Log out" became a plain footer link, and the file-delivery gate gained path validation, robots / noindex rules and a rotated session secret. Every release was verified on the live domain — API 44/44, UI up to 38/38.
  • Launched the legal pages on itsfedor.cc — a combined public offer (lessons + materials) and a data-processing policy, rebuilt from the old Google Docs to the current rules, including a 12-month validity term for lesson packs (materials stay perpetual), with full contact details and cross-links. Both footers were rewired: the sales landing dropped its Telegram link and now points the offer at the site page, and the cabinet footer keeps only the legal links. Shipped with a new 45-check legal QA — byte-exact on both edge nodes.
  • Tuned the account's own automation: the worklog pipeline now posts daily entries automatically once the content policy passes (new repos and profile changes still need an explicit OK), and the weekly portfolio watchdog went self-contained — no host script — its first run green.

2026-10-04

  • Merged the opening tense modules of the whole grammar series into one large first module — "Module 1 · Tenses": the A1 copy now opens with 10 lessons (present, past and future together, 1.1–1.10), A2 with 9, B1 with 6, B1+ with 4 and B2 with 4, and the five preview books were merged to match (8/6/4/2/4) — so the series opens on one solid, substantial block instead of fragmented mini-modules. Every following module was renumbered without gaps (Module 5 → Module 2 and so on), and the A1 lessons were renamed under the new numbering — 29 renames in the copy plus 3 in its preview (now 1.1–1.10, then 2.1–10.2).
  • Rebuilt every description that referenced the old module structure: all 10 books got a combined "Module 1 · Tenses" blurb with renumbered module headings, and each copy's description is byte-identical to its preview's. The lesson content itself was left untouched — 195 lessons (185 grammar + 10 tests) unchanged in place.
  • Engineered the move so nothing could be lost: a pilot proved content survives a move + rename (content preserved, description intact); the move call deliberately carries the lesson description (a bare move silently wipes it); ordering went through a full ordered-list save; emptied modules were deleted only after their lessons were read back in place. Every step ran with backups and read-back verification.
  • Closed with an end-to-end audit across all 10 books — structure, names, ordering, module counts and byte-for-byte descriptions, plus all 31 moved lessons checked for non-empty descriptions: ALL CHECKS PASS.
  • Re-synced every publishing surface: the sales landing now shows 10/13/12/13/13 modules (61 total); the ad creatives were updated (the pack ad to "61 modules" and the A1 ad to "10 modules · 34 lessons" with the new lesson-number map, 1.1 → 10.2); and the reply draft for the platform review gained the merge note plus the renumbered lesson reference.
  • Site QA ran green (copy-conformance 68/68 and both page suites), the site was redeployed and checked live — the pages serve the new counts.
  • Wrote the mechanics back into the publishing toolkit: the platform's move / reorder / module-delete / rename RPC set, including the description-preservation quirk and the in-place edit-wave procedure.

2026-10-03

  • Finished the grammar series' speaking-set rework: 32 sections across the five levels (A1 6, A2 6, B1 9, B1+ 3, B2 8) rewritten or extended to the approved format — lead-in → pattern → bolded target-form questions with a hidden teacher note (level / use / what to watch for). Each batch ran with a preflight check, per-lesson backups and read-back; the independent verifier closed at 32/32 (new content present, old gone, notes updated).
  • Completed the explanation-condense wave: every rule text in all five books brought inside the platform's recommended lengths (50–100 words at A1–A2, 150–200 at B1–B2) — 177 lessons authored in level batches (35/41/37/33/31) and applied with backup → write → read-back; the end-to-end cross-check finished 177/177 with zero violations, and the over-short rules were expanded and the ten polished lessons re-applied.
  • Ran a fresh typo sweep over all 187 lesson copies: 161 raw hits across 55 lessons filtered down to 22 lessons / 52 real fixes (double words, broken spellings) applied with preflight + backups + read-back at 100%; the final scan shows only intentional patterns left.
  • Closed the chart-part wave flagged here yesterday: every chart in the series is now a set of standalone, phone-readable part images — 263 chart specs → 664 parts rendered and uploaded (664/664, zero failures), swapped into all 187 lesson copies with 0 problems, and independently re-verified 187/187 (parts, order, captions, numbering, old URLs all clean); special grids rebuilt (irregular-verb tables + 7 narrow grids) and the scratch test book removed.
  • A1 cleanup + published-number re-sync: two lessons removed from the A1 copy (at the module tail, so numbering doesn't shift) and one lesson re-leveled to fit A1 with its description updated — then the corrected counts (197 → 195 lessons; A1 36 → 34) swept through the sales landing, the main site, the copy deck and the ad copy; the copy-conformance check (68 pairs, 0 missing) and both site QA suites passed; redeployed to Cloudflare Pages and verified on the live domains (both serve the new counts, zero stale numbers).
  • Final-stage checks: a fresh full pass over all 187 copies — typography and structure scans clean (no broken tags, leaks or empty blocks) and the length-cap cross-check 177/177 — plus all 24 lessons in the five preview books rebuilt from the updated copies with a read-back per lesson.
  • Built the second lesson in the IELTS book — "IELTS Trainer — Listening · Reading · Writing": 48 exercises across 4 sections simulating a whole exam — listening (4 parts / 40 questions on one recording cut into seven play-once groups), reading (5 texts / 40 questions), writing (a letter + an essay with student checklists and hidden sample answers). Every answer key was server-verified (each page re-submitted for a full score — 80/80 marks), the new Execution Time feature sits on all 17 answer blocks, and the build passed API read-back plus a live editor DOM sweep (tables, map, dropdowns, all 7 audio files serving). Along the way, found and fixed a renderer bug live: a single colspan cell silently drops an entire table — bisected on this build, the table rebuilt and re-verified.
  • Wrote the day's rules back into the skills: the IELTS exam-page port recipe (verified answer-key extraction, task-type → template mapping) into the transfer skill; the colspan pitfall into the materials CLI; the condense pipeline as its own new skill; and the in-place edit-wave procedures (speaking sets, rule texts, typos, preview sync) into the catalog-publishing playbook.

2026-10-02

  • Extended the ESL feedback design system to v1.3 with a second skeleton — an IELTS band card: a band hero with the estimated overall band, a 0–9 dot scale, four per-skill cards with raw results, per-skill findings blocks, criteria tables for the productive skills and a quick-fixes grid. Shipped the slot-marked band-card template, the canon section and the token update (one new display size; a document may now use up to 7 distinct type sizes), and taught the conformance linter to accept both skeletons while keeping every existing check — 9/9 across the card, the new template and the homework template. Verified end to end: harness selftest green, and a Playwright render QA on desktop and mobile with zero overflow and zero console errors.
  • Built and deployed a password-protected student area at itsfedor.cc/progress: a login page and a personal dashboard where students find their past analyses (newest first, "new" badges), RU + EN, mobile-first. Security by design — PBKDF2-hashed passwords, HMAC-signed session cookies (HttpOnly, SameSite=Lax, path-scoped, remember-me lifetimes), uniform deliberately delayed login errors, Origin checks, noindex / no-store headers on everything private, and per-student file isolation (missing, tampered or borrowed credentials all return the same 404s). Shipped through preview to production and verified on the live domain with 33 API checks and 29 UI checks green, including both locales and 360/390 px widths; a locale-duplication regression caught on the new page was fixed and pinned with new permanent checks.
  • Wrote the day's rules back into the skills: the band-card playbook (diagnostic data extraction, first-attempt scoring, band conversion practice) and the Task 1 chart pixel-verification method (bar geometry over OCR, ±0.5% agreement check) went into the feedback and band-scoring skills; the new page's locale-hiding rule and the locale/mobile checks went into the site skill.

2026-10-01

  • Built a B2 lesson from WFYI's "How Does Jury Duty Work?" (Simple Civics, 4:50) into the spoken-lessons series: 6 stages and 30 exercises — a flipped-classroom pre-watching page (10-pair match + 8-phrase gap-fill; the video itself is kept for class), vocabulary (10-term context text, match, fill-box, hidden teacher notes), watching (gist questions, the video, an 8-question auto-checked test, four timestamped segments with hidden answer keys, and a 10-gap exact-listening block verified word-for-word against the transcript), speaking (6 discussion questions, a 2-minute voice task with a model answer) and an extra stage (8 choose-the-option, 8 typed gaps, opinion writing, 90-second voice task). Verified live: API read-back clean and an editor DOM sweep mounting the cover, YouTube embed, 24 test radios, 10 exact gaps and 8 working dropdowns (the correct option renders highlighted); lesson tile mounted on the book page at CDN byte-parity.
  • Built the next B2 lesson — WIRED's "Corporate Lawyer Breaks Down Succession Business Deals" — as a corporate-deal language build: 34 exercises across the same six stages, vocabulary from loan covenants and hostile takeovers to poison pills, six timestamped watching segments with answer keys, and a 10-sentence / 11-gap exact-listening drill in which a caption split ("…$130" vs "…130 dollars") is handled by a dual-accepted gap. API read-back clean (34/34 exercises, hidden notes, sequential numbering); DOM sweep green (24 test radios, 8 dropdowns, 11/11 listening gaps, cover and embed mounting); handshake-emoji lesson tile on the B2 gradient, CDN-verified, description set. The two builds bring the verified live-build playbook to sixteen instances.
  • Prepared the launch message for teacher communities (RU + EN) for the five-book grammar pack, with every number re-derived from the pack data first: 73 modules · 197 lessons · 950+ exercise sets · speaking blocks in 90 lessons (1,800+ questions) · 55 tests.
  • Wrote the day's rules back into the tooling skills: the two new build instances with their pitfalls — merging yt-dlp's triple English caption tracks down to the largest pair, the /a1/a2 dual-answer gap form for divergent caption splits, and the gentle-scroll timing needed to probe lazy-mounted dropdowns — plus the standing pre-watching-prep flipped-page pattern for new lesson waves.

2026-09-30

  • Built the first lesson in a new IELTS section: a full-length academic diagnostic for a one-hour sitting — a designed test-guide page; listening (10 questions over a real exam recording — a five-minute exam-style audio cut — on a 10-minute timer); reading (13 questions: 7 true/false/not-stated + 6 gap-fill); writing (Task 1 bar chart + rubric, 20-minute timer); speaking (cue card + 3-minute recorded answer). All four timed parts run on the platform's new Execution Time feature; keys, transcript and band guide stay hidden for the teacher.
  • Polished the lesson through owner-review passes: split every instruction into numbered line-by-line steps ("Do this: …") so the student always sees the next action; replaced two guide notes with designed picture cards (test guide + closing card — byte-identical uploads, rendering live); re-verified the whole build — all four timers confirmed at 10/10/10/20, API read-backs clean.
  • Root-caused the platform's table bug that collapsed whole tables into one stacked column — a <col> without an explicit numeric px width makes the layout parser's parseFloat return NaN — rebuilt every table with measured widths (summing to the 576px content column) and confirmed real multi-column grids live in the editor.
  • Built a B2 spoken lesson off Fireship's "An ex-OpenAI researcher just deleted language from the LLM": six sections with a flipped-classroom opener (two auto-checked practice tasks), and an exact-listening block of 12 sentences where every gap passed a chunk-by-chunk gate against two independent caption corpora before going live; verified by API read-back and a live DOM sweep.
  • Built the C1 edition of the same video as a claims-vs-evidence lesson: 31 exercises in the same six-section build — four timestamped analysis parts, an 11-sentence exact-listening block gated against the two caption corpora (subtitles + ASR), a 200-word argumentative writing task and two voice tasks; cover and tile verified against the course palette.
  • Evening fix on both lessons after the owner's note that the flipped-classroom page should be pre-watching prep: removed the embedded video from both prep pages live, retitled and rewrote them as "pre-watching preparation", kept the two auto-checked tasks as the whole assignment, refreshed both lesson descriptions — verified in place (verifiers clean, zero video iframes, blocks renumbered).
  • Produced a C1 teacher's guide for Fireship's "Meta's Muse Pivot — Everything from Connect 2026" in the house format: warm-up discussion; key-terms matching; phrases and expressions; comprehension with timestamps and evidence-based answer keys; critical-thinking questions; four discussion tracks; differentiation notes, a sponsor-segment note, homework activities and a complete answer-key summary. Facts cross-checked against two transcript sources plus news coverage; prose audited; single clean file.
  • Ran the homework-review pipeline on a pupil's remaining batch — an essay plus three voice recordings — into one color-coded HTML review on the feedback design system: per-item fixes with reasons, polished re-writes, a comprehension overview, tips linked to grammar references, and the three audio answers embedded for playback. Gates before delivery — design check 9/9, desktop + mobile QA clean, audio players live; revised the same evening on owner feedback and re-checked.
  • Wrote the day's rules back into the working skills: the col-width table rule + div-grid render check, the timer-chip race note and headless-load flakiness fixes, the pre-watching flip-page pattern with its live retrofit recipe, the C1 course conventions, and the homework-review batch notes.

2026-09-29

  • Reworked the sales page's FAQ — final set of six cards: what you need to start, how to choose a book, groups vs one-on-one, the language of the materials, payment and refunds — and tightened the gap down to the footer from 206px to 84px. Copy deck re-synced (68 phrase pairs) and a spacing QA check (footer_gap) added; deployed, with the served copy byte-verified from both edge nodes.
  • Ran a conformance pass over the sales page and pinned it with QA: "scheme/charts" wording → "rules with examples and tables" across eight placements (comparison card, hero lead, FAQ, meta and OG descriptions), "keys" → "teacher's notes" everywhere, and the payments strip moved below the book grid with the books → FAQ gap cut from 152px to 48px. The retired wording returns zero hits on the live page; new checks cover both the wording and the exact geometry. Deploys verified from both edge nodes.
  • Swapped the homepage credential chip from "a year living in the US" to "studied in the US" and swept every dependent surface (bio paragraph, credentials card, share-card template), adding a QA check so the old wording can't return; deployed, verified from both edge nodes.
  • Updated the public offer's refund clause: once access to a pack has been granted, refunds aren't made (access is perpetual and buyers save the materials into their own collection); a full refund stays for access that was never delivered. The offer is a native Google Doc with the Docs API disabled, so the edit went through an export → DOCX → re-upload roundtrip that preserves the same file and link — first proven on a test copy, then applied with a paragraph-level diff (all 105 paragraphs intact, exactly one clause changed) and re-verified through the buyer-facing link. Backups kept; the roundtrip was written into the workspace playbook.
  • Built a C1 lesson — "How Silicon Valley Bank Collapsed in 36 Hours" — into the spoken-lessons series: 31 exercises across five stages — vocabulary (12-term context text, 12-pair match, 8-item fill-box), a gist intro → video → auto-checked 8-question test → six timestamped watching segments with 23 comprehension questions and hidden answer keys, a 13-sentence exact-listening block whose 14 gaps were verified word-for-word against two independent caption corpora, and a speaking stage with a 2-minute voice task plus teacher notes — closing with a writing/voice extra. Verified by API read-back (31/31 exercises, zero issues) and a live DOM render check (24 auto-checked radios, 8 dropdowns, 21 typed gaps, cover and embed all mounting).
  • Rendered a "Shops and public places" vocabulary table as a classroom-scale transparent PNG (1760×6084) through the house chart pipeline, then attached it to a pupil's homework sheet — the platform blocks direct image edits on homework-mode items, so it went via the pool-first route: create the picture block in the lesson pool, bind the image, attach to the sheet, bump the item counts and the "new" badge. Verified by sheet read-back (11 → 12 items), the class overview, and a live page render (the image mounts full-size in the sheet's 656px column, no exercise number drawn). The flow was documented in the CLI skill.
  • Added a seventh role-play — "Lunch break at the coffee station" — to the Small Talk Training lesson, inserted right after Scenario 6 (the debrief moved to the last slot) with the display numbering re-flowed cleanly (1.6 → 1.7 → 1.8, no gaps — verified in the live editor), and bumped the lesson description from six scenarios to seven. API read-back byte-identical; the insert-between-exercises mechanic went into the CLI skill.

2026-09-28

  • Built the sales landing for the five-book grammar pack from scratch to a QA-verified, packaged build: hero with one-click buy → before/after comparison of the prep workflow → proof numbers instead of testimonials → an inside-a-lesson tour → the five books + bundle → delivery steps with a Telegram button → FAQ → final CTA, plus a mobile sticky buy bar and RU-by-default with an EN toggle.
  • Kept it a single file that opens from file:// with no build step, with six reusable checkout links wired into one CONFIG block and a serverless auto-delivery worker behind them — payment-signature check, buyer email with the access page, owner ping in Telegram — 12/12 local worker tests green.
  • Researched cross-border payment acceptance for selling to Russian buyers from abroad: verified why foreign acquirers can't charge Russian cards, compared a non-resident acquiring programme, a digital-goods marketplace and Telegram Stars, documented hold periods, withdrawal chains and chargeback handling, and settled on the two-channel scheme (main + backup).
  • Cut the page's visible copy by 41% (873 → 515 RU words) through a three-agent batch — copy, visual system, animations — against an approved RU/EN deck; a conformance checker now fails the page if any of the 138 deck lines drifts from the markup (fresh run: 0 missing RU / 0 missing EN).
  • Replaced ad-hoc effects with vetted, locally vendored libraries: AOS scroll reveals + count-up behind a progressive-enhancement "arm" (nothing is hidden without JS or under reduced motion), emoji chips instead of custom stickers, a single accent colour enforced by a palette-canon QA scan, and hand-drawn accents kept static only — the JS-drawn annotations were removed after the owner caught them visually detaching from words while scrolling.
  • Rebuilt the QA kit as one Playwright audit: desktop + mobile + file:// + no-JS + reduced-motion across four viewport widths — palette off-canon = 0, overflow = 0, reveals 31/31, images 12/12, console errors 0; all green.
  • Produced the bundle hero image via an API pipeline: reference-conditioned generation of the five mascots composed into one scene, then true-alpha matting for the cut — after pixel-checking that asking the model for a transparent background only yields a fake checkerboard — shipping a 1376×671 transparent WebP, live on the page.
  • Wrote the day's rules back into the working skill (site v2.1: vendored-library policy, palette canon, QA commands, the annotation pitfall) and repackaged the delivery archive.

2026-09-26

  • Ran the homework-review pipeline end to end on a real submitted sitting — fetch → ASR transcription → feedback document on the design canon → conformance lint → desktop + mobile render QA: linter 9/9, zero overflow, zero console errors, audio embedded and playing in the document.
  • Sharpened the homework-review skills with the pipeline's operational rules: fillers stay internal signal only and never appear in a document (no fix item, no quote, no mention — the raw transcript is the only place they live); one sitting counts as one review batch even across several sheets; and a sheet freezes at assignment time, so the sheet — not the lesson's current pool — is the source of truth for what a student actually received.

2026-09-25

  • Closed the ESL feedback design-system wave: v1.2 removed the machine speech metrics from the feedback documents per the owner's edits, and the canon was embedded into the working skills — the canonical template, tokens, conformance linter and the Playwright QA runner mirrored and certified (sha256 byte-equality for the template, tokens and linter), with the generation policy now "copy the template, fill the slots, lint, deliver". Linter 9/9 and render QA green on both the template and the showcase.
  • Built "When Does US Debt Become Genuinely Bad?" (WSJ, 7:36) as a C1 lesson in the New Spoken Lessons book: 31 exercises across five stages — vocabulary (topic text, 11-pair match, fill box), gist and first-viewing questions, an 8-question auto-checked test, six timestamped watching parts with hidden answer notes, an exact-listening block, a speaking stage with a voice task and a writing extra. All nine exact-listening gaps verified word-for-word against the transcript before saving; API read-back and live render checks passed (cover, video embed, 24 test radios, gaps, dropdowns, drag items), level tile and description in place.
  • Measured the lesson editor's fixed content column (656 px) and derived the classroom type scale for guide images (canvas type ≈ on-screen size ÷ 0.745), then rendered a six-part small-talk guide set — rules of the game, openers, follow-up menu, reactions, topics, exits — and swapped all six text notes for the designed picture blocks in place: same exercise IDs, numbering and order, hidden keys untouched. Verified by API read-back and a live DOM check (six captioned images, 1760-px originals on the CDN).
  • Reworked the pre-watching block of three TV-episode homework lessons into the approved format: the vocabulary match became a "List of helpful words and phrases" word-list exercise (translation + definition, one-click add-to-vocabulary), edited in place so existing exercise IDs and homework links stay valid; verified live in the lesson editor.
  • Built "Why Austin Failed To Become The Next Silicon Valley" (Architales, 8:43) as the next C1 lesson: 31 exercises across five stages authored from the video transcript, everyday phrasal verbs and collocations as the vocabulary target, ten exact-listening gaps verified word-for-word, plus the book-standard tile and description. API read-back and a DOM sweep both clean — the thirteenth fully verified live build.
  • Wrote the day's rules back into the tooling skills: the notes-to-pictures in-place conversion recipe (upload, mutate, save, bind the image, read back), the image display-size measurement, the browser-verification session-reuse trick, and the word-list block-edit procedure.
  • Extended the Edvibe CLI harness with a site command group for the platform's teacher landing pages — show, backup, registration requests, block on/off, metadata, patch-edit and publish — with every write wrapped in a timestamped backup → save → read-back-diff flow (plus a --dry-run mode); the landing write RPCs were reverse-engineered from the frontend bundles and verified live end to end; +15 unit tests, the offline suite now at 125 passing (5 skipped).
  • Used the new group end to end on a live teacher landing page: rebuilt the examples block with three current lessons (activating each lesson's sharing code through the materials RPC so the cards open for visitors), added two FAQ entries and set the page's title, description and social-preview image. All writes were backup → save → read-back verified and the page republished; also documented a platform-side caveat: metadata values save but the current platform version does not render them yet.
  • Wrote the landing write path, the full-replace safety procedure and the sharing-code mechanics back into the materials CLI skill.

2026-09-24

  • Built the homework auto-check pipeline end to end: new CLI commands pull a pupil's submitted answers (voice recordings plus written answers), an audio transcribe command runs Deepgram Nova-3 in multilingual mode (RU+EN code-switching, per-word language tags, timestamps) and emits a stats-rich JSON — speech rate, pauses, fillers, low-confidence words — and a new skill turns it into the color-coded HTML feedback document. An ASR decision review compared seven hosted providers with source-cited claims, verified on real audio; 110 offline tests green, and the live acceptance read back real submissions and transcribed real recordings.
  • Extended the Edvibe CLI from the platform's official documentation: 13 new exercise builders (unscramble, audio upload, GIF, three label-picture variants, seven embed integrations, carousel galleries) take the lesson spec from 18 to 31 exercise types, plus audio upload/attach and multi-image support. Verified with 88 offline tests and an end-to-end build of 18 exercises created, read back over the API and rendered live in the lesson editor.
  • Bundled the day's rebuilt CLI wheel (0.8.0) into the teacher kit, refreshed the lesson-spec reference for all new exercise types, and added the answers-download and transcription commands to the teacher-facing skill.
  • Shipped ESL Feedback Design System v1 for the homework-feedback documents: audited the drift (three visual families, 8–14 font sizes per doc, three different reds for one semantic role) and unified it — one WCAG-checked palette with a Machado CVD pass and redundant category chips (colour is never the only signal), a six-size type scale, a 4-px grid, a slot-marked canonical template and a generation policy. Built the self-QA tooling — a static conformance linter plus a Playwright runner (desktop + mobile, overflow/console/font checks) — and cut teacher notes 20% (945 → 752 words) with all student text diff-verified unchanged; linter 9/9, zero overflow, zero console errors.
  • Built a new exercise-authoring skill from research: four evidence-based learner-error banks (469 sourced entries — A2, B1, B2 grammar plus L1 RU/KZ transfer patterns), a distractor taxonomy, quality gates and a linter, in a two-pass workflow (generation plus an adversarial review). Piloted end to end: 15/15 items reviewed, one blocker and one hygiene issue fixed, lessons written back into the skill.
  • Built "Why Airlines Can't Survive Without Loyalty Programs" (WSJ) as a B2 lesson in the New Spoken Lessons book: 29 exercises across five stages, all eight exact-listening gaps verified word-for-word against the transcript before saving, level tile and description applied; verified live via API read-back and a rendered DOM check.
  • Refreshed the bundle ad for the five-book grammar series: a content pass found explanation blocks on 5,210 of 5,239 lesson questions and the sell list was rebuilt around it; both formats (4:3 and 16:9) re-rendered with build-time assertions and OCR read-back of the final art.

2026-09-23

  • Worked through the Minecraft ESL server task board and shipped a verified pack of fixes: login no longer bounces players to spawn (they keep the spot where they logged out), the per-level permission groups were repaired so regular players can actually use /sethome, /home, claims, kits, afk and the payment commands, claim-block purchase turned on at $1 per block with a written Russian walkthrough, and the "banned for spam" autoban switched off.
  • Root-caused the recurring "animals vanish on the server" report: ClearLag's AI optimisation was quietly deleting mobs more than 64 blocks away from any player, ignoring claims — disabled, the night profile defused, and the protected-entity list widened to 36 types. The whole pack was verified by running the exact plugin set on a local Paper 26.1.2 (build 74) server: clean start, every command and permission node resolves.
  • Built a new Paper plugin for the server — a config-driven clickable command book (578 lines of Java, 3 classes): /guide with run/suggest buttons, give, giveall and reload subcommands, automatic handout on first join, and a page-width checker that flags overflow before anything ships. All texts live in YAML, so nothing needs rebuilding to change them.
  • Folded the English corrector back into the chat plugin (v1.1.0): a private "better: …" hint is now returned inside the same API request instead of a second call, behind a 90-second cooldown with its own config section.
  • Security pass over the public plugin family: the bundled jar's default config shipped a hardcoded API key — stripped from both public plugins (dailyenglish, chat2earn) and committed.
  • Upgraded the Telegram bot that operates the server: a 12-command menu, a profile description, quick inline buttons (status / players / logs / start), a help banner and an avatar, plus an owner-id fallback that kills the "someone else claimed the bot first" failure. Shipped with a setup script, a profile script and an 8-section README; 83/83 smoke assertions green, then verified live as a single launchd-managed process.
  • Finished the C1 lesson's branding to the book standard: a generated 256px level-gradient tile with a level emoji and a description in the house format, verified byte-for-byte against the CDN and read back from the live lesson.
  • Moved the grammar series' originality pass into the duplicated editions: the A1 master was restored to its original state (14/14 fields, zero diffs) and copy A1 1.2 was rewritten end to end — explanation, four exercises, every answer key and the speaking section — ending at 0 verbatim matches against the source caches, no 5-word chains, and all 20 gap markers kept in place and order; every write went backup → apply → read-back.
  • Extended the rewrite toolkit: an exact token renderer plus an apply/verify engine, per-lesson spec scripts, and an old→new lesson map covering all 187 lessons across the five copies; the next lesson (1.3) dry-ran green — 23 explanation swaps, 20/20 markers, 0 hits — ready to apply.
  • Split the agent's models for both depth and cost: a deep-reasoning model for planning and review, a fast model for delegated execution, auxiliary tasks on the cheapest tier — delivered as an idempotent setup script with config backups plus a skill, tested against a stubbed CLI in both modes.

2026-09-22

  • Ran the final pre-submission QA sweep on the five-book grammar series: closed a stale duplicate of an A1 lesson that wasn't visible in the book (the live copy was recalculated and verified, the stale copy dumped then removed, all indices re-synced); removed all 668 apostrophe-duplicate answer pairs (final scan: 0 across all books); re-timed all 187 lessons to a uniform "30–45 min"; re-ran the clean scans — 187 lessons, zero external images, homework present on every lesson (6 items each); and compiled the requirement-by-requirement submission-readiness audit off live scans.
  • Completed the speaking-section restyle wave (57 single-part sections rebuilt in the approved layout, verified 57/57, junk-pattern scan zero), reformatted all 90 speaking teacher notes into structured lists, and inventoried the Explanation image layer — 263 images, 252 captions, all account-hosted.
  • Ran a visual-defects pass across the series, every item surfaced in live use: sample words that had lost their highlight styling (8 words in 8 lessons — restored in the approved bold-blue style, read-back 8/8); Example-line artifacts — a parser tail plus an unclosed italic tag that made a whole exercise render in italics — fixed, with pack-wide scans confirming no further occurrences; and two module headers where a red emoji sat on an orange gradient at ~1.0 contrast (found by a pack-wide contrast scan) recolored together with their two lesson covers. All fixes backed up and read-back verified.
  • Built a B2 lesson from the WSJ's "How 'Buy Now, Pay Later' Makes Billions From 'Free' Loans": 29 exercises across 5 stages, authored from the transcript alone, with the five listening segments aligned to the video's own chapters and 8 exact-listening gaps verified word-for-word; signed off after API read-back and DOM render checks (cover, dropdowns, test radios, drag items).
  • Migrated the remaining 46 lessons into the New Spoken Lessons book across its three level courses — B1 (12), B1+ (23), B2 (11) — 1,504 exercises in total, every lesson with a vocabulary stage, an auto-checked test, timestamped listening segments with hidden answer keys, a speaking stage and homework. Exact-listening blocks landed for every video lesson except the 19th-Amendment pair: after both transcript channels blocked mid-run, a patient multi-service retriever rotated providers and recovered every remaining transcript — the pair's captions still arrive corrupted from every service, so one clean transcript file is the last input (one article-based lesson has no video by design).
  • Designed the book's visual system for the new lessons: covers for all 46 (theme emoji on the level gradient — B1 green, B1+ blue, B2 purple) plus the book and section covers, verified byte-for-byte against the CDN (md5 match 46/46); filled all 46 lesson descriptions (Audience / Duration / Level / Objective / Stages; 8 empty ones restored) and checked the live book page.
  • Started the pre-submission originality pass on the grammar series: measured the platform's catalog requirements and the books' text layer class by class, wrote the tiered rewrite plan — ~190k words in scope, from full rewrites to light edits to untouched formulas, with a zero-match acceptance gate — and built the toolkit: a renderer that reproduces the live markup token-for-token plus an apply engine (backup → in-place update → read-back).
  • Piloted the rewrite on lesson A1 1.1 — 73 flagged sentences (51 full rewrites, 20 light edits, 2 formulas kept) down to zero residual matches; all gap markers intact (20/10/20/20), every choose-gap keeps its marked answer (20/20), keys and mirrors validated, homework and images untouched. Validator PASS; the Module 1 wave (lessons 1.2–1.5) is queued behind the owner's visual check.
  • Wrote the day's rules back into the tooling skills: the Example-line and sample-word styling pitfalls into the transfer skill, the rewrite runbook and pilot status into the catalog-publishing skill, and the eighth verified live build instance into the materials-CLI skill.

2026-09-21

  • Fixed a formatting defect class across the whole five-book grammar series in one sweep: dialogue exercises now render as scripts — each speaker turn on its own line, the speaker's name bold, no list numbers; single-text pages lost a stray "1." prefix; and per-turn paragraphs that had been glued into walls of text are preserved as real line breaks. 90 exercises across 71 lessons were updated in place — same exercise IDs and numbering, so every existing reference and homework link survives; read-back checks passed with 0 errors and the offline gate still reports 0 broken answers across all 187 lessons. 45 tests now pin the new behavior.
  • Parsed a public catalogue of grammar conversation-question sets (45 sets, 907 prompts), mapped it against all 187 lessons of the series, and built the speaking layer from it: an automated builder added a Speaking section to the 90 covered lessons — 1,802 conversation questions in total, each block carrying a hidden teacher note (level, use, what to watch for). Read-back verification: 90 lessons checked, 0 problems.
  • Updated descriptions across the series: a "Speaking" line in all 90 lesson descriptions and a "Speaking" block in all five book descriptions — every write read-back verified and idempotent, with backups taken first.
  • Started the Use of English wave: scraped and converted all 55 test sets (11 per level × 5 books, 15 items each) and fetched all 55 cover images with an OCR-based quality pass; then rebuilt the first book's test section in the new format — cover + auto-checked test + hidden answer-and-explanation note per lesson, read-back verified 11/11 (one transient error retried clean).
  • Added a lesson-delete capability to the Edvibe CLI harness (found and verified the RPC) after the pilot run created a duplicate lesson — the duplicate was removed cleanly.
  • Built a new B1+ lesson from TED-Ed's "Should you trust unanimous decisions?": 5 stages, 30 exercises — vocabulary match and fill blocks, an 8-question auto-checked test, timestamped watching segments with hidden answers, two exact-listening blocks whose 9 gaps were verified chunk-wise against the transcript, plus speaking and writing tasks. Verified live via API read-back and a rendered check in the lesson editor, all answer keys hidden.
  • Wrote the day's rules back into the tooling: the numbering fixer became a reusable driver (worklist + state), the speaking pipeline shipped as a documented builder + verifier, and the materials-CLI skill recorded the day's two new verification pitfalls (the seventh fully verified live build).

2026-09-20

  • Ran a full defect audit across all five books of the grammar series (187 lessons, one audit agent per book) and rebuilt every Exercises section after fixing the root causes: the converter had silently dropped 1,184 gap answers (an answer layout it never read), plus 469 case-only duplicate answers (the platform treats answers case-insensitively) and 109 EXAMPLE blocks that had lost their styling. Post-rebuild audit: all defect categories at zero on every level; rebuilds were in place, so exercise IDs and every homework link stayed intact.
  • Converted 59 dropdown exercises to the platform's untimed Test type to match the source's radio UI — this also fixed all 161 multi-answer "choose two" questions that a dropdown silently scored as single-answer, and split 10 parenthesized answers into real accepted variants. Verified: 60 lessons checked, 59 Test exercises, 0 mismatches against spec.
  • Fixed three further defect classes reported during live use: 6 exercises saved with empty names (instruction parser rewritten to read the heading region above each quiz), 2 exercises with merged options (converted to Test in place — dropdown duplicates gone), and 48 "compressed" answers expanded to full accepted variants. Full rollback dumps taken first; affected lessons updated in place by three parallel workers, every write verified by API read-back.
  • Extended the Edvibe CLI harness: a delegated agent added materials folders / materials move (dry-run + read-back) and lesson dump (full read-only lesson backup — used to take rollback dumps before every rebuild); the test suite grew to 85 passing tests (5 E2E skipped).
  • Reworked the cover art for all five books: mascot art re-cut and scaled for balanced spacing (~109px of air per side, ~110px below; everything else pixel-identical — diff-proven); all five covers re-uploaded and verified by fresh ImageId + CDN hash match.
  • Designed a new bundle ad creative — all five books in one 4:3 sheet — with every number generated from the transfer data (5 books · 73 modules · 187 lessons · "570+" exercises) and in-script QA: DOM counts vs data, cover-image load checks, OCR readback of every headline — all green, zero overflow.
  • Wrote the day's lessons back into the skills: all five source answer layouts and the radio→Test conversion rules into the transfer skill, the measured cover grid + merged-option pitfalls into the materials-CLI skill, and the bundle-sheet anatomy + QA recipe into the ads skill.

2026-09-18

  • Built "Why Bond Yields Are a Key Economic Barometer" (WSJ, 5:12) as a standalone B2 lesson through the Edvibe CLI harness: 5 stages, 27 exercises, every answer key and teacher note hidden from students.
  • Authored the whole lesson from the transcript alone: a lesson driver carries the full content plus a --check mode, so the lesson is reproducible from code.
  • Exact-listening gate: all 7 typed-gap sentences verified word-for-word against the transcript by the driver's chunk-wise checker (normalizer absorbs caption quirks such as "longterm" vs "long term").
  • Stages: warm-up (cover + lead-ins), vocabulary (10-pair matching, drag-to-gap sentences, pronunciation notes), watching (gist questions, 8-question auto-checked test, four timecoded segments with suggested answers), speaking (discussion + a 1–2 min voice task with a model answer), extra (dropdown definitions, word-form gaps, a 150-word reflection, a 90-second retell).
  • Traced a non-rendering lesson cover to the thumbnail host — the canonical YouTube host mounts in ~3 s where the alternative never appears in the editor — and recorded the pitfall plus a sixth fully verified build instance in the materials CLI skill.
  • Verified before sign-off: full API read-back (structure, hidden flags, ticks, gaps, description) and a live render check in the lesson editor (sections in order, interactive dropdowns, cover visible).

2026-09-17

  • Completed the A1 grammar course book on Edvibe: 36 lessons across 12 modules, 39 generated grammar charts, numbered lessons with searchable descriptions, every answer key hidden, zero references to the source material.
  • Built and shipped four more course books in one batch (A2, B1, B1+, B2): 151 lessons, 61 modules, 221 in-lesson images, 469 hidden answer keys, with a per-level verification report checking every lesson for structure, hidden keys and source mentions.
  • Extended the Edvibe CLI harness with a book command group: dump sections and lessons, set covers, generate and batch-apply section and lesson icons (48 files in one command), and cut character art with automatic hole cleanup. Test suite now at 55 passing tests.
  • Cleaned up the platform library: reverse-engineered Edvibe's undocumented book-move RPC from the frontend bundles and archived 7 leftover test books into a folder (nothing deleted, fully reversible).
  • Branded all five books with one system: a pixel-measured cover grid (gradient, divider bar, level label, composited character art), per-module gradient and emoji icons, and the Module N section structure, with the full look verified in the platform UI.
  • Designed the ad system for the whole series: one 4:3 sell sheet per level, every number computed from the transfer data, Playwright 2x renders, and QA with no human eyes: OCR readback, glyph-IoU reference checks and alpha-mask geometry (B2: 33/33 lesson numbers OCR-clean, title match 0.93 IoU, zero clipping). Locked the workflow into a reusable skill: approved anatomy, brand tokens, generator and QA scripts.
  • Built a B1+ lesson from a JetBrains Academy video and transferred it live into Edvibe: 5 stages and 34 blocks (warm-up, vocabulary, video with 6 timestamped answer-key segments, speaking with voice tasks, extra practice), all answer keys hidden; verified with API read-back and a headless render check.
  • Added a True/False comprehension block (12 statements, 6 true / 6 false, from 4:16 to the end) for the second half of a video lesson: dry run first, then created and attached to the live homework, verified with an API read-back and a rendered page check.
  • Updated the transfer skills: the batch pipeline skill moved to v3.0 (manifests, parallel import workers, OCR chart QA, verify-all) and the CLI skill gained the full book branding playbook and the archiving method.

2026-09-15

  • Portfolio overhaul: audited all 10 public repos — gitleaks over full history (no credentials, current or historical), personal names redacted from 4 files (history rewrite queued for 3 repos), missing build files + Gradle wrappers added to englishprogression, vocabquiz and dailyenglish, download steps, dependency links and troubleshooting sections added to every plugin README, the missing LICENSE added to this repo, and all social-preview images refreshed in a Notion-dark style.
  • Added a screenshot gallery, pipeline-architecture diagram and copy-paste agent-install instructions to esl-automation-suite; cross-linked the four plugin READMEs and made every badge clickable.
  • Merged hermes-skills into esl-automation-suite: video-review summaries now install with the suite (one command, 3 skills, 6 pipelines); hermes-skills archived as a pointer so old links keep working.
  • Renamed the GitHub account to itsfedor and rebranded every repo, image and commit to Fedor Molodtsov: cross-links, GitHub Pages URLs, release links and git history all updated.
  • Built units 3–5 of the A2+ per-episode course through the CLI harness — 7 blocks per unit, verified live in the book.
  • Pushed per-agent install docs (hermes-agent / claude-code / codex) to esl-automation-suite; install path re-verified in clean HOME environments.
  • Built a B2 guide from a Fireship video into a 27-block Edvibe lesson (5 stages, answer keys hidden).
  • Attached the companion 6-exercise B2 homework to a live sheet with one command; verified on the platform (1.1–1.6).
  • Published the CLI harness as a public repo — itsfedor/cli-anything-edvibe: README with use cases and installation, trimmed protocol notes, tests.

2026-08-29

  • Finished the video pipeline end to end: Deepgram Nova-3 transcription with EN+RU detection verified live (raw-body upload workaround for the sandbox proxy), normalizer, transcript packer.
  • Edited the 16-minute homework review recording: silence removed, bilingual captions added, 720p render with verified segment timing.
  • Turned the same recording into a student-facing HTML homework summary (A2 student, Unit 3): 11 task sections, color-coded fixes, test-english practice tips, strengths box.
  • Published the first skill repo on GitHub (itsfedor/hermes-skills): harness-agnostic SKILL.md, README, MIT license, social preview, 11 topics; added the repo to the GitHub profile featured projects.
  • Installed video-use, the browser-use team's agent-native video editing toolkit (21.2k stars, MIT): uv sync plus 6 Python deps, registered as a Hermes skill so it auto-loads on any video edit request. Found transcription is hardcoded to ElevenLabs Scribe, so the pipeline needs an ElevenLabs key or an OpenAI whisper-1 fallback.
  • SEO pass over all 8 public repos: rewrote descriptions to the 2026 top-repo pattern (what it is, who it is for, stack), expanded topics from 6-9 to 9-13 per repo, linked the demo-casino homepage to its live GitHub Pages. Verified by reading the state back via the API.

2026-08-27

  • Built a clean-B1 teacher's guide from the TED-Ed Prohibition video (Rod Phillips): simpler vocabulary than the B1+ version (ban, smuggling, corruption), stronger everyday phrases (make off with, stock up, meet the demand), comprehension by timestamps, differentiation for weak and strong students.
  • Drafted homework for the clothes-quality video pair: a Past Simple vs Present Perfect block staged as Test-Teach-Test, true/false statements with video evidence, second video cut at 12:25 with the rest saved as the next lesson opener.

2026-08-26

  • Built a B1+ teacher's guide from "What AI Does to the Minds of Novice Coders" (JetBrains Academy, 7:29) for the same developer student: psychology-heavy vocabulary, comprehension in timestamped sections, verb-pattern grammar block taken from the script.
  • All quoted lines in the guide verified programmatically against the fetched transcript; AI-ism scan clean.

2026-08-25

  • Built a full B1+ lesson around "Therapy for the Vibe-Coded Brain" (Clara / JetBrains Academy, 10 min video) for a student who codes at a Russian FinTech, pitched on metacognition for developers.
  • Lesson shipped as an HTML teacher's guide with answer keys; all 25 quoted transcript lines verified verbatim against the source.
  • Drew a B2 IELTS-style line graph for the second student using an imaginary country (Velmora): matplotlib render from verified data, yearly shares sum to 100, exact labels, delivered as PNG.
  • Finished the HDR video color fix: final 202 MB corrected mp4 encoded (work started Aug 24, render completed today).

2026-08-21

  • Pushed the casino polish to itsfedor/demo-casino: Aviator-style Crash rebuild, Stake-style Dice controls, casino-standard audio and pacing for Plinko and Slots, sound ordering fix.
  • Pushed a docs follow-up: dropped 2 em-dashes from the demo-casino README. Verified local HEAD matches remote main, Pages redeployed.
  • Read all 31 Edvibe FAQ articles on exercise creation and built the edvibe-exercise-format skill: syntax cheat sheet plus rules for 26 exercise templates.
  • Generated 3 Edvibe exercises (vocab matching, mixed conditionals) from an Engoo article on the Meta trial.
  • Rewired the daily GitHub worklog cron into a two-phase approval flow: drafts go to the Telegram bot, nothing is pushed until approved.
  • Fired a test run of the approval flow end to end.

2026-08-20

  • GitHub portfolio overhaul: profile README with banner and featured projects
  • New public repos: ink-dictation (macOS AI dictation app), esl-automation-suite (teaching pipelines), worklog (this log)
  • READMEs and social previews added to all project repos
  • Secret scan (gitleaks) across all public repos — clean; embedded API keys removed from Ink before publishing
  • Built the Minecraft English Server repo (overview page + docs), later removed from GitHub: the 4 custom plugins now live in separate public repos (chat2earn, englishprogression, vocabquiz, dailyenglish)
  • Removed ink-dictation from GitHub (app not ready for public release; keys stay local)
  • Full secret audit of all repos: clean. Push protection blocked a Groq key before it left the machine; gitleaks CI added to content repos
  • Removed presentation, presentation-video, and a personal student-materials repo from GitHub. The C1 exercise pipeline is now the c1-visual-data-writing skill (cheat sheet, 3 chart tasks, image generation prompts, HTML template)
  • Banner images added to all 4 plugin repos; C1 exercise + chart samples moved into esl-automation-suite examples
  • Skill reworked: c1-visual-data-writing absorbed into test-english-adapt (any test-english.com exercise personalized for a student, with research on site formats and chart image generation)