ESPER
Symphony

Enter your credentials to view this document.

Invalid credentials. Try again.

Project Log · Living Document · Updated 24 May 2026

Symphony × DGE · A working journal: Where We Are
& How We Got Here

Top of this document is the latest state — current scope, mockups, decisions in force, open questions, next steps. Below the divider is a chronological diary of how we arrived here. Read top-to-bottom for the present; scroll past the divider for the trail of calls, documents, and pivots that produced it.

Where We Are

22 days to 15 Jun
Aligned on descope. The 22 May call confirmed the 8-module MVP as the only buildable path: SkillsTX-wrapped, Symphony-branded, RFP-compliant. Hosting and security sit with DGE per RFP. Monday: 1-hour prep call → SkillsTX call with Paul to walk through the raw deliverables. Everything else cascades from there.

The MVP — What We Ship on 15 June

Eight modules. Six adapted from the broader scope, two new. UX-led delivery with a focused integration effort on the engineering side (N1).

The scope, in four lines
  • SkillsTX as the assessment base. No replacement, no parallel engine.
  • Mobile-first website guiding 150 DGE employees through SkillsTX’s SFIA v9 assessment flow.
  • SkillsTX’s standard report rendered as a beautiful in-app screen — same data, dramatically better presentation.
  • Rudimentary workforce overview for executives — completion rates and headline gaps. No scenario modelling.
# Module Form for 15 June
07 Assessment Surface Native shell wrapping SkillsTX via magic-link (Option A, verified feasible). Symphony-branded intro, progress, return-to-app. SkillsTX’s own screens for the rating step.
10 Report Screen Native render of GET /v1/account/{key}/job/{jobType} — clean radial chart, plain-language gap statements, single “next step” CTA.
09 Manager Review Queue Native list driven by GET /v1/account/{key}/relationships/employee. Acknowledge or comment per direct report.
25 Identity & SSO Pilot-level. DGE SSO if available; magic-link invitations as fallback.
26 RBAC — Three Roles Employee · Manager · Executive. Exec view anonymised by aggregation.
28 i18n + RTL (UI only) ~100 UI strings translated to Arabic with RTL layout. SFIA content comes from SkillsTX natively.
N1 SkillsTX Integration Adapter (BFF) Containerised Node.js + Hono BFF holding the SkillsTX client_secret. ~5–7 endpoint wraps. Portable across hosting environments.
N2 Executive Overview Screen Workforce view: completion %, top-N gaps, segmentation. Nightly batch via 150 × job-match calls. ~30–50% chrome reusable from the Lovable repo.
Tech-stack constraints from DGE — for Brendan to confirm

Pulled verbatim from Product Vision & Build Blueprint.pdf (Non-Functional Requirements section) and the Digital Workforce Capability Assessment RFP v2-1.pdf. No specific framework, runtime or database is named in either document — the constraints are about where things run and what data goes where, not what they’re built with.

  • Hosting. Abu Dhabi instance runs inside DGE’s Digital Government (DG) environment — the “DGE Cloud” the RFP refers to. Hosting + security are DGE’s responsibility.
  • Data residency. All workforce data — identity, assessment responses, evidence, IDP records, learning activity — resides in-country in the UAE. No PII leaves the DG environment for any reason, including model inference.
  • AI calls. Route only to in-environment or approved-region endpoints. No prompts containing PII may leave the sovereign environment. AI use is logged and reviewable; model outputs that feed user-visible content are recorded with the input context that produced them.
  • Authentication. All engine APIs require a signed token from DGE’s identity provider carrying the caller’s roles. (No custom auth on our side — we delegate to whichever IdP DGE runs.)
  • RBAC. Enforced at the API layer, not just the UI. Defence in depth.
  • Encryption. At rest and in transit. Key management under buyer control where required.
  • Audit logging. Retained per local regulator guidance — minimum two years.
  • Compliance. UAE Federal Decree-Law No. 45 of 2021 on Personal Data Protection, plus Abu Dhabi government data-classification standards. ICV (In-Country Value) certificate encouraged per RFP.
  • Pen-test. Or equivalent, completed before the post-POC production build is signed off.

Implication for our stack choice: the BFF (N1) must be portable enough to deploy inside the DG environment — i.e. a containerised Node.js service Kyndryl can run on their Kubernetes, not a Cloudflare Worker. Cloudflare Pages is fine for the frontend during build phase, but the production artefact needs to be infra-agnostic. Open question for Brendan: anything missing from this list that you’ve heard from DGE or Kyndryl directly?

What June 15 Looks Like

Seven screens walking the full pilot flow — employee onboarding through to executive view. Symphony brand palette (dark green · antique gold · teal). Scroll horizontally.

Swipe through

7:42
symphony.dge.gov.ae
SymphonyAI
DGE GovDigital
Welcome to your
capability snapshot
A 20-minute, honest read of where you are and where you’re growing.
Sign in with DGE Use magic link instead
01Welcome · Sign-inDGE SSO or magic-link fallback.
7:43
symphony.dge.gov.ae
Good morning
Yasser.
We’ve already mapped your profile from DGE’s records — no forms to fill.
Your role
SVP, Head of AI
Technology Vertical · AI Engineering
47
skills
3
areas
~20
minutes
Start assessment Edit my role first
02Personal landingProfile pre-populated from HR. “We did the grunt work.”
7:51
symphony.dge.gov.ae · assessment
SECTION 1 OF 312 / 32
Professional Skills
Strategic Planning
How often do you set direction and influence strategic decisions in your domain?
Not yet — under guidance
Sometimes — emerging
Routinely — independent
Lead — sets direction
Save & continue Attach evidence (optional)
03Assessment in progressNative shell wrapping SkillsTX. Bilingual EN/AR via SkillsTX content API.
8:05
symphony.dge.gov.ae · results
Your role fitness
76 %
Strong fit · 4 areas to grow
Skills
3.9
Generics
3.6
Behaviours
4.0
Top gap to close
Leading at scale
Now 2.4 → target 4.0
See your plan Download report
04Role fitness resultNative render of SkillsTX’s job-match payload.
8:08
symphony.dge.gov.ae · plan
Your plan
3 priorities for the next 6 months
01 · Leading at scale
Executive Leadership in AI
Coursera · 6 weeks · ~4 hrs/week
02 · Stakeholder influence
Mentorship pairing
Match with COO this quarter
03 · Org design
Team Topologies
Reading · ~12 hours
Send to manager Add another action
05Development planTop gaps paired with concrete next steps.
9:14
symphony.dge.gov.ae · manager
Manager view
5 awaiting your review
Ahmed Hassan
82%
SVP Data · 3 gaps · evidence attached
Layla Mahmoud
71%
Director, ML Platform · 4 gaps
Yasser Shaaban
76%
SVP AI · 3 gaps · 1 evidence pending
Khalid Al-Rashid
68%
Director Cloud · 5 gaps
+ 1 more
06Manager viewDirect-reports queue. Per-employee acknowledge or comment.
9:31
symphony.dge.gov.ae · executive
Workforce at a glance
Technology Vertical
150 people · pilot cohort · updated daily
148
of 150 done
76%
avg fit
3.2
avg maturity
Top capability gaps
Leading at scale
2.1
Stakeholder Influence
2.4
Org design
2.5
AI governance
2.7
View full report Export CSV
07Executive overviewDark surface for command view. ~30–50% chrome reusable from Lovable.

What We've Decided So Far

The currently-in-force decisions. Anything not on this list is open or deferred. New decisions land here and become history once superseded.

Decision Date By
SkillsTX is the assessment base. No parallel engine, no rebuild. 22 May Brendan + Michi
MVP scope = 8 modules (07 · 09 · 10 · 25 · 26 · 28 · N1 · N2). 22 May Michi proposed, Brendan agreed
Hosting + security = DGE’s responsibility per RFP. Not in our scope. 22 May RFP (Brendan confirmed)
15 June = pilot launch, not full production licence. Formal SLA / pen-test / WCAG audit land within Q3. 22 May Both
Bilingual EN/AR from day one. Retrofitting RTL after build is too expensive. 19 May Brendan
50% weighting on behavioural competencies in the rubric (where weighting applies). 19 May Brendan
AI surfaces 12–16 deferred. Use SkillsTX’s built-in scoring, mapping, and recommendation logic in v1. 22 May Brendan
Learning provider integrations deferred (Coursera / Pluralsight / Udemy = links only in v1, no API integration). 22 May Brendan

