# Engineering Log — Sales Trainer Program status table + dated entries. Append-only entries under `docs/engineering-log/`. ## What this is A corporate, multi-user **sales-training simulator**. Admins upload/describe a product → app analyzes it + generates 15 realistic customer personas (5 per intent tier A/B/C) with varied, partially product-aligned pains, negotiation levers, initiation modes (customer/seller), channels (Facebook/LINE), and latent-vs-revealable data. Trainees chat 1:1 (one-shot) to close a sale; customers resist/negotiate/refuse; a separate judge-LLM scores + coaches the result. Informed by MiroFish (CrowdSight engine) + the hermes-brain-and-tools CrowdSight plugin. ## Status table | Milestone | Status | Last verified | Evidence | Next action | |-----------|--------|---------------|----------|-------------| | M0 Scaffold + auth/roles | complete | 2026-08-07 | `test_m0.py` | — | | M1 Input & analyze (+pain-fit) | complete | 2026-08-07 | `test_e2e.py` | — | | M2 Persona groups + generation (15, wrong_text) | complete | 2026-08-07 | `test_e2e.py` | — | | M3 Report | complete | 2026-08-07 | `test_e2e.py` | — | | M4 Chat simulator (init modes, one-shot, judge, debrief) | complete | 2026-08-07 | `test_e2e.py` | — | | M5 Trainee loop (board, weak-areas, gen-persona) | complete | 2026-08-07 | `test_e2e.py` | — | | M6 Frontend (Vue SPA) + static serving fix | complete | 2026-08-07 | build + live HTTP 200 | — | | M7 Docker/deploy/docs | complete | 2026-08-07 | Dockerfile/compose/README | live-key E2E | ## Guardrails - No self-registration; admin provisions users. (Verified: register => 404.) - One persona = one chat per user (one-shot). Enforced in SessionStore + chat start. - Latent persona fields never leak to trainees pre-result. - LLM credentials live in `.env` only; never logged. ## Entry index - `2026-08-07-build-out.md` — M0–M7 build-out, decisions, verification, current state. - `2026-08-07-security-ux.md` — security hardening (path traversal, IDOR, XSS) + UX/UI polish. - `2026-08-07-auth-gitea.md` — username login + first-time admin setup + Gitea push. - `2026-08-07-docker-final.md` — Docker build fix: ship prebuilt frontend/dist, no npm in image (resolves repeated `vite: not found`). - `2026-08-07-login-after-setup.md` — can't-login-after-setup = deployment data non-persistence, not login logic (verified). - `2026-08-07-login-email-fix.md` — REAL fix: verify() resolves username OR email; "wrong password" after logout→login was email-login not resolving a user. - `2026-08-07-ui-tablayout.md` — 3-tab UI per spec: admin dashboard + date filter, personal dashboard, training w/ difficulty, settings profile. - `2026-08-09-idea-flow-qa-deploy.md` — idea-flow UX cleanups, 2-scenario model + recontact-as-trait, live QA on EasyPanel + auto-deploy, per-turn LLM judge for win/loss, persona variant, 15-persona auto-gen (this session).