Skip to content

feat(skills): pre-plan persistent-subject choreography (Addition C)#451

Open
vanceingalls wants to merge 1 commit intovance/skill-content-culture-real-subjectfrom
vance/skill-persistent-subject-choreography
Open

feat(skills): pre-plan persistent-subject choreography (Addition C)#451
vanceingalls wants to merge 1 commit intovance/skill-content-culture-real-subjectfrom
vance/skill-persistent-subject-choreography

Conversation

@vanceingalls
Copy link
Copy Markdown
Collaborator

What

Brief description of the change.

Why

Why is this change needed?

How

How was this implemented? Any notable design decisions?

Test plan

How was this tested?

  • Unit tests added/updated
  • Manual testing performed
  • Documentation updated (if applicable)

User feedback from eval 5 exposed a real R4 failure mode:

- p2 Thread: Maya's card persisted across scenes (good) but often
  landed in positions that didn't fit the scene's content
  hierarchy (bad). Semantic-mismatch.
- p3 Vermeer: painting zoomed to 2.1x in scene 2, blocking the
  right-column metadata the scene subagent had authored. Size-
  collision.

Root cause: expansion identifies the subject, scene subagents
author their scenes INDEPENDENTLY (picking their own layouts),
and the scaffold tweens the subject's position/scale across
transitions as an afterthought. Scene subagents don't know how
big the subject will be in THEIR scene, so they place their
chrome wherever, and then the scaffold's tween scales the subject
up or moves it into regions already filled.

Fix: expansion pre-plans the choreography BEFORE the per-scene
detailed breakdown. Per-scene block specifies:
- position (center x, y)
- scale
- size_envelope (actual on-screen footprint in this scene)
- role (focal / background anchor / data-point / glyph-slot / ...)
- reserved_region (rectangle scene subagent must leave empty)
- scene_must_avoid (short instruction)

Orchestrator (multi-scene.md) passes each scene subagent its
scene's choreography block plus the contract:
- The scaffold owns the subject's DOM + timeline.
- Your scene layout MUST respect the reserved region.
- Design your scene chrome around the element's role in this scene.
- Do NOT animate the persistent subject in your timeline.

Invariants:
- Size envelope reflects the SETTLED state (if the subject scales
  up during the scene, reserve for the larger size).
- Scene-to-scene positions trace a visually-coherent path, not
  leapfrogs.
- Role changes drive reserved-region size.

Branch worktree only. Not synced to installed main skill path.
Copy link
Copy Markdown
Collaborator Author

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.

1 participant