Still to Resolve

Questions that block decisions or scope. Each has an owner and a target for when we should have the answer.

  1. Kyndryl engagement model for DGE. Kyndryl operates the Abu Dhabi AI Factory; clarifying how N1 deployment integrates with their environment. Awaiting clarification from Kyndryl side
  2. SkillsTX themed + mobile + return-to-app for embedded assessment. Live walk showed the public sign-up is technically responsive but desktop-grown. Needs explicit confirmation for the survey screens. Paul Collins (SkillsTX) · Monday call
  3. Partner-tier API access on the DGE tenant. If granted, “Option B” opens (full native, no embedded SkillsTX chrome). Paul Collins (SkillsTX) · Monday call
  4. Kyndryl tech-stack constraints in the DGE environment. Runtime allowed, deployment model, outbound HTTPS, OAuth callbacks, DB options. Affects our stack choice. Kyndryl side · tech-stack questions doc in flight
  5. Arabic translation source. Does DGE have a government-approved glossary for the ~100 UI strings, or do we commission? DGE · needed before build starts

Work In Progress

Linear tickets currently open or recently closed. The full Linear board is the source of truth.

BAC-2055
Espen Symphony prototype — i18n scaffold + RTL support (day-one bilingual EN/AR)
Todo
Foundation work before any of the new MVP screens land. Retrofitting RTL into built UI is materially more expensive. View in Linear →

What Happens Next

Concrete actions with owners. As work completes it moves into the diary.

Paul Collins — SkillsTX Call Prep

Questions in priority order for Monday’s call. P0 needs an answer on the call; P1–P3 can follow by email. Written 24 May 2026.

What we already know — share upfront to set a peer-level tone
  • Read the full public Swagger — 40 endpoints across Account, Jobs, Relationships, Evidence, Actions, Badges, SFTP.
  • Live walk of personal.skillstx.com (12 May): observed /api/contents/{lang}/… returning 13,504 Arabic SFIA items + RTL; /api/jobs/rolebasedsurveyjobs (40 named jobTypes); /api/companies/brandinglogo (tenant branding confirmed).
  • Auth-gated endpoints confirmed: /api/companies, /api/lors — a partner tier exists.
  • Magic-link (GET /v1/account/{key}/link) end-to-end verified.
  • Magic-link failure confirmed: expired link at /survey/question/{id} renders blank page, no error.

P0 — Scope-defining (need on the call)

  1. Partner / OEM tier access for the DGE tenant. The single most important question. Option B (full native) needs /api/contents/{lang}/…, /api/lors, and survey-submission paths on the DGE tenant. Option A (magic-link hybrid) is the fallback path. Decides Option A vs B — everything else follows
  2. Embedded assessment (Option A) — three confirmations. (a) Survey question screens mobile-responsive at 390 px? (b) Symphony brand colours + fonts applicable to question screens, not just logo? (c) Redirect / callback hook on assessment completion we can register? Determines whether Option A is viable for 15 June
  3. Assessment completion event. Webhook? Redirect we can intercept? Polling only — and if so, recommended interval + rate limit? Affects both options — determines dashboard refresh pattern

P1 — Build-blocking (email fine if not on the call)

  1. Job match response schema. GET /v1/account/{key}/job/{jobType} has no documented response body in the spec. Sample JSON for any account — we can’t design the Report screen without it. Blocking Report Screen (module 10)
  2. Arabic on the DGE tenant. Arabic content pack enabled on the DGE tenant specifically? Survey question UI RTL-correct (confirmed on sign-up, need confirmation for the question screens)? Core RFP requirement
  3. Data residency. Where is FUSION TX hosted? Is UAE in-country hosting available for the DGE deployment? Government entity + RFP sovereign-hosting requirement
  4. Onboarding Excel template. The spreadsheet HR currently fills in — exact fields and format, so we can design the Symphony online-form equivalent. First UX improvement after the assessment screens

