Film m365
Film a Copilot Studio agent in the REAL M365 Copilot surface — the ONLY sanctioned way to make agent demo videos. Playwright drives a dedicated authed Chrome profile, records the page via CDP (no screen capture, no desktop takeover), then trims, dead-time-compresses, and gate-verifies to GO. Use when Kody says "film <agent>", "make a video of <use case>", "location shoot", or any ask for an agent demo video. NEVER use the synthetic stage — qa_gate blocks it (synthetic-stage check).From its SKILL.md
npx -y skills add kody-w/rapp-skills --skill film-m365Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
22.5 KB, ~13.2k tokens by cl100k_base, as published. Nobody here has run it
Film an agent in real M365 Copilot
The one sanctioned path for agent demo videos (Kody's ruling 2026-07-16: staged
renders "look junky"; director/qa_gate.py NO-GOs them via the synthetic-stage
check). Proven end-to-end on a full location shoot (GO).
Work repo: your agent project repo (= $REPO). Python: $REPO/.venv-local/bin/python
(has Playwright). Reference scripts from the proven shoot (copy + adapt; treat as
the canonical implementation): auth_bootstrap.py, film_take_v3.py,
gate_and_tighten.sh, postprod.sh from a prior shoot's scratchpad. If gone,
rebuild from the spec below (it is complete).
0. Preconditions (fail fast, in order)
- Agent reachable in M365 Copilot: published in Copilot Studio with
Authenticate with Microsoft (Dataverse
bots.authenticationmode = 2— mode 1 breaks connected-agent calls AND the M365 channel), Teams+M365 channel added, agent added from the store for the filming account. Orchestrator + ALL child agents must share the same auth mode (ConnectedAgentAuthMismatchotherwise). Republish order: children first, orchestrator last. - One-screen answer rule in the agent's instructions (Kody's law): responses ≤ ~100 words / one viewport. Patch instructions via Dataverse PATCH + PvaPublish, save prestate sha256, wait ~90s, REVERT after the shoot (prestate sha must match).
- Dedicated browser profile at
~/.rapp-director/chrome-profile(mode 700). If stale/absent: run the auth bootstrap (headed Playwright, real Chrome channel, agent deep-link) and have KODY do the passkey/MFA sign-in — never touch credentials yourself; Authenticator number-match prompts may hit his phone on relaunches. Session persists; warm relaunches usually skip MFA. - Agent deep-link:
https://m365.cloud.microsoft/chat/agent/<titleId-pair>?titleId=…(from Copilot Studio's "See agent in Microsoft 365" link).
1. The take (single Playwright script, CDP video — desktop stays Kody's)
launch_persistent_context(profile, channel="chrome", headless=False, viewport=1728x1117, device_scale_factor=2, record_video_dir=…, record_video_size=3456x2234, args=[--disable-blink-features=AutomationControlled, --disable-backgrounding-occluded-windows]). Do NOT force --window-size/position (causes gray letterbox band).- goto deep-link → wait for composer
[aria-label*="Message"], [placeholder*="Message"]. - Fresh chat: if main innerText > 400 chars,
gotothe deep-link again. NEVER click the global "New chat" — it silently drops you into vanilla Copilot (the take-2 wrong-subject failure). - SUBJECT-IDENTITY GATE (mandatory): abort unless the composer placeholder
names the agent (
[placeholder*="<Agent Name>"]). Never film without it. - Collapse the nav sidebar (PII: agent list, chat history, account name):
button[aria-label*="ollapse navigation"]. The hover tooltip ("Expand navigation") lingers until the next mouse move — trim covers it. - Per question: click composer →
page.keyboard.type(q, delay≈65)→ Enter → scroll-follow while streaming (page.mouse.move(864,480)+page.mouse.wheel(0,900)every ~2.2s) → settle = main innerText length stable 3 consecutive samples. Questions carry the one-screen constraint implicitly via the patched instructions; keep them demo-grade (a "what can you do" + one end-to-end scenario walkthrough). - Outro: wheel to top, then ~18 × wheel(0,420) at 0.75s — slow pan through the whole conversation. Hold 4.5s. Close context (flushes video webm).
- Save DOM screenshots + main innerText transcript per question for QA/report.
2. Post + QA gate (the film is not done until GO)
- Sample frames across the WHOLE timeline and READ them (Read tool). Every real defect so far was invisible in logs: below-the-fold answer, wrong agent, MFA screen with tenant UPN, PII sidebar, letterbox, lingering tooltip.
- Trim the head to the first clean-rail, tooltip-free frame (auth/redirect and
sidebar-collapse frames must go).
ffmpeg -ss T -i take.webm -c:v libx264 -preset slow -crf 18 -pix_fmt yuv420p -movflags +faststart out.mp4. python3 director/qa_gate.py <film> --no-audio-required [--transcript t.json].blank-frozen-spansNO-GO → dead-time compression: cut each flagged span keeping first 1.5s (select='not(between(t,a,b)+…)',setpts=N/FRAME_RATE/TB), re-gate (≤3 rounds). Alternative for a static tail: 8s zoompan push-in outro.- If a transcript is supplied and cuts shorten the film, remap turn timestamps
through the cutlist (t' = t − cut_time_before_t) into
*_edited.json— the gate binds film duration to the transcript timeline by design.
- Deliverable:
director/dist/<Agent>_Location_v<N>.mp4(dist/ is gitignored — films stay local). Commit ONLYdirector/qa/<slug>/EVIDENCE.mdevidence. If the repo requires an org token to push, push with that token explicitly — never a plain push under the wrong account. - Open the film for Kody (
open <film>), report which frames you actually read.
Known traps (each cost a take)
- Global "New chat" ⇒ wrong agent. Deep-link re-goto instead + subject gate.
- No scroll-follow ⇒ money answer streams below the fold, never on camera.
- Warm-profile relaunch may still re-MFA (Conditional Access) — warn Kody.
- M365 recent-prompts dropdown may flash earlier take questions (benign, no PII).
- Co-sessions may hold the repo: check
git statusbefore editing shared files; own only your files; single commit at the end; token-push, never plain push.
Parameters
The typed contract this capability answers to (JSON Schema — the deterministic layer):
{
"properties": {
"film": {
"description": "Derived from `<film>` used in the documented command at line 63.",
"type": "string"
}
},
"required": [],
"type": "object"
}
<!-- toaster:generated:end -->
<!-- toaster:generated:begin -->
Deterministic steps
Lifted verbatim from the procedure above by toaster.py toast. Run them in order, substituting the typed parameters; do not paraphrase:
python3 director/qa_gate.py <film> --no-audio-required [--transcript t.json]
open <film>
git status
<!-- toaster:generated:end -->
<!-- rci-capsule:v1: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 -->What ships with it: 1 file
26.4 KB alongside SKILL.md, 1 of them executable
- film_m365_agent.pyruns26.4 KB