Skip to content

Build video: Govern Roles with Role Groups and PIM - #22

Closed
dahans-msft2 wants to merge 8 commits into
videosfrom
video/govern-roles-with-role-groups-and-pim
Closed

Build video: Govern Roles with Role Groups and PIM#22
dahans-msft2 wants to merge 8 commits into
videosfrom
video/govern-roles-with-role-groups-and-pim

Conversation

@dahans-msft2

Copy link
Copy Markdown
Owner

Build video: Govern Roles with Role Groups and PIM

A ~4-minute unit companion video for Provision and govern identities in Microsoft Entra.

Prep is approved and committed on this branch (rebuilt on the fixed pipeline, main @57aa4d04): script.md, design-plan.md, narration.wav (en-US-Vance, Dragon HD), transcript.json.

Build task (in learn/output/Govern-Roles-With-Role-Groups-And-PIM/):

  1. Fill every chrome __FILL__ from script.md.
  2. Author the body scenes per design-plan.md, inserting them into scenes.json's body_slot.
  3. Anchor every beat + in-scene cue to transcript.json word times.
  4. Assemble + pass gates from the project dir: assemble_scenes -> check_subcomps -> check_placeholders -> check_initial_state -> check_cue_anchors -> lint -> check.

Do not render, change narration or palette, edit learn/tools/**, or touch anything outside learn/output/Govern-Roles-With-Role-Groups-And-PIM/. Follow .github/copilot-instructions.md and .github/agents/hyperframes-builder.agent.md.

To start: comment @copilot on this PR with your chosen model. When the session ends and the PR is marked ready, the render auto-fires (or add the render label / comment /render).

…bodies (Resolves marker, agent prompt in details)
- assemble_scenes.py: bake // anchor-exempt onto generated seam/bookend timeline
  lines and skip @font-face for a woff2 not on disk. These were the two real bugs
  four agents independently patched the shared tool to fix; fixing them here removes
  the reason to touch the tool per-video.
- video-ci: add a scope job that fails any video PR touching outside learn/output/<slug>/
  (plus learn/.gitignore), and hard-fail the gate when index.html is absent.
- render-video: /render comment + re-armable render label (removed after each run) so a
  failed render is retriggerable; index.html preflight; failure comment on the PR.
- copilot-instructions: learn/tools/** is READ-ONLY; touch only your own project.
…scan scenes/*.html)

Ported from the meet-microsoft-scout branch, where they rode in on a video merge. A
modular build's authored cues live in scenes/*.html; the assembled index.html carries
only generated seams — so scanning index.html alone misses unanchored cues in the scene
files (verified: --project flags a scene the positional scan passes). Refactors main()
into a reusable scan(); positional arg stays backward-compatible. Makes the --project
invocation in copilot-instructions.md actually work.
…roved script + design-plan + Vance narration + transcript; body pending cloud build

(cherry picked from commit 3063a0e)
@dahans-msft2

Copy link
Copy Markdown
Owner Author

@copilot

Copilot AI and others added 3 commits August 8, 2026 05:36
Co-authored-by: dahans-msft2 <49003767+dahans-msft2@users.noreply.github.com>
Co-authored-by: dahans-msft2 <49003767+dahans-msft2@users.noreply.github.com>
…a DOM

Co-authored-by: dahans-msft2 <49003767+dahans-msft2@users.noreply.github.com>

Copilot AI commented Aug 8, 2026

Copy link
Copy Markdown

@copilot

Build complete — composition assembled and every gate green (6c8dd0a).

What was built (all in learn/output/Govern-Roles-With-Role-Groups-And-PIM/):

  • Chrome __FILL__ filled from script.md — bumper kicker, title lockup, 3 objective steps, recap payoff, CTA.
  • 9 body scenes authored per design-plan.md and inserted into the body_slot: 04-roles-today + 07-assignment-types (list-select), 05-role-groups / 10-lockout-risk / 12-custom-role (callout-note), 08-activation (list-steps), 09-approver-puzzle (console-status), 11-durations (list-specs), and 06-always-on authored custom on _foundation.css. 10-lockout-risk is the one dark-field scene.
  • anchors.json rewritten (82 anchors) and anchors.js regenerated with word_anchors.py — every beat start and every in-scene cue position is a real spoken word time from transcript.json, converted to scene-relative. No words-per-second estimates anywhere.
  • scenes.json rewritten: 14 scenes, 279.4s + the 10.667s AI end card = 290.067s composition; narration mounted at the 3.0s lead-in.

Gates (from the project dir, CLI 0.7.77):

gate result
assemble_scenes.py 14 scenes, 12 seams → index.html
check_subcomps.py MOUNT-CONTRACT OK — ids triangulate, track 1 tiles cleanly
check_placeholders.py no unfilled placeholders
check_initial_state.py 14/14 clean
check_cue_anchors.py 14/14 fully anchored, 100% coverage
lint 0 errors, 0 warnings
check Runtime 0 · Layout 0 issues · Motion 0 · Contrast 18/18 WCAG AA

One escalation for you (shared tool, not patched here): learn/tools/assemble_scenes.py:194 calls ff = font_faces(fonts) without forwarding base, so the "skip the @font-face when the WOFF2 is absent" guard added in 910bdf8 never fires — the cloud gate then 404s on fonts/segoeui-*.woff2, which are git-ignored by design. I worked around it inside this project only (scenes.json"fonts": [], with the two original faces preserved under _fonts_local and a _fonts_note); the kit foundation already declares font-family: "Segoe UI", system-ui, sans-serif, so the local render still picks up real Segoe. The one-line tool fix is yours to make since learn/tools/** is read-only for me.

Not rendered, narration and palette untouched, and the diff is confined to this project folder.

@dahans-msft2
dahans-msft2 marked this pull request as ready for review August 8, 2026 06:13
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown

🎬 Render complete — download the MP4 + captions + thumbnail from this run's artifacts (video-31243452722): https://github.com/dahans-msft2/hyperframes/actions/runs/31243452722#artifacts

Review it, then merge to videos to archive.

@dahans-msft2

Copy link
Copy Markdown
Owner Author

Closing: these were model-comparison tests, and the branch->videos-archive model is being replaced (the scope gate false-fails on base drift). Branch retained for reference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants