@struq/skill 0.0.0-stage → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +141 -2
  3. package/cli/struq.mjs +132 -0
  4. package/package.json +41 -4
  5. package/skills/struq/SKILL.md +237 -0
  6. package/skills/struq/cinematic/README.md +409 -0
  7. package/skills/struq/cinematic/checklists/01-preproduction.md +15 -0
  8. package/skills/struq/cinematic/checklists/02-implementation.md +17 -0
  9. package/skills/struq/cinematic/checklists/03-polish.md +17 -0
  10. package/skills/struq/cinematic/examples/code/nextjs/README.md +13 -0
  11. package/skills/struq/cinematic/examples/code/nextjs/app/cinematic-experience.tsx +13 -0
  12. package/skills/struq/cinematic/examples/code/nextjs/app/components/LenisRoot.tsx +42 -0
  13. package/skills/struq/cinematic/examples/code/nextjs/app/page.tsx +6 -0
  14. package/skills/struq/cinematic/examples/code/shared/CameraRig.tsx +65 -0
  15. package/skills/struq/cinematic/examples/code/shared/ExperienceCanvas.tsx +20 -0
  16. package/skills/struq/cinematic/examples/code/shared/ExperienceDirector.tsx +57 -0
  17. package/skills/struq/cinematic/examples/code/shared/ExperienceOverlay.tsx +37 -0
  18. package/skills/struq/cinematic/examples/code/shared/ExperiencePage.tsx +52 -0
  19. package/skills/struq/cinematic/examples/code/shared/GsapFrameLoop.tsx +32 -0
  20. package/skills/struq/cinematic/examples/code/shared/InteriorRoot.tsx +30 -0
  21. package/skills/struq/cinematic/examples/code/shared/README.md +20 -0
  22. package/skills/struq/cinematic/examples/code/shared/SubjectRig.tsx +58 -0
  23. package/skills/struq/cinematic/examples/code/shared/build-experience-timeline.ts +237 -0
  24. package/skills/struq/cinematic/examples/code/shared/direction.ts +52 -0
  25. package/skills/struq/cinematic/examples/code/shared/gsap-client.ts +32 -0
  26. package/skills/struq/cinematic/examples/code/shared/math.ts +12 -0
  27. package/skills/struq/cinematic/examples/code/shared/registry.ts +58 -0
  28. package/skills/struq/cinematic/examples/code/shared/runtime.ts +52 -0
  29. package/skills/struq/cinematic/examples/code/shared/styles.css +127 -0
  30. package/skills/struq/cinematic/examples/code/shared/useExperienceInput.ts +42 -0
  31. package/skills/struq/cinematic/examples/code/vite/README.md +14 -0
  32. package/skills/struq/cinematic/examples/code/vite/src/App.tsx +11 -0
  33. package/skills/struq/cinematic/examples/code/vite/src/LenisRoot.tsx +37 -0
  34. package/skills/struq/cinematic/examples/code/vite/src/main.tsx +9 -0
  35. package/skills/struq/cinematic/examples/concise/01-chapter-spec-example.md +42 -0
  36. package/skills/struq/cinematic/examples/concise/02-handoff-example.md +25 -0
  37. package/skills/struq/cinematic/examples/concise/03-audit-finding-example.md +13 -0
  38. package/skills/struq/cinematic/examples/verbose/01-full-experience-direction.md +687 -0
  39. package/skills/struq/cinematic/examples/verbose/02-full-audit-example.md +362 -0
  40. package/skills/struq/cinematic/references/01-core-mental-model.md +221 -0
  41. package/skills/struq/cinematic/references/02-vocabulary.md +384 -0
  42. package/skills/struq/cinematic/references/03-experience-architecture.md +302 -0
  43. package/skills/struq/cinematic/references/04-timeline-choreography.md +264 -0
  44. package/skills/struq/cinematic/references/05-handoff-contracts.md +241 -0
  45. package/skills/struq/cinematic/references/06-three-rig-architecture.md +286 -0
  46. package/skills/struq/cinematic/references/07-stack-integration.md +228 -0
  47. package/skills/struq/cinematic/references/08-gsap-plugin-patterns.md +218 -0
  48. package/skills/struq/cinematic/references/09-tuning-harness.md +202 -0
  49. package/skills/struq/cinematic/references/10-quality-systems.md +206 -0
  50. package/skills/struq/cinematic/references/11-agent-workflows.md +246 -0
  51. package/skills/struq/cinematic/references/12-audit-rubric.md +176 -0
  52. package/skills/struq/cinematic/references/13-official-docs.md +53 -0
  53. package/skills/struq/cinematic/templates/01-experience-brief.md +105 -0
  54. package/skills/struq/cinematic/templates/02-experience-contract.md +80 -0
  55. package/skills/struq/cinematic/templates/03-chapter-spec.md +103 -0
  56. package/skills/struq/cinematic/templates/04-handoff-contract.md +102 -0
  57. package/skills/struq/cinematic/templates/05-ownership-matrix.md +29 -0
  58. package/skills/struq/cinematic/templates/06-shot-presets.md +59 -0
  59. package/skills/struq/cinematic/templates/07-implementation-slice.md +66 -0
  60. package/skills/struq/cinematic/templates/08-tuning-register.md +36 -0
  61. package/skills/struq/cinematic/templates/09-acceptance-tests.md +57 -0
  62. package/skills/struq/references/anti-patterns.md +265 -0
  63. package/skills/struq/references/baseline-prompt.md +118 -0
  64. package/skills/struq/references/brand.md +143 -0
  65. package/skills/struq/references/brief-router.md +219 -0
  66. package/skills/struq/references/composition.md +191 -0
  67. package/skills/struq/references/depth-parallax.md +235 -0
  68. package/skills/struq/references/direction.md +188 -0
  69. package/skills/struq/references/feel-layer.md +107 -0
  70. package/skills/struq/references/gsap-api.md +293 -0
  71. package/skills/struq/references/iconography.md +255 -0
  72. package/skills/struq/references/imagery.md +144 -0
  73. package/skills/struq/references/loaders.md +287 -0
  74. package/skills/struq/references/micro-interactions.md +270 -0
  75. package/skills/struq/references/mobile-composition.md +70 -0
  76. package/skills/struq/references/nav-header.md +296 -0
  77. package/skills/struq/references/page-architecture.md +134 -0
  78. package/skills/struq/references/page-entrances.md +198 -0
  79. package/skills/struq/references/performance.md +235 -0
  80. package/skills/struq/references/pinning-scrub.md +341 -0
  81. package/skills/struq/references/pitfalls.md +290 -0
  82. package/skills/struq/references/route-transitions.md +281 -0
  83. package/skills/struq/references/scaling.md +151 -0
  84. package/skills/struq/references/scroll-reveals.md +280 -0
  85. package/skills/struq/references/seo.md +219 -0
  86. package/skills/struq/references/setup.md +397 -0
  87. package/skills/struq/references/showcase.md +87 -0
  88. package/skills/struq/references/stack-targets.md +78 -0
  89. package/skills/struq/references/struq-imagery.md +107 -0
  90. package/skills/struq/references/svg-motion.md +390 -0
  91. package/skills/struq/references/transitions.md +160 -0
  92. package/skills/struq/references/triage.md +71 -0
  93. package/skills/struq/references/typography.md +720 -0
  94. package/skills/struq/references/vibe-presets.md +287 -0
  95. package/skills/struq/references/webgl-r3f.md +274 -0
  96. package/skills/struq/references/webgl-scenes.md +593 -0
