markform 0.1.20 → 0.1.22

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 (58) hide show
  1. package/README.md +44 -12
  2. package/dist/ai-sdk.d.mts +1 -1
  3. package/dist/ai-sdk.mjs +2 -2
  4. package/dist/{apply-DIvm1b1s.mjs → apply-C7mO7VkZ.mjs} +158 -95
  5. package/dist/apply-C7mO7VkZ.mjs.map +1 -0
  6. package/dist/bin.mjs +1 -1
  7. package/dist/{cli-FFMoEhFS.mjs → cli-C8F9yDsv.mjs} +102 -1225
  8. package/dist/cli-C8F9yDsv.mjs.map +1 -0
  9. package/dist/cli.mjs +1 -1
  10. package/dist/{coreTypes-CkxML8g2.d.mts → coreTypes-BlsJkU1w.d.mts} +28 -2
  11. package/dist/{coreTypes-CPKXf2dc.mjs → coreTypes-CTLr-NGd.mjs} +24 -3
  12. package/dist/coreTypes-CTLr-NGd.mjs.map +1 -0
  13. package/dist/fillRecord-DTl5lnK0.d.mts +345 -0
  14. package/dist/fillRecordRenderer-CruJrLkj.mjs +1256 -0
  15. package/dist/fillRecordRenderer-CruJrLkj.mjs.map +1 -0
  16. package/dist/index.d.mts +22 -342
  17. package/dist/index.mjs +5 -5
  18. package/dist/render.d.mts +74 -0
  19. package/dist/render.mjs +4 -0
  20. package/dist/{session-CK0x28RO.mjs → session-BCcltrLA.mjs} +2 -2
  21. package/dist/{session-CK0x28RO.mjs.map → session-BCcltrLA.mjs.map} +1 -1
  22. package/dist/{session-ZHBi3LVQ.mjs → session-VeSkVrck.mjs} +1 -1
  23. package/dist/{shared-DwdyWmvE.mjs → shared-CsdT2T7k.mjs} +1 -1
  24. package/dist/{shared-DwdyWmvE.mjs.map → shared-CsdT2T7k.mjs.map} +1 -1
  25. package/dist/{shared-BTR35aMz.mjs → shared-fb0nkzQi.mjs} +1 -1
  26. package/dist/{src-wR7GoftB.mjs → src-CbRnGzMK.mjs} +205 -138
  27. package/dist/src-CbRnGzMK.mjs.map +1 -0
  28. package/dist/urlFormat-lls7CsEP.mjs +71 -0
  29. package/dist/urlFormat-lls7CsEP.mjs.map +1 -0
  30. package/docs/markform-apis.md +53 -0
  31. package/examples/movie-research/movie-deep-research-mock-filled.form.md +320 -343
  32. package/examples/movie-research/movie-deep-research.form.md +273 -308
  33. package/examples/movie-research/movie-research-demo.form.md +27 -41
  34. package/examples/parallel/parallel-research.form.md +33 -29
  35. package/examples/parallel/parallel-research.mock.filled.form.md +88 -0
  36. package/examples/rejection-test/rejection-test-mock-filled.form.md +21 -16
  37. package/examples/rejection-test/rejection-test-mock-filled.schema.json +1 -1
  38. package/examples/rejection-test/rejection-test.form.md +17 -15
  39. package/examples/rejection-test/rejection-test.session.yaml +88 -60
  40. package/examples/simple/simple-mock-filled.form.md +113 -126
  41. package/examples/simple/simple-mock-filled.schema.json +2 -3
  42. package/examples/simple/simple-skipped-filled.form.md +112 -129
  43. package/examples/simple/simple-skipped-filled.report.md +8 -8
  44. package/examples/simple/simple-skipped-filled.schema.json +2 -3
  45. package/examples/simple/simple-tags-syntax.form.md +32 -0
  46. package/examples/simple/simple-with-skips.session.yaml +663 -627
  47. package/examples/simple/simple.form.md +97 -113
  48. package/examples/simple/simple.schema.json +2 -3
  49. package/examples/simple/simple.session.yaml +663 -627
  50. package/examples/startup-deep-research/startup-deep-research.form.md +191 -235
  51. package/examples/startup-research/startup-research-mock-filled.form.md +128 -147
  52. package/examples/startup-research/startup-research.form.md +90 -129
  53. package/examples/twitter-thread/twitter-thread.form.md +373 -0
  54. package/package.json +5 -1
  55. package/dist/apply-DIvm1b1s.mjs.map +0 -1
  56. package/dist/cli-FFMoEhFS.mjs.map +0 -1
  57. package/dist/coreTypes-CPKXf2dc.mjs.map +0 -1
  58. package/dist/src-wR7GoftB.mjs.map +0 -1
@@ -2,536 +2,516 @@
2
2
  markform:
3
3
  spec: MF/0.1
4
4
  title: Movie Deep Research
5
- description: Comprehensive movie research form with ratings, box office, cast/crew, technical specs, streaming availability, and cultural analysis.
5
+ description: Comprehensive movie research form with ratings, box office, cast/crew,
6
+ technical specs, streaming availability, and cultural analysis.
6
7
  run_mode: research
7
- roles:
8
- - user
9
- - agent
8
+ harness:
9
+ max_patches_per_turn: 15
10
+ max_issues_per_turn: 5
10
11
  role_instructions:
11
- user: "Enter the movie title and optionally the year for disambiguation."
12
- agent: |
13
- Conduct comprehensive research and fill in all available fields for the specified movie.
12
+ user: Enter the movie title and optionally the year for disambiguation.
13
+ agent: >
14
+ Conduct comprehensive research and fill in all available fields for the specified
15
+ movie.
16
+
14
17
 
15
18
  WORKFLOW - Complete in this order:
19
+
16
20
  1. IDENTIFY - Confirm the movie title and year
21
+
17
22
  2. SOURCES - Find all source URLs first (verify correct movie on each site)
23
+
18
24
  3. BASIC DATA - Fill ratings, cast, crew from IMDB
25
+
19
26
  4. ADDITIONAL RATINGS - RT, Metacritic, Letterboxd scores