P2 — Product clarity (shapes UX scope)

  1. Raw deliverable samples. Standard IDP / heatmap Word doc. Executive dashboard in its current state. Sample assessment question set for one role — how many questions, what does a single question look like? Needed to design native renders for Report + Executive screens
  2. Behavioural competency weighting. Brendan’s brief: 50% behavioural in the final score. Does SkillsTX natively support weighting composites (e.g. technical 50 / behavioural 50)? Or separate assessments with manual blending? Affects RBAC + scoring logic scope
  3. Requirements IQ — current state. Brendan mentioned you’ve shipped a “requirements IQ” AI agent (input → agent → JD). API-available, or UI-only for now? Relevant to N2 executive module and JD generator feature
  4. Magic-link failure UX. Can we register a redirect-to-login hook so that an expired link surfaces a friendly “tap here to resume” rather than a blank page? Confirmed live issue — UX polish

P3 — Scale (follow up separately)

  1. Rate limits. On POST /v1/account, GET /v1/accounts, and GET /v1/account/{key}/job/{jobType} for the 150-person pilot. Bulk-create alternative beyond SFTP for larger downstream rollouts?
Leave the call with
  • Option A or B decided. Everything else in scope depends on this.
  • Job match JSON sample — to design the Report screen.
  • Onboarding Excel template — to design the online-form replacement.
  • IDP + exec dashboard samples — to design native renders.
How we got here

Chronological Log

Every call, every document received, every pivot — in the order they happened. Read top-to-bottom to walk the project from kick-off through to today. Gold dots are events; red dots are pivots that changed the shape of the work.

28 Apr 2026 Voice Message

Programme kick-off

2-minute WhatsApp voice message announcing the programme. Initial framing: ESPER will run the assessment for 150 DGE professionals using SkillsTX as the backbone. Michi is asked to build the UX layer on top of the SkillsTX API. First mention of the Saudi AI taxonomy as a future play.

Project StartProgramme begins.
6 May 2026 Doc Received

RFP v2 received — Digital Workforce Capability Assessment

13-page DGE RFP. Scope: 150 employees, SFIA-aligned assessment in six phases (Framework → Execution → Analysis → Reporting → Presentation → Learning Pathways). Submission language: English or English+Arabic. Bilingual *delivery* is not a hard RFP requirement — that came later as a product call.

9 May 2026 Doc Submitted

ESPER’s technical methodology document finalised

323 KB PDF covering ESPER’s methodology, SFIA accreditation, team and approach. This is the document that anchors what was committed to DGE — the gravity field every later scope decision is pulled against.

12 May 2026 Discovery

SkillsTX feasibility investigation (Michi)

Walked the SkillsTX product live, pulled the public swagger spec, and observed an undocumented internal API. Four critical findings:

  • Public API (40 endpoints) is integration / admin — not the user-facing assessment surface.
  • An undocumented internal API exists. /api/contents/{lang} returns 13,504 fully-translated SFIA items in Arabic with inline RTL.
  • The magic-link endpoint /v1/account/{key}/link is a working escape hatch — drops a user straight into the SkillsTX self-assessment UI authenticated as themselves.
  • Role catalogue is fetchable: /api/jobs/rolebasedsurveyjobs returns 40 named jobTypes.

Two architectures identified: Option A (hybrid native shell + embedded SkillsTX rating screens) or Option B (full native via a partner-tier API conversation with Paul).

Material InsightArabic SFIA translation is NOT in our scope — SkillsTX already shipped it. The N1 adapter scope becomes concrete: ~5–7 endpoints to wrap.
19 May 2026 Pivot · Call

UX shaping call — DGE product principles set

Zoom working session. DGE framing: SFIA + SkillsTX, 150 pilot with a downstream growth path. Major UX correction: drop the onboarding questions, pre-populate from HR data. Behavioural skills should be 50% weighted. Two distinct views needed: individual (empowerment) and executive (heatmap, decisions). Missing pieces in our prototype identified: pre-populated profile, downloadable IDP, executive heat-map, L&D push intelligence.

Bilingual EN/AR from day oneProduct call — not an RFP requirement, but locked in. Triggered ticket BAC-2055 (i18n scaffold + RTL).
19 May 2026 Doc Received

New DGE Assessment Schedule with “Symphony Design” column

Updated 14-phase schedule. Project starts May 18, handover Jul 6. Introduces a new “Symphony Design” column with per-phase design notes from Brendan — includes bilingual EN/AR mentions in 6 places, references to “Symphony-branded JD template”, and explicit acknowledgment that “SkillsTX visualisation is poor — Brendan to create the org-wide view.”