@@ -0,0 +1,246 @@
1
+ # Agent Workflows
2
+
3
+ ## General behavior
4
+
5
+ The agent should direct the experience before generating large amounts of code. It should maintain a live model of:
6
+
7
+ - experience thesis,
8
+ - chapters and progress ranges,
9
+ - active state owners,
10
+ - camera shots,
11
+ - handoff contracts,
12
+ - implementation status,
13
+ - unresolved risks,
14
+ - tuning decisions.
15
+
16
+ When new information conflicts with an earlier decision, update the relevant artifacts and identify downstream effects.
17
+
18
+ ## Workflow A: Design from a brief
19
+
20
+ ### Step 1: Extract usable facts
21
+
22
+ Separate:
23
+
24
+ - content facts,
25
+ - visual references,
26
+ - emotional goals,
27
+ - required interactions,
28
+ - technical constraints,
29
+ - unknowns that materially affect design.
30
+
31
+ ### Step 2: Propose the experience thesis
32
+
33
+ Provide one strong default thesis rather than many vague directions. State assumptions.
34
+
35
+ ### Step 3: Establish the experience contract
36
+
37
+ Define:
38
+
39
+ - persistent-stage model,
40
+ - chapter count,
41
+ - transition language,
42
+ - camera character,
43
+ - typography language,
44
+ - input ownership,
45
+ - responsive strategy,
46
+ - prohibited patterns.
47
+
48
+ ### Step 4: Map chapters
49
+
50
+ Create a chapter table. Each row must describe a state transformation, not merely content.
51
+
52
+ Weak:
53
+
54
+ ```text
55
+ Chapter 2, Features: show three features.
56
+ ```
57
+
58
+ Strong:
59
+
60
+ ```text
61
+ Chapter 2, Disassembly: the hero object separates into three functional layers. The camera trucks left to reveal depth; each layer becomes the spatial anchor for one feature statement. The outer ring remains as the bridge into the systems chapter.
62
+ ```
63
+
64
+ ### Step 5: Specify handoffs
65
+
66
+ Do not leave handoffs as “transition TBD.” At minimum define the bridge and continuity principle.
67
+
68
+ ### Step 6: Produce the implementation architecture
69
+
70
+ Only after direction is coherent, assign responsibilities to GSAP, ScrollTrigger, Lenis, R3F, Motion, and plugins.
71
+
72
+ ### Step 7: Define acceptance criteria
73
+
74
+ Use observable outcomes.
75
+
76
+ ## Workflow B: Guide implementation
77
+
78
+ ### Step 1: Establish current state
79
+
80
+ Inspect or ask for:
81
+
82
+ - relevant files,
83
+ - current scene graph,
84
+ - timeline construction,
85
+ - scrolling setup,
86
+ - route lifecycle,
87
+ - known bugs,
88
+ - a recording or screenshots when perceptual timing matters.
89
+
90
+ ### Step 2: Choose one vertical slice
91
+
92
+ Select the smallest slice that proves the architecture, normally one chapter plus its handoff.
93
+
94
+ ### Step 3: Explain the target behavior
95
+
96
+ Before code, state:
97
+
98
+ - starting state,
99
+ - ending state,
100
+ - owners,
101
+ - labels,
102
+ - phase windows,
103
+ - responsive behavior,
104
+ - validation method.
105
+
106
+ ### Step 4: Implement by responsibility
107
+
108
+ Identify which files own:
109
+
110
+ - direction data,
111
+ - registry,
112
+ - timeline,
113
+ - scene rig,
114
+ - DOM layer,
115
+ - lifecycle,
116
+ - debug controls.
117
+
118
+ ### Step 5: Validate
119
+
120
+ Check forward, reverse, resize, route leave, reduced motion, and the target device class.
121
+
122
+ ### Step 6: Record tuning decisions
123
+
124
+ When values change, update the direction register rather than only changing local code.
125
+
126
+ ### Step 7: Move to the next slice
127
+
128
+ Carry the established patterns forward. Do not create a new architecture for every chapter.
129
+
130
+ ## Workflow C: Audit and improve
131
+
132
+ ### Step 1: Observe symptoms
133
+
134
+ Examples:
135
+
136
+ - “each section feels separate,”
137
+ - “camera movement feels floaty,”
138
+ - “the page is impressive but tiring,”
139
+ - “mobile composition breaks,”
140
+ - “reverse scroll jumps,”
141
+ - “the Three.js scene requires constant patching.”
142
+
143
+ ### Step 2: Trace causes
144
+
145
+ Classify as:
146
+
147
+ - experience architecture,
148
+ - state ownership,
149
+ - timeline structure,
150
+ - handoff design,
151
+ - camera composition,
152
+ - input conflict,
153
+ - responsive direction,
154
+ - performance,
155
+ - lifecycle.
156
+
157
+ ### Step 3: Build a continuity map
158
+
159
+ For each chapter boundary, record:
160
+
161
+ - persistent elements,
162
+ - reset elements,
163
+ - bridge,
164
+ - camera relation,
165
+ - handoff quality,
166
+ - visible discontinuity.
167
+
168
+ ### Step 4: Build a property-conflict map
169
+
170
+ Find properties written by several systems.
171
+
172
+ ```text
173
+ camera.position:
174
+ - GSAP chapter timeline
175
+ - pointer effect in useFrame
176
+ - route transition
177
+ Result: visible drift and non-deterministic final pose
178
+ Correction: nested narrative/reaction/route rigs
179
+ ```
180
+
181
+ ### Step 5: Prioritize structural fixes
182
+
183
+ Fix in this order:
184
+
185
+ 1. state continuity,
186
+ 2. ownership conflicts,
187
+ 3. camera and target architecture,
188
+ 4. handoff coverage,
189
+ 5. timeline hierarchy,
190
+ 6. responsive behavior,
191
+ 7. performance,
192
+ 8. decorative polish.
193
+
194
+ ### Step 6: Specify before/after behavior
195
+
196
+ Do not merely say “refactor the timeline.” State what the viewer should experience after the correction.
197
+
198
+ ### Step 7: Provide a staged remediation plan
199
+
200
+ Each stage should be independently testable and preserve a working page.
201
+
202
+ ## Agent session protocol
203
+
204
+ At the beginning of a substantial session, maintain a short status block:
205
+
206
+ ```text
207
+ Mode: Design / Implementation / Audit
208
+ Current chapter or slice:
209
+ Active decision artifacts:
210
+ Known constraints:
211
+ Unresolved risks:
212
+ ```
213
+
214
+ At the end, report:
215
+
216
+ - decisions made,
217
+ - files or artifacts changed,
218
+ - values requiring visual tuning,
219
+ - validation completed,
220
+ - next recommended slice.
221
+
222
+ ## Agent anti-patterns
223
+
224
+ The agent must not:
225
+
226
+ - generate a generic hero/features/projects/contact structure unless the brief requires it,
227
+ - equate “cinematic” with constant camera movement,
228
+ - suggest pinning every section without a stage-continuity plan,
229
+ - produce a monolithic component containing scene, timelines, state, and copy,
230
+ - add post-processing before the composition works,
231
+ - use vague words instead of progress ranges and states,
232
+ - ignore reverse scroll,
233
+ - ignore route cleanup,
234
+ - let GSAP and Motion own the same transform,
235
+ - assume desktop choreography scales directly to mobile,
236
+ - hide uncertainty about untested visual values.
237
+
238
+ ## How the agent should handle visual tuning
239
+
240
+ The agent should distinguish:
241
+
242
+ - **architectural certainty:** ownership, lifecycle, state boundaries, cleanup;
243
+ - **direction hypothesis:** likely camera path, timing, ease, phase range;
244
+ - **visual tuning value:** exact position, FOV, scale, light intensity, shader amount.
245
+
246
+ It should provide strong starting values and identify which values require in-browser judgment. It should not pretend that exact composition can be finalized without seeing the running result.
@@ -0,0 +1,176 @@
1
+ # Audit Rubric
2
+
3
+ Score each category from 0 to 5.
4
+
5
+ - `0`: absent or broken
6
+ - `1`: severely weak
7
+ - `2`: inconsistent or generic
8
+ - `3`: functional and intentional
9
+ - `4`: strong and polished
10
+ - `5`: exceptional, coherent, and resilient
11
+
12
+ ## 1. Experience thesis
13
+
14
+ **Question:** Can the whole experience be described as one visual and emotional transformation?
15
+
16
+ - 0: no unifying idea
17
+ - 3: clear idea but not consistently expressed
18
+ - 5: every major beat reinforces the thesis
19
+
20
+ ## 2. Persistent-world continuity
21
+
22
+ **Question:** Does the page feel like one evolving world?
23
+
24
+ Inspect:
25
+
26
+ - persistent stage,
27
+ - retained subjects,
28
+ - environment continuity,
29
+ - chapter resets,
30
+ - route continuity.
31
+
32
+ ## 3. Chapter purpose
33
+
34
+ **Question:** Does each chapter perform a distinct narrative action rather than merely display content?
35
+
36
+ ## 4. Handoff quality
37
+
38
+ **Question:** Is every boundary an authored transfer with a bridge, coverage, ownership, and reverse behavior?
39
+
40
+ ## 5. State continuity
41
+
42
+ **Question:** Do shared end and start states match without hidden jumps?
43
+
44
+ ## 6. Property ownership
45
+
46
+ **Question:** Can every animated property be traced to one authoritative writer?
47
+
48
+ Red flags:
49
+
50
+ - GSAP and Motion on one transform,
51
+ - pointer and narrative writing the same camera object,
52
+ - callbacks creating irreversible state,
53
+ - local components mutating global experience values.
54
+
55
+ ## 7. Timeline hierarchy
56
+
57
+ **Question:** Are route, chapter, handoff, and discrete timelines separated and composed clearly?
58
+
59
+ ## 8. Semantic cues
60
+
61
+ **Question:** Are important moments named and used to coordinate systems?
62
+
63
+ ## 9. Rhythm and pacing
64
+
65
+ **Question:** Does the experience contain contrast between motion, holds, accents, and resolution?
66
+
67
+ ## 10. Camera direction
68
+
69
+ **Question:** Are shots, targets, FOV, paths, and composition intentionally authored?
70
+
71
+ Red flags:
72
+
73
+ - constant orbit,
74
+ - camera movement with no target plan,
75
+ - excessive float,
76
+ - no stable hero pose,
77
+ - large mobile travel copied from desktop.
78
+
79
+ ## 11. Subject choreography
80
+
81
+ **Question:** Does the principal object have clear placement, role changes, and material behavior?
82
+
83
+ ## 12. Typography choreography
84
+
85
+ **Question:** Does type share beats and spatial logic with the visual world?
86
+
87
+ Red flags:
88
+
89
+ - every heading uses the same fade-up,
90
+ - type ignores camera and safe areas,
91
+ - SplitText breaks on resize,
92
+ - unreadable motion density.
93
+
94
+ ## 13. SVG and graphic integration
95
+
96
+ **Question:** Are vector effects meaningful bridges or explanatory systems rather than decoration?
97
+
98
+ ## 14. Input arbitration
99
+
100
+ **Question:** Are scroll, pointer, hover, click, drag, and time assigned distinct responsibilities?
101
+
102
+ ## 15. Interaction envelopes
103
+
104
+ **Question:** Are interactions enabled, attenuated, and disabled at deliberate states?
105
+
106
+ ## 16. Reverse behavior
107
+
108
+ **Question:** Can a user reverse through scrubbed sequences without discontinuity or stale state?
109
+
110
+ ## 17. Responsive choreography
111
+
112
+ **Question:** Does each viewport class preserve intent through authored composition changes?
113
+
114
+ ## 18. Reduced motion
115
+
116
+ **Question:** Is there a coherent reduced-motion experience rather than a broken or entirely static fallback?
117
+
118
+ ## 19. Performance architecture
119
+
120
+ **Question:** Are effects, assets, render settings, and frame work budgeted by device capability?
121
+
122
+ ## 20. Lifecycle and cleanup
123
+
124
+ **Question:** Are timelines, triggers, listeners, ticker callbacks, styles, and GPU resources cleaned up?
125
+
126
+ ## 21. Tuning readiness
127
+
128
+ **Question:** Can important values be inspected and changed from a central direction system?
129
+
130
+ ## 22. Validation coverage
131
+
132
+ **Question:** Has the experience been tested across input, viewport, performance, motion preference, asset readiness, and route lifecycle?
133
+
134
+ ## Audit output template
135
+
136
+ ```md
137
+ # Audit Summary
138
+
139
+ ## Executive diagnosis
140
+ [One paragraph identifying the dominant structural issue.]
141
+
142
+ ## Scorecard
143
+ | Category | Score | Evidence | Priority |
144
+ |---|---:|---|---|
145
+
146
+ ## Structural findings
147
+ ### Finding
148
+ - Symptom:
149
+ - Cause:
150
+ - Perceptual consequence:
151
+ - Correction:
152
+ - Validation:
153
+
154
+ ## Continuity map
155
+ | Boundary | Persistent bridge | Camera continuity | Ownership transfer | Reverse-safe | Result |
156
+
157
+ ## Property conflict map
158
+ | Property | Writers | Conflict | Correction |
159
+
160
+ ## Remediation sequence
161
+ 1. Foundation
162
+ 2. First corrected vertical slice
163
+ 3. Remaining chapter migrations
164
+ 4. Responsive and performance pass
165
+ 5. Final direction pass
166
+ ```
167
+
168
+ ## Score interpretation
169
+
170
+ - `90 to 110`: exceptional architecture; focus on art direction and microtiming.
171
+ - `70 to 89`: strong foundation with identifiable weaknesses.
172
+ - `50 to 69`: impressive moments but inconsistent system quality.
173
+ - `30 to 49`: effect-driven page with structural continuity problems.
174
+ - `<30`: rebuild the experience architecture before adding polish.
175
+
176
+ The numerical score supports prioritization. The written evidence is more important than the total.
@@ -0,0 +1,53 @@
1
+ # Official Documentation Index
2
+
3
+ Use official documentation to verify current APIs, imports, lifecycle guidance, and plugin behavior before applying code to a live project.
4
+
5
+ ## GSAP
6
+
7
+ - GSAP documentation: https://gsap.com/docs/v3/
8
+ - Installation: https://gsap.com/docs/v3/Installation/
9
+ - React `useGSAP`: https://gsap.com/resources/React/
10
+ - ScrollTrigger: https://gsap.com/docs/v3/Plugins/ScrollTrigger/
11
+ - SplitText: https://gsap.com/docs/v3/Plugins/SplitText/
12
+ - DrawSVGPlugin: https://gsap.com/docs/v3/Plugins/DrawSVGPlugin/
13
+ - MorphSVGPlugin: https://gsap.com/docs/v3/Plugins/MorphSVGPlugin/
14
+ - MotionPathPlugin: https://gsap.com/docs/v3/Plugins/MotionPathPlugin/
15
+ - Flip: https://gsap.com/docs/v3/Plugins/Flip/
16
+ - Observer: https://gsap.com/docs/v3/Plugins/Observer/
17
+ - CustomEase: https://gsap.com/docs/v3/Eases/CustomEase/
18
+ - Official GSAP skills repository: https://github.com/greensock/gsap-skills
19
+
20
+ ## Lenis
21
+
22
+ - Lenis repository and integration guidance: https://github.com/darkroomengineering/lenis
23
+ - React integration: https://github.com/darkroomengineering/lenis/tree/main/packages/react
24
+
25
+ ## React Three Fiber
26
+
27
+ - Documentation: https://r3f.docs.pmnd.rs/
28
+ - Canvas: https://r3f.docs.pmnd.rs/api/canvas
29
+ - Hooks and `useFrame`: https://r3f.docs.pmnd.rs/api/hooks
30
+ - Performance pitfalls: https://r3f.docs.pmnd.rs/advanced/pitfalls
31
+
32
+ ## Three.js
33
+
34
+ - Documentation: https://threejs.org/docs/
35
+ - Scene graph manual: https://threejs.org/manual/en/scenegraph.html
36
+ - Render targets: https://threejs.org/manual/en/rendertargets.html
37
+ - Post-processing: https://threejs.org/manual/en/post-processing.html
38
+
39
+ ## Motion for React
40
+
41
+ - React documentation: https://motion.dev/docs/react
42
+ - Installation: https://motion.dev/docs/react-installation
43
+ - AnimatePresence: https://motion.dev/docs/react-animate-presence
44
+ - Accessibility: https://motion.dev/docs/react-accessibility
45
+
46
+ ## Frameworks
47
+
48
+ - Next.js documentation: https://nextjs.org/docs
49
+ - Vite documentation: https://vite.dev/guide/
50
+
51
+ ## Verification note
52
+
53
+ Package APIs and recommended imports can change. Treat examples in directed mode as architectural patterns. Before copying imports into a project, verify them against the project's installed versions and the official sources above.
@@ -0,0 +1,105 @@
1
+ # Experience Brief
2
+
3
+ ## Project
4
+
5
+ **Name:**
6
+
7
+ **Route or page:**
8
+
9
+ **Primary objective:**
10
+
11
+ **Audience:**
12
+
13
+ **Required action or outcome:**
14
+
15
+ ## Central idea
16
+
17
+ **Principal subject, product, story, or metaphor:**
18
+
19
+ **What should the viewer feel at the beginning?**
20
+
21
+ **What should the viewer feel at the end?**
22
+
23
+ **One-sentence transformation:**
24
+
25
+ > The viewer moves from [starting perception] to [ending perception] while [the visual world performs its central transformation].
26
+
27
+ ## Content
28
+
29
+ **Required chapters or messages:**
30
+
31
+ 1.
32
+ 2.
33
+ 3.
34
+
35
+ **Required copy:**
36
+
37
+ **Required calls to action:**
38
+
39
+ ## Assets
40
+
41
+ | Asset | Available | Format | Notes | Required by |
42
+ |---|---|---|---|---|
43
+ | Hero model | | | | |
44
+ | Supporting models | | | | |
45
+ | Images | | | | |
46
+ | Video | | | | |
47
+ | SVG | | | | |
48
+ | Typeface | | | | |
49
+ | Audio | | | | |
50
+ | Data | | | | |
51
+
52
+ ## Visual direction
53
+
54
+ **References:**
55
+
56
+ **Material language:**
57
+
58
+ **Lighting language:**
59
+
60
+ **Typography language:**
61
+
62
+ **Motion character:**
63
+
64
+ **Transition motifs:**
65
+
66
+ ## Interaction
67
+
68
+ **Primary navigation model:** continuous scroll / snap-assisted / discrete chapters / hybrid
69
+
70
+ **Pointer behavior:**
71
+
72
+ **Click or tap behavior:**
73
+
74
+ **Drag behavior:**
75
+
76
+ **Route transitions:**
77
+
78
+ ## Constraints
79
+
80
+ **Framework:** Next.js / Vite
81
+
82
+ **Core stack:**
83
+
84
+ **Target devices:**
85
+
86
+ **Performance floor:**
87
+
88
+ **Accessibility requirements:**
89
+
90
+ **Reduced-motion expectation:**
91
+
92
+ **Content-management requirements:**
93
+
94
+ **Deadline or implementation phases:**
95
+
96
+ ## Prohibited patterns
97
+
98
+ -
99
+ -
100
+ -
101
+
102
+ ## Unknowns that materially affect direction
103
+
104
+ -
105
+ -
@@ -0,0 +1,80 @@
1
+ # Experience Contract
2
+
3
+ ## Experience thesis
4
+
5
+ [One paragraph describing the viewer's action, the world's transformation, emotional progression, continuity mechanism, and final resolution.]
6
+
7
+ ## Persistent-stage strategy
8
+
9
+ - Stage duration:
10
+ - Persistent elements:
11
+ - Semantic document structure:
12
+ - Canvas ownership:
13
+ - DOM overlay ownership:
14
+ - Route lifecycle:
15
+
16
+ ## Narrative chapters
17
+
18
+ | ID | Name | Purpose | Main transformation | Scroll budget | Bridge to next |
19
+ |---|---|---|---|---:|---|
20
+
21
+ ## Motion language
22
+
23
+ **Camera character:**
24
+
25
+ **Subject movement:**
26
+
27
+ **Typography movement:**
28
+
29
+ **SVG and graphic movement:**
30
+
31
+ **Ambient movement:**
32
+
33
+ **Primary transition language:**
34
+
35
+ ## Input ownership
36
+
37
+ | Input | Responsibility | Influence | Gating rule |
38
+ |---|---|---|---|
39
+ | Scroll | | | |
40
+ | Time | | | |
41
+ | Pointer | | | |
42
+ | Velocity | | | |
43
+ | Hover | | | |
44
+ | Click/tap | | | |
45
+ | Keyboard | | | |
46
+
47
+ ## Stack responsibility
48
+
49
+ | System | Responsibility | Must not own |
50
+ |---|---|---|
51
+ | GSAP | | |
52
+ | ScrollTrigger | | |
53
+ | Lenis | | |
54
+ | R3F / Three.js | | |
55
+ | Motion | | |
56
+ | SVG plugins | | |
57
+
58
+ ## Responsive contract
59
+
60
+ **Desktop:**
61
+
62
+ **Tablet:**
63
+
64
+ **Mobile:**
65
+
66
+ **Reduced motion:**
67
+
68
+ **Low-performance tier:**
69
+
70
+ ## Prohibited generic patterns
71
+
72
+ - No independent chapter reset without a narrative reason.
73
+ - No opacity-only handoff as the complete transition.
74
+ - No repeated copy-paste reveal language across all chapters.
75
+ - No competing writers for the same transform.
76
+ - [Add project-specific rules.]
77
+
78
+ ## Acceptance statement
79
+
80
+ The experience is accepted when [observable description of continuity, hierarchy, performance, and interaction quality].