27
+
20
28
  5. BOX OFFICE - Financial data from Box Office Mojo
29
+
21
30
  6. STREAMING - Current availability from JustWatch
31
+
22
32
  7. DEEP ANALYSIS - Technical specs, awards, cultural context
23
33
 
34
+
24
35
  SOURCE MAPPING:
36
+
25
37
  - IMDB: Core data, cast, crew, technical specs, awards
38
+
26
39
  - Rotten Tomatoes: Tomatometer, Audience Score, Critics Consensus
40
+
27
41
  - Metacritic: Metascore
42
+
28
43
  - Box Office Mojo: Budget, domestic/worldwide gross, opening weekend
44
+
29
45
  - JustWatch: Current streaming platforms (use US region)
46
+
30
47
  - Letterboxd: Cinephile community rating
48
+
31
49
  - Wikipedia: Cultural impact, production history
32
50
 
51
+
33
52
  GUIDELINES:
53
+
34
54
  - Use EXACT scores from each source - don't average or interpret
55
+
35
56
  - Skip fields if data unavailable (older films may lack some metrics)
57
+
36
58
  - For box office, use millions (e.g., 100.5 for $100.5M)
59
+
37
60
  - Add notes for any missing, confusing, or unclear information
38
- harness:
39
- max_issues_per_turn: 5
40
- max_patches_per_turn: 15
41
61
  ---
42
- {% form id="movie_research_deep" title="Movie Deep Research" %}
43
62
 
44
- {% description ref="movie_research_deep" %}
63
+ <!-- form id="movie_research_deep" title="Movie Deep Research" -->
64
+
65
+ <!-- description ref="movie_research_deep" -->
45
66
  Comprehensive movie research covering ratings from multiple sources, box office
46
67
  performance, full cast and crew, technical specifications, streaming availability, and
47
68
  cultural impact analysis.
48
- {% /description %}
69
+ <!-- /description -->
49
70
 
50
- {% group id="movie_input" title="Movie Identification" %}
71
+ <!-- group id="movie_input" title="Movie Identification" -->
51
72
 
52
- {% field kind="string" id="movie" label="Movie" role="user" required=true minLength=1 maxLength=300 %}
73
+ <!-- field kind="string" id="movie" role="user" label="Movie" maxLength=300 minLength=1 required=true -->
53
74
  ```value
54
75
  The Shawshank Redemption
55
76
  ```
56
- {% /field %}
77
+ <!-- /field -->
57
78
 
58
- {% instructions ref="movie" %}
79
+ <!-- instructions ref="movie" -->
59
80
  Enter the movie title (add any details to help identify, like “Barbie 2023” or “the
60
81
  Batman movie with Robert Pattinson”).
61
- {% /instructions %}
62
-
63
- {% /group %}
82
+ <!-- /instructions -->
64
83
 
65
- ## Title Identification
84
+ <!-- /group -->
66
85
 
67
- {% group id="title_identification" title="Title Identification" %}
86
+ <!-- group id="title_identification" title="Title Identification" -->
68
87
 
69
- {% field kind="string" id="full_title" label="Full Title" role="agent" required=true %}
88
+ <!-- field kind="string" id="full_title" label="Full Title" required=true -->
70
89
  ```value
71
90
  The Shawshank Redemption
72
91
  ```
73
- {% /field %}
92
+ <!-- /field -->
74
93
 
75
- {% instructions ref="full_title" %}
94
+ <!-- instructions ref="full_title" -->
76
95
  Official title including subtitle if any (e.g., “The Lord of the Rings: The Fellowship
77
96
  of the Ring”).
78
- {% /instructions %}
97
+ <!-- /instructions -->
79
98
 
80
- {% field kind="number" id="year" label="Release Year" role="agent" required=true min=1888 max=2030 %}
99
+ <!-- field kind="number" id="year" label="Release Year" max=2030 min=1888 required=true -->
81
100
  ```value
82
101
  1994
83
102
  ```
84
- {% /field %}
103
+ <!-- /field -->
85
104
 
86
- {% /group %}
105
+ <!-- /group -->
87
106
 
88
- ## Sources
107
+ <!-- group id="primary_sources" title="Primary Sources" -->
89
108
 
90
- {% group id="primary_sources" title="Primary Sources" %}
91
-
92
- {% field kind="url" id="imdb_url" label="IMDB URL" role="agent" required=true %}
109
+ <!-- field kind="url" id="imdb_url" label="IMDB URL" required=true -->
93
110
  ```value
94
111
  https://www.imdb.com/title/tt0111161/
95
112
  ```
96
- {% /field %}
113
+ <!-- /field -->
97
114
 
98
- {% instructions ref="imdb_url" %}
115
+ <!-- instructions ref="imdb_url" -->
99
116
  Required. Primary source for ratings, cast, crew, technical details.
100
117
  Format: https://www.imdb.com/title/tt0111161/
101
- {% /instructions %}
118
+ <!-- /instructions -->
102
119
 
103
- {% field kind="url" id="rt_url" label="Rotten Tomatoes URL" role="agent" %}
120
+ <!-- field kind="url" id="rt_url" label="Rotten Tomatoes URL" -->
104
121
  ```value
105
122
  https://www.rottentomatoes.com/m/shawshank_redemption
106
123
  ```
107
- {% /field %}
124
+ <!-- /field -->
108
125
 
109
- {% instructions ref="rt_url" %}
126
+ <!-- instructions ref="rt_url" -->
110
127
  Direct link to the movie’s Rotten Tomatoes page.
111
- {% /instructions %}
128
+ <!-- /instructions -->
112
129
 
113
- {% field kind="url" id="metacritic_url" label="Metacritic URL" role="agent" %}
130
+ <!-- field kind="url" id="metacritic_url" label="Metacritic URL" -->
114
131
  ```value
115
132
  https://www.metacritic.com/movie/the-shawshank-redemption/
116
133
  ```
117
- {% /field %}
134
+ <!-- /field -->
118
135
 
