Whiteboard Football System — Accepted Release
This build adds the player learning loop on top of published, player-visible football knowledge: a local roster with CSV import, weekly install role assignments, an immutable player-install package derived from an immutable published Weekly Install Version, a mobile-first Local Player Preview (Today, Install, Review, Me), deterministic knowledge checks with no generative AI, immutable attempts, targeted revision invalidation that changes only the affected learning items, and an explainable coach readiness dashboard with no leaderboards. The Local Player Preview is a development view on this device, not a secure account: there are no passwords, invitations, notifications, or cloud sync. This page reports the actual state of the build, verified test results only, and honest limitations.
Accepted release
main…………………https://whiteboard.coachmain is the accepted source of truth and is what production serves. The football-product stack was consolidated into main by fast-forward: all history preserved, no squash, no rebase, no force-push.
Historical baselines
defensive-looks-alpha-1406527bc7f46a4feat/staff-permissions-and-approvals @ 66a9bd8feat/program-entry-library-formation-import @ 78c17a5feat/player-install-knowledge-checks-readiness @ f666a978814662Safety tags pre-football-system-consolidation-main-2026-07 (old accepted main) and pre-football-system-consolidation-production-2026-07 (prior production source) are pushed and preserved. Every feature branch is retained; none was deleted.
Serving release source
……………https://whiteboard.coachThe identity in the header View As control is a development actor preview, local to this device; permission decisions follow it. The active test workspace (A North Valley Demo, B Blank Varsity, C Blank Full Program, D Import Sandbox) is a local storage namespace on this device, never an account.
Implemented in this build
- Immediate field-first New Play: the editor opens instantly on the program default formation
- Transient unsaved workspace: no play exists in the repository until Save Play
- In-editor formation picker with preview-first replacement and role-mapping preservation
- Modified formation detection with Save Formation As, Revert to Saved, Keep for This Play
- Run, Pass, and Other play types (RPO, Play Action, Screen, Special, Custom); type never deletes work
- Structured concepts plus custom routes, blocks, and tracks as player-owned paths
- Blocking and protection workflow; pass concepts never add protection silently
- Desktop 6 pixel threshold movement: one committed drag is one undo step and one write
- Explicit touch movement (Move mode); sheet scrolling never moves a player
- Semantic flip operations: Flip Formation, Flip Concept, Flip Both, with previews and honest refusals
- Scoped defensive answers: Concept Answer, This Play Only, This Week
- Scheme Pack 1 preserved: all 12 schemes, role mapping, confirm-ambiguous, refuse-missing
Defensive Call Designer
- Field-first New Call: eleven defenders from the program's base personnel, transient until Save Call, own recovery slot
- Defensive personnel packages (Base, Nickel, Dime, Goal Line) with semantic roles; switching previews preserved, replaced, and added roles and confirms before touching work
- Independent call layers (front, coverage, pressure, stunts and games): applying one never silently chooses or removes another; cross-layer conflicts surface as decisions
- Fronts MOVE defenders (technique intent is authoritative); coverages drop; pressures declare real coverage vacancies that stay visible until resolved
- Unit-specific defender inspectors (line, linebackers, secondary) with structured rush, blitz, drop, man, fit, and leverage actions
- Run fits by the call's declared policy, with no universal one-gap validator; exclusive roles (force, alley, cutback, quarterback) flag duplicates
- Offensive look overlay: session-only, never mutates the base call; adjustments save as Call Check, This Week, or Program Check with honest scope availability
- Semantic flip: entire call or one layer; strength-relative language never changes, sided words swap
- Defense library views: All Calls, By Front, By Coverage, By Pressure, By Personnel from each call's own layers
- Defense Pack 1: Over, Under, Odd, Tite, Bear fronts; Cover 0/1/2/3, Quarters, Cover 6; Fire Zone field and boundary, Sam Edge, Mike A-Gap, Nickel Edge; Tex, Ext, Pinch, Slant
- Call naming assistance from the layered structure (suggestion only, never forced)
Concept Population
- Every offensive and defensive catalog entry is now a true scheme or an honest Custom placeholder: 51 offensive and 32 defensive concepts fully demonstrated
- Receivers: Drive, Levels, Snag, Spacing, Mills join the demonstrated pass game with real route structure and quarterback progressions
- Protections: Quick, Man/BOB, Seven-Man Max, Play-Action Turnback, Sprint, and Screen, with program-policy declarations labeled as such
- Quarterback: Drop, Play Action, Boot, Sprint Out, Option Read, and QB Mesh mechanics; Progression, Ball Handling, and Launch Point as structured rule sets
- Backfield and tight end: Run Track, Backfield Screen, Pitch Phase, Fake, Lead, Insert, Arc Release, Y Lead, and the completed Sift
- Run schemes: Trap, Draw, Speed Option, and Quarterback Run with full-line surfaces
- Defense: 2-Man and Tampa 2 coverages; 4-2-5, 3-3-5 Stack, and Goal Line fronts that move defenders; Cross Dog, Corner Cat, and Safety Pressure with declared vacancies; Box Fit and Trap Wall run fits
- Duplicate catalog stubs are archived tombstones with aliases carried, so search still finds every name
- Every populated variant was applied through the real store during verification: structured paths drawn, zero validation errors
Play Teaching and Program Memory
- How This Play Works, position-specific teaching, Install Sheet, Position View, and History on every saved play and call
- Play Design free-form box, player action popover, inline coaching fields, RB backfield tracks, named reusable motions, direct token-drag (coach feedback board items)
Defensive Looks, Keys, and Conditional Assignments
- Air, Nickel, 4-3, 3-4, Bear, and Custom defensive looks; Air is the absence of a defense, never a hidden eleven
- Front and shell kept separate: shell changes move only the shell roles; strength flips independently; personnel, front, alignments, box structure, apex and overhang roles are explicit facts
- Semantic key references (defender roles, offensive numbers, front, shell, strength, backfield flow) that never bind to the nearest player
- Structured recognition conditions: alignment and leverage evaluate from the declared look; post-snap movement requires a manual recognition preview or declared state
- Conditional assignment rules: key, recognition, position-aware answer, scope, and why, in football language with structure underneath
- Scopes: Base Rule, This Play, Play Family, Versus This Look, This Week (real weeks only), Program Knowledge (preserved, never silently active)
- Deterministic rule resolution with specificity layering, honest unmatched reasons, conflict flagging, and never-active incomplete or ambiguous rules
- Active-rule display and field preview: the base assignment is preserved; route conversions preview as ghosts and are never silently committed
- Offense and defense support, Install Sheet and Position View integration, History through the program-memory event system, approved-version immutability
Staff Permissions and Approval Workflows (this build)
- Explicit staff, role, and policy models with a pure precedence engine: staff override, then position-group default, role override, side default, team default, program default, then the system role template; the safer decision wins inside a level
- Staff & Permissions area: trust-level cards (Trusted Editor, Review Required, Contributor, View Only) in plain coaching language, with the resolved policy source visible on every card, no permission matrix
- Football-aware change classification: a save is diffed into named changes (RT assignment, keys, alignment, teaching details, coverage family) with position-group attribution; key-order noise is never a change
- Save decisions: direct changes become a new immutable approved version; review changes become one proposal; mixed sets split with the proposal diff showing exactly the remainder; denied changes stay in the draft, never silently discarded
- Approvals inbox routed by authority (Head Coach all, coordinators their side, position coaches their own submissions) with football-language cards, no internal ids
- Review screen: side-by-side diagrams, before and after per change, rationale, permission explanation, approve all, approve selected (deterministic replay of exactly the accepted changes), request changes, reject, withdraw, append-only review history
- Stale proposal detection blocks approval until a conflict-checked rebase; newer approved work always survives
- Approval and publication stay separate: published weekly install versions never change on approval; requests carry republish-needed metadata
- Position-group boundaries: position authority never silently becomes whole-play authority; cross-scope effects force review
- Every decision lands in play History as a program-memory event with actor, role, and version lineage
Program Entry, Library, Formation Teaching, Import, Hot Answers, Relationships (this build)
- Four isolated local test workspaces (North Valley Demo, Blank Varsity, Blank Full Program, Import Sandbox) with per-workspace reset and byte-verified isolation
- Empty-program onboarding: Create a Play, Create a Formation, Import a Playbook, Browse the Play Library; nothing is auto-added
- Whiteboard Play Library: read-only system templates with full teaching depth; Add to Playbook creates a program-owned draft with provenance, and later library changes never touch the copy
- Formation Teaching: versioned FormationVersions with per-position alignment rules, line status, intended eligibility, landmarks, flip behavior; approved versions immutable; old plays and published installs never move; affected plays surfaced, updates explicit per play
- Formation learning-source resolver (deterministic, version-pinned, visibility-filtered) for the future player milestone
- Import Center: Hudl-style vector PDF adapter (exported files only, no credentials, no official integration), formation-first import, defensive-look deduplication, mirrored right/left family detection, package calibration, honest unresolved states, drafts-only completion with full provenance; raw PDFs are never stored
- Semantic hot answers on the existing conditional-rule model: key plus trigger plus now-route, flame icon plus HOT label plus pattern (never color alone), Base/Hot/Both preview, base assignment never changed
- Explicit play relationships with required football rationale, typed sections, and archived-target honesty
- External teaching-video references: provider-classified links with teaching context; privacy-enhanced YouTube embeds, link cards elsewhere; no hosting, no bytes, no autoplay
- Homepage play-depth and Program Memory tiles built as live HTML/CSS from demonstration fixtures
- Every new program change classifies through the existing permission engine and the one approvals inbox
- Conventional diagram notation: offensive circles, a square semantic center, vector X defenders, one shared resolver across browser, print, and Visio; presentation only, records untouched
Player Install, Knowledge Checks, and Readiness (this build)
- Local roster with explicit ProgramPlayer, PlayerTeamMembership, and PlayerPositionAssignment models; add, edit, archive that never deletes history, restore, team levels, position groups, semantic roles, two-way players, filters, and search, all permission-gated
- Preview-first local CSV roster import: per-row validation, duplicate-name warnings, stable ids never derived from names, no email required, raw CSV never stored, one meaningful import event; no claimed integration with any roster provider
- Weekly install role assignments mapping players to the football roles they perform in a published install, with per-play overrides and backup or emergency status
- Immutable PlayerInstallPackage derived from an immutable published Weekly Install Version; a content change supersedes rather than overwrites, and a restored revision carries verification forward
- One deterministic learning engine that composes the existing formation, conditional-rule, relationship, and media resolvers; player-visible only, position-specific, deduplicated across multiple roles, with stable learning-item ids and content-hash revisions
- Mobile-first Local Player Preview with a bottom tab bar: Today derives the week summary, Install walks the learning sequence, Review shows what changed with reasons, Me states plainly this is a local preview and not an account
- Deterministic knowledge checks with distractors drawn only from real sibling content, no generative AI; immutable attempts; explicit completion policy where verified requires every required check correct at the current revision
- Coach knowledge-check preview: include, exclude, edit wording, or author a check; football answers stay owned by the published source
- Targeted revision invalidation: only learning items whose semantic content moved lose current status; a staff-note edit is a no-op; every change is explained with before and after
- Explainable coach readiness dashboard with filters for side, group, status, play, formation, knowledge type, and player; per-status reasons; no leaderboards or public rankings; not assessed shown distinctly from not ready; position coaches scoped to their group
- Homepage adds Know who knows it with a live Today and readiness composition from the North Valley demonstration program
Test status
Only results from runs that actually completed are shown. Anything not yet run says pending.
Known limitations
- Semantic role mapping is heuristic at exotic alignment edges; it confirms or refuses, never guesses
- The program protection-policy editor is not built; Half Slide ships a labeled representative default
- The Assistant is not active (reserved location only)
- Authentication is not built; the free five-play account tier is not built
- The public demo save funnel is not built
- AI gameplanning recommendations are not built (schemeProfile metadata only)
- Practice workflow and Game Day call workflow are not part of this release
- Zone responsibilities render as structured drop paths to landmarks; area shading is a later upgrade
- Program-dependent match rules (Quarters MEG/MOD, fire-zone replacements) stay declared or manual, and the labels say which
- The Special Teams designer is not part of this release
- Special-teams catalog entries stay catalog-only until an ST designer exists
- Encoded schemes are the common contemporary teaching (verified with system variance); program terminology, leverage, and option rules remain configurable
- Staff permissions are program-local development identities: no real authentication, no server-side enforcement, no cloud collaboration, no email invitations. They organize the workflow; they do not protect against a hostile user
- Player identities are local development identities (Local Player Preview) on this device only: no secure accounts, no passwords, no invitations by email or text, no messaging or notifications, no cross-device progress, and no real production roster privacy boundary
- Knowledge checks are deterministic from structured football content; there are no generative-AI questions and no automated free-text grading
- No practice planner, drill library, film grading, hosted video, billing, or plan enforcement in this build
- Raw source PDFs are not persisted; reselect the file after a reload to see source previews
- No official Hudl API; imports read only files a coach exported and selected
- No OCR or AI extraction for scanned playbooks (manual crop path only)
- Imported content always requires coach review; nothing imports approved
- No video hosting; external links only, and social embeds fall back to link cards
- Player identities are local development identities only; there is no secure authentication, no server-side authorization, and no production player privacy boundary
- No cloud persistence, no cross-device synchronization, no invitations, and no notifications
- No AI-generated rules, film ingestion, or automatic opponent recognition
- Post-snap movement conditions require manual declaration or a recognition preview
- No automated Program Memory resurfacing
- No authentication, billing, or cloud persistence
- Visio export has not been manually verified in a real Visio installation
Production and rollback
…This page ships inside each deploy, so the id above is the most recent build that passed the live smoke run; the deploy currently serving it is that build or a docs-only successor recorded in the results document.
……