⚑ Red Team Report — Full Audit History
Every finding, fix, and feature. This log is permanent and public.
// Pass 1 — Input Validation Audit · March 2026
✓ RT-PASS1-FIX1 — FIXED: Range Inversion Guard
When aMin > aMax or bMin > bMax, rnd(min, max) receives a negative range. Fixed: explicit guard fires before any problem generates.
✓ RT-PASS1-FIX2 — FIXED: Linear Coefficient Floor (a < 2)
If laMin was set to 1, the generator produced equations like 1x + 5 = 8. Fixed: guard requires a ≥ 2.
✓ RT-PASS1-FIX3 — FIXED: Count = 0 Silent Empty Sheet
If the problem count was cleared or set to 0, the generator looped 0 times producing an empty sheet. Fixed: explicit guard exits with named error.
★ RT-PASS1-BADGE — ADDED: AION Certification Badge
AION certification badge added to footer. This product is certified under the AION Constitutional Stack.
// Pass 2 — Architecture & Visual Standards · March 2026
✓ RT-PASS2-FIX1 — FIXED: Red Team Log in Footer
Red team log moved to dedicated tab — first-class document, reachable in one click.
★ RT-PASS2-FEATURE1 — ADDED: Living Background System
Three-layer animated background: canvas math symbols + CSS mesh gradient + backdrop-filter glass. Theme-aware.
// Pass 3 — v1.3 Feature Audit · March 2026
✓ RT-PASS3-FIX1 — FIXED: Division b=0 Silent Override Resolved
Previously divisor=0 was silently overridden to 1. Fixed: explicit guard with named error.
★ RT-PASS3-FEATURE1 — ADDED: Integers / Negative Numbers Toggle
New toggle: "Allow Negative Numbers." Arithmetic operands may be negative. Division divisor always remains >0.
★ RT-PASS3-FEATURE2 — ADDED: Fractions (6 Sub-Types, GCD Simplification)
6 sub-types. Euclidean GCD reduces all answers to lowest terms. Guards: denominator clamp ≥1; subtraction ≥0.
★ RT-PASS3-FEATURE3 — ADDED: Percentages (3 Forms)
Three forms. Values chosen to guarantee whole-number answers.
★ RT-PASS3-FEATURE4 — ADDED: Order of Operations / PEMDAS
2–4 steps, random parentheses, whole-number results enforced (20 retries + fallback).
★ RT-PASS3-FEATURE5 — ADDED: Exponents (Basic)
Base 2–12, exponent 2–5 hard cap. HTML <sup> superscript in preview and PDF.
★ RT-PASS3-FEATURE6 — ADDED: Interleaved Practice Mode
Fisher-Yates shuffle, no-two-consecutive enforcement, research citation. ≥2 types required.
★ RT-PASS3-FEATURE7 — ADDED: How-To Tab
Complete teacher guide covering all features. Written for teachers, not engineers.
// Pass 4 — Enterprise Math & Logic Audit · March 2026
✓ RT-PASS4-FIX1 — FIXED: Unlike-Denominator Subtraction Wrong Swap
Critical math bug: swapped only numerators, not full fraction pairs. Fixed: swap full pairs [n1,d1,n2,d2]=[n2,d2,n1,d1].
✓ RT-PASS4-FIX2 — FIXED: PEMDAS ASCII Hyphen-Minus
Split into display array (Unicode −) and eval array (ASCII -). Consistent with all other generators.
✓ RT-PASS4-FIX3 — FIXED: Division with Negatives Dividend Not Formatted
fmtNum(a*b, allowNeg) now applied consistently to dividend.
✓ RT-PASS4-FIX4 — FIXED: Canvas Particle Density Frozen After Resize
Resize handler now rebuilds particle array at new density calculation.
✓ RT-PASS4-FIX5 — FIXED: Linear Equation Displays "ax + 0 = c"
Three-branch display: b=0, b>0, b<0. Clean output in all cases.
✓ RT-PASS4-FIX6 — FIXED: PEMDAS Fallback Used 2-Step Expression Regardless of Step Count
Fallback now builds expression matching configured step count.
Red Team Pass 4: March 2026 · 6 bugs fixed | Auditor: ALBEDO · Enterprise math audit
// Known Limitations — Open
⚠ LIMITATION-2 — OPEN: Custom Pattern eval() Security Surface
Custom pattern parser uses eval() with character whitelist. Acceptable for local/personal use. If hosted: replace with proper expression parser. LIMITATION-1 (division b=0) resolved in Pass 3.
Red Team Pass 1–4: March 2026 · Total: 10 bugs fixed · 9 features · 1 open limitation · Architect: Sheldon K. Salmon × ALBEDO · Stack: AION Constitutional Stack