119
- {% instructions ref="metacritic_url" %}
136
+ <!-- instructions ref="metacritic_url" -->
120
137
  Direct link to the movie’s Metacritic page.
121
- {% /instructions %}
138
+ <!-- /instructions -->
122
139
 
123
- {% /group %}
140
+ <!-- /group -->
124
141
 
125
- {% group id="box_office_sources" title="Box Office Sources" %}
142
+ <!-- group id="box_office_sources" title="Box Office Sources" -->
126
143
 
127
- {% field kind="url" id="boxofficemojo_url" label="Box Office Mojo URL" role="agent" %}
144
+ <!-- field kind="url" id="boxofficemojo_url" label="Box Office Mojo URL" -->
128
145
  ```value
129
146
  https://www.boxofficemojo.com/title/tt0111161/
130
147
  ```
131
- {% /field %}
148
+ <!-- /field -->
132
149
 
133
- {% instructions ref="boxofficemojo_url" %}
150
+ <!-- instructions ref="boxofficemojo_url" -->
134
151
  Best source for budget, domestic/worldwide gross, opening weekend.
135
152
  Format: https://www.boxofficemojo.com/title/tt0111161/
136
- {% /instructions %}
153
+ <!-- /instructions -->
137
154
 
138
- {% field kind="url" id="the_numbers_url" label="The Numbers URL" role="agent" %}
155
+ <!-- field kind="url" id="the_numbers_url" label="The Numbers URL" -->
139
156
  ```value
140
157
  https://www.the-numbers.com/movie/Shawshank-Redemption-The
141
158
  ```
142
- {% /field %}
159
+ <!-- /field -->
143
160
 
144
- {% instructions ref="the_numbers_url" %}
161
+ <!-- instructions ref="the_numbers_url" -->
145
162
  Alternative/supplementary box office data and profitability analysis.
146
- {% /instructions %}
163
+ <!-- /instructions -->
147
164
 
148
- {% /group %}
165
+ <!-- /group -->
149
166
 
150
- {% group id="availability_sources" title="Availability Sources" %}
167
+ <!-- group id="availability_sources" title="Availability Sources" -->
151
168
 
152
- {% field kind="url" id="justwatch_url" label="JustWatch URL" role="agent" %}
169
+ <!-- field kind="url" id="justwatch_url" label="JustWatch URL" -->
153
170
  ```value
154
171
  https://www.justwatch.com/us/movie/the-shawshank-redemption
155
172
  ```
156
- {% /field %}
173
+ <!-- /field -->
157
174
 
158
- {% instructions ref="justwatch_url" %}
175
+ <!-- instructions ref="justwatch_url" -->
159
176
  Best source for current streaming availability.
160
177
  Use US region. Format: https://www.justwatch.com/us/movie/the-shawshank-redemption
161
- {% /instructions %}
178
+ <!-- /instructions -->
162
179
 
163
- {% /group %}
180
+ <!-- /group -->
164
181
 
165
- {% group id="additional_sources" title="Additional Sources" %}
182
+ <!-- group id="additional_sources" title="Additional Sources" -->
166
183
 
167
- {% field kind="url" id="letterboxd_url" label="Letterboxd URL" role="agent" %}
184
+ <!-- field kind="url" id="letterboxd_url" label="Letterboxd URL" -->
168
185
  ```value
169
186
  https://letterboxd.com/film/the-shawshank-redemption/
170
187
  ```
171
- {% /field %}
188
+ <!-- /field -->
172
189
 
173
- {% instructions ref="letterboxd_url" %}
190
+ <!-- instructions ref="letterboxd_url" -->
174
191
  Cinephile community ratings.
175
192
  Especially useful for art/indie/cult films.
176
- {% /instructions %}
193
+ <!-- /instructions -->
177
194
 
178
- {% field kind="url" id="wikipedia_url" label="Wikipedia URL" role="agent" %}
195
+ <!-- field kind="url" id="wikipedia_url" label="Wikipedia URL" -->
179
196
  ```value
180
197
  https://en.wikipedia.org/wiki/The_Shawshank_Redemption
181
198
  ```
182
- {% /field %}
199
+ <!-- /field -->
183
200
 
184
- {% instructions ref="wikipedia_url" %}
201
+ <!-- instructions ref="wikipedia_url" -->
185
202
  For production history, cultural impact, comprehensive awards list.
186
- {% /instructions %}
203
+ <!-- /instructions -->
187
204
 
188
- {% field kind="url" id="official_site_url" label="Official Website" role="agent" %}{% /field %}
205
+ <!-- field kind="url" id="official_site_url" label="Official Website" --><!-- /field -->
189
206
 
190
- {% instructions ref="official_site_url" %}
207
+ <!-- instructions ref="official_site_url" -->
191
208
  Studio or film’s official website, if still active.
192
- {% /instructions %}
193
-
194
- {% /group %}
209
+ <!-- /instructions -->
195
210
 
196
- ## Basic Details
211
+ <!-- /group -->
197
212
 
198
- {% group id="basic_details" title="Basic Details" %}
213
+ <!-- group id="basic_details" title="Basic Details" -->
199
214
 
200
- {% field kind="string_list" id="directors" label="Director(s)" role="agent" required=true %}
215
+ <!-- field kind="string_list" id="directors" label="Director(s)" required=true -->
201
216
  ```value
202
217
  Frank Darabont
203
218
  ```
204
- {% /field %}
219
+ <!-- /field -->
205
220
 
206
- {% instructions ref="directors" %}
221
+ <!-- instructions ref="directors" -->
207
222
  One director per line.
208
223
  Most films have one; some have two or more co-directors.
209
- {% /instructions %}
224
+ <!-- /instructions -->
210
225
 
211
- {% field kind="number" id="runtime_minutes" label="Runtime (minutes)" role="agent" min=1 max=1000 %}
226
+ <!-- field kind="number" id="runtime_minutes" label="Runtime (minutes)" max=1000 min=1 -->
212
227
  ```value
213
228
  142
214
229
  ```