20 May 2026 Discovery

Lovable design-system reference discovered

Found an existing Lovable.dev-generated React app on GitHub with 52 Symphony visualisation components, design-system tokens, and an executive dashboard chrome. Not a DGE deliverable, but the design palette (Symphony Green + Gold + Teal) and chart components are reusable as a starting point.

21 May 2026 Doc Received

Product Vision & Build Blueprint received

30-page ESPER internal working document. Frames Symphony as a workforce capability platform with the 15 June DGE production go-live as the anchor date. Engineering specifics include API contracts, 99.9% SLA, n≥5 suppression, pen-test schedule, RACI matrix.

21–22 May 2026 Build

42-module MVP decomposition written

Decomposed the Blueprint into 42 distinct modules across 8 categories: Data Foundation, User-Facing Surfaces, AI Surfaces, Backend Engines, Learning Integrations, Platform Foundation, Compliance, Content Production. Cluster picture: 9 product clusters, ~25 engineers + ~10 specialists for a credible 15 June production launch. Built the analytical case that the maximalist Blueprint is undeliverable in 25 days.

Proposed a minimalist 8-module MVP as the only buildable scope: 07 Assessment, 09 Manager Queue, 10 Report, 25 SSO, 26 RBAC, 28 i18n, plus two new modules (N1 Integration Adapter, N2 Executive Overview).

22 May 2026 Pivot · Confirmation

Build inputs confirmed

Confirmed the building blocks for the 15 June pilot: SkillsTX as the assessment engine, the Lovable prototype as the design starting point, no other prior Symphony codebase to inherit from.

ImplicationThe 8-module MVP becomes the working scope. The doc reframes from “here are options” to “here’s what we ship.”
22 May 2026 Build

Doc hardened — Pre-Flight Check, mockups, sticky TOC, ESPER branding fix

Codified the SkillsTX findings into a Pre-Flight Check section. Added 7 horizontally-scrollable mobile mockups in the Lovable design system showing the full pilot flow (Welcome → Personal landing → Assessment → Results → IDP → Manager view → Executive overview, dark). Added a sticky left TOC with IntersectionObserver-based active-section tracking. Deployed to Cloudflare Pages at symphony-mvp.pages.dev. Discovered the company is ESPER (not Espen, which was a typo propagated through Michi’s local files) — auth gate updated with the official ESPER mark from esper.global.

22 May 2026 Pivot · Call

Zoom call — descope agreed

Walked the 42-module decomposition end-to-end. Within 25 minutes the descope to the 8-module MVP was aligned. Summary in plain language: MVP Abu Dhabi, RFP-driven, security, Arabic, assessment, full, and SkillsTX-anchored.

Key new information surfaced:

  • Hosting + security = DGE’s responsibility per RFP — drops several modules from our concerns.
  • Kyndryl on Abu Dhabi AI Factory — Kyndryl operates the environment N1 will deploy into.
  • Monday plan: 1-hour prep call → SkillsTX call with Paul, walking through raw deliverables (onboarding Excel, assessment, IDP, exec dashboard) however ugly.
Scope LockedThe 8-module MVP is the shape we ship. Tech-stack questions for Kyndryl drafted same day.
22 May 2026 Build

Document restructured as a living project log

Repurposed from one-shot MVP brief into a living journal. Top section = current state (status, scope, mockups, decisions, open questions, tickets, next steps). Bottom section = chronological diary of every call, document and pivot. Goal: anyone landing on the URL at any future point can read top-to-bottom and understand both where the project stands and how it got there.

Working PatternFrom now on: new decisions land in the Decisions Holding table; superseded decisions move to the diary. New events append to the diary. Mockups, tickets, and next steps stay current at the top.
24 May 2026 Build

Paul Collins (SkillsTX) call prep written

Call brief prepared for Monday’s SkillsTX call with Paul Collins. Questions ordered across four priority tiers: P0 (scope-defining — must answer on the call), P1 (build-blocking — email fine), P2 (product clarity), P3 (scale). Central question is the Option A vs B decision: partner-tier API access (full native) vs magic-link hybrid. Added to this document as section 08.