Session log — Build kit for Peter Sargeant
← All session logs
Session log — Build kit for Peter Sargeant
Summary
The operator asked for a way to share how the Camera Monitor app was built with a friend, Peter Sargeant, so that Peter could paste a single prompt into his own Claude Code account and end up with the same app. The session produced two shareable documents: a build-story explainer and a self-contained Claude Code build prompt. No actual app source files were changed.
To get the documents accurate, the full project context was read first: the authoritative project memory under the Zoom-Apps directory key, then main.js, renderer/renderer.js, renderer/index.html, renderer/styles.css, both broadcast overlays (stats-overlay.html, participant-counter.html), package.json and .env.example.
Decisions
- Created a new
for-peter/folder at the project root to hold the two deliverables, rather than scattering them or putting them in version-controlled app paths. - Split the deliverable in two, matching the operator's request: an explainer MD for understanding plus the Zoom account setup, and a separate paste-ready prompt for the actual build.
- Chose a high-fidelity prompt approach: embed the complete, proven source for all nine files verbatim (overlays especially, since their look lives in exact CSS), rather than a looser specification. Reasoning: the operator wants Peter to reliably end up with the same beautiful app.
- Front-loaded the prompt with twelve non-negotiable constraints drawn from the hard-won lessons (require not UMD, sign JWT in main, upsertUser as single source of truth, leaveMeeting not leave, popup killer, account-bound SDK key, the Embed programmatic-join toggle, and so on) so Peter's Claude does not re-stumble and can adapt if the SDK has drifted.
- Genericised away everything Mobilearn and Medilearn specific (bot email, appId, tenant names, the not-authorised UI string) into placeholders, because the SDK key is account-bound, so Peter must build against his own Zoom account.
- Did not run the SessionStart publish queue for the three outstanding session logs, and did not send anything outward, since the operator did not request those this turn.
Changes made
- Added
for-peter/Camera-Monitor-Build-Story.md: a friendly but technical explainer covering what the app does, the two-process architecture, the OBF then ZAK then guest join chain, the Zoom Marketplace setup Peter must do himself, a twelve-row lessons table, and how to use the prompt. - Added
for-peter/Camera-Monitor-Claude-Code-Prompt.md: a single self-contained prompt of roughly 1,360 lines. Contains the mission, exact stack and versions, the twelve constraints, the complete genericised source for all nine files (package.json,.gitignore,.env.example,main.js, and the fullrenderer/), and a closing setup and verification checklist. - Added a session-chapter marker in the live session for the build-kit work.
- Verified the prompt: code fences balanced, no leftover part-two sentinel, and zero Mobilearn or Medilearn references in the prompt file.
- No changes to any runtime app file (
main.js, renderer, styles, overlays, package.json all untouched).
Follow-ups
- Offered to zip the
for-peter/folder or draft an email to Peter with both files attached. Awaiting the operator's go-ahead and Peter's email address before any send. - The morning-after publish queue still lists three session logs not yet published to documentation.mobilearn.africa (
2026-05-20-session-participant-counter-dashboard.md,2026-05-23-session-date-query.md,2026-05-23-session.md). Left untouched this session; the operator can ask for the publish run when ready. - If Peter wants the optional OBF cross-account joining, he will need the extra OAuth setup on his Meeting SDK app, which the build story flags as optional and advanced.