215
- {% /field %}
216
-
217
- {% field kind="single_select" id="mpaa_rating" label="MPAA Rating" role="agent" %}
218
-
219
- - [ ] G {% #g %}
220
- - [ ] PG {% #pg %}
221
- - [ ] PG-13 {% #pg_13 %}
222
- - [x] R {% #r %}
223
- - [ ] NC-17 {% #nc_17 %}
224
- - [ ] NR/Unrated {% #nr %}
225
-
226
- {% /field %}
227
-
228
- {% field kind="multi_select" id="genres" label="Genres" role="agent" minSelections=1 maxSelections=5 %}
229
-
230
- - [ ] Action {% #action %}
231
- - [ ] Adventure {% #adventure %}
232
- - [ ] Animation {% #animation %}
233
- - [ ] Biography {% #biography %}
234
- - [ ] Comedy {% #comedy %}
235
- - [ ] Crime {% #crime %}
236
- - [ ] Documentary {% #documentary %}
237
- - [x] Drama {% #drama %}
238
- - [ ] Family {% #family %}
239
- - [ ] Fantasy {% #fantasy %}
240
- - [ ] Film-Noir {% #film_noir %}
241
- - [ ] History {% #history %}
242
- - [ ] Horror {% #horror %}
243
- - [ ] Music {% #music %}
244
- - [ ] Musical {% #musical %}
245
- - [ ] Mystery {% #mystery %}
246
- - [ ] Romance {% #romance %}
247
- - [ ] Sci-Fi {% #sci_fi %}
248
- - [ ] Sport {% #sport %}
249
- - [ ] Thriller {% #thriller %}
250
- - [ ] War {% #war %}
251
- - [ ] Western {% #western %}
252
-
253
- {% /field %}
254
-
255
- {% instructions ref="genres" %}
230
+ <!-- /field -->
231
+
232
+ <!-- field kind="single_select" id="mpaa_rating" label="MPAA Rating" -->
233
+ - [ ] G <!-- #g -->
234
+ - [ ] PG <!-- #pg -->
235
+ - [ ] PG-13 <!-- #pg_13 -->
236
+ - [x] R <!-- #r -->
237
+ - [ ] NC-17 <!-- #nc_17 -->
238
+ - [ ] NR/Unrated <!-- #nr -->
239
+ <!-- /field -->
240
+
241
+ <!-- field kind="multi_select" id="genres" label="Genres" maxSelections=5 minSelections=1 -->
242
+ - [ ] Action <!-- #action -->
243
+ - [ ] Adventure <!-- #adventure -->
244
+ - [ ] Animation <!-- #animation -->
245
+ - [ ] Biography <!-- #biography -->
246
+ - [ ] Comedy <!-- #comedy -->
247
+ - [ ] Crime <!-- #crime -->
248
+ - [ ] Documentary <!-- #documentary -->
249
+ - [x] Drama <!-- #drama -->
250
+ - [ ] Family <!-- #family -->
251
+ - [ ] Fantasy <!-- #fantasy -->
252
+ - [ ] Film-Noir <!-- #film_noir -->
253
+ - [ ] History <!-- #history -->
254
+ - [ ] Horror <!-- #horror -->
255
+ - [ ] Music <!-- #music -->
256
+ - [ ] Musical <!-- #musical -->
257
+ - [ ] Mystery <!-- #mystery -->
258
+ - [ ] Romance <!-- #romance -->
259
+ - [ ] Sci-Fi <!-- #sci_fi -->
260
+ - [ ] Sport <!-- #sport -->
261
+ - [ ] Thriller <!-- #thriller -->
262
+ - [ ] War <!-- #war -->
263
+ - [ ] Western <!-- #western -->
264
+ <!-- /field -->
265
+
266
+ <!-- instructions ref="genres" -->
256
267
  Select all applicable genres from IMDB (up to 5).
257
- {% /instructions %}
268
+ <!-- /instructions -->
258
269
 
259
- {% field kind="string" id="original_language" label="Original Language" role="agent" %}
270
+ <!-- field kind="string" id="original_language" label="Original Language" -->
260
271
  ```value
261
272
  English
262
273
  ```
263
- {% /field %}
274
+ <!-- /field -->
264
275
 
265
- {% field kind="string_list" id="countries" label="Countries" role="agent" %}
276
+ <!-- field kind="string_list" id="countries" label="Countries" -->
266
277
  ```value
267
278
  United States
268
279
  ```
269
- {% /field %}
280
+ <!-- /field -->
270
281
 
271
- {% instructions ref="countries" %}
282
+ <!-- instructions ref="countries" -->
272
283
  Production countries, one per line.
273
- {% /instructions %}
274
-
275
- {% /group %}
284
+ <!-- /instructions -->
276
285
 
277
- ## Cast & Crew
286
+ <!-- /group -->
278
287
 
279
- {% group id="cast_crew" title="Cast & Crew" %}
280
-
281
- {% field kind="table" id="lead_cast" label="Lead Cast" role="agent" minRows=1 maxRows=10 columnIds=["actor_name", "character_name"] columnTypes=["string", "string"] %}
288
+ <!-- group id="cast_crew" title="Cast & Crew" -->
282
289
 
290
+ <!-- field kind="table" id="lead_cast" columnIds=["actor_name", "character_name"] columnLabels=["Actor Name", "Character Name"] columnTypes=["string", "string"] label="Lead Cast" maxRows=10 minRows=1 -->
283
291
  | Actor Name | Character Name |
284
- |------------|----------------|
292
+ | --- | --- |
285
293
  | Tim Robbins | Andy Dufresne |
286
294
  | Morgan Freeman | Ellis Boyd ‘Red’ Redding |
287
295
  | Bob Gunton | Warden Samuel Norton |
288
296
  | William Sadler | Heywood |
289
297
  | Clancy Brown | Captain Byron Hadley |
298
+ <!-- /field -->
290
299
 
291
- {% /field %}
292
-
293
- {% instructions ref="lead_cast" %}
300
+ <!-- instructions ref="lead_cast" -->
294
301
  Top-billed cast members with their character names.
295
302
  Example: Leonardo DiCaprio | Dom Cobb
296
- {% /instructions %}
303
+ <!-- /instructions -->
297
304
 
298
- {% field kind="string_list" id="writers" label="Writers" role="agent" %}
305
+ <!-- field kind="string_list" id="writers" label="Writers" -->
299
306
  ```value
300
307
  Stephen King (short story)
301
308
  Frank Darabont (screenplay)
302
309
  ```
303
- {% /field %}
310
+ <!-- /field -->
304
311
 
305
- {% instructions ref="writers" %}
312
+ <!-- instructions ref="writers" -->
306
313
  Screenplay and story credits.
307
314
  Format: Name (credit type) Example: “Christopher Nolan (written by)”
308
- {% /instructions %}
315
+ <!-- /instructions -->
309
316
 
310
- {% field kind="string" id="cinematographer" label="Cinematographer" role="agent" %}
317
+ <!-- field kind="string" id="cinematographer" label="Cinematographer" -->
311
318
  ```value
312
319
  Roger Deakins
313
320
  ```
314
- {% /field %}
321
+ <!-- /field -->
315
322
 
316
- {% field kind="string" id="composer" label="Composer" role="agent" %}
323
+ <!-- field kind="string" id="composer" label="Composer" -->
317
324
  ```value
318
325
  Thomas Newman
319
326
  ```
320
- {% /field %}
327
+ <!-- /field -->
321
328
 
322
- {% instructions ref="composer" %}
329
+ <!-- instructions ref="composer" -->
323
330
  Film score composer (not soundtrack songs).
324
- {% /instructions %}
331
+ <!-- /instructions -->
325
332
 
326
- {% field kind="string_list" id="producers" label="Producers" role="agent" maxItems=5 %}
333
+ <!-- field kind="string_list" id="producers" label="Producers" maxItems=5 -->
327
334
  ```value
328
335
  Niki Marvin (producer)
329
336
  ```
330
- {% /field %}
337
+ <!-- /field -->
331
338
 
332
- {% instructions ref="producers" %}
339
+ <!-- instructions ref="producers" -->
333
340
  Key producers (limit to main credited producers).
334
341
  Format: Name (producer type) Example: “Emma Thomas (producer)”
335
- {% /instructions %}
342
+ <!-- /instructions -->
336
343
 
337
- {% /group %}
344
+ <!-- /group -->
338
345
 
339
- ## Ratings
340
-
341
- {% group id="ratings" title="Ratings" %}
342
-
343
- {% field kind="table" id="ratings_table" label="Ratings" role="agent" required=true columnIds=["source", "score", "votes"] columnTypes=["string", "number", "number"] minRows=0 maxRows=6 %}
346
+ <!-- group id="ratings" title="Ratings" -->
344
347
 
348
+ <!-- field kind="table" id="ratings_table" columnIds=["source", "score", "votes"] columnLabels=["Source", "Score", "Votes"] columnTypes=["string", "number", "number"] label="Ratings" maxRows=6 minRows=0 required=true -->
345
349
  | Source | Score | Votes |
346
- |--------|-------|-------|
350
+ | --- | --- | --- |
347
351
  | IMDB | 9.3 | 2800000 |
348
352
  | RT Critics | 91 | 89 |
349
353
  | RT Audience | 98 | 1200000 |
350
- | Metacritic | 82 | |
351
- | Letterboxd | 4.5 | |
352
-
353
- {% /field %}
354
- {% instructions ref="ratings_table" %}
355
- Fill in scores and vote/review counts from each source:
356
- - IMDB: Rating (1.0-10.0 scale), vote count
357
- - RT Critics: Tomatometer (0-100%), review count
358
- - RT Audience: Audience Score (0-100%), rating count
359
- - Metacritic: Metascore (0-100)
360
- - Letterboxd: Rating (0.5-5.0 scale)
361
- - CinemaScore: Grade (A+ to F), leave votes empty
362
-
363
- {% /instructions %}
364
-
365
- {% field kind="string" id="rt_consensus" label="Critics Consensus" role="agent" maxLength=500 %}
354
+ | Metacritic | 82 | %SKIP% |
355
+ | Letterboxd | 4.5 | %SKIP% |
356
+ <!-- /field -->
357
+
358
+ <!-- instructions ref="ratings_table" -->
359
+ Fill in scores and vote/review counts from each source:IMDB: Rating (1.0-10.0 scale), vote countRT Critics: Tomatometer (0-100%), review countRT Audience: Audience Score (0-100%), rating countMetacritic: Metascore (0-100)Letterboxd: Rating (0.5-5.0 scale)CinemaScore: Grade (A+ to F), leave votes empty
360
+ <!-- /instructions -->
361
+
362
+ <!-- field kind="string" id="rt_consensus" label="Critics Consensus" maxLength=500 -->
366
363
  ```value
367
364
  The Shawshank Redemption is an uplifting, deeply satisfying prison drama with sensitive direction and fine performances.
368
365
  ```
369
- {% /field %}
370
- {% instructions ref="rt_consensus" %}
371
- The official Rotten Tomatoes critics consensus statement, if available.
372
- {% /instructions %}
366
+ <!-- /field -->
373
367
 
374
- {% /group %}
368
+ <!-- instructions ref="rt_consensus" -->
369
+ The official Rotten Tomatoes critics consensus statement, if available.
370
+ <!-- /instructions -->
375
371
 
376
- ## Box Office
372
+ <!-- /group -->
377
373
 
378
- {% group id="box_office" title="Box Office" %}
374
+ <!-- group id="box_office" title="Box Office" -->
379
375
 
380
- {% field kind="number" id="budget_millions" label="Budget ($M)" role="agent" min=0 %}
376
+ <!-- field kind="number" id="budget_millions" label="Budget ($M)" min=0 -->
381
377
  ```value
382
378
  25
383
379
  ```
384
- {% /field %}
380
+ <!-- /field -->
385
381
 
386
- {% instructions ref="budget_millions" %}
382
+ <!-- instructions ref="budget_millions" -->
387
383
  Production budget in millions USD. Example: 200 for $200M.
388
- {% /instructions %}
384
+ <!-- /instructions -->
389
385
 
390
- {% field kind="number" id="box_office_domestic_millions" label="Domestic Gross ($M)" role="agent" min=0 %}
386
+ <!-- field kind="number" id="box_office_domestic_millions" label="Domestic Gross ($M)" min=0 -->
391
387
  ```value
392
388
  58.3
393
389
  ```
394
- {% /field %}
390
+ <!-- /field -->
395
391
 
396
- {% instructions ref="box_office_domestic_millions" %}
392
+ <!-- instructions ref="box_office_domestic_millions" -->
397
393
  US/Canada theatrical gross in millions USD.
398
- {% /instructions %}
394
+ <!-- /instructions -->
399
395
 
400
- {% field kind="number" id="box_office_worldwide_millions" label="Worldwide Gross ($M)" role="agent" min=0 %}
396
+ <!-- field kind="number" id="box_office_worldwide_millions" label="Worldwide Gross ($M)" min=0 -->
401
397
  ```value
402
398
  73.3
403
399
  ```
404
- {% /field %}
400
+ <!-- /field -->
405
401
 
406
- {% instructions ref="box_office_worldwide_millions" %}
402
+ <!-- instructions ref="box_office_worldwide_millions" -->
407
403
  Global theatrical gross in millions USD.
408
- {% /instructions %}
404
+ <!-- /instructions -->
409
405
 
410
- {% field kind="number" id="opening_weekend_millions" label="Opening Weekend ($M)" role="agent" min=0 %}
406
+ <!-- field kind="number" id="opening_weekend_millions" label="Opening Weekend ($M)" min=0 -->
411
407
  ```value
412
408
  0.727
413
409
  ```
414
- {% /field %}
410
+ <!-- /field -->
415
411
 
416
- {% instructions ref="opening_weekend_millions" %}
412
+ <!-- instructions ref="opening_weekend_millions" -->
417
413
  US opening weekend gross in millions USD.
418
- {% /instructions %}
419
-
420
- {% /group %}
421
-
422
- ## Technical Specifications
423
-
424
- {% group id="technical_specs" title="Technical Specifications" %}
425
-
426
- {% field kind="single_select" id="aspect_ratio" label="Aspect Ratio" role="agent" %}
427
-
428
- - [ ] 1.33:1 (Academy) {% #ratio_133 %}
429
- - [ ] 1.66:1 {% #ratio_166 %}
430
- - [ ] 1.78:1 (16:9) {% #ratio_178 %}
431
- - [x] 1.85:1 (Flat) {% #ratio_185 %}
432
- - [ ] 2.00:1 (Univisium) {% #ratio_200 %}
433
- - [ ] 2.20:1 (70mm) {% #ratio_220 %}
434
- - [ ] 2.35:1 (Scope) {% #ratio_235 %}
435
- - [ ] 2.39:1 (Scope) {% #ratio_239 %}
436
- - [ ] 2.76:1 (Ultra Panavision) {% #ratio_276 %}
437
- - [ ] 1.43:1 (IMAX) {% #ratio_143 %}
438
- - [ ] 1.90:1 (IMAX Digital) {% #ratio_190 %}
439
- - [ ] Variable {% #ratio_variable %}
440
-
441
- {% /field %}
442
-
443
- {% field kind="single_select" id="color_format" label="Color" role="agent" %}
444
-
445
- - [x] Color {% #color %}
446
- - [ ] Black & White {% #bw %}
447
- - [ ] Mixed/Partial Color {% #mixed %}
448
-
449
- {% /field %}
450
-
451
- {% field kind="string" id="sound_mix" label="Sound Mix" role="agent" %}
414
+ <!-- /instructions -->
415
+
416
+ <!-- /group -->
417
+
418
+ <!-- group id="technical_specs" title="Technical Specifications" -->
419
+
420
+ <!-- field kind="single_select" id="aspect_ratio" label="Aspect Ratio" -->
421
+ - [ ] 1.33:1 (Academy) <!-- #ratio_133 -->
422
+ - [ ] 1.66:1 <!-- #ratio_166 -->
423
+ - [ ] 1.78:1 (16:9) <!-- #ratio_178 -->
424
+ - [x] 1.85:1 (Flat) <!-- #ratio_185 -->
425
+ - [ ] 2.00:1 (Univisium) <!-- #ratio_200 -->
426
+ - [ ] 2.20:1 (70mm) <!-- #ratio_220 -->
427
+ - [ ] 2.35:1 (Scope) <!-- #ratio_235 -->
428
+ - [ ] 2.39:1 (Scope) <!-- #ratio_239 -->
429
+ - [ ] 2.76:1 (Ultra Panavision) <!-- #ratio_276 -->
430
+ - [ ] 1.43:1 (IMAX) <!-- #ratio_143 -->
431
+ - [ ] 1.90:1 (IMAX Digital) <!-- #ratio_190 -->
432
+ - [ ] Variable <!-- #ratio_variable -->
433
+ <!-- /field -->
434
+
435
+ <!-- field kind="single_select" id="color_format" label="Color" -->
436
+ - [x] Color <!-- #color -->
437
+ - [ ] Black & White <!-- #bw -->
438
+ - [ ] Mixed/Partial Color <!-- #mixed -->
439
+ <!-- /field -->
440
+
441
+ <!-- field kind="string" id="sound_mix" label="Sound Mix" -->
452
442
  ```value
453
443
  Dolby Digital
454
444
  ```
455
- {% /field %}
445
+ <!-- /field -->
456
446
 
457
- {% instructions ref="sound_mix" %}
447
+ <!-- instructions ref="sound_mix" -->
458
448
  Primary sound format (e.g., “Dolby Atmos”, “DTS”, “Dolby Digital”).
459
- {% /instructions %}
449
+ <!-- /instructions -->
460
450
 
461
- {% field kind="string" id="camera" label="Camera" role="agent" %}
451
+ <!-- field kind="string" id="camera" label="Camera" -->
462
452
  ```value
463
453
  Arriflex 535
464
454
  ```
465
- {% /field %}
455
+ <!-- /field -->
466
456
 
467
- {% instructions ref="camera" %}
457
+ <!-- instructions ref="camera" -->
468
458
  Primary camera system used (e.g., “Arri Alexa 65”, “IMAX 15-perf”, “Panavision
469
459
  Panaflex”).
470
- {% /instructions %}
471
-
472
- {% /group %}
473
-
474
- ## Streaming Availability
475
-
476
- {% group id="streaming_availability" title="Streaming Availability (US)" %}
477
-
478
- {% field kind="multi_select" id="streaming_subscription" label="Streaming (Subscription)" role="agent" %}
479
-
480
- - [ ] Netflix {% #netflix %}
481
- - [ ] Amazon Prime Video {% #prime %}
482
- - [ ] Disney+ {% #disney %}
483
- - [x] Max (HBO) {% #max %}
484
- - [ ] Hulu {% #hulu %}
485
- - [ ] Apple TV+ {% #apple %}
486
- - [ ] Paramount+ {% #paramount %}
487
- - [ ] Peacock {% #peacock %}
488
- - [ ] MGM+ {% #mgm %}
489
- - [ ] Criterion Channel {% #criterion %}
490
- - [ ] MUBI {% #mubi %}
491
- - [ ] Tubi (Free) {% #tubi %}
492
- - [ ] Pluto TV (Free) {% #pluto %}
493
-
494
- {% /field %}
495
-
496
- {% instructions ref="streaming_subscription" %}
460
+ <!-- /instructions -->
461
+
462
+ <!-- /group -->
463
+
464
+ <!-- group id="streaming_availability" title="Streaming Availability (US)" -->
465
+
466
+ <!-- field kind="multi_select" id="streaming_subscription" label="Streaming (Subscription)" -->
467
+ - [ ] Netflix <!-- #netflix -->
468
+ - [ ] Amazon Prime Video <!-- #prime -->
469
+ - [ ] Disney+ <!-- #disney -->
470
+ - [x] Max (HBO) <!-- #max -->
471
+ - [ ] Hulu <!-- #hulu -->
472
+ - [ ] Apple TV+ <!-- #apple -->
473
+ - [ ] Paramount+ <!-- #paramount -->
474
+ - [ ] Peacock <!-- #peacock -->
475
+ - [ ] MGM+ <!-- #mgm -->
476
+ - [ ] Criterion Channel <!-- #criterion -->
477
+ - [ ] MUBI <!-- #mubi -->
478
+ - [ ] Tubi (Free) <!-- #tubi -->
479
+ - [ ] Pluto TV (Free) <!-- #pluto -->
480
+ <!-- /field -->
481
+
482
+ <!-- instructions ref="streaming_subscription" -->
497
483
  Select all platforms where this film is currently available to stream (subscription or
498
484
  free). Check JustWatch for current availability.
499
- {% /instructions %}
500
-
501
- {% field kind="checkboxes" id="availability_flags" label="Other Availability" role="agent" checkboxMode="simple" %}
502
-
503
- - [x] Available for digital rental {% #rental %}
504
- - [x] Available for digital purchase {% #purchase %}
505
- - [x] Physical media (Blu-ray/DVD) {% #physical %}
506
- - [x] 4K UHD available {% #uhd_4k %}
507
-
508
- {% /field %}
509
-
510
- {% /group %}
511
-
512
- ## Content & Themes
513
-
514
- {% group id="content_themes" title="Content & Themes" %}
515
-
516
- {% field kind="checkboxes" id="content_warnings" label="Content Warnings" role="agent" checkboxMode="simple" %}
517
-
518
- - [x] Intense violence {% #violence %}
519
- - [ ] Gore/disturbing imagery {% #gore %}
520
- - [x] Sexual content {% #sexual %}
521
- - [ ] Nudity {% #nudity %}
522
- - [x] Strong language {% #language %}
523
- - [ ] Drug/alcohol use {% #drugs %}
524
- - [ ] Frightening scenes {% #frightening %}
525
- - [ ] Flashing/strobe effects {% #flashing %}
526
-
527
- {% /field %}
528
-
529
- {% instructions ref="content_warnings" %}
485
+ <!-- /instructions -->
486
+
487
+ <!-- field kind="checkboxes" id="availability_flags" checkboxMode="simple" label="Other Availability" -->
488
+ - [x] Available for digital rental <!-- #rental -->
489
+ - [x] Available for digital purchase <!-- #purchase -->
490
+ - [x] Physical media (Blu-ray/DVD) <!-- #physical -->
491
+ - [x] 4K UHD available <!-- #uhd_4k -->
492
+ <!-- /field -->
493
+
494
+ <!-- /group -->
495
+
496
+ <!-- group id="content_themes" title="Content & Themes" -->
497
+
498
+ <!-- field kind="checkboxes" id="content_warnings" checkboxMode="simple" label="Content Warnings" -->
499
+ - [x] Intense violence <!-- #violence -->
500
+ - [ ] Gore/disturbing imagery <!-- #gore -->
501
+ - [x] Sexual content <!-- #sexual -->
502
+ - [ ] Nudity <!-- #nudity -->
503
+ - [x] Strong language <!-- #language -->
504
+ - [ ] Drug/alcohol use <!-- #drugs -->
505
+ - [ ] Frightening scenes <!-- #frightening -->
506
+ - [ ] Flashing/strobe effects <!-- #flashing -->
507
+ <!-- /field -->
508
+
509
+ <!-- instructions ref="content_warnings" -->
530
510
  Check any content warnings that apply.
531
511
  Use IMDB Parents Guide as reference.
532
- {% /instructions %}
512
+ <!-- /instructions -->
533
513
 
534
- {% field kind="string_list" id="themes" label="Key Themes" role="agent" maxItems=5 %}
514
+ <!-- field kind="string_list" id="themes" label="Key Themes" maxItems=5 -->
535
515
  ```value
536
516
  Hope
537
517
  Redemption
@@ -539,73 +519,67 @@ Friendship
539
519
  Perseverance
540
520
  Institutionalization
541
521
  ```
542
- {% /field %}
522
+ <!-- /field -->
543
523
 
544
- {% instructions ref="themes" %}
524
+ <!-- instructions ref="themes" -->
545
525
  Major themes explored in the film (e.g., “redemption”, “family”, “identity”, “war”).
546
- {% /instructions %}
526
+ <!-- /instructions -->
547
527
 
548
- {% /group %}
528
+ <!-- /group -->
549
529
 
550
- ## Summary & Legacy
530
+ <!-- group id="summary" title="Summary" -->
551
531
 
552
- {% group id="summary" title="Summary" %}
553
-
554
- {% field kind="string" id="logline" label="One-Line Summary" role="agent" maxLength=300 %}
532
+ <!-- field kind="string" id="logline" label="One-Line Summary" maxLength=300 -->
555
533
  ```value
556
534
  A banker wrongly convicted of murder forms an unlikely friendship with a fellow inmate while quietly working on a decades-long plan for freedom.
557
535
  ```
558
- {% /field %}
536
+ <!-- /field -->
559
537
 
560
- {% instructions ref="logline" %}
538
+ <!-- instructions ref="logline" -->
561
539
  Brief plot summary in 1-2 sentences, no spoilers.
562
- {% /instructions %}
563
-
564
- {% field kind="table" id="notable_awards" label="Notable Awards" role="agent" columnIds=["award", "category", "year"] columnTypes=["string", "string", "year"] %}
540
+ <!-- /instructions -->
565
541
 
542
+ <!-- field kind="table" id="notable_awards" columnIds=["award", "category", "year"] columnLabels=["Award", "Category", "Year"] columnTypes=["string", "string", "year"] label="Notable Awards" -->
566
543
  | Award | Category | Year |
567
- |-------|----------|------|
544
+ | --- | --- | --- |
568
545
  | Saturn Award | Best Action/Adventure/Thriller Film | 1995 |
569
546
  | PGA Award | Motion Picture Producer of the Year | 1995 |
547
+ <!-- /field -->
570
548
 
571
- {% /field %}
572
-
573
- {% instructions ref="notable_awards" %}
549
+ <!-- instructions ref="notable_awards" -->
574
550
  Major awards won. Example: Oscar | Best Picture | 1995
575
- {% /instructions %}
576
-
577
- {% field kind="table" id="notable_quotes" label="Notable Critic Quotes" role="agent" maxRows=3 columnIds=["quote", "critic", "publication"] columnTypes=["string", "string", "string"] %}
551
+ <!-- /instructions -->
578
552
 
553
+ <!-- field kind="table" id="notable_quotes" columnIds=["quote", "critic", "publication"] columnLabels=["Quote", "Critic", "Publication"] columnTypes=["string", "string", "string"] label="Notable Critic Quotes" maxRows=3 -->
579
554
  | Quote | Critic | Publication |
580
- |-------|--------|-------------|
581
- | A movie about time, patience and loyalty — not exciting qualities, perhaps, but they
582
- grow on you during the subterranean progress of this story.
583
- | Roger Ebert | Chicago Sun-Times |
584
- | A beautifully crafted film that celebrates the triumph of the human spirit.
585
- | James Berardinelli | ReelViews |
586
-
587
- {% /field %}
588
-
589
- {% instructions ref="notable_quotes" %}
555
+ | --- | --- | --- |
556
+ | A movie about time, patience and loyalty — not exciting qualities, perhaps, but they | %SKIP% | %SKIP% |
557
+ | grow on you during the subterranean progress of this story. | %SKIP% | %SKIP% |
558
+ | Roger Ebert | Chicago Sun-Times | %SKIP% |
559
+ | A beautifully crafted film that celebrates the triumph of the human spirit. | %SKIP% | %SKIP% |
560
+ | James Berardinelli | ReelViews | %SKIP% |
561
+ <!-- /field -->
562
+
563
+ <!-- instructions ref="notable_quotes" -->
590
564
  2-3 memorable critic quotes that capture reception.
591
- {% /instructions %}
565
+ <!-- /instructions -->
592
566
 
593
- {% /group %}
567
+ <!-- /group -->
594
568
 
595
- {% group id="cultural_legacy" title="Cultural Legacy" %}
569
+ <!-- group id="cultural_legacy" title="Cultural Legacy" -->
596
570
 
597
- {% field kind="string" id="cultural_impact" label="Cultural Impact" role="agent" maxLength=500 %}
571
+ <!-- field kind="string" id="cultural_impact" label="Cultural Impact" maxLength=500 -->
598
572
  ```value
599
573
  Despite modest box office performance, The Shawshank Redemption became one of the most beloved films of all time through home video and cable television, consistently ranking as the #1 film on IMDB's Top 250 list for over two decades.
600
574
  ```
601
- {% /field %}
575
+ <!-- /field -->
602
576
 
603
- {% instructions ref="cultural_impact" %}
577
+ <!-- instructions ref="cultural_impact" -->
604
578
  Brief description of the film’s cultural significance, influence, or legacy (1-3
605
579
  sentences). Leave empty for recent releases without established legacy.
606
- {% /instructions %}
580
+ <!-- /instructions -->
607
581
 
608
- {% field kind="string_list" id="similar_films" label="Similar Films" role="agent" maxItems=5 %}
582
+ <!-- field kind="string_list" id="similar_films" label="Similar Films" maxItems=5 -->
609
583
  ```value
610
584
  The Green Mile
611
585
  Escape from Alcatraz
@@ -613,13 +587,16 @@ Cool Hand Luke
613
587
  A Prophet
614
588
  The Count of Monte Cristo
615
589
  ```
616
- {% /field %}
590
+ <!-- /field -->
617
591
 
618
- {% instructions ref="similar_films" %}
592
+ <!-- instructions ref="similar_films" -->
619
593
  Films with similar themes, style, or appeal.
620
594
  One per line.
621
- {% /instructions %}
595
+ <!-- /instructions -->
596
+
597
+ <!-- /group -->
598
+
599
+ <!-- /form -->
600
+
622
601
 
623
- {% /group %}
624
602
 
625
- {% /form %}