Build ledger

1,259 commits · +233,204 −24,750 lines across 34 code repos since 2026-06-18.

Re-derived from git rev-list --count / git log --shortstat on every repo directly, 2026-09-13 — the prior total (18 repos) was stale and undercounted real repo scope; this pass enumerated every actual git repo under the working directory rather than trusting the last-known list. Two repos are deliberately excluded from these totals: evidence (legal/dossier material, not code — except its jamage/ ingest-tool subfolder, which is real reusable code and is counted) and a nested third-party clone (gpt-ai-assistant, studied for reference — its commits belong to its original author, not this project).

The four categories below (DSI Website/SpeedStack/SabaLeit/RR-TT Portfolio) are a partial breakdown, not a full accounting of the grand total above — real new repos this pass (teacherpro-enterprise, teacherpro-teams, arcadepro-discord's Fly.io work, dsg-agent-ops, and others) aren't yet folded into a category here. Flagged honestly rather than force-fit.

DSI Website589 commits · +28,214 −11,598
SpeedStack362 commits · +29,569 −4,141

Re-derived directly from git rev-list --count / git log --since --until --shortstat per calendar date on each repo, 2026-09-10 — replaces the 2026-09-08 version of this block, which had correct per-repo totals but no dates and (per direct comparison) undercounted every repo except the assets repos: real total is 362 commits, not 98. A previously-listed "KB asset repos" line (12 commits, +718/−254) and the old "13 commits — speedstack-attractions pedestal" line are both dropped — neither matches any repo that exists on this machine to re-verify against; speedstack-attractions is now the Discord port (arcadepro-discord), 6 commits, first commit 2026-09-08.

SabaLeit120 commits · +72,792 −5,989
RR-TT Portfolio9 commits · +992 lines · 8 new repos
September 2026

HICE 2027 — accepted for three, not one

Hawaii International Conference on Education, January 7–10, Honolulu. Accepted for the research article, a standalone thoughtpiece, and the SabaLeit software itself — not a single submission stretched three ways, three separate acceptances. The full article and thoughtpiece text stay unpublished until after the actual presentation; what's real and dated right now is the acceptance itself, so that's what's going up first.

Discord pedestal live, Teams bot credentialed, dedicated asset data store, three TeacherPro editions stood up

RR-TT's syntax proved out across a fifth platform tonight: Microsoft Teams joins GroupMe (HVAC), LINE (Mechanical), Discord (Attractions), and Slack (FEC). The Discord bot was smoke-tested end to end and given its own dedicated asset data repo instead of borrowing GroupMe's — a real GitHub token permissions gap that had been silently breaking every asset lookup was found and fixed along the way. The Teams bot (teacherpro-teams) now runs against real Azure Bot Service credentials from a fresh Microsoft 365 developer tenant; talking to it live through Teams itself still needs a tunnel and is not yet verified end-to-end. TeacherPro/SabaLeit split into three real editions — O'Brien Standalone (ported to its own S-drive share), District-Wide (Dolan grant deliverable, scaffolded), and Enterprise (WCSD selector stripped, no real student data) — and a canvas-emoji rendering bug was found and fixed in the O'Brien board (seasonal lantern/blossom particles were rendering as tofu boxes from a missing emoji font fallback). HICE 2027 proposal — covering both the research and the software — submitted and accepted.

Commits

arcadepro-discord f0c4a39, arcadepro-groupme a55c4e7, dsi-website d100d16, teacherpro-hud 70fcc8b

discord teams github-auth teacherpro hice

SabaLeit: Class Ability (Z-Score), MOE Taiwan standards, QR paper turn-ins, Class Exchange Board, corner-stamped worksheets

Five real features landed in one sitting. Class Ability ranks students by z-score against the room's own mean/stdev, not a fixed cutoff — replaced a flat +8 curve bug found in the source spreadsheet's own formulas. MOE Taiwan (Taichung FET) standards are now a second framework in the Pacing Calendar alongside NVACS/WCSD, codes transcribed verbatim from the source workbooks. QR Activities give every student a persistent, stable ID code (print once, reuse all year) for paper worksheets — no student devices or accounts — with a Scan Batch flow that logs turn-ins separately from the numeric gradebook so a scored average never gets silently corrupted by an unscored scan. The Class Exchange Board connects a teacher's own Canvas and Google Classroom accounts — real OAuth on both sides, no student data, no school-to-school link, usable for any two rooms. And printing a worksheet from Today's Focus now stamps each student's name/period/date/QR into the corner automatically, once per roster copy — no more writing names by hand.

Commits

5398ee1 → 1b5a7d7 — teacherpro-hud, full build ledger in BUILD_LEDGER.md

gradebook standards qr oauth printing

Volleyball Engine — deterministic FSM, tested, live repo

Product 1 of the RR-TT portfolio: 6-player court rotation as a cyclic permutation, slot-lock and libero-boundary invariants, substitution quota (12 standard/15 NCAA), and a hash-chained rally log using the same SHA-256 scheme as the production SpeedStack FSM. 15/15 tests passing, including a test that tampers a token and confirms the chain catches it. A rough courtside mockup verifies the real math live in a browser — rotation, invariant rejection, and the ledger all confirmed working, not just asserted.

Commits

a241691 → 224cedd — vbengine, core engine + mockup

volleyball fsm tested

Seven more RR-TT products get their own repos

Specs frequently end up making it into the WIP bin, so they get a dated repo home before that happens rather than staying buried as a subsection of one shared portfolio doc. Real spec content extracted verbatim from the RR-TT product portfolio — RAPM/MMR stats engine, Flipbook Engine, Rail Attraction Safety Controller, Parking Lot Telemetry, Restroom Telemetry (both airport/ADA-wayfinding-motivated), Skylon, and TITO for small-venue gaming. All pinned, none built yet.

Repos

vb-mmr, familyflip, rail-attraction, plot-attendant, rr-attendant, skylon-attendant, rrtt-tito

rr-tt spec
August 2026

SabaLeit rebrand — Products section, real UI deck slide, radar tuning

TeacherPro renamed to SabaLeit (Sabaki — Japanese for redirecting flow — plus Leit, Old Norse for "the path"). Added a Products section to the nav (previously just said "SpeedStack," which stopped being accurate the moment there were two products), with a real etymology writeup — kanji, runes, translations, pronunciation — in the card body. Removed a stale district name from the status line and dropped an unearned "active deployment" claim in favor of "in active development." Fixed a real F-key bug on the hero radar: non-critical presses were nudging the speed slider by 1 out of a −100..100 range (imperceptible) instead of matching the step-arrow buttons' own 20-unit increment, despite the code's own comment claiming they matched. Bumped the orbital-band satellite triangle sizes back up (+2 across all 8 bands) after an earlier lag fix over-corrected on size instead of spawn count, which made their collision spin unreadable.

Commits

abe98df → cd012fc — 8 commits, Products section + SabaLeit copy + radar fixes

rebrand nav bugfix radar

SabaLeit language-switch dissolve — a real portal/vortex spin

The classroom board's language-switch transition went through five real iterations before landing: a full-screen particle wipe (too jarring for a kiosk), an opacity dip (read as a blackout), a scattered dust burst (unrelated to the actual content), a View Transitions crossfade (not a real dissolve), and a tile-spiral pixel dissolve (too subtle to read as a swirl). Landed on the real fix: the browser's View Transitions API captures actual before/after board snapshots, which get spun and shrunk into center (old) and spun and grown back out with a punchy overshoot landing (new) — a real portal effect using real rendered pixels, not an approximation. Reverses spin direction for Arabic to match the board's existing RTL convention. Found and fixed a real reliability bug along the way: rapid re-taps on a touch panel could fire overlapping transitions and throw InvalidStateError — fixed with a debounce that ignores taps mid-transition rather than a fallback path that also mutated the DOM.

Commits (teacherpro-hud)

c723ba5 → d6316b1 — 5 commits, propagated across index.html/resource-math.html/resource-ela.html

animation view-transitions i18n bugfix
July 2026

Mobile polish sprint — collapsible system, heading normalization, alignment

Full mobile collapsible section system: all section-wraps collapse to tappable labels on portrait, chevron toggles open with 45ms haptic feedback. Fixed a DOMContentLoaded timing bug (event already past when script runs at bottom of body — converted to IIFE). Normalized all primary headings inside collapsibles to 1.4rem — SpeedStack name was clipping at 2.8rem, thesis headline at 1.9rem. Stripped orphaned border-top rules that appeared at the top of opened sections. Zeroed horizontal padding from reel columns, skill cards, and founder prose-panel so all content flushes with the section label. Removed the speedstack.app eyebrow link that was overlapping the heading. Fixed negative margin-left clipping the W in "Working with AI." Section label color moved off alert-red to soft gold.

Commits

c8ca2fc → 4904dfa — 18 commits, mobile CSS + JS

mobile collapsibles haptics typography alignment

Sprint #10 — nav harmony, poly edge clustering, WoW demo cards

Nav polygon field tuned: bounce-or-pop near text elements, dissolve at nav bottom border, cluster near logo and links, partial center exclusion zone. Poly canvas clipped strictly to nav boundary. Sprint #9 copy rewrite: founder and proof sections. WoW panel cards added to demo slideshow. Nav synced pixel-perfect across all pages — logo, tagline, links, blur composite.

Commits

bc3d1b8 → 0f281ae — 9 commits

nav polys copy demo cards nav sync

Sprint #7 final — radar arm live, Lanyard BPM sync, nebula + footer poly

Radar arm converted to JS-driven rotation with a live trail behind the arm line. Click reverses sweep direction and boosts speed; arm mini-me added to nav logo. Spotify PKCE replaced with Lanyard Discord presence for BPM sync — no OAuth redirect, no key exposure, no device conflict. Nebula page rebuilt. Footer poly field live on all pages. Nav blur pushed to 64px across all secondary pages. Nav synced across landing, updates, and media.

Commits

275760c → 988de19 — 14 commits

radar arm lanyard bpm sync nebula footer poly nav blur

Sprint #6–7 — radar heat system, satellite orbits, nav polys, /media/ + /arcade/

Radar palette overhauled: mango neutral, blue-purple cool, gold-orange-hot-pink forward heat. Single heat source drives arm, ring, satellites, and trail in sync — no divergence between display values. Satellite orbital system added: triangular shapes, barrel roll stunt on collision, gravitational pull from arm, heat-driven colors, orbital reversal matching arm direction. Nav polygon system rebuilt: cell membrane border pop, squeeze-through crossing effect, tumble on entry, cluster near logo and links. /media/ page launched with short and long-form video grid. /arcade/ page added — SpeedStack Radar arcade game. Sprint #7 begin: nebula canvas across all pages, media grid 2×3 layout, credential card polish, receipt toggle JS.

Commits

b78585d → 4f33b4e — 62 commits

radar heat satellites nav polys media page arcade nebula

Radar HUD tuning — polygon density, halo speed, F-key behavior

Polygon idle density reduced to 8 at neutral speed, ramping to 40 at full — was always dense regardless of state. Halo pop speed doubled (baseSpeed 220 → 420). Active HUD event pulses sped up (0.24 → 0.55 expansion rate). Inward halo collapse flash removed — was leaving a pinprick artifact at center. F-key now resets to base speed in the current arm direction instead of snapping to neutral.

Commits

a93224b → aee4cba — 5 commits

radar halo poly density f-key

Marquee jitter fix — GPU compositing, remove layout transition

Fixed slight jitter in the song marquee. Added backface-visibility: hidden and translateZ(0) to the marquee track to force a true GPU compositor layer, eliminating sub-pixel snapping at the seamless-loop reset point. Removed letter-spacing from .speed-readout's CSS transition — layout-triggering transitions on the clip container can disturb the marquee's position mid-scroll.

Commit

dc92ab3 — 2 insertions, 2 deletions

marquee radar ui performance

Sprint #4 — halo fix, layout, card transparency, comet, nav polish

Halo color now baked at trigger time — board-clear slider reset was overwriting SWEEP_SPD_TARGET before first draw frame, making every halo appear gold regardless of direction. Proof-demo card permanently deleted. Reel column reordered: heading → video → provenance → receipt → collapsible notes. Notes toggle opens a 2-col grid (slides 1/8/9 left, 20/40/50 right). Card and panel backgrounds dropped to 0.18–0.22 opacity so nebula bleeds through. Comet redesigned: holds bright through 40% of lifetime, sharp falloff, tight radial head glow. Nav tagline: 700 weight, 0 letter-spacing, gap tightened. Eyebrow URL restored to red. Founder quote bar fixed to proper bronze. Badge order locked: 20+/10+ top, MS EDU/3YRS mid, USPTO/OSHA bottom.

Commit

3c7b7b9 — 474 insertions, 188 deletions

halo system radar canvas card transparency notes toggle comet nav tagline layout

Sprint #3 — radar arm reversal, health badge, slider redesign

Real reverse re-added to arm sweep and polygon flow. Slider redesigned: center = 1.0× base, ±2.5× at extremes, forward red, reverse blue. Arm reversal smoothed with near-zero damping zone and continuous trail dir interpolation. Health badge reordered (breaches above status). Critical alert replaces speed readout row only. PRESS F threshold adjusted. Ctrl buttons z-index fix (were invisible under canvas). Letter-tumble trigger anchored to real arm angle.

Commit

6adaff0 / 3b3fc42

arm reversal slider health badge letter-tumble ctrl buttons

DSI landing page — docskillzintegrations.com

Single-file HTML/CSS/JS landing page built from scratch. Canvas nebula + radar animations. PPTT pitch reel embedded with autoplay and click-to-fullscreen. Full founder timeline, thesis section, SpeedStack product demo, and contact routing. No framework, no build step.

Stack

Vanilla HTML · CSS custom properties · Canvas rAF · PowerShell HttpListener · Single file, zero dependencies

index.html serve.ps1 nebula canvas radar canvas pitch reel

Brand identity deployed — LinkedIn + DSI logo v6

dsi_logo_v6 and banner_dsi_rtj pushed live on LinkedIn. Full brand token system locked: ground, gold, red, text hierarchy, Bodoni Moda display, Space Mono utility. Brand confirmed on DSI landing page.

dsi_logo_v6 banner_dsi_rtj LinkedIn

USPTO Provisional filed — #64/101,544

Provisional patent application filed covering the RR‑TT Protocol. Register-matched interaction and verification discipline in AI-augmented field operations. Graduate research in preparation.

Reference

USPTO Provisional #64/101,544 · Filed June 2026

SpeedStack — Platform Status

CLI — GroupMe · Slack · LINE

Command grammar, FSM state machine, typo tolerance, and KB layer are production-tested across HVAC, mechanical, and facilities verticals. Ticket lifecycle, audit trail, and duration logging confirmed in logs. Backend tooling active in the repo.

Confirmed in production

Ticket lifecycle · Audit trail · Duration logging · Three platforms live

GroupMe Slack LINE FSM typo tolerance KB layer

Discord integration

Fourth platform, live. Same command grammar, same state machine — Discord is now the native pipe alongside GroupMe, Slack, and LINE.

Discord platform 4

Deep Links — GUI layer, zero install

Invisible UI. No app to download, no workflow change. CLI commands exposed as deep links. User triggers from whatever surface they're already in. Zero adoption friction by design.

Deep Links zero install GUI
Infrastructure

docskillzintegrations.com — Vercel deploy

git init → GitHub → Vercel → DNS. Domain live. OG image (1200×630) to follow post-deploy.

Vercel DNS OG image

Email routing — joshua.thompson@ + agent aliases

joshua.thompson@docskillzintegrations.com → Outlook. info@docskillz → agent. support@speedstack.app → agent. DNS/MX configuration pending domain activation.

MX records Outlook